2013-06-03  Paweł Forysiuk  <tuxator@o2.pl>

        [harfbuzz] WebKit fails to build with MinGW compiler because of invalid cast in HarfBuzzShaper.cpp
        https://bugs.webkit.org/show_bug.cgi?id=108373

        Reviewed by Darin Adler.

        Fix building on platforms where UChar is defined as wchar_t.


        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):

2013-05-18  Alberto Garcia  <agarcia@igalia.com>

        [GTK] Parallel build fails if gtk-doc is enabled
        https://bugs.webkit.org/show_bug.cgi?id=116227

        Reviewed by Martin Robinson.

        * GNUmakefile.am:
        Don't overwrite noinst_DATA, modify its existing value instead.

2013-06-07  Zalan Bujtas  <zalan@apple.com>

        Frame flattening: crash when child iframe is removed during beforeload.
        https://bugs.webkit.org/show_bug.cgi?id=116220

        Reviewed by Antti Koivisto.

        FrameView can get destroyed in updateWidget(). Normally, it is protected by layout()
        but with frame flattening on, it can also be called asynchronously through the
        post layout timer.

        Test: fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html

        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):

2013-05-19  Martin Robinson  <mrobinson@igalia.com>

        GtkSelectionData length is off by one
        https://bugs.webkit.org/show_bug.cgi?id=113962

        Reviewed by Anders Carlsson.

        No new tests. Since drag data is interpreted as a null-terminated string
        this is difficult to test with a C program and we have no infrastructure
        built for using GIR tests.

        * platform/gtk/PasteboardHelper.cpp:
        (WebCore::PasteboardHelper::fillSelectionData): Instead of including the null
        character in the paste data length, just include the string. This matches the behavior
        of Firefox.

2013-05-08  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [GStreamer] Does memory buffering even with preload set to none
        https://bugs.webkit.org/show_bug.cgi?id=115754

        Reviewed by Philippe Normand.

        Covered by existing tests.

        Revision 148840 fixed on-disk buffering being done when preload is set to none,
        but memory buffering is still being done. That is because setting the state to
        paused causes GStreamer to start loading the media, to gather information. Only
        doing that when committing the load avoids that while maintaining the tested
        behaviour unchanged.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::load): move setting pause state to commitLoad.
        (WebCore::MediaPlayerPrivateGStreamer::commitLoad): see above.

2013-04-12  Balazs Kelemen  <kbalazs@webkit.org>

        [GStreamer] Media attribute preload="none" is not honored
        https://bugs.webkit.org/show_bug.cgi?id=114357

        Reviewed by Philippe Normand.

        Fix the logic that prevents live streams from being buffered to not make preload="none" ignored.

        Test: http/tests/media/video-preload.html
        We need a http test because the bug does not triggered with local files.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):
        Remove m_originalPreloadWasAutoAndWasOverridden because it is not necessary and it is causing this bug.
        Currently if the tag has preload="none" attribute we set m_preload to Auto in the constructor. After that
        MedaPlayer calls setPreload(None), so we set m_originalPreloadWasAutoAndWasOverridden to true and later
        reset m_preload to Auto. The error prone factor here is that the m_preload member is repeated in the
        private class and setPreload is also used there. This seems to be necessary because we need to be able
        to ignore preloading if this is a live stream. Fortunately the original parsed value is available in the
        constructor, so we can use that. This will give the correct value that we should override only in the case
        of a live stream and that's it, we don't need to reset it later to Auto.
        Furthermore, we should ignore setting preload to auto from js if it is a live stream. This patch also handles
        this with an early return in setPreload.

2013-04-02  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Make libsecret optional
        https://bugs.webkit.org/show_bug.cgi?id=113821

        Reviewed by Gustavo Noronha Silva.

        Don't try to use libsecret if credential storage is disabled.

        * platform/gtk/GRefPtrGtk.cpp: Protect libsecret sections.
        * platform/gtk/GRefPtrGtk.h: Ditto.
        * platform/network/gtk/CredentialBackingStore.cpp: Ditto.

2013-04-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        FrameLoaderClient::assignIdentifierToInitialRequest() not called for the main resource when loaded from the memory cache
        https://bugs.webkit.org/show_bug.cgi?id=112418

        Reviewed by Darin Adler.

        When the main resource is loaded from the memory cache the
        response is not added to the ResponseVector of the document
        loader, so that when committing the provisional load the remaining
        delegate messages are not called because the ResponseVector of the
        document loader is empty. When the main resource is loaded from
        the memory cache, there's no resource loader, and the client is
        notified about the response received using
        ResourceLoadNotifier::dispatchDidReceiveResponse() directly
        instead of ResourceLoadNotifier::didReceiveResponse() which is the
        one adding the response to the ResponseVector of the document
        loader. So, the problem can be fixed by adding the response to the
        ResponseVector before calling dispatchDidReceiveResponse() when
        loading the main resource without a resource loade

        Test: loader/go-back-cached-main-resource.html

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::responseReceived):

2013-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] DOM objects created wrapping a base class have incorrect GObject type
        https://bugs.webkit.org/show_bug.cgi?id=113132

        Reviewed by Gustavo Noronha Silva.

        Some of the DOM methods can create a concrete instance of another
        object, but return a base class. GObject bindings provide custom
        kit implementations for Node, Element, Event and EvenTarget, so
        any concrete HTMLElement wrapped as an HTMLElement ends up
        wrapping the right WebCore object but in the wrong GObject type.
        This affects not only HTMLElements, but any polymorphic object
        wrapped using a base class.
        This patch changes the way objects are created, so that all
        classes have their own kit implementation, but for polymorphic
        objects the kit implementation of the base class is always
        used. The kit method of polymorphic base classes use a generic
        wrap method instead of the wrapFoo method like all other
        classes. In the static code we provide the implementation of the
        generic wrap method for every polimorphic base class, falling back
        to their wrapFoo method if the concrete object can't be used to
        wrap the object.
        Both WebKitDOMBinding and WebKitHTMLElementWrapperFactory now provide
        implementations of wrap and have been renamed to WebKitDOMPrivate
        and WebKitDOMHTMLPrivate.

        * bindings/gobject/GNUmakefile.am:
        * bindings/gobject/WebKitDOMBinding.cpp: Removed.
        * bindings/gobject/WebKitDOMEventTarget.cpp:
        (WebKit::kit): Moved kit implementation from WebKitDOMBinding for
        consistency with all other objects that have their own kit.
        (WebKit::core): Updated to match the core implementation fo all
        other objects.
        * bindings/gobject/WebKitDOMEventTargetPrivate.h:
        (WebCore):
        (WebKit):
        * bindings/gobject/WebKitDOMHTMLPrivate.cpp: Added.
        (WebKit): Use preprocessor macros to define and set the wrap
        functions of all HTML elements, removing a lot of boilerplate code
        and making it easier to add new wrap functions in the future.
        (WebKit::wrap):
        * bindings/gobject/WebKitDOMHTMLPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.h.
        (WebCore):
        (WebKit):
        * bindings/gobject/WebKitDOMObject.cpp:
        * bindings/gobject/WebKitDOMPrivate.cpp: Added.
        (WebKit):
        (WebKit::wrap):
        * bindings/gobject/WebKitDOMPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitDOMBinding.h.
        (WebCore):
        (WebKit):
        * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp: Removed.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (IsBaseType): Helper function to check if a type is a base class.
        (GetBaseClass): Helper function to get the base class for a given
        parent type.
        (GenerateFunction): Remove special case for EventTarget since the
        kit prototype of EventTarget is in its private header like all
        other objects.
        (GenerateCFile): Add a kit implementation for all objects.
        (IsPolymorphic): Helper function to check if the given type is the
        base class of a polymorphic object.
        (Generate): Include the private header of the base class for
        polymorphic objects.
        (WriteData): Remove the special case for WebKitDOMNode since now
        all objects has a kit method.
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h:
        (WebKit):

2013-03-14  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GStreamer] simulateAudioInterruption needs to be guarded by ENABLE(VIDEO)"
        https://bugs.webkit.org/show_bug.cgi?id=112358

        Guarded with ENABLE(VIDEO) to prevent problems when it is not
        enabled.

        Reviewed by Philippe Normand.

2013-03-14  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GStreamer] Stopping playback of html5 media when receiving a higher priority audio event needs implementation
        https://bugs.webkit.org/show_bug.cgi?id=91611

        React to REQUEST_STATE GStreamer message to stop the pipeline when
        a higher priority stream is played. When this happens, states are
        updated accordingly.

        A method was added in the MediaPlayer class and internals to allow
        the the test runner to simulate an audio interruption.

        Reviewed by Philippe Normand.

        Test: media/media-higher-prio-audio-stream.html

        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore):
        (MediaPlayer):
        (WebCore::MediaPlayer::simulateAudioInterruption): New method
        delegating an audio interruption to the private backend to
        simulate the use-case where an external application needs
        exclusive access to the audio device.
        * platform/graphics/MediaPlayerPrivate.h:
        (MediaPlayerPrivateInterface):
        (WebCore::MediaPlayerPrivateInterface::simulateAudioInterruption):
        Added default empty method in the common private header.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore):
        (WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
        (WebCore::setAudioStreamPropertiesCallback): Hooked to child-added
        signal on the audio sink, delegates on setAudioStreamProperties.
        (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
        Sets the audio stream properties.
        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
        Initializes the new attribute.
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
        Disconnects autoaudiosink signal.
        (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
        Changed logging.
        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Reacting to
        the REQUEST_STATE message.
        (WebCore::MediaPlayerPrivateGStreamer::simulateAudioInterruption):
        Added. Injects the REQUEST_STATE message to the pipeline.
        (WebCore::MediaPlayerPrivateGStreamer::updateStates): Updating the
        playback state if REQUEST_STATE.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer): Added new method and attribute.
        * testing/Internals.h:
        * testing/Internals.idl:
        * testing/Internals.cpp:
        (WebCore):
        (WebCore::Internals::simulateAudioInterruption): Added to call the
        method to stop the element because of a higher prio stream at the
        tests.

2013-03-17  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] Fix and improve dist hooks for translations
        https://bugs.webkit.org/show_bug.cgi?id=112519

        Reviewed by Carlos Garcia Campos.

        * GNUmakefile.am: move translation-related rules and lists to the po directory's
        GNUmakefile.am.

2013-03-17  Carlos Garcia Campos  <cgarcia@igalia.com>

        [ENCHANT] Invalid charset encoding used for spelling guess context menu items
        https://bugs.webkit.org/show_bug.cgi?id=112516

        Reviewed by Gustavo Noronha Silva.

        Convert spelling guesses returned by enchant to UTF-16 before
        passing them to WebCore.

        * platform/text/enchant/TextCheckerEnchant.cpp:
        (WebCore::TextCheckerEnchant::getGuessesForWord): Use
        String::fromUTF8().

2013-03-14  Xan Lopez  <xlopez@igalia.com>

        [GTK] Wrong ASSERT in AudioDestinationGstreamer::stop
        https://bugs.webkit.org/show_bug.cgi?id=112344

        Reviewed by Philippe Normand.

        Correct erroneous ASSERT, we want both member variables to exist.

        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::AudioDestinationGStreamer::stop):

2013-03-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add webkit_uri_request_get_http_headers to WebKit2 GTK+ API
        https://bugs.webkit.org/show_bug.cgi?id=112160

        Reviewed by Martin Robinson.

        * platform/network/soup/GOwnPtrSoup.cpp:
        (WTF::SoupMessageHeaders): Add freeOwnedGPtr implementation for
        SoupMessageHeaders.
        (WTF):
        * platform/network/soup/GOwnPtrSoup.h:
        (WTF):
        * platform/network/soup/ResourceRequest.h:
        (ResourceRequest):
        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::updateSoupMessageHeaders): New function
        to update the given SoupMessageHeaders with the ResourceRequest
        headers.
        (WebCore::ResourceRequest::updateFromSoupMessageHeaders): New
        function to update the ResourceRequest headers with the given
        SoupMessageHeaders.
        (WebCore::ResourceRequest::updateSoupMessage): Use
        updateSoupMessageHeaders() to update the headers.
        (WebCore::ResourceRequest::toSoupMessage): Ditto.
        (WebCore::ResourceRequest::updateFromSoupMessage): Use
        updateFromSoupMessageHeaders to update the headers.

2013-03-12  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Remove HILDON_CPPFLAGS and HILDON_CFLAGS references from GNUmakefiles
        https://bugs.webkit.org/show_bug.cgi?id=112163

        Reviewed by Martin Robinson.

        No new tests - no new functionality, merely a cleanup.

        * GNUmakefile.am: The Hildon dependency doesn't exist anymore so there's no need for
        references to HILDON_CPPFLAGS and HILDON_CFLAGS.

2013-03-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Split GtkAuthenticationDialog in two widgets
        https://bugs.webkit.org/show_bug.cgi?id=103644

        Reviewed by Xan Lopez.

        The current GtkAuthenticationDialog implements both the common
        logic and widgets to implement a real GtkDialog and a widget to be
        embedded in any container. WebKit1 uses a GtkDialog while WebKit2
        embeds the dialog in the WebView. This patch splits the code to
        leave in Platform only the code that is actually common, leaving
        the widget implementation to the WebKit layer, using a dialog in
        WebKit1 and embedding auth widget in the WebView in WebKit2.

        * GNUmakefile.list.am: Add new files to compilation.
        * platform/gtk/GtkAuthenticationDialog.cpp: Removed.
        * platform/gtk/GtkAuthenticationDialog.h: Removed.
        * platform/gtk/WebKitAuthenticationWidget.cpp: Added.
        (_WebKitAuthenticationWidgetPrivate):
        (packTwoColumnLayoutInBox):
        (createLabel):
        (createEntry):
        (webkitAuthenticationWidgetInitialize):
        (webkitAuthenticationWidgetFinalize):
        (webkit_authentication_widget_init):
        (webkit_authentication_widget_class_init):
        (webkitAuthenticationWidgetNew):
        (webkitAuthenticationWidgetCreateCredential):
        (webkitAuthenticationWidgetGetChallenge):
        * platform/gtk/WebKitAuthenticationWidget.h: Added.
        (_WebKitAuthenticationWidget):
        (_WebKitAuthenticationWidgetClass):

2013-03-12  Tomas Popela  <tpopela@redhat.com>

        [Gtk] NBSP are not replaced when using X clipboard
        https://bugs.webkit.org/show_bug.cgi?id=112118

        Reviewed by Martin Robinson.

        We're not replacing nbsp with spaces when using X clipboard
        (Shift+Insert or middle mouse button).

        * platform/gtk/DataObjectGtk.cpp:
        (WebCore::DataObjectGtk::text):

2013-03-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] ResourceRequest::updateSoupMessage doesn't update the URI of the soup message
        https://bugs.webkit.org/show_bug.cgi?id=112040

        Reviewed by Gustavo Noronha Silva.

        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::updateSoupMessage): Update the soup
        message URI with the ResourceRequest URL.

2013-03-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

        Fix offset handling in GStreamer WebKitWebSource.
        https://bugs.webkit.org/show_bug.cgi?id=111888

        Reviewed by Philippe Normand.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcSeekDataCb):
        (StreamingClient::didReceiveData):
        The offset handling in WebKitWebSource was completely wrong
        before and caused wrong offsets to be set on the GStreamer buffers
        after a seek.

        Apart from that there was also a race condition that happens
        when a downstream element causes seeks in very short succession
        and is switching between two different parts of the stream.

2013-03-07  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Limit the supported compilers to GCC >= 4.7 and Clang >= 3.0
        https://bugs.webkit.org/show_bug.cgi?id=109932

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Replace references to SYMBOL_VISIBILITY_INLINES and SYMBOL_VISIBILITY variables with the actual flags.
        They are now available by default due to the limited set of supported compilers.
        * bindings/gobject/GNUmakefile.am: Ditto.

2013-02-21  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Move feature overriding to the configure phase
        https://bugs.webkit.org/show_bug.cgi?id=110293

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am: No longer include GNUmakefile.features.am. We don't
        have to process the result of this file or do any modification of
        feature_defines_override, because this variable is gone.

2013-03-06  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [soup] session cookies are not correctly reported in getRawCookies()
        https://bugs.webkit.org/show_bug.cgi?id=111584

        Reviewed by Martin Robinson.

        As per libsoup documentation, SoupCookie->expires is NULL for session cookies.
        However, the soup implementation for getRawCookies() does not check for NULL
        case before passing the value to soup_date_to_time_t(), which leads to run time
        warnings.

        We should also pass true for WebCore::Cookie's session argument if
        SoupCookie->expires is NULL. The current implementation reports the cookie as a
        session one if soup_cookie_jar_is_persistent(jar) returns true, which is
        inaccurate.

        No new tests, no behavior change for layout tests as Web Inspector currently
        ignores the "session" member and uses expires/max-age instead to deduce it.

        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::getRawCookies):

2013-03-06  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] Enable translations for WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=111398

        Reviewed by Martin Robinson.

        Build change only, thus no tests.

        * GNUmakefile.am: distribute po files.
        * platform/gtk/po/POTFILES.in: adjust paths for translatable files.

2013-03-04  Christian Biesinger  <cbiesinger@chromium.org>

        REGRESSION (r143643): Buttons containing floats render differently
        https://bugs.webkit.org/show_bug.cgi?id=110933

        Reviewed by Ojan Vafai.

        Test: fast/forms/button-with-float.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
        Also include new flexbox as a renderer that needs to enclose
        overhanging floats. Flex boxes establish a block formatting context,
        so they need to contain floats:
        http://dev.w3.org/csswg/css3-flexbox/#flex-items

2013-02-25  Gustavo Noronha Silva  <gns@gnome.org>

        Build fix for gtk2-based library.

        Reviewed by Martin Robinson.

        * platform/gtk/WidgetRenderingContext.cpp: move gtk2 check to after the config.h
        include, which is the one that includes autotoolsconfig.h, where the gtk2 define
        lives.

2013-02-24  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] GTK+ 2 build broken since GTK_API_VERSION_2 moved to autoconfig.h
        https://bugs.webkit.org/show_bug.cgi?id=110702

        Reviewed by Martin Robinson.

        No tests. Build fix, no behaviour change.

        * platform/gtk/GtkVersioning.h: include the autotoolsconfig.h header,
        which contains the GTK_API_VERSION_2 define now.

2013-02-25  Sergio Villar Senin  <svillar@igalia.com>

        [soup] "Too many redirects" error loading chat in plus.google.com
        https://bugs.webkit.org/show_bug.cgi?id=64575

        Reviewed by Martin Robinson.

        Set the firstPartyForCookies for the new request on redirects to
        the URL used for redirection.

        Test: http/tests/cookies/set-cookie-on-redirect.html

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::doRedirect):

2013-02-21  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Control+Shift+Up/Down selection works backwards
        https://bugs.webkit.org/show_bug.cgi?id=110459

        Reviewed by Martin Robinson.

        * platform/gtk/KeyBindingTranslator.cpp:
        (WebCore): The translation table for paragraph selection
        commands is backwards, fix it.

2013-02-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.am: Add CodeGeneratorInspectorStrings.py to
        EXTRA_DIST.

2013-02-21  Martin Robinson  <mrobinson@igalia.com>

        A couple more 'make dist' fixes for WebKitGTK+.

        * GNUmakefile.list.am: Add a missing file to the source list.

2013-02-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.list.am: Add missing files to compilation.

2013-02-21  Alberto Garcia  <albgarcia@rim.com>

        [BlackBerry] Fix access to ResourceHandle::context
        https://bugs.webkit.org/show_bug.cgi?id=110443

        Reviewed by Carlos Garcia Campos.

        This changed in r141981.

        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
        (WebCore::ResourceHandle::start):

2013-02-21  Alberto Garcia  <albgarcia@rim.com>

        [BlackBerry] GraphicsLayerBlackBerry: rename showDebugBorder to isShowingDebugBorder
        https://bugs.webkit.org/show_bug.cgi?id=110453

        Reviewed by Carlos Garcia Campos.

        This changed in r133517.

        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
        (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):

2013-02-21  Peter Rybin  <prybin@chromium.org>

        Web Inspector: take large strings out of CodeGeneratorInspector.py
        https://bugs.webkit.org/show_bug.cgi?id=110159

        Reviewed by Yury Semikhatsky.

        Python script is refactored.

        * inspector/CodeGeneratorInspector.py:
        * inspector/CodeGeneratorInspectorStrings.py: Added.
        (InspectorFrontend_h):
        (InspectorFrontendChannel):
        (InspectorArray):
        (InspectorObject):
        (String):
        (InspectorFrontend):
        (InspectorBackendDispatcher_h):
        (InspectorAgent):
        (InspectorBackendDispatcherImpl):
        (InspectorBackendDispatcher):
        (CallbackBase):
        (void):
        (HashMap):
        (OptOutput):
        (ExactlyInt):
        (RuntimeCastHelper):
        (provides):
        (typename):
        (Array):
        (Builder):

2013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143581.
        http://trac.webkit.org/changeset/143581
        https://bugs.webkit.org/show_bug.cgi?id=110457

        Breaks Windows builds (compile + link) (Requested by apavlov
        on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryTypes):
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
        (WebCore::InspectorDOMStorageAgent::clearFrontend):
        (WebCore::InspectorDOMStorageAgent::restore):
        (WebCore::InspectorDOMStorageAgent::enable):
        (WebCore::InspectorDOMStorageAgent::disable):
        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
        (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
        (WebCore::InspectorDOMStorageAgent::storageId):
        (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
        (WebCore::InspectorDOMStorageAgent::clearResources):
        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
        * inspector/InspectorDOMStorageAgent.h:
        (WebCore):
        (WebCore::InspectorDOMStorageAgent::create):
        (InspectorDOMStorageAgent):
        * inspector/InspectorDOMStorageResource.cpp: Added.
        (WebCore):
        (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
        (WebCore::InspectorDOMStorageResource::isSameOriginAndType):
        (WebCore::InspectorDOMStorageResource::bind):
        (WebCore::InspectorDOMStorageResource::unbind):
        (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
        * inspector/InspectorDOMStorageResource.h: Added.
        (WebCore):
        (InspectorDOMStorageResource):
        (WebCore::InspectorDOMStorageResource::create):
        (WebCore::InspectorDOMStorageResource::id):
        (WebCore::InspectorDOMStorageResource::storageArea):
        (WebCore::InspectorDOMStorageResource::frame):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::didUseDOMStorage):
        (WebCore):
        * inspector/InspectorPageAgent.cpp:
        * inspector/InspectorPageAgent.h:
        (InspectorPageAgent):
        * inspector/front-end/DOMStorage.js:
        (WebInspector.DOMStorage):
        (WebInspector.DOMStorage.prototype.get id):
        (WebInspector.DOMStorage.prototype.get domain):
        (WebInspector.DOMStorage.prototype.getEntries):
        (WebInspector.DOMStorage.prototype.setItem):
        (WebInspector.DOMStorage.prototype.removeItem):
        (WebInspector.DOMStorageModel):
        (WebInspector.DOMStorageModel.prototype._addDOMStorage):
        (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
        (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
        (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
        (WebInspector.DOMStorageModel.prototype.storageForId):
        (WebInspector.DOMStorageModel.prototype.storages):
        (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
        * inspector/front-end/DOMStorageItemsView.js:
        (WebInspector.DOMStorageItemsView.prototype._update):
        (WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
        (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel):
        (WebInspector.ResourcesPanel.prototype._initialize):
        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
        (WebInspector.ResourcesPanel.prototype._addDOMStorage):
        (WebInspector.DOMStorageTreeElement):
        (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::sessionStorage):
        (WebCore::DOMWindow::localStorage):

2013-02-21  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Get rid of parsedURL in uiSourceCode, use name and path for displayName instead.
        https://bugs.webkit.org/show_bug.cgi?id=110335

        Reviewed by Alexander Pavlov.

        Replaced UISourceCode.parsedURL with UISourceCode.displayName().

        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorView.prototype._updateScriptTitle):
        (WebInspector.NavigatorView.prototype.getOrCreateFolderTreeElement):
        (WebInspector.NavigatorFolderTreeElement):
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.displayNameForURL):
        * inspector/front-end/RevisionHistoryView.js:
        (WebInspector.RevisionHistoryView.prototype._createUISourceCodeItem):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):
        (WebInspector.UISourceCode.prototype.displayName):
        (WebInspector.UISourceCode.prototype.urlChanged):

2013-02-21  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
        https://bugs.webkit.org/show_bug.cgi?id=109572

        Reviewed by Vsevolod Vlasov.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryTypes):
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
        (WebCore::InspectorDOMStorageAgent::clearFrontend):
        (WebCore::InspectorDOMStorageAgent::isEnabled):
        (WebCore::InspectorDOMStorageAgent::enable):
        (WebCore::InspectorDOMStorageAgent::disable):
        (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
        (WebCore::toErrorString):
        (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
        (WebCore::InspectorDOMStorageAgent::storageId):
        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
        (WebCore::InspectorDOMStorageAgent::findStorageArea):
        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
        * inspector/InspectorDOMStorageAgent.h:
        (WebCore):
        (WebCore::InspectorDOMStorageAgent::create):
        (InspectorDOMStorageAgent):
        * inspector/InspectorDOMStorageResource.cpp: Removed.
        * inspector/InspectorDOMStorageResource.h: Removed.
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
        (WebCore):
        * inspector/InspectorPageAgent.h:
        (InspectorPageAgent):
        * inspector/front-end/DOMStorage.js:
        (WebInspector.DOMStorage):
        (WebInspector.DOMStorage.storageId):
        (WebInspector.DOMStorage.prototype.get id):
        (WebInspector.DOMStorage.prototype.get securityOrigin):
        (WebInspector.DOMStorage.prototype.getItems):
        (WebInspector.DOMStorage.prototype.setItem):
        (WebInspector.DOMStorage.prototype.removeItem):
        (WebInspector.DOMStorageModel):
        (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
        (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
        (WebInspector.DOMStorageModel.prototype._storageKey):
        (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
        (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
        (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
        (WebInspector.DOMStorageModel.prototype.storageForId):
        (WebInspector.DOMStorageModel.prototype.storages):
        * inspector/front-end/DOMStorageItemsView.js:
        (WebInspector.DOMStorageItemsView.prototype._update):
        (WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
        (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel):
        (WebInspector.ResourcesPanel.prototype._initialize):
        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
        (WebInspector.ResourcesPanel.prototype._domStorageRemoved):
        (WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
        (WebInspector.DOMStorageTreeElement):
        (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::sessionStorage):
        (WebCore::DOMWindow::localStorage):

2013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Console] Add console API message types for profile/profileEnd.
        https://bugs.webkit.org/show_bug.cgi?id=109790

        Reviewed by Pavel Feldman.

        With profile/profileEnd message types we will gain more control over
        output messages.

        * English.lproj/localizedStrings.js: Added corresponging strings.
        * inspector/ConsoleAPITypes.h: Added enum members.
        * inspector/Inspector.json: Ditto.
        * inspector/front-end/ConsoleModel.js: Ditto.
        * inspector/ConsoleMessage.cpp:
        (WebCore::messageTypeValue): Added cases.
        * inspector/InspectorProfilerAgent.cpp: Adopted changes.
        * inspector/front-end/inspector.js: Ditto.
        * inspector/front-end/ConsoleMessage.js:
        Added message generators for introduced message types.
        * inspector/front-end/ProfilesPanel.js:
        Turned showProfileForURL(url) to showProfile(typeId, uid).
        * inspector/front-end/ProfilesPanelDescriptor.js:
        (WebInspector.ProfilesPanelDescriptor.resolveProfileTitle): Added.
        * inspector/front-end/ResourceUtils.js: Removed linkifier plugins.

2013-02-21  Tamas Czene  <tczene@inf.u-szeged.hu>

        OpenCL implementation of FEMerge filter.
        https://bugs.webkit.org/show_bug.cgi?id=110193

        Reviewed by Zoltan Herczeg.

        In case of odd number of parameters the first parameter is copied to the destination image and
        the rest of the parameters are merged in pairs.

        * Target.pri:
        * platform/graphics/filters/FEMerge.h:
        (FEMerge):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
        (FilterContextOpenCL):
        * platform/graphics/gpu/opencl/OpenCLFEMerge.cpp: Added.
        (WebCore):
        (WebCore::FilterContextOpenCL::compileFEMerge):
        (WebCore::FilterContextOpenCL::copy): This is a simple copy method.
        (WebCore::FilterContextOpenCL::applyFEMerge):
        (WebCore::FEMerge::platformApplyOpenCL):

2013-02-21  Keishi Hattori  <keishi@webkit.org>

        Add event dispatch class for the new calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=110131

        Reviewed by Kent Tamura.

        Adding event dispatcher class as part of the new calendar picker patch at Bug 109439.

        No new tests. Code is not yet used.

        * Resources/pagepopups/calendarPicker.js:
        (EventEmitter):
        (EventEmitter.prototype.on): Adds a callback for an event.
        (EventEmitter.prototype.hasListener): Returns true if more than one listeners exist for an event type.
        (EventEmitter.prototype.removeListener): Removes an event listener.
        (EventEmitter.prototype.dispatchEvent): Dispatches an event to all callbacks. Takes variable number of arguments.

2013-02-21  Ken Kania  <kkania@chromium.org>

        Web Inspector: Add command for selecting files for file input element
        https://bugs.webkit.org/show_bug.cgi?id=109308

        Reviewed by Pavel Feldman.

        Test: inspector-protocol/dom/setFileInputFiles.html

        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::canSetFileInputFiles):
        (InspectorClient):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::setFileInputFiles):
        (WebCore):
        * inspector/InspectorDOMAgent.h:
        (WebCore):
        (WebCore::InspectorDOMAgent::create):
        (InspectorDOMAgent):

2013-02-21  Pan Deng  <pan.deng@intel.com>

        [Web Inspector]Add WebSocket networking events in Timeline panel.
        https://bugs.webkit.org/show_bug.cgi?id=105527.

        Reviewed by Pavel Feldman.

        This patch add four WebSocket networking events in Timeline panel. The Events
        are CreateWebSocket, SendWebSocketHandshakeRequest, ReceiveWebSocketHandShakeResponse
        and DestoryWebSocket. Thanks to Kitamura san's previous work.

        Test: http/tests/inspector/websocket/timeline-websocket-event.html

        * English.lproj/localizedStrings.js:
        * Modules/websockets/WebSocketChannel.cpp: Add protocol information
        (WebCore::WebSocketChannel::connect):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didCreateWebSocketImpl): Add Timeline agent instrumentation for websocket
        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl): Ditto
        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl): Ditto
        (WebCore::InspectorInstrumentation::didCloseWebSocketImpl): Ditto
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::didCreateWebSocket):
        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
        (WebCore::InspectorInstrumentation::didCloseWebSocket):
        * inspector/InspectorTimelineAgent.cpp:
        (TimelineRecordType):
        (WebCore):
        (WebCore::InspectorTimelineAgent::didCreateWebSocket): Add Timeline record for websocket create
        (WebCore::InspectorTimelineAgent::addWebSocketRecord): Add general websocket record
        (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest): Add Timeline record for websocket handshake request send
        (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse): Add Timeline record for websocket handshake response receive
        (WebCore::InspectorTimelineAgent::didDestroyWebSocket): Add Timeline record for websocket destroy
        * inspector/InspectorTimelineAgent.h:
        (WebCore):
        (InspectorTimelineAgent):
        * inspector/TimelineRecordFactory.h:
        (TimelineRecordFactory):
        (WebCore::TimelineRecordFactory::createWebSocketCreateData):
        (WebCore::TimelineRecordFactory::createGenericWebSocketData):
        * inspector/front-end/TimelineModel.js: Add Timeline record type for websocket
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel._initRecordStyles):
        (WebInspector.TimelinePresentationModel.prototype.reset): Add slot to store WebSocket Create record
        (WebInspector.TimelinePresentationModel.Record):
        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview): Add PopupContent for websocket record, including url and protocol

2013-02-21  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>

        [Qt] Fix pkg-config dependencies of QtWebKit itself

        Reviewed by Simon Hausmann.

        Don't override QMAKE_PKGCONFIG_REQUIRES needlessly.

        * WebCore.pri:

2013-02-21  Nils Barth  <nbarth@google.com>

        File upload control doesn't apply CSS vertical padding or border to file name
        https://bugs.webkit.org/show_bug.cgi?id=109011

        Reviewed by Hajime Morrita.

        Test: fast/forms/file/file-vertical-padding-border.html

        * rendering/RenderFileUploadControl.cpp:
            Add borderTop() and paddingTop() when computing position.
        (WebCore::RenderFileUploadControl::paintObject):

2013-02-20  Alexey Proskuryakov  <ap@apple.com>

        Stop hardcoding knowledge about blob protocol in ResourceHandle
        https://bugs.webkit.org/show_bug.cgi?id=110382

        Reviewed by Anders Carlsson.

        * platform/network/BlobRegistry.h:
        * platform/network/chromium/BlobRegistryProxy.h:
        Removed loadResourceSynchronously(). Chromium did not even implement it, and
        cross-platform code doesn't need it any more either.

        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::loadResourceSynchronously): A function to load a blob synchronously,
        suitable for being in a ResourceHandle map.
        (WebCore::registerBlobResourceHandleConstructor): Register loadResourceSynchronously too.
        (WebCore::BlobRegistryImpl::createResourceHandle): Don't make policy decisions here,
        it's just a registry. Moved code for checking request method down to BlobResourceHandle.

        * platform/network/BlobRegistryImpl.h: Removed BlobRegistryImpl::loadResourceSynchronously().
        A registry shouldn't load resources, and it already has enough accessors to implement
        this externally.

        * platform/network/BlobResourceHandle.h:
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::createAsync): Renamed from create(), to make it clear
        that it's not OK to call from synchronous loader. Moved method check here.
        (WebCore::BlobResourceHandle::loadResourceSynchronously): Moved method check here.
        We used to fall through to NSURLConnection based loader when method was not GET,
        which of course resulted in an error eventually, but was just wrong.

        * platform/network/ResourceHandle.cpp:
        (WebCore::builtinResourceHandleSynchronousLoaderMap): Added a map for synchronous case.
        (WebCore::ResourceHandle::registerBuiltinSynchronousLoader): Ditto.
        (WebCore::ResourceHandle::loadResourceSynchronously): We no longer need to hardcode
        knowledge about blobRegistry and blobs here.

        * platform/network/ResourceHandle.h: Added registerBuiltinSynchronousLoader().

        * platform/network/chromium/ResourceHandle.h: Removed loadResourceSynchronously(),
        which was not implemented for Chromium.

2013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TabbedEditorContainer and OpenResourceDialog should show uiSourceCode path and name instead of parsedURL
        https://bugs.webkit.org/show_bug.cgi?id=110334

        Reviewed by Alexander Pavlov.

        Introduced uiSourceCode.name() that returns a name based on uiSourceCode path.
        OpenResourceDialog now shows uiSourceCode workspace path as a subtitle.
        TabbedEditorContainer now shows uiSourceCode name in the tab header.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.OpenResourceDialog.filterOutEmptyURLs):
        (WebInspector.OpenResourceDialog):
        (WebInspector.OpenResourceDialog.prototype.itemTitleAt):
        (WebInspector.OpenResourceDialog.prototype.itemSubtitleAt):
        (WebInspector.OpenResourceDialog.prototype.itemKeyAt):
        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorView.prototype._updateScriptTitle):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.prototype._titleForFile):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.name):

2013-02-20  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: debugger buttons are scrolled along with the sidebar content.
        https://bugs.webkit.org/show_bug.cgi?id=110434

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/scriptsPanel.css:
        (div.sidebar-pane-stack#scripts-debug-sidebar-contents, #scripts-sidebar-stack-pane):

2013-02-20  Wei James  <james.wei@intel.com>

        ChannelMergerNode may need check for deferred updating of output channels
        https://bugs.webkit.org/show_bug.cgi?id=108863

        There can in rare cases be a slight delay before the output bus is updated
        to the new number of channels because of tryLocks() in the context's
        updating system. So need to check the channel number before processing.

        Reviewed by Chris Rogers.

        * Modules/webaudio/ChannelMergerNode.cpp:
        (WebCore::ChannelMergerNode::ChannelMergerNode):
        (WebCore::ChannelMergerNode::process):
        (WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
        * Modules/webaudio/ChannelMergerNode.h:
        (ChannelMergerNode):

2013-02-20  Pan Deng  <pan.deng@intel.com>

        [Web Inspector] Fix Sort by Initiator functionality of Network Panel.
        https://bugs.webkit.org/show_bug.cgi?id=109135.

        Reviewed by Pavel Feldman.

        A refactor for request initiator types, and the sort by Initiator functionality 
        was changed to sort by url and line number that displayed in initiator cell.

        No new tests.

        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell): save initiator displayedURL and displayedLineNumber
        (WebInspector.NetworkDataGridNode.InitiatorComparator):
        * inspector/front-end/NetworkRequest.js:

2013-02-20  Eric Seidel  <eric@webkit.org>

        WebVTTParser copies character buffer more often than necessary
        https://bugs.webkit.org/show_bug.cgi?id=103319

        Reviewed by Eric Carlson.

        Previously this codepath was creating a String just to parse the timestamp
        and then if the timestamp was valid, was creating a second string.
        I've fixed it to only create one string and use it in both places.
        I also fixed this codepath to use 8bit strings when possible, per the FIXME.

        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken):

2013-02-20  Mike West  <mkwst@chromium.org>

        Mouseup event does not fire on Scroll Bar
        https://bugs.webkit.org/show_bug.cgi?id=25811

        Reviewed by Tony Chang.

        Currently, clicking on a scrollbar fires a mousedown event, but not a
        mouseup event. This causes problems for code like jQuery UI's
        draggable[1], as the drag starts, but is never cancelled. Other use
        cases are noted in the slightly old Chromium bug[2].

        If a mouseup event is received after a mousedown event on a scrollbar,
        this patch dispatches a mouseup event on the same node the mousedown
        event dispatched on. This matches Gecko's behavior.

        [1]: http://bugs.jqueryui.com/ticket/6925
        [2]: http://crbug.com/14204

        Tests: fast/scrolling/scrollbar-mousedown-mouseup.html
               fast/scrolling/scrollbar-mousedown-move-mouseup.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):
            If a mouseup event follow a mousedown event on a scrollbar,
            dispatch an event on the same node from which the mousedown event
            was triggered.

2013-02-20  Takashi Sakamoto  <tasak@google.com>

        [Refactoring] Make m_state an on-stack object
        https://bugs.webkit.org/show_bug.cgi?id=109909

        Reviewed by Antti Koivisto.

        Mode m_state, an instance of StyleResolver::State, an on-stack object.
        The state is only required in styleForElement, styleForKeyframe and
        so on. No need to keep the state outside of those methods.

        No new tests, because just refactoring.

        * css/BasicShapeFunctions.cpp:
        (WebCore::convertToLength):
        (WebCore::basicShapeForValue):
        * css/BasicShapeFunctions.h:
        (WebCore):
        Replaced StyleResolver* with StyleResolver::State&.
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::gradientWithStylesResolved):
        * css/CSSGradientValue.h:
        (CSSGradientValue):
        Replaced StyleResolver* with StyleResolver::State&.
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::style):
        (WebCore::CSSToStyleMap::rootElementStyle):
        (WebCore::CSSToStyleMap::useSVGZoomRules):
        (WebCore::CSSToStyleMap::styleImage):
        * css/CSSToStyleMap.h:
        (WebCore):
        (WebCore::CSSToStyleMap::CSSToStyleMap):
        (CSSToStyleMap):
        Replaced StyleResolver* with StyleResolver::State&.
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        Replaced m_state with state which is given as an argument of
        applySVGProperty.
        * css/StyleBuilder.cpp:
        (WebCore::ApplyPropertyExpanding::applyInheritValue):
        (WebCore::ApplyPropertyExpanding::applyInitialValue):
        (WebCore::ApplyPropertyExpanding::applyValue):
        (WebCore::ApplyPropertyDefaultBase::applyInheritValue):
        (WebCore::ApplyPropertyDefaultBase::applyInitialValue):
        (WebCore::ApplyPropertyDefaultBase::applyValue):
        (WebCore::ApplyPropertyDefault::applyValue):
        (WebCore::ApplyPropertyNumber::applyValue):
        (WebCore::ApplyPropertyStyleImage::applyValue):
        (WebCore::ApplyPropertyAuto::applyInheritValue):
        (WebCore::ApplyPropertyAuto::applyInitialValue):
        (WebCore::ApplyPropertyAuto::applyValue):
        (WebCore::ApplyPropertyClip::convertToLength):
        (WebCore::ApplyPropertyClip::applyInheritValue):
        (WebCore::ApplyPropertyClip::applyInitialValue):
        (WebCore::ApplyPropertyClip::applyValue):
        (WebCore::ApplyPropertyColor::applyInheritValue):
        (WebCore::ApplyPropertyColor::applyInitialValue):
        (WebCore::ApplyPropertyColor::applyValue):
        (WebCore::ApplyPropertyColor::applyColorValue):
        (WebCore::ApplyPropertyDirection::applyValue):
        (WebCore::ApplyPropertyLength::applyValue):
        (WebCore::ApplyPropertyString::applyValue):
        (WebCore::ApplyPropertyBorderRadius::applyValue):
        (WebCore::ApplyPropertyFillLayer::applyInheritValue):
        (WebCore::ApplyPropertyFillLayer::applyInitialValue):
        (WebCore::ApplyPropertyFillLayer::applyValue):
        (WebCore::ApplyPropertyComputeLength::applyValue):
        (WebCore::ApplyPropertyFont::applyInheritValue):
        (WebCore::ApplyPropertyFont::applyInitialValue):
        (WebCore::ApplyPropertyFont::applyValue):
        (WebCore::ApplyPropertyFontSize::applyInheritValue):
        (WebCore::ApplyPropertyFontSize::applyInitialValue):
        (WebCore::ApplyPropertyFontSize::applyValue):
        (WebCore::ApplyPropertyFontWeight::applyValue):
        (WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
        (WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
        (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
        (WebCore::ApplyPropertyBorderImage::applyValue):
        (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
        (WebCore::ApplyPropertyBorderImageModifier::applyValue):
        (WebCore::ApplyPropertyBorderImageSource::applyValue):
        (WebCore::ApplyPropertyCounter::emptyFunction):
        (WebCore::ApplyPropertyCounter::applyInheritValue):
        (WebCore::ApplyPropertyCounter::applyValue):
        (WebCore::ApplyPropertyCursor::applyInheritValue):
        (WebCore::ApplyPropertyCursor::applyInitialValue):
        (WebCore::ApplyPropertyCursor::applyValue):
        (WebCore::ApplyPropertyTextAlign::applyValue):
        (WebCore::ApplyPropertyTextDecoration::applyValue):
        (WebCore::ApplyPropertyLineHeight::applyValue):
        (WebCore::ApplyPropertyPageSize::applyInheritValue):
        (WebCore::ApplyPropertyPageSize::applyInitialValue):
        (WebCore::ApplyPropertyPageSize::applyValue):
        (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
        (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
        (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
        (WebCore::ApplyPropertyAnimation::map):
        (WebCore::ApplyPropertyAnimation::applyInheritValue):
        (WebCore::ApplyPropertyAnimation::applyInitialValue):
        (WebCore::ApplyPropertyAnimation::applyValue):
        (WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
        (WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
        (WebCore::ApplyPropertyOutlineStyle::applyValue):
        (WebCore::ApplyPropertyResize::applyValue):
        (WebCore::ApplyPropertyVerticalAlign::applyValue):
        (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
        (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
        (WebCore::ApplyPropertyAspectRatio::applyValue):
        (WebCore::ApplyPropertyZoom::resetEffectiveZoom):
        (WebCore::ApplyPropertyZoom::applyInheritValue):
        (WebCore::ApplyPropertyZoom::applyInitialValue):
        (WebCore::ApplyPropertyZoom::applyValue):
        (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
        (WebCore::ApplyPropertyDisplay::applyInheritValue):
        (WebCore::ApplyPropertyDisplay::applyInitialValue):
        (WebCore::ApplyPropertyDisplay::applyValue):
        (WebCore::ApplyPropertyClipPath::applyValue):
        (WebCore::ApplyPropertyExclusionShape::applyValue):
        (WebCore::ApplyPropertyImageResolution::applyInheritValue):
        (WebCore::ApplyPropertyImageResolution::applyInitialValue):
        (WebCore::ApplyPropertyImageResolution::applyValue):
        * css/StyleBuilder.h:
        (WebCore):
        (PropertyHandler):
        (WebCore::PropertyHandler::applyInheritValue):
        (WebCore::PropertyHandler::applyInitialValue):
        (WebCore::PropertyHandler::applyValue):
        Replaced StyleResolver* with StyleResolver::State&.
        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::StyleResolver::StyleResolver):
        Removed m_styleMap. Now m_styleMap is an on-stack object.
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::collectMatchingRulesForRegion):
        (WebCore::StyleResolver::sortAndTransferMatchedRules):
        (WebCore::StyleResolver::matchScopedAuthorRules):
        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
        (WebCore::StyleResolver::matchHostRules):
        (WebCore::StyleResolver::matchAuthorRules):
        (WebCore::StyleResolver::matchUserRules):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::sortMatchedRules):
        (WebCore::StyleResolver::matchAllRules):
        (WebCore::StyleResolver::initElement):
        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
        (WebCore::StyleResolver::canShareStyleWithControl):
        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::findSiblingForStyleSharing):
        (WebCore::StyleResolver::locateSharedStyle):
        (WebCore::StyleResolver::styleForElement):
        (WebCore::StyleResolver::styleForKeyframe):
        (WebCore::StyleResolver::keyframeStylesForAnimation):
        (WebCore::StyleResolver::pseudoStyleForElement):
        (WebCore::StyleResolver::styleForPage):
        (WebCore::StyleResolver::defaultStyleForElement):
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::StyleResolver::updateFont):
        (WebCore::StyleResolver::pseudoStyleRulesForElement):
        (WebCore::StyleResolver::ruleMatches):
        (WebCore::StyleResolver::checkRegionSelector):
        (WebCore::StyleResolver::applyProperties):
        (WebCore::StyleResolver::applyMatchedProperties):
        (WebCore::StyleResolver::isLeftPage):
        (WebCore::StyleResolver::applyPropertyWithNullCheck):
        (WebCore::StyleResolver::applyFontPropertyToStyle):
        (WebCore::StyleResolver::resolveVariables):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::styleImage):
        (WebCore::StyleResolver::cachedOrPendingFromValue):
        (WebCore::StyleResolver::generatedOrPendingFromValue):
        (WebCore::StyleResolver::setOrPendingFromValue):
        (WebCore::StyleResolver::cursorOrPendingFromValue):
        (WebCore::StyleResolver::checkForTextSizeAdjust):
        (WebCore::StyleResolver::checkForZoomChange):
        (WebCore::StyleResolver::checkForGenericFamilyChange):
        (WebCore::StyleResolver::initializeFontStyle):
        (WebCore::StyleResolver::setFontSize):
        (WebCore::StyleResolver::colorFromPrimitiveValue):
        (WebCore::StyleResolver::loadPendingSVGDocuments):
        (WebCore::StyleResolver::styleShader):
        (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
        (WebCore::StyleResolver::loadPendingShaders):
        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
        (WebCore::StyleResolver::parseCustomFilterParameter):
        (WebCore::StyleResolver::parseCustomFilterParameterList):
        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
        (WebCore::StyleResolver::createCustomFilterOperation):
        (WebCore::StyleResolver::createFilterOperations):
        (WebCore::StyleResolver::loadPendingImage):
        (WebCore::StyleResolver::loadPendingImages):
        (WebCore::StyleResolver::loadPendingResources):
        Just replaced m_state with state and added one more parameter to
        provide the state.
        (WebCore::StyleResolver::reportMemoryUsage):
        Since m_state was removed, removed a code for reporting m_state's
        memory usage.
        * css/StyleResolver.h:
        (StyleResolver):
        (WebCore::StyleResolver::isRightPage):
        (WebCore::StyleResolver::State::State):
        (WebCore::StyleResolver::State::document):
        Since State::m_element is not always available (sometimes, 0),
        added m_document to State and modified to return the m_document.
        (WebCore::StyleResolver::State::useSVGZoomRules):
        Moved StyleResolver to State.
        (State):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont):
        Moved the code, updating a style by using a given StylePropertySet,
        to StyleResolver.

2013-02-20  Ojan Vafai  <ojan@chromium.org>

        AutoTableLayout applies min-width redundantly with RenderTable
        https://bugs.webkit.org/show_bug.cgi?id=110426

        Reviewed by Emil A Eklund.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::computePreferredLogicalWidths):
        This code used to do something, but has since been superceded by
        code in RenderTable::computePreferredLogicalWidths.

2013-02-20  Dirk Schulze  <krit@webkit.org>

        Enable CANVAS_PATH flag
        https://bugs.webkit.org/show_bug.cgi?id=108508

        Uneviewed attempt to fix Qt minimal build.

        * html/canvas/DOMPath.h:
        (WebCore::DOMPath::DOMPath):

\2013-02-20  Mark Lam  <mark.lam@apple.com>

        Rename DatabaseBackendAsync to DatabaseBackend.
        https://bugs.webkit.org/show_bug.cgi?id=110422.

        Reviewed by Geoffrey Garen.

        This is a purely cosmetic change to make the naming consistent with
        the front-end Database.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/ChangeVersionWrapper.cpp:
        (WebCore::ChangeVersionWrapper::performPreflight):
        (WebCore::ChangeVersionWrapper::performPostflight):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::Database):
        (WebCore::Database::from):
        (WebCore::Database::backend):
        * Modules/webdatabase/Database.h:
        * Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.cpp.
        (WebCore::DatabaseBackend::DatabaseBackend):
        (WebCore::DatabaseBackend::openAndVerifyVersion):
        (WebCore::DatabaseBackend::performOpenAndVerify):
        (WebCore::DatabaseBackend::close):
        (WebCore::DatabaseBackend::runTransaction):
        (WebCore::DatabaseBackend::inProgressTransactionCompleted):
        (WebCore::DatabaseBackend::scheduleTransaction):
        (WebCore::DatabaseBackend::scheduleTransactionStep):
        (WebCore::DatabaseBackend::transactionClient):
        (WebCore::DatabaseBackend::transactionCoordinator):
        * Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.h.
        * Modules/webdatabase/DatabaseBackendAsync.cpp: Removed.
        * Modules/webdatabase/DatabaseBackendAsync.h: Removed.
        * Modules/webdatabase/DatabaseBackendBase.cpp:
        (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
        * Modules/webdatabase/DatabaseManager.cpp:
        * Modules/webdatabase/DatabaseServer.cpp:
        * Modules/webdatabase/DatabaseTask.cpp:
        (WebCore::DatabaseTask::DatabaseTask):
        (WebCore::DatabaseBackend::DatabaseOpenTask::DatabaseOpenTask):
        (WebCore::DatabaseBackend::DatabaseOpenTask::doPerformTask):
        (WebCore::DatabaseBackend::DatabaseOpenTask::debugTaskName):
        (WebCore::DatabaseBackend::DatabaseCloseTask::DatabaseCloseTask):
        (WebCore::DatabaseBackend::DatabaseCloseTask::doPerformTask):
        (WebCore::DatabaseBackend::DatabaseCloseTask::debugTaskName):
        (WebCore::DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask):
        (WebCore::DatabaseBackend::DatabaseTransactionTask::~DatabaseTransactionTask):
        (WebCore::DatabaseBackend::DatabaseTransactionTask::doPerformTask):
        (WebCore::DatabaseBackend::DatabaseTransactionTask::debugTaskName):
        (WebCore::DatabaseBackend::DatabaseTableNamesTask::DatabaseTableNamesTask):
        (WebCore::DatabaseBackend::DatabaseTableNamesTask::doPerformTask):
        (WebCore::DatabaseBackend::DatabaseTableNamesTask::debugTaskName):
        * Modules/webdatabase/DatabaseTask.h:
        (WebCore::DatabaseTask::database):
        (DatabaseTask):
        (WebCore::DatabaseBackend::DatabaseOpenTask::create):
        (DatabaseBackend::DatabaseOpenTask):
        (WebCore::DatabaseBackend::DatabaseCloseTask::create):
        (DatabaseBackend::DatabaseCloseTask):
        (WebCore::DatabaseBackend::DatabaseTableNamesTask::create):
        (DatabaseBackend::DatabaseTableNamesTask):
        * Modules/webdatabase/DatabaseThread.cpp:
        (WebCore::DatabaseThread::recordDatabaseOpen):
        (WebCore::DatabaseThread::recordDatabaseClosed):
        (WebCore::SameDatabasePredicate::SameDatabasePredicate):
        (SameDatabasePredicate):
        (WebCore::DatabaseThread::unscheduleDatabaseTasks):
        * Modules/webdatabase/DatabaseThread.h:
        * Modules/webdatabase/SQLStatementBackend.cpp:
        (WebCore::SQLStatementBackend::execute):
        (WebCore::SQLStatementBackend::setDatabaseDeletedError):
        (WebCore::SQLStatementBackend::setVersionMismatchedError):
        (WebCore::SQLStatementBackend::setFailureDueToQuota):
        * Modules/webdatabase/SQLStatementBackend.h:
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::create):
        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
        * Modules/webdatabase/SQLTransactionBackend.h:
        (WebCore::SQLTransactionBackend::database):
        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
        (WebCore::getDatabaseIdentifier):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-02-20  David Kilzer  <ddkilzer@apple.com>

        Upstream SharedTimerIOS.mm
        <http://webkit.org/b/110161>

        Reviewed by Benjamin Poulain.

        * Configurations/WebCore.xcconfig:
        (EXCLUDED_SOURCE_FILE_NAMES_iphoneos): Add SharedTimerMac.mm.
        * WebCore.xcodeproj/project.pbxproj: Add SharedTimerIOS.mm.
        * platform/ios/SharedTimerIOS.mm: Add.
        (WebCore):
        (-[WebCoreResumeNotifierIOS init]):
        (-[WebCoreResumeNotifierIOS dealloc]):
        (-[WebCoreResumeNotifierIOS didWake]):
        (WebCore::setSharedTimerFiredFunction):
        (WebCore::timerFired):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):

2013-02-20  Ojan Vafai  <ojan@chromium.org>

        Speculative fix for EFL and Windows compilers not realizing
        that all possible cases have a return value from this switch.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):

2013-02-20  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Fix overflow computation for column blocks.
        https://bugs.webkit.org/show_bug.cgi?id=110392.

        Reviewed by Simon Fraser.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::addOverflowFromChild):
        Exclude in-flow RenderFlowThreads from overflow propagation.

        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderRegion.h:
        (WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
         * rendering/RenderRegionSet.h:
        (RenderRegionSet):
        Override shouldHaveAutoLogicalHeight to always be false
        for region sets and for columns. Eventually we're going to try
        to leverage this code to do column balancing, and that's why
        RenderMultiColumnSet has a unique override.

2013-02-20  Brandon Jones  <bajones@google.com>
 
        Printing WebGL canvases in Chrome uses stale data after first print
        https://bugs.webkit.org/show_bug.cgi?id=110003
 
        Reviewed by Kenneth Russell.
 
        Unable to validate printed content automatically. No regression in existing WebGL tests.
 
         * html/canvas/WebGLRenderingContext.cpp:
         (WebCore):
         (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):

2013-02-20  Christian Biesinger  <cbiesinger@chromium.org>

        Incorrect rendering for flex boxes with percentage height in a table cell
        https://bugs.webkit.org/show_bug.cgi?id=110389

        Reviewed by Tony Chang.

        Tests: css3/flexbox/flex-percentage-height-in-table-standards-mode.html
               css3/flexbox/flex-percentage-height-in-table.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        Always update the logical height of the flex box, not just when it is
        auto. If necessary, the later updateLogicalHeight() call will adjust
        it.

2013-02-20  Philip Rogers  <pdr@google.com>

        Account for transform in SVG background images
        https://bugs.webkit.org/show_bug.cgi?id=110295

        Reviewed by Dirk Schulze.

        Tiled SVG background images are rendererd by drawing the SVG content into a temporary
        image buffer, then stamping out a tiled pattern using this buffer. Previously the
        image buffer did not account for CSS transforms which could result in pixelated backgrounds.

        This patch takes advantage of the context's transform when sizing the temporary tiling
        image buffer. Because the context's transform also includes scale, this patch simplifies
        the SVG image code to no longer track scale.

        Test: svg/as-background-image/svg-transformed-background.html

        * loader/cache/CachedImage.cpp:
        (WebCore):
        (WebCore::CachedImage::imageForRenderer):

            CachedImage::lookupOrCreateImageForRenderer no longer creates images so it has been
            refactored into just "imageForRenderer". Previously there were two versions of
            lookupOrCreateImageForRenderer; these have been folded into imageForRenderer.

        * loader/cache/CachedImage.h:
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawPatternForContainer):

            To create the temporary tiling image buffer, the final size in screen coordinates is
            needed. This is now computed using the current context's CTM. Because the CTM
            already includes the page scale, all page scale tracking can be removed.

            The adjustments to srcRect and the pattern transform are the same as before, just
            refactored to use imageBufferScale which has x and y components.

        * svg/graphics/SVGImage.h:
        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::setContainerSizeForRenderer):

            Because the page scale needed to be cached between calls to
            setContainerSizeForRenderer, this function was written to modify an existing cache
            entry. Because the page scale no longer needs to be tracked, this code has been
            simplified to re-write any existing cache entry.

        (WebCore::SVGImageCache::imageSizeForRenderer):

            This function has been simplified by calling SVGImageForContainer::size() instead
            of computing this value manually. The value returned remains the same, containing
            the container size multiplied by zoom.

        (WebCore::SVGImageCache::imageForRenderer):

            Previously we set the page scale on every call to imageForRenderer. Because page scale
            no longer needs to be tracked, this function has been simplified to simply return
            the cached SVGImageForContainer.

        * svg/graphics/SVGImageForContainer.cpp:
        (WebCore::SVGImageForContainer::drawPattern):
        * svg/graphics/SVGImageForContainer.h:
        (WebCore::SVGImageForContainer::create):
        (WebCore::SVGImageForContainer::SVGImageForContainer):
        (SVGImageForContainer):

2013-02-20  Jer Noble  <jer.noble@apple.com>

        Crash in com.apple.WebKit2.WebProcessService at com.apple.avfoundation: __73-[AVAssetResourceLoader _attemptDelegateHandlingOfRequestWithDictionary:]_block_invoke + 51
        https://bugs.webkit.org/show_bug.cgi?id=110385

        Reviewed by Eric Carlson.

        Ensure AVFoundation does not attempt to message a dead object by explicitly disassociating
        the AVAssetResourceLoaderDelegate on MediaPlayerPrivateAVFoundationObjC destruction.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):

2013-02-20  Ojan Vafai  <ojan@chromium.org>

        Positioned, replaced elements with intrinsic width keywords compute the wrong width
        https://bugs.webkit.org/show_bug.cgi?id=110393

        Reviewed by Emil A Eklund.

        Test: fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
        Add the intrinsic size keywords to the switch. Confusingly, we have to
        subtract the border and padding since the callers expect the content width.

        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
        Don't do the intrinsic ratio calculation if the width is an
        intrinsic width keyword, as per, http://dev.w3.org/csswg/css3-sizing/#replaced-intrinsic.

        (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
        (WebCore::RenderReplaced::computePreferredLogicalWidths):
        The old code was trying to apply the intrinsic ratio calculation to
        the intrinsic width, which is wrong per spec.

2013-02-20  Alec Flett  <alecflett@chromium.org>

        LevelDB: Remove excess vector copy
        https://bugs.webkit.org/show_bug.cgi?id=110399

        Reviewed by Tony Chang.

        Remove an extra copy introduced by the makeVector function.

        No new tests, this is covered by existing tests.

        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBDatabase::safeGet):

2013-02-20  Simon Fraser  <simon.fraser@apple.com>

        Zoomed, slow-scrolling pages keep recreating tiles when scrolled
        https://bugs.webkit.org/show_bug.cgi?id=110379

        Reviewed by Tim Horton.

        On slow-scrolling pages the TileCache makes the tiles the size of
        the visible rect to minimize per-tile painting overhead. If the size
        of that rect changes, the TileCache re-creates all the tiles.
        
        This was a problem whem zoomed, because mapping the visible rect
        through the scale transform and then rounding it would cause the
        size to keep changing, causing lots of tile re-creation.
        
        Fix by carrying the visibleRect around as a FloatRect, and doing
        the same for the exposedRect. We then only expand to integers
        when computing the tile size. This also fixes an issue where we could
        sometimes make extra tiles because of fractional bits of tiles at the edges,
        as shown by the test result change.

        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateVisibleRect):
        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setVisibleRect):
        (WebCore::TileCache::setExposedRect):
        (WebCore::TileCache::prepopulateRect):
        (WebCore::TileCache::computeTileCoverageRect):
        (WebCore::TileCache::tileSizeForCoverageRect):
        (WebCore::TileCache::blankPixelCountForTiles):
        (WebCore::TileCache::revalidateTiles):
        (WebCore::TileCache::ensureTilesForRect):
        * platform/graphics/ca/mac/WebTileLayer.mm:
        (-[WebTileLayer logFilledFreshTile]):

2013-02-20  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Implement the auto-placement algorithm without grid growth
        https://bugs.webkit.org/show_bug.cgi?id=110277

        Reviewed by Tony Chang.

        Tests: fast/css-grid-layout/grid-item-addition-auto-placement-update.html
               fast/css-grid-layout/grid-item-removal-auto-placement-update.html
               fast/css-grid-layout/grid-auto-flow-resolution.html (extended to cover more cases)

        This change implements most of the auto-placement algorithm per
        http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo

        To limit the size of the code change, it doesn't implement growing the grid if there
        are no empty grid areas. If we don't find any empty grid areas, we just insert in the first
        one, like what grid-auto-flow: none would do (which explains the test failures).

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
        Added this function to return the GridCoordinate of the next empty grid area along
        the iterator's direction.

        (WebCore::RenderGrid::placeItemsOnGrid):
        Split this function into the different steps below. For efficiency, collect the auto vs specified
        major axis grid items in different Vectors.

        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
        Added this function that implements part of step 1 of the algorithm (the grid items without
        auto row / column are already handled in placeItemsOnGrid).

        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
        Added this function that iterates over the auto grid items and call placeAutoMajorAxisItemOnGrid.

        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
        Added this method to handle the step 4 of the algorithm. Based on the minor axis's position,
        it either walks along the major axis once or several times until it finds an empty grid area
        for the grid item.

        (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
        (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
        (WebCore::RenderGrid::autoPlacementMajorAxisDirection):
        (WebCore::RenderGrid::autoPlacementMinorAxisDirection):
        Added these helper functions that return minor / major axis positions & direction.

        * rendering/RenderGrid.h:
        Added the previous new RenderGrid functions.

2013-02-20  Vincent Scheib  <scheib@chromium.org>

        Accept 'allowfullscreen' in addition to 'webkitallowfullscreen'.
        https://bugs.webkit.org/show_bug.cgi?id=110374

        Reviewed by Adam Barth.

        The fullscreen API also includes a new HTML attribute for iframes
        which permits its use. That attribute, 'allowfullcreen' is now
        included in the HTML specification [1] and is stable enough
        to remove the webkit prefix.

        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-allowfullscreen

        Tests: fullscreen/full-screen-enabled-prefixed.html
               fullscreen/full-screen-iframe-allowed-prefixed.html
               fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html

        * dom/Document.cpp:
        (WebCore::isAttributeOnAllOwners):
        (WebCore::Document::fullScreenIsAllowedForElement):
        (WebCore::Document::webkitFullscreenEnabled):
        * html/HTMLAttributeNames.in:

2013-02-20  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Remove references to SAFARI_THEME from Windows Solution.
        <rdar://problem/13258710>

        * config.h:
        * page/Settings.cpp:
        * page/Settings.h:
        * platform/win/ScrollbarThemeWin.cpp:
        * rendering/RenderThemeWin.cpp:

2013-02-20  Roger Fong  <roger_fong@apple.com>

        Get VS2010 Solution B&I ready.
        <rdar://problem/1322988>

        Rubberstamped by Timothy Horton.

        Add Production configuration. 
        Add a WebCore submit solution with a DebugSuffix configuration. 
        Modify WebCore.make as necessary.
        
        * DerivedSources.make:
        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
        * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
        * WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Added.
        * WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props:
        * WebCore.vcxproj/WebCore.make: Added.
        * WebCore.vcxproj/WebCore.sln: Removed.
        * WebCore.vcxproj/WebCore.submit.sln: Copied from Source/WebCore/WebCore.vcxproj/WebCore.sln.
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCoreGenerated.vcxproj:
        * WebCore.vcxproj/WebCoreGeneratedProduction.props: Added.
        * WebCore.vcxproj/WebCoreGeneratedRelease.props:
        * WebCore.vcxproj/WebCoreProduction.props: Added.
        * WebCore.vcxproj/WebCoreRelease.props:
        * WebCore.vcxproj/WebCoreTestSupport.vcxproj:

2013-02-20  Adam Klein  <adamk@chromium.org>

        [v8] Fix an erroneous WrapperGrouper call in preparation for refactoring
        https://bugs.webkit.org/show_bug.cgi?id=110396

        Reviewed by Kentaro Hara.

        This is in preparation for a refactor to expose a simplified
        WrapperGrouper interface to V8 wrapper classes enabling them to
        specify multiple roots per wrapper object. 

        * bindings/v8/V8GCController.cpp: Since MutationObservers are not Nodes, the correct call here is addObjectToGroup, as it is for all other non-Node wrappers.

2013-02-20  Levi Weintraub  <leviw@chromium.org>

        Line layout (but not pref widths) double-counts word spacing when between inlines
        https://bugs.webkit.org/show_bug.cgi?id=110381

        Reviewed by Emil A Eklund.

        When a word break with a space occurs between inlines and word-spacing is non-zero,
        line layout incorrectly committed the word-spacing value to the line twice, causing
        wrapping in inline-blocks. To fix this, clear the word-spacing value when between
        words and ignoring spaces, as we will already have added the word-spacing to the
        line.

        Test: fast/text/word-space-between-inlines.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):

2013-02-20  Nate Chapin  <japhet@chromium.org>

        Crash in WebCore::FrameLoader::checkCompleted()
        https://bugs.webkit.org/show_bug.cgi?id=110237

        Reviewed by Abhishek Arya.

        Test: http/tests/misc/delete-frame-during-readystatechange.html

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkCompleted): Protect before setReadyState() is called.

2013-02-20  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Limit LevelDB's max open files
        https://bugs.webkit.org/show_bug.cgi?id=109993

        Reviewed by Tony Chang.

        LevelDB keeps up to 1000 (by default) data files open at a time to
        avoid having to open() them. This has caused chromium to hit the
        process-wide open file limit. This patch changes max_open_files to 20,
        as that's the minimum permitted by LevelDB and we have no reason to
        think that performance will suffer because of the extra open calls.

        No new tests - a chromium browser test that tracks the open LevelDB
        files is plausible but is blocked on http://crbug.com/177249/.

        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::openDB):

2013-02-20  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Resize RenderMultiColumnSets around their columns.
        https://bugs.webkit.org/show_bug.cgi?id=110378.

        Reviewed by Dirk Schulze.

        Test: fast/multicol/newmulticol/positioned-with-constrained-height.html.

        * rendering/RenderBlock.h:
        (RenderBlock):
        Make computeOverflow public so that RenderMultiColumnFlowThread can
        access it.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::layout):
        Subclass layout to recompute the overflow for RenderMultiColumnBlock
        after the flow thread has finished layout. This way it can account
        for changes in RenderMultiColumnSets without having to do a second
        layout pass.

        * rendering/RenderMultiColumnFlowThread.h:
        (RenderMultiColumnFlowThread):
        Override layout().

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::columnCount):
        Clean up a comment that referred to portions as region rects still.

        (WebCore::RenderMultiColumnSet::setFlowThreadPortionRect):
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderRegion.h:
        (WebCore::RenderRegion::setFlowThreadPortionRect):
        Make setFlowThreadPortionRect virtual and actually mutate the size
        and position of RenderMultiColumnSets so that they enclose their
        column rects.

2013-02-20  Dirk Schulze  <krit@webkit.org>

        Enable CANVAS_PATH flag
        https://bugs.webkit.org/show_bug.cgi?id=108508

        Reviewed by Simon Fraser.

        Enable CANVAS_PATH flag on trunk.

        Existing tests cover the feature.

        * Configurations/FeatureDefines.xcconfig:

2013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143441.
        http://trac.webkit.org/changeset/143441
        https://bugs.webkit.org/show_bug.cgi?id=110376

        May be causing chromium content_browsertests failures.
        (Requested by vollick on #webkit).

        * bindings/v8/ScriptValue.cpp:
        (WebCore::ScriptValue::serialize):
        (WebCore::ScriptValue::getString):
        (WebCore::ScriptValue::toString):
        (WebCore::ScriptValue::toInspectorValue):
        * bindings/v8/ScriptValue.h:
        (WebCore::ScriptValue::ScriptValue):
        (WebCore::ScriptValue::operator=):
        (WebCore::ScriptValue::operator==):
        (WebCore::ScriptValue::isEqual):
        (WebCore::ScriptValue::isFunction):
        (WebCore::ScriptValue::isNull):
        (WebCore::ScriptValue::isUndefined):
        (WebCore::ScriptValue::isObject):
        (WebCore::ScriptValue::hasNoValue):
        (WebCore::ScriptValue::clear):
        (WebCore::ScriptValue::v8Value):
        (ScriptValue):
        * bindings/v8/SharedPersistent.h:
        (WebCore):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::InjectedScriptHost::scriptValueAsNode):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAttrGetterCustom):

2013-02-15  Dirk Schulze  <krit@webkit.org>

        [Chromium] Add runtime flag for CanvasPath
        https://bugs.webkit.org/show_bug.cgi?id=109997

        Reviewed by Adam Barth.

        Add runtime flag for Chromium.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        (WebCore::RuntimeEnabledFeatures::setCanvasPathEnabled):
        (WebCore::RuntimeEnabledFeatures::canvasPathEnabled):
        * html/canvas/DOMPath.idl:
        * page/DOMWindow.idl:

2013-02-20  Laszlo Gombos  <l.gombos@samsung.com>

        Remove unnecessary includes for Platform.h from headers
        https://bugs.webkit.org/show_bug.cgi?id=110300

        Reviewed by Alexey Proskuryakov.

        wtf/Platform.h only need to be included in a few places directly
        as it is included in config.h. Remove the unnecessay duplicate as
        it can be confusing.

        No new tests, no change in functionality.

        * platform/SecureTextInput.h:
        * platform/audio/Biquad.h:
        * platform/audio/FFTFrame.h:
        * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
        * platform/graphics/cpu/arm/filters/NEONHelpers.h:
        * platform/graphics/filters/FELighting.h:

2013-02-20  Florin Malita  <fmalita@chromium.org>

        [SVG] Update of element referenced by multiple 'use' nodes is absurdly slow
        https://bugs.webkit.org/show_bug.cgi?id=97905

        Reviewed by Dirk Schulze.

        Rebuilding the shadow and instance trees of dependent use nodes recursively can be
        extremely inefficient with non-trivial dependency graphs (the trees are not constructed
        in topological order).

        To avoid redundant buildShadowAndInstanceTree() invokations, separate the invalidation
        phase from the actual tree (re)building phase, and only descend into the dependency DAG
        during the invalidation phase (recursion also stops at nodes that have been previously
        invalidated).

        No new tests: functional coverage provided by existing tests, perfomance tracked by
        PerformanceTests/SVG/SvgNestedUse.html.

        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::buildPendingResource):
        (WebCore::SVGUseElement::buildShadowAndInstanceTree):
        (WebCore::SVGUseElement::invalidateShadowTree):
        (WebCore):
        (WebCore::SVGUseElement::invalidateDependentShadowTrees):
        * svg/SVGUseElement.h:
        (SVGUseElement):

2013-02-20  Tim Horton  <timothy_horton@apple.com>

        RenderLayerBacking should initialize TiledBacking's isInWindow state with Page's isInWindow, not isOnscreen
        https://bugs.webkit.org/show_bug.cgi?id=110370
        <rdar://problem/13254006>

        Reviewed by Simon Fraser.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):

2013-02-20  Mark Lam  <mark.lam@apple.com>

        Cleanup the SQLTransaction and SQLTransactionBackend state dispatch
        to only honor a state transition request if the associated database
        hasn't been interrupted.
        https://bugs.webkit.org/show_bug.cgi?id=110247.

        Reviewed by Antti Koivisto.

        No new tests.

        * Modules/webdatabase/SQLTransaction.cpp:
        (WebCore::SQLTransaction::performPendingCallback):
        (WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
        * Modules/webdatabase/SQLTransaction.h:
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
        (WebCore::SQLTransactionBackend::performNextStep):
        * Modules/webdatabase/SQLTransactionBackend.h:

2013-02-20  Alexey Proskuryakov  <ap@apple.com>

        ResourceHandle::loadResourceSynchronously should have blob support in cross-platform code
        https://bugs.webkit.org/show_bug.cgi?id=110364

        Reviewed by Anders Carlsson.

        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::loadResourceSynchronously):
        Added a cross-platform version to keep blob-related logic in one place.

        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        * platform/network/curl/ResourceHandleCurl.cpp:
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        * platform/network/win/ResourceHandleWin.cpp:
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        Renamed loadResourceSynchronously to platformLoadResourceSynchronously,
        removed blob handling from platforms that had it.

2013-02-20  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] RenderMultiColumnFlowThreads should establish a BFC.
        https://bugs.webkit.org/show_bug.cgi?id=110366.

        Reviewed by Antti Koivisto.

        RenderFlowThreads should establish a block formatting context always.
        CSS Regions have named flow thread that they absolutely position, and so
        they got this for free by being absolutely positioned.
        
        RenderMultiColumnFlowThreads, however, are relative positioned, so we need
        to just add an isRenderFlowThread case specifically so we're not dependent
        on the positioning scheme used for the flow thread to establish the BFC.
        
        Test: fast/multicol/newmulticol/float-*.html.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::MarginInfo::MarginInfo):

2013-02-20  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Column gap is computed incorrectly.
        https://bugs.webkit.org/show_bug.cgi?id=110360.

        Reviewed by Simon Fraser.

        Test: fast/multicol/newmulticol/layers-split-across-columns.html.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::columnGap):
        Make sure we ask the RenderMultiColumnBlock for the gap rather than our
        own style, since we don't actually have the gap value in our style.
        
        (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
        * rendering/RenderMultiColumnSet.h:
        Fix another spot where the columnGap was an int. It should be a LayoutUnit.

2013-02-20  Robert Hogan  <robert@webkit.org>

        No caret on empty contenteditable element with negative text-indent
        https://bugs.webkit.org/show_bug.cgi?id=108633

        Reviewed by Ryosuke Niwa.

        Test: fast/repaint/paint-caret-in-div-with-negative-indent.html

        When an editable element has a negative text indent we won't paint the caret when the
        element is empty because it falls outside the element's border box. To ensure the caret is painted,
        account for any negative indent with our overflow.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeOverflow):

2013-02-20  Ojan Vafai  <ojan@chromium.org>

        Remove stretchesToMinIntrinsicLogicalWidth
        https://bugs.webkit.org/show_bug.cgi?id=110266

        Reviewed by Emil Eklund.

        This was only used by fieldsets and now we have a way to express this
        concept in CSS.

        * WebCore.order:
        * css/html.css:
        Make fieldsets min-width: -webkit-min-content.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeLogicalWidthInRegion):
        (WebCore::RenderBox::computePositionedLogicalWidth):
        * rendering/RenderBox.h:
        Remove all calls to stretchesToMinIntrinsicLogicalWidth.

2013-02-20  Ojan Vafai  <ojan@chromium.org>

        Make intrinsic width values work for positioned elements
        https://bugs.webkit.org/show_bug.cgi?id=110264

        Reviewed by Tony Chang.

        Tests: fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html
               fast/css-intrinsic-dimensions/width-shrinks-avoid-floats.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
        Move the computation of intrinsic widths out into a helper function so that
        computePositionedLogicalWidthUsing can use it. As per the current spec,
        fill-available measures shrink to avoid floats. http://dev.w3.org/csswg/css3-sizing/

        (WebCore::RenderBox::computePositionedLogicalWidth):
        Compute intrinsic min-widths in addition to non-zero ones. Intrinsic widths
        return true for isZero. width and max-width don't need modifying since they already
        call computePositionedLogicalWidthUsing for intrinsic widths.

        (WebCore::RenderBox::computePositionedLogicalWidthUsing):
        Compute intrinsic widths and use a Fixed length for the rest of the positioned width
        computation. Doesn't include bordersPlusPadding because the caller, expected the content
        width and adds in the bordersPlusPadding later.

        * rendering/RenderBox.h:

2013-02-20  Robert Hogan  <robert@webkit.org>

        input element with placeholder text and width set to 100% on focus causes overflow even after losing focus
        https://bugs.webkit.org/show_bug.cgi?id=109020

        Reviewed by David Hyatt.

        Tests: fast/forms/input-placeholder-layout-view.html
               fast/forms/textarea-placeholder-layout-view.html

        Placeholder elements don't affect layout so shouldn't contribute overflow either.

        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::layout):

2013-02-20  Mark Lam  <mark.lam@apple.com>

        Rename DatabaseBackend to DatabaseBackendBase.
        https://bugs.webkit.org/show_bug.cgi?id=110303.

        Rubber stamped by Alexey Proskuryakov.

        This is a purely cosmetic change to make the naming consistent with
        the front-end DatabaseBase.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabaseServer.h:
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::create):
        (WebCore::Database::version):
        * Modules/webdatabase/Database.h:
        (Database):
        * Modules/webdatabase/DatabaseBackend.cpp: Removed.
        * Modules/webdatabase/DatabaseBackend.h: Removed.
        * Modules/webdatabase/DatabaseBackendAsync.cpp:
        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
        (WebCore::DatabaseBackendAsync::performOpenAndVerify):
        * Modules/webdatabase/DatabaseBackendAsync.h:
        * Modules/webdatabase/DatabaseBackendBase.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.cpp.
        (WebCore::DatabaseBackendBase::databaseInfoTableName):
        (WebCore::DatabaseBackendBase::DatabaseBackendBase):
        (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
        (WebCore::DatabaseBackendBase::closeDatabase):
        (WebCore::DatabaseBackendBase::version):
        (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
        (DoneCreatingDatabaseOnExitCaller):
        (WebCore::DatabaseBackendBase::performOpenAndVerify):
        (WebCore::DatabaseBackendBase::securityOrigin):
        (WebCore::DatabaseBackendBase::stringIdentifier):
        (WebCore::DatabaseBackendBase::displayName):
        (WebCore::DatabaseBackendBase::estimatedSize):
        (WebCore::DatabaseBackendBase::fileName):
        (WebCore::DatabaseBackendBase::details):
        (WebCore::DatabaseBackendBase::getVersionFromDatabase):
        (WebCore::DatabaseBackendBase::setVersionInDatabase):
        (WebCore::DatabaseBackendBase::setExpectedVersion):
        (WebCore::DatabaseBackendBase::getCachedVersion):
        (WebCore::DatabaseBackendBase::setCachedVersion):
        (WebCore::DatabaseBackendBase::getActualVersionForTransaction):
        (WebCore::DatabaseBackendBase::disableAuthorizer):
        (WebCore::DatabaseBackendBase::enableAuthorizer):
        (WebCore::DatabaseBackendBase::setAuthorizerReadOnly):
        (WebCore::DatabaseBackendBase::setAuthorizerPermissions):
        (WebCore::DatabaseBackendBase::lastActionChangedDatabase):
        (WebCore::DatabaseBackendBase::lastActionWasInsert):
        (WebCore::DatabaseBackendBase::resetDeletes):
        (WebCore::DatabaseBackendBase::hadDeletes):
        (WebCore::DatabaseBackendBase::resetAuthorizer):
        (WebCore::DatabaseBackendBase::maximumSize):
        (WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
        (WebCore::DatabaseBackendBase::interrupt):
        (WebCore::DatabaseBackendBase::isInterrupted):
        (WebCore::DatabaseBackendBase::reportOpenDatabaseResult):
        (WebCore::DatabaseBackendBase::reportChangeVersionResult):
        (WebCore::DatabaseBackendBase::reportStartTransactionResult):
        (WebCore::DatabaseBackendBase::reportCommitTransactionResult):
        (WebCore::DatabaseBackendBase::reportExecuteStatementResult):
        (WebCore::DatabaseBackendBase::reportVacuumDatabaseResult):
        * Modules/webdatabase/DatabaseBackendBase.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.h.
        (DatabaseBackendBase):
        * Modules/webdatabase/DatabaseBackendSync.cpp:
        (WebCore::DatabaseBackendSync::DatabaseBackendSync):
        * Modules/webdatabase/DatabaseBackendSync.h:
        * Modules/webdatabase/DatabaseBase.h:
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::openDatabaseBackend):
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseManager::openDatabaseSync):
        (WebCore::DatabaseManager::getMaxSizeForDatabase):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseServer.cpp:
        (WebCore::DatabaseServer::openDatabase):
        (WebCore::DatabaseServer::createDatabase):
        (WebCore::DatabaseServer::getMaxSizeForDatabase):
        * Modules/webdatabase/DatabaseServer.h:
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::create):
        * Modules/webdatabase/DatabaseSync.h:
        (DatabaseSync):
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
        (WebCore::DatabaseTracker::databaseChanged):
        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
        (WebCore::DatabaseTracker::doneCreatingDatabase):
        (WebCore::DatabaseTracker::addOpenDatabase):
        (WebCore::DatabaseTracker::removeOpenDatabase):
        (WebCore::DatabaseTracker::getOpenDatabases):
        (WebCore::DatabaseTracker::deleteDatabaseFile):
        * Modules/webdatabase/DatabaseTracker.h:
        (DatabaseTracker):
        * Modules/webdatabase/OriginQuotaManager.cpp:
        (WebCore::OriginQuotaManager::markDatabase):
        * Modules/webdatabase/OriginQuotaManager.h:
        (OriginQuotaManager):
        * Modules/webdatabase/SQLTransactionClient.cpp:
        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
        (WebCore::SQLTransactionClient::didExecuteStatement):
        (WebCore::SQLTransactionClient::didExceedQuota):
        * Modules/webdatabase/SQLTransactionClient.h:
        (SQLTransactionClient):
        * Modules/webdatabase/chromium/DatabaseObserver.h:
        (DatabaseObserver):
        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
        (WebCore::DatabaseTracker::addOpenDatabase):
        (WebCore::NotifyDatabaseObserverOnCloseTask::create):
        (WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
        (NotifyDatabaseObserverOnCloseTask):
        (WebCore::DatabaseTracker::removeOpenDatabase):
        (WebCore::DatabaseTracker::prepareToOpenDatabase):
        (WebCore::DatabaseTracker::failedToOpenDatabase):
        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
        (DatabaseTracker::CloseOneDatabaseImmediatelyTask):
        (WebCore::DatabaseTracker::closeOneDatabaseImmediately):
        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
        (WebCore::NotifyDatabaseChangedTask::create):
        (WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
        (NotifyDatabaseChangedTask):
        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
        (WebCore::SQLTransactionClient::didExecuteStatement):
        (WebCore::SQLTransactionClient::didExceedQuota):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-02-20  Eric Carlson  <eric.carlson@apple.com>

        iOS does not use CaptionUserPreferencesMac
        https://bugs.webkit.org/show_bug.cgi?id=110259

        Reviewed by Dean Jackson.

        * page/CaptionUserPreferencesMac.h: Add PLATFORM(IOS) guard
        * page/CaptionUserPreferencesMac.mm: Ditto.

        * page/PageGroup.cpp:
        (WebCore::PageGroup::captionPreferences): Ditto.

2013-02-19  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Make layers paint properly in columns.
        https://bugs.webkit.org/show_bug.cgi?id=110296.

        Reviewed by Sam Weinig.

        Construct the style for the RenderMultiColumnFlowThread such that it
        establishes a stacking context (by being position:relative
        with a z-index of 0). This causes the layer collection code
        to correctly ignore the RenderFlowThread layers during normal
        painting.
        
        Fix more clipping bugs to eliminate subpixel layout differences
        between old and new multicolumn.

        Test: fast/multicol/newmulticol/layers-in-multicol.html

        * rendering/RenderMultiColumnBlock.cpp:
        (WebCore::createMultiColumnFlowThreadStyle):
        (WebCore):
        (WebCore::RenderMultiColumnBlock::addChild):
        Use a custom style (similar to what normal RenderFlowThreads do)
        for the RenderMultiColumnFlowThread that makes it a stacking
        context.
        
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
        Fix the overflow calculations out the leftmost and rightmost
        columns to actually look at the physical placement of the columns.
        The old code was backwards for RTL.
        
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
        Fix the clipping done by overflowRectForFlowThreadPortion to min
        and max with the passed-in portion rect so that subclasses that
        inflate the rect prior to passing it into the method don't have that
        inflation discarded.

2013-02-20  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: CSSProperty.status defaults to "style" not "active"
        https://bugs.webkit.org/show_bug.cgi?id=110348

        Reviewed by Timothy Hatcher.

        * inspector/Inspector.json: Fix the default property status to be "style" in the description.

2013-02-20  Dan Carney  <dcarney@google.com>

        [v8] potentially disposed handle returned for npapi object
        https://bugs.webkit.org/show_bug.cgi?id=110331

        Reviewed by Kentaro Hara.

        No new tests. No change in functionality.

        * bindings/v8/V8NPUtils.cpp:
        (WebCore::convertNPVariantToV8Object):

2013-02-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>  and  Martin Robinson  <mrobinson@igalia.com>

        [Gtk] HTML5 Media controls require a design refresh
        https://bugs.webkit.org/show_bug.cgi?id=83869

        Created new controls that depend less on Gtk and more in CSS.

        Reviewed by Philippe Normand.

        * GNUmakefile.list.am: Added compilation for MediaControlsGtk.cpp
        and MediaControlsGtk.h
        * css/mediaControlsGtk.css: Taken from Chromium and adapted for
        WebKitGtk+.
        * html/shadow/MediaControlsGtk.cpp: Added.
        (WebCore): Added MediaControlsGtk class.
        (WebCore::MediaControlsGtk::MediaControlsGtk): Class constructor
        (WebCore::MediaControls::create): Creates the Gtk+ controls
        components.
        (WebCore::MediaControlsGtk::createControls): Creates the Gtk+
        controls components.
        (WebCore::MediaControlsGtk::initializeControls): Initializes all
        media controls.
        (WebCore::MediaControlsGtk::setMediaController): Sets the media
        controller.
        (WebCore::MediaControlsGtk::reset): Resets the controllers.
        (WebCore::MediaControlsGtk::playbackStarted): Invoked when the
        playback starts
        (WebCore::MediaControlsGtk::updateCurrentTimeDisplay): Updates the
        controls when the current time shall be updated.
        (WebCore::MediaControlsGtk::changedMute): Updates the controls
        then the mute changes.
        (WebCore::MediaControlsGtk::showVolumeSlider): Invoked when the
        volume slider is meant to be shown.
        (WebCore::MediaControlsGtk::createTextTrackDisplay): Creates the
        track display. Though it is not used by us, it needs to be created
        to prevent immediate crashes when loading a video.
        * html/shadow/MediaControlsGtk.h: Added.
        (WebCore): Added the MediaControlsGtk class.
        (MediaControlsGtk): Added the MediaControlsGtk class.
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore): Added getStockSymbolicIconForWidgetType function
        signature to load symbolic icons.
        (WebCore::supportsFocus): Added media control widgets to support
        focus so that the focus ring is not painted by WebCore.
        (WebCore::RenderThemeGtk::paintMediaButton): Added the symbolic
        icon support. It supports now normal and symbolic icons at the
        same time.
        (WebCore::RenderThemeGtk::paintMediaFullscreenButton): Added the
        symbolic icon support.
        (WebCore::RenderThemeGtk::paintMediaMuteButton): Added the
        symbolic icon support.
        (WebCore::RenderThemeGtk::paintMediaPlayButton): Added the
        symbolic icon support.
        (WebCore::RenderThemeGtk::paintMediaSeekBackButton): Added the
        symbolic icon support.
        (WebCore::RenderThemeGtk::paintMediaSeekForwardButton): Added the
        symbolic icon support.
        (WebCore::borderRadiiFromStyle): Created the radii info from the
        style.
        (WebCore::RenderThemeGtk::paintMediaSliderTrack): Removed the
        background and the Gtk widget support as it is painted with
        CSS. Also paint the time ranges with the CSS style.
        (WebCore::RenderThemeGtk::paintMediaSliderThumb): Paint slider
        thumb according to the CSS parameters.
        (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
        Delegates in the CSS.
        (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack): Fills the
        track up to the volume level and delegates the border in the CSS.
        (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb): Delegates
        in the paintMediaSliderThumb method so the thumb is painted the
        same with the CSS parameters.
        (WebCore::RenderThemeGtk::paintMediaCurrentTime): Removed the Gtk
        background to use only CSS.
        * platform/gtk/RenderThemeGtk.h:
        (RenderThemeGtk): Changed paintMediaButton to support the symbolic
        and normal icons at the same time.
        * platform/gtk/RenderThemeGtk2.cpp:
        (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
        the thumb size and letting the CSS decide that for media slider.
        (WebCore::getStockSymbolicIconForWidgetType): Implemented as a
        fallback to the normal stock icons.
        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore):
        (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
        the thumb size and letting the CSS decide that for the media
        sliders.
        (WebCore::getStockSymbolicIconForWidgetType): Added this function
        to load symbolic icons. It falls back to normal icons if the
        symbolic is not found.

2013-02-20  Andras Becsi  <andras.becsi@digia.com>

        [Qt] Rename AncestorChainWalker.h to EventPathWalker.h in the project file.

        Unreviewed gardening.

        AncestorChainWalker has been renamed to EventPathWalker in r143422.
        Rename the header in the project file as well so that it shows up in QtCreator.

        No new tests needed.

        * Target.pri:

2013-02-20  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: fix for frontend closure compile errors.
        https://bugs.webkit.org/show_bug.cgi?id=110329

        Reviewed by Vsevolod Vlasov.

        It has no tests because it has no code changes.

        * inspector/front-end/HeapSnapshot.js:
        (HeapSnapshotMetainfo):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):

2013-02-20  Florin Malita  <fmalita@chromium.org>

        Clear SVGPathSeg role on removal.
        https://bugs.webkit.org/show_bug.cgi?id=110058

        Reviewed by Dirk Schulze.

        SVGPathSegListPropertyTearOff::initialize() and SVGPathSegListPropertyTearOff::replaceItem()
        need to clear the context and role for segments being expunged from the list, similarly to
        removeItem(). Otherwise, processIncomingListItemValue() can get confused and attempt to
        remove stale segments.

        Test: svg/dom/SVGPathSegList-crash.html

        * svg/properties/SVGPathSegListPropertyTearOff.cpp:
        (WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):
        (WebCore::SVGPathSegListPropertyTearOff::clear):
        (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
        (WebCore):
        * svg/properties/SVGPathSegListPropertyTearOff.h:
        (WebCore::SVGPathSegListPropertyTearOff::initialize):
        (SVGPathSegListPropertyTearOff):

2013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143434.
        http://trac.webkit.org/changeset/143434
        https://bugs.webkit.org/show_bug.cgi?id=110326

        added reftest fails on chromium mac 10.6 (Requested by
        toyoshim on #webkit).

        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::paintObject):

2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Make UISourceCode.path() an array of path segments.
        https://bugs.webkit.org/show_bug.cgi?id=110229

        Reviewed by Pavel Feldman.

        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
        (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
        (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
        (WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
        (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
        (WebInspector.FileSystemProjectDelegate.prototype.populate):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
        (WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
        (WebInspector.SimpleProjectDelegate.prototype.addFile):
        (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
        (WebInspector.SimpleProjectDelegate.prototype.removeFile):
        (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
        (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.uri):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype.uiSourceCode):
        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
        (WebInspector.Workspace.prototype.urlForPath):

2013-02-20  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: fix message for non-existent domain warning
        https://bugs.webkit.org/show_bug.cgi?id=110315

        Reviewed by Alexander Pavlov.

        Only send (Heap)Profiler.resetProfiles event if the client has
        requested profile headers before.

        * inspector/InspectorHeapProfilerAgent.cpp:
        (HeapProfilerAgentState):
        (WebCore):
        (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
        (WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
        (WebCore::InspectorHeapProfilerAgent::clearFrontend):
        (WebCore::InspectorHeapProfilerAgent::restore):
        (WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
        * inspector/InspectorHeapProfilerAgent.h:
        (InspectorHeapProfilerAgent):
        * inspector/InspectorProfilerAgent.cpp:
        (ProfilerAgentState):
        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
        (WebCore::InspectorProfilerAgent::addProfile):
        (WebCore::InspectorProfilerAgent::disable):
        (WebCore::InspectorProfilerAgent::getProfileHeaders):
        (WebCore):
        (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
        (WebCore::InspectorProfilerAgent::restore):
        * inspector/InspectorProfilerAgent.h:
        (InspectorProfilerAgent):

2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Move workspace specific code from FileMapping to workspace.
        https://bugs.webkit.org/show_bug.cgi?id=110219

        Reviewed by Pavel Feldman.

        Extracted workspace specific code from FileMapping to Workspace.
        This allows to reduce usage of uri and eventually make UISourceCode.path an array of path segments.

        Test: inspector/workspace-mapping.html

        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
        (WebInspector.CompilerScriptMapping.prototype.get addScript):
        * inspector/front-end/FileMapping.js:
        (WebInspector.FileMapping):
        (WebInspector.FileMapping.prototype.mappingEntryForURL):
        (WebInspector.FileMapping.prototype.mappingEntryForPath):
        * inspector/front-end/FileSystemMapping.js:
        (WebInspector.FileSystemMapping.prototype.fileSystemPathForPrefix):
        (WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
        (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
        (WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate):
        (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
        (WebInspector.FileSystemProjectDelegate.prototype.populate):
        (WebInspector.FileSystemWorkspaceProvider):
        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
        * inspector/front-end/IsolatedFileSystemManager.js:
        (WebInspector.IsolatedFileSystemManager):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider):
        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.displayNameForURL):
        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
        (WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
        (WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
        (WebInspector.StylesSourceMapping.prototype._resourceAdded):
        (WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
        (WebInspector.StyleContentBinding):
        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
        * inspector/front-end/Workspace.js:
        (WebInspector.Workspace):
        (WebInspector.Workspace.prototype.hasMappingForURL):
        (WebInspector.Workspace.prototype._fileSystemPathForEntry):
        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
        (WebInspector.Workspace.prototype.urlForPath):
        * inspector/front-end/inspector.js:

2013-02-20  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Introduce SecurityOriginAdded and SecurityOriginRemoved events into ResourceTreeModel
        https://bugs.webkit.org/show_bug.cgi?id=110232

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel):
        (WebInspector.ResourceTreeModel.prototype._addFrame):
        (WebInspector.ResourceTreeModel.prototype._addSecurityOrigin): Added.
        (WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin): Added.
        (WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached): Added.
        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
        (WebInspector.ResourceTreeModel.prototype._frameDetached):

2013-02-20  Dan Carney  <dcarney@google.com>

        [v8] ScriptValue has dangerous copy semantics
        https://bugs.webkit.org/show_bug.cgi?id=110206

        Reviewed by Kentaro Hara.

        Update ScriptValue to used a SharedPersistent,
        making it impossible to return dead references.

        No new tests. No change in functionality.

        * bindings/v8/ScriptValue.cpp:
        (WebCore::ScriptValue::serialize):
        (WebCore::ScriptValue::getString):
        (WebCore::ScriptValue::toString):
        (WebCore::ScriptValue::toInspectorValue):
        * bindings/v8/ScriptValue.h:
        (WebCore::ScriptValue::ScriptValue):
        (WebCore::ScriptValue::operator=):
        (WebCore::ScriptValue::operator==):
        (WebCore::ScriptValue::isEqual):
        (WebCore::ScriptValue::isFunction):
        (WebCore::ScriptValue::isNull):
        (WebCore::ScriptValue::isUndefined):
        (WebCore::ScriptValue::isObject):
        (WebCore::ScriptValue::hasNoValue):
        (WebCore::ScriptValue::clear):
        (ScriptValue):
        (WebCore::ScriptValue::v8Value):
        (WebCore::ScriptValue::v8ValueRaw):
        * bindings/v8/SharedPersistent.h:
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::InjectedScriptHost::scriptValueAsNode):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAttrGetterCustom):

2013-02-20  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: highlight undefined word in JavaScript
        https://bugs.webkit.org/show_bug.cgi?id=109585

        Reviewed by Vsevolod Vlasov.

        Test enhancement: inspector/syntax-highlight-javascript.html

        Add global object value properties to tokenizer and add a css style
        class to highlight "undefined" with gray color.

        * inspector/front-end/SourceJavaScriptTokenizer.js:
        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
        * inspector/front-end/SourceJavaScriptTokenizer.re2js:
        * inspector/front-end/inspectorSyntaxHighlight.css:
        (.webkit-javascript-undef):

2013-02-20  Mike West  <mkwst@chromium.org>

        Use EventPathWalker rather than parentNode() to normalize event targets in EventHandler.
        https://bugs.webkit.org/show_bug.cgi?id=110037

        Reviewed by Ryosuke Niwa.

        We need to teach EventHandler about Shadow DOM in a few places in order
        to ensure that we properly target events dispatched upon text nodes.
        Rather than naively grabbing the text node's direct parent via
        parentNode(), we need to account for the case in which the text node is
        distributed[1] to an insertion point inside a shadow host.
        EventPathWalker::parent understands these relationships, and should
        be used when dealing with mouse, drag, and touch events.

        [1]: http://www.w3.org/TR/shadow-dom/#dfn-distribution

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseDraggedEvent):
        (WebCore::EventHandler::handleTouchEvent):
        (WebCore::EventHandler::passGestureEventToWidgetIfPossible):
        (WebCore::EventHandler::updateDragAndDrop):
            Refactor parentNode callsites to use EventPathWalker::parent().

2013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Search in ProfilesPanel is broken
        https://bugs.webkit.org/show_bug.cgi?id=110312

        Reviewed by Pavel Feldman.

        * inspector/front-end/CPUProfileView.js:
        (WebInspector.CPUProfileView.prototype.matchesQuery):
        (WebInspector.CPUProfileView.prototype.performSearch):

2013-02-20  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: View.markAsRoot should never be invoked on attached view.
        https://bugs.webkit.org/show_bug.cgi?id=110224

        Reviewed by Pavel Feldman.

        This will cause CSS loading problems after "show".

        * inspector/front-end/Drawer.js:
        Ensure child view is detached before marked as root.
        * inspector/front-end/View.js:
        (WebInspector.View.prototype.markAsRoot): Added assertion.

2013-02-20  Nils Barth  <nbarth@google.com>

        File upload control doesn't apply CSS vertical padding or border to file name
        https://bugs.webkit.org/show_bug.cgi?id=109011

        Reviewed by Hajime Morrita.

        Test: fast/forms/file/file-vertical-padding-border.html

        * rendering/RenderFileUploadControl.cpp:
            Add borderTop() and paddingTop() when computing position.
        (WebCore::RenderFileUploadControl::paintObject):

2013-02-19  Andrey Adaikin  <aandrey@chromium.org>

        Few methods in WebGLRenderingContext.idl have incorrect signatures
        https://bugs.webkit.org/show_bug.cgi?id=110305

        Reviewed by Kentaro Hara.

        * html/canvas/WebGLRenderingContext.idl:

2013-02-19  Tim Horton  <timothy_horton@apple.com>

        Clarify isInWindow vs. isVisible path through to RenderLayerCompositor
        https://bugs.webkit.org/show_bug.cgi?id=110261
        <rdar://problem/13196122>

        Reviewed by Simon Fraser.

        Remove RenderLayerCompositor::willMoveOffscreen/didMoveOnscreen.
        Add RenderLayerCompositor::setIsInWindow, and pipe in-window changes through from Page::setIsInWindow.
        Adjust a few Document functions that previously called RenderView::didMoveOnscreen/willMoveOffscreen to use setIsInWindow instead, since in-window state changes are occurring when attaching and detaching documents.

        * WebCore.exp.in: Export Page::setIsInWindow.
        * dom/Document.cpp:
        (WebCore::Document::attach): Use setIsInWindow instead of didMoveOnscreen.
        (WebCore::Document::documentWillBecomeInactive): Use setIsInWindow instead of willMoveOffscreen.
        (WebCore::Document::documentDidResumeFromPageCache): Use setIsInWindow instead of didMoveOnscreen.
        * page/FrameView.cpp:
        (WebCore::FrameView::didMoveOnscreen):
        (WebCore::FrameView::willMoveOffscreen):
        RenderView doesn't care about moving on/offscreen, just in-window state.
        (WebCore::FrameView::setIsInWindow): Added. Forward isInWindow changes to our RenderView.
        * page/FrameView.h:
        (FrameView): Add setIsInWindow.
        * page/Page.cpp:
        (WebCore::Page::setIsInWindow): Added. Forward isInWindow changes to the Page's FrameViews.
        * page/Page.h:
        (Page): Add setIsInWindow.
        (WebCore::Page::isInWindow):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
        since that's the only change we actually care about.
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor): Add setIsInWindow.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
        since that's the only change RenderLayerCompositor actually cares about.
        * rendering/RenderView.h:
        (RenderView): Add setIsInWindow.

2013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Cleanup and add JSDocs to SuggestBox
        https://bugs.webkit.org/show_bug.cgi?id=110202

        Reviewed by Pavel Feldman.

        SuggestBox contains some obsolete/unused code and not fully
        covered with JSDocs.

        * inspector/front-end/SuggestBox.js:
        (WebInspector.SuggestBox.prototype.visible):
        Replaced getter with function.
        (WebInspector.SuggestBox.prototype._onScrollOrResize):
        Use camel-case for function names.
        (WebInspector.SuggestBox.prototype._onBoxMouseDown): Ditto.
        (WebInspector.SuggestBox.prototype.updateSuggestions):
        Removed unused code.
        (WebInspector.SuggestBox.prototype.hide): Adopt changes.
        (WebInspector.SuggestBox.prototype._applySuggestion): Ditto.
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.isSuggestBoxVisible): Ditto.

2013-02-19  Hayato Ito <hayato@chromium.org>

        Calculate EventPath in EventDispatcher's constructor.
        https://bugs.webkit.org/show_bug.cgi?id=109905

        Reviewed by Dimitri Glazkov.

        This patch calculates an EventPath in EventDispatcher's
        constructor and removes EventDispatcher::ensureEventPath().
        We don't have any reason to initialize an EventPath lazily.

        No tests. No change in behavior.

        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::EventDispatcher):
        (WebCore::EventDispatcher::dispatch):
        * dom/EventDispatcher.h:
        (WebCore::EventDispatcher::eventPath):
        (EventDispatcher):
        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::dispatchEvent):

2013-02-19  Simon Fraser  <simon.fraser@apple.com>

        Fix TileCache tile size when zoomed on slow-scrolling site
        https://bugs.webkit.org/show_bug.cgi?id=110289

        Reviewed by Tim Horton.
        
        In slow scrolling mode, we use the tile coverage rect as the tile size
        (so a single tile covers the viewport). When zoomed, the tile coverage rect
        shrinks relative to the TileCache, so scale the tile size back up.

        Test: platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed.html

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::tileSizeForCoverageRect):

2013-02-19  Hayato Ito  <hayato@chromium.org>

        Rename AncestorChainWalker.
        https://bugs.webkit.org/show_bug.cgi?id=110146

        Reviewed by Dimitri Glazkov.

        Rename AncestorChainWalker to EventPathWalker.
        The term of EventPath is used in DOM Core spec.  EventPath was
        already introduced into a EventContext.h in r112055. We should
        spread this term into the Walker class since they share the same
        purpose.

        No new tests, no behavior change.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/EventDispatcher.cpp:
        * dom/EventPathWalker.cpp: Renamed from Source/WebCore/dom/AncestorChainWalker.cpp.
        (WebCore):
        (WebCore::EventPathWalker::EventPathWalker):
        (WebCore::EventPathWalker::parent): parent() is now a static function to cover simple use cases.
        (WebCore::EventPathWalker::moveToParent): Renamed from parent().
        * dom/EventPathWalker.h: Renamed from Source/WebCore/dom/AncestorChainWalker.h.
        (WebCore):
        (EventPathWalker):
        (WebCore::EventPathWalker::node):
        (WebCore::EventPathWalker::isVisitingInsertionPointInReprojection): Renamed from isCrossingInsertionPoint().
        * dom/EventRetargeter.cpp:
        (WebCore::EventRetargeter::calculateEventPath):
        (WebCore::EventRetargeter::buildRelatedNodeMap):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::focusedNode):
        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::attach):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateMouseEventTargetNode):
        (WebCore::EventHandler::handleWheelEvent):

2013-02-19  Dean Jackson  <dino@apple.com>

        Snapshotted plugin label should not be selectable
        https://bugs.webkit.org/show_bug.cgi?id=110286

        Reviewed by Simon Fraser.

        Update the CSS to make it clear that you should click
        on a snapshot (use the finger pointer) and disable
        text selection.

        * css/plugIns.css:
        (embed::-webkit-snapshotted-plugin-content .snapshot-container .snapshot-label):

2013-02-19  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Enable shape-inside support for ellipses
        https://bugs.webkit.org/show_bug.cgi?id=109868

        Reviewed by Dirk Schulze.

        This change is very similar to the one recently made for circles:
        removed the test that disabled ellipse values for shape-inside.
        The remaining support for ellipses, which is based on rounded rectangles
        whose width/height is equal to their radiusX/radiusY, has not changed.

        Test: fast/exclusions/shape-inside/shape-inside-ellipse.html

        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.

2013-02-19  Uday Kiran  <udaykiran@motorola.com>

        'round' not implemented in border-image
        https://bugs.webkit.org/show_bug.cgi?id=14185

        Reviewed by David Hyatt.

        Add rendering support for 'round' keyword of border-image-repeat CSS property
        http://dev.w3.org/csswg/css3-background/#border-image-repeat
        Rebased original patch by Benjamin Otte <otte@gnome.org> and made few fixes.

        Test: fast/borders/border-image-02.html

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawTiledImage):
        * platform/graphics/GraphicsContext.h:
        (GraphicsContext):
        * platform/graphics/Image.cpp:
        (WebCore::Image::drawTiled):
        * platform/graphics/Image.h:
        (Image):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintNinePieceImage): For 'round' keyword,
        the image is tiled (repeated) to fill the area. If it does not fill the area
        with a whole number of tiles, the image is rescaled so that it does.

2013-02-19  Conrad Shultz  <conrad_shultz@apple.com>

        Allow UI clients to handle vertical wheel events.
        https://bugs.webkit.org/show_bug.cgi?id=110006

        Reviewed by Tim Horton.

        Add API to allow matching changes in WebKit2 to control rubber-banding behavior at vertical page extrema.
        If rubber-banding is disabled during a scroll event that would otherwise trigger rubber-banding, dispatch
        didNotHandleWheelEvent() to the page UI client.

        * WebCore.exp.in:
        Export new rubber-banding API.

        * page/Page.cpp:
        (WebCore):
        (WebCore::Page::rubberBandsAtBottom):
        Proxy for the corresponding function in ScrollingCoordinator.
        (WebCore::Page::setRubberBandsAtBottom):
        Ditto.
        (WebCore::Page::rubberBandsAtTop):
        Ditto.
        (WebCore::Page::setRubberBandsAtTop):
        Ditto.

        * page/Page.h:
        (Page):
        Declare new rubber-banding API (above).

        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::rubberBandsAtBottom):
        Stub API implementation.
        (WebCore::ScrollingCoordinator::setRubberBandsAtBottom):
        Ditto.
        (WebCore::ScrollingCoordinator::rubberBandsAtTop):
        Ditto.
        (WebCore::ScrollingCoordinator::setRubberBandsAtTop):
        Ditto.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):
        Initialize new member variables.
        (WebCore::ScrollingTree::setMainFramePinState):
        Set top/bottom pinned states.
        (WebCore::ScrollingTree::rubberBandsAtBottom):
        New accessor function.
        (WebCore::ScrollingTree::setRubberBandsAtBottom):
        New mutator function.
        (WebCore::ScrollingTree::rubberBandsAtTop):
        New accessor function.
        (WebCore::ScrollingTree::setRubberBandsAtTop):
        New mutator function.
        (WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
        Start a vertical swipe event if the frame is pinned at the top or bottom and associated rubber-banding is disabled.

        * page/scrolling/ScrollingTree.h:
        (ScrollingTree):
        Declare new rubber-banding API and associated member variables.

        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):
        Declare API overrides.

        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::rubberBandsAtBottom):
        Method override; proxy to corresponding function in ScrollingTree.
        (WebCore::ScrollingCoordinatorMac::setRubberBandsAtBottom):
        Ditto.
        (WebCore::ScrollingCoordinatorMac::rubberBandsAtTop):
        Ditto.
        (WebCore::ScrollingCoordinatorMac::setRubberBandsAtTop):
        Ditto.

        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
        Remove trailing whitespace.
        (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
        Calculate and pass vertical pinning state to ScrollingTree::setMainFramePinState().

2013-02-19  Simon Fraser  <simon.fraser@apple.com>

        Rubber-banding should not affect the visibleRect of the TileCache
        https://bugs.webkit.org/show_bug.cgi?id=110278

        Reviewed by Beth Dakin.
        
        When rubber-banding a slow-scrolling page, or image document, we would constantly re-create
        the bottom tile because of the logic that adapts the tile size to the visible rect when slow
        scrolling.
        
        Avoid that by ensuring that the visibleRect is not affected by rubber-banding. This is done
        via a GraphicsLayerClient function that allows RenderLayerCompositor to provide a custom
        position for the scroll layer. We constrain that scroll position to remove the overhang that
        results from rubber-banding.

        I wasn't able to make a test for this, even with internals.setScrollViewPosition().

        * platform/graphics/GraphicsLayerClient.h:
        (GraphicsLayerClient):
        (WebCore::GraphicsLayerClient::customPositionForVisibleRectComputation):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::computeVisibleRect):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):
        * rendering/RenderLayerCompositor.h:

2013-02-19  Tony Gentilcore  <tonyg@chromium.org>

        Fix crash in preloading scanning base tags with no href attribute for background parser
        https://bugs.webkit.org/show_bug.cgi?id=110276

        Reviewed by Eric Seidel.

        Previously a <base> tag without an href attribute (like the one in fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html)
        would crash the background parser's preload scanner.

        To fix that, we only call stripLeadingAndTrailingHTMLSpaces() if the href attribute is non-null. This matches the main thread parser.

        Along with this, I decided to templatize updatePredictedBaseURL() so that the main and background parser can share the same impl.

        This required making CompactHTMLToken and HTMLToken a little more similar:
        1. Give HTMLToken a getAttributeItem() method.
        2. Move CompactAttribute to CompactHTMLToken::Attribute and make it a struct.

        No new tests because covered by existing tests.

        * html/parser/AtomicHTMLToken.h:
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        * html/parser/CompactHTMLToken.cpp:
        (SameSizeAsCompactHTMLToken):
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        (WebCore::CompactHTMLToken::getAttributeItem):
        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
        * html/parser/CompactHTMLToken.h:
        (WebCore::CompactHTMLToken::Attribute::Attribute):
        (Attribute):
        (WebCore::CompactHTMLToken::attributes):
        (CompactHTMLToken):
        (WebCore::CompactHTMLToken::publicIdentifier):
        (WebCore::CompactHTMLToken::systemIdentifier):
        * html/parser/HTMLParserIdioms.h:
        (WebCore):
        (WebCore::stripLeadingAndTrailingHTMLSpaces):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
        (WebCore):
        (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
        * html/parser/HTMLPreloadScanner.h:
        * html/parser/HTMLToken.h:
        (WebCore::HTMLToken::getAttributeItem):
        (HTMLToken):

2013-02-19  Mark Lam  <mark.lam@apple.com>

        Introducing AbstractSQLTransaction and AbstractSQLTransactionBackend.
        https://bugs.webkit.org/show_bug.cgi?id=110273.

        Reviewed by Anders Carlsson.

        This is part of the webdatabase refactoring for webkit2.
        - Also changed the frontend and backend to only refer to the
          abstract interface of each other.

        No new tests.

        * Modules/webdatabase/AbstractSQLTransaction.h: Added.
        (AbstractSQLTransaction):
        (WebCore::AbstractSQLTransaction::~AbstractSQLTransaction):
        * Modules/webdatabase/AbstractSQLTransactionBackend.h: Added.
        (AbstractSQLTransactionBackend):
        (WebCore::AbstractSQLTransactionBackend::~AbstractSQLTransactionBackend):
        * Modules/webdatabase/SQLTransaction.cpp:
        (WebCore::SQLTransaction::hasCallback):
        (WebCore::SQLTransaction::hasSuccessCallback):
        (WebCore::SQLTransaction::hasErrorCallback):
        (WebCore::SQLTransaction::setBackend):
        * Modules/webdatabase/SQLTransaction.h:
        (SQLTransaction):
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::create):
        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
        * Modules/webdatabase/SQLTransactionBackend.h:
        (SQLTransactionBackend):
        * Modules/webdatabase/SQLTransactionStateMachine.h:

2013-02-19  Emil A Eklund  <eae@chromium.org>

        Change computeStickyPositionConstraints to use LayoutBoxExtent for margins
        https://bugs.webkit.org/show_bug.cgi?id=108872

        Reviewed by Levi Weintraub.
        
        Change RenderBoxModelObject::computeStickyPositionConstraints to
        use a LayoutBoxExtent to represent margins.

        No new tests, no change in functionality.

        * platform/graphics/LayoutRect.h:
        (WebCore::LayoutRect::contract):
        Add version contract methods that takes a LayoutBoxExtent object.
        
        * platform/graphics/LayoutSize.h:
        (WebCore::LayoutSize::shrink):
        Add shrink method.
        
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
        Change to use a LayoutBoxExtent object to represent margins.

2013-02-19  Tony Gentilcore  <tonyg@chromium.org>

        Disable ASSERT(!hasInsertionPoint()) for background parser
        https://bugs.webkit.org/show_bug.cgi?id=110251

        Reviewed by Adam Barth.

        The background parser crashes about 10 layout tests by hitting ASSERT(!hasInsertionPoint()).
        Now, finish() is the thing that closes the HTMLInputStream which removes the insertion point.
        In these tests, a document.open() calls insert() which clears the HTMLInputStream which causes
        there to be an insertion point again.

        With the main thread parser, insert() is called before finish() so the ASSERT passes.
        However, with the threaded parser, finish() is called before insert(), so we fail the ASSERT.

        This patch disables the ASSERT for the background parser because m_input isn't really relevant.
        This causes us to pass the tests. However, there is a risk that now hasInsertionPoint() may be incorrect
        and Document has a non-debug branch that tests hasInsertionPoint().

        No new tests because covered by existing tests.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::prepareToStopParsing):
        (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd):

2013-02-19  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Enable shape-inside support for ellipses
        https://bugs.webkit.org/show_bug.cgi?id=109868

        Reviewed by Dirk Schulze.

        This change is very similar to the one recently made for circles:
        removed the test that disabled ellipse values for shape-inside.
        The remaining support for ellipses, which is based on rounded rectangles
        whose width/height is equal to their radiusX/radiusY, has not changed.

        Test: fast/exclusions/shape-inside/shape-inside-ellipse.html

        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.

2013-02-19  Simon Fraser  <simon.fraser@apple.com>

        Separate constraining for overhang from fixed-position zooming behavior in scrollOffsetForFixedPosition()
        https://bugs.webkit.org/show_bug.cgi?id=110267

        Reviewed by Beth Dakin.

        The static scrollOffsetForFixedPosition() function in ScrollingCoordinator did two things;
        it constrained the scroll position when rubber-banding, and applied the special scaling for
        fixed position when zoomed.
        
        Separate these out so that we can use the rubber-banding constrained elsewhere.

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollOffsetForFixedPosition): The static function is here now.
        * page/FrameView.h:
        * page/scrolling/ScrollingCoordinator.cpp: Code moved to FrameView.
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition): scrollOffsetForFixedPosition()
        is now on FrameView.
        * platform/ScrollableArea.cpp:
        (WebCore::constrainedScrollPosition): Helper to constrain one axis for overhang.
        (WebCore::ScrollableArea::constrainScrollPositionForOverhang): Static function that
        can be called by FrameView::scrollOffsetForFixedPosition().
        * platform/ScrollableArea.h: Static function constrainScrollPositionForOverhang()
        so we can call it from another thread. Also a member fuction of the same name, which takes
        the scrollPosition as input (so we can feed it a layer position in a later patch).

2013-02-19  Tony Gentilcore  <tonyg@chromium.org>

        Fix checkThatTokensAreSafeToSendToAnotherThread() now that the preload scanner is enabled
        https://bugs.webkit.org/show_bug.cgi?id=110258

        Reviewed by Adam Barth.

        We were hitting this ASSERT on numerous tests with the background parser enabled. This copy fixes the assertion.

        No new tests becuase covered by existing tests.

        * html/parser/HTMLResourcePreloader.h:
        (WebCore::PreloadRequest::setCharset):

2013-02-19  Tony Gentilcore  <tonyg@chromium.org>

        Fix typo: inititatorFor->initiatorFor
        https://bugs.webkit.org/show_bug.cgi?id=110260

        Reviewed by Adam Barth.

        No new tests because no changed functionality.

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::TokenPreloadScanner::initiatorFor):
        (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
        * html/parser/HTMLPreloadScanner.h:

2013-02-19  Tony Chang  <tony@chromium.org>

        Convert 3 settings to use Settings.in
        https://bugs.webkit.org/show_bug.cgi?id=109875

        Reviewed by Ryosuke Niwa.

        Convert mediaEnabled, applicationChromeMode and DOMPasteAllowed to
        use Settings.in. They previously had inconsistently named setters.

        No new tests, this is a refactoring.

        * Source/WebCore/WebCore.exp.in: Remove symbols that are now inlined from exports.
        * Source/WebCore/WebCore.order: Remove symbols that no longer exist.
        * dom/make_names.pl:
        (printConstructorInterior): Rename isMediaEnabled to mediaEnabled.
        (printWrapperFunctions): Rename isMediaEnabled to mediaEnabled.
        * editing/EditorCommand.cpp:
        (WebCore::supportedPaste): Rename isDOMPasteAllowed to DOMPasteAllowed.
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Remove custom code.
        * page/Settings.h:
        (Settings): Remove custom code.
        * page/Settings.in: Add entries for mediaEnabled, applicationChromeMode and DOMPasteAllowed.
        * page/make_settings.pl:
        (setterFunctionName): Expand uppercase rules to include DOM.
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isDefault): Rename inApplicationChromeMode to applicationChromeMode.
        * rendering/RenderThemeWin.cpp:
        (WebCore::documentIsInApplicationChromeMode): Rename inApplicationChromeMode to applicationChromeMode.

2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Refactor the code in preparation of auto placement support
        https://bugs.webkit.org/show_bug.cgi?id=110244

        Reviewed by Ojan Vafai.

        Test: fast/css-grid-layout/grid-auto-flow-resolution.html

        In order to support auto placement, we need to iterate over the grid items with
        auto row / column several times. This changes makes us do that in a very simple,
        not-yet-conformant way. While touching this code, the distinction between grid-auto-flow
        none and row / column was better drawn (and enforced).

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::resolveGridPositionFromStyle):
        Made it illegal to call resolveGridPositionFromStyle if the grid track is auto and
        grid-auto-flow is not none. This would catch bad use of the function.

        (WebCore::RenderGrid::maximumIndexInDirection):
        Updated to bail out if the grid track is auto. Also improved the comment.

        (WebCore::RenderGrid::placeItemsOnGrid):
        Updated the function to do several iterations. Also handled the grid-auto-flow: none
        case differently as it shouldn't need the extra iteration(s).

2013-02-19  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] REGRESSION: RenderMultiColumnSets broken by the RenderRegion -> RenderBlock subclassing.
        https://bugs.webkit.org/show_bug.cgi?id=110239.

        Reviewed by Simon Fraser.

        Test: fast/multicol/newmulticol/column-rules-fixed-height.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::columnRectAt):
        Make sure the columnGap() in the old multicolumn code is always expressed as a LayoutUnit. This was the
        one place where it was still an int.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
        Rework the painting of flow thread portions to account for the fact that regions paint at an integral
        translation. This means you have to construct clipping around that integral destination. Subpixel layout
        regions did not clip correctly as a result of this issue.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::columnRectAt):
        Fix the same bug with columnGap() that the old column code has, i.e., one spot where it was an int.

        (WebCore::RenderMultiColumnSet::paintObject):
        RenderMultiColumnSet should be using paintObject and not paint and it needs to check for visibility
        and phases now that it is a RenderBlock subclass.

        (WebCore::RenderMultiColumnSet::paintColumnRules):
        Fix the bug that Opera guys fixed in the old multi-column code. They didn't patch the new code, so this
        takes care of that.

        * rendering/RenderMultiColumnSet.h:
        (RenderMultiColumnSet):
        Change to use paintObject instead of paint.

2013-02-19  Branimir Lambov  <blambov@google.com>

        Fix 'slice' aspect ratio calculation
        https://bugs.webkit.org/show_bug.cgi?id=99984

        Reviewed by Dirk Schulze.

        Previously the calculation for the 'slice' aspect ratio would incorrectly calculate the
        source rect location based on the destination rect offset. This caused our source rect to be
        incorrect, and sometimes render outside the visible area completely. After this patch
        our implementation matches the implementation of both Gecko and Presto.

        The relevant spec section:
        http://www.w3.org/TR/SVG/single-page.html#coords-PreserveAspectRatioAttribute

        Tests: svg/as-image/image-preserveAspectRatio-all.svg
               svg/filters/feImage-preserveAspectRatio-all.svg

        * svg/SVGPreserveAspectRatio.cpp:
        (WebCore::SVGPreserveAspectRatio::transformRect):

2013-02-19  Kentaro Hara  <haraken@google.com>

        [V8] ScriptRunner::runCompiledScript() should return Handle<Value>() when OOM occurs
        https://bugs.webkit.org/show_bug.cgi?id=110254

        Reviewed by Adam Barth.

        Chromium bug: https://code.google.com/p/chromium/issues/detail?id=176951

        Currently ScriptRunner::runCompiledScript() calls
        ASSERT(script.IsEmpty()) when OOM occurs. The Chromium bug is
        hitting the ASSERT(). The ASSERT() does not make sense at all.
        Instead, we should return an empty handle when OOM occurs.

        No tests. The bug happens only when OOM occurs.

        * bindings/v8/ScriptRunner.cpp:
        (WebCore::ScriptRunner::runCompiledScript):

2013-02-19  Elliott Sprehn  <esprehn@chromium.org>

        Support both MutationObserver and WebKitMutationObserver
        https://bugs.webkit.org/show_bug.cgi?id=109776

        Reviewed by Ojan Vafai.

        We should allow new MutationObserver now that we support parser generated
        mutations. This leaves the old prefixed constructor in until we decide
        people don't depend on it.

        Test: fast/dom/MutationObserver/mutation-observer-prefix.html

        * page/DOMWindow.idl:

2013-02-19  Elliott Sprehn  <esprehn@chromium.org>

        Remove RenderText::updateText
        https://bugs.webkit.org/show_bug.cgi?id=109991

        Reviewed by Eric Seidel.

        There's no reason for the generic RenderText::updateText virtual hook
        anymore now that r143060 made RenderQuote stop setting dirty bits during
        layout since the hook is only used by RenderCounter.

        Instead add updateCounterIfNeeded and make it clear this is a hack for
        counters.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::updateCounterIfNeeded): Added, not handles the counter specific hack.
        (WebCore::dirtyLineBoxesForRenderer):
        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
        * rendering/RenderCounter.cpp:
        (WebCore::RenderCounter::updateCounter):
        * rendering/RenderCounter.h:
        (RenderCounter):
        * rendering/RenderQuote.cpp:
        (WebCore::RenderQuote::styleDidChange):
        (WebCore::RenderQuote::updateDepth):
        * rendering/RenderQuote.h:
        (RenderQuote):
        * rendering/RenderText.h:
        (RenderText):

2013-02-19  Tony Chang  <tony@chromium.org>

        Border changes on tables with collapsed borders doesn't relayout table cells
        https://bugs.webkit.org/show_bug.cgi?id=109774

        Reviewed by David Hyatt.

        Test: fast/table/border-collapsing/dynamic-border-width-change.html

        Changes to border top and border bottom on table rows also changes the size
        of the table cell causing a relayout to be needed.

        * rendering/RenderTableRow.cpp:
        (WebCore::borderWidthChanged): Also include border top and bottom.
        (WebCore::RenderTableRow::styleDidChange): Remove logical from the helper function name.

2013-02-19  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):

2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>

        [GTK][AC] Implement matrix transform animation with clutter ac backend
        https://bugs.webkit.org/show_bug.cgi?id=109848

        Reviewed by Gustavo Noronha Silva.

        Clutter 1.12 doesn't support additive transform animations yet, so the combination
        of two or more transformations(such as rotation after translation) runs unexpectedly.
        So we use a matrix transformation instead for the case.

        Covered by existing animation tests.

        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::getValueFunctionNameForTransformOperation):
        (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
        (WebCore::toClutterActorPropertyString): Add actor property "transform"
        (WebCore::clutterMatrixProgress): Handle interpolation between two matrices instead of default clutter_matrix_progress.
        (WebCore):
        (WebCore::PlatformClutterAnimation::supportsAdditiveValueFunction):
        (WebCore::PlatformClutterAnimation::setFromValue): for TransformationMatrix.
        (WebCore::PlatformClutterAnimation::setToValue): ditto.
        (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
        (WebCore::PlatformClutterAnimation::addTransformTransition):
        * platform/graphics/clutter/PlatformClutterAnimation.h:
        (PlatformClutterAnimation):
        * platform/graphics/clutter/TransformationMatrixClutter.cpp: Add copy constructor for CoglMatrix.
        (WebCore::TransformationMatrix::TransformationMatrix):
        (WebCore):
        * platform/graphics/transforms/TransformationMatrix.h:
        (TransformationMatrix):

2013-02-19  Kassy Coan  <kassycoan@chromium.org>

        Update FeatureObserver on top level navigation in addition to page destruction.
        https://bugs.webkit.org/show_bug.cgi?id=109874

        Reviewed by Adam Barth.

        No new tests. Only effect is to histogram more frequently.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::dispatchDidCommitLoad):
        * page/FeatureObserver.cpp:
        (WebCore::FeatureObserver::~FeatureObserver):
        (WebCore):
        (WebCore::FeatureObserver::updateMeasurements):
        (WebCore::FeatureObserver::didCommitLoad):
        * page/FeatureObserver.h:
        (FeatureObserver):

2013-02-19  Morten Stenshorne  <mstensho@opera.com>

        Remove unnecessary (and problematic) copy-constructor from LayoutUnit
        https://bugs.webkit.org/show_bug.cgi?id=110121

        This copy constructor does what a default copy constructor would do, so
        it's not necessary. Furthermore, this copy constructor is the only
        reason why LayoutUnit becomes non-POD, and that triggers a gdb bug,
        making it impossible to do things like "print location()" when inside
        some RenderBlock, for instance.

        Gdb bug http://sourceware.org/bugzilla/show_bug.cgi?id=15154 reported.

        Reviewed by Benjamin Poulain.

        No tests. Apart from dealing with buggy debuggers, this is just code cleanup.

        * platform/LayoutUnit.h:

2013-02-19  Emil A Eklund  <eae@chromium.org>

        LayoutUnit::epsilon shouldn't be necessary to place floats
        https://bugs.webkit.org/show_bug.cgi?id=94000

        Reviewed by Levi Weintraub.
        
        Currently, to get float placement correct, we need to have an
        epsilon tolerance in RenderBlock::computeLogicalLocationForFloat
        for the width of the line to fit them on. This really shouldn't
        be necessary, and probably indicates we're losing precision
        elsewhere.
        
        Remove epsilon as it no longer appears to be needed. All layout
        tests pass without it.

        No new tests, covered by existing tests.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeLogicalLocationForFloat):

2013-02-19  Tim Volodine  <timvolodine@chromium.org>

        Text Autosizing: prevent oscillation of font sizes during autosizing
        https://bugs.webkit.org/show_bug.cgi?id=108205

        Reviewed by Kenneth Rohde Christiansen.

        On some websites autosized font-sizes oscillate due to layouts caused by
        hovering or incremental page loading (and on other sites font sizes do
        eventually stabilize, but it takes many layouts before they reach a steady
        size). To prevent all these cases, we no longer allow the autosizing
        multiplier to change after it has been set (to a value other than 1).

        This won't always give exactly the same results, but testing on 2000 top
        sites shows that this makes little difference in practice, and it prevents
        these very jarring cases. As a happy side-effect, this speeds up layouts
        as font sizes change less.

        Test: fast/text-autosizing/oscillation-javascript-fontsize-change.html

        * page/FrameView.cpp:
        (WebCore::FrameView::setFrameRect):
        * page/Settings.cpp:
        (WebCore::Settings::setTextAutosizingFontScaleFactor):
        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::recalculateMultipliers):
        (WebCore):
        (WebCore::TextAutosizer::processContainer):
        * rendering/TextAutosizer.h:
        (TextAutosizer):

2013-02-19  Youenn Fablet  <youennf@gmail.com>

        [EFL][DRT] http/tests/loading/307-after-303-after-post.html times out
        https://bugs.webkit.org/show_bug.cgi?id=93214

        Ensured that GET verb is consistently used for any request
        coming after a redirection that triggers switching to GET.

        Reviewed by Martin Robinson.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::doRedirect):

2013-02-19  Andras Becsi  <andras.becsi@digia.com>

        [Qt] Fix compilation if Qt was configured with -no-rtti
        https://bugs.webkit.org/show_bug.cgi?id=110234

        Reviewed by Noam Rosenthal.

        Availability of dynamic_cast should be checked.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):

2013-02-18  Alexey Proskuryakov  <ap@apple.com>

        Unregistered blob URLs have incorrect MIME type
        https://bugs.webkit.org/show_bug.cgi?id=110166

        Reviewed by Sam Weinig.

        * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::shouldUseInnerURL): Added a FIXME.

        * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnError):
        Pass an accurate MIME type (for a delegate to see).

2013-02-19  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: additional checks on LevelDB decoding
        https://bugs.webkit.org/show_bug.cgi?id=109711

        Reviewed by Tony Chang.

        Watch out for decoding errors caused by corrupted data, and exit various
        decode/compare operations earlier.

        Covered by existing LayoutTests and Chromium's webkit_unit_tests

        * Modules/indexeddb/IDBLevelDBCoding.cpp:
        (WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
        (WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
        (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
        (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
        (WebCore::IDBLevelDBCoding::compare): Plumb through "ok".
        (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
        (WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
        (WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
        * Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.

2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>

        [GTK][AC] Implement keyframe animations with clutter ac backend
        https://bugs.webkit.org/show_bug.cgi?id=110057

        Reviewed by Gustavo Noronha Silva.

        This patch brings accelerated keyframe animation with clutter to WebKitGtk+.
        Changes of GraphicsLayerClutter are based on GraphicsLayerCA. But major changes
        of PlatformClutterAnimation are implemented with clutter keyframe transition apis.
        See http://developer.gnome.org/clutter/stable/ClutterKeyframeTransition.html

        Covered by existing animation tests.

        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::GraphicsLayerClutter::createKeyframeAnimation):
        (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
        (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
        (WebCore::toClutterActorPropertyString):
        (WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
        (WebCore::PlatformClutterAnimation::setTimingFunction):
        (WebCore::PlatformClutterAnimation::setValues):
        (WebCore::PlatformClutterAnimation::setKeyTimes):
        (WebCore::PlatformClutterAnimation::setTimingFunctions):
        (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
        (WebCore):
        (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
        (WebCore::PlatformClutterAnimation::addOpacityTransition):
        (WebCore::PlatformClutterAnimation::addTransformTransition):
        (WebCore::PlatformClutterAnimation::addAnimationForKey):
        (WebCore::PlatformClutterAnimation::removeAnimationForKey):
        * platform/graphics/clutter/PlatformClutterAnimation.h:
        (PlatformClutterAnimation):

2013-02-19  Claudio Saavedra  <csaavedra@igalia.com>

        [harfbuzz] Crash in harfbuzz related code
        https://bugs.webkit.org/show_bug.cgi?id=110145

        Reviewed by Martin Robinson.

        Patch by Behdad Esfahbod <behdad@google.com>

        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Ask harfbuzz
        to guess the segment properties.

2013-02-19  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: release backtrace object group on each step.
        https://bugs.webkit.org/show_bug.cgi?id=110223

        Reviewed by Pavel Feldman.

        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore):
        (WebCore::InspectorDebuggerAgent::stepOver):
        (WebCore::InspectorDebuggerAgent::stepInto):
        (WebCore::InspectorDebuggerAgent::stepOut):

2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142975.
        http://trac.webkit.org/changeset/142975
        https://bugs.webkit.org/show_bug.cgi?id=110225

        Introduces hard-to-reproduce crashes upon inspected page
        navigation on Mac (Requested by apavlov on #webkit).

        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
        (WebCore::InspectorCSSAgent::clearFrontend):
        (WebCore::InspectorCSSAgent::enable):
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::collectStyleSheets):
        (WebCore::InspectorCSSAgent::bindStyleSheet):
        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::detectOrigin):
        (WebCore::InspectorCSSAgent::buildObjectForRule):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        * inspector/InspectorInstrumentation.h:
        (WebCore):
        (InspectorInstrumentation):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
        (WebInspector.CSSStyleModelResourceBinding.prototype.):
        (WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource):
        (WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId):
        (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetIdForResource):
        (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
        (WebInspector.CSSStyleModelResourceBinding.prototype.headersLoaded):
        (WebInspector.CSSStyleModelResourceBinding.prototype._requestViaInspectorResource):
        (WebInspector.CSSStyleModelResourceBinding.prototype._getOrCreateInspectorResource):
        (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StyleContentBinding.prototype.callback):
        (WebInspector.StyleContentBinding.prototype.setStyleContent):
        (WebInspector.StyleContentBinding.prototype.):
        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):

2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>

        RenderGrid::computedUsedBreadthOfGridTracks can read past m_grid's size
        https://bugs.webkit.org/show_bug.cgi?id=110126

        Reviewed by Ojan Vafai.

        The issue comes from how we store the column information inside m_grid.
        Because m_grid is a Vector of rows, we could lose the column information
        if we had no row, no grid item but some columns defined in CSS. As the
        logic would assume that our row / column size would be greater than what
        the style defines explicitely, we would access past our Vector's boundary.

        The fix is to ensure that we have at least a row so that we can store the
        column information in every case. This fix is overly broad as it also forces
        the grid to have one column, which shouldn't be an issue.

        Test: fast/css-grid-layout/grid-element-empty-row-column.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::maximumIndexInDirection):
        Forced this function to return at least one as the maximum index so that
        m_grid has at least one row / column.

        (WebCore::RenderGrid::placeItemsOnGrid):
        Added a ASSERT that m_grid is bigger than the explicit grid-rows / grid-columns.
        Also changed an existing ASSERT to use gridWasPopulated for consistency and changed
        the code not to call gridRowCount as it would ASSERT (we are in the middle of populating
        the grid).

        * rendering/RenderGrid.h:
        (WebCore::RenderGrid::gridWasPopulated):
        Added this helper function.

        (WebCore::RenderGrid::gridColumnCount):
        Replaced a now unneeded branch with an ASSERT. As placeItemsOnGrid should be called
        prior to read m_grid, this change should be fine.

        (WebCore::RenderGrid::gridRowCount):
        Added an ASSERT.

2013-02-19  Sergio Villar Senin  <svillar@igalia.com>

        [Soup] Use synchronous calls to close completely processed streams
        https://bugs.webkit.org/show_bug.cgi?id=107432

        Reviewed by Martin Robinson.

        There is no need to close already processed streams in asynchronous
        calls since they won't block. Using the synchronous call will save
        us some code and unnecessary asynchronous burden. This is kind of
        a code refactor so no new tests needed.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore):
        (WebCore::redirectSkipCallback):
        (WebCore::readCallback):

2013-02-19  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] use timeline's didBeginFrame for marking frame end calls
        https://bugs.webkit.org/show_bug.cgi?id=110130

        Reviewed by Pavel Feldman.

        In Web Inspector canvas profiler use timeline's didBeginFrame for marking frame end calls instead of an ad-hoc timeout-based solution.

        * inspector/InjectedScriptCanvasModule.cpp:
        (WebCore::InjectedScriptCanvasModule::markFrameEnd):
        (WebCore):
        * inspector/InjectedScriptCanvasModule.h:
        (InjectedScriptCanvasModule):
        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
        (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
        (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
        (WebCore::InspectorCanvasAgent::frameNavigated):
        (WebCore::InspectorCanvasAgent::didBeginFrame):
        (WebCore):
        * inspector/InspectorCanvasAgent.h:
        (InspectorCanvasAgent):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::didBeginFrame):

2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Decouple various file system project implementation parts for better testability and cover with tests.
        https://bugs.webkit.org/show_bug.cgi?id=110204

        Reviewed by Pavel Feldman.

        Extracted FileSystemWorkspaceProvider from IsolatedFileSystemManager to take care of managing workspace projects and projectDelegates.
        Replaced FileMapping.urlForURI with urlForPath method that does not need any information about workspace structure anymore.

        Test: inspector/file-system-project.html

        * inspector/front-end/FileMapping.js:
        (WebInspector.FileMapping.prototype.urlForPath):
        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate):
        (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
        (WebInspector.FileSystemProjectDelegate.prototype.populate):
        (WebInspector.FileSystemWorkspaceProvider):
        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
        * inspector/front-end/IsolatedFileSystem.js:
        (WebInspector.IsolatedFileSystem):
        (WebInspector.IsolatedFileSystem.prototype.name):
        (WebInspector.IsolatedFileSystem.prototype.rootURL):
        * inspector/front-end/IsolatedFileSystemManager.js:
        (WebInspector.IsolatedFileSystemManager):
        (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
        (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
        (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
        * inspector/front-end/inspector.js:

2013-02-19  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] do not replace replay image with spinner icon
        https://bugs.webkit.org/show_bug.cgi?id=110213

        Reviewed by Pavel Feldman.

        Otherwise it's visually hard to see changes in the replay image. Instead show a small spinner icon in the bottom right corner.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
        * inspector/front-end/canvasProfiler.css:
        (#canvas-replay-image-container):
        (.canvas-debug-info):
        (.canvas-spinner-icon):

2013-02-19  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] UI: tweak replay control buttons behavior
        https://bugs.webkit.org/show_bug.cgi?id=110207

        Reviewed by Pavel Feldman.

        New behavior for control buttons in the Canvas profiler.
        - The NextCall button (~StepInto) on a node group should expand it and move into its first child (instead of expanding and moving into the next node group)
        - The NextDrawCall button (~StepOver) should move to a next node that has children (instead of just iterating call group nodes, ignoring frame nodes).
        - The ReplayLast button should select the last expanded node (instead of always selecting last frame group node).

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
        (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):

2013-02-19  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Assertion in RenderFlowThread::removeRenderBoxRegionInfo
        https://bugs.webkit.org/show_bug.cgi?id=109914

        Reviewed by David Hyatt.

        This patch moves a part of the invalidation operations inside the RenderFlowThread::invalidateRegions call. The maps
        are cleared anyway at layout time but doing this earlier makes sure the flow thread is in a more consistent state
        (the RenderFlowThread object has both the region chain invalidated and the regions information cleared).

        RenderFlowThread::removeRenderBoxRegionInfo will check if the region chain is invalidated. If true, it means the
        flow thread has a layout scheduled and the regions information is not yet reliable. In this case we just return from the
        function and wait for the layout to cleanup the box information.

        Test: fast/regions/remove-box-info-assert.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::removeRegionFromThread):
        (WebCore::RenderFlowThread::invalidateRegions):
        (WebCore):
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
        * rendering/RenderFlowThread.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::removeRegionFromThread):

2013-02-19  Alberto Garcia  <agarcia@igalia.com>

        Fix build broekn by r142988.
        https://bugs.webkit.org/show_bug.cgi?id=109530

        Unreviewed. Build fix.

        Properly add shortMonthFormat() to the LocaleNone class.

        * platform/text/LocaleNone.cpp:
        (LocaleNone):
        (WebCore::LocaleNone::shortMonthFormat):

2013-02-19  Anton Vayvod  <avayvod@chromium.org>

        [Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.
        https://bugs.webkit.org/show_bug.cgi?id=109825

        Enhancement of the approach introduced in https://bugs.webkit.org/show_bug.cgi?id=109573.
        Instead of using the same text size multiplier for all narrow descendants of any autosizing
        cluster, group the descendants by how much narrower they are than the cluster's
        |blockContainingAllText| and process each group separately with a different multiplier for
        each one.
        For example, we want nested comments on the page to be autosized as a group but separately
        from a sidebar on the same page.

        Reviewed by Kenneth Rohde Christiansen.

        Updated the existing test to verify the patch.

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::processClusterInternal):

            Splits the narrow descendants of the autosizing cluster into groups before processing
            each group individually.

        (WebCore::TextAutosizer::getNarrowDescendantsGroupedByWidth):

            Sorts the narrow descendants of the given cluster into groups, combining them by the
            difference between their content widths. If sorted by width, two consecutive nodes
            belong to the same group if their width difference is no greater than 100 CSS units.

        * rendering/TextAutosizer.h:

            New method definitions.

2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: show user provided name property of the heap snapshot node.
        https://bugs.webkit.org/show_bug.cgi?id=110124

        Reviewed by Yury Semikhatsky.

        Publish userProvidedName into grid node.

        * inspector/front-end/HeapSnapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotWorker):
        * inspector/front-end/NativeHeapSnapshot.js:
        (WebInspector.NativeHeapSnapshotNode.prototype.serialize):

2013-02-19  Arpita Bahuguna  <a.bah@samsung.com>

        Caret is not displayed when trying to focus inside a contenteditable element containing an empty block.
        https://bugs.webkit.org/show_bug.cgi?id=108053

        Reviewed by Ryosuke Niwa.

        Test: editing/selection/caret-in-div-containing-empty-block.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::localCaretRect):
        When trying to compute the caret rect for the contenteditable div, the
        border and the padding were not considered. Because of this, for the
        given test case, which had a border defined on the containing div, the
        caret was being painted just atop the border, thereby masking it.

        Have modified the code to ensure that the computed caret rect takes
        into account the border and padding (if any) specified on the box, but only
        if the node doesn't have content that shall be skipped for editing.

        We do not add border and padding while computing the caret rect for any
        element that either has no content or has content that shall be skipped
        for editing purposes. This holds true for table elements as well.

        This helps avoid the caret displacement previsouly observed before/after
        any controls placed within the contenteditable box, when considering
        border and padding in computation of the caret rect.

2013-02-19  Mihnea Ovidenie  <mihnea@adobe.com>

        CSSRegions: crash positioned object with inline containing block in flow thread
        https://bugs.webkit.org/show_bug.cgi?id=108307

        Reviewed by David Hyatt.

        The fix for https://bugs.webkit.org/show_bug.cgi?id=69896 allowed positioned blocks work
        with variable width regions. However, the information needed for that is available only
        when the container used for positioning is a block.

        This patch ensures we are using this solution only when the container used for positioning
        is a block. This needs to be revisited when we will extend support for other types of boxes
        as mentioned in RenderBox::renderBoxRegionInfo.

        Test: fast/regions/positioned-object-inline-cb-crash.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::renderBoxRegionInfo):
        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
        (WebCore::RenderBox::computePositionedLogicalWidth): Make sure we are using containerBlocks
        that are blocks. Add an assert that the type of containerBlock we are using can have
        computed RenderBoxRegionInfo.
        (WebCore::RenderBox::computePositionedLogicalHeight):
        * rendering/RenderBoxModelObject.h:
        (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion): This helper method
        will return the boxes that may have computed RenderBoxRegionInfo. Currently,
        returns true for blocks only.

2013-02-19  Ryosuke Niwa  <rniwa@webkit.org>

        Yet anther JSC build fix after r143304.

        * bindings/js/JSDOMBinding.h:
        (WebCore::argumentOrNull):

2013-02-19  Kentaro Hara  <haraken@chromium.org>

        Unreviewed build fix. Fixed warning caused by r143305.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):

2013-02-19  Kentaro Hara  <haraken@chromium.org>

        Unreviewed build fix after r143304.

        * bindings/js/JSDOMBinding.h:
        (WebCore::argumentOrNull):

2013-02-19  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove redundant usage of MAYBE_MISSING_PARAMETER() macro
        https://bugs.webkit.org/show_bug.cgi?id=109899

        Reviewed by Adam Barth.

        Currently:

        - MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined) returns args[index].
        - MAYBE_MISSING_PARAMETER(args, index, DefaultIsNullString) returns Local<Value>()
        if args[index] is missing (i.e. the length of |args| is less than |index|).
        It returns args[index] otherwise.

        No one other than CodeGeneratorV8.pm uses
        MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined). Instead, we simply use
        args[index]. We should remove the redundant usage from CodeGeneratorV8.pm too.
        The long-name macro has been making generated code less readable.

        In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::Float64ArrayV8Internal::fooCallback):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::itemCallback):
        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjV8Internal::optionsObjectCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
        (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
        (WebCore::TestObjV8Internal::domStringListFunctionCallback):
        (WebCore::TestObjV8Internal::convert1Callback):
        (WebCore::TestObjV8Internal::convert2Callback):
        (WebCore::TestObjV8Internal::convert4Callback):
        (WebCore::TestObjV8Internal::convert5Callback):
        (WebCore::TestObjV8Internal::strictFunctionCallback):
        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
        (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
        (WebCore::TestTypedefsV8Internal::funcCallback):
        (WebCore::TestTypedefsV8Internal::setShadowCallback):
        (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
        (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
        (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
        (WebCore::TestTypedefsV8Internal::stringArrayFunction2Callback):
        (WebCore::V8TestTypedefs::constructorCallback):
        * bindings/v8/V8BindingMacros.h:
        (WebCore):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallbackCustom):
        (WebCore::V8History::replaceStateCallbackCustom):

2013-02-19  Kentaro Hara  <haraken@chromium.org>

        [JSC] MAYBE_MISSING_PARAMETER(..., DefaultIsNullString) macro is redundant
        https://bugs.webkit.org/show_bug.cgi?id=109902

        Reviewed by Adam Barth.

        Currently:

        - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined)
          returns exec->argument(index).
        - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsNullString)
          returns JSValue() if exec->argument(index) is missing
          (i.e. the length of the argument is less than index).
          It returns exec->argument(index) otherwise.

        No one other than CodeGeneratorJS.pm uses
        MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined).
        Instead, we simply use exec->argument(index). We should remove
        the redundant usage in CodeGeneratorJS.pm too. The long-name macro
        has been making generated code less readable.

        In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().

        c.f. corresponding V8 bug: https://bugs.webkit.org/show_bug.cgi?id=109899

        No tests. No change in behavior.

        * bindings/js/JSDOMBinding.h:
        (WebCore):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionItem):
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
        (WebCore::jsTestObjPrototypeFunctionConvert1):
        (WebCore::jsTestObjPrototypeFunctionConvert2):
        (WebCore::jsTestObjPrototypeFunctionConvert4):
        (WebCore::jsTestObjPrototypeFunctionConvert5):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
        (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
        (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
        (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionMultiTransferList):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
        (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):

2013-02-18  Hayato Ito  <hayato@chromium.org>

        Make EventDispatcher take an Event object in its constructor.
        https://bugs.webkit.org/show_bug.cgi?id=109898

        Reviewed by Dimitri Glazkov.

        Re-landing r143145, which caused a crash when deltaX and deltaY of a PlatformWheelEvent are both zero.

        Fixed a crash by early exiting in EventDispatcher::dispatchEvent(Node*, PassRefPtr<EventDispatcher*>)
        if mediator's event() returns null.

        Also Added a layout test to catch this kind of crash in the future.

        Test: fast/events/platform-wheelevent-with-delta-zero-crash.html

        * dom/EventDispatchMediator.cpp:
        (WebCore::EventDispatchMediator::dispatchEvent):
        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventDispatcher::EventDispatcher):
        (WebCore::EventDispatcher::ensureEventPath):
        (WebCore::EventDispatcher::dispatchSimulatedClick):
        (WebCore::EventDispatcher::dispatch):
        (WebCore::EventDispatcher::dispatchEventPreProcess):
        (WebCore::EventDispatcher::dispatchEventAtCapturing):
        (WebCore::EventDispatcher::dispatchEventAtTarget):
        (WebCore::EventDispatcher::dispatchEventAtBubbling):
        (WebCore::EventDispatcher::dispatchEventPostProcess):
        * dom/EventDispatcher.h:
        (EventDispatcher):
        (WebCore::EventDispatcher::node):
        (WebCore::EventDispatcher::event):
        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        * dom/GestureEvent.cpp:
        (WebCore::GestureEventDispatchMediator::dispatchEvent):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::dispatchEvent):
        * dom/WheelEvent.cpp:
        (WebCore::WheelEventDispatchMediator::dispatchEvent):
        Assert event() rather than an early exit since this code path should be hit only when event() is non-null.

2013-02-18  Takashi Sakamoto  <tasak@google.com>

        :before/:after pseudo elements do not always apply to the proper element
        https://bugs.webkit.org/show_bug.cgi?id=93925

        Reviewed by Dimitri Glazkov.

        Disable sharing a style with siblings if :after or :before pseudo style
        is unique.

        Test: fast/css/before-after-pseudo-class.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):
        Added a new condition, hasUniquePseudoStyle.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::hasUniquePseudoStyle):
        Added to check whether any pseudo style has unique bit or not.
        (WebCore):
        * rendering/style/RenderStyle.h:

2013-02-18  Andy Estes  <aestes@apple.com>

        Focusing a new frame (via window.focus()) should blur the active element in the current frame
        https://bugs.webkit.org/show_bug.cgi?id=110172

        Reviewed by Ryosuke Niwa.

        When a change in the focused node crosses a frame boundary, WebKit
        doesn't always succeed in blurring the old focused node before focusing
        the new one.

        Each document remembers its focused node, and a Page-scoped
        FocusController remembers the focused frame. If a new focused node is
        in a different frame than the focused frame, FocusController tells the
        old frame's document to clear its focused node before focusing the new
        one (and remembering the new frame).

        Unfortunately, web content can confuse FocusController by calling
        window.focus() at the wrong time. Since window.focus() changes
        FocusController's focused frame without focusing a new node,
        FocusController won't think that a frame boundary is being crossed if a
        node in this frame is later focused. Therefore it won't clear the old
        frame's focused node (it won't even know which frame contained the old
        focused node), causing at least two bugs:

        1) The node in the old frame will not receive a blur event.
        2) Calling document.activeElement on the main frame will return the
           previously focused node, but the HTML5 spec says it should return
           the frame owner element if a subframe has focus.

        Fix both of these bugs by explicitly clearing the current frame's
        focused node if window.focus() changes the focused frame. This fix
        carries some compatibility risk by changing a long-standing behavior
        of the engine (we've had this bug since the beginning of the project,
        AFAICT). On the upside, it matches the behavior of both Firefox and IE,
        matches what HTML5 says about subframe focus, and fixes at least one
        well-known enterprise web app.

        Tests: fast/dom/HTMLDocument/active-element-frames.html
               fast/frames/frame-focus-blurs-active-element.html

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::focus): If the frame being focused is not the same
        as the currently focused frame, clear the currently focused frame's
        focused node.

2013-02-18  Simon Fraser  <simon.fraser@apple.com>

        Clean up the boolean argument to visibleContentRect
        https://bugs.webkit.org/show_bug.cgi?id=110167

        Reviewed by Simon Fraser.

        Replace the boolean argument to visibleContentRect() with
        an enum.

        No behavior change.

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::viewportSize):
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::update):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::innerHeight):
        (WebCore::DOMWindow::innerWidth):
        * page/FrameView.cpp:
        (WebCore::FrameView::calculateScrollbarModesForLayout):
        (WebCore::FrameView::layout):
        (WebCore::FrameView::performPostLayoutTasks):
        (WebCore::FrameView::windowClipRect):
        * page/SpatialNavigation.cpp:
        (WebCore::canScrollInDirection):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::unscaledVisibleContentSize):
        (WebCore::ScrollView::visibleContentRect):
        (WebCore::ScrollView::layoutSize):
        (WebCore::ScrollView::updateScrollbars):
        (WebCore::ScrollView::paint):
        * platform/ScrollView.h:
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::visibleContentRect):
        * platform/ScrollableArea.h:
        * rendering/RenderDialog.cpp:
        (WebCore::RenderDialog::layout):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::maximumScrollPosition):
        (WebCore::RenderLayer::visibleContentRect):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):

2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>

        That didn't work either. Just make it public. This is why I hate nested classes. They just don't work.

        * rendering/RenderBlock.h:
        (RenderBlock):

2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>

        Windows build fix. Apparently Visual Studio still has a lot of bugs with respect to nested classes.
        Work around it by directly instantiating the class inside createFloatingObjects.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::createFloatingObjects): Directly instantiate FloatingObjects.
        * rendering/RenderBlock.h:
        (RenderBlock): Moved the declaration of createFloatingObjects up.
        (FloatingObjects::FloatingObjects):

2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>

        Merge handleSpecialChild into layoutBlockChildren
        https://bugs.webkit.org/show_bug.cgi?id=110165

        Reviewed by Darin Adler.

        Merge handleSpecialChild, handlePositionedChild, and handleFloatingChild into layoutBlockChildren
        to make the semantics of the code clear and to get rid of the outdated comment about how there are
        four types of four types of special children.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlockChildren):
        * rendering/RenderBlock.h:
        (RenderBlock):

2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>

        Encapsulate FloatingObject's constructor inside create
        https://bugs.webkit.org/show_bug.cgi?id=110169

        Reviewed by Darin Adler.

        Added FloatingObject::create and made FloatingObject's constructor private.
        Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::insertFloatingObject):
        (WebCore::RenderBlock::addOverhangingFloats):
        (WebCore::RenderBlock::addIntrudingFloats):
        (WebCore::RenderBlock::ensureFloatingObjects):
        (WebCore::RenderBlock::FloatingObjects::create):
        (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
        * rendering/RenderBlock.h:
        (FloatingObjects):
        (RenderBlock):

2013-02-18  Anders Carlsson  <andersca@apple.com>

        Add a DefaultHash for RefPtr<SecurityOrigin>
        https://bugs.webkit.org/show_bug.cgi?id=110170

        Reviewed by Andreas Kling.

        Remove all explicit uses of SecurityOriginHash.

        * Modules/webdatabase/DatabaseTracker.h:
        * Modules/webdatabase/OriginQuotaManager.h:
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::ApplicationCacheStorage::getOriginsWithCache):
        * loader/cache/MemoryCache.h:
        * page/SecurityOriginHash.h:
        * storage/StorageNamespaceImpl.h:
        (StorageNamespaceImpl):

2013-02-18  David Hyatt  <hyatt@apple.com>

        Padding and border changes don't trigger the relayout of children in some cases.
        https://bugs.webkit.org/show_bug.cgi?id=109639.

        Reviewed by Ryosuke Niwa.

        The fix for this bug was way too general and involved putting code into RenderBox. Since
        RenderBox makes no assumptions about what kind of layout system might derive from it, it
        was incorrect to just mark all children as needing layout whenever borders and padding
        changed widths.
        
        This patch takes the two cases handled by the original code and makes them more
        specialized down in subclasses, i.e., RenderBlock and RenderTableRow. RenderBlock has
        been refined to only check if children aren't inline and to also not invalidate
        floats or irrelevant positioned objects that might not even have this block as their
        containing block.
        
        The RenderTableRow code is specialized to only care about collapsing borders and
        to only check borders rather than padding. It also requires that a child be a cell
        in order to do the invalidation.

        Covered by existing tests, since this is just specializing the code to more precisely
        cover the test cases that have already been written.

        Longer term, it should be layout code that figures this stuff out rather than style
        change code, but that involves more dramatic changes that can wait.

        Test: fast/block/positioning/border-change-relayout-test.html

        * rendering/RenderBlock.cpp:
        (WebCore::borderOrPaddingLogicalWidthChanged):
        (WebCore):
        (WebCore::RenderBlock::styleDidChange):
        * rendering/RenderBox.cpp:
        (WebCore):
        (WebCore::RenderBox::styleDidChange):
        * rendering/RenderTableRow.cpp:
        (WebCore::borderLogicalWidthChanged):
        (WebCore):
        (WebCore::RenderTableRow::styleDidChange):

2013-02-18  Mark Lam  <mark.lam@apple.com>

        Small follow up to r143271: Fix SQLTransaction leak.
        https://bugs.webkit.org/show_bug.cgi?id=110052.

        Reviewed by Geoffrey Garen.

        Applied Geoff's suggestion nullify m_frontend sooner for greater
        code clarity. Also added some comments about m_frontend.

        No new tests.

        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::doCleanup):
        * Modules/webdatabase/SQLTransactionBackend.h:
        (SQLTransactionBackend):

2013-02-18  Geoffrey Garen  <ggaren@apple.com>

        Shrank the SourceProvider cache
        https://bugs.webkit.org/show_bug.cgi?id=110158

        Reviewed by Oliver Hunt.

        Test: fast/js/regress/nested-function-parsing.html

        No need to keep statistics on cache size, since we're going to throw it
        away no matter what.

        * WebCore.order:
        * bindings/js/CachedScriptSourceProvider.h:
        (CachedScriptSourceProvider):
        (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::destroyDecodedData):
        (WebCore):
        (WebCore::CachedScript::reportMemoryUsage):
        * loader/cache/CachedScript.h:
        (CachedScript):

2013-02-18  peavo@outlook.com  <peavo@outlook.com>

        [Curl] The function cookiesForDOM() does not behave correctly.
        https://bugs.webkit.org/show_bug.cgi?id=109923

        Reviewed by Brent Fulgham.

        The cookiesForDOM() function should return a list of matching cookies, both persistent and session cookies.

        * platform/network/curl/CookieJarCurl.cpp:
        (WebCore::readCurlCookieToken): Added function to read next token from Curl cookie string.
        (WebCore::addMatchingCurlCookie): Added function to add matching cookies to cookie list.
        (WebCore::setCookiesFromDOM): Add domain and path from url to cookie if not already set.
        (WebCore::cookiesForDOM): Return a list of matching cookies, both session and persistent cookies.

2013-02-17  Mark Lam  <mark.lam@apple.com>

        Fix SQLTransaction leak.
        https://bugs.webkit.org/show_bug.cgi?id=110052.

        Reviewed by Geoffrey Garen.

        With https://bugs.webkit.org/show_bug.cgi?id=104750, there is now a circular
        reference between SQLTransaction and its backend. The clean up process needs
        to be fixed to explicitly break this reference cycle.

        The 5 phases of the SQLTransaction (and backend) phases and their clean up
        actions are:

        Phase 1. After Birth, before scheduling
        - During shutdown, DatabaseThread::databaseThread() calls
          DatabaseBackendAsync::close(). DatabaseBackendAsync::close() iterates
          DatabaseBackendAsync::m_transactionQueue and calls
          SQLtransactionBackend::notifyDatabaseThreadIsShuttingDown() on each
          transaction there.

        Phase 2. After scheduling, before state AcquireLock
        - ~DatabaseTask() calls SQLtransactionBackend's
          notifyDatabaseThreadIsShuttingDown().

        Phase 3. After state AcquireLock, before "lockAcquired"
        - During shutdown, DatabaseThread::databaseThread() calls
          SQLTransactionCoordinator::shutdown(), which calls
          SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown().

        Phase 4: After "lockAcquired", before state CleanupAndTerminate
        - Same as Phase 3.

        Phase 5: After state CleanupAndTerminate
        - state CleanupAndTerminate calls SQLTransactionBackend::doCleanup().

        See comment at the top of SQLTransactionBackend.cpp for more details.

        Other supporting changes:
        - Moved Database::close() to the DatabaseBackendAsync.
        - Moved the "if already cleaned up" check from SQLTransactionBackend's
          notifyDatabaseThreadIsShuttingDown() to doCleanup().
        - Added a check to prevent SQLTransactionCoordinator's releaseLock()
          from running when it's shutting down.

        No new tests.

        * Modules/webdatabase/Database.cpp:
        * Modules/webdatabase/Database.h:
        * Modules/webdatabase/DatabaseBackendAsync.cpp:
        (WebCore::DatabaseBackendAsync::close): Move from Database.cpp.
        * Modules/webdatabase/DatabaseBackendAsync.h:
        * Modules/webdatabase/DatabaseTask.cpp:
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::~DatabaseTransactionTask):
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
        * Modules/webdatabase/DatabaseTask.h:
        (DatabaseBackendAsync::DatabaseTransactionTask):
        * Modules/webdatabase/DatabaseThread.cpp:
        (WebCore::DatabaseThread::databaseThread):
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::doCleanup):
        (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
        (WebCore::SQLTransactionBackend::cleanupAndTerminate):
        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
        (WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
        (WebCore::SQLTransactionCoordinator::acquireLock):
        (WebCore::SQLTransactionCoordinator::releaseLock):
        (WebCore::SQLTransactionCoordinator::shutdown):
        * Modules/webdatabase/SQLTransactionCoordinator.h:
        (SQLTransactionCoordinator):

2013-02-18  David Kilzer  <ddkilzer@apple.com>

        Fix WebCore Xcode project

        * WebCore.xcodeproj/project.pbxproj: Fix path for CDMPrivate.h.

2013-02-18  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Refactor grid position resolution code to support an internal grid representation
        https://bugs.webkit.org/show_bug.cgi?id=109718

        Reviewed by Ojan Vafai.

        In order to support auto placement (where we can't infer a grid item's position from its style),
        we need to have 2 code paths:
        - One that places the elements on the grid representation.
        - One that reuse the grid representation to return the position.

        This code path implements this split so that we can add auto placement in a follow-up patch(es).
        Also in order to avoid a O(n^2) behavior [walking over our grid to find a grid item's position],
        the cached position code path needed an efficient way to find the grid items -> position mapping.

        Refactoring, covered by existing tests.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::cachedGridCoordinate):
        (WebCore::RenderGrid::resolveGridPositionFromStyle):
        These methods implements the above split. The first one
        reuses our cached information whereas the other one is
        used to build the cache.

        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
        (WebCore::RenderGrid::layoutGridItems):
        Added some code to clear the grid items' position.

        (WebCore::RenderGrid::findChildLogicalPosition):
        (WebCore::RenderGrid::logicalContentHeightForChild):
        Updated these functions to use cachedGridPosition.

        (WebCore::RenderGrid::maximumIndexInDirection):
        Added a comment about why we don't use cachedGridPosition.

        (WebCore::RenderGrid::insertItemIntoGrid):
        Added this helper function to insert into the grid and
        cache the position in the reverse lookup map.

        (WebCore::RenderGrid::placeItemsOnGrid):
        Updated to call insertItemIntoGrid. Also added an ASSERT
        similar to m_grid.

        (WebCore::RenderGrid::clearGrid):
        Added this helper function to clear our grid structure.

        * rendering/RenderGrid.h:
        (GridCoordinate):
        (WebCore::RenderGrid::GridCoordinate::GridCoordinate):
        Added this POD to hold the coordinates in our reverse map.

2013-02-18  Stephen Chenney  <schenney@chromium.org>

        feFlood incorrectly applied color-interpolation-filters
        https://bugs.webkit.org/show_bug.cgi?id=109985

        Reviewed by Dirk Schulze.

        The SVG spec defines the color-interpolation-filters property for all
        filter effect elements in order to control cases where a color is
        based on some arithmetic computation on other colors. For example,
        when computing gradients or blending colors. feFlood simply fills a
        region with the given color, and that given color is always defined to
        be in sRGB space, so the feFlood result should always be sRGB.

        The new behavior matches both Opera and Firefox.

        Tests: svg/filters/feFlood-color-interpolation-expected.svg
               svg/filters/feFlood-color-interpolation.svg

        * platform/graphics/filters/FEFlood.cpp:
        (WebCore::FEFlood::platformApplySoftware): Force the color mode to be
        sRGB before returning.

2013-02-18  Mark Lam  <mark.lam@apple.com>

        Introduced AbstractSQLStatement and AbstractSQLStatementBackend.
        https://bugs.webkit.org/show_bug.cgi?id=110148.

        Reviewed by Geoff Garen.

        This is part of the webdatabase refactoring for webkit2.
        - Also changed the frontend and backend to only refer to the
          abstract interface of each other.

        No new tests.

        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractSQLStatement.h: Added.
        (AbstractSQLStatement):
        (WebCore::AbstractSQLStatement::~AbstractSQLStatement):
        * Modules/webdatabase/AbstractSQLStatementBackend.h: Added.
        (AbstractSQLStatementBackend):
        (WebCore::AbstractSQLStatementBackend::~AbstractSQLStatementBackend):
        * Modules/webdatabase/SQLStatement.cpp:
        (WebCore::SQLStatement::setBackend):
        * Modules/webdatabase/SQLStatement.h:
        (SQLStatement):
        * Modules/webdatabase/SQLStatementBackend.cpp:
        (WebCore::SQLStatementBackend::create):
        (WebCore::SQLStatementBackend::SQLStatementBackend):
        (WebCore::SQLStatementBackend::frontend):
        * Modules/webdatabase/SQLStatementBackend.h:
        (SQLStatementBackend):
        * Modules/webdatabase/SQLTransaction.cpp:
        (WebCore::SQLTransaction::deliverStatementCallback):
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::currentStatement):
        (WebCore::SQLTransactionBackend::executeSQL):
        * Modules/webdatabase/SQLTransactionBackend.h:
        (SQLTransactionBackend):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-02-18  David Kilzer  <ddkilzer@apple.com>

        BUILD FIX (r143230): Fix renamed header and implementation of -[WebAccessibilityObjectWrapper accessibilityPostedNotification:]
        <http://webkit.org/b/110077>

        Fixes the following build failures:

            AccessibilityObjectIOS.mm:35:9: fatal error: 'AccessibilityObjectWrapperIOS.h' file not found
            #import "AccessibilityObjectWrapperIOS.h"
                    ^
            1 error generated.

            WebAccessibilityObjectWrapperIOS.mm:2051:35: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
                if (AXNotificationCallback && notificationString)
                                              ^~~~~~~~~~~~~~~~~~
                                              notificationType
            WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
            - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
                                                                                            ^
            WebAccessibilityObjectWrapperIOS.mm:2052:38: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
                    AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
                                                 ^~~~~~~~~~~~~~~~~~
                                                 notificationType
            WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
            - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
                                                                                            ^
            WebAccessibilityObjectWrapperIOS.mm:2052:38: error: cannot initialize a parameter of type 'NSString *' with an lvalue of type 'WebCore::AXObjectCache::AXNotification'
                    AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
                                                 ^~~~~~~~~~~~~~~~~~
            WebAccessibilityObjectWrapperIOS.mm:2049:81: error: conflicting parameter types in implementation of 'accessibilityPostedNotification:': 'NSString *' vs 'WebCore::AXObjectCache::AXNotification' [-Werror,-Wmismatched-parameter-types]
            - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
            WebAccessibilityObjectWrapperBase.h:48:53: note: previous definition is here
            - (void)accessibilityPostedNotification:(NSString *)notificationName;
                                                     ~~~~~~~~~~ ^
            4 errors generated.

        * accessibility/ios/AccessibilityObjectIOS.mm: Fix name of
        included header.
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
        Fix implementation to match declaration.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        * accessibility/ios/AXObjectCacheIOS.mm:
        - Clean up #endif comments.

2013-02-18  Jer Noble  <jer.noble@apple.com>

        EME: Add a CDMPrivate implementation using AVFoundation.
        https://bugs.webkit.org/show_bug.cgi?id=109739

        Reviewed by Eric Carlson.

        Add a CDMPrivate implementation using AVFoundation, similar to the EME v1 implementation
        in MediaPlayerPrivateAVFoundationObjC. This requires passing the AVAssetResourceLoadingRequest
        from the MediaPlayerPrivateAVFoundationObjC instance to CDMSessionAVFoundation. To do so
        without adding platform-specific API to MediaPlayer, add a static map from MediaPlayer ->
        MediaPlayerPrivateAVFoundationObjC instances to be used to vend the AVAssetResourceLoadingRequest
        to CDMSessionAVFoundation.

        * Modules/encryptedmedia/CDM.cpp:
        (WebCore::installedCDMFactories): Add the factory for CDMPrivateAVFoundation.
        * Modules/encryptedmedia/CDM.h:
        * Modules/encryptedmedia/CDMPrivateAVFoundation.h: Added.
        (WebCore::CDMPrivateAVFoundation::create): Simple factory method.
        (WebCore::CDMPrivateAVFoundation::~CDMPrivateAVFoundation): Simple virtual destructor.
        (WebCore::CDMPrivateAVFoundation::cdm): Simple getter.
        (WebCore::CDMPrivateAVFoundation::CDMPrivateAVFoundation): Simple constructor.
        * Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Added.
        (WebCore::CDMSessionAVFoundation::~CDMSessionAVFoundation): Simple destructor.
        (WebCore::CDMPrivateAVFoundation::supportsKeySytem): Check whether the given key system is supported.
        (WebCore::CDMPrivateAVFoundation::supportsMIMEType): Check whether the given MIME type is supported.
        (WebCore::CDMPrivateAVFoundation::createSession): Return a new CDMSessionAVFoundation.
        (WebCore::CDMSessionAVFoundation::CDMSessionAVFoundation): Simple constructor.
        (WebCore::CDMSessionAVFoundation::generateKeyRequest): Retrieve the AVAssetResourceLoadingRequest
            from the MediaPlayer, and use it to generate a key request.
        (WebCore::CDMSessionAVFoundation::releaseKeys): No-op.
        (WebCore::CDMSessionAVFoundation::update): Add the passed in key to the AVAssetResourceLoadingRequest.
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::playerToPrivateMap): Lazily instantiate static map.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Register with the playerToPrivateMap.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Unregister from same.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Also send keyNeeded event in ENCRYPTED_MEDIA_V2.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData): Convert this 
            method from file-static to class static.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::takeRequestForPlayerAndKeyURI): Pull the AVAssetResourceLoadingRequest
            from m_keyURIToRequestMap and return it, if present.

2013-02-18  Philip Rogers  <pdr@google.com>

        Fix scaling of tiled SVG backgrounds on high-dpi displays
        https://bugs.webkit.org/show_bug.cgi?id=110047

        Reviewed by Dirk Schulze.

        This patch fixes the scaling of SVG when used for drawing patterns. Tiled/patterend SVG
        images are first drawn into an image buffer and then the image buffer is used to stamp
        out tiles. Because it is a raster source, the size of the image buffer needs to
        be scaled to the final resolution of the device. After scaling the image buffer, the
        source rect and pattern transforms need to be adjusted so they align in device pixel
        coordinates. This adjustment was not done before this patch, causing pixelated rendering.

        Additionally, a FIXME has been added due to webkit.org/b/110065 and the image buffer
        has been manually scaled (using "zoomedAndScaledContainerRect") instead of relying
        on the ImageBuffer's resolutionScale parameter.

        Test: svg/as-background-image/tiled-background-image.html

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawPatternForContainer):

            Note that fixing the FIXME does not change that the source rect and transform need
            to be adjusted for page scale.

2013-02-18  David Hyatt  <hyatt@apple.com>

        Make seamless iframes paginate properly in their enclosing document's pagination context.
        https://bugs.webkit.org/show_bug.cgi?id=106125
        <rdar://problem/12922720> Text in iframe is clipped while printing

        Reviewed by Simon Fraser.

        Added new tests in fast/multicol and fast/region.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::clampToStartAndEndRegions):
        Don't clamp when the RenderView is the containing block of an object in a RenderFlowThread.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containerForRepaint):
        Don't attempt any repaint container antics when we're in a seamless iframe, since the ancestor
        document will actually do the handoff into the flow thread.

        * rendering/RenderView.cpp:
        (WebCore::enclosingSeamlessRenderer):
        Heper function to test for an enclosing seamless iframe.
        
        (WebCore::RenderView::addChild):
        Subclass addChild on RenderView to properly set the inRenderFlowThread state for a seamless
        child document so thta it will check regions.

        (WebCore::RenderView::initializeLayoutState):
        New helper method for setting up the initial layout state of a RenderView. If inside a seamless
        paginated ancestor, set up the appropriate pagination information so the child document
        knows about it. This method will expand to inherit info about line grids and exclusions eventually
        also.

        (WebCore::RenderView::layout):
        Now calls initializeLayoutState to set up the layout state.

        * rendering/RenderView.h:
        (WebCore::RenderView::pageLogicalHeight):
        (WebCore::RenderView::setPageLogicalHeight):
        (RenderView):
        Fix the type of the page logical height methods to be LayoutUnit instead of unsigned.

2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143145.
        http://trac.webkit.org/changeset/143145
        https://bugs.webkit.org/show_bug.cgi?id=110143

        Causes frequent crashes. (Requested by eric_carlson on
        #webkit).

        * dom/EventDispatchMediator.cpp:
        (WebCore::EventDispatchMediator::dispatchEvent):
        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventDispatcher::EventDispatcher):
        (WebCore::EventDispatcher::ensureEventPath):
        (WebCore::EventDispatcher::dispatchSimulatedClick):
        (WebCore::EventDispatcher::dispatchEventPreProcess):
        (WebCore::EventDispatcher::dispatchEventAtCapturing):
        (WebCore::EventDispatcher::dispatchEventAtTarget):
        (WebCore::EventDispatcher::dispatchEventAtBubbling):
        (WebCore::EventDispatcher::dispatchEventPostProcess):
        * dom/EventDispatcher.h:
        (EventDispatcher):
        (WebCore::EventDispatcher::node):
        (WebCore):
        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        * dom/GestureEvent.cpp:
        (WebCore::GestureEventDispatchMediator::dispatchEvent):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::dispatchEvent):

2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [Soup] Free cookies explicitly in loops instead of using GOwnPtr
        https://bugs.webkit.org/show_bug.cgi?id=110103

        Reviewed by Martin Robinson.

        Free cookies explicitly in loops instead of using GOwnPtr for this.
        Until now, the code was mixing both styles. This patch makes the
        code consistent one way. Adopting list items with GOwnPtr for the
        sole purpose to free them makes the freeing less obvious and may
        lead to mistakes if someone refactors the code and calls "break;"
        to abort loop iteration.

        No new tests, no behavior change.

        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):

2013-02-18  Joseph Pecoraro  <pecoraro@apple.com>

        [JSC]: ASSERT in KURL(ParsedURLStringTag) under sourceMapURLForScript
        https://bugs.webkit.org/show_bug.cgi?id=109987

        Reviewed by Pavel Feldman.

        Improved an existing test to cover this.

        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::dispatchDidParseSource):
        Remove the sourceURL parsing and script.url replacement from the JSC
        implementation of ScriptDebugServer. The WebCore inspector code that
        this was added for already does this, at a more appropriate time.

2013-02-18  Mike West  <mkwst@chromium.org>

        compareDocumentPosition reports disconnected nodes as following each other
        https://bugs.webkit.org/show_bug.cgi?id=108274

        Reviewed by Dimitri Glazkov.

        jQuery has had to implement their own sorting mechanism in Sizzle[1] due
        to Node::compareDocumentPosition always reporting disconnected nodes
        as following each other. According to spec[2], we should instead be
        indicating that the result is (a) disconnected, (b) implementation
        specific, and (c) deterministically ordered.

        [1]: https://github.com/jquery/sizzle/commit/1c8aec91284af8d8c14447976235d5dd72b0d75e
        [2]: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition

        Test: fast/dom/compare-document-position-disconnected-nodes.html

        * dom/Node.cpp:
        (WebCore::Node::compareDocumentPosition):
            After walking the parentNode chain of both Nodes, compare the root.
            If the Nodes don't share a root, they're in distinct trees, and
            should return as described above. We determine which element
            "preceeds" the other in an arbitrary fashion via pointer comparison.

2013-02-18  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] fix replay log grouping by frames
        https://bugs.webkit.org/show_bug.cgi?id=110122

        Reviewed by Pavel Feldman.

        Bug: log grouping by frames did not work if a frame end call is not a draw call.
        Drive-by: Last draw call group may not contain a draw call. In this case merge it into the previous group.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView.prototype._appendCallNode):
        (WebInspector.CanvasProfileView.prototype._maybeMergeLastDrawCallGroups):

2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [Soup] Superfluous HashMap check in SocketStreamHandleSoup::getHandleFromId()
        https://bugs.webkit.org/show_bug.cgi?id=110107

        Reviewed by Martin Robinson.

        Remove Superfluous HashMap::contains() call in SocketStreamHandleSoup::getHandleFromId()
        as HashMap::get() will already return 0 in this case anyway.

        No new tests, no behavior change.

        * platform/network/soup/SocketStreamHandleSoup.cpp:
        (WebCore):
        (WebCore::getHandleFromId):

2013-02-18  Zan Dobersek  <zdobersek@igalia.com>

        Stop placing std::isfinite and std::signbit inside the global scope
        https://bugs.webkit.org/show_bug.cgi?id=109817

        Reviewed by Darin Adler.

        Prefix calls to the isfinite and signbit methods with std:: as the two
        methods are no longer being imported into the global scope.

        No new tests as there's no change in functionality.

        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
        (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::jsDateOrNull):
        * bindings/js/JSDOMBinding.h:
        (WebCore::finiteInt32Value):
        * bindings/v8/V8Binding.h:
        (WebCore::v8DateOrNull):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::parseToNumber):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setValueAsNumber):
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::setMin):
        (WebCore::HTMLMeterElement::setMax):
        (WebCore::HTMLMeterElement::setValue):
        (WebCore::HTMLMeterElement::setLow):
        (WebCore::HTMLMeterElement::setHigh):
        (WebCore::HTMLMeterElement::setOptimum):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::value):
        (WebCore::HTMLProgressElement::setValue):
        (WebCore::HTMLProgressElement::max):
        (WebCore::HTMLProgressElement::setMax):
        * html/MonthInputType.cpp:
        (WebCore::MonthInputType::valueAsDate):
        (WebCore::MonthInputType::defaultValueForStepUp):
        (WebCore::MonthInputType::parseToNumber):
        * html/NumberInputType.cpp:
        (WebCore::NumberInputType::typeMismatchFor):
        (WebCore::NumberInputType::sanitizeValue):
        (WebCore::NumberInputType::hasBadInput):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::typeMismatchFor):
        * html/TimeInputType.cpp:
        (WebCore::TimeInputType::defaultValueForStepUp):
        * html/canvas/CanvasPathMethods.cpp:
        (WebCore::CanvasPathMethods::moveTo):
        (WebCore::CanvasPathMethods::lineTo):
        (WebCore::CanvasPathMethods::quadraticCurveTo):
        (WebCore::CanvasPathMethods::bezierCurveTo):
        (WebCore::CanvasPathMethods::arcTo):
        (WebCore::CanvasPathMethods::arc):
        (WebCore::CanvasPathMethods::rect):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setLineWidth):
        (WebCore::CanvasRenderingContext2D::setMiterLimit):
        (WebCore::CanvasRenderingContext2D::setShadowOffsetX):
        (WebCore::CanvasRenderingContext2D::setShadowOffsetY):
        (WebCore::CanvasRenderingContext2D::setShadowBlur):
        (WebCore::lineDashSequenceIsValid):
        (WebCore::CanvasRenderingContext2D::setLineDashOffset):
        (WebCore::CanvasRenderingContext2D::scale):
        (WebCore::CanvasRenderingContext2D::rotate):
        (WebCore::CanvasRenderingContext2D::translate):
        (WebCore::CanvasRenderingContext2D::transform):
        (WebCore::CanvasRenderingContext2D::setTransform):
        (WebCore::validateRectForCanvas):
        (WebCore::CanvasRenderingContext2D::isPointInPath):
        (WebCore::CanvasRenderingContext2D::isPointInStroke):
        (WebCore::CanvasRenderingContext2D::drawImage):
        (WebCore::CanvasRenderingContext2D::createLinearGradient):
        (WebCore::CanvasRenderingContext2D::createRadialGradient):
        (WebCore::CanvasRenderingContext2D::createImageData):
        (WebCore::CanvasRenderingContext2D::getImageData):
        (WebCore::CanvasRenderingContext2D::putImageData):
        (WebCore::CanvasRenderingContext2D::drawTextInternal):
        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::parseToDoubleForNumberType):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTimelineElement::setDuration):
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::reset):
        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsApple::reset):
        * html/shadow/MediaControlsBlackBerry.cpp:
        (WebCore::MediaControlFullscreenTimelineElement::setDuration):
        (WebCore::MediaControlsBlackBerry::reset):
        * inspector/InspectorValues.cpp:
        (WebCore::InspectorBasicValue::writeJSON):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::currentAge):
        (WebCore::CachedResource::freshnessLifetime):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::adjustWindowRect):
        * platform/DateComponents.cpp:
        (WebCore::DateComponents::setMillisecondsSinceEpochForDate):
        (WebCore::DateComponents::setMillisecondsSinceEpochForDateTime):
        (WebCore::DateComponents::setMillisecondsSinceEpochForMonth):
        (WebCore::DateComponents::setMillisecondsSinceMidnight):
        (WebCore::DateComponents::setMonthsSinceEpoch):
        (WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
        * platform/Decimal.cpp:
        (WebCore::Decimal::fromDouble):
        * platform/FileSystem.h:
        (WebCore::isValidFileTime):
        * platform/LocalizedStrings.cpp:
        (WebCore::localizedMediaTimeDescription):
        * platform/graphics/cairo/CairoUtilities.cpp:
        (WebCore::drawPatternToCairoContext):
        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::addArc):
        (WebCore::Path::contains):
        * platform/graphics/cg/PathCG.cpp:
        (WebCore::Path::addArc):
        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
        (WebCore::FullscreenVideoControllerGStreamer::timeToString):
        * platform/graphics/openvg/PathOpenVG.cpp:
        (WebCore::Path::addArc):
        * platform/graphics/skia/SkiaUtils.h:
        (WebCore::WebCoreFloatToSkScalar):
        (WebCore::WebCoreDoubleToSkScalar):
        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable):
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::localizedMediaTimeDescription):
        * platform/mac/WebVideoFullscreenHUDWindowController.mm:
        (timeToString):
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::parseDateValueInHeader):
        * platform/qt/LocalizedStringsQt.cpp:
        (WebCore::localizedMediaTimeDescription):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
        * rendering/RenderMediaControlsChromium.cpp:
        (WebCore::formatChromiumMediaControlsTime):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::formatMediaControlsTime):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::setFontSize):
        * svg/SVGPathParser.cpp:
        (WebCore::SVGPathParser::decomposeArcToCubic):
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunRound::round):
        * xml/XPathValue.cpp:
        (WebCore::XPath::Value::toString):

2013-02-18  Chris Fleizach  <cfleizach@apple.com>

        AX: Make iOS wrapper use the WebAccessibilityObjectBase wrapper
        https://bugs.webkit.org/show_bug.cgi?id=110077

        Reviewed by David Kilzer.

        Make the iOS wrapper a subclass of the shared wrapper so that iOS can re-use code from the Mac.
        Rename the iOS file to reflect the class name.

        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/ios/AXObjectCacheIOS.mm:
        (WebCore::AXObjectCache::attachWrapper):
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/ios/AccessibilityObjectWrapperIOS.h: Removed.
        * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Removed.
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.h.
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.mm.
        (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
        (-[WebAccessibilityObjectWrapper attachmentView]):
        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):

2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143210.
        http://trac.webkit.org/changeset/143210
        https://bugs.webkit.org/show_bug.cgi?id=110128

        Still causing some test timeouts (Requested by anttik on
        #webkit).

        * platform/SharedTimer.h:
        (SharedTimer):
        (WebCore):
        (WebCore::MainThreadSharedTimer::stop):
        * platform/ThreadTimers.cpp:
        (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
        * platform/mac/SharedTimerMac.mm:
        (WebCore):
        (WebCore::PowerObserver::restartSharedTimer):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):

2013-02-18  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Disable hiding the debugger when it is below the source code
        https://bugs.webkit.org/show_bug.cgi?id=110106

        Reviewed by Pavel Feldman.

        When the "Split horizontally" option is checked in the Sources panel the button responsible for the sidebar
        visibility is hidden and the sidebar is force-shown. Also set the "Split sidebar" option default to true.

        No new tests.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        * inspector/front-end/scriptsPanel.css:
        (.split-view-horizontal #scripts-debug-sidebar-resizer-widget):

2013-02-18  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] Support outside-shape layout for shape-inside property
        https://bugs.webkit.org/show_bug.cgi?id=102571

        Reviewed by David Hyatt.

        A shape-inside value of 'outside-shape' should resolve to the value of
        the shape-outside property for layout. This patch introduces a helper
        method to resolve shape-inside in RenderStyle, and replaces calls to
        RenderStyle::shapeInside() when the resolved (layout) value should be
        used.

        Test: fast/exclusions/shape-inside/shape-inside-outside-shape.html

        * rendering/ExclusionShapeInfo.cpp:
        (WebCore::::computedShape): Use the resolved shape-inside getter.
        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Ditto.
        (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Ditto.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::styleDidChange): Ditto.
        (WebCore::RenderBlock::exclusionShapeInsideInfo): Ditto.
        * rendering/style/RenderStyle.h: Add the resolved shape inside getter.

2013-02-18  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: hide vertical-sidebar-split in dock-to-right mode behind single experimental flag.
        https://bugs.webkit.org/show_bug.cgi?id=110119

        Reviewed by Vsevolod Vlasov.

        Removed context menus, made it toggle automatically upon dock orientation change.

        * inspector/front-end/DockController.js:
        (WebInspector.DockController.prototype._toggleDockState):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
        (WebInspector.ElementsPanel.prototype._dockSideChanged):
        (WebInspector.ElementsPanel.prototype._setVerticalSplit):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
        (WebInspector.ScriptsPanel.prototype._dockSideChanged):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/inspector.css:
        * inspector/front-end/scriptsPanel.css:
        (#scripts-sidebar-stack-pane):
        (div.sidebar-pane-stack#scripts-debug-sidebar-contents):
        * inspector/front-end/tabbedPane.css:
        (.tabbed-pane):

2013-02-18  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] Fix nits for configuration
        https://bugs.webkit.org/show_bug.cgi?id=110083

        Reviewed by Martin Robinson.

        Remove trailing white space. It has caused annoying warning while configuration.

        No new tests since no funtionality change.

        * GNUmakefile.list.am:

2013-02-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [WebGL][EFL] Refactor GraphicsContext3DPrivate to add support for SharedContext.
        https://bugs.webkit.org/show_bug.cgi?id=109988

        Reviewed by Kenneth Rohde Christiansen.

        Covered by existing WebGL tests.

        This patch refactors PlatformContext and GraphicsContext3DPrivate to
        add support for Shared Context. This would help share GL resources
        between transport surface and offscreen surface without having to worry
        about the context state. So far, we used the same drawable as transport
        surface and offscreen surface. After this patch we use pixmap surface as
        offscreen surface and use shared context to render texture content to
        transport surface. This would also align as to how shared surface is implemented
        on EFL and Qt ports.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore):
        (WebCore::GraphicsContext3DPrivate::initialize):
        (WebCore::GraphicsContext3DPrivate::makeSharedContextCurrent):
        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):
        * platform/graphics/opengl/GLPlatformContext.cpp:
        (WebCore::GLPlatformContext::initialize):
        * platform/graphics/opengl/GLPlatformContext.h:
        Needed changes to take shared context into use.

        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::createOffScreenSurface):
        (WebCore::GLPlatformSurface::updateContents):
        * platform/graphics/opengl/GLPlatformSurface.h:
        (GLPlatformSurface):
        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
        (WebCore::GLXConfigSelector::GLXConfigSelector):
        (WebCore::GLXConfigSelector::visualInfo):
        (WebCore::GLXConfigSelector::pixmapContextConfig):
        (GLXConfigSelector):
        (WebCore::GLXConfigSelector::reset):
        * platform/graphics/surfaces/glx/GLXContext.cpp:
        Added support to query configiration supporting
        pixmap surface.

        (WebCore::GLXOffScreenContext::initialize):
        * platform/graphics/surfaces/glx/GLXContext.h:
        (GLXOffScreenContext):
        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        (WebCore::GLXTransportSurface::swapBuffers):
        (WebCore::GLXOffScreenSurface::GLXOffScreenSurface):
        (WebCore::GLXOffScreenSurface::~GLXOffScreenSurface):
        (WebCore::GLXOffScreenSurface::initialize):
        (WebCore::GLXOffScreenSurface::configuration):
        (WebCore::GLXOffScreenSurface::destroy):
        (WebCore::GLXOffScreenSurface::freeResources):
        (WebCore::GLXOffScreenSurface::setGeometry):
        Renamed GLXPBuffer surface as GLXOffScreenSurface.

        * platform/graphics/surfaces/glx/GLXSurface.h:
        (GLXTransportSurface):
        (GLXOffScreenSurface):
        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::createSurface):
        * platform/graphics/surfaces/glx/X11Helper.cpp:
        (WebCore::X11Helper::createPixmap):
        (WebCore):
        (WebCore::X11Helper::destroyPixmap):
        (WebCore::X11Helper::createOffScreenWindow):
        * platform/graphics/surfaces/glx/X11Helper.h:
        (X11Helper):
        Added functions to create and destroy pixmap.

2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: Generate meta information for HeapSnapshot parser.
        https://bugs.webkit.org/show_bug.cgi?id=110104

        Reviewed by Yury Semikhatsky.

        The format of Native heap snapshot is slightly different so it should provide its own meta information.


        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::finish):
        (WebCore::HeapGraphSerializer::reportMemoryUsage):
        (WebCore::HeapGraphSerializer::registerTypeString):
        (WebCore):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializer):
        * inspector/Inspector.json:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
        * inspector/InspectorMemoryAgent.h:
        (InspectorMemoryAgent):
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
        * inspector/front-end/NativeHeapSnapshot.js:
        (WebInspector.NativeHeapSnapshot):

2013-02-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Force single header includes in GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=104676

        Reviewed by Xan Lopez.

        Only including <webkitdom/webkitdom.h> should be allowed from
        apps.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateHeader):
        * bindings/scripts/gobject-generate-headers.pl:
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:

2013-02-16  Antti Koivisto  <antti@apple.com>

        Reschedule shared CFRunLoopTimer instead of reconstructing it
        https://bugs.webkit.org/show_bug.cgi?id=109765

        Reviewed by Andreas Kling.

        Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.

        * platform/SharedTimer.h:
        (WebCore::SharedTimer::willEnterNestedEventLoop):
        (WebCore):
        (MainThreadSharedTimer):
        (WebCore::MainThreadSharedTimer::willEnterNestedEventLoop):
        * platform/ThreadTimers.cpp:
        (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
        * platform/mac/SharedTimerMac.mm:
        (WebCore):
        (WebCore::PowerObserver::clearSharedTimer):
        (WebCore::ensurePowerObserver):
        (WebCore::sharedTimer):
        (WebCore::reinsertSharedTimer):
        
            Before entering nested runloop (used for inspector debugger mostly) reconstruct and reinsert the timer. For some reason
            the timer doesn't fire otherwise.

        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):

2013-02-18  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Resources] Only remember the tree element selection if explicitly made by user
        https://bugs.webkit.org/show_bug.cgi?id=110105

        Reviewed by Pavel Feldman.

        This change instructs the Resources panel to remember the selected tree element only if it has been
        selected by the user (not automatically, like selecting a parent when its child is removed).
        All onselect() overrides pass the selectedByUser argument value
        to BaseStorageTreeElement.prototype.onselect.
        Drive-by: Use === comparisons everywhere.

        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype._reset): Do not detach [immutable] category views.
        (WebInspector.BaseStorageTreeElement.prototype.onselect): Remember itemURL on user gesture only.
        (WebInspector.StorageCategoryTreeElement.prototype.onselect):
        (WebInspector.FrameTreeElement.prototype.onselect):
        (WebInspector.FrameResourceTreeElement.prototype.onselect):
        (WebInspector.DatabaseTreeElement.prototype.onselect):
        (WebInspector.DatabaseTableTreeElement.prototype.onselect):
        (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
        (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
        (WebInspector.IDBIndexTreeElement.prototype.onselect):
        (WebInspector.DOMStorageTreeElement):
        (WebInspector.DOMStorageTreeElement.prototype.onselect):
        (WebInspector.CookieTreeElement.prototype.onselect):
        (WebInspector.ApplicationCacheManifestTreeElement.prototype.onselect):
        (WebInspector.ApplicationCacheFrameTreeElement.prototype.onselect):
        (WebInspector.FileSystemTreeElement.prototype.onselect):
        (WebInspector.FileSystemTreeElement.prototype.clear):
        (WebInspector.ResourcesSearchController.prototype.nextSearchResult):

2013-02-18  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Color picker should not be available in Computed Styles pane
        https://bugs.webkit.org/show_bug.cgi?id=109697

        Reviewed by Pavel Feldman.

        Refactored PropertiesSection and TreeElement inheritors in StylesSidebarPane.js for cleaner separation
        of read-only and editable properties.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype.onpopulate):
        (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
        (WebInspector.ComputedStylePropertiesSection):
        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
        (WebInspector.BlankStylePropertiesSection):
        (WebInspector.StylePropertyTreeElementBase):
        (WebInspector.StylePropertyTreeElementBase.prototype.node):
        (WebInspector.StylePropertyTreeElementBase.prototype.editablePane):
        (WebInspector.StylePropertyTreeElementBase.prototype.onattach):
        (WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.linkifyURL):
        (WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.):
        (WebInspector.StylePropertyTreeElementBase.prototype):
        (.event):
        (.isRevert):

2013-02-18  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] group replay log calls by frames
        https://bugs.webkit.org/show_bug.cgi?id=110101

        Reviewed by Pavel Feldman.

        Group canvas replay log by frames, then by draw calls.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype.dispose):
        (WebInspector.CanvasProfileView.prototype._appendCallNode):
        (WebInspector.CanvasProfileView.prototype._appendDrawCallGroup):

2013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [Soup] CookieJarSoup::deleteCookie() should stop looking for the cookie after it is removed
        https://bugs.webkit.org/show_bug.cgi?id=110100

        Reviewed by Kenneth Rohde Christiansen.

        CookieJarSoup::deleteCookie() retrieves the list of cookies that apply to a given URL, then
        iterates through the cookies to find the one with the right name and delete it. However, the
        current implementation keeps on comparing cookie names after the cookie was removed. This
        patch introduces a "wasDeleted" boolean to stop comparing cookie names after the cookie was
        deleted. Note that we cannot break as soon as the cookie is found as we need to keep iterating
        so that the cookies get freed by GOwnPtr.

        No new tests, no behavior change.

        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::deleteCookie):

2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
        https://bugs.webkit.org/show_bug.cgi?id=109691

        Reviewed by Pavel Feldman.

        Separate project of certain type is now created for each domain.
        UISourceCode path represents a path in the project now.
        UISourceCode uri is now calculated based on project id and path.
        It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.

        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
        (WebInspector.FileSystemProjectDelegate.prototype._populate):
        (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleProjectDelegate):
        (WebInspector.SimpleProjectDelegate.projectId):
        (WebInspector.SimpleProjectDelegate.prototype.id):
        (WebInspector.SimpleProjectDelegate.prototype.displayName):
        (WebInspector.SimpleProjectDelegate.prototype.addFile):
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.splitURL):
        (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
        (WebInspector.SimpleWorkspaceProvider.uriForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.uri):
        (WebInspector.UISourceCode.path):
        (WebInspector.UISourceCode.prototype.uri):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype.uiSourceCodeForURI):

2013-02-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Rebaseline failure media tests after r142947
        https://bugs.webkit.org/show_bug.cgi?id=109904

        Reviewed by Kenneth Rohde Christiansen.

        * css/mediaControlsEfl.css: Align time text vertically.
        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):

2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extract FileSystemUtils from FileSystemProjectDelegate as IsolatedFileSystem class.
        https://bugs.webkit.org/show_bug.cgi?id=110086

        Reviewed by Pavel Feldman.

        Extracted IsolatedFileSystem class that could be mocked for tests now.
        Renamed IsolatedFileSystemModel to IsolatedFileSystemManager.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate):
        (WebInspector.FileSystemProjectDelegate.prototype.id):
        (WebInspector.FileSystemProjectDelegate.prototype.displayName):
        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
        (WebInspector.FileSystemProjectDelegate.prototype._populate):
        * inspector/front-end/IsolatedFileSystem.js: Added.
        (WebInspector.IsolatedFileSystem):
        (WebInspector.IsolatedFileSystem.errorMessage):
        (WebInspector.IsolatedFileSystem.prototype.id):
        (WebInspector.IsolatedFileSystem.prototype.path):
        (WebInspector.IsolatedFileSystem.prototype._requestFileSystem):
        (WebInspector.IsolatedFileSystem.prototype.fileSystemLoaded):
        (WebInspector.IsolatedFileSystem.prototype.innerCallback):
        (WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
        (WebInspector.IsolatedFileSystem.prototype.fileEntryLoaded):
        (WebInspector.IsolatedFileSystem.prototype.fileLoaded):
        (WebInspector.IsolatedFileSystem.prototype.readerLoadEnd):
        (WebInspector.IsolatedFileSystem.prototype.errorHandler):
        (WebInspector.IsolatedFileSystem.prototype.requestFileContent):
        (WebInspector.IsolatedFileSystem.prototype.fileWriterCreated.fileTruncated):
        (WebInspector.IsolatedFileSystem.prototype.fileWriterCreated):
        (WebInspector.IsolatedFileSystem.prototype.writerEnd):
        (WebInspector.IsolatedFileSystem.prototype.setFileContent):
        (WebInspector.IsolatedFileSystem.prototype.):
        (WebInspector.IsolatedFileSystem.prototype.toArray):
        (WebInspector.IsolatedFileSystem.prototype._readDirectory):
        (WebInspector.IsolatedFileSystem.prototype._requestEntries):
        * inspector/front-end/IsolatedFileSystemManager.js: Renamed from Source/WebCore/inspector/front-end/IsolatedFileSystemModel.js.
        (WebInspector.IsolatedFileSystemManager):
        (WebInspector.IsolatedFileSystemManager.prototype.mapping):
        (WebInspector.IsolatedFileSystemManager.prototype.supportsFileSystems):
        (WebInspector.IsolatedFileSystemManager.prototype._requestFileSystems):
        (WebInspector.IsolatedFileSystemManager.prototype.addFileSystem):
        (WebInspector.IsolatedFileSystemManager.prototype.removeFileSystem):
        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemsLoaded):
        (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemPaths):
        (WebInspector.IsolatedFileSystemManager.prototype._processPendingFileSystemRequests):
        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemAdded):
        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
        (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
        (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
        (WebInspector.IsolatedFileSystemDispatcher):
        (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemsLoaded):
        (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemRemoved):
        (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemAdded):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.WorkspaceSettingsTab.prototype._createFileSystemsEditor):
        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.removeFileSystemClicked):
        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemClicked):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2013-02-18  Huang Dongsung  <luxtella@company100.net>

        [EFL][WK2] compositing/layer-creation/fixed-position-out-of-view-scaled.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=110059

        Reviewed by Kenneth Rohde Christiansen.

        Remove the ASSERT check in TextureMapperLayer. This assertion seems
        valid because CoordinatedGraphicsScene::adjustPositionForFixedLayers() calls
        TextureMapperLayer::setScrollPositionDeltaIfNeeded() when the graphics
        layer is a fixed position layer. However, the assertion can be failed
        because it is possible that TextureMapperLayer is a non-fixed position
        layer when the graphics layer that holds the TextureMapperLayer is a
        fixed position layer. When CoordinatedGraphicsScene flushes,
        TextureMapperLayer becomes a fixed position layer.

        No new tests. No change in behavior.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):

2013-02-18  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [WK2][EFL] Unified text checker implementation
        https://bugs.webkit.org/show_bug.cgi?id=107682

        Reviewed by Anders Carlsson.

        No new tests, covered by editing/spelling tests.

        * platform/text/TextChecking.h:
        (WebCore):
        Enabling unified text checker feature for WebKit-EFL.

2013-02-18  Nico Weber  <thakis@chromium.org>

        [chromium/clang] Remove -Wno-return-type-c-linkage
        https://bugs.webkit.org/show_bug.cgi?id=110098

        Reviewed by Jochen Eisinger.

        The one instance where this triggered was removed in
        http://trac.webkit.org/changeset/141184 . A clang that has this
        warning landed in chromium r182694, so it should be safe to turn
        the warning on now.

        * WebCore.gyp/WebCore.gyp:

2013-02-18  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: provide basic console.table implementation (no [,columns] support)
        https://bugs.webkit.org/show_bug.cgi?id=109453

        Reviewed by Vsevolod Vlasov.

        Test: inspector/console/console-format-table.html

        Using console preview infrastructure to support console.table.

        * English.lproj/localizedStrings.js:
        * inspector/ConsoleAPITypes.h:
        * inspector/ConsoleMessage.cpp:
        (WebCore::messageTypeValue):
        (WebCore::ConsoleMessage::addToFrontend):
        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::wrapObject):
        (WebCore):
        (WebCore::InjectedScript::wrapTable):
        * inspector/InjectedScript.h:
        (InjectedScript):
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl):
        (WebInspector.ConsoleMessageImpl.prototype.willHide):
        (WebInspector.ConsoleMessageImpl.prototype._format):
        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
        (WebInspector.ConsoleMessageImpl.prototype._renderPropertyPreview):
        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
        * inspector/front-end/ConsoleModel.js:
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._appendConsoleMessage):
        (WebInspector.ConsoleView.prototype._consoleCleared):
        (WebInspector.ConsoleView.prototype._updateMessageList):
        (WebInspector.ConsoleCommand.prototype.wasShown):
        (WebInspector.ConsoleCommand.prototype.willHide):
        (WebInspector.ConsoleGroup.prototype.addMessage):
        * inspector/front-end/DataGrid.js:
        (.sortDataGrid.comparator):
        (.sortDataGrid):
        (WebInspector.DataGrid.createSortableDataGrid):
        (WebInspector.DataGrid.prototype.renderInline):
        * inspector/front-end/DatabaseQueryView.js:
        (WebInspector.DatabaseQueryView.prototype._queryFinished):
        * inspector/front-end/dataGrid.css:
        (.data-grid.inline):
        (.data-grid.inline td.corner):
        * inspector/front-end/resourcesPanel.css:
        (.storage-view > .data-grid):
        * page/Console.cpp:
        (WebCore::Console::table):
        (WebCore):
        * page/Console.h:
        (Console):
        * page/Console.idl:

2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: JavaScriptSourceFrame should inherit UISourceCodeFrame
        https://bugs.webkit.org/show_bug.cgi?id=110091

        Reviewed by Pavel Feldman.

        Removed duplicated code from JavaScriptSourceFrame and made it inherit UISourceCodeFrame.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype.onUISourceCodeContentChanged):
        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
        * inspector/front-end/ScriptsPanel.js:
        * inspector/front-end/UISourceCodeFrame.js:
        (WebInspector.UISourceCodeFrame.prototype.canEditSource):
        (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
        (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
        (WebInspector.UISourceCodeFrame.prototype.onUISourceCodeContentChanged):
        (WebInspector.UISourceCodeFrame.prototype._innerSetContent):

2013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove unused _files field in FileSystemProjectDelegate
        https://bugs.webkit.org/show_bug.cgi?id=110082

        Reviewed by Pavel Feldman.

        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate):
        (WebInspector.FileSystemProjectDelegate.prototype._addFile):
        (WebInspector.FileSystemProjectDelegate.prototype._removeFile):

2013-02-18  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: allow 0 as a formatted parameter in console message.
        https://bugs.webkit.org/show_bug.cgi?id=110096

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype.append):
        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):

2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed speculative fix for Chromium Mac.

        * WebCore.gypi:

2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
        https://bugs.webkit.org/show_bug.cgi?id=109554

        In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
        can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.

        Drive by fix: I introduced a client interface for the HeapGraphSerializer.
        It helps me to do the tests for the serializer.

        Reviewed by Yury Semikhatsky.

        It is covered by newly added tests in TestWebKitAPI.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::pushUpdate):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::toNodeId):
        (WebCore::HeapGraphSerializer::addRootNode):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializer):
        (Client):
        (WebCore::HeapGraphSerializer::Client::~Client):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):

2013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143100.
        http://trac.webkit.org/changeset/143100
        https://bugs.webkit.org/show_bug.cgi?id=110088

        Breaks file system support in workspace. (Requested by vsevik
        on #webkit).

        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleProjectDelegate):
        (WebInspector.SimpleProjectDelegate.prototype.id):
        (WebInspector.SimpleProjectDelegate.prototype.displayName):
        (WebInspector.SimpleProjectDelegate.prototype.addFile):
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.uriForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.uri):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype.uiSourceCodeForURI):
        (WebInspector.Workspace.prototype.projectForUISourceCode):

2013-02-15  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Introduce ProfilesPanelDescriptor.
        https://bugs.webkit.org/show_bug.cgi?id=109906

        Reviewed by Pavel Feldman.

        Some constants/methods should be accesible before ProfilesPanel
        is instantiated.

        Extracted methods to check if profile is "user-initiated" and what is
        its index.

        Also profile URL regexp moved to ProfilesPanelDescriptor.

        * inspector/front-end/ProfilesPanelDescriptor.js: Added.
        * WebCore.gypi: Added ProfilesPanelDescriptor.js
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * inspector/compile-front-end.py: Ditto.
        * inspector/front-end/WebKit.qrc: Ditto.
        * inspector/front-end/inspector.html: Ditto.
        * inspector/front-end/HeapSnapshotView.js: Adopted changes.
        * inspector/front-end/ProfilesPanel.js: Ditto.
        * inspector/front-end/externs.js: Ditto.
        * inspector/front-end/inspector.js: Ditto.

2013-02-17  Dimitri Glazkov  <dglazkov@chromium.org>

        Stop passing around SelectorChecker in SelectorQuery, now that it's stack-allocated.
        https://bugs.webkit.org/show_bug.cgi?id=110038

        Reviewed by Andreas Kling.

        No functional changes, covered by existing tests.

        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::matches): Moved instantiation of SelectorChecker in here.
        (WebCore::SelectorDataList::queryAll): Got rid of unneeded SelectorChecker arg.
        (WebCore::SelectorDataList::queryFirst): Ditto.
        (WebCore::SelectorDataList::execute): Moved instantiation of SelectorChecker in here.
        (WebCore::SelectorQuery::matches): Removed instantiation of SelectorChecker here.
        (WebCore::SelectorQuery::queryAll): Ditto.
        (WebCore::SelectorQuery::queryFirst): Ditto.
        * dom/SelectorQuery.h:
        (WebCore): Tweaked headers to make SelectorChecker just an implementation detail.
        (SelectorDataList): Tweaked decls to remove SelectorChecker args.

2013-02-17  Dimitri Glazkov  <dglazkov@chromium.org>

        Stop passing around SelectorChecker in ContentSelectorQuery.
        https://bugs.webkit.org/show_bug.cgi?id=110041

        Now that SelectorChecker has no interesting state, we can simplify ContentSelectorQuery and get rid of a class.

        Reviewed by Andreas Kling.

        No functional changes, covered by existing tests.

        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorDataList::checkContentSelector): Zapped ContentSelectorChecker and moved its only remaining method here.
        (WebCore::ContentSelectorDataList::matches): Removed SelectorChecker argument.
        (WebCore::ContentSelectorQuery::ContentSelectorQuery): Removed an unnecessary member.
        (WebCore::ContentSelectorQuery::matches): Removed unnecessary argument.
        * html/shadow/ContentSelectorQuery.h:
        (WebCore): Cleaned up the file.
        (ContentSelectorDataList): Updated decls.
        (ContentSelectorQuery): Ditto.

2013-02-17  Mike West  <mkwst@chromium.org>

        WheelEvent should not target text nodes.
        https://bugs.webkit.org/show_bug.cgi?id=109939

        Reviewed by Darin Adler.

        WheelEvent, like other mouse events, should not target text nodes.
        EventHandler correctly handles other mouse events by retargeting
        events to text nodes' parents; this patch adds that logic to the
        WheelEvent handler.

        This should allow jQuery to stop working around WebKit's behavior[1].

        [1]: https://github.com/jquery/jquery/commit/c61150427fc8ccc8e884df8f221a6c9bb5477929

        Test: fast/events/wheelevent-in-text-node.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleWheelEvent):
            If a WheelEvent's hit test lands on a text node, retarget the
            event to the text node's parent. Do this before latching the node.

2013-02-17  Filip Pizlo  <fpizlo@apple.com>

        Move all Structure out-of-line inline methods to StructureInlines.h
        https://bugs.webkit.org/show_bug.cgi?id=110024

        Rubber stamped by Sam Weinig.

        No new tests because no new behavior. Just rewiring includes.

        * ForwardingHeaders/parser/SourceProviderCache.h: Added.
        * loader/cache/CachedScript.cpp:

2013-02-17  Hayato Ito  <hayato@chromium.org>

        Make EventDispatcher take an Event object in its constructor.
        https://bugs.webkit.org/show_bug.cgi?id=109898

        Reviewed by Dimitri Glazkov.

        That makes EventDispatcher more RAII-like so that we can calculate
        an EventPath in its constructor.  I'll remove
        EventDispatcher::ensureEventPath() in a following patch.

        No tests. No change in behavior.

        * dom/EventDispatchMediator.cpp:
        (WebCore::EventDispatchMediator::dispatchEvent):
        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventDispatcher::EventDispatcher):
        (WebCore::EventDispatcher::ensureEventPath):
        (WebCore::EventDispatcher::dispatchSimulatedClick):
        (WebCore::EventDispatcher::dispatch):
        (WebCore::EventDispatcher::dispatchEventPreProcess):
        (WebCore::EventDispatcher::dispatchEventAtCapturing):
        (WebCore::EventDispatcher::dispatchEventAtTarget):
        (WebCore::EventDispatcher::dispatchEventAtBubbling):
        (WebCore::EventDispatcher::dispatchEventPostProcess):
        * dom/EventDispatcher.h:
        (EventDispatcher):
        (WebCore::EventDispatcher::node):
        (WebCore::EventDispatcher::event):
        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        * dom/GestureEvent.cpp:
        (WebCore::GestureEventDispatchMediator::dispatchEvent):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::dispatchEvent):

2013-02-17  Philip Rogers  <pdr@google.com>

        Fix non-root SVG viewport under zoom
        https://bugs.webkit.org/show_bug.cgi?id=99453

        Reviewed by Dirk Schulze.

        The root SVG element handles zoom differently than other SVG nodes because it needs
        to translate between CSS (where zoom is applied to all units) and SVG (where zoom is only
        applied at the top level). A good description of this difference can be found here:
        http://trac.webkit.org/browser/trunk/Source/WebCore/css/StyleResolver.cpp?rev=142855#L2598

        SVG elements can appear as children in the SVG tree as well, and in this mode
        SVGSVGElement should not consider the current zoom level. This patch fixes a bug
        where non-root viewport calculations were removing zoom.

        Test: svg/custom/symbol-zoom.html

        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::currentViewportSize):
            This change removes the unnecessary zoom calculation for non-root nodes. This is similar
            to how zoom is handled elsewhere, e.g., SVGSVGElement::localCoordinateSpaceTransform.

2013-02-17  Chris Fleizach  <cfleizach@apple.com>

        AX: Upstream iOS Accessibility files
        https://bugs.webkit.org/show_bug.cgi?id=110071

        Reviewed by David Kilzer.

        Upstream the iOS Accessibility files for WebCore. 

        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/ios: Added.
        * accessibility/ios/AXObjectCacheIOS.mm: Added.
        (WebCore):
        (WebCore::AXObjectCache::detachWrapper):
        (WebCore::AXObjectCache::attachWrapper):
        (WebCore::AXObjectCache::postPlatformNotification):
        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
        (WebCore::AXObjectCache::handleScrolledToAnchor):
        * accessibility/ios/AccessibilityObjectIOS.mm: Added.
        (-[WAKView accessibilityIsIgnored]):
        (WebCore):
        (WebCore::AccessibilityObject::detachFromParent):
        (WebCore::AccessibilityObject::overrideAttachmentParent):
        (WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
        (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
        * accessibility/ios/AccessibilityObjectWrapperIOS.h: Added.
        (WAKView):
        * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Added.
        (AccessibilityUnignoredAncestor):
        (-[WebAccessibilityTextMarker initWithTextMarker:cache:]):
        (-[WebAccessibilityTextMarker initWithData:cache:]):
        (-[WebAccessibilityTextMarker initWithData:accessibilityObject:]):
        (+[WebAccessibilityTextMarker textMarkerWithVisiblePosition:cache:]):
        (-[WebAccessibilityTextMarker dataRepresentation]):
        (-[WebAccessibilityTextMarker visiblePosition]):
        (-[WebAccessibilityTextMarker description]):
        (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
        (-[WebAccessibilityObjectWrapper detach]):
        (-[WebAccessibilityObjectWrapper dealloc]):
        (-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]):
        (-[WebAccessibilityObjectWrapper accessibilityObject]):
        (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
        (-[WebAccessibilityObjectWrapper accessibilityPostProcessHitTest:]):
        (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
        (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
        (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
        (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
        (-[WebAccessibilityObjectWrapper accessibilityLanguage]):
        (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
        (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
        (-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
        (-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
        (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
        (-[WebAccessibilityObjectWrapper accessibilityTraits]):
        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
        (-[WebAccessibilityObjectWrapper isAccessibilityElement]):
        (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
        (-[WebAccessibilityObjectWrapper accessibilityLabel]):
        (-[WebAccessibilityObjectWrapper tableCellParent]):
        (-[WebAccessibilityObjectWrapper tableParent]):
        (-[WebAccessibilityObjectWrapper accessibilityTitleElement]):
        (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
        (-[WebAccessibilityObjectWrapper accessibilityElementForRow:andColumn:]):
        (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
        (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
        (-[WebAccessibilityObjectWrapper accessibilityPlaceholderValue]):
        (-[WebAccessibilityObjectWrapper accessibilityValue]):
        (-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
        (-[WebAccessibilityObjectWrapper accessibilityHint]):
        (-[WebAccessibilityObjectWrapper accessibilityURL]):
        (-[WebAccessibilityObjectWrapper _convertIntRectToScreenCoordinates:]):
        (-[WebAccessibilityObjectWrapper accessibilityElementRect]):
        (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
        (-[WebAccessibilityObjectWrapper accessibilityFrame]):
        (-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
        (-[WebAccessibilityObjectWrapper accessibilityContainer]):
        (-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
        (-[WebAccessibilityObjectWrapper _accessibilityWebDocumentView]):
        (-[WebAccessibilityObjectWrapper _accessibilityNextElementsWithCount:]):
        (-[WebAccessibilityObjectWrapper _accessibilityPreviousElementsWithCount:]):
        (-[WebAccessibilityObjectWrapper accessibilityRequired]):
        (-[WebAccessibilityObjectWrapper accessibilityFlowToElements]):
        (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
        (-[WebAccessibilityObjectWrapper isAttachment]):
        (-[WebAccessibilityObjectWrapper _accessibilityActivate]):
        (-[WebAccessibilityObjectWrapper attachmentView]):
        (rendererForView):
        (-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
        (-[WebAccessibilityObjectWrapper postFocusChangeNotification]):
        (-[WebAccessibilityObjectWrapper postSelectedTextChangeNotification]):
        (-[WebAccessibilityObjectWrapper postLayoutChangeNotification]):
        (-[WebAccessibilityObjectWrapper postLiveRegionChangeNotification]):
        (-[WebAccessibilityObjectWrapper postLoadCompleteNotification]):
        (-[WebAccessibilityObjectWrapper postChildrenChangedNotification]):
        (-[WebAccessibilityObjectWrapper postInvalidStatusChangedNotification]):
        (-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
        (-[WebAccessibilityObjectWrapper accessibilityModifySelection:increase:]):
        (-[WebAccessibilityObjectWrapper accessibilityIncreaseSelection:]):
        (-[WebAccessibilityObjectWrapper accessibilityDecreaseSelection:]):
        (-[WebAccessibilityObjectWrapper accessibilityMoveSelectionToMarker:]):
        (-[WebAccessibilityObjectWrapper accessibilityIncrement]):
        (-[WebAccessibilityObjectWrapper accessibilityDecrement]):
        (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]):
        (-[WebAccessibilityObjectWrapper stringForTextMarkers:]):
        (blockquoteLevel):
        (AXAttributeStringSetBlockquoteLevel):
        (AXAttributeStringSetHeadingLevel):
        (AXAttributeStringSetFont):
        (AXAttributeStringSetNumber):
        (AXAttributeStringSetStyle):
        (AXAttributedStringAppendText):
        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
        (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
        (-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
        (-[WebAccessibilityObjectWrapper positionForTextMarker:]):
        (-[WebAccessibilityObjectWrapper textMarkerRange]):
        (-[WebAccessibilityObjectWrapper elementTextRange]):
        (-[WebAccessibilityObjectWrapper accessibilityObjectForTextMarker:]):
        (-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
        (-[WebAccessibilityObjectWrapper textMarkerForPosition:]):
        (-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
        (-[WebAccessibilityObjectWrapper stringForRange:]):
        (-[WebAccessibilityObjectWrapper attributedStringForRange:]):
        (-[WebAccessibilityObjectWrapper elementsForRange:]):
        (-[WebAccessibilityObjectWrapper selectionRangeString]):
        (-[WebAccessibilityObjectWrapper selectedTextMarker]):
        (-[WebAccessibilityObjectWrapper lineEndMarkerForMarker:]):
        (-[WebAccessibilityObjectWrapper lineStartMarkerForMarker:]):
        (-[WebAccessibilityObjectWrapper nextMarkerForMarker:]):
        (-[WebAccessibilityObjectWrapper previousMarkerForMarker:]):
        (-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
        (-[WebAccessibilityObjectWrapper textMarkerForPoint:]):
        (-[WebAccessibilityObjectWrapper accessibilityIdentifier]):
        (-[WebAccessibilityObjectWrapper accessibilitySpeechHint]):
        (-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
        (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionStatus]):
        (-[WebAccessibilityObjectWrapper accessibilityARIARelevantStatus]):
        (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
        (-[WebAccessibilityObjectWrapper accessibilityInvalidStatus]):
        (-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
        (-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
        (-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
        (-[WebAccessibilityObjectWrapper accessibilityMathType]):
        (-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]):
        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
        (-[WebAccessibilityObjectWrapper description]):

2013-02-17  Chris Fleizach  <cfleizach@apple.com>

        AX: rename WebAccessibilityObjectWrapper to WebAccessibilityObjectWrapperBase
        https://bugs.webkit.org/show_bug.cgi?id=110061

        Reviewed by David Kilzer.

        Rename the base accessibility wrapper class so that the iOS class can share the same name.

        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::attachWrapper):
        * accessibility/mac/WebAccessibilityObjectWrapper.h: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h.
        * accessibility/mac/WebAccessibilityObjectWrapper.mm: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm.
        * accessibility/mac/WebAccessibilityObjectWrapperBase.h: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.h.
        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm.
        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Removed.

2013-02-17  Andreas Kling  <akling@apple.com>

        REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler.
        <http://webkit.org/b/108835>

        Reviewed by Ojan Vafai.

        Streamline the case where GlyphPage has a per-glyph SimpleFontData* lookup table to allow
        taking earlier branches on pages with lots of mixed-font text.
        We accomplish this by explicitly storing a null SimpleFontData* for glyph #0 in the per-glyph
        lookup table instead of relying on "if (!glyph)" checks in getters.

        This is a speculative optimization, I can't get stable enough numbers locally to tell if this
        will resolve the issue on the bots.

        * platform/graphics/GlyphPage.h:
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::fontDataForCharacter):
        (WebCore::GlyphPage::setGlyphDataForIndex):

2013-02-17  Chris Fleizach  <cfleizach@apple.com>

        WebSpeech: plumb through a method to generate fake speech jobs for testing
        https://bugs.webkit.org/show_bug.cgi?id=107351

        Reviewed by Adam Barth.

        We can't reliably use the platforms synthesizer to test speech synthesis internals.
        This patch adds an Internals method to enable a mock synthesizer, which is inherits
        from the PlatformSpeechSythesizer.

        The fake synthesizer goes through all the motions of a real synthesizer but doesn't do anything.
        A bunch of changes were needed here to make PlatformSpeechSynthesizer subclassable so that the
        right virtual are used.

        The Mock synthesizer only lives in WebCoreTestSupport. Because PlatformSpeechSynthesizer uses
        a RetainPtr, I needed to make WebCoreTestSupport link CoreFoundation

2013-02-17  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed buildfix for !USE(LIBXML) builds after r143112.

        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):

2013-02-17  Andreas Kling  <akling@apple.com>

        Optimize GlyphPage for case where all glyphs are available in the same font.
        <http://webkit.org/b/108835>
        <rdar://problem/13157042>

        Reviewed by Antti Koivisto.

        Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
        the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.

        If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
        is allocated transparently.

        This was landed before with some bogus branch prediction hints and didn't fare well on
        page cyclers (intl2 specifically.) These have been removed this time around, and will
        hopefully be regression-free.

        4.98 MB progression on Membuster3.

        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/graphics/GlyphPage.h:
        (WebCore::GlyphPage::createUninitialized):
        (WebCore::GlyphPage::createZeroedSystemFallbackPage):
        (WebCore::GlyphPage::createCopiedSystemFallbackPage):

            There are now three ways of constructing a GlyphPage, two of them are only used for
            creating system fallback pages.

        (WebCore::GlyphPage::setGlyphDataForIndex):

            Hold off creating a SimpleFontData* array until we're sure there are two different
            SimpleFontData* backing the glyphs in this page.
            We don't store font data for glyph #0, instead we let the getters always return null for it.

        (WebCore::GlyphPage::~GlyphPage):

            Free the SimpleFontData* array if needed.

        (WebCore::GlyphPage::glyphDataForCharacter):
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::fontDataForCharacter):

            The font data for glyph #0 is always a null pointer now.

        (WebCore::GlyphPage::clearForFontData):

            Updated for new storage format.

        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):

            Fix bug where non-zero glyph was temporarily associated with null font data,
            which triggered the new assertion in setGlyphDataForIndex().

2013-02-16  Andreas Kling  <akling@apple.com>

        Remove multi-threading gunk from WebKit2's PluginInfoStore.
        <http://webkit.org/b/110046>

        Reviewed by Alexey Proskuryakov.

        Remove now-unused code for making deep (isolated) copies of WebCore plugin structures.

        * plugins/PluginData.h:
        (MimeClassInfo):
        (PluginInfo):

2013-02-16  Alexey Proskuryakov  <ap@apple.com>

        Identifier generated twice in FrameLoader::loadResourceSynchronously()
        https://bugs.webkit.org/show_bug.cgi?id=110022

        Reviewed by Darin Adler.

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
        Fix an apparent refactoring mistake.

2013-02-16  Andreas Kling  <akling@apple.com>

        [JSC] Remove custom mark function for NamedNodeMap.
        <http://webkit.org/b/110029>

        Reviewed by Darin Adler.

        NamedNodeMap refs and unrefs its Element owner, so there's no need for the wrapper to keep the Element alive.

        Covered by fast/dom/Attr/access-after-element-destruction.html

        * bindings/js/JSNamedNodeMapCustom.cpp:
        * dom/NamedNodeMap.idl:

2013-02-16  Peter Nelson  <peter@peterdn.com>

        REGRESSION(r143076): Crash when calling removeNamedItem or removeNamedItemNS with a non-existent attribute of newly created element.
        <http://webkit.org/b/110019>

        Reviewed by Andreas Kling.

        Now checks Element::hasAttributes() before calling Element::getAttributeItemIndex().

        Test: http/tests/misc/acid3.html

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::removeNamedItem):
        (WebCore::NamedNodeMap::removeNamedItemNS):

2013-02-16  Andreas Kling  <akling@apple.com>

        Element: Devirtualize attribute synchronization functions.
        <http://webkit.org/b/110033>

        Reviewed by Darin Adler.

        Devirtualize the functions that perform re-serialization of lazy attributes and give
        them "synchronize"-style names:

            - SVGElement::synchronizeAnimatedSVGAttribute()
            - StyledElement::synchronizeStyleAttributeInternal()

        * dom/Element.cpp:
        (WebCore::Element::synchronizeAllAttributes):
        (WebCore::Element::synchronizeAttribute):
        * dom/Element.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::synchronizeStyleAttribute):
        * dom/StyledElement.h:
        (StyledElement):
        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::RenderSVGResourceGradient::applyResource):
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::buildPattern):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
        * svg/SVGElement.h:
        (SVGElement):

2013-02-16  Andreas Kling  <akling@apple.com>

        Element: Avoid unrelated attribute synchronization on other attribute access.
        <http://webkit.org/b/110025>

        Reviewed by Darin Adler.

        We've been extremely trigger happy with re-serializing the style attribute (and SVG animatables)
        whenever any Element attribute API was used. This patch narrows this down to (almost always)
        only synchronizing an attribute when someone specifically wants to read/update it.

        Also removed two more confusing ElementData accessors:

            - Element::elementDataWithSynchronizedAttributes()
            - Element::ensureElementDataWithSynchronizedAttributes()

        * dom/Element.h:
        * dom/Element.cpp:
        (WebCore::Element::hasAttributes):
        (WebCore::Element::hasEquivalentAttributes):
        (WebCore::Element::cloneAttributesFromElement):
        (WebCore::Element::synchronizeAllAttributes):

            Renamed updateInvalidAttributes() to synchronizeAllAttributes().
            This function should only be used when we need every single attribute to be up-to-date.

        (WebCore::Element::synchronizeAttribute):

            Broke out logic for synchronizing a specific attribute, given either a full QualifiedName
            or a localName.

        (WebCore::Element::setSynchronizedLazyAttribute):

            Don't call ensureUniqueElementData() indisciminately here. This avoids converting the attribute
            storage when re-serializing the inline style yields the same CSS text that was already in the
            style attribute.

        (WebCore::Element::hasAttribute):
        (WebCore::Element::hasAttributeNS):
        (WebCore::Element::getAttribute):
        (WebCore::Element::getAttributeNode):
        (WebCore::Element::getAttributeNodeNS):
        (WebCore::Element::setAttribute):
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::removeAttributeNode):

            Only synchronize the attribute in question.

        * dom/Node.cpp:
        (WebCore::Node::compareDocumentPosition):

            Call synchronizeAllAttributes() when comparing two Attr nodes on the same Element instead
            of relying on the side-effects of another function doing this.

2013-02-16  Seokju Kwon  <seokju.kwon@gmail.com>

        Fix build warnings after r139853
        https://bugs.webkit.org/show_bug.cgi?id=109929

        Reviewed by Alexey Proskuryakov.

        Use UNUSED_PARAM macro to fix build warning -Wunused-parameter
        when INSPECTOR is disabled.

        No new tests, no behavior change.

        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::frameStartedLoading):
        (WebCore::InspectorInstrumentation::frameStoppedLoading):
        (WebCore::InspectorInstrumentation::frameScheduledNavigation):
        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):

2013-02-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142734.
        http://trac.webkit.org/changeset/142734
        https://bugs.webkit.org/show_bug.cgi?id=110018

        "Triggered crashes on lots of websites" (Requested by ggaren
        on #webkit).

        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):

2013-02-16  Robert Hogan  <robert@webkit.org>

        percentage top value of position:relative element not calculated using parent's min-height unless height set
        https://bugs.webkit.org/show_bug.cgi?id=14762

        Reviewed by Julien Chaffraix.

        Percentage height "is calculated with respect to the height of the generated box's containing block" says  
        http://www.w3.org/TR/CSS21/visudet.html#the-height-property and "If the height of the containing block is not 
        specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the
        value computes to 'auto'." So when calculating the used height of a replaced element do not crawl through ancestor 
        blocks except when traversing anonymous blocks. Ensure that anonymous table cells are not skipped through though.

        http://www.w3.org/TR/CSS21/tables.html#height-layout adds "In CSS 2.1, the height of a cell box is the minimum 
        height required by the content." This height is decided by allowing table cells to report their height as auto.
        It's not clear why http://trac.webkit.org/changeset/91242 decided it should no longer do this - doing so caused
        us to regress in our rendering of computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html.

        Tests: fast/block/percent-top-parent-respects-min-height.html
               fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr.html
               fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor.html
               fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr.html
               fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
        (WebCore):
        (WebCore::RenderBoxModelObject::relativePositionOffset):
        * rendering/RenderBoxModelObject.h:
        (RenderBoxModelObject):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::hasReplacedLogicalHeight):

2013-02-16  Stephen White  <senorblanco@chromium.org>

        [skia] FEOffset should have a Skia implementation.
        https://bugs.webkit.org/show_bug.cgi?id=109831

        Reviewed by James Robinson.

        Covered by css3/filters/effect-reference.html and -hw.html.

        * WebCore.gypi:
        * platform/graphics/filters/FEOffset.h:  Implement createImageFilter()
        for the Skia path.
        * platform/graphics/filters/skia/FEOffsetSkia.cpp: Added.
        (WebCore::FEOffset::createImageFilter):
        Instantiate an SkOffsetImageFilter when building the Skia DAG.

2013-02-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
        https://bugs.webkit.org/show_bug.cgi?id=109691

        Reviewed by Pavel Feldman.

        Separate project of certain type is now created for each domain.
        UISourceCode path represents a path in the project now.
        UISourceCode uri is now calculated based on project id and path.
        It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.

        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleProjectDelegate):
        (WebInspector.SimpleProjectDelegate.projectId):
        (WebInspector.SimpleProjectDelegate.prototype.id):
        (WebInspector.SimpleProjectDelegate.prototype.displayName):
        (WebInspector.SimpleProjectDelegate.prototype.addFile):
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.splitURL):
        (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
        (WebInspector.SimpleWorkspaceProvider.uriForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.uri):
        (WebInspector.UISourceCode.path):
        (WebInspector.UISourceCode.prototype.uri):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype.uiSourceCodeForURI):

2013-02-15  Chris Fleizach  <cfleizach@apple.com>

        AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS
        https://bugs.webkit.org/show_bug.cgi?id=109849

        Reviewed by David Kilzer.

        Split up the WebAccessibilityObjectWrapper so that iOS can share more 
        code with MacOS. I imagine over time, more code will move into this base class,
        but for now this will be a good start.

        A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
        of that. iOS will be able to do the same.

        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::attachWrapper):
        * accessibility/mac/WebAccessibilityObjectWrapper.h:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper detach]):
        (-[WebAccessibilityObjectWrapper attachmentView]):
        (-[WebAccessibilityObjectWrapper accessibilityObject]):
        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
        (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
        (-[WebAccessibilityObjectWrapper accessibilityDescription]):
        (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added.
        (std):
        (-[WebAccessibilityObjectWrapperMac detach]):
        (-[WebAccessibilityObjectWrapperMac attachmentView]):
        (CFAutoreleaseHelper):
        (AXObjectIsTextMarker):
        (AXObjectIsTextMarkerRange):
        (AXTextMarkerRange):
        (AXTextMarkerRangeStart):
        (AXTextMarkerRangeEnd):
        (SearchKeyEntry):
        (createAccessibilitySearchKeyMap):
        (accessibilitySearchKeyForString):
        (textMarkerForVisiblePosition):
        (-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
        (visiblePositionForTextMarker):
        (-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
        (visiblePositionForStartOfTextMarkerRange):
        (visiblePositionForEndOfTextMarkerRange):
        (textMarkerRangeFromMarkers):
        (AXAttributedStringRangeIsValid):
        (AXAttributeStringSetFont):
        (CreateCGColorIfDifferent):
        (AXAttributeStringSetColor):
        (AXAttributeStringSetNumber):
        (AXAttributeStringSetStyle):
        (AXAttributeStringSetBlockquoteLevel):
        (AXAttributeStringSetSpelling):
        (AXAttributeStringSetHeadingLevel):
        (AXAttributeStringSetElement):
        (AXAttributedStringAppendText):
        (nsStringForReplacedNode):
        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
        (textMarkerRangeFromVisiblePositions):
        (-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
        (-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
        (-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
        (-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
        (-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
        (convertToVector):
        (convertToNSArray):
        (-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
        (-[WebAccessibilityObjectWrapperMac position]):
        (createAccessibilityRoleMap):
        (roleValueToNSString):
        (-[WebAccessibilityObjectWrapperMac role]):
        (-[WebAccessibilityObjectWrapperMac subrole]):
        (-[WebAccessibilityObjectWrapperMac roleDescription]):
        (-[WebAccessibilityObjectWrapperMac scrollViewParent]):
        (-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
        (-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
        (-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
        (-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
        (-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
        (-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
        (-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
        (rendererForView):
        (-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
        (-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
        (-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
        (-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
        (-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
        (-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
        (-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
        (-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
        ([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):

2013-02-15  Eric Carlson  <eric.carlson@apple.com>

        [Mac] remove wkCaptionAppearance from WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=109996

        Reviewed by Simon Fraser.

        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143088.
        http://trac.webkit.org/changeset/143088
        https://bugs.webkit.org/show_bug.cgi?id=110000

        Breaks the build (Requested by dgorbik on #webkit).

        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2013-02-15  Chris Rogers  <crogers@google.com>

        Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and speakers up and down-mixing
        https://bugs.webkit.org/show_bug.cgi?id=109983

        Reviewed by Kenneth Russell.

        The Web Audio spec has a more detailed explanation for how channels are to be up and down-mixed:
        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix

        This patch adds the initial support for handling ChannelInterpretation, although no
        new JS API is yet implemented.

        No new tests since no new APIs have yet been exposed.

        * platform/audio/AudioBus.cpp:
        (WebCore::AudioBus::copyFrom):
        (WebCore):
        (WebCore::AudioBus::sumFrom):
        (WebCore::AudioBus::speakersCopyFrom):
        (WebCore::AudioBus::speakersSumFrom):
        (WebCore::AudioBus::discreteCopyFrom):
        (WebCore::AudioBus::discreteSumFrom):
        * platform/audio/AudioBus.h:
        (AudioBus):

2013-02-15  Tony Chang  <tony@chromium.org>

        Padding and border changes doesn't trigger relayout of children
        https://bugs.webkit.org/show_bug.cgi?id=109639

        Reviewed by Kent Tamura.

        In RenderBlock::layoutBlock, we only relayout our children if our logical width
        changes. This misses cases where our logical width doesn't change (i.e., padding
        or border changes), but our content width does change.

        Also convert the needsLayout ASSERT into the if statement. This is because
        RenderScrollbarPart can change border widths and not need a layout if the scrollbar
        doesn't have a parent. In this case, we don't need to set any children for layout.

        This is a more general case of bug 104997.

        Test: fast/block/dynamic-padding-border.html

        * rendering/RenderBox.cpp:
        (WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
        (WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
        even without border-box box sizing.

2013-02-15  Mark Lam  <mark.lam@apple.com>

        Split SQLStatement work between the frontend and backend.
        https://bugs.webkit.org/show_bug.cgi?id=104751.

        Reviewed by Geoffrey Garen.

        This is part of the webdatabase refactoring for webkit2.

        1. Copied SQLTransaction to SQLTransactionBackend, and then reduce the
           2 to only handle frontend and backend work respectively.

        2. Changed how statements are created.

           - SQLTransaction::executeSQL() first creates a SQLStatement frontend
             which encapsulates the 2 script callbacks. It then passes the
             SQLStatement to the backend database to create the
             SQLStatementBackend.
           - The SQLStatementBackend manages all sqlite work.

        3. Remove the Database::reportExecuteStatementResult() wrapper because
           it is only needed in the backend now.

        4. Added new files to the build / project files.

        5. Updated / added comments about how the SQLStatement life-cycle works.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/Database.cpp:
        * Modules/webdatabase/Database.h:
        (Database):
        (WebCore::Database::reportCommitTransactionResult):
        * Modules/webdatabase/DatabaseBackend.h:
        (DatabaseBackend):
        * Modules/webdatabase/SQLStatement.cpp:
        (WebCore::SQLStatement::create):
        (WebCore::SQLStatement::SQLStatement):
        (WebCore::SQLStatement::setBackend):
        (WebCore::SQLStatement::hasCallback):
        (WebCore::SQLStatement::hasErrorCallback):
        (WebCore::SQLStatement::performCallback):
        * Modules/webdatabase/SQLStatement.h:
        (SQLStatement):
        * Modules/webdatabase/SQLStatementBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.cpp.
        (WebCore::SQLStatementBackend::create):
        (WebCore::SQLStatementBackend::SQLStatementBackend):
        (WebCore::SQLStatementBackend::frontend):
        (WebCore::SQLStatementBackend::sqlError):
        (WebCore::SQLStatementBackend::sqlResultSet):
        (WebCore::SQLStatementBackend::execute):
        (WebCore::SQLStatementBackend::setDatabaseDeletedError):
        (WebCore::SQLStatementBackend::setVersionMismatchedError):
        (WebCore::SQLStatementBackend::setFailureDueToQuota):
        (WebCore::SQLStatementBackend::clearFailureDueToQuota):
        (WebCore::SQLStatementBackend::lastExecutionFailedDueToQuota):
        * Modules/webdatabase/SQLStatementBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.h.
        (SQLStatementBackend):
        (WebCore::SQLStatementBackend::hasStatementCallback):
        (WebCore::SQLStatementBackend::hasStatementErrorCallback):
        * Modules/webdatabase/SQLTransaction.cpp:
        (WebCore::SQLTransaction::deliverStatementCallback):
        (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
        (WebCore::SQLTransaction::executeSQL):
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::doCleanup):
        (WebCore::SQLTransactionBackend::currentStatement):
        (WebCore::SQLTransactionBackend::enqueueStatementBackend):
        (WebCore::SQLTransactionBackend::executeSQL):
        (WebCore::SQLTransactionBackend::runStatements):
        (WebCore::SQLTransactionBackend::getNextStatement):
        (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
        (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
        * Modules/webdatabase/SQLTransactionBackend.h:
        (SQLTransactionBackend):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-02-15  Elliott Sprehn  <esprehn@chromium.org>

        Rename HasCustomCallbacks to HasCustomStyleCallbacks
        https://bugs.webkit.org/show_bug.cgi?id=109982

        Reviewed by Eric Seidel.

        Now that inside ChildFrameDisconnector we only call isFrameOwnerElement()
        on elements that report having descendants (or themselves) have connected
        frames we don't need to be as agressive about avoiding the virtual call
        to isFrameOwnerElement() which lets us rename hasCustomCallbacks to
        hasCustomStyleCallbacks to better reflect it's purpose.

        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::collectFrameOwners):
        * dom/Element.cpp:
        (WebCore::Element::styleForRenderer):
        (WebCore::Element::recalcStyle):
        (WebCore::Element::willRecalcStyle):
        (WebCore::Element::didRecalcStyle):
        (WebCore::Element::customStyleForRenderer):
        * dom/Node.h:
        (WebCore::Node::pseudoId):
        (WebCore::Node::hasCustomStyleCallbacks):
        (WebCore::Node::customPseudoId):
        (WebCore::Node::setHasCustomStyleCallbacks):
        * dom/PseudoElement.cpp:
        (WebCore::PseudoElement::PseudoElement):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::recalcStyle):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::HTMLIFrameElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::HTMLInputElement):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::HTMLOptionElement):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::DateTimeEditElement):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::TextControlInnerElement::TextControlInnerElement):
        (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
        * html/shadow/TextFieldDecorationElement.cpp:
        (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::SVGElement):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::SVGUseElement):

2013-02-15  Eric Carlson  <eric.carlson@apple.com>

        [Mac] remove wkCaptionAppearance from WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=109996

        Reviewed by Simon Fraser.

        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2013-02-15  Andreas Kling  <akling@apple.com>

        Calling DOM Element.attributes shouldn't force creation of ElementData.
        <http://webkit.org/b/109976>

        Reviewed by Darin Adler.

        Don't create ElementData for an Element unnecessarily just because someone calls .attributes on it.
        Previously, JS like this would create empty ElementData when 'element' has no attributes:

            for (i = 0; i < element.attributes.length; ++i)
                doStuff(element.attributes[i]);

        Make NamedNodeMap::length() short-circuit and return 0 if !Element::hasAttributes().

        * dom/Element.cpp:
        (WebCore::Element::attributes):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::length):

2013-02-15  Kentaro Hara  <haraken@chromium.org>

        [V8] An "EvenTarget" type in IDL should be converted to EventTarget*, not to Node*
        https://bugs.webkit.org/show_bug.cgi?id=109895

        Reviewed by Adam Barth.

        Currently an "EventTarget" type in IDL is converted to Node*.
        This is wrong because there are non-Node interfaces that inherit
        a EventTarget. We should convert an "EventTarget" type to EventTarget*.
        This will fix FIXMEs in CodeGeneratorV8.pm.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetNativeType):
        (JSValueToNative):

2013-02-15  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r142505?): Crashes in WebCore::ScrollingStateNode::appendChild when using back/forward buttons
        https://bugs.webkit.org/show_bug.cgi?id=109826
        <rdar://problem/13216100>

        Reviewed by Beth Dakin.

        Fix a crash when going Back on some pages with fixed position elements.
        
        When a page was being restored from the page cache, and a layout from
        FrameLoader::commitProvisionalLoad() caused us to try to register the fixed
        position layer before the main scrolling layer, we'd crash trying to dereference
        the root node.
        
        Fix by bailing from ScrollingStateTree::attachNode() if we can't find the parent
        node.

        Test: platform/mac-wk2/tiled-drawing/null-parent-back-crash.html

        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode):
        (WebCore::ScrollingStateTree::stateNodeForID):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):

2013-02-15  Simon Fraser  <simon.fraser@apple.com>

        Constrain fixed layers to the viewport, not the document
        https://bugs.webkit.org/show_bug.cgi?id=109646

        Reviewed by Beth Dakin.
        
        It's bad to constrain position:fixed compositing layers to the
        document rect, because their bounds will change every time the scroll
        position changes, and we're not good currently at synchronizing scrolling
        thread layer updates with main thread layer updates, so jiggles ensue.
        
        Fix by constraining position:fixed layers to the viewport.

        Test: compositing/geometry/limit-layer-bounds-fixed.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateCompositedBounds):

2013-02-13  Jer Noble  <jer.noble@apple.com>

        Add a CDMClient class which allows the CDM to query for the currently attached MediaPlayer.
        https://bugs.webkit.org/show_bug.cgi?id=109702

        Reviewed by Eric Carlson.

        Some CDM implementations will need to work closely with an associated
        MediaPlayer in order to generate key requests and provide keys. Add a
        client protocol to be implemented by the MediaKeys object which can
        provide access to the associated MediaPlayer if present.

        * Modules/encryptedmedia/CDM.cpp:
        (WebCore::CDM::CDM): Initialize the m_client ivar.
        (WebCore::CDM::mediaPlayer): Pass to the client, if present.
        * Modules/encryptedmedia/CDM.h:
        (WebCore::CDM::client): Simple getter.
        (WebCore::CDM::setClient): Simple setter.
        * Modules/encryptedmedia/MediaKeys.cpp:
        (WebCore::MediaKeys::MediaKeys): Initialize the m_mediaElement ivar
            and call setClient() on the passed in CDM.
        (WebCore::MediaKeys::setMediaElement): Simple setter.
        (WebCore::MediaKeys::cdmMediaPlayer): Retrieve the MediaPlayer from
            the m_mediaElement if present.
        * Modules/encryptedmedia/MediaKeys.h:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::~HTMLMediaElement): Call setMediaKeys(0)
            to clear the mediaElement in any associated MediaKeys.
        (WebCore::HTMLMediaElement::setMediaKeys): Clear the mediaElement on
            any associated MediaKeys, and set the mediaElement on the newly
            associated MediaKeys.

2013-02-15  Simon Fraser  <simon.fraser@apple.com>

        drop-shadow filter with overflow:hidden child misbehaves
        https://bugs.webkit.org/show_bug.cgi?id=109783

        Reviewed by Dean Jackson.
        
        The change in r112745 was not sufficient; it failed to account
        for descendant layers that needed to not clipping to avoid artefacts
        with filters like drop-shadow.

        Test: css3/filters/filter-repaint-shadow-layer-child.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents): Remove the useClipRect bool.
        Replace it with a clipToDirtyRect member on the LayerPaintingInfo, which
        gets passed to descendants. Remove some "Restore the clip" comments that added
        nothing.
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
        (LayerPaintingInfo):

2013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143066.
        http://trac.webkit.org/changeset/143066
        https://bugs.webkit.org/show_bug.cgi?id=109986

        Broke the Apple Lion build (among others). (Requested by
        ddkilzer on #webkit).

        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::attachWrapper):
        * accessibility/mac/WebAccessibilityObjectWrapper.h:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper unregisterUniqueIdForUIElement]):
        (-[WebAccessibilityObjectWrapper detach]):
        (-[WebAccessibilityObjectWrapper accessibilityObject]):
        (-[WebAccessibilityObjectWrapper attachmentView]):
        (CFAutoreleaseHelper):
        (AXObjectIsTextMarker):
        (AXObjectIsTextMarkerRange):
        (AXTextMarkerRange):
        (AXTextMarkerRangeStart):
        (AXTextMarkerRangeEnd):
        (SearchKeyEntry):
        (createAccessibilitySearchKeyMap):
        (accessibilitySearchKeyForString):
        (textMarkerForVisiblePosition):
        (-[WebAccessibilityObjectWrapper textMarkerForVisiblePosition:]):
        (visiblePositionForTextMarker):
        (-[WebAccessibilityObjectWrapper visiblePositionForTextMarker:]):
        (visiblePositionForStartOfTextMarkerRange):
        (visiblePositionForEndOfTextMarkerRange):
        (textMarkerRangeFromMarkers):
        (AXAttributedStringRangeIsValid):
        (AXAttributeStringSetFont):
        (CreateCGColorIfDifferent):
        (AXAttributeStringSetColor):
        (AXAttributeStringSetNumber):
        (AXAttributeStringSetStyle):
        (AXAttributeStringSetBlockquoteLevel):
        (AXAttributeStringSetSpelling):
        (AXAttributeStringSetHeadingLevel):
        (AXAttributeStringSetElement):
        (AXAttributedStringAppendText):
        (nsStringForReplacedNode):
        (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
        (textMarkerRangeFromVisiblePositions):
        (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):
        (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
        (-[WebAccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
        (-[WebAccessibilityObjectWrapper renderWidgetChildren]):
        (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
        (convertToVector):
        (convertToNSArray):
        (-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
        (-[WebAccessibilityObjectWrapper position]):
        (createAccessibilityRoleMap):
        (roleValueToNSString):
        (-[WebAccessibilityObjectWrapper role]):
        (-[WebAccessibilityObjectWrapper subrole]):
        (-[WebAccessibilityObjectWrapper roleDescription]):
        (-[WebAccessibilityObjectWrapper scrollViewParent]):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
        (-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
        (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
        (-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
        (-[WebAccessibilityObjectWrapper accessibilityIsIgnored]):
        (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
        (-[WebAccessibilityObjectWrapper accessibilityPerformPressAction]):
        (-[WebAccessibilityObjectWrapper accessibilityPerformIncrementAction]):
        (-[WebAccessibilityObjectWrapper accessibilityPerformDecrementAction]):
        (-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
        (-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
        (-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
        (rendererForView):
        (-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
        (-[WebAccessibilityObjectWrapper accessibilityActionDescription:]):
        (-[WebAccessibilityObjectWrapper doAXAttributedStringForRange:]):
        (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
        (-[WebAccessibilityObjectWrapper _indexForTextMarker:]):
        (-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
        (-[WebAccessibilityObjectWrapper doAXRTFForRange:]):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
        (-[WebAccessibilityObjectWrapper accessibilitySupportsOverriddenAttributes]):
        (-[WebAccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
        (-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
        (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
        (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
        * accessibility/mac/WebAccessibilityObjectWrapperMac.m: Removed.

2013-02-15  Emil A Eklund  <eae@chromium.org>

        Change MouseRelatedEvent to use LayoutPoint::scale
        https://bugs.webkit.org/show_bug.cgi?id=109979

        Reviewed by Dimitri Glazkov.
        
        Change MouseRelatedEvent::MouseRelatedEvent to use LayoutPoint::
        scale to adjust location and scroll offset for scale factor and
        zooming.

        No new tests, no change in functionality.

        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::MouseRelatedEvent):

2013-02-15  Chris Fleizach  <cfleizach@apple.com>

        AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS
        https://bugs.webkit.org/show_bug.cgi?id=109849

        Reviewed by David Kilzer.

        Split up the WebAccessibilityObjectWrapper so that iOS can share more 
        code with MacOS. I imagine over time, more code will move into this base class,
        but for now this will be a good start.

        A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
        of that. iOS will be able to do the same.

        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::attachWrapper):
        * accessibility/mac/WebAccessibilityObjectWrapper.h:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper detach]):
        (-[WebAccessibilityObjectWrapper attachmentView]):
        (-[WebAccessibilityObjectWrapper accessibilityObject]):
        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
        (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
        (-[WebAccessibilityObjectWrapper accessibilityDescription]):
        (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
        * accessibility/mac/WebAccessibilityObjectWrapperMac.m: Added.
        (std):
        (-[WebAccessibilityObjectWrapperMac detach]):
        (-[WebAccessibilityObjectWrapperMac attachmentView]):
        (CFAutoreleaseHelper):
        (AXObjectIsTextMarker):
        (AXObjectIsTextMarkerRange):
        (AXTextMarkerRange):
        (AXTextMarkerRangeStart):
        (AXTextMarkerRangeEnd):
        (SearchKeyEntry):
        (createAccessibilitySearchKeyMap):
        (accessibilitySearchKeyForString):
        (textMarkerForVisiblePosition):
        (-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
        (visiblePositionForTextMarker):
        (-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
        (visiblePositionForStartOfTextMarkerRange):
        (visiblePositionForEndOfTextMarkerRange):
        (textMarkerRangeFromMarkers):
        (AXAttributedStringRangeIsValid):
        (AXAttributeStringSetFont):
        (CreateCGColorIfDifferent):
        (AXAttributeStringSetColor):
        (AXAttributeStringSetNumber):
        (AXAttributeStringSetStyle):
        (AXAttributeStringSetBlockquoteLevel):
        (AXAttributeStringSetSpelling):
        (AXAttributeStringSetHeadingLevel):
        (AXAttributeStringSetElement):
        (AXAttributedStringAppendText):
        (nsStringForReplacedNode):
        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
        (textMarkerRangeFromVisiblePositions):
        (-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
        (-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
        (-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
        (-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
        (-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
        (convertToVector):
        (convertToNSArray):
        (-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
        (-[WebAccessibilityObjectWrapperMac position]):
        (createAccessibilityRoleMap):
        (roleValueToNSString):
        (-[WebAccessibilityObjectWrapperMac role]):
        (-[WebAccessibilityObjectWrapperMac subrole]):
        (-[WebAccessibilityObjectWrapperMac roleDescription]):
        (-[WebAccessibilityObjectWrapperMac scrollViewParent]):
        (-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
        (-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
        (-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
        (-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
        (-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
        (-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
        (-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
        (-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
        (rendererForView):
        (-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
        (-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
        (-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
        (-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
        (-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
        (-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
        (-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
        (-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
        ([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
        (-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):

2013-02-15  Elliott Sprehn  <esprehn@chromium.org>

        RenderQuote should not mark renderers as needing layout during layout
        https://bugs.webkit.org/show_bug.cgi?id=109876

        Reviewed by Ojan Vafai.

        Marking RenderQuotes as needing pref width recalcs and layouts during a
        layout is dangerous since an ancestor may mark itself as having completed
        layout, but then some subtree still thinks it needs layout.

        Instead, since the only time we create RenderQuote instances is inside
        PseudoElement, we can call attachQuote inside PseudoElement::attach during
        the regular tree mutating cycle. We can then use RenderQuote::styleDidChange
        to update the kind of quotes on normal style changes.

        This makes RenderQuote behave much more similarly to DOM nodes and means
        we no longer need to set dirty bits during layout.

        Test: fast/css-generated-content/quote-layout-focus-crash.html

        * dom/PseudoElement.cpp:
        (WebCore::PseudoElement::attach): Now call attachQuote().
        * rendering/RenderQuote.cpp:
        (WebCore::RenderQuote::~RenderQuote):
        (WebCore::RenderQuote::willBeRemovedFromTree):
        (WebCore::RenderQuote::styleDidChange):
        (WebCore::RenderQuote::updateText):
        (WebCore::RenderQuote::attachQuote):
        (WebCore::RenderQuote::detachQuote):
        (WebCore::RenderQuote::updateDepth):
        * rendering/RenderQuote.h:
        (RenderQuote):

2013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r143044.
        http://trac.webkit.org/changeset/143044
        https://bugs.webkit.org/show_bug.cgi?id=109974

        broke windows build (Requested by kling on #webkit).

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

2013-02-15  Adam Barth  <abarth@webkit.org>

        Enable the preload scanner on the background parser thread
        https://bugs.webkit.org/show_bug.cgi?id=108027

        Reviewed by Tony Gentilcore.

        The patch causes us to pass all the fast/preloader tests with the
        threaded parser enabled.

        This patch wires up the BackgroundHTMLParser to the
        TokenPreloadScanner.  Currently, we bail out of preload scanning if we
        encounter a document.write becaues we don't know how to rewind the
        preload scanner, but that's something we can tune in the future.

        The BackgroundHTMLParser delivers the preloads to the
        HTMLDocumentParser together with the token stream. If the
        HTMLDocumentParser isn't able to use the token stream immediately, it
        kicks off the preloads.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::checkThatPreloadsAreSafeToSendToAnotherThread):
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::resumeFrom):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
        * html/parser/BackgroundHTMLParser.h:
        (Configuration):
            - We need to add a struct for the create function because the
              number of arguments exceeds the limits of Functional.h.
        (BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::create):
        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::scanCommon):
        (WebCore::CSSPreloadScanner::scan):
        (WebCore::CSSPreloadScanner::emitRule):
            - We need to use a new string here so that the string is safe to
              send to another thread.
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::startBackgroundParser):
            - Following the example of the XSSAuditor, we create the
              TokenPreloadScanner on the main thread and then send it to the
              background thread for operation.
        * html/parser/HTMLDocumentParser.h:
        (WebCore):
        (ParsedChunk):
        * html/parser/HTMLParserOptions.h:
        (HTMLParserOptions):
            - We need to add a default constructor so that the
              HTMLDocumentParser can create an empty
              BackgroundHTMLParser::Configuration struct.
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::TokenPreloadScanner::scan):
        (WebCore::TokenPreloadScanner::scanCommon):
        (WebCore::HTMLPreloadScanner::scan):
        * html/parser/HTMLPreloadScanner.h:
        (TokenPreloadScanner):
        (WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
        * html/parser/HTMLResourcePreloader.cpp:
        (WebCore::HTMLResourcePreloader::takeAndPreload):
        (WebCore):
        * html/parser/HTMLResourcePreloader.h:
        (WebCore::PreloadRequest::PreloadRequest):
        (WebCore):
        (HTMLResourcePreloader):

2013-02-15  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix after r143030. We need to keep updatedRange around until createMarkupInternal returns.

        * editing/markup.cpp:
        (WebCore::createMarkup):

2013-02-15  Rik Cabanier  <cabanier@adobe.com>

        Add platform support for -webkit-background-blend-mode to CG context
        https://bugs.webkit.org/show_bug.cgi?id=108549

        Reviewed by Dean Jackson.

        Tests: css3/compositing/effect-background-blend-mode-stacking.html
               css3/compositing/effect-background-blend-mode.html

        This patch adds support for blending on background images to the Core Graphics port of WebKit.

        * platform/graphics/CrossfadeGeneratedImage.cpp: Added interface change for blending.
        (WebCore::CrossfadeGeneratedImage::drawPattern):
        * platform/graphics/CrossfadeGeneratedImage.h: Added interface change for blending.
        (CrossfadeGeneratedImage):
        * platform/graphics/GeneratedImage.h: Added interface change for blending.
        (GeneratedImage):
        * platform/graphics/GeneratorGeneratedImage.cpp: Added interface change for blending.
        (WebCore::GeneratorGeneratedImage::drawPattern):
        * platform/graphics/GeneratorGeneratedImage.h: Added interface change for blending.
        (GeneratorGeneratedImage):
        * platform/graphics/GraphicsContext.cpp: Added interface change for blending and passes blend mode to image object.
        (WebCore::GraphicsContext::drawTiledImage):
        (WebCore::GraphicsContext::blendModeOperation):
        (WebCore):
        * platform/graphics/GraphicsContext.h: Added interface change for blending.
        (GraphicsContext):
        * platform/graphics/Image.cpp: Added interface change for blending and passed it to graphics layer.
        (WebCore::Image::drawTiled):
        * platform/graphics/Image.h: Added interface change for blending.
        (Image):
        * platform/graphics/cg/ImageCG.cpp: Added interface change for blending and passed it to OS.
        (WebCore::Image::drawPattern):
        * rendering/RenderBoxModelObject.cpp: Passed blend mode when drawing background images.
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * platform/graphics/cairo/ImageCairo.cpp: Added interface change for blending.
        (WebCore::Image::drawPattern):
        * platform/graphics/qt/ImageQt.cpp: Added interface change for blending.
        (WebCore::Image::drawPattern):
        * platform/graphics/skia/ImageSkia.cpp: Added interface change for blending.
        (WebCore::Image::drawPattern):
        * rendering/RenderBoxModelObject.cpp: Added interface change for blending.
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * svg/graphics/SVGImageForContainer.cpp: Added interface change for blending.
        (WebCore::SVGImageForContainer::drawPattern):
        * svg/graphics/SVGImageForContainer.h: Added interface change for blending.

2013-02-14  Emil A Eklund  <eae@chromium.org>

        Clamp span value in RenderTableCell::parse[Col|Row]SpanFromDOM
        https://bugs.webkit.org/show_bug.cgi?id=109878

        Reviewed by Abhishek Arya.

        Test: fast/table/colspan-huge-number.html
        
        Clamp colspan and rowspan values to their respective maximum
        supported values.

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::parseColSpanFromDOM):
        (WebCore::RenderTableCell::parseRowSpanFromDOM):

2013-02-15  Andreas Kling  <akling@apple.com>

        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.

        * 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):

2013-02-14  Ojan Vafai  <ojan@chromium.org>

        Implement RenderGrid::computeIntrinsicLogicalWidths
        https://bugs.webkit.org/show_bug.cgi?id=109881

        Reviewed by Tony Chang.

        For now this is not observable due to the FIXMEs for unimplemented bits
        of computePreferredLogicalWidths. But, soon, I'll be removing the computePreferredLogicalWidths
        override entirely and instead use RenderBlock's, which will also address the
        RenderGrid FIXMEs.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
        const_cast the usages of m_grid. Alternately, we could stack allocate it, but there's disagreement on
        whether that's the right choice. See https://bugs.webkit.org/show_bug.cgi?id=109880.

        (WebCore::RenderGrid::computePreferredLogicalWidths):
        * rendering/RenderGrid.h:


2013-02-15  Xueqing Huang  <huangxueqing@baidu.com>

        Flexbox should ignore firstLine pseudo element.
        https://bugs.webkit.org/show_bug.cgi?id=104485

        Reviewed by Tony Chang.

        Spec[1] said that "None of the properties defined in this module
        apply to '::first-line' or '::first-letter' pseudo-elements." and
        css2[2] define "The :first-line pseudo-element can only be attached
        to a block container element." 
        [1]http://dev.w3.org/csswg/css3-flexbox/#display-flex
        [2]http://www.w3.org/TR/CSS2/selector.html#first-line-pseudo

        tests:
        css3/flexbox/flexbox-ignore-firstLine.html
        css3/flexbox/flexitem-firstLine-valid.html
        css3/flexbox/inline-flexbox-ignore-firstLine.html 

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::firstLineBlock):

2013-02-15  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Implement SharedBuffer version of put()
        https://bugs.webkit.org/show_bug.cgi?id=109092

        Reviewed by Adam Barth.

        Switch IDBDatabaseBackendInterface::put over
        to SharedBuffer, to avoid buffer copies of the value.

        No new tests, this is a refactor.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBBackingStore::putRecord):
        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore):
        (IDBBackingStore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::PutOperation::create):
        (WebCore::PutOperation::PutOperation):
        (PutOperation):
        (WebCore::IDBDatabaseBackendImpl::put):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (WebCore):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::put):

2013-02-15  Anders Carlsson  <andersca@apple.com>

        Implement StorageAreaProxy::length
        https://bugs.webkit.org/show_bug.cgi?id=109962

        Reviewed by Andreas Kling.

        Export a symbol needed by WebKit2.

        * WebCore.exp.in:

2013-02-15  Anders Carlsson  <andersca@apple.com>

        Remove const from a bunch of StorageArea member functions
        https://bugs.webkit.org/show_bug.cgi?id=109957

        Reviewed by Beth Dakin.

        StorageArea is an abstract base class, and its subclasses might want to mutate the object
        when certain member functions are called so remove const from all member functions.

        * storage/StorageArea.h:
        (WebCore):
        (StorageArea):
        (WebCore::StorageArea::~StorageArea):
        (WebCore::StorageArea::incrementAccessCount):
        (WebCore::StorageArea::decrementAccessCount):
        (WebCore::StorageArea::closeDatabaseIfIdle):
        * storage/StorageAreaImpl.cpp:
        (WebCore::StorageAreaImpl::canAccessStorage):
        (WebCore::StorageAreaImpl::length):
        (WebCore::StorageAreaImpl::key):
        (WebCore::StorageAreaImpl::getItem):
        (WebCore::StorageAreaImpl::contains):
        (WebCore::StorageAreaImpl::memoryBytesUsedByCache):
        * storage/StorageAreaImpl.h:
        (StorageAreaImpl):

2013-02-13  Ryosuke Niwa  <rniwa@webkit.org>

        DeleteButtonController::enable and disable should be called via a RAII object
        https://bugs.webkit.org/show_bug.cgi?id=109550

        Reviewed by Enrica Casucci.

        Added DeleteButtonControllerDisableScope, a friend class of DeleteButtonController,
        and made DeleteButtonController::enable/disable private.

        * dom/ContainerNode.cpp:
        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::unapply):
        (WebCore::EditCommandComposition::reapply):
        (WebCore::CompositeEditCommand::apply):
        * editing/DeleteButtonController.h:
        (WebCore):
        (DeleteButtonController):
        (DeleteButtonControllerDisableScope):
        (WebCore::DeleteButtonControllerDisableScope::DeleteButtonControllerDisableScope):
        (WebCore::DeleteButtonControllerDisableScope::~DeleteButtonControllerDisableScope):
        * editing/markup.cpp:
        (WebCore::createMarkup):
        (WebCore::createFragmentFromNodes):

2013-02-15  Max Vujovic  <mvujovic@adobe.com>

        Add code from other branch.

        [CSS Shaders] Parse src property in @-webkit-filter at-rules
        https://bugs.webkit.org/show_bug.cgi?id=109770

        Reviewed by Dean Jackson.

        This patch implements the parsing for the CSS src property in @-webkit-filter at-rules.

        The Filter Effects spec [1] specifies its syntax:
            src: [ <uri> [format(<string>)]?]#

        In practice, it can look like:
            src: url(shader.vs) format('x-shader/x-vertex'),
                 url(shader.fs) format('x-shader/x-fragment');

        This src property is similar to the src property in CSS font-face rules, but a little
        different. The CSS Fonts spec [2] specifies:
            src: [ <uri> [format(<string>#)]? | <font-face-name> ]#
            The syntax for a <font-face-name> is a unique font face name enclosed by "local("
            and ")".

        Unlike the filter src property, the font face src property accepts the local function
        [e.g. src: local("SomeFont");]. Also, the font face src property accepts a list of strings
        instead of just one string in its format function.

        [1]: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-src
        [2]: http://www.w3.org/TR/css3-fonts/#src-desc

        Tests: css3/filters/custom-with-at-rule-syntax/parsing-src-property-invalid.html
               css3/filters/custom-with-at-rule-syntax/parsing-src-property-valid.html

        * css/CSSGrammar.y.in:
            Set (and unset) a flag called "m_inFilterRule", which tells us if we are in a
            @-webkit-filter at-rule or in a @font-face at-rule when we encounter a src property.
            We parse the two variants of the src property separately so that we can create different
            objects (WebKitCSSShaderValue vs. CSSFontFaceSrcValue) and because their syntax is a
            little different.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::CSSParser):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFilterRuleSrcUriAndFormat):
            Parses a URI and format pair found in the @-webkit-filter src property.
        (WebCore::CSSParser::parseFilterRuleSrc):
            Parse the @-webkit-filter src property.
        * css/CSSParser.h:
        (CSSParser):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::customCssText):
            WebKitCSSShaderValue now has an m_format member, which needs to be included in its
            cssText.
        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
        * css/WebKitCSSShaderValue.h:
        (WebCore::WebKitCSSShaderValue::format):
        (WebCore::WebKitCSSShaderValue::setFormat):
        (WebKitCSSShaderValue):

2013-02-15  Eric Carlson  <eric.carlson@apple.com>

        Crash occurs at WebCore::TextTrackList::length() when enabling closed captions in movie
        https://bugs.webkit.org/show_bug.cgi?id=109886

        Reviewed by Dean Jackson.

        No new tests, media/media-captions.html does not crash with this change.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Early return when
            m_textTracks is NULL.

2013-02-15  Adam Barth  <abarth@webkit.org>

        TokenPreloadScanner should be able to scan CompactHTMLTokens
        https://bugs.webkit.org/show_bug.cgi?id=109861

        Reviewed by Eric Seidel.

        This patch moves the main scanning logic for the TokenPreloadScanner to
        a templated scanCommon routine that can scan either an HTMLToken or a
        CompactHTMLToken. This patch will let the BackgroundHTMLParser preload
        scan its CompactHTMLTokens.

        * html/parser/CSSPreloadScanner.cpp:
        (WebCore):
        (WebCore::CSSPreloadScanner::scanCommon):
        (WebCore::CSSPreloadScanner::scan):
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
            - Tweak the CSSPreloadScanner API slightly to make it easier to
              call from templated code.
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::TokenPreloadScanner::tagIdFor):
        (WebCore):
        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
        (TokenPreloadScanner::StartTagScanner):
        (WebCore::TokenPreloadScanner::scan):
        (WebCore::TokenPreloadScanner::scanCommon):
        (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
        (WebCore::HTMLPreloadScanner::scan):
        * html/parser/HTMLPreloadScanner.h:
        (TokenPreloadScanner):

2013-02-15  Alexis Menard  <alexis@webkit.org>

        WebKit shouldn't accept "none, none" in transition shorthand property.
        https://bugs.webkit.org/show_bug.cgi?id=108751

        Reviewed by Dean Jackson.

        http://dev.w3.org/csswg/css3-transitions/#transition-shorthand-property
        specifies that if there is more than one transition defined in the
        shorthand and any of them has a value of 'none' then the declaration is
        invalid. This patch fixes the problem by passing a parsing context to
        track if a keyword has been set for the transition-property and if so
        then use it to invalidate or not the declaration.

        Test: transitions/transitions-parsing.html

        * css/CSSParser.cpp:
        (AnimationParseContext):
        (WebCore::AnimationParseContext::AnimationParseContext):
        (WebCore::AnimationParseContext::commitFirstAnimation): track whether
        it's the first <single-transition/animation> or not defined in the
        shorthand.
        (WebCore::AnimationParseContext::hasCommittedFirstAnimation):
        (WebCore::AnimationParseContext::commitAnimationPropertyKeywordInShorthand):
        In the shorthand as soon as a keyword has been found then the parsing
        is 'finished', if any other animation/transition declaration part of
        the shorthand are with a keyword then it's invalid.
        (WebCore::AnimationParseContext::animationPropertyKeywordInShorthandAllowed):
        (WebCore::AnimationParseContext::hasSeenAnimationPropertyKeyword):
        (WebCore::AnimationParseContext::sawAnimationPropertyKeyword):
        (WebCore):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseAnimationShorthand):
        (WebCore::CSSParser::parseTransitionShorthand):
        (WebCore::CSSParser::parseAnimationProperty):
        * css/CSSParser.h:
        (WebCore):

2013-02-15  Andreas Kling  <akling@apple.com>

        ElementData: Move leafy things out of the base class.
        <http://webkit.org/b/109888>

        Reviewed by Antti Koivisto.

        - Moved functions for mutating/adding/removing attributes into UniqueElementData.
          Attempts to modify shared element data will now fail at compile-time.

        - Removed mutableAttributeVector() and have call sites access the vector directly.

        - Move immutableAttributeArray() to ShareableElementData.

        - Move some function bodies from Element.h to Element.cpp since all clients are in there.

        * dom/Element.cpp:
        (WebCore::Element::addAttributeInternal):
        (WebCore::ShareableElementData::ShareableElementData):
        (WebCore::UniqueElementData::makeShareableCopy):
        (WebCore::UniqueElementData::addAttribute):
        (WebCore::UniqueElementData::removeAttribute):
        (WebCore::ElementData::reportMemoryUsage):
        (WebCore::UniqueElementData::getAttributeItem):
        (WebCore::UniqueElementData::attributeItem):
        * dom/Element.h:
        (ElementData):
        (WebCore::ShareableElementData::immutableAttributeArray):
        (ShareableElementData):
        (UniqueElementData):
        (WebCore::ElementData::length):
        (WebCore::ElementData::attributeItem):

2013-02-15  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Enable shape-inside support for circles
        https://bugs.webkit.org/show_bug.cgi?id=109713

        Reviewed by Dirk Schulze.

        Removed the test that disabled circle values for shape-inside.
        The remaining support for circles, which is based on rounded rectangles
        whose width/height is equal to their radiusX/radiusY, has not changed.

        Test: fast/exclusions/shape-inside/shape-inside-circle.html

        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Now only disallows ellipse.

2013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [Soup] Leverage new soup_cookie_jar_get_cookie_list() API
        https://bugs.webkit.org/show_bug.cgi?id=109931

        Reviewed by Kenneth Rohde Christiansen.

        In several cases, the CookieJarSoup implementation was retrieving / copying ALL the
        cookies using soup_cookie_jar_all_cookies() and then using soup_cookie_applies_to_uri()
        to filter out cookies it is not interested in. This was inefficient.

        In libsoup 2.40, soup_cookie_jar_get_cookie_list() was introduced to retrieve only the
        cookies that apply to a given URI. This patch leverages this new API in CookieJarSoup's
        getRawCookies() and deleteCookie(). This way, only the cookies we are interested in
        are retrieved and copied. Libsoup does not need to iterate over all the cookies itself
        because it keeps the cookies in a hash table using the host names as key.

        No new tests, no behavior change.

        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):

2013-02-15  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Added an option to split Elements and Sources sidebars in two panes.
        https://bugs.webkit.org/show_bug.cgi?id=109298.

        Reviewed by Vsevolod Vlasov.

        Introduced the "Split sidebar" context menu option that splits the horizontal sidebar into two panes.
        The width split ratio is 1:1 by default and is preserved when the Inspector window is resized.
        Elements sidebar is split into two tabbed panes, Sources sidebar is split into a pane stack and a tabbed pane.

        No new tests.

        * inspector/front-end/DOMBreakpointsSidebarPane.js:
        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype._reattachBody):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.get this):
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
        (WebInspector.ElementsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
        (WebInspector.ElementsPanel.prototype.get _arrangeSidebarPanes.get this):
        (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
        (WebInspector.ScriptsPanel.prototype._contextMenuEventFired):
        (WebInspector.ScriptsPanel.prototype._sidebarContextMenuEventFired):
        (WebInspector.ScriptsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
        (WebInspector.ScriptsPanel.prototype.get _arrangeSidebarPanes.get this):
        * inspector/front-end/SidebarPane.js:
        (WebInspector.SidebarPane):
        (WebInspector.SidebarPane.prototype.expand):
        (WebInspector.SidebarPane.prototype.onContentReady):
        (WebInspector.SidebarPane.prototype._setExpandCallback):
        (WebInspector.SidebarPane.prototype.wasShown):
        (WebInspector.SidebarPaneTitle):
        (WebInspector.SidebarPaneTitle.prototype._expand):
        (WebInspector.SidebarPaneTitle.prototype._collapse):
        (WebInspector.SidebarPaneTitle.prototype._toggleExpanded):
        (WebInspector.SidebarPaneTitle.prototype._onTitleKeyDown):
        (WebInspector.SidebarPaneStack):
        (WebInspector.SidebarPaneStack.prototype.addPane):
        (WebInspector.SidebarTabbedPane):
        (WebInspector.SidebarTabbedPane.prototype.addPane):
        * inspector/front-end/SidebarView.js:
        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView):
        (WebInspector.SplitView.prototype.get mainElement):
        (WebInspector.SplitView.prototype.get sidebarElement):

2013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Several consecutive Backspace or Delete strikes should not be marked as undoable state.
        https://bugs.webkit.org/show_bug.cgi?id=109915

        Reviewed by Pavel Feldman.

        Extracted _isEditRangeUndoBoundary() and _isEditRangeAdjacentToLastCommand() in TextEditorModel
        to detect if markUndoableState() call is needed before and after editRange.

        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextRange.prototype.immediatelyPrecedes):
        (WebInspector.TextRange.prototype.immediatelyFollows):
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2013-02-15  Andrey Adaikin  <aandrey@chromium.org>

        Fix inconsistency in WebGLRenderingContext.idl for getAttribLocation
        https://bugs.webkit.org/show_bug.cgi?id=109892

        Reviewed by Kentaro Hara.

        * html/canvas/WebGLRenderingContext.idl:

2013-02-15  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] show replay log grouped by draw calls
        https://bugs.webkit.org/show_bug.cgi?id=109592

        Reviewed by Pavel Feldman.

        Show canvas capturing log grouped by drawing calls.
        Drive-by: extended Array.prototype with a handy peekLast function.
        Drive-by: removed code dups in few places.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype.dispose):
        (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
        (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
        (WebInspector.CanvasProfileView.prototype._selectedCallIndex):
        (WebInspector.CanvasProfileView.prototype._selectedDrawCallGroupIndex):
        (WebInspector.CanvasProfileView.prototype._appendCallNode):
        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype.setColumnVisible):
        (WebInspector.DataGridNode.prototype.set hasChildren):
        (WebInspector.DataGridNode.prototype.set revealed):
        (WebInspector.DataGridNode.prototype.get leftPadding):
        * inspector/front-end/externs.js:
        (Array.prototype.peekLast):
        * inspector/front-end/utilities.js:

2013-02-15  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: highlight record revealed in Timeline
        https://bugs.webkit.org/show_bug.cgi?id=109930

        Reviewed by Pavel Feldman.

        Revealed timeline record is now highlighted with yellow background
        that fades out in 2 seconds.

        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._revealRecord):
        (WebInspector.TimelinePanel.prototype._refreshRecords):
        (WebInspector.TimelinePanel.prototype._clearRecordHighlight):
        * inspector/front-end/timelinePanel.css:
        (.highlighted-timeline-record):
        (@-webkit-keyframes timeline_record_highlight):
        (to):

2013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Pass original selection to textModel to correctly restore it after undo.
        https://bugs.webkit.org/show_bug.cgi?id=109911

        Reviewed by Pavel Feldman.

        We can distinguish backspace pressed with and without selection now.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlBackspace):
        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextEditorCommand):
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2013-02-15  Joe Mason  <jmason@rim.com>

        [BlackBerry] Remove redundant requireAuth parameter of NetworkJob::notifyAuthReceived
        https://bugs.webkit.org/show_bug.cgi?id=109855

        Reviewed by Yong Li.

        Internal PR: 296697
        Internally Reviewed By: Leo Yang

        Code cleanup: The requireAuth parameter of NetworkJob::notifyAuthReceived is redundant as its value
        can be determined from "result" - if result is AuthResultRetry, requireAuth is false, otherwise it
        is true.

        No new tests as there is no behaviour change.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyAuthReceived):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):

2013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Redo in text editor should always collapse selection to end.
        https://bugs.webkit.org/show_bug.cgi?id=109907

        Reviewed by Pavel Feldman.

        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2013-02-15  Dan Carney  <dcarney@google.com>

        [v8] persistent handle dispose before last use
        https://bugs.webkit.org/show_bug.cgi?id=109927

        Reviewed by Jochen Eisinger.

        No new tests. No change in functionality.

        * bindings/v8/ScriptWrappable.h:
        (WebCore::ScriptWrappable::weakCallback):

2013-02-15  Keishi Hattori  <keishi@webkit.org>

        PagePopupController.formatMonth should support short month format
        https://bugs.webkit.org/show_bug.cgi?id=109530

        Reviewed by Kent Tamura.

        PagePopupController.formatMonth should support short month format so we
        can use it in the new calendar picker.

        Tested by LocaleMacTest::formatMonth.

        * page/PagePopupController.cpp:
        (WebCore::PagePopupController::formatMonth): Take an extra bool argument to switch to short month format.
        * page/PagePopupController.h:
        (PagePopupController):
        * page/PagePopupController.idl:
        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::shortMonthFormat):
        (WebCore):
        * platform/text/LocaleICU.h:
        (LocaleICU):
        * platform/text/LocaleNone.cpp:
        (WebCore::shortMonthFormat):
        (WebCore):
        * platform/text/PlatformLocale.cpp:
        (WebCore::DateTimeStringBuilder::visitField):
        (WebCore::Locale::formatDateTime):
        * platform/text/PlatformLocale.h:
        (Locale):
        * platform/text/mac/LocaleMac.h:
        (LocaleMac):
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::shortMonthFormat):
        (WebCore):
        * platform/text/win/LocaleWin.cpp:
        (WebCore::LocaleWin::shortMonthFormat): Windows doesn't have a short
        month format so we just replace MMMM with MMM.
        (WebCore):
        * platform/text/win/LocaleWin.h:
        (LocaleWin):

2013-02-15  Keishi Hattori  <keishi@webkit.org>

        Add setValue and closePopup methods to PagePopupController
        https://bugs.webkit.org/show_bug.cgi?id=109897

        Reviewed by Kent Tamura.

        The new calendar picker (Bug 109439) needs to set a value without
        closing the popup. We can't do that with the existing
        setValueAndClosePopup.

        No new tests. Existing calendar picker and color suggestion picker tests
        that closing and setting values work properly.

        * Resources/pagepopups/pickerCommon.js:
        (Picker.prototype.submitValue): Stop using setValueAndClosePopup.
        (Picker.prototype.handleCancel): Ditto.
        * page/PagePopupClient.h:
        (PagePopupClient):
        * page/PagePopupController.cpp:
        (WebCore::PagePopupController::setValue): Sets value to element without closing popup.
        (WebCore):
        (WebCore::PagePopupController::closePopup): Just closes popup.
        * page/PagePopupController.h:
        (PagePopupController):
        * page/PagePopupController.idl:

2013-02-15  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions] RenderRegion should inherit from RenderBlock
        https://bugs.webkit.org/show_bug.cgi?id=74132

        Reviewed by Julien Chaffraix.

        Change the base class for RenderRegion to be RenderBlock instead of RenderReplaced.
        Per spec http://dev.w3.org/csswg/css3-regions/#the-flow-from-property, a region is a non-replaced block container.
        This change is covered by the existing regions tests (in fast/region and fast/repaint).

        The RenderFlowThread object is a self-painting layer (it requires layer and is positioned).
        Because of that, the RenderFlowThread object is responsible for painting its children,
        the collected objects. When the RenderRegion::paintObject is called during paint, it delegates painting
        of content collected inside the flow thread to the associated RenderFlowThread object.
        Since we do not want to paint the flow thread content multiple times (for each paint phase
        in which the RenderRegion::paintObject is called), we allow RenderFlowThread painting only for
        selection and foreground paint phases.

        * rendering/RenderBox.cpp: Clean-up the code from regions specific stuff, now that the regions are render blocks.
        (WebCore::RenderBox::computePositionedLogicalWidth):
        (WebCore::RenderBox::computePositionedLogicalHeight):
        * rendering/RenderLayerBacking.cpp: A region should always render content from its associated flow thread,
        even when it does not have children of its own.
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
        * rendering/RenderMultiColumnSet.cpp: Make changes to match the new inheritance for RenderRegion.
        (WebCore::RenderMultiColumnSet::paint):
        (WebCore::RenderMultiColumnSet::paintColumnRules):
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        (WebCore::RenderRegion::paintObject):
        (WebCore::RenderRegion::styleDidChange):
        (WebCore::RenderRegion::layoutBlock):
        (WebCore::RenderRegion::insertedIntoTree):
        (WebCore::RenderRegion::willBeRemovedFromTree):
        (WebCore::RenderRegion::computePreferredLogicalWidths): Use this method instead of min/maxPreferredLogicalWidth.
        (WebCore::RenderRegion::updateLogicalHeight):
        * rendering/RenderRegion.h: For now, assume the region is not allowed to have children.
        When we will implement the processing model for pseudo-elements http://dev.w3.org/csswg/css3-regions/#processing-model,
        we will have to remove this function. By having this function return false i was able to leave some tests unchanged.

2013-02-15  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: implement smart braces functionality
        https://bugs.webkit.org/show_bug.cgi?id=109200

        Reviewed by Pavel Feldman.

        - implement SmartBraceController which will handle character insertions
        and override them if brace character was inserted. Additionally it
        should handle Backspace key and override it if a cursor is located
        inside of a bracket pair.
        - guard smart brace functionality via experiment checkbox.

        New test: inspector/editor/text-editor-smart-braces.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
        (WebInspector.TextEditorMainPanel.prototype._handleKeyPress):
        (WebInspector.TextEditorMainPanel.SmartBraceController):
        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerShortcuts):
        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerCharOverrides):
        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBackspace):
        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBracePairInsertion):
        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleClosingBraceOverride):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):

2013-02-15  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions][Mac] fast/regions/full-screen-video-from-region.html hits an assertion in RenderFlowThread::removeRenderBoxRegionInfo
        https://bugs.webkit.org/show_bug.cgi?id=106075

        Reviewed by Tony Chang.

        The crash is caused by two issues.

        The first problem is how a block inside a flow thread determines if the children needs relayout or not.
        When the region chain is invalidated, the information is lost so we need to return true, even for the
        enclosing RenderFlowThread. Because the video renderer is the first child of the flow thread this doesn't
        happen.

        The patch implements this behaviour by inspecting both if the region chain has changed and
        if the block has no range computed yet.

        The second problem is RenderMedia not inheriting from RenderBlock. The logic of child relayout doesn't apply
        to it. In the test case, when the full screen button is pressed, the region changes width to fill the viewport,
        the chain is invalidated and the box info hash map is cleared. When the video is laid out again (after fixing
        the first issue) it has the same size so the controls don't do a layout. They remain without box info inside
        the flow thread, thus causing the assertion.

        The patch forces the controls to relayout if the region chain was invalidated. We can't use the
        logicalWidthChangedInRegions method because it is block specific. This will be fixed in a later patch.

        Tests: No new tests. fast/regions/full-screen-video-from-region.html no longer crashes.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
        * rendering/RenderFlowThread.h: Renamed pageLogicalHeightChanged to pageLogicalSizeChanged.
        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::layout):

2013-02-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [CoordGfx] Regression from r135212: big layers with transform animations sometime fail to render tiles
        https://bugs.webkit.org/show_bug.cgi?id=109179

        Reviewed by Jocelyn Turcotte.

        Fix adjustForContentsRect logic for AC layers that are higher or wider than the visible rect.

        Force updates of the visible rect while it is animating, and until we have done one last update after
        it stops animating.

        Test: compositing/transitions/transform-on-large-layer.html

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::adjustForContentsRect):
        (WebCore::TiledBackingStore::computeCoverAndKeepRect):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
        (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
        (WebCore::CoordinatedGraphicsLayer::computePixelAlignment):
        (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        (CoordinatedGraphicsLayer):

2013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142876.
        http://trac.webkit.org/changeset/142876
        https://bugs.webkit.org/show_bug.cgi?id=109920

        Broke relative URL linkification in the computed styles pane
        (Requested by apavlov on #webkit).

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):

2013-02-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Simplify hitTestResultAtPoint and nodesFromRect APIs
        https://bugs.webkit.org/show_bug.cgi?id=95720

        Reviewed by Julien Chaffraix.

        The existing API was overloaded and could be simplified by passing all the bool arguments in 
        a HitTestRequest argument. This should also help clarify the call as the enum values explicitely
        state what they do.

        * WebCore.exp.in:
        * WebCore.order:
        * dom/Document.cpp:
        (WebCore::Document::nodesFromRect):
        * dom/Document.h:
        (Document):
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::createContextMenu):
        * page/DragController.cpp:
        (WebCore::DragController::canProcessDrag):
        (WebCore::DragController::startDrag):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::hitTestResultAtPoint):
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
        (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
        (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
        (WebCore::EventHandler::handleTouchEvent):
        * page/EventHandler.h:
        (WebCore):
        (EventHandler):
        * page/FocusController.cpp:
        (WebCore::updateFocusCandidateIfNeeded):
        * page/Frame.cpp:
        (WebCore::Frame::visiblePositionForPoint):
        (WebCore::Frame::documentAtPoint):
        * page/TouchDisambiguation.cpp:
        (WebCore::findGoodTouchTargets):
        * rendering/HitTestRequest.h:
        (WebCore::HitTestRequest::allowsFrameScrollbars):
        * testing/Internals.cpp:
        (WebCore::Internals::nodesFromRect):

2013-02-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: make component-based compile-front-end happy
        https://bugs.webkit.org/show_bug.cgi?id=109798

        Reviewed by Vsevolod Vlasov.

        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setVariableValue):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/compile-front-end.py:
        * inspector/front-end/AuditResultView.js:
        * inspector/front-end/CPUProfileView.js:
        * inspector/front-end/DataGrid.js:
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.loadTimelineFromURL):

2013-02-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement tracking of active stylesheets in the frontend
        https://bugs.webkit.org/show_bug.cgi?id=105828

        Reviewed by Pavel Feldman.

        - This change introduces the CSS.styleSheetAdded() and CSS.styleSheetRemoved() events
        that update the frontend with all active stylesheet changes in the inspected page.
        As such, fetching stylesheet headers from the backend manually is no longer needed,
        and many asynchronous methods have been turned into normal accessors.
        - One notable change to the stylesheet binding process is that when a via-inspector stylesheet
        is created, it is instantly reported through the instrumentation, and the viaInspectorStyleSheet() method
        is [indirectly] called recursively from bindStyleSheet(). Thus, the actual creation and registration
        of the respective InspectorStyleSheet have been moved into bindStyleSheet(),
        which relies upon the m_creatingViaInspectorStyleSheet flag.

        Test: inspector/styles/stylesheet-tracking.html

        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Instrumented.
        * inspector/Inspector.json: Add events, update the CSS domain description.
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
        (WebCore::InspectorCSSAgent::clearFrontend):
        (WebCore::InspectorCSSAgent::enable): Push all existing stylesheet headers into the frontend.
        (WebCore::InspectorCSSAgent::activeStyleSheetsUpdated): Push added/removed stylesheet into the frontend.
        (WebCore::InspectorCSSAgent::getAllStyleSheets): Slightly refactored to make use of collectAllStyleSheets().
        (WebCore::InspectorCSSAgent::collectAllStyleSheets): Added to collect InspectorStyleSheets rather than headers.
        (WebCore::InspectorCSSAgent::collectStyleSheets):
        (WebCore::InspectorCSSAgent::bindStyleSheet): Binds via-inspector stylesheets, too.
        (WebCore::InspectorCSSAgent::unbindStyleSheet): Now we can unbind stylesheets upon their removal from the document.
        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet): Modifies m_creatingViaInspectorStyleSheet when necessary.
        (WebCore::InspectorCSSAgent::detectOrigin): Modified to make use of m_creatingViaInspectorStyleSheet.
        (WebCore::InspectorCSSAgent::buildObjectForRule): Removed extraneous bound InspectorStyleSheet 0-check.
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorInstrumentation.cpp: Instrumentation of active stylesheet set updates.
        (WebCore::InspectorInstrumentation::activeStyleSheetsUpdatedImpl):
        * inspector/InspectorInstrumentation.h: Ditto.
        (WebCore::InspectorInstrumentation::activeStyleSheetsUpdated):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.styleSheetHeaders):
        (WebInspector.CSSStyleModel.prototype._styleSheetAdded): Added.
        (WebInspector.CSSStyleModel.prototype._styleSheetRemoved): Added.
        (WebInspector.CSSStyleModel.prototype.viaInspectorResourceForRule):
        (WebInspector.CSSStyleModelResourceBinding.prototype._setHeaderForStyleSheetId):
        (WebInspector.CSSStyleModelResourceBinding.prototype.resourceURLForStyleSheetId):
        (WebInspector.CSSStyleModelResourceBinding.prototype.styleSheetIdForResource):
        (WebInspector.CSSStyleModelResourceBinding.prototype._headerKey): Calculate the (frameID + URL) key for CSSStyleSheetHeader.
        (WebInspector.CSSStyleModelResourceBinding.prototype._createInspectorResource):
        (WebInspector.CSSStyleModelResourceBinding.prototype._inspectorResource):
        (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
        (WebInspector.CSSDispatcher.prototype.styleSheetAdded): Added.
        (WebInspector.CSSDispatcher.prototype.styleSheetRemoved): Added.
        * inspector/front-end/SASSSourceMapping.js: Get rid of async implementations.
        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
        * inspector/front-end/StylesSidebarPane.js: Ditto.
        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
        * inspector/front-end/StylesSourceMapping.js: Ditto.
        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):

2013-02-15  Andrei Bucur  <abucur@adobe.com>

        Implement the -webkit-margin-collapse properties correct rendering
        https://bugs.webkit.org/show_bug.cgi?id=108168

        Reviewed by David Hyatt.

        The patch implements the correct behavior for the -webkit-margin-collapse properties:
        - a value of "discard" on a margin will truncate all the margins collapsing with it;
        - a value of "separate" will prevent the margin to collapse;
        - a value of "collapse" is the default collapse behavior.

        The implementation is aware of multiple writing-modes:
        - if the writing mode of a child is parallel with the writing mode of the container and has the same direction,
        the -webkit-margin-collapse properties on the child are left as is;
        - if the writing mode of a child is parallel with the writing mode of the container but has a different direction,
        the -webkit-margin-collapse properties on the child are reversed;
        - if the writing mode of a child is perpendicular on the writing mode of the container,
        the -webkit-margin-collapse properties on the child are ignored;

        I. The "discard" value implementation
        There are two new bits (before and after) added on the RenderBlockRareData structure specifying if the margins
        of the block will be discarded or not. We can't rely only on the value from style() because
        it's possible a block to discard it's margins because it has collapsed with a children that
        specified "discard" for -webkit-margin-collapse. However, the bits are set only if it is
        required.
        Another bit is added on the MarginInfo structure specifying if the margin has to be discarded or not. When
        collapsing at the before side of a block it will hold information if the container block needs to discard
        or not. If the collapsing happens between siblings/with after side of the container it will tell if the previous
        child discards the margin or not. The self collapsing blocks are a special case. If any of its margins
        discards then both its margins discard and all the other margins collapsing with it.
        To ensure an optimal behavior it is asserted margin values can't be set on the MarginInfo object if the
        discard flag is active. If this happens it may indicate someone ignored the possibility of the margin being
        discarded altogether and incorrectly updated the margin values.
        Float clearing also needs to change because it may force margins to stop collapsing. If this happens the discard
        flags and margins needs to be restored to their values before the collapse.

        II. The "separate" value implementation
        The implementation for separate was not changed too much. I've added new accessor methods for the property
        that take writing mode into consideration and I've removed some code that didn't work correctly in layoutBlockChild.
        The problem was the marginInfo structure was cleared if the child was specifying the "separate" value for before.
        This is wrong because you lose the margin information of the previous child/before side.

        Tests: fast/block/margin-collapse/webkit-margin-collapse-container.html
               fast/block/margin-collapse/webkit-margin-collapse-floats.html
               fast/block/margin-collapse/webkit-margin-collapse-siblings-bt.html
               fast/block/margin-collapse/webkit-margin-collapse-siblings.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::MarginInfo::MarginInfo):
        (WebCore::RenderBlock::layoutBlock):
        (WebCore::RenderBlock::collapseMargins):
        (WebCore::RenderBlock::clearFloatsIfNeeded):
        (WebCore::RenderBlock::marginBeforeEstimateForChild):
        (WebCore::RenderBlock::estimateLogicalTopPosition):
        (WebCore::RenderBlock::setCollapsedBottomMargin):
        (WebCore::RenderBlock::handleAfterSideOfBlock):
        (WebCore::RenderBlock::layoutBlockChild):
        (WebCore::RenderBlock::setMustDiscardMarginBefore):
        (WebCore):
        (WebCore::RenderBlock::setMustDiscardMarginAfter):
        (WebCore::RenderBlock::mustDiscardMarginBefore):
        (WebCore::RenderBlock::mustDiscardMarginAfter):
        (WebCore::RenderBlock::mustDiscardMarginBeforeForChild):
        (WebCore::RenderBlock::mustDiscardMarginAfterForChild):
        (WebCore::RenderBlock::mustSeparateMarginBeforeForChild):
        (WebCore::RenderBlock::mustSeparateMarginAfterForChild):
        * rendering/RenderBlock.h:
        (RenderBlock):
        (WebCore::RenderBlock::initMaxMarginValues):
        (MarginInfo):
        (WebCore::RenderBlock::MarginInfo::setPositiveMargin):
        (WebCore::RenderBlock::MarginInfo::setNegativeMargin):
        (WebCore::RenderBlock::MarginInfo::setPositiveMarginIfLarger):
        (WebCore::RenderBlock::MarginInfo::setNegativeMarginIfLarger):
        (WebCore::RenderBlock::MarginInfo::setMargin):
        (WebCore::RenderBlock::MarginInfo::setCanCollapseMarginAfterWithChildren):
        (WebCore::RenderBlock::MarginInfo::setDiscardMargin):
        (WebCore::RenderBlock::MarginInfo::discardMargin):
        (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
        (WebCore::RenderBlock::RenderBlockRareData::positiveMarginBeforeDefault):
        (RenderBlockRareData):
        * rendering/style/RenderStyle.h:

2013-02-14  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: always show memory size in Mb on the native memory graph
        https://bugs.webkit.org/show_bug.cgi?id=109813

        Reviewed by Pavel Feldman.

        Memory size vlue is alway shown in Mb on the native memory graph.

        * inspector/front-end/NativeMemoryGraph.js:
        (WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):

2013-02-14  Andrey Adaikin  <aandrey@chromium.org>

        Use GL typedefs in WebGLRenderingContext.idl
        https://bugs.webkit.org/show_bug.cgi?id=109060

        Reviewed by Kenneth Russell.

        Use GL typedefs in WebGLRenderingContext.idl according to the specs.
        Added a FIXME about inconsistency with the current WebGL spec for getAttribLocation.

        Tested manually that generators V8, JS, ObjC, GObject, CPP produce same output.

        * html/canvas/WebGLRenderingContext.idl:

2013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Copy-pasting selected text over itself should be an undoable state.
        https://bugs.webkit.org/show_bug.cgi?id=109830

        Reviewed by Pavel Feldman.

        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142889.
        http://trac.webkit.org/changeset/142889
        https://bugs.webkit.org/show_bug.cgi?id=109891

        It caused an assertion failure in scrollbars/overflow-
        scrollbar-combinations.html (Requested by tkent on #webkit).

        * rendering/RenderBox.cpp:
        (WebCore::borderWidthChanged):
        (WebCore::RenderBox::styleDidChange):

2013-02-14  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Caret positioned at the end of a text line (followed by an empty block) in vertical writing mode disappears when pressing the right/down arrow key.
        https://bugs.webkit.org/show_bug.cgi?id=106452

        Reviewed by Ryosuke Niwa.

        Pressing the down or the right arrow key at the end of a text line in
        vertical writing mode would make the caret dissapear. This occurs only
        when the text line is followed by an empty block.

        When trying to compute the next position for placing the caret (for
        down/right key), we try to ascertain whether the renderer (in this
        case the empty block) is a valid candidate or not. For blockFlow
        elements we check against their height.
        In vertical writing mode though we would fail such a check since we
        should instead be comparing against the renderer's width and not
        it's height. Thus, a valid position for the placement of the caret
        was not found in such a case.

        Test: editing/selection/caret-at-end-of-text-line-followed-by-empty-block-in-vertical-mode.html

        * dom/Position.cpp:
        (WebCore::Position::isCandidate):
        * dom/PositionIterator.cpp:
        (WebCore::PositionIterator::isCandidate):
        Instead of checking against the height(), check against the
        logicalHeight() of the renderer has been added. logicalHeight()
        on blockFlow renderer's returns a value in accordance with
        the writing mode.

2013-02-14  Ryosuke Niwa  <rniwa@webkit.org>

        Windows build fix after r142957.

        * dom/DOMAllInOne.cpp:

2013-02-14  Ryosuke Niwa  <rniwa@webkit.org>

        Fix a typo introduced in r142705.

        Without this fix, text-input-controller.html can fail when DeleteButtonController is enabled.
        e.g. "run-webkit-tests platform/mac/editing/deleting/deletionUI-single-instance.html
            platform/mac/editing/input/text-input-controller.html --child-processes=1"

        * editing/Editor.cpp:
        (WebCore::Editor::avoidIntersectionWithDeleteButtonController):

2013-02-14  Hayato Ito  <hayato@chromium.org>

        Factor Event retargeting code.
        https://bugs.webkit.org/show_bug.cgi?id=109156

        Reviewed by Dimitri Glazkov.

        To supoort Touch event retargeting (bug 107800), we have to factor
        event retargeting code so that it can support not only MouseEvent,
        but also other events.

        New class, EventRetargeter, was introduced. From now,
        EventDispatchMediator (and its subclasses) should call, if event
        retargeting is required, an appropriate function provided in
        EventRetargeter rather than calling
        EventDispatcher::adjustRelatedTarget(), which was removed in this
        patch.

        No tests. No change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/EventDispatchMediator.cpp:
        * dom/EventDispatcher.cpp:
        (WebCore):
        (WebCore::EventDispatcher::ensureEventPath): Changed to return an EventPath, which will be used by EventRetargeter.
        (WebCore::EventDispatcher::dispatchScopedEvent):
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventDispatcher::dispatchEventPostProcess):
        * dom/EventDispatcher.h:
        (WebCore):
        (EventDispatcher):
        * dom/EventRetargeter.cpp: Added.
        (WebCore):
        (WebCore::inTheSameScope):
        (WebCore::determineDispatchBehavior):
        (WebCore::EventRetargeter::calculateEventPath): Factored out from EventDispatcher::ensureEventPath().
        (WebCore::EventRetargeter::adjustForMouseEvent):
        (WebCore::EventRetargeter::adjustForFocusEvent):
        (WebCore::EventRetargeter::adjustForRelatedTarget):
        (WebCore::EventRetargeter::calculateAdjustedNodes): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
        (WebCore::EventRetargeter::buildRelatedNodeMap): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
        (WebCore::EventRetargeter::findRelatedNode):
        * dom/EventRetargeter.h: Added.
        (WebCore):
        (EventRetargeter):
        (WebCore::EventRetargeter::eventTargetRespectingTargetRules):
        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForFocusEvent().
        (WebCore::BlurEventDispatchMediator::dispatchEvent): Ditto.
        (WebCore::FocusInEventDispatchMediator::dispatchEvent): Ditto.
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent): Ditto.
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForMouseEvent().

2013-02-14  Simon Fraser  <simon.fraser@apple.com>

        Reverting r142861. Hit testing inside of style recalc is fundamentally wrong

        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor):
        (WebCore::EventHandler::handleMouseMoveEvent):
        * page/EventHandler.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::setStyle):
        (WebCore::areNonIdenticalCursorListsEqual):
        (WebCore::areCursorsEqual):
        (WebCore::RenderObject::styleDidChange):

2013-02-14  Florin Malita  <fmalita@chromium.org>

        [SVG] Cached filter results are not invalidated on repaint rect change
        https://bugs.webkit.org/show_bug.cgi?id=106221

        Reviewed by Dean Jackson.

        Since the cached filter results are not invalidated for different repaint rects, we need
        to render the content of the whole filter region upfront (otherwise elements not visible
        during the initial paint due to scrolling/window size/etc. are never redrawn).

        Tests: svg/filters/filter-hidden-content-expected.svg
               svg/filters/filter-hidden-content.svg

        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::applyResource):
        (WebCore::RenderSVGResourceFilter::drawingRegion):
        (WebCore):
        * rendering/svg/RenderSVGResourceFilter.h:
        (FilterData):
        (RenderSVGResourceFilter):
        Track the filter drawing region in FilterData.

        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::~SVGRenderingContext):
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
        * rendering/svg/SVGRenderingContext.h:
        Update paintInfo.rect to cover the whole drawing region while rendering filter content, and
        restore it when done.

2013-02-14  Jinwoo Song  <jinwoo7.song@samsung.com>

        [EFL] Correct the mismatched cursor map
        https://bugs.webkit.org/show_bug.cgi?id=109655

        Reviewed by Laszlo Gombos.

        Correct the mismatched ECORE_X_CURSOR values in the cursor map.

        * platform/efl/EflScreenUtilities.cpp:
        (WebCore::CursorMap::CursorMap):

2013-02-14  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        (WebDOMTestObj::anyAttribute):
        (WebDOMTestObj::setAnyAttribute):
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_get_any_attribute):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
        (WebCore::TestTypedefsV8Internal::funcWithClampCallback):

2013-02-14  Christian Biesinger  <cbiesinger@chromium.org>

        Convert media controls from DeprecatedFlexibleBox to FlexibleBox
        https://bugs.webkit.org/show_bug.cgi?id=109775

        Reviewed by Ojan Vafai.

        Covered by existing tests in media/.

        * css/mediaControls.css:
        * css/mediaControlsBlackBerry.css:
        * css/mediaControlsChromium.css:
        * css/mediaControlsChromiumAndroid.css:
        * css/mediaControlsEfl.css:
        * css/mediaControlsGtk.css:
        * css/mediaControlsQt.css:
        * css/mediaControlsQuickTime.css:
        Automated search and replace of old flexbox CSS rules to new ones.
        Minor tuning of the chromium rules.

        * rendering/RenderMediaControlElements.cpp:
        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
        (WebCore::RenderMediaControlTimeDisplay::layout):
        * rendering/RenderMediaControlElements.h:
        Make media controls inherit from RenderFlexibleBox

2013-02-14  Roger Fong  <roger_fong@apple.com>

        Build fix for Windows.

        * Modules/webdatabase/SQLTransactionStateMachine.cpp:
        (WebCore::nameForSQLTransactionState):

2013-02-14  Dean Jackson  <dino@apple.com>

        Inspector doesn't show rules from pluginsStyleSheet
        https://bugs.webkit.org/show_bug.cgi?id=109872

        Reviewed by Darin Adler.

        Make sure getWrapperForRuleInSheets collects the rules
        from CSSDefaultStyleSheets::plugInsStyleSheet.

        Making a test for this is difficult because the rules in
        this sheet only apply to snapshotted plugins at the moment,
        which are disabled in DRT, and would require a fairly long
        timeout in the test.

        * css/InspectorCSSOMWrappers.cpp:
        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):

2013-02-14  Hayato Ito  <hayato@chromium.org>

        Recover edge names used in MemoryInstrumentation for DocumentRuleSets.
        https://bugs.webkit.org/show_bug.cgi?id=109800

        Reviewed by Hajime Morita.

        This is a following patch for r142573.
        r142563 accidentally removes edge names for MemoryInstrumentation. We should recover edge names.

        No tests. No change in behavior.

        * css/DocumentRuleSets.cpp:
        (WebCore::DocumentRuleSets::reportMemoryUsage):

2013-02-14  Hajime Morrita  <morrita@google.com>

        [V8] Assertion failure on an exception is thrown
        https://bugs.webkit.org/show_bug.cgi?id=109129

        An assertion in V8AbstractEventListener is wrong. This change turns it into an error check.

        Reviewed by Kentaro Hara.

        Test: fast/events/onerror-no-constructor.html

        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::handleEvent):

2013-02-14  Kentaro Hara  <haraken@chromium.org>

        [V8] CodeGeneratorV8.pm can assume that DOMWindow has [CheckSecurity]
        https://bugs.webkit.org/show_bug.cgi?id=109788

        Reviewed by Adam Barth.

        There is code like this:

          if ($extendedAttr{"CheckSecurity"} || $interfaceName eq "DOMWindow")

        This check is redundant. DOMWindow has [CheckSecurity]. We can remove the
        DOMWindow check.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateReplaceableAttrSetter):
        (GenerateFunctionCallback):
        (GenerateNonStandardFunction):
        (GenerateImplementation):

2013-02-14  Joshua Bell  <jsbell@chromium.org>

        [V8] IndexedDB: Remove unused creationContext paramter from idbKeyToV8Value
        https://bugs.webkit.org/show_bug.cgi?id=109870

        Reviewed by Kentaro Hara.

        This parameter was left over from when the function was toV8(IDBKey). Remove it.

        No new tests - just removing dead code.

        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::idbKeyToV8Value): Remove unused parameter.
        (WebCore::injectIDBKeyIntoScriptValue): No need for dummy handle.
        (WebCore::idbKeyToScriptValue): No need for dummy handle.

2013-02-14  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [WebGL][Qt] regression:r142786 Qt Build fix for Arm and Windows.
        https://bugs.webkit.org/show_bug.cgi?id=109797

        Reviewed by Csaba Osztrogonác.

        After r142786, we use OpenGLShims to load necessary GL functions
        exposed by ARB_vertex_array_object extension. Qt uses OpenGLShims
        to load functions with GLES too. This patch adds support for loading the
        equivalent functions on GLES exposed by OES_vertex_array_object.
        
        * platform/graphics/OpenGLShims.cpp:
        (WebCore::initializeOpenGLShims):
        * platform/graphics/OpenGLShims.h:

2013-02-14  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/13210723> CORS preflight broken with NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=109753

        Reviewed by Brady Eidson.

        * loader/DocumentThreadableLoader.h:
        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
        (WebCore::DocumentThreadableLoader::cancel):
        (WebCore::DocumentThreadableLoader::didReceiveResponse):
        (WebCore::DocumentThreadableLoader::dataReceived):
        (WebCore::DocumentThreadableLoader::didReceiveData):
        (WebCore::DocumentThreadableLoader::notifyFinished):
        (WebCore::DocumentThreadableLoader::didFinishLoading):
        (WebCore::DocumentThreadableLoader::didFail):
        (WebCore::DocumentThreadableLoader::preflightFailure): Notify InspectorInstrumentation
        immediately. In addition to keeping up eith other changes, this means that an accurate
        error will be passed now, not a cancellation.
        (WebCore::DocumentThreadableLoader::loadRequest):
        Get rid of m_preflightRequestIdentifier. Every loader has an identifier, and tracking
        identifiers twice is wrong.
        Pass identifier explicitly to more internal functions, so that they would not have to
        second-guess callers.

        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSendRequest):
        Create an identifier for all loaders, not just those that we expect to have client
        callbacks about. Both Inspector and NetworkProcess need identifiers everywhere.

        * loader/TextTrackLoader.cpp: (WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource):
        * loader/TextTrackLoader.h:
        * loader/cache/CachedResourceClient.h:
        (WebCore::CachedResourceClient::deprecatedDidReceiveCachedResource):
        * loader/cache/CachedTextTrack.cpp: (WebCore::CachedTextTrack::data):
        Renamed didReceiveData to avoid conflict with the new DocumentThreadableLoader::didReceiveData.
        And we should really get rid of this CachedResourceClient function anyway.

2013-02-14  Kentaro Hara  <haraken@chromium.org>

        Replace 'DOMObject' with 'any'
        https://bugs.webkit.org/show_bug.cgi?id=109793

        Reviewed by Dimitri Glazkov.

        In the Web IDL spec, there is no type named 'DOMObject'.
        It should be 'any'. We should replace all 'DOMObject's in WebKit IDLs with 'any's.

        * Modules/webdatabase/SQLResultSetRowList.idl:
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GetClassName):
        (AddIncludesForType):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateFunction):
        * bindings/scripts/CodeGeneratorJS.pm:
        (AddIncludesForType):
        (GenerateImplementation):
        (JSValueToNative):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GetNativeType):
        (JSValueToNative):
        (GetV8HeaderName):
        * dom/CustomEvent.idl:
        * dom/MessageEvent.idl:
        * dom/PopStateEvent.idl:
        * fileapi/FileReader.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLElement.idl:
        * html/canvas/DataView.idl:
        * inspector/InjectedScriptHost.idl:
        * inspector/InspectorFrontendHost.idl:
        * inspector/JavaScriptCallFrame.idl:
        * page/DOMWindow.idl:
        * page/Location.idl:

2013-02-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove GenerateEventListenerCallback() from CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=109786

        Reviewed by Adam Barth.

        Some code is duplicated between GenerateEventListenerCallback()
        and GenerateFunctionCallback(). By inlining GenerateEventListenerCallback()
        into GenerateFunctionCallback(), we can remove the duplication.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):

2013-02-14  Ojan Vafai  <ojan@chromium.org>

        Intrinsic and preferred widths on replaced elements are wrong in many cases
        https://bugs.webkit.org/show_bug.cgi?id=109859

        Reviewed by Levi Weintraub.

        Test: fast/replaced/preferred-widths.html

        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
        Separate out computing the intrinsic widths. Eventually,
        we should be able to share computePreferredLogicalWidth implementations
        for all replaced elements and form controls since only the intrinsic width
        changes.

        (WebCore::RenderReplaced::computePreferredLogicalWidths):
        -Apply min-width and max-width constraints and then add borderAndPaddingLogicalWidth
        at the end to make sure it's always applied. This matches all our other
        computePreferredLogicalWidths override and makes use match Gecko's/Opera's rendering.
        -Only set the minPreferredLogicalWidth to 0 if the width or max-width is a percent value.
        Doing it for height values and for min-width doesn't make any sense and doesn't
        match other browsers. Doing this for max-width still doesn't match other browsers,
        but it sounds like Gecko at least would like to change that.

        * rendering/RenderReplaced.h:
        (WebCore::RenderReplaced::hasRelativeIntrinsicLogicalWidth):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth):
        Add a way to check if the logicalWidth is relative so that we only check
        the width in computePreferredLogicalWidths instead of also checking the height.

        * rendering/svg/RenderSVGRoot.h:

2013-02-14  Stephen Chenney  <schenney@chromium.org>

        Crash when selecting a HarfBuzz text run with SVG fonts included
        https://bugs.webkit.org/show_bug.cgi?id=109833

        Reviewed by Tony Chang.

        There is an assert in SimpleFontData::applyTransforms that should not
        be there, as the code is valid for SVG fonts. If we get past this,
        then the HarfBuzz text run shaping code assumes that font data has a
        SkTypeface member, and SVG fonts do not. So we crash there too.

        For now, we fix the crashes. This still leaves incorrect selection
        rectangles in this situation, on all platforms, tracked in
        https://bugs.webkit.org/show_bug.cgi?id=108133

        Test: svg/css/font-face-crash.html

        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::applyTransforms): Remove ASSERT_NOT_REACHED as the code can legally be reached for SVG fonts.
        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Check for SVG fonts in the text run, and abort if we find them.

2013-02-13 Joe Mason <jmason@rim.com>

        [BlackBerry] Notify platform layer of failing to get authentication credentials
        https://bugs.webkit.org/show_bug.cgi?id=109751

        Reviewed by Yong Li.
        Reviewed internally by Leo Yang
        Internal PR: 181302

        The BlackBerry platform network layer needs to know if a stream failed to get authentication credentials.
        This patch is using newly added stream API to do it.

        No functionality changed no new tests.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyAuthReceived):
        (WebCore::NetworkJob::sendRequestWithCredentials):
        (WebCore::NetworkJob::notifyChallengeResult):
        * platform/network/blackberry/NetworkJob.h:
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::protectionSpaceToPlatformAuth):
        (WebCore):
        (WebCore::setAuthCredentials):
        * platform/network/blackberry/NetworkManager.h:
        (WebCore):

2013-02-14  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [GTK] Fix indentation in GNUmakefile.list.am.
        https://bugs.webkit.org/show_bug.cgi?id=109854

        Reviewed by Martin Robinson.

        This patch fixes indentation in GNUmakefile.list.am.

        * GNUmakefile.list.am:

2013-02-14  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
        https://bugs.webkit.org/show_bug.cgi?id=96934

        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.

2013-02-14  Abhishek Arya  <inferno@chromium.org>

        Bad cast in RenderBlock::splitBlocks.
        https://bugs.webkit.org/show_bug.cgi?id=108691

        Reviewed by Levi Weintraub.

        Test: fast/multicol/remove-child-split-flow-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore):
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): rename gIsInColumnFlowSplit to gColumnFlowSplitEnabled
        and use it to decide when to do the column flow split or not.
        (WebCore::RenderBlock::removeChild): Do not allow column flow split inside removeChild
        since we might be merging anonymous blocks.

2013-02-14  Mark Lam  <mark.lam@apple.com>

        Split SQLTransaction work between the frontend and backend.
        https://bugs.webkit.org/show_bug.cgi?id=104750.

        Reviewed by Sam Weinig.

        This is part of the webdatabase refactoring for webkit2.

        1. Changed how transactions are created.

           - Database::runTransaction() first creates a SQLTransaction frontend
             which encapsulates the 3 script callbacks. It then passes the
             SQLTransaction to the backend database to create the
             SQLTransactionBackend.
           - The SQLTransactionBackend manages all SQLiteTransaction work.

        2. Introduced SQLTransactionState and SQLTransactionStateMachine.

           - Instead of tracking the transaction phases as "steps" in m_nextStep,
             we now use m_nextState which is of enum class SQLTransactionState.
             Unlike m_nextStep which is a pointer to a "step" function,
             m_nextState is a state variable which is used to index into a
             state dispatch table.

           - Both SQLTransaction and SQLTransactionBackend now extends
             SQLTransactionStateMachine, and uses its dispatch mechanism based on
             the SQLTransactionState.

           - Instead of having 1 state machine instances, there are 2: 1 in the
             frontend, and 1 in the backend. The 2 have mirrored states, and
             transfers work to the other state machine when needed.

           - Previously, state functions can be called inline from other states.
             They are now only called from the state machines runStateMachine()
             method. This makes it possible to isolate the state transition
             mechanism going between the sides (frontend and backend) to 2
             functions only: SQLTransaction::sendToBackendState() and
             SQLTransactionBackend::sendToFrontendState().

        3. Consolidated cleanup work (mostly) to a unified cleanup function.

        4. Changed the frontend Database::runTransaction() to use a
           ChangeVersionData* (instead of a ChangeVersionWrapper ref ptr).

           - This is necessary because ChangeVersionWrapper contains functionality
             used in processing a transaction (to be invoked in the backend).
             Instead, what we want is to simply pass the 2 old and new version
             strings to the backend. The new ChangeVersionData simply packages up
             these 2 strings.
           - This makes ChangeVersionData easy to serialize for IPC messaging later.

        5. Moved some transaction functions back to the frontend SQLTransaction
           because they belong there.

        6. Moved some Database functions to its DatabaseBackendAsync backend
           now that the transaction has been split up.

           - This is driven naturally by those functions being used exclusively
             in the backend for transaction work.
           - SQLTransactionClient, SQLTransactionCoordinator, and
             SQLTransactionWrapper are now exclusively backend data structures.
             SQLTransactionClient still has some frontend "pollution" that I'll
             fix later.

        7. Made the few database report functions used only by Chromium conditional
           on PLATFORM(chromium).

           - The report functions gets re-routed to Chromium's DatabaseObserver
             which further routes them elsewhere. It is unclear how Chromium uses
             these routed messages, and I am therefore not able to determine how
             they should work in a frontend/backend world. So, I'm #ifdef'ing
             them out. They still work like in the old way for Chromium.

        8. Added new files to the build / project files.

        9. Updated / added comments about how the transaction and its states work.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabaseServer.h:
        * Modules/webdatabase/ChangeVersionData.h: Added.
        (ChangeVersionData):
        (WebCore::ChangeVersionData::ChangeVersionData):
        (WebCore::ChangeVersionData::oldVersion):
        (WebCore::ChangeVersionData::newVersion):
        * Modules/webdatabase/ChangeVersionWrapper.cpp:
        (WebCore::ChangeVersionWrapper::performPreflight):
        (WebCore::ChangeVersionWrapper::performPostflight):
        (WebCore::ChangeVersionWrapper::handleCommitFailedAfterPostflight):
        * Modules/webdatabase/ChangeVersionWrapper.h:
        (ChangeVersionWrapper):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::Database):
        (WebCore::Database::close):
        (WebCore::Database::changeVersion):
        (WebCore::Database::transaction):
        (WebCore::Database::readTransaction):
        (WebCore::Database::runTransaction):
        (WebCore::Database::reportStartTransactionResult):
        (WebCore::Database::reportCommitTransactionResult):
        (WebCore::Database::reportExecuteStatementResult):
        * Modules/webdatabase/Database.h:
        (WebCore::Database::databaseContext):
        (Database):
        (WebCore::Database::reportStartTransactionResult):
        (WebCore::Database::reportCommitTransactionResult):
        (WebCore::Database::reportExecuteStatementResult):
        * Modules/webdatabase/DatabaseBackend.cpp:
        * Modules/webdatabase/DatabaseBackend.h:
        (DatabaseBackend):
        (WebCore::DatabaseBackend::reportOpenDatabaseResult):
        (WebCore::DatabaseBackend::reportChangeVersionResult):
        (WebCore::DatabaseBackend::reportStartTransactionResult):
        (WebCore::DatabaseBackend::reportCommitTransactionResult):
        (WebCore::DatabaseBackend::reportExecuteStatementResult):
        (WebCore::DatabaseBackend::reportVacuumDatabaseResult):
        * Modules/webdatabase/DatabaseBackendAsync.cpp:
        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
        (WebCore::DatabaseBackendAsync::runTransaction):
        (WebCore::DatabaseBackendAsync::inProgressTransactionCompleted): Moved from frontend.
        (WebCore::DatabaseBackendAsync::scheduleTransaction): Moved from frontend.
        (WebCore::DatabaseBackendAsync::scheduleTransactionStep): Moved from frontend.
        (WebCore::DatabaseBackendAsync::transactionClient): Moved from frontend.
        (WebCore::DatabaseBackendAsync::transactionCoordinator): Moved from frontend.
        * Modules/webdatabase/DatabaseBackendAsync.h:
        (DatabaseBackendAsync):
        * Modules/webdatabase/DatabaseBackendContext.cpp:
        (WebCore::DatabaseBackendContext::frontend):
        * Modules/webdatabase/DatabaseBackendContext.h:
        (DatabaseBackendContext):
        * Modules/webdatabase/DatabaseManager.cpp:
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseServer.cpp:
        * Modules/webdatabase/DatabaseServer.h:
        * Modules/webdatabase/DatabaseTask.cpp:
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
        * Modules/webdatabase/SQLTransaction.cpp:
        (WebCore::SQLTransaction::create):
        (WebCore::SQLTransaction::SQLTransaction):
        (WebCore::SQLTransaction::setBackend):
        (WebCore::SQLTransaction::stateFunctionFor):
        (WebCore::SQLTransaction::requestTransitToState):
        (WebCore::SQLTransaction::nextStateForTransactionError):
            - was handleTransactionError(). There's also a backend version.
        (WebCore::SQLTransaction::deliverTransactionCallback): Moved from backend.
        (WebCore::SQLTransaction::deliverTransactionErrorCallback): Moved from backend.
        (WebCore::SQLTransaction::deliverStatementCallback): Moved from backend.
        (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Moved from backend.
        (WebCore::SQLTransaction::deliverSuccessCallback): Moved from backend.
        (WebCore::SQLTransaction::unreachableState):
        (WebCore::SQLTransaction::sendToBackendState):
        (WebCore::SQLTransaction::performPendingCallback): Moved from backend.
        (WebCore::SQLTransaction::executeSQL): Moved from backend.
        (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
        (WebCore::SQLTransaction::clearCallbackWrappers):
        * Modules/webdatabase/SQLTransaction.h:
        (SQLTransaction):
        (WebCore::SQLTransaction::database):
        (WebCore::SQLTransaction::hasCallback):
        (WebCore::SQLTransaction::hasSuccessCallback):
        (WebCore::SQLTransaction::hasErrorCallback):
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        (WebCore::SQLTransactionBackend::create):
        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
        (WebCore::SQLTransactionBackend::doCleanup):
        (WebCore::SQLTransactionBackend::transactionError):
        (WebCore::SQLTransactionBackend::setShouldRetryCurrentStatement):
        (WebCore::SQLTransactionBackend::stateFunctionFor):
        (WebCore::SQLTransactionBackend::enqueueStatement):
        (WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
        (WebCore::SQLTransactionBackend::performNextStep):
        (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
        (WebCore::SQLTransactionBackend::acquireLock):
        (WebCore::SQLTransactionBackend::lockAcquired):
        (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
        (WebCore::SQLTransactionBackend::runStatements):
        (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
            - was runCurrentStatement().
        (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
            - was handleCurrentStatementError().
        (WebCore::SQLTransactionBackend::postflightAndCommit):
        (WebCore::SQLTransactionBackend::cleanupAndTerminate):
        (WebCore::SQLTransactionBackend::nextStateForTransactionError):
            - was handleTransactionError(). There's also a frontend version.
        (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
        (WebCore::SQLTransactionBackend::requestTransitToState):
        (WebCore::SQLTransactionBackend::unreachableState):
        (WebCore::SQLTransactionBackend::sendToFrontendState):
        * Modules/webdatabase/SQLTransactionBackend.h:
        (SQLTransactionWrapper):
        (SQLTransactionBackend):
        (WebCore::SQLTransactionBackend::database):
        * Modules/webdatabase/SQLTransactionClient.cpp:
        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
        (WebCore::SQLTransactionClient::didExecuteStatement):
        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
        (WebCore::getDatabaseIdentifier):
        * Modules/webdatabase/SQLTransactionState.h: Added.
        * Modules/webdatabase/SQLTransactionStateMachine.cpp: Added.
        (WebCore::nameForSQLTransactionState):
            - was debugStepName().
        * Modules/webdatabase/SQLTransactionStateMachine.h: Added.
        (SQLTransactionStateMachine):
        (WebCore::SQLTransactionStateMachine::~SQLTransactionStateMachine):
        (WebCore::::SQLTransactionStateMachine):
        (WebCore::::setStateToRequestedState):
        (WebCore::::runStateMachine):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorDatabaseAgent.cpp:

2013-02-14  Jer Noble  <jer.noble@apple.com>

        EME: replace MediaKeySession.addKey() -> update()
        https://bugs.webkit.org/show_bug.cgi?id=109461

        Reviewed by Eric Carlson.

        No new tests; updated media/encrypted-media/encrypted-media-v2-syntax.html test.

        In the latest draft of the Encrypted Media Spec, the addKeys() method has been replaced
        with update().

        * Modules/encryptedmedia/CDM.h:
        * Modules/encryptedmedia/MediaKeySession.cpp:
        (WebCore::MediaKeySession::update):
        (WebCore::MediaKeySession::addKeyTimerFired):
        * Modules/encryptedmedia/MediaKeySession.h:
        * Modules/encryptedmedia/MediaKeySession.idl:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::webkitAddKey):
        * testing/MockCDM.cpp:
        (WebCore::MockCDMSession::update):

2013-02-14  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style CRLF for .sln files.

        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.

2013-02-14  Eric Carlson  <eric.carlson@apple.com>

        [Mac] adjust caption color user preference calculation
        https://bugs.webkit.org/show_bug.cgi?id=109840

        Reviewed by Dean Jackson.

        No new tests, it isn't possible to test this with DRT.

        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): The color is "important" if either the
            color or opacity are supposed to override.
        (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Ditto.
        (WebCore::CaptionUserPreferencesMac::captionsTextColor): Ditto.

        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.

2013-02-14  Cosmin Truta  <ctruta@rim.com>

        Numeric identifiers of events are not guaranteed to be unique
        https://bugs.webkit.org/show_bug.cgi?id=103259

        Reviewed by Alexey Proskuryakov.

        The results of setTimeout, setInterval and navigator.geolocation.watchPosition
        are positive integer values extracted from a simple circular sequential number
        generator, whose uniqueness can be guaranteed for no more than 2^31 calls to
        any of these functions. In order to provide this guarantee beyond this limit,
        we repeatedly ask for the next sequential id until we get one that's not used
        already.

        This solution works instantly under normal circumstances, when there are few
        live timeout ids or geolocation ids at any given moment. Handling millions of
        live ids will require another solution.

        No new tests. Brief tests of uniqueness already exist.
        Moreover, reproducing this particular issue would require 2^31 set/clear
        function calls, which is prohibitively expensive.

        * Modules/geolocation/Geolocation.cpp:
        (WebCore::Geolocation::Watchers::add): Rename from Watchers::set; return false if watch id already exists.
        (WebCore::Geolocation::watchPosition): Repeat until the new watch id is unique.
        * Modules/geolocation/Geolocation.h:
        (Watchers): Rename Watchers::set to Watchers::add.
        * Modules/geolocation/Geolocation.idl: Rename the argument of Geolocation::clearWatch to WatchID.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext): Update initialization.
        (WebCore::ScriptExecutionContext::circularSequentialID): Rename from newUniqueID; remove FIXME note.
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext): Rename ScriptExecutionContext::newUniqueID to ScriptExecutionContext::circularSequentialID.
        (WebCore::ScriptExecutionContext::addTimeout): Return false (do not assert) if timeout id already exists.
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::DOMTimer): Repeat until the new timeout id is unique.

2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142825.
        http://trac.webkit.org/changeset/142825
        https://bugs.webkit.org/show_bug.cgi?id=109856

        Causes some inspector tests to time out (Requested by anttik
        on #webkit).

        * platform/mac/SharedTimerMac.mm:
        (WebCore):
        (WebCore::PowerObserver::restartSharedTimer):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):

2013-02-14  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>

        Support the ch unit from css3-values
        https://bugs.webkit.org/show_bug.cgi?id=85755

        Reviewed by David Hyatt.

        Original patch by Sumedha Widyadharma <sumedha.widyadharma@basyskom.com>.

        Test: fast/css/css3-ch-unit.html

        * css/CSSCalculationValue.cpp:
        (WebCore::unitCategory):
        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::validUnit):
        (WebCore::CSSParser::createPrimitiveNumericValue):
        (WebCore::CSSParser::parseValidPrimitive):
        (WebCore::CSSParser::detectNumberToken):
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserValue::createCSSValue):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::isValidCSSUnitTypeForDoubleConversion):
        (WebCore::CSSPrimitiveValue::cleanup):
        (WebCore::CSSPrimitiveValue::computeLengthDouble):
        (WebCore::CSSPrimitiveValue::customCssText):
        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isFontRelativeLength):
        (WebCore::CSSPrimitiveValue::isLength):
        * platform/graphics/FontMetrics.h:
        (WebCore::FontMetrics::FontMetrics):
        (WebCore::FontMetrics::zeroWidth):
        (WebCore::FontMetrics::setZeroWidth):
        (FontMetrics):
        (WebCore::FontMetrics::hasZeroWidth):
        (WebCore::FontMetrics::setHasZeroWidth):
        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::platformGlyphInit):
        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::zeroGlyph):
        (WebCore::SimpleFontData::setZeroGlyph):
        (SimpleFontData):
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::platformInit):

2013-02-14  David Kilzer  <ddkilzer@apple.com>

        [Mac] Clean up WARNING_CFLAGS
        <http://webkit.org/b/109747>
        <rdar://problem/13208373>

        Reviewed by Mark Rowe.

        * Configurations/Base.xcconfig: Use
        GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
        -Wshorten-64-to-32 rather than WARNING_CFLAGS.

2013-02-14  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        Add addHTTPHeaderField() method to ResourceResponse
        https://bugs.webkit.org/show_bug.cgi?id=109844

        Reviewed by Adam Barth.

        ResourceRequestBase provides both setHTTPHeaderField() and addHTTPHeaderField(). However,
        ResourceResponseBase only provides setHTTPHeaderField(). This is a bit inconsistent. As a
        result, the addHTTPHeaderField() functionality's implementation is duplicated in several
        ports (at least chromium and soup).

        This patch introduces addHTTPHeaderField() to ResourceResponseBase and makes use of it
        in Chromium and Soup backends.

        No new tests, no behavior change.

        * platform/chromium/support/WebURLResponse.cpp:
        (WebKit::WebURLResponse::addHTTPHeaderField): Use ResourceResponseBase::addHTTPHeaderField().
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::updateHeaderParsedState): Move headers' parsed state update code
        from setHTTPHeaderField() to a new updateHeaderParsedState() method to avoid code duplication.
        (WebCore):
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        (WebCore::ResourceResponseBase::addHTTPHeaderField):
        * platform/network/ResourceResponseBase.h:
        (ResourceResponseBase):
        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::updateFromSoupMessageHeaders): Use ResourceResponseBase::addHTTPHeaderField().

2013-02-14  Philip Rogers  <pdr@google.com>

        Prevent inconsistent firstChild during document destruction
        https://bugs.webkit.org/show_bug.cgi?id=106530

        Reviewed by Abhishek Arya.

        During document destruction, addChildNodesToDeletionQueue can allow a container
        node to have an invalid first child, causing a crash. This patch updates
        addChildNodesToDeletionQueue to maintain a valid value for firstChild() even
        while updating its children.

        Test: svg/custom/animateMotion-path-change-crash.svg

        * dom/ContainerNodeAlgorithms.h:
        (WebCore::Private::addChildNodesToDeletionQueue):
            To ensure prevoiusSibling() is also valid, this code was slightly refactored
            to call setPreviousSibling(0) on the next node instead of the current node.

2013-02-14  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Add an internal 2D grid representation to RenderGrid
        https://bugs.webkit.org/show_bug.cgi?id=109714

        Reviewed by Ojan Vafai.

        This change introduces a 2D grid representation of the grid areas. Our implementation
        is a straight Vector of Vectors for the grid areas, each grid area able to hold an
        arbitrary number of RenderBox* so they hold a Vector of RenderBoxes. As an optimization,
        each grid area has enough inline storage to hold one grid item which should cover
        most cases.

        In order to keep the code readable, a GridIterator was introduced to hide the new grid.

        Refactoring, covered by existing tests.

        * rendering/RenderGrid.cpp:
        (RenderGrid::GridIterator):
        (WebCore::RenderGrid::GridIterator::GridIterator):
        (WebCore::RenderGrid::GridIterator::nextGridItem):
        Added a mono-directional iterator. In order to be more aligned with the rest of the code,
        this iterator actually walks orthogonally to the |direction| (ie fixing the |direction|'s track).

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computePreferredLogicalWidths):
        (WebCore::RenderGrid::layoutGridItems):
        Updated these 2 functions to place the items on the grid and clear it at the end.

        (WebCore::RenderGrid::computePreferredTrackWidth):
        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
        Updated to use the GridIterator to walk over the rows / columns.

        (WebCore::RenderGrid::placeItemsOnGrid):
        Added this function that inserts the grid items into the right grid area.

        * rendering/RenderGrid.h:
        (WebCore::RenderGrid::gridColumnCount):
        (WebCore::RenderGrid::gridRowCount):
        Added these helper functions.

2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141990.
        http://trac.webkit.org/changeset/141990
        https://bugs.webkit.org/show_bug.cgi?id=109850

        ~5% regression on intl2 page cycler (Requested by kling on
        #webkit).

        * platform/graphics/GlyphPage.h:
        (WebCore::GlyphPage::create):
        (WebCore::GlyphPage::glyphDataForCharacter):
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::fontDataForCharacter):
        (WebCore::GlyphPage::setGlyphDataForIndex):
        (GlyphPage):
        (WebCore::GlyphPage::copyFrom):
        (WebCore::GlyphPage::clear):
        (WebCore::GlyphPage::clearForFontData):
        (WebCore::GlyphPage::GlyphPage):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):

2013-02-14  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move PlatformMessagePortChannel to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=109845

        Reviewed by Adam Barth.

        Part of a larger refactoring series; see tracking bug 106829.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * dom/default/chromium: Added.
        * dom/default/chromium/PlatformMessagePortChannelChromium.cpp: Added.
        (WebCore):
        (WebCore::MessagePortChannel::create):
        (WebCore::MessagePortChannel::createChannel):
        (WebCore::MessagePortChannel::MessagePortChannel):
        (WebCore::MessagePortChannel::~MessagePortChannel):
        (WebCore::MessagePortChannel::entangleIfOpen):
        (WebCore::MessagePortChannel::disentangle):
        (WebCore::MessagePortChannel::postMessageToRemote):
        (WebCore::MessagePortChannel::tryGetMessageFromRemote):
        (WebCore::MessagePortChannel::close):
        (WebCore::MessagePortChannel::isConnectedTo):
        (WebCore::MessagePortChannel::hasPendingActivity):
        (WebCore::MessagePortChannel::locallyEntangledPort):
        (WebCore::PlatformMessagePortChannel::create):
        (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
        (WebCore::PlatformMessagePortChannel::~PlatformMessagePortChannel):
        (WebCore::PlatformMessagePortChannel::createChannel):
        (WebCore::PlatformMessagePortChannel::messageAvailable):
        (WebCore::PlatformMessagePortChannel::entangleIfOpen):
        (WebCore::PlatformMessagePortChannel::disentangle):
        (WebCore::PlatformMessagePortChannel::postMessageToRemote):
        (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
        (WebCore::PlatformMessagePortChannel::close):
        (WebCore::PlatformMessagePortChannel::isConnectedTo):
        (WebCore::PlatformMessagePortChannel::hasPendingActivity):
        (WebCore::PlatformMessagePortChannel::setEntangledChannel):
        (WebCore::PlatformMessagePortChannel::webChannelRelease):
        * dom/default/chromium/PlatformMessagePortChannelChromium.h: Added.
        (WebKit):
        (WebCore):
        (PlatformMessagePortChannel):

2013-02-14  Chris Fleizach  <cfleizach@apple.com>

        Remove Leopard Accessibility support from WebCore (now that no port builds on Leopard)
        https://bugs.webkit.org/show_bug.cgi?id=90250

        Reviewed by Eric Seidel.

        The Leopard era checks for accessibility lists and accessibility tables can be removed now.

        * accessibility/AccessibilityARIAGrid.cpp:
        (WebCore):
        * accessibility/AccessibilityARIAGrid.h:
        (AccessibilityARIAGrid):
        (WebCore::AccessibilityARIAGrid::isTableExposableThroughAccessibility):
        * accessibility/AccessibilityList.cpp:
        (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityList.h:
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::AccessibilityTable):
        (WebCore::AccessibilityTable::init):
        * accessibility/AccessibilityTable.h:
        (AccessibilityTable):
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (createAccessibilityRoleMap):

2013-02-14  Bear Travis  <betravis@adobe.com>

        Make outside-shape the default value for shape-inside
        https://bugs.webkit.org/show_bug.cgi?id=109605

        Reviewed by Levi Weintraub.

        Creating a single reference outside-shape value and setting it as the default
        for shape-inside.

        Existing tests cover the default value, just updating them to use outside-shape.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::initialShapeInside): Define a local static outside-shape
        value.
        (WebCore):
        * rendering/style/RenderStyle.h: Move the initialShapeInside method to the .cpp
        file.

2013-02-14  Min Qin  <qinmin@chromium.org>

        Passing alpha to DeferredImageDecoder once decoding completes
        https://bugs.webkit.org/show_bug.cgi?id=108892

        Reviewed by Stephen White.

        We should pass hasAlpha value back to the DeferredImageDecoder once decoding is completed
        Added unit tests in ImageFrameGeneratorTest.

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::tryToScale):
        (WebCore::ImageFrameGenerator::decode):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (WebCore::LazyDecodingPixelRef::hasAlpha):
        (LazyDecodingPixelRef):
        * platform/graphics/chromium/ScaledImageFragment.cpp:
        (WebCore::ScaledImageFragment::ScaledImageFragment):
        * platform/graphics/chromium/ScaledImageFragment.h:
        (WebCore::ScaledImageFragment::create):
        (ScaledImageFragment):
        (WebCore::ScaledImageFragment::hasAlpha):

2013-02-14  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Add a few more histogram calls
        https://bugs.webkit.org/show_bug.cgi?id=109762

        Reviewed by Tony Chang.

        A few places where commits could fail weren't being logged.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBBackingStore::deleteDatabase):
        (WebCore::IDBBackingStore::Transaction::commit):

2013-02-14  Tony Chang  <tony@chromium.org>

        Padding and border changes doesn't trigger relayout of children
        https://bugs.webkit.org/show_bug.cgi?id=109639

        Reviewed by Kent Tamura.

        In RenderBlock::layoutBlock, we only relayout our children if our logical width
        changes. This misses cases where our logical width doesn't change (i.e., padding
        or border changes), but our content width does change.

        This is a more general case of bug 104997.

        Test: fast/block/dynamic-padding-border.html

        * rendering/RenderBox.cpp:
        (WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
        (WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
        even without border-box box sizing.

2013-02-14  Peter Rybin  <prybin@chromium.org>

        Web Inspector: fix closure compilation warnings caused by setVariableValue change
        https://bugs.webkit.org/show_bug.cgi?id=109488

        Reviewed by Pavel Feldman.

        Annotations are fixed as required by closure compiler.
        Parameters in Inspector.json are reordered as required.

        * inspector/InjectedScriptExterns.js:
        (InjectedScriptHost.prototype.setFunctionVariableValue):
        (JavaScriptCallFrame.prototype.setVariableValue):
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setVariableValue):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):

2013-02-14  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: RTCDataChannel triggers a use-after-free
        https://bugs.webkit.org/show_bug.cgi?id=109806

        Reviewed by Adam Barth.

        Making sure RTCPeerConnection::stop() is always called at least once.
        Also making sure that RTCDataChannels state gets set to Closed correctly.

        Hard to test in WebKit but covered by Chromium tests.

        * Modules/mediastream/RTCDataChannel.cpp:
        (WebCore::RTCDataChannel::stop):
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::~RTCPeerConnection):
        (WebCore::RTCPeerConnection::stop):

2013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] When several consecutive characters are typed each of them is marked as undoable state.
        https://bugs.webkit.org/show_bug.cgi?id=109823

        Reviewed by Pavel Feldman.

        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142820.
        http://trac.webkit.org/changeset/142820
        https://bugs.webkit.org/show_bug.cgi?id=109839

        Causing crashes on chromium canaries (Requested by atwilson_
        on #webkit).

        * dom/Document.cpp:
        (WebCore::Document::updateLayout):
        (WebCore::Document::implicitClose):
        * rendering/RenderQuote.h:
        (RenderQuote):
        * rendering/RenderView.cpp:
        * rendering/RenderView.h:

2013-02-14  Mario Sanchez Prada  <mario.prada@samsung.com>

        [GTK] Missing call to g_object_ref while retrieving accessible table cells
        https://bugs.webkit.org/show_bug.cgi?id=106903

        Reviewed by Martin Robinson.

        Add missing extra ref to implementation of atk_table_ref_at().

        Test: accessibility/table-cell-for-column-and-row-crash.html

        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
        (webkitAccessibleTableRefAt): This method transfers full ownership
        over the returned AtkObject, so an extra reference is needed here.

2013-02-14  Mike Fenton  <mifenton@rim.com>

        [BlackBerry] Update keyboard event details to match platform details.
        https://bugs.webkit.org/show_bug.cgi?id=109693

        Reviewed by Yong Li.

        PR 220170.

        Update the keyboard event details to match the
        platform details available.

        Rename helper function to better describe the conversion.

        Reviewed Internally by Nima Ghanavatian and Gen Mak.

        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
        (WebCore::windowsKeyCodeForBlackBerryKeycode):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2013-02-08  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: expose did{Begin,Cancel}Frame() and {will,did}Composite() on WebDebToolsAgent
        https://bugs.webkit.org/show_bug.cgi?id=109192

        Reviewed by Pavel Feldman.

        - remove frame and compositing instrumentation methods from InspectorInstrumentation;
        - expose those methods on InspectorController instead.

        * WebCore.exp.in:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::didBeginFrame):
        (WebCore):
        (WebCore::InspectorController::didCancelFrame):
        (WebCore::InspectorController::willComposite):
        (WebCore::InspectorController::didComposite):
        * inspector/InspectorController.h:
        (InspectorController):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * testing/Internals.cpp:
        (WebCore::Internals::emitInspectorDidBeginFrame):
        (WebCore::Internals::emitInspectorDidCancelFrame):

2013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Fixed a layout regression in CanvasProfileView.
        https://bugs.webkit.org/show_bug.cgi?id=109835

        Reviewed by Pavel Feldman.

        Changed splitView.css to supported nested SplitView instances.

        * inspector/front-end/splitView.css:
        (.split-view-vertical > .split-view-contents):
        (.split-view-vertical > .split-view-contents-first):
        (.split-view-vertical > .split-view-contents-first.maximized):
        (.split-view-vertical > .split-view-contents-second):
        (.split-view-vertical > .split-view-contents-second.maximized):
        (.split-view-horizontal > .split-view-contents):
        (.split-view-horizontal > .split-view-contents-first):
        (.split-view-horizontal > .split-view-contents-first.maximized):
        (.split-view-horizontal > .split-view-contents-second):
        (.split-view-horizontal > .split-view-contents-second.maximized):
        (.split-view-vertical > .split-view-sidebar.split-view-contents-first:not(.maximized)):
        (.split-view-vertical > .split-view-sidebar.split-view-contents-second:not(.maximized)):
        (.split-view-horizontal > .split-view-sidebar.split-view-contents-first:not(.maximized)):
        (.split-view-horizontal > .split-view-sidebar.split-view-contents-second:not(.maximized)):
        (.split-view-vertical > .split-view-resizer):
        (.split-view-horizontal > .split-view-resizer):

2013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Color picker should not be available in Computed Styles pane.
        https://bugs.webkit.org/show_bug.cgi?id=109697

        Reviewed by Alexander Pavlov.

        Changed the parentPane parameter of WebInspector.ComputedStylePropertiesSection to the correct value
        (the ComputedStyleSidebarPane instance).

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):

2013-02-14  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: don't create static local string for program literal in InspectorTimelineAgent
        https://bugs.webkit.org/show_bug.cgi?id=109811

        Reviewed by Pavel Feldman.

        Use const char* constant value instead of creating String from it in thread-unsafe
        static local variable.

        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):

2013-02-14  Pan Deng  <pan.deng@intel.com>

        [Web Inspector] Fix initiator name issue in reload scenario for Network Panel.
        https://bugs.webkit.org/show_bug.cgi?id=108746.

        Reviewed by Vsevolod Vlasov.

        WebInspector.displayNameForURL() does not work as expected in the reload scenario,
        for example, "http://www.yahoo.com/" was trimed to "/" at one time, but at another,
        the full host name will be displayed.
        This fix return host + "/" in the issue scenario, and keep with get displayName() in ParsedURL.

        No new tests.

        * inspector/front-end/ParsedURL.js:
        (WebInspector.ParsedURL.prototype.get displayName): append "/" in the display host scenario.
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.displayNameForURL): add host in the head if url trimed as a "/".

2013-02-14  Alexei Filippov  <alph@chromium.org>

        Web Inspector: fix to record button remaining red after heap snapshot is taken
        https://bugs.webkit.org/show_bug.cgi?id=109804

        Reviewed by Yury Semikhatsky.

        Revert part of r142243 fix. Namely heap snapshot taking button made
        stateless as it was before.

        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):

2013-02-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Consistently use SecurityOrigin::toRawString() for serialization across the backend code
        https://bugs.webkit.org/show_bug.cgi?id=109801

        Reviewed by Yury Semikhatsky.

        No new tests, as existing tests cover the change.

        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::didClearWindowObjectInWorld):
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrame):
        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::notifyContextCreated):

2013-02-14  Sergio Villar Senin  <svillar@igalia.com>

        Add logging support to IndexedDB for non-Chromium platforms
        https://bugs.webkit.org/show_bug.cgi?id=109809

        Reviewed by Kentaro Hara.

        Enable logging of IndexedDB through the StorageAPI log channel for
        non-Chromium architectures.

        No new tests required, we're just enabling logging for IndexedDB
        using the currently available logging framework.

        * Modules/indexeddb/IDBTracing.h:

2013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove uriForFile and fileForURI methods from FileSystemMapping.
        https://bugs.webkit.org/show_bug.cgi?id=109704

        Reviewed by Alexander Pavlov.

        Replaced this methods with one line implementation on the only call site.

        * inspector/front-end/FileSystemMapping.js:
        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate.prototype._filePathForURI):
        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
        (WebInspector.FileSystemProjectDelegate.prototype._populate):

2013-02-14  Anton Vayvod  <avayvod@chromium.org>

        [Text Autosizing] Process narrow descendants with the same multiplier for the font size.
        https://bugs.webkit.org/show_bug.cgi?id=109573

        Reviewed by Julien Chaffraix.

        Combine narrow descendants of the same autosizing cluster into a group that is autosized
        with the same multiplier.

        For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
        a large margin individually applied (via a CSS selector), causing them all to individually
        appear narrower than their enclosing blockContainingAllText. Rather than making each of
        these paragraphs into a separate cluster, we want them all to share the same multiplier, as
        if they were a single cluster.

        Test: fast/text-autosizing/narrow-descendants-combined.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::processClusterInternal):

            Common implementation for processCluster() and processCompositeCluster that accepts the
            text width and whether the cluster should be autosized as parameters instead of
            calculating it inline.

        (WebCore::TextAutosizer::processCluster):

            Calculates the text width for a single cluster and whether it should be autosized, then
            calls processClusterInternal() to apply the multiplier and process the cluster's
            descendants.

        (WebCore::TextAutosizer::processCompositeCluster):

            Calculates the text width for a group of renderers and if the group should be autosized,
            then calls processClusterInternal() repeatedly with the same multiplier to apply it and
            process all the descendants of the group.

        (WebCore::TextAutosizer::clusterShouldBeAutosized):

            Calls the multiple renderers version to avoid code duplication.

        (WebCore::TextAutosizer::compositeClusterShouldBeAutosized):

            The multiple renderers version of clusterShouldBeAutosized.

        * rendering/TextAutosizer.h:

            Updated method declarations.

2013-02-14  Andrey Adaikin  <aandrey@chromium.org>

        Look into possibilities of typedef in webkit idl files
        https://bugs.webkit.org/show_bug.cgi?id=52340

        Reviewed by Kentaro Hara.

        Add typedef support for WebKit IDL parser.
        Drive by: fixed a bug of generating "unrestrictedfloat" without a space.

        Added a new IDL test TestTypedefs.idl. The results were generated without typedefs.

        * bindings/scripts/IDLParser.pm:
        (assertNoExtendedAttributesInTypedef):
        (parseDefinitions):
        (applyTypedefs):
        (applyTypedefsForSignature):
        (parseTypedef):
        (parseUnrestrictedFloatType):
        * bindings/scripts/test/CPP/WebDOMTestTypedefs.cpp: Added.
        (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate::WebDOMTestTypedefsPrivate):
        (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate):
        (WebDOMTestTypedefs::WebDOMTestTypedefs):
        (WebDOMTestTypedefs::operator=):
        (WebDOMTestTypedefs::impl):
        (WebDOMTestTypedefs::~WebDOMTestTypedefs):
        (WebDOMTestTypedefs::unsignedLongLongAttr):
        (WebDOMTestTypedefs::setUnsignedLongLongAttr):
        (WebDOMTestTypedefs::immutableSerializedScriptValue):
        (WebDOMTestTypedefs::setImmutableSerializedScriptValue):
        (WebDOMTestTypedefs::func):
        (WebDOMTestTypedefs::multiTransferList):
        (WebDOMTestTypedefs::setShadow):
        (WebDOMTestTypedefs::nullableArrayArg):
        (WebDOMTestTypedefs::immutablePointFunction):
        (toWebCore):
        (toWebKit):
        * bindings/scripts/test/CPP/WebDOMTestTypedefs.h: Added.
        (WebCore):
        (WebDOMTestTypedefs):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp: Added.
        (_WebKitDOMTestTypedefsPrivate):
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestTypedefs):
        (webkit_dom_test_typedefs_finalize):
        (webkit_dom_test_typedefs_set_property):
        (webkit_dom_test_typedefs_get_property):
        (webkit_dom_test_typedefs_constructor):
        (webkit_dom_test_typedefs_class_init):
        (webkit_dom_test_typedefs_init):
        (webkit_dom_test_typedefs_func):
        (webkit_dom_test_typedefs_multi_transfer_list):
        (webkit_dom_test_typedefs_set_shadow):
        (webkit_dom_test_typedefs_nullable_array_arg):
        (webkit_dom_test_typedefs_immutable_point_function):
        (webkit_dom_test_typedefs_string_array_function):
        (webkit_dom_test_typedefs_get_unsigned_long_long_attr):
        (webkit_dom_test_typedefs_set_unsigned_long_long_attr):
        (webkit_dom_test_typedefs_get_immutable_serialized_script_value):
        (webkit_dom_test_typedefs_set_immutable_serialized_script_value):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h: Added.
        (_WebKitDOMTestTypedefs):
        (_WebKitDOMTestTypedefsClass):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h: Added.
        (WebKit):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp: Added.
        (WebCore):
        (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
        (WebCore::JSTestTypedefsConstructor::JSTestTypedefsConstructor):
        (WebCore::JSTestTypedefsConstructor::finishCreation):
        (WebCore::JSTestTypedefsConstructor::getOwnPropertySlot):
        (WebCore::JSTestTypedefsConstructor::getOwnPropertyDescriptor):
        (WebCore::JSTestTypedefsConstructor::getConstructData):
        (WebCore::JSTestTypedefsPrototype::self):
        (WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
        (WebCore::JSTestTypedefsPrototype::getOwnPropertyDescriptor):
        (WebCore::JSTestTypedefs::JSTestTypedefs):
        (WebCore::JSTestTypedefs::finishCreation):
        (WebCore::JSTestTypedefs::createPrototype):
        (WebCore::JSTestTypedefs::destroy):
        (WebCore::JSTestTypedefs::~JSTestTypedefs):
        (WebCore::JSTestTypedefs::getOwnPropertySlot):
        (WebCore::JSTestTypedefs::getOwnPropertyDescriptor):
        (WebCore::jsTestTypedefsUnsignedLongLongAttr):
        (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
        (WebCore::jsTestTypedefsConstructorTestSubObj):
        (WebCore::jsTestTypedefsConstructor):
        (WebCore::JSTestTypedefs::put):
        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
        (WebCore::JSTestTypedefs::getConstructor):
        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
        (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
        (WebCore::isObservable):
        (WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):
        (WebCore::JSTestTypedefsOwner::finalize):
        (WebCore::toJS):
        (WebCore::toTestTypedefs):
        * bindings/scripts/test/JS/JSTestTypedefs.h: Added.
        (WebCore):
        (JSTestTypedefs):
        (WebCore::JSTestTypedefs::create):
        (WebCore::JSTestTypedefs::createStructure):
        (WebCore::JSTestTypedefs::impl):
        (WebCore::JSTestTypedefs::releaseImpl):
        (WebCore::JSTestTypedefs::releaseImplIfNotNull):
        (JSTestTypedefsOwner):
        (WebCore::wrapperOwner):
        (WebCore::wrapperContext):
        (JSTestTypedefsPrototype):
        (WebCore::JSTestTypedefsPrototype::create):
        (WebCore::JSTestTypedefsPrototype::createStructure):
        (WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
        (JSTestTypedefsConstructor):
        (WebCore::JSTestTypedefsConstructor::create):
        (WebCore::JSTestTypedefsConstructor::createStructure):
        * bindings/scripts/test/ObjC/DOMTestTypedefs.h: Added.
        * bindings/scripts/test/ObjC/DOMTestTypedefs.mm: Added.
        (-[DOMTestTypedefs dealloc]):
        (-[DOMTestTypedefs finalize]):
        (-[DOMTestTypedefs unsignedLongLongAttr]):
        (-[DOMTestTypedefs setUnsignedLongLongAttr:]):
        (-[DOMTestTypedefs immutableSerializedScriptValue]):
        (-[DOMTestTypedefs setImmutableSerializedScriptValue:]):
        (-[DOMTestTypedefs multiTransferList:tx:second:txx:]):
        (-[DOMTestTypedefs setShadow:height:blur:color:alpha:]):
        (-[DOMTestTypedefs immutablePointFunction]):
        (core):
        (kit):
        * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h: Added.
        (WebCore):
        * bindings/scripts/test/TestTypedefs.idl: Added.
        * bindings/scripts/test/V8/V8TestTypedefs.cpp: Added.
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (TestTypedefsV8Internal):
        (WebCore::TestTypedefsV8Internal::V8_USE):
        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetter):
        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetter):
        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetter):
        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetter):
        (WebCore::TestTypedefsV8Internal::TestTypedefsConstructorGetter):
        (WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetter):
        (WebCore::TestTypedefsV8Internal::funcCallback):
        (WebCore::TestTypedefsV8Internal::multiTransferListCallback):
        (WebCore::TestTypedefsV8Internal::setShadowCallback):
        (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
        (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
        (WebCore::TestTypedefsV8Internal::funcWithClampCallback):
        (WebCore::TestTypedefsV8Internal::immutablePointFunctionCallback):
        (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
        (WebCore::V8TestTypedefs::constructorCallback):
        (WebCore::ConfigureV8TestTypedefsTemplate):
        (WebCore::V8TestTypedefs::GetRawTemplate):
        (WebCore::V8TestTypedefs::GetTemplate):
        (WebCore::V8TestTypedefs::HasInstance):
        (WebCore::V8TestTypedefs::createWrapper):
        (WebCore::V8TestTypedefs::derefObject):
        * bindings/scripts/test/V8/V8TestTypedefs.h: Added.
        (WebCore):
        (V8TestTypedefs):
        (WebCore::V8TestTypedefs::toNative):
        (WebCore::V8TestTypedefs::installPerContextProperties):
        (WebCore::V8TestTypedefs::installPerContextPrototypeProperties):
        (WebCore::wrap):
        (WebCore::toV8):
        (WebCore::toV8Fast):

2013-02-13  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
        and XXXAccessorSetter() to XXXAttrSetterCustom()
        https://bugs.webkit.org/show_bug.cgi?id=109679

        Reviewed by Adam Barth.

        For naming consistency and clarification.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateHeaderCustomCall):
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::customAttrAttrGetter):
        (WebCore::TestObjV8Internal::customAttrAttrSetter):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
        (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
        * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
        (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        (WebCore::V8Clipboard::typesAttrGetterCustom):
        * bindings/v8/custom/V8CoordinatesCustom.cpp:
        (WebCore::V8Coordinates::altitudeAttrGetterCustom):
        (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
        (WebCore::V8Coordinates::headingAttrGetterCustom):
        (WebCore::V8Coordinates::speedAttrGetterCustom):
        * bindings/v8/custom/V8CustomEventCustom.cpp:
        (WebCore::V8CustomEvent::detailAttrGetterCustom):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::eventAttrGetterCustom):
        (WebCore::V8DOMWindow::eventAttrSetterCustom):
        (WebCore::V8DOMWindow::locationAttrSetterCustom):
        (WebCore::V8DOMWindow::openerAttrSetterCustom):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
        (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
        (WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
        (WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
        (WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
        (WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
        (WebCore::V8Document::locationAttrGetterCustom):
        (WebCore::V8Document::locationAttrSetterCustom):
        * bindings/v8/custom/V8EventCustom.cpp:
        (WebCore::V8Event::dataTransferAttrGetterCustom):
        (WebCore::V8Event::clipboardDataAttrGetterCustom):
        * bindings/v8/custom/V8FileReaderCustom.cpp:
        (WebCore::V8FileReader::resultAttrGetterCustom):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::allAttrSetterCustom):
        * bindings/v8/custom/V8HTMLElementCustom.cpp:
        (WebCore::V8HTMLElement::itemValueAttrGetterCustom):
        (WebCore::V8HTMLElement::itemValueAttrSetterCustom):
        * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
        (WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
        (WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
        (WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
        (WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
        (WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
        (WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
        (WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
        (WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
        (WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
        (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::stateAttrGetterCustom):
        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
        (WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
        (WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
        (WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::V8Location::hashAttrSetterCustom):
        (WebCore::V8Location::hostAttrSetterCustom):
        (WebCore::V8Location::hostnameAttrSetterCustom):
        (WebCore::V8Location::hrefAttrSetterCustom):
        (WebCore::V8Location::pathnameAttrSetterCustom):
        (WebCore::V8Location::portAttrSetterCustom):
        (WebCore::V8Location::protocolAttrSetterCustom):
        (WebCore::V8Location::searchAttrSetterCustom):
        (WebCore::V8Location::reloadAttrGetterCustom):
        (WebCore::V8Location::replaceAttrGetterCustom):
        (WebCore::V8Location::assignAttrGetterCustom):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAttrGetterCustom):
        (WebCore::V8MessageEvent::portsAttrGetterCustom):
        * bindings/v8/custom/V8OscillatorNodeCustom.cpp:
        (WebCore::V8OscillatorNode::typeAttrSetterCustom):
        * bindings/v8/custom/V8PannerNodeCustom.cpp:
        (WebCore::V8PannerNode::panningModelAttrSetterCustom):
        (WebCore::V8PannerNode::distanceModelAttrSetterCustom):
        * bindings/v8/custom/V8PopStateEventCustom.cpp:
        (WebCore::V8PopStateEvent::stateAttrGetterCustom):
        * bindings/v8/custom/V8SVGLengthCustom.cpp:
        (WebCore::V8SVGLength::valueAttrGetterCustom):
        (WebCore::V8SVGLength::valueAttrSetterCustom):
        * bindings/v8/custom/V8TrackEventCustom.cpp:
        (WebCore::V8TrackEvent::trackAttrGetterCustom):
        * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
        (WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
        (WebCore::V8XMLHttpRequest::responseAttrGetterCustom):

2013-02-14  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: extract DOM counters graph implementation into its own class
        https://bugs.webkit.org/show_bug.cgi?id=109796

        Reviewed by Alexander Pavlov.

        Extracted DOM counters graph implementation into DOMCountersGraph.js leaving
        in MemoryStatistics.js only common parts shared with NativeMemoryGraph.js
        Added some closure annotations and converted object literals into classes
        with named constructors.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/DOMCountersGraph.js: Added.
        (WebInspector.DOMCountersGraph):
        (WebInspector.DOMCounterUI):
        (WebInspector.DOMCountersGraph.Counter):
        (WebInspector.DOMCounterUI.prototype.setRange):
        (WebInspector.DOMCounterUI.prototype.updateCurrentValue):
        (WebInspector.DOMCounterUI.prototype.clearCurrentValueAndMarker):
        (WebInspector.DOMCounterUI.prototype.saveImageUnderMarker):
        (WebInspector.DOMCounterUI.prototype.restoreImageUnderMarker):
        (WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
        (WebInspector.DOMCountersGraph.prototype._createCurrentValuesBar):
        (WebInspector.DOMCountersGraph.prototype._createCounterUIList):
        (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getNodeCount):
        (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getListenerCount):
        (WebInspector.DOMCountersGraph.prototype._canvasHeight):
        (WebInspector.DOMCountersGraph.prototype._onRecordAdded):
        (WebInspector.DOMCountersGraph.prototype._draw):
        (WebInspector.DOMCountersGraph.prototype._restoreImageUnderMarker):
        (WebInspector.DOMCountersGraph.prototype._saveImageUnderMarker):
        (WebInspector.DOMCountersGraph.prototype._drawMarker):
        (WebInspector.DOMCountersGraph.prototype._drawGraph):
        (WebInspector.DOMCountersGraph.prototype._discardImageUnderMarker):
        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics):
        (WebInspector.MemoryStatistics.Counter):
        (WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
        (WebInspector.MemoryStatistics.prototype._createCounterUIList):
        (WebInspector.MemoryStatistics.prototype.setTopPosition):
        (WebInspector.MemoryStatistics.prototype._canvasHeight):
        (WebInspector.MemoryStatistics.prototype._onRecordAdded):
        (WebInspector.MemoryStatistics.prototype._draw):
        (WebInspector.MemoryStatistics.prototype._onClick):
        (WebInspector.MemoryStatistics.prototype._onMouseOut):
        (WebInspector.MemoryStatistics.prototype._onMouseOver):
        (WebInspector.MemoryStatistics.prototype._onMouseMove):
        (WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
        (WebInspector.MemoryStatistics.prototype._drawMarker):
        (WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
        * inspector/front-end/NativeMemoryGraph.js:
        (WebInspector.NativeMemoryGraph.Counter):
        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
        (WebInspector.NativeMemoryGraph.prototype._draw):
        * inspector/front-end/TimelinePanel.js:
        * inspector/front-end/WebKit.qrc:

2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: Report child nodes as direct members of a container node to make them look like a tree in the snapshot.
        https://bugs.webkit.org/show_bug.cgi?id=109703

        Also we need to traverse the tree from the top root element down to the leaves.

        Reviewed by Yury Semikhatsky.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::reportMemoryUsage):
        * dom/Node.cpp:
        (WebCore::Node::reportMemoryUsage):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore):

2013-02-13  Hayato Ito  <hayato@chromium.org>

        [Shadow DOM] Implements a '::distributed()' pseudo element.
        https://bugs.webkit.org/show_bug.cgi?id=82169

        Reviewed by Dimitri Glazkov.

        Implements a '::distributed()' pseudo element.
        See the Shadow DOM specification and the filed bug for the detail.

        - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#selecting-nodes-distributed-to-insertion-points
        - https://www.w3.org/Bugs/Public/show_bug.cgi?id=19684

        For example, suppose we are given the following DOM tree and shadow tree:

        - <A>
          - <B>
            - <C>

        [A's ShadowRoot]
          <D>
          - <style>
              E content::distributed(B C) { color: green; }
          - <E>
            - <content>  (Node B is distributed to this insertion point.)

        In this case, the style rule defined in the shadow tree matches node 'C'.

        A '::distributed()' pseudo element can not be a pseudo class since
        an intersection between matched_elements(some_selector) and
        matched_elements(some_selector::distributed(...)) is always an
        empty set. A '::distributed()' pseudo element is the first-ever
        *functional* pseudo element which takes a parameter, which can be
        a selector.

        This rule crosses the shadow boundary from a shadow tree to the
        tree of its shadow host. That means a rule which includes
        '::distributed()' pseudo element is defined in shadow tree, but
        the node which is matched in the rule, the subject of the
        selector, is outside of the shadow tree. Therefore, we cannot
        predict where the subject of the selector will be beforehand.
        Current CSS implementation assumes the subject of the selector
        must exist in the current scope.

        To overcome this issue, DocumentRuleSets now has a instance of
        ShadowDistributedRules class.  A style rule will be stored in this
        instance if the rule includes a '::distributed()' pseudo element.
        This class also keeps track of each RuleSet by mapping it with a
        scope where the rule was originally defined. In the example, the
        scope is A's ShadowRoot.  The scope is used to check whether the
        left-most matched element (in the example, it's a node 'E') exists
        in the scope.

        Internally, a '::distributed' pseudo element is represented by a
        newly introduced 'ShadowDistributed' relation.  That makes an
        implementation of SelectorChecker::checkSelector() much simpler.
        A transformation from a distributed pseudo element to a
        ShadowDistributed is done in parsing stage of CSS.

        Since '::distributed()' is an experimental feature, it's actually
        prefixed with '-webkit-' and guarded by SHADOW_DOM flag.

        Tests: fast/dom/shadow/distributed-pseudo-element-for-shadow-element.html
               fast/dom/shadow/distributed-pseudo-element-match-all.html
               fast/dom/shadow/distributed-pseudo-element-match-descendant.html
               fast/dom/shadow/distributed-pseudo-element-nested.html
               fast/dom/shadow/distributed-pseudo-element-no-match.html
               fast/dom/shadow/distributed-pseudo-element-reprojection.html
               fast/dom/shadow/distributed-pseudo-element-scoped.html
               fast/dom/shadow/distributed-pseudo-element-support-selector.html
               fast/dom/shadow/distributed-pseudo-element-used-in-selector-list.html
               fast/dom/shadow/distributed-pseudo-element-with-any.html
               fast/dom/shadow/distributed-pseudo-element.html

        * css/CSSGrammar.y.in:
        CSS Grammar was updated to support '::distrbuted(selector)'.
        This pseudo element is the first pseudo element which can take a selector as a parameter.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectDashToken):
        (WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
        (WebCore::CSSParser::rewriteSpecifiersWithElementName):
        Here we are converting a '::distributed' pseudo element into a
        ShadowDistributed relation internally.  To support the conversion,
        these rewriteSpecifiersXXX functions (formally called
        updateSpecifiersXXX) now return the specifiers which may be
        converted.
        (WebCore::CSSParser::rewriteSpecifiers):
        * css/CSSParser.h:
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::CSSParserSelector):
        * css/CSSParserValues.h:
        (CSSParserSelector):
        (WebCore::CSSParserSelector::functionArgumentSelector):
        To hold an intermediate selector which appears at the position of an argument in
        functional pseudo element when parsing CSS.
        (WebCore::CSSParserSelector::setFunctionArgumentSelector):
        (WebCore::CSSParserSelector::isDistributedPseudoElement):
        * css/CSSSelector.cpp:
        Add new pseudo element, PseudoDistributed, and its internal representation, ShadowDistributed relation.
        (WebCore::CSSSelector::pseudoId):
        (WebCore::nameToPseudoTypeMap):
        (WebCore::CSSSelector::extractPseudoType):
        (WebCore::CSSSelector::selectorText):
        * css/CSSSelector.h:
        (CSSSelector):
        (WebCore):
        (WebCore::CSSSelector::isDistributedPseudoElement):
        (WebCore::CSSSelector::isShadowDistributed):
        * css/CSSSelectorList.cpp:
        (WebCore):
        (SelectorHasShadowDistributed):
        (WebCore::SelectorHasShadowDistributed::operator()):
        (WebCore::CSSSelectorList::hasShadowDistributedAt):
        * css/CSSSelectorList.h:
        (CSSSelectorList):
        * css/DocumentRuleSets.cpp:
        (WebCore):
        (WebCore::ShadowDistributedRules::addRule):
        Every CSS rule which includes '::distributed(...)' should be managed by calling this function.
        (WebCore::ShadowDistributedRules::collectMatchRequests):
        (WebCore::DocumentRuleSets::resetAuthorStyle):
        * css/DocumentRuleSets.h:
        (WebCore):
        (ShadowDistributedRules):
        (WebCore::ShadowDistributedRules::clear):
        (DocumentRuleSets):
        (WebCore::DocumentRuleSets::shadowDistributedRules)
        DocumentRuleSets owns an instance of ShadowDistributedRules.
        * css/RuleSet.cpp:
        (WebCore::RuleSet::addChildRules):
        Updated to check whether the rule contains '::distributed()' or not.
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::match):
        Support ShadowDistributed relation. Check all possible insertion points where a node is distributed.
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        Adds enum of BehaviorAtBoundary. '::distributed()' is the only
        rule which uses 'CrossedBoundary' since it is the only rule which
        crosses shadow boundaries.
        (SelectorCheckingContext):
        * css/SelectorFilter.cpp:
        (WebCore::SelectorFilter::collectIdentifierHashes):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::matchAuthorRules):
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::ruleMatches):
        * css/StyleResolver.h:
        (MatchRequest):
        (WebCore::MatchRequest::MatchRequest): Add behaviorAtBoundary field.
        (WebCore):
        (StyleResolver):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::collectInsertionPointsWhereNodeIsDistributed):
        (WebCore):
        * html/shadow/InsertionPoint.h:
        (WebCore):

2013-02-13  Kentaro Hara  <haraken@chromium.org>

        [V8] Generate wrapper methods for custom methods
        https://bugs.webkit.org/show_bug.cgi?id=109678

        Reviewed by Adam Barth.

        Currently V8 directly calls back custom methods written
        in custom binding files. This makes it impossible for code
        generators to hook custom methods (e.g. Code generators cannot
        insert a code for FeatureObservation into custom methods).
        To solve the problem, we should generate wrapper methods for
        custom methods.

        No tests. No change in behavior.

        * page/DOMWindow.idl: Removed overloaded methods. The fact that methods in an IDL
        file are overloaded but they are not overloaded in custom bindings confuses code
        generators. (For some reason, this problem hasn't appeared before this change.)
        * xml/XMLHttpRequest.idl: Ditto.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateDomainSafeFunctionGetter):
        (GenerateEventListenerCallback):
        (GenerateFunctionCallback):
        (GenerateNonStandardFunction):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalMethod3Callback):
        (TestInterfaceV8Internal):
        (WebCore):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::customMethodCallback):
        (TestObjV8Internal):
        (WebCore::TestObjV8Internal::customMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::classMethod2Callback):
        (WebCore):
        (WebCore::ConfigureV8TestObjTemplate):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        (WebCore::V8Clipboard::clearDataCallbackCustom):
        (WebCore::V8Clipboard::setDragImageCallbackCustom):
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::traceCallbackCustom):
        (WebCore::V8Console::assertCallbackCustom):
        (WebCore::V8Console::profileCallbackCustom):
        (WebCore::V8Console::profileEndCallbackCustom):
        * bindings/v8/custom/V8CryptoCustom.cpp:
        (WebCore::V8Crypto::getRandomValuesCallbackCustom):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::appendCallbackCustom):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::addEventListenerCallbackCustom):
        (WebCore::V8DOMWindow::removeEventListenerCallbackCustom):
        (WebCore::V8DOMWindow::postMessageCallbackCustom):
        (WebCore::V8DOMWindow::toStringCallbackCustom):
        (WebCore::V8DOMWindow::releaseEventsCallbackCustom):
        (WebCore::V8DOMWindow::captureEventsCallbackCustom):
        (WebCore::V8DOMWindow::showModalDialogCallbackCustom):
        (WebCore::V8DOMWindow::openCallbackCustom):
        (WebCore::V8DOMWindow::setTimeoutCallbackCustom):
        (WebCore::V8DOMWindow::setIntervalCallbackCustom):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::getInt8CallbackCustom):
        (WebCore::V8DataView::getUint8CallbackCustom):
        (WebCore::V8DataView::setInt8CallbackCustom):
        (WebCore::V8DataView::setUint8CallbackCustom):
        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
        (WebCore::V8DedicatedWorkerContext::postMessageCallbackCustom):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallbackCustom):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallbackCustom):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallbackCustom):
        (WebCore::V8Document::createTouchListCallbackCustom):
        * bindings/v8/custom/V8GeolocationCustom.cpp:
        (WebCore::V8Geolocation::getCurrentPositionCallbackCustom):
        (WebCore::V8Geolocation::watchPositionCallbackCustom):
        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
        (WebCore::V8HTMLAllCollection::itemCallbackCustom):
        (WebCore::V8HTMLAllCollection::namedItemCallbackCustom):
        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
        (WebCore::V8HTMLCanvasElement::getContextCallbackCustom):
        (WebCore::V8HTMLCanvasElement::toDataURLCallbackCustom):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::writeCallbackCustom):
        (WebCore::V8HTMLDocument::writelnCallbackCustom):
        (WebCore::V8HTMLDocument::openCallbackCustom):
        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
        (WebCore::V8HTMLFormControlsCollection::namedItemCallbackCustom):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallbackCustom):
        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
        (WebCore::V8HTMLInputElement::setSelectionRangeCallbackCustom):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::namedItemCallbackCustom):
        (WebCore::V8HTMLOptionsCollection::removeCallbackCustom):
        (WebCore::V8HTMLOptionsCollection::addCallbackCustom):
        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
        (WebCore::V8HTMLSelectElement::removeCallbackCustom):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallbackCustom):
        (WebCore::V8History::replaceStateCallbackCustom):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::inspectedObjectCallbackCustom):
        (WebCore::V8InjectedScriptHost::internalConstructorNameCallbackCustom):
        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallbackCustom):
        (WebCore::V8InjectedScriptHost::typeCallbackCustom):
        (WebCore::V8InjectedScriptHost::functionDetailsCallbackCustom):
        (WebCore::V8InjectedScriptHost::getInternalPropertiesCallbackCustom):
        (WebCore::V8InjectedScriptHost::getEventListenersCallbackCustom):
        (WebCore::V8InjectedScriptHost::inspectCallbackCustom):
        (WebCore::V8InjectedScriptHost::databaseIdCallbackCustom):
        (WebCore::V8InjectedScriptHost::storageIdCallbackCustom):
        (WebCore::V8InjectedScriptHost::evaluateCallbackCustom):
        (WebCore::V8InjectedScriptHost::setFunctionVariableValueCallbackCustom):
        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
        (WebCore::V8InspectorFrontendHost::platformCallbackCustom):
        (WebCore::V8InspectorFrontendHost::portCallbackCustom):
        (WebCore::V8InspectorFrontendHost::showContextMenuCallbackCustom):
        (WebCore::V8InspectorFrontendHost::recordActionTakenCallbackCustom):
        (WebCore::V8InspectorFrontendHost::recordPanelShownCallbackCustom):
        (WebCore::V8InspectorFrontendHost::recordSettingChangedCallbackCustom):
        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
        (WebCore::V8JavaScriptCallFrame::evaluateCallbackCustom):
        (WebCore::V8JavaScriptCallFrame::restartCallbackCustom):
        (WebCore::V8JavaScriptCallFrame::setVariableValueCallbackCustom):
        (WebCore::V8JavaScriptCallFrame::scopeTypeCallbackCustom):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::V8Location::reloadAccessorGetter):
        (WebCore::V8Location::replaceAccessorGetter):
        (WebCore::V8Location::assignAccessorGetter):
        (WebCore::V8Location::reloadCallbackCustom):
        (WebCore::V8Location::replaceCallbackCustom):
        (WebCore::V8Location::assignCallbackCustom):
        (WebCore::V8Location::valueOfCallbackCustom):
        (WebCore::V8Location::toStringCallbackCustom):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::initMessageEventCallbackCustom):
        (WebCore::V8MessageEvent::webkitInitMessageEventCallbackCustom):
        * bindings/v8/custom/V8MessagePortCustom.cpp:
        (WebCore::V8MessagePort::postMessageCallbackCustom):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::V8Node::insertBeforeCallbackCustom):
        (WebCore::V8Node::replaceChildCallbackCustom):
        (WebCore::V8Node::removeChildCallbackCustom):
        (WebCore::V8Node::appendChildCallbackCustom):
        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
        (WebCore::V8NotificationCenter::requestPermissionCallbackCustom):
        * bindings/v8/custom/V8NotificationCustom.cpp:
        (WebCore::V8Notification::requestPermissionCallbackCustom):
        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
        (WebCore::V8SQLResultSetRowList::itemCallbackCustom):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallbackCustom):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallbackCustom):
        * bindings/v8/custom/V8SVGLengthCustom.cpp:
        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallbackCustom):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getBufferParameterCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getExtensionCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getParameterCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getProgramParameterCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getRenderbufferParameterCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getShaderParameterCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getTexParameterCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getUniformCallbackCustom):
        (WebCore::V8WebGLRenderingContext::getVertexAttribCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform1fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform1ivCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform2fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform2ivCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform3fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform3ivCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform4fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniform4ivCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniformMatrix2fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniformMatrix3fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::uniformMatrix4fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::vertexAttrib1fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::vertexAttrib2fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::vertexAttrib3fvCallbackCustom):
        (WebCore::V8WebGLRenderingContext::vertexAttrib4fvCallbackCustom):
        * bindings/v8/custom/V8WorkerContextCustom.cpp:
        (WebCore::V8WorkerContext::importScriptsCallbackCustom):
        (WebCore::V8WorkerContext::setTimeoutCallbackCustom):
        (WebCore::V8WorkerContext::setIntervalCallbackCustom):
        * bindings/v8/custom/V8WorkerCustom.cpp:
        (WebCore::V8Worker::postMessageCallbackCustom):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::openCallbackCustom):
        (WebCore::V8XMLHttpRequest::sendCallbackCustom):
        * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
        (WebCore::V8XSLTProcessor::setParameterCallbackCustom):
        (WebCore::V8XSLTProcessor::getParameterCallbackCustom):
        (WebCore::V8XSLTProcessor::removeParameterCallbackCustom):

2013-02-13  Praveen R Jadhav  <praveen.j@samsung.com>

        JSObject for ChannelSplitterNode and ChannelMergerNode are not created.
        https://bugs.webkit.org/show_bug.cgi?id=109542

        Reviewed by Kentaro Hara.

        "JSGenerateToJSObject" should be included in IDL files
        of ChannelSplitterNode and ChannelMergerNode in WebAudio.
        This ensures html files to access corresponding objects.

        * Modules/webaudio/ChannelMergerNode.idl:
        * Modules/webaudio/ChannelSplitterNode.idl:

2013-02-13   Vineet Chaudhary  <rgf748@motorola.com>

        [Regression] After r142831  collection-null-like-arguments.html layout test failing
        https://bugs.webkit.org/show_bug.cgi?id=109780

        Reviewed by Kentaro Hara.

        No new tests. LayoutTests/fast/dom/collection-null-like-arguments.html
        Should pass now.

        * bindings/js/JSHTMLAllCollectionCustom.cpp: Return null for namedItem() only.
        (WebCore::getNamedItems):
        (WebCore::JSHTMLAllCollection::namedItem):
        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
        (WebCore::getNamedItems):
        (WebCore::JSHTMLFormControlsCollection::namedItem):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
        (WebCore::getNamedItems):
        (WebCore::JSHTMLOptionsCollection::namedItem):

2013-02-13  Soo-Hyun Choi  <sh9.choi@samsung.com>

        Fix indentation error in MediaPlayerPrivateGStreamer.h
        https://bugs.webkit.org/show_bug.cgi?id=109768

        Reviewed by Kentaro Hara.

        No new tests as this patch just changes indentation style.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::hasVideo):
        (WebCore::MediaPlayerPrivateGStreamer::hasAudio):
        (WebCore::MediaPlayerPrivateGStreamer::engineDescription):
        (WebCore::MediaPlayerPrivateGStreamer::isLiveStream):

2013-02-13  Adam Barth  <abarth@webkit.org>

        TokenPreloadScanner should be (mostly!) thread-safe
        https://bugs.webkit.org/show_bug.cgi?id=109760

        Reviewed by Eric Seidel.

        This patch makes the bulk of TokenPreloadScanner thread-safe.  The one
        remaining wart is processPossibleBaseTag because it wants to grub
        around in the base tag's attributes. I have a plan for that, but it's
        going to need to wait for the next patch.

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::isStartTag):
        (WebCore::isStartOrEndTag):
        (WebCore::TokenPreloadScanner::identifierFor):
        (WebCore::TokenPreloadScanner::inititatorFor):
        (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
        (TokenPreloadScanner::StartTagScanner):
        (WebCore::TokenPreloadScanner::processPossibleTemplateTag):
        (WebCore::TokenPreloadScanner::processPossibleStyleTag):
        (WebCore::TokenPreloadScanner::processPossibleBaseTag):
        (WebCore::TokenPreloadScanner::scan):
        (WebCore::HTMLPreloadScanner::scan):
        * html/parser/HTMLPreloadScanner.h:
        (WebCore):

2013-02-13  Adam Barth  <abarth@webkit.org>

        StartTagScanner should be thread-safe
        https://bugs.webkit.org/show_bug.cgi?id=109750

        Reviewed by Eric Seidel.

        This patch weens the StartTagScanner off AtomicString using two
        techniques:

        1) This patch creates an enum to represent the four tag names that the
           StartTagScanner needs to understand. Using an enum is better than
           using an AtomicString because we can use the enum on both the main
           thread and on the background thread.

        2) For attributes, this patch uses threadSafeMatch. We're not able to
           use threadSafeMatch everywhere due to performance, but using it for
           attributes appears to be ok becaues we only call threadSafeMatch on
           the attributes of "interesting" tags.

        I tested the performance of this patch using
        PerformanceTests/Parser/html-parser.html and did not see any slowdown.
        (There actually appeared to be a <1% speedup, but I'm attributing that
        to noise.)

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::identifierFor):
        (WebCore):
        (WebCore::inititatorFor):
        (WebCore::StartTagScanner::StartTagScanner):
        (WebCore::StartTagScanner::processAttributes):
        (StartTagScanner):
        (WebCore::StartTagScanner::createPreloadRequest):
        (WebCore::StartTagScanner::processAttribute):
        (WebCore::StartTagScanner::charset):
        (WebCore::StartTagScanner::resourceType):
        (WebCore::StartTagScanner::shouldPreload):
        (WebCore::HTMLPreloadScanner::processToken):

2013-02-13  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: a long page is scaled vertically while loading.
        https://bugs.webkit.org/show_bug.cgi?id=109645

        Reviewed by Noam Rosenthal.

        When loading http://www.w3.org/TR/xpath-datamodel/, Coordinated Graphics draws
        vertically scaled contents. It is because there is the difference between the
        size of a layer and the size of CoordinatedBackingStore.

        Currently, CoordinatedGraphicsScene notifies the size to CoordinatedBackingStore
        at the moment of creating, updating and removing a tile. However, it is not
        necessary to send tile-related messages when the size of layer is changed.
        So this patch resets the size of CoordinatedBackingStore when receiving the
        message that is created when the size is changed: SyncLayerState.

        There is no current way to reliably test flicker issues.

        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
          Add m_pendingSize to set m_size at the moment of flushing.
          After http://webkit.org/b/108294, m_pendingSize will be removed
          because the bug makes CoordinatedGraphicsScene execute all messages at
          the moment of flushing.
        (WebCore::CoordinatedBackingStore::setSize):
        (WebCore::CoordinatedBackingStore::commitTileOperations):
        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
        (CoordinatedBackingStore):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
        (WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
        (WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
        (WebCore::CoordinatedGraphicsScene::createTile):
        (WebCore::CoordinatedGraphicsScene::removeTile):
        (WebCore::CoordinatedGraphicsScene::updateTile):

2013-02-13  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
        and XXXAccessorSetter() to XXXAttrSetterCustom()
        https://bugs.webkit.org/show_bug.cgi?id=109679

        Reviewed by Adam Barth.

        For naming consistency and clarification.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateHeaderCustomCall):
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::customAttrAttrGetter):
        (WebCore::TestObjV8Internal::customAttrAttrSetter):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
        (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
        * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
        (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        (WebCore::V8Clipboard::typesAttrGetterCustom):
        * bindings/v8/custom/V8CoordinatesCustom.cpp:
        (WebCore::V8Coordinates::altitudeAttrGetterCustom):
        (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
        (WebCore::V8Coordinates::headingAttrGetterCustom):
        (WebCore::V8Coordinates::speedAttrGetterCustom):
        * bindings/v8/custom/V8CustomEventCustom.cpp:
        (WebCore::V8CustomEvent::detailAttrGetterCustom):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::eventAttrGetterCustom):
        (WebCore::V8DOMWindow::eventAttrSetterCustom):
        (WebCore::V8DOMWindow::locationAttrSetterCustom):
        (WebCore::V8DOMWindow::openerAttrSetterCustom):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
        (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
        (WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
        (WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
        (WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
        (WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
        (WebCore::V8Document::locationAttrGetterCustom):
        (WebCore::V8Document::locationAttrSetterCustom):
        * bindings/v8/custom/V8EventCustom.cpp:
        (WebCore::V8Event::dataTransferAttrGetterCustom):
        (WebCore::V8Event::clipboardDataAttrGetterCustom):
        * bindings/v8/custom/V8FileReaderCustom.cpp:
        (WebCore::V8FileReader::resultAttrGetterCustom):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::allAttrSetterCustom):
        * bindings/v8/custom/V8HTMLElementCustom.cpp:
        (WebCore::V8HTMLElement::itemValueAttrGetterCustom):
        (WebCore::V8HTMLElement::itemValueAttrSetterCustom):
        * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
        (WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
        (WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
        (WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
        (WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
        (WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
        (WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
        (WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
        (WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
        (WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
        (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::stateAttrGetterCustom):
        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
        (WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
        (WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
        (WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::V8Location::hashAttrSetterCustom):
        (WebCore::V8Location::hostAttrSetterCustom):
        (WebCore::V8Location::hostnameAttrSetterCustom):
        (WebCore::V8Location::hrefAttrSetterCustom):
        (WebCore::V8Location::pathnameAttrSetterCustom):
        (WebCore::V8Location::portAttrSetterCustom):
        (WebCore::V8Location::protocolAttrSetterCustom):
        (WebCore::V8Location::searchAttrSetterCustom):
        (WebCore::V8Location::reloadAttrGetterCustom):
        (WebCore::V8Location::replaceAttrGetterCustom):
        (WebCore::V8Location::assignAttrGetterCustom):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAttrGetterCustom):
        (WebCore::V8MessageEvent::portsAttrGetterCustom):
        * bindings/v8/custom/V8OscillatorNodeCustom.cpp:
        (WebCore::V8OscillatorNode::typeAttrSetterCustom):
        * bindings/v8/custom/V8PannerNodeCustom.cpp:
        (WebCore::V8PannerNode::panningModelAttrSetterCustom):
        (WebCore::V8PannerNode::distanceModelAttrSetterCustom):
        * bindings/v8/custom/V8PopStateEventCustom.cpp:
        (WebCore::V8PopStateEvent::stateAttrGetterCustom):
        * bindings/v8/custom/V8SVGLengthCustom.cpp:
        (WebCore::V8SVGLength::valueAttrGetterCustom):
        (WebCore::V8SVGLength::valueAttrSetterCustom):
        * bindings/v8/custom/V8TrackEventCustom.cpp:
        (WebCore::V8TrackEvent::trackAttrGetterCustom):
        * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
        (WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
        (WebCore::V8XMLHttpRequest::responseAttrGetterCustom):

2013-02-12  Kentaro Hara  <haraken@chromium.org>

        [V8] Generate wrapper methods for custom getters/setters
        https://bugs.webkit.org/show_bug.cgi?id=109666

        Reviewed by Adam Barth.

        Currently V8 directly calls back custom getters/setters written
        in custom binding files. This makes it impossible for code generators
        to hook custom getters/setters (e.g. Code generators cannot insert a code
        for FeatureObservation into custom getters/setters). To solve the problem,
        we should generate wrapper methods for custom getters/setters.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
        (TestInterfaceV8Internal):
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
        (WebCore):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::customAttrAttrGetter):
        (TestObjV8Internal):
        (WebCore::TestObjV8Internal::customAttrAttrSetter):
        (WebCore):

2013-02-13   Vineet Chaudhary  <rgf748@motorola.com>

        HTMLCollections namedItem() methods should return null than undefined for empty collections.
        https://bugs.webkit.org/show_bug.cgi?id=104096

        Reviewed by Kentaro Hara.

        As per specification namedItem() should return null if collection is empty.
        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlallcollection

        Test: fast/dom/htmlcollection-namedItem.html

        * bindings/js/JSHTMLAllCollectionCustom.cpp: Returning null.
        (WebCore::getNamedItems):
        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
        (WebCore::getNamedItems):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
        (WebCore::getNamedItems):
        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Ditto.
        (WebCore::V8HTMLAllCollection::namedItemCallback):
        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Ditto.
        (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: Ditto.
        (WebCore::V8HTMLOptionsCollection::namedItemCallback):

2013-02-13  Tony Gentilcore  <tonyg@chromium.org>

        Fix svg/in-html/script-write.html with threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=109495

        Reviewed by Eric Seidel.

        This patch makes the background parser's simulateTreeBuilder() more realistic.
        1. The HTMLTreeBuilder does not call the updateStateFor() setState()s when in foreign content mode so we shouldn't do it when simulating the tree builder.
        2. HTMLTreeBuilder::processTokenInForeignContent has a list of tags which exit foreign content mode. We need to respect those.
        3. Support the <foreignObject> tag which enters and leaves foreign content mode.
        4. The tree builder sets state to DataState upon a </script> tag when not in foreign content mode. We need to do the same.

        This involved creating a namespace stack where we push upon entering each namespace and pop upon leaving.
        We are in foreign content if the topmost namespace is SVG or MathML.

        This fixes svg/in-html/script-write.html and likely others.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
        * html/parser/BackgroundHTMLParser.h:
        (BackgroundHTMLParser):
        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::getAttributeItem): Returns the attribute of the given name. Necessary to test for <font> attributes in simulateTreeBuilder.
        (WebCore):
        * html/parser/CompactHTMLToken.h:
        (WebCore):
        (CompactHTMLToken):

2013-02-13  Andreas Kling  <akling@apple.com>

        Remove Element::getAttributeItem() overload that returned a mutable Attribute*.
        <http://webkit.org/b/109756>

        Reviewed by Antti Koivisto.

        Remove this to prevent callers from accidentally causing elements to convert to UniqueElementData.
        There are two call sites (Attr and HTMLSelectElement) that legitimately need to mutate Attribute
        objects in-place, they now use Element::ensureUniqueElementData()->getAttributeItem() directly instead.

        Small progression on Membuster3, mostly for peace of mind.

        * dom/Attr.cpp:
        (WebCore::Attr::elementAttribute):
        * dom/Element.h:
        (Element):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::parseAttribute):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::getPresentationAttribute):

2013-02-13  Andreas Kling  <akling@apple.com>

        Stronger ElementData pointer typing.
        <http://webkit.org/b/109752>

        Reviewed by Antti Koivisto.

        Use ShareableElementData/UniqueElementData pointers instead of generic ElementData pointers
        where possible. Moved some methods from base class into leaf classes that don't make sense
        for both classes.

        * dom/DocumentSharedObjectPool.cpp:
        (WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
        (ShareableElementDataCacheEntry):
        (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
        * dom/DocumentSharedObjectPool.h:
        (DocumentSharedObjectPool):
        * dom/Element.cpp:
        (WebCore::Element::parserSetAttributes):
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::removeAttributeInternal):
        (WebCore::Element::cloneAttributesFromElement):
        (WebCore::Element::createUniqueElementData):
        (WebCore::ShareableElementData::createWithAttributes):
        (WebCore::UniqueElementData::create):
        (WebCore::ElementData::makeUniqueCopy):
        (WebCore::UniqueElementData::makeShareableCopy):
        * dom/Element.h:
        (ElementData):
        (ShareableElementData):
        (UniqueElementData):
        (Element):
        (WebCore::Element::ensureUniqueElementData):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::rebuildPresentationAttributeStyle):

2013-02-13  Antti Koivisto  <antti@apple.com>

        Reschedule shared CFRunLoopTimer instead of reconstructing it
        https://bugs.webkit.org/show_bug.cgi?id=109765

        Reviewed by Andreas Kling and Anders Carlsson.

        Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.

        * platform/mac/SharedTimerMac.mm:
        (WebCore):
        (WebCore::PowerObserver::restartSharedTimer):
        (WebCore::sharedTimer):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):

2013-02-13  Emil A Eklund  <eae@chromium.org>

        getComputedStyle returns truncated value for margin-right
        https://bugs.webkit.org/show_bug.cgi?id=109759

        Reviewed by Tony Chang.
        
        Due to an unfortunate cast in CSSComputedStyleDeclaration::
        getPropertyCSSValue getComputedStyle returns truncated styles
        for margin-right in cases where it isn't set to a specific pixel
        value.

        Test: fast/sub-pixel/computedstylemargin.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        Change type of temporary value variable to float to prevent loss of precision.

2013-02-13  Max Vujovic  <mvujovic@adobe.com>

        [CSS Filters] Refactor filter outsets into a class
        https://bugs.webkit.org/show_bug.cgi?id=109330

        Reviewed by Dean Jackson.

        In filters related code, we're often operating on 4 ints representing the top, right,
        bottom, and left filter outsets. These outsets come from a filter like blur or drop-shadow.
        This patch packages those ints and their related operations into a class called
        IntRectExtent.

        Here are some signs that we should make a class to hold those 4 ints:
        1) In RenderLayer.cpp, we have a expandRectForFilterOutsets function, which looks like
           feature envy.
        2) RenderStyle and other classes have methods like getFilterOutsets which set the 4 ints by
           reference. The calling code has to define 4 ints, which looks bloated.
        3) To fix bug 109098, we will need to check if filter outsets changed, which sounds like a
           nice job for an inequality operator. (https://bugs.webkit.org/show_bug.cgi?id=109098)

        No new tests. No change in behavior. Just refactoring.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/IntRectExtent.h: Added.
        (WebCore):
        (IntRectExtent):
        (WebCore::IntRectExtent::IntRectExtent):
        (WebCore::IntRectExtent::top):
        (WebCore::IntRectExtent::setTop):
        (WebCore::IntRectExtent::right):
        (WebCore::IntRectExtent::setRight):
        (WebCore::IntRectExtent::bottom):
        (WebCore::IntRectExtent::setBottom):
        (WebCore::IntRectExtent::left):
        (WebCore::IntRectExtent::setLeft):
        (WebCore::IntRectExtent::expandRect):
        (WebCore::IntRectExtent::isZero):
        (WebCore::operator==):
        (WebCore::operator!=):
        (WebCore::operator+=):
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::FilterOperations::outsets):
        * platform/graphics/filters/FilterOperations.h:
        (FilterOperations):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::FilterEffectRenderer):
        (WebCore::FilterEffectRenderer::build):
        (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
        * rendering/FilterEffectRenderer.h:
        (FilterEffectRenderer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::calculateLayerBounds):
        * rendering/style/RenderStyle.h:

2013-02-13  Adam Barth  <abarth@webkit.org>

        Factor HTMLTokenScanner out of HTMLPreloadScanner
        https://bugs.webkit.org/show_bug.cgi?id=109754

        Reviewed by Eric Seidel.

        This patch is just a mechanical separation of the per-token "scanning"
        logic from HTMLPreloadScanner into a separate class.
        HTMLPreloadScanner's job is now to keep track of the input stream and
        to pump the tokenizer.

        This factorization class will let us use HTMLTokenScanner on the
        background thread (once we finish making it thread-safe). In a follow
        up patch, I'll move HTMLTokenScanner to its own file.

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::HTMLTokenScanner::HTMLTokenScanner):
        (WebCore::HTMLTokenScanner::~HTMLTokenScanner):
        (WebCore::HTMLTokenScanner::processPossibleTemplateTag):
        (WebCore::HTMLTokenScanner::processPossibleStyleTag):
        (WebCore::HTMLTokenScanner::processPossibleBaseTag):
        (WebCore::HTMLTokenScanner::scan):
        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
        (WebCore):
        (WebCore::HTMLPreloadScanner::~HTMLPreloadScanner):
        (WebCore::HTMLPreloadScanner::appendToEnd):
        (WebCore::HTMLPreloadScanner::scan):
        * html/parser/HTMLPreloadScanner.h:
        (HTMLTokenScanner):
        (WebCore::HTMLTokenScanner::setPredictedBaseElementURL):
        (HTMLPreloadScanner):
        (WebCore):

2013-02-13  Elliott Sprehn  <esprehn@chromium.org>

        ASSERT(!renderer()->needsLayout()) when calling Element::focus() with generated content
        https://bugs.webkit.org/show_bug.cgi?id=109616

        Reviewed by Julien Chaffraix.

        Test: fast/css-generated-content/quote-layout-focus-crash.html

        In some cases RenderQuote may mark itself and containing blocks as needing layout
        during a layout, but then one of it's containing blocks will mark itself as having
        finished layout so the RenderQuote and potentially some of it's ancestor renderers
        needLayout(), but the ancestors above those do not.

        Until we have proper pre-layout tasks we should just walk the list of quotes
        right before layout and mark all their ancestors as needing layout if the quote
        needs layout.

        * dom/Document.cpp:
        (WebCore::Document::updateLayout): Call markQuoteContainingBlocksForLayoutIfNeeded.
        (WebCore::Document::implicitClose): Call markQuoteContainingBlocksForLayoutIfNeeded.
        * rendering/RenderQuote.h:
        (WebCore::RenderQuote::next): Added.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::markQuoteContainingBlocksForLayoutIfNeeded): Added.
        * rendering/RenderView.h:
        (RenderView):

2013-02-13  Jer Noble  <jer.noble@apple.com>

        EME: MediaPlayer::keyNeede() should return a bool indicating whether an event listener was triggered.
        https://bugs.webkit.org/show_bug.cgi?id=109701

        Reviewed by Eric Carlson.

        Clients of MediaPlayer may need to do cleanup if calling keyNeeded()
        results in no event listener being triggered. Return a bool (like the
        v1 equivalent keyNeeded method) to indicate this.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::keyNeeded):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):

2013-02-13  Abhishek Arya  <inferno@chromium.org>

        ASSERTION FAILED: !object || object->isBox(), Bad cast in RenderBox::computeLogicalHeight
        https://bugs.webkit.org/show_bug.cgi?id=107748

        Reviewed by Levi Weintraub.

        Make sure that body renderer is not an inline-block display
        when determining that it stretches to viewport or when paginated
        content needs base height.

        Test: fast/block/body-inline-block-crash.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeLogicalHeight):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::stretchesToViewport):

2013-02-13  Shawn Singh  <shawnsingh@chromium.org>

        Fix debug assertion being triggered because we may access dirty normalFlowList.
        https://bugs.webkit.org/show_bug.cgi?id=109740

        A debug assertion in RenderLayer.h is being hit when trying to
        access the normalFlowList when it is dirty.  This is caused by a
        new recursion that I added in RenderLayerBacking::hasVisibleNonCompositingDescendant(),
        but I overlooked the need to call updateLayerListsIfNeeded()
        recursively as well.

        Reviewed by Simon Fraser.

        No test, because there's no reliable way to test this (same as bug 85512).

        * rendering/RenderLayerBacking.cpp:
        (WebCore::hasVisibleNonCompositingDescendant):
        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):

2013-02-13  Antti Koivisto  <antti@apple.com>

        Don't restart shared timer if both the current and the new fire time are in the past
        https://bugs.webkit.org/show_bug.cgi?id=109731

        Reviewed by Andreas Kling.

        In 40-50% of cases we reschedule the shared timer both the old and the new fire time have already passed. This can happen at least when rescheduling 
        a zero duration timer and when stopping a timer that was ready to fire.

        We can skip rescheduling in this case, the shared timer will fire immediately anyway.
        
        Scheduling timers calls into platform layer and can be slow. This about halves the time under setSharedTimerFireInterval in PLT3
        for ~0.1% total CPU time reduction.

        * platform/ThreadTimers.cpp:
        (WebCore::ThreadTimers::ThreadTimers):
        (WebCore::ThreadTimers::setSharedTimer):
        (WebCore::ThreadTimers::updateSharedTimer):
        (WebCore::ThreadTimers::sharedTimerFiredInternal):
        * platform/ThreadTimers.h:
        (ThreadTimers):

2013-02-13  Zan Dobersek  <zdobersek@igalia.com>

        The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
        https://bugs.webkit.org/show_bug.cgi?id=109325

        Reviewed by Anders Carlsson.

        Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
        two methods as they're provided by the C++ standard library being used.

        No new tests as there's no change in functionality.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::setDuration):
        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::totalPitchRate):
        * Modules/webaudio/AudioParam.cpp:
        (WebCore::AudioParam::setValue):
        * Modules/webaudio/AudioParamTimeline.cpp:
        (WebCore::isValidNumber):
        * Modules/webaudio/PannerNode.cpp:
        (WebCore::fixNANs):
        * bindings/js/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromValue):
        * bindings/js/JSDataViewCustom.cpp:
        (WebCore::getDataViewMember):
        * bindings/js/JSGeolocationCustom.cpp:
        (WebCore::setTimeout):
        (WebCore::setMaximumAge):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::setLength):
        * bindings/js/JSWebKitPointCustom.cpp:
        (WebCore::JSWebKitPointConstructor::constructJSWebKitPoint):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::JSFloat64Array::getByIndex):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromValue):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toInt32):
        (WebCore::toUInt32):
        * bindings/v8/custom/V8GeolocationCustom.cpp:
        (WebCore::createPositionOptions):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
        * bindings/v8/custom/V8WebKitPointCustom.cpp:
        (WebCore::V8WebKitPoint::constructorCallbackCustom):
        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::convertValueToQVariant):
        * css/WebKitCSSMatrix.cpp:
        (WebCore::WebKitCSSMatrix::translate):
        (WebCore::WebKitCSSMatrix::scale):
        (WebCore::WebKitCSSMatrix::rotate):
        (WebCore::WebKitCSSMatrix::rotateAxisAngle):
        (WebCore::WebKitCSSMatrix::skewX):
        (WebCore::WebKitCSSMatrix::skewY):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::percentLoaded):
        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
        (WebCore::HTMLMediaElement::endedPlayback):
        * html/MediaController.cpp:
        (MediaController::duration):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::clearColor):
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::addCue):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::setStartTime):
        (WebCore::TextTrackCue::setEndTime):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::adjustWindowRect):
        * page/WindowFeatures.cpp:
        (WebCore::WindowFeatures::floatFeature): Also include an opportunistic style fix.
        * platform/CalculationValue.cpp:
        (WebCore::CalculationValue::evaluate):
        * platform/Decimal.cpp:
        (WebCore::Decimal::fromDouble):
        * platform/Length.cpp:
        (WebCore::Length::nonNanCalculatedValue):
        * platform/audio/AudioResampler.cpp:
        (WebCore::AudioResampler::setRate):
        * platform/audio/DynamicsCompressorKernel.cpp:
        (WebCore::DynamicsCompressorKernel::process):
        * platform/audio/Reverb.cpp:
        (WebCore::calculateNormalizationScale):
        * platform/graphics/Font.cpp:
        (WebCore::Font::width):
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        (WebCore::MediaPlayerPrivateAVFoundation::isLiveStream):
        * platform/graphics/gpu/LoopBlinnMathUtils.cpp:
        (LoopBlinnMathUtils):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::buffered):
        (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::maxTimeSeekable):
        * platform/graphics/opentype/OpenTypeVerticalData.cpp:
        (WebCore::OpenTypeVerticalData::getVerticalTranslationsForGlyphs):
        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::clampEdgeValue):
        (WebCore::TransformationMatrix::clampedBoundsOfProjectedQuad):
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::parseCacheControlDirectives):
        * rendering/RenderMediaControlsChromium.cpp:
        (WebCore::paintMediaSlider):
        (WebCore::paintMediaVolumeSlider):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintMediaSliderTrack):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::beginElementAt):
        (WebCore::SVGAnimationElement::endElementAt):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::setCurrentTime):
        * svg/animation/SMILTime.h:
        (WebCore::SMILTime::SMILTime):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::addBeginTime):
        (WebCore::SVGSMILElement::addEndTime):
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunSubstring::evaluate):
        (WebCore::XPath::FunRound::round):
        * xml/XPathValue.cpp:
        (WebCore::XPath::Value::toBoolean): Also include an opportunistic style fix.
        (WebCore::XPath::Value::toString):

2013-02-13  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Caption menu should have only one item selected
        https://bugs.webkit.org/show_bug.cgi?id=109730

        Reviewed by Dean Jackson.

        No new tests, media/track/track-user-preferences.html was modified to test the changes.

        * CMakeLists.txt: Add CaptionUserPreferences.cpp.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_processingPreferenceChange.
        (WebCore::HTMLMediaElement::configureTextTrackGroup): Only end up with one selected track when
            called because of a preferences change.
        (WebCore::HTMLMediaElement::captionPreferencesChanged): Call setClosedCaptionsVisible instead
            of calling markCaptionAndSubtitleTracksAsUnconfigured directly.
        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Process all tracks, 
            not just track elements.
        * html/HTMLMediaElement.h:

        * page/CaptionUserPreferences.cpp: Added so the functionality can be tested in DRT.
        (WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks):
        (WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks):
        (WebCore::CaptionUserPreferences::setUserPrefersCaptions):
        (WebCore::CaptionUserPreferences::captionPreferencesChanged):
        (WebCore::CaptionUserPreferences::preferredLanguages):
        (WebCore::CaptionUserPreferences::setPreferredLanguage):
        (WebCore::CaptionUserPreferences::displayNameForTrack):
        * page/CaptionUserPreferences.h:

        * page/CaptionUserPreferencesMac.h:
        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Moved some logic
            to base class.
        (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Ditto.

2013-02-13  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] ExclusionPolygon reflex vertices should constrain the first fit location.
        https://bugs.webkit.org/show_bug.cgi?id=107568

        Reviewed by Dirk Schulze.

        The ExclusionPolygon::firstIncludedIntervalLogicalTop() method now includes offset edges
        for each of the polygon's reflex vertices. The motivation for this change is explained
        here: http://hansmuller-webkit.blogspot.com/2013/01/getting-to-point-reflex-vertices.html.

        Test: fast/exclusions/shape-inside/shape-inside-first-fit-reflex.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::isReflexVertex): Given three vertices that represent a pair of connected polygon edges, return true if the second vertex is a reflex vertex.
        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): This method now includes offset edges for reflex vertices.
        * rendering/ExclusionPolygon.h:
        (WebCore::OffsetPolygonEdge::OffsetPolygonEdge): Added a constructor for creating an OffsetPolygonEdge given a reflex vertex.
        (WebCore::OffsetPolygonEdge::edgeIndex): Changed this property from unsigned to int. Now using -1 to indicate that the offset edge doesn't correspond to a single polygon edge.

2013-02-13  Adam Barth  <abarth@webkit.org>

        CSSPreloadScanner should not depend on HTMLToken
        https://bugs.webkit.org/show_bug.cgi?id=109742

        Reviewed by Eric Seidel.

        There's no need for the CSSPreloadScanner to depend on HTMLToken. On
        the background thread, we'll likely want to use a CompactHTMLToken for
        preload scanning, so this dependency is problematic. This patch also
        teaches the CSSPreloadScanner how to scan LChars.

        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::~CSSPreloadScanner):
        (WebCore):
        (WebCore::CSSPreloadScanner::scan):
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::HTMLPreloadScanner::processToken):

2013-02-13  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Adding or removing grid items doesn't properly recompute the track sizes
        https://bugs.webkit.org/show_bug.cgi?id=109100

        Reviewed by Ojan Vafai.

        Test: fast/css-grid-layout/grid-item-removal-track-breadth-update.html

        The test uncovered several bugs in our implementation that is fixed as part
        of this change. They will be detailed below.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::logicalContentHeightForChild):
        Added this function to share the code between minContentForChild and maxContentForChild.
        Also forced a relayout in this case to avoid getting a wrong answer (e.g. the logical height
        constrained by the previous layout's grid breadth).

        (WebCore::RenderGrid::minContentForChild):
        (WebCore::RenderGrid::maxContentForChild):
        Updated to use logicalContentHeightForChild.

        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        Updated to match the specification and set max breadth to current breadth per the specification.
        This made us over-grow some cases in the test.

        (WebCore::RenderGrid::distributeSpaceToTracks):
        Updated to match the specification and use an extra variable to do the intermediate spreading. Also removed
        a now unneeded max. This fixes the case of multiple grid items in the same grid area that was completely broken.

        (WebCore::RenderGrid::layoutGridItems):
        Added a FIXME about always relaying out content sized tracks' children.

        * rendering/RenderGrid.h:
        Added logicalContentHeightForChild.

2013-02-13  Adam Barth  <abarth@webkit.org>

        Clean up some style nits in HTMLPreloadScanner
        https://bugs.webkit.org/show_bug.cgi?id=109738

        Reviewed by Tony Gentilcore.

        This patch just fixes a few style nits I noticed when reading through
        the code.

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::StartTagScanner::StartTagScanner):
        (WebCore::HTMLPreloadScanner::processPossibleStyleTag):
        (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
        * html/parser/HTMLResourcePreloader.cpp:
        (WebCore::PreloadRequest::isSafeToSendToAnotherThread):
        * html/parser/HTMLResourcePreloader.h:
        (PreloadRequest):
        (WebCore::PreloadRequest::PreloadRequest):
        (WebCore::HTMLResourcePreloader::HTMLResourcePreloader):

2013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142747.
        http://trac.webkit.org/changeset/142747
        https://bugs.webkit.org/show_bug.cgi?id=109746

        broke component build (Requested by alecf_gardening on
        #webkit).

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::pushUpdate):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::toNodeId):
        (WebCore::HeapGraphSerializer::addRootNode):
        * inspector/HeapGraphSerializer.h:
        (WebCore):
        (HeapGraphSerializer):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):

2013-02-13  Levi Weintraub  <leviw@chromium.org>

        Bidi-Isolated inlines can cause subsequent content to not be rendered
        https://bugs.webkit.org/show_bug.cgi?id=108137

        Reviewed by Eric Seidel.

        First step in fixing how inline isolates behave with collapsed spaces.
        webkit.org/b/109624 tracks the overarching issue.

        Test: fast/text/content-following-inline-isolate-with-collapsed-whitespace.html

        * rendering/InlineIterator.h:
        (WebCore::IsolateTracker::addFakeRunIfNecessary): If we enter an isolate while
        ignoring spaces, ensure we leave it considering them again. This can result in
        including spaces that should be ignored following the isolate on the line, but
        failing to do so results in those contents not being rendered at all.

2013-02-13  Andreas Kling  <akling@apple.com>

        Better names for ElementAttributeData & subclasses.
        <http://webkit.org/b/109529>

        Reviewed by Antti Koivisto.

        - ElementAttributeData => ElementData

            Because ElementAttributeData won't be a good name once we move some non-attribute related
            things to this structure.

        - ImmutableElementAttributeData => ShareableElementData

            These objects can be shared with other Elements that have the same attribute name/value pairs.

        - MutableElementAttributeData => UniqueElementData

            These objects contain data that is unique to a specific Element, and cannot be shared with
            other Elements. This is what's important about it, not that its underlying storage is mutable.

        - attributeData() -> elementData()
        - updatedAttributeData() -> elementDataWithSynchronizedAttributes()
        - ensureUpdatedAttributeData() -> ensureElementDataWithSynchronizedAttributes()
        - mutableAttributeData() -> ensureUniqueElementData()

            Ride-along renames. Much less vague than previous names IMO.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithControl):
        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
        * dom/Attr.cpp:
        (WebCore::Attr::elementAttribute):
        * dom/DocumentSharedObjectPool.cpp:
        (WebCore::ShareableElementDataCacheKey::ShareableElementDataCacheKey):
        (WebCore::ShareableElementDataCacheKey::operator!=):
        (WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
        (ShareableElementDataCacheEntry):
        (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
        * dom/DocumentSharedObjectPool.h:
        (DocumentSharedObjectPool):
        * dom/Element.cpp:
        (WebCore::Element::detachAttribute):
        (WebCore::Element::removeAttribute):
        (WebCore::Element::attributes):
        (WebCore::Element::getAttribute):
        (WebCore::Element::setAttribute):
        (WebCore::Element::setSynchronizedLazyAttribute):
        (WebCore::Element::setAttributeInternal):
        (WebCore::Element::attributeChanged):
        (WebCore::Element::classAttributeChanged):
        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
        (WebCore::Element::parserSetAttributes):
        (WebCore::Element::hasAttributes):
        (WebCore::Element::hasEquivalentAttributes):
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::removeAttributeNode):
        (WebCore::Element::removeAttributeInternal):
        (WebCore::Element::addAttributeInternal):
        (WebCore::Element::getAttributeNode):
        (WebCore::Element::getAttributeNodeNS):
        (WebCore::Element::hasAttribute):
        (WebCore::Element::hasAttributeNS):
        (WebCore::Element::computeInheritedLanguage):
        (WebCore::Element::getURLAttribute):
        (WebCore::Element::getNonEmptyURLAttribute):
        (WebCore::Element::cloneAttributesFromElement):
        (WebCore::Element::createUniqueElementData):
        (WebCore::Element::reportMemoryUsage):
        (WebCore::ElementData::deref):
        (WebCore::ElementData::ElementData):
        (WebCore::sizeForShareableElementDataWithAttributeCount):
        (WebCore::ElementData::createShareableWithAttributes):
        (WebCore::ElementData::createUnique):
        (WebCore::ShareableElementData::ShareableElementData):
        (WebCore::ShareableElementData::~ShareableElementData):
        (WebCore::UniqueElementData::UniqueElementData):
        (WebCore::ElementData::makeMutableCopy):
        (WebCore::ElementData::makeImmutableCopy):
        (WebCore::ElementData::setPresentationAttributeStyle):
        (WebCore::ElementData::addAttribute):
        (WebCore::ElementData::removeAttribute):
        (WebCore::ElementData::isEquivalent):
        (WebCore::ElementData::reportMemoryUsage):
        (WebCore::ElementData::getAttributeItemIndexSlowCase):
        * dom/Element.h:
        (ElementData):
        (WebCore::ElementData::isUnique):
        (ShareableElementData):
        (UniqueElementData):
        (WebCore::Element::getAttributeItemIndex):
        (WebCore::Element::elementData):
        (Element):
        (WebCore::Element::elementDataWithSynchronizedAttributes):
        (WebCore::Element::ensureElementDataWithSynchronizedAttributes):
        (WebCore::Element::fastHasAttribute):
        (WebCore::Element::fastGetAttribute):
        (WebCore::Element::hasAttributesWithoutUpdate):
        (WebCore::Element::idForStyleResolution):
        (WebCore::Element::classNames):
        (WebCore::Element::attributeCount):
        (WebCore::Element::attributeItem):
        (WebCore::Element::getAttributeItem):
        (WebCore::Element::updateInvalidAttributes):
        (WebCore::Element::hasID):
        (WebCore::Element::hasClass):
        (WebCore::Element::ensureUniqueElementData):
        (WebCore::ElementData::mutableAttributeVector):
        (WebCore::ElementData::immutableAttributeArray):
        (WebCore::ElementData::length):
        (WebCore::ElementData::presentationAttributeStyle):
        (WebCore::ElementData::getAttributeItem):
        (WebCore::ElementData::getAttributeItemIndex):
        (WebCore::ElementData::attributeItem):
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        (WebCore::Node::compareDocumentPosition):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::ensureMutableInlineStyle):
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::inlineStyleCSSOMWrapper):
        (WebCore::StyledElement::setInlineStyleFromString):
        (WebCore::StyledElement::styleAttributeChanged):
        (WebCore::StyledElement::inlineStyleChanged):
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyle):
        (WebCore::StyledElement::invalidateStyleAttribute):
        (WebCore::StyledElement::presentationAttributeStyle):
        * html/ClassList.cpp:
        (WebCore::ClassList::classNames):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::updateAnimatedSVGAttribute):
        * svg/SVGElement.h:
        (WebCore::SVGElement::invalidateSVGAttributes):
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):

2013-02-13  Christian Biesinger  <cbiesinger@chromium.org>

        Crash when encountering <object style="resize:both;">
        https://bugs.webkit.org/show_bug.cgi?id=109728

        See also https://code.google.com/p/chromium/issues/detail?id=175535
        This bug can be reproduced on
        http://dramalink.net/tudou.y/?xink=162601060

        Reviewed by Eric Seidel.

        Test: fast/css/resize-object-crash.html

        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint):
        Only call paintResizer() if we have a layer and canResize() is true

2013-02-13  Arko Saha  <arko@motorola.com>

        [Microdata] HTMLPropertiesCollection code cleanup
        https://bugs.webkit.org/show_bug.cgi?id=109721

        Reviewed by Ryosuke Niwa.

        Removed forward declaration of DOMStringList class.
        Removed unused findRefElements() method declaration.
        Also Removed unused parameter Element* from updatePropertyCache() method.

        No new test since no change in behavior.

        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::updateNameCache):
        * html/HTMLPropertiesCollection.h:
        (WebCore):
        (HTMLPropertiesCollection):
        (WebCore::HTMLPropertiesCollection::updatePropertyCache):

2013-02-13  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object.
        https://bugs.webkit.org/show_bug.cgi?id=109382

        Reviewed by Kenneth Russell.

        Covered by fast/canvas/webgl/oes-vertex-array-object.html

        This patch adds support for using Vertex Array Object with OpenGl.
        The patch adds support for loading necessary opengl functions
        and support for checking GL_ARB_vertex_array_object. The support
        for OES_vertex_array_object is advertised if GL_ARB_vertex_array_object is
        supported.

        * platform/graphics/OpenGLShims.cpp:
        (WebCore::initializeOpenGLShims):
        * platform/graphics/OpenGLShims.h:
        (_OpenGLFunctionTable):
        Added support for loading the necessary functions.

        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::createVertexArrayOES):
        (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
        (WebCore::Extensions3DOpenGL::isVertexArrayOES):
        (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
        (WebCore::Extensions3DOpenGL::supportsExtension):

        (WebCore):
        (WebCore::Extensions3DOpenGL::isVertexArrayObjectSupported):
        * platform/graphics/opengl/Extensions3DOpenGL.h:
        (Extensions3DOpenGL):

2013-02-13  Eberhard Graether  <egraether@google.com>

        chromium: remove CompositorHUDFontAtlas
        https://bugs.webkit.org/show_bug.cgi?id=109328

        Reviewed by James Robinson.

        After switching the HudLayer to use skia's font rendering the
        CompositorHUDFontAtlas has become obsolete. This change removes
        this class and the related WebLayerTreeView API.

        No new tests.

        * WebCore.gypi:
        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Removed.
        * platform/graphics/chromium/CompositorHUDFontAtlas.h: Removed.

2013-02-13  Dean Jackson  <dino@apple.com>

        Small update to speech bubble for captions menu [Mac]
        https://bugs.webkit.org/show_bug.cgi?id=109641

        Reviewed by Eric Carlson

        Small adjustment to the embedded SVG that draws a speech bubble
        for the captions button. Remove a polygon that was so small
        it looked like a rendering error.

        * css/mediaControlsQuickTime.css:
        (video::-webkit-media-controls-toggle-closed-captions-button):

2013-02-13  Dean Jackson  <dino@apple.com>

        Clicking outside captions menu should dismiss it
        https://bugs.webkit.org/show_bug.cgi?id=109648

        Reviewed by Eric Carlson.

        Add a virtual override to the platform-specific
        defaultEventHandler to intercept any click in the controls,
        and hide the captions menu if it is showing.

        Test: media/video-controls-captions-trackmenu-hide-on-click.html

        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsApple::defaultEventHandler): Override from MediaControls. Hide
            captions menu if a click event comes in.
        * html/shadow/MediaControlsApple.h:

2013-02-13  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Use the source id when creating new tracks
        https://bugs.webkit.org/show_bug.cgi?id=109688

        Reviewed by Adam Barth.

        This patch reuses the ids from the source when creating tracks instead of creating a new one.
        This was requested by the chromium port to greatly simplify their implementation.
        In the longer run the API should be rewritten to only use tracks instead of sources.

        Covered by existing tests.

        * platform/chromium/support/WebMediaStream.cpp:
        (WebKit::WebMediaStream::audioTracks):
        (WebKit::WebMediaStream::videoTracks):
        (WebKit::WebMediaStream::initialize):
        (WebKit):
        * platform/chromium/support/WebMediaStreamTrack.cpp:
        (WebKit::WebMediaStreamTrack::initialize):
        (WebKit):
        * platform/mediastream/MediaStreamComponent.h:
        (WebCore::MediaStreamComponent::create):
        (MediaStreamComponent):
        (WebCore::MediaStreamComponent::MediaStreamComponent):
        (WebCore):
        * platform/mediastream/MediaStreamDescriptor.h:
        (WebCore::MediaStreamDescriptor::create):
        (MediaStreamDescriptor):
        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):

2013-02-13  Eric Seidel  <eric@webkit.org>

        Use fancy new Vector-based String constructors in the WebVTT parser
        https://bugs.webkit.org/show_bug.cgi?id=109619

        Reviewed by Benjamin Poulain.

        No change in behavior. Added some FIXMEs for future perf optimization.

        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken):

2013-02-13  Morten Stenshorne  <mstensho@opera.com>

        WebKit ignores column-rules wider than column-gap
        https://bugs.webkit.org/show_bug.cgi?id=15553

        Paint column rules even if they are wider than the gap.
        Rules wider than the gap should just overlap with column contents.

        Reviewed by Eric Seidel.

        Test: fast/multicol/rule-thicker-than-gap.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintColumnRules):

2013-02-13  Philip Rogers  <pdr@google.com>

        Replace SVG bitmap cache with directly-rendered SVG
        https://bugs.webkit.org/show_bug.cgi?id=106159

        Reviewed by Tim Horton.

        This patch removes the caching of SVG bitmaps so SVG images are rendered directly. This
        enables WebKit to pass the IE Chalkboard demo in 10s on a Z620:
        http://ie.microsoft.com/testdrive/Performance/Chalkboard/

        On a simple scaled SVG benchmark similar to the IE10 Chalkboard demo
        (http://philbit.com/SvgImagePerformance/viewport.html):
            without patch: ~20FPS
            with patch: ~55FPS

        The bitmap SVG image cache had several shortcomings:
            - The bitmap cache prevented viewport rendering. (WK104693)
            - Bitmap memory usage was high. (WK106484)
            - Caching animating images was expensive.

        This change removes almost all of the SVGImageCache implementation, replacing it with
        directly-rendered SVG. Instead of caching bitmaps, an SVGImageForContainer is cached which
        is a thin wrapper around an SVG image with the associated container size and scale.
        When rendering patterns (e.g., tiled backgrounds), a temporary bitmap is used for
        performance. This change also removes the redraw timer of the old cache, instead relying
        on the SVG image to notify clients if the image changes (e.g., during animations).

        This patch fixes two existing bugs (WK99481 and WK104189) that were due to caching bitmaps
        at a fixed size. A test has been added for each of these bugs.

        Tests: svg/as-image/svg-image-scaled.html
               svg/as-image/svg-image-viewbox.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::lookupOrCreateImageForRenderer):
        (WebCore::CachedImage::setContainerSizeForRenderer):
        (WebCore::CachedImage::clear):
        (WebCore::CachedImage::changedInRect):

            SVG images are no longer special-cased here. When the SVG image changes, users are
            notified through this function, and users can then request their content to be redrawn.

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::setContainerSize):
        (WebCore::SVGImage::drawForContainer):

            drawForContainer lays out the SVG content for a specific container size and renders it.
            The logic is fairly straightforward but a note about the scales and zooms here:
                the destination rect parameter is zoomed but not scaled
                the source rect parameter is zoomed but not scaled
                the context is scaled but not zoomed
            SVGImage::draw(...) only accepts a source and destination rect but does not consider
            scale or zoom. Therefore, drawForContainer removes the zoom component from the source
            so SVGImage::draw(...) will draw from the pre-zoom source to the post-zoom destination.

        (WebCore::SVGImage::drawPatternForContainer):

            For performance, drawPatternForContainer renders the SVG content onto a bitmap, then
            has the bitmap image draw the pattern. This is necessary because drawPattern is used
            for tiling.

        (WebCore):
        (WebCore::SVGImage::startAnimation):
        (WebCore::SVGImage::stopAnimation):
        (WebCore::SVGImage::resetAnimation):
        (WebCore::SVGImage::reportMemoryUsage):
        * svg/graphics/SVGImage.h:
        (WebCore):
        (SVGImage):
        * svg/graphics/SVGImageCache.cpp:

            Instead of storing a SizeAndScales values for each renderer, a SVGImageForContainer
            is stored which is just a thin wrapper around an SVG image that contains container
            sizing information. By combining the image and size information, the two maps of
            SVGImageCache have been merged into one.

            To make this patch easier to review, SVGImageCache still exists and works similar to
            how it did before the patch. Now, SVGImageCache simply stores the SVGImageForContainers.
            In a followup patch it will be removed.

            Note: the redraw timer of SVGImageCache has been removed because animation
            invalidation is now properly propagated back to the image clients.

        (WebCore):
        (WebCore::SVGImageCache::SVGImageCache):
        (WebCore::SVGImageCache::~SVGImageCache):
        (WebCore::SVGImageCache::removeClientFromCache):
        (WebCore::SVGImageCache::setContainerSizeForRenderer):
        (WebCore::SVGImageCache::imageSizeForRenderer):

            Previously, this function returned the scaled image size which was incorrect. The image
            size is used by clients such as GraphicsContext2D to determine the source size
            for drawing the image. draw() accepts zoomed but not scaled values, so this has been
            changed.

        (WebCore::SVGImageCache::imageForRenderer):

            A FIXME has been added here to not set the scale on every lookup. This can be improved
            by setting the page scale factor in setContainerSizeForRenderer() in a future patch.

        * svg/graphics/SVGImageCache.h:
        (WebCore):
        (SVGImageCache):
        * svg/graphics/SVGImageForContainer.cpp: Added.
        (WebCore):

            SVGImageForContainer is a thin wrapper around an SVG image. The lifetime of the
            SVGImage will be longer than the image cache.

        (WebCore::SVGImageForContainer::size):

            This is the only logic in SVGImageForContainer. The size returned needs to be zoomed
            but not scaled because it is used (e.g., by RenderImage) to pass back into draw() which
            takes zoomed but not scaled values.

        (WebCore::SVGImageForContainer::draw):
        (WebCore::SVGImageForContainer::drawPattern):
        * svg/graphics/SVGImageForContainer.h: Added.
        (WebCore):
        (SVGImageForContainer):

            In a future patch SVGImageForContainer can be made immutable but without a refactoring
            for not setting the page scale factor in SVGImageCache::lookupOrCreateImageForRenderer,
            setters are needed.

        (WebCore::SVGImageForContainer::create):
        (WebCore::SVGImageForContainer::containerSize):
        (WebCore::SVGImageForContainer::pageScale):
        (WebCore::SVGImageForContainer::zoom):
        (WebCore::SVGImageForContainer::setSize):
        (WebCore::SVGImageForContainer::setZoom):
        (WebCore::SVGImageForContainer::setPageScale):
        (WebCore::SVGImageForContainer::SVGImageForContainer):
        (WebCore::SVGImageForContainer::destroyDecodedData):
        (WebCore::SVGImageForContainer::decodedSize):

2013-02-12  Antti Koivisto  <antti@apple.com>

        Avoid updating timer heap when nothing changes
        https://bugs.webkit.org/show_bug.cgi?id=109630

        Reviewed by Andreas Kling.

        When the fire time of a Timer is changed we remove it from the timer heap and reinsert it. This is pretty slow. 
        Turns out that in ~80% of cases we are already in the heap and the insertion position is the same as the 
        original position. We can check if anything is actually going to change before doing this work.
        
        This makes starting a timer ~30% faster in average, ~0.1% progression in PLT3.
        
        * platform/Timer.cpp:
        (TimerHeapLessThanFunction):
        (WebCore::TimerHeapLessThanFunction::operator()):
        (WebCore::parentHeapPropertyHolds):
        (WebCore):
        (WebCore::childHeapPropertyHolds):
        (WebCore::TimerBase::hasValidHeapPosition):
        
            The code here assumes that STL heap is a normal binary heap. If there is a different implementation
            somewhere the assertions will catch it.

        (WebCore::TimerBase::updateHeapIfNeeded):
        
            Skip updating the heap if it is already valid.

        (WebCore::TimerBase::setNextFireTime):
        * platform/Timer.h:
        (TimerBase):

2013-02-13  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove remaining dead code from the GLib unicode backend
        https://bugs.webkit.org/show_bug.cgi?id=109707

        Reviewed by Philippe Normand.

        * platform/KURL.cpp:
        (WebCore::appendEncodedHostname):
        * platform/text/TextEncoding.cpp:
        (WebCore::TextEncoding::encode):
        * platform/text/TextEncodingRegistry.cpp:
        (WebCore::buildBaseTextCodecMaps):
        (WebCore::extendTextCodecMaps):

2013-02-13  Xianzhu Wang  <wangxianzhu@chromium.org>

        Heap-use-after-free in WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects
        https://bugs.webkit.org/show_bug.cgi?id=108695

        See comments of RenderLayerModelObject::willBeDestroyed() below for details.

        Reviewed by Abhishek Arya.

        Test: ManulTests/scrolling-coordinator-viewport-constrained-crash.html
        Unable to write a normal layout test because
        1) must waitUntilDone() to reproduce the crash but the redirected URL can't notifyDone();
        2) Can't use a frame to contain the test because ScrollingCoordinator handles only the main frame.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::willBeDestroyed): Moved removeViewportConstrainedObject() call into RenderLayerModelObject::willBeDestroyed() because only RenderLayerModelObjects can be added as viewportConstrainedObjects.
        * rendering/RenderLayerModelObject.cpp:
        (WebCore::RenderLayerModelObject::willBeDestroyed): Changed this->view() (then view->frameView()) to this->frame() (then frame->view()) because when willBeDestroyed() is called, the document has set its renderView to 0 thus this->view() will return 0, causing removeViewportConstrainedObject() not called and a deleted RenderLayerModelObject in FrameView's viewportConstrainedObjects.

2013-02-13  Florin Malita  <fmalita@chromium.org>

        [SVG] OOB access in SVGListProperty::replaceItemValues()
        https://bugs.webkit.org/show_bug.cgi?id=109293

        Replacing a list property item with itself should be a no-op. This patch updates the related
        APIs and logic to detect the self-replace case and prevent removal of the item from the list.

        To avoid scanning the list multiple times, removeItemFromList() is updated to operate on
        indices and a findItem() method is added to resolve an item to an index.

        Reviewed by Dirk Schulze.

        No new tests: updated existing tests cover the change.

        * svg/properties/SVGAnimatedListPropertyTearOff.h:
        (WebCore::SVGAnimatedListPropertyTearOff::findItem):
        (SVGAnimatedListPropertyTearOff):
        (WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
        * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
        (WebCore::SVGAnimatedPathSegListPropertyTearOff::findItem):
        (SVGAnimatedPathSegListPropertyTearOff):
        (WebCore::SVGAnimatedPathSegListPropertyTearOff::removeItemFromList):
        Add a findItem() delegating method, and update removeItemFromList() to use the new
        index-based API.

        * svg/properties/SVGListProperty.h:
        (WebCore::SVGListProperty::insertItemBeforeValues):
        (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
        (WebCore::SVGListProperty::replaceItemValues):
        (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
        (SVGListProperty):
        Updated to handle the no-op case for insertItemBefore() & replaceItem().

        * svg/properties/SVGListPropertyTearOff.h:
        (WebCore::SVGListPropertyTearOff::findItem):
        (WebCore::SVGListPropertyTearOff::removeItemFromList):
        Index-based API updates.

        (WebCore::SVGListPropertyTearOff::processIncomingListItemValue):
        (WebCore::SVGListPropertyTearOff::processIncomingListItemWrapper):
        * svg/properties/SVGPathSegListPropertyTearOff.cpp:
        (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemValue):
        Detect the self-replace case and return without removing the item from the list.

        * svg/properties/SVGPathSegListPropertyTearOff.h:
        (WebCore::SVGPathSegListPropertyTearOff::findItem):
        (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
        (SVGPathSegListPropertyTearOff):
        (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemWrapper):
        * svg/properties/SVGStaticListPropertyTearOff.h:
        (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemValue):
        (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemWrapper):
        Index-based API updates.

2013-02-13  Takashi Sakamoto  <tasak@google.com>

        [Refactoring] StyleResolver::State should have methods to access its member variables.
        https://bugs.webkit.org/show_bug.cgi?id=108563

        Reviewed by Antti Koivisto.

        Made all member variables private and added methods to access the
        variables, because most of the member variables are read-only.
        We don't need to update those read-only variables while resolving
        styles.

        No new tests, because just refactoring.

        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::collectMatchingRulesForRegion):
        (WebCore::StyleResolver::sortAndTransferMatchedRules):
        (WebCore::StyleResolver::matchScopedAuthorRules):
        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
        (WebCore::StyleResolver::matchHostRules):
        (WebCore::StyleResolver::matchAuthorRules):
        (WebCore::StyleResolver::matchUserRules):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::sortMatchedRules):
        (WebCore::StyleResolver::matchAllRules):
        (WebCore::StyleResolver::State::initElement):
        (WebCore::StyleResolver::initElement):
        Modified to invoke m_state.initElement if a given element is
        different from current m_state's element.
        (WebCore::StyleResolver::State::initForStyleResolve):
        Moved from StyleResolver.
        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
        (WebCore::StyleResolver::canShareStyleWithControl):
        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::locateSharedStyle):
        (WebCore::StyleResolver::styleForElement):
        (WebCore::StyleResolver::styleForKeyframe):
        (WebCore::StyleResolver::keyframeStylesForAnimation):
        (WebCore::StyleResolver::pseudoStyleForElement):
        Changed ASSERT in the first line. ASSERT(m_state.parentStyle) would be
        wrong, because it depends on previous resolving. However,
        initForStyleResolve will also update m_state.parentStyle. No code in
        pseudoStyleForElement depends on previous resolving state.
        (WebCore::StyleResolver::styleForPage):
        (WebCore::StyleResolver::defaultStyleForElement):
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::StyleResolver::updateFont):
        (WebCore::StyleResolver::pseudoStyleRulesForElement):
        (WebCore::StyleResolver::ruleMatches):
        Added one more parameter, dynamicPseudo, because dynamicPseudo in
        State class is just used for returning matched pseudo style from
        this ruleMatches to collectMatchingRulesForList. No need to keep
        dynamicPseudo while resolving styles.
        (WebCore::StyleResolver::checkRegionSelector):
        Removed m_pseudoStyle = NOPSEUDO, because this method uses just
        SelectorChecker::matched. SelectorChecker doesn't see StyleResolver's
        m_pseudoStyle directly. Need to use SelectorCheckerContext. So no
        need to set m_pseudoStyle to be NOPSEUDO.
        (WebCore::StyleResolver::applyProperties):
        (WebCore::StyleResolver::applyMatchedProperties):
        (WebCore::StyleResolver::isLeftPage):
        (WebCore::StyleResolver::applyPropertyToStyle):
        (WebCore::StyleResolver::useSVGZoomRules):
        (WebCore::createGridTrackBreadth):
        (WebCore::StyleResolver::resolveVariables):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::cachedOrPendingFromValue):
        (WebCore::StyleResolver::generatedOrPendingFromValue):
        (WebCore::StyleResolver::setOrPendingFromValue):
        (WebCore::StyleResolver::cursorOrPendingFromValue):
        (WebCore::StyleResolver::checkForTextSizeAdjust):
        (WebCore::StyleResolver::initializeFontStyle):
        (WebCore::StyleResolver::setFontSize):
        (WebCore::StyleResolver::colorFromPrimitiveValue):
        (WebCore::StyleResolver::loadPendingSVGDocuments):
        (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
        (WebCore::StyleResolver::loadPendingShaders):
        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
        (WebCore::StyleResolver::createFilterOperations):
        (WebCore::StyleResolver::loadPendingImage):
        (WebCore::StyleResolver::loadPendingImages):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::style):
        (WebCore::StyleResolver::parentStyle):
        (WebCore::StyleResolver::rootElementStyle):
        (WebCore::StyleResolver::element):
        (WebCore::StyleResolver::hasParentNode):
        (StyleResolver):
        (WebCore::StyleResolver::State::State):
        (State):
        (WebCore::StyleResolver::State::clear):
        Modified to use clear at the end of styleForElement.
        (WebCore::StyleResolver::State::document):
        (WebCore::StyleResolver::State::element):
        (WebCore::StyleResolver::State::styledElement):
        (WebCore::StyleResolver::State::setStyle):
        (WebCore::StyleResolver::State::style):
        (WebCore::StyleResolver::State::takeStyle):
        (WebCore::StyleResolver::State::ensureRuleList):
        (WebCore::StyleResolver::State::takeRuleList):
        (WebCore::StyleResolver::State::parentNode):
        (WebCore::StyleResolver::State::setParentStyle):
        (WebCore::StyleResolver::State::parentStyle):
        (WebCore::StyleResolver::State::rootElementStyle):
        (WebCore::StyleResolver::State::regionForStyling):
        (WebCore::StyleResolver::State::setSameOriginOnly):
        (WebCore::StyleResolver::State::isSameOriginOnly):
        (WebCore::StyleResolver::State::pseudoStyle):
        (WebCore::StyleResolver::State::elementLinkState):
        (WebCore::StyleResolver::State::distributedToInsertionPoint):
        (WebCore::StyleResolver::State::setElementAffectedByClassRules):
        (WebCore::StyleResolver::State::elementAffectedByClassRules):
        (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle):
        (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
        (WebCore::StyleResolver::State::applyPropertyToRegularStyle):
        (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
        (WebCore::StyleResolver::State::pendingImageProperties):
        (WebCore::StyleResolver::State::pendingSVGDocuments):
        (WebCore::StyleResolver::State::setHasPendingShaders):
        (WebCore::StyleResolver::State::hasPendingShaders):
        (WebCore::StyleResolver::State::setLineHeightValue):
        (WebCore::StyleResolver::State::lineHeightValue):
        (WebCore::StyleResolver::State::setFontDirty):
        (WebCore::StyleResolver::State::fontDirty):
        (WebCore::StyleResolver::State::cacheBorderAndBackground):
        (WebCore::StyleResolver::State::hasUAAppearance):
        (WebCore::StyleResolver::State::borderData):
        (WebCore::StyleResolver::State::backgroundData):
        (WebCore::StyleResolver::State::backgroundColor):
        (WebCore::StyleResolver::State::fontDescription):
        (WebCore::StyleResolver::State::parentFontDescription):
        (WebCore::StyleResolver::State::setFontDescription):
        (WebCore::StyleResolver::State::setZoom):
        (WebCore::StyleResolver::State::setEffectiveZoom):
        (WebCore::StyleResolver::State::setTextSizeAdjust):
        (WebCore::StyleResolver::State::setWritingMode):
        (WebCore::StyleResolver::State::setTextOrientation):
        fontDescription, ... and setTextOrientation were moved from
        StyleResolver.
        (WebCore::StyleResolver::State::matchedRules):
        (WebCore::StyleResolver::State::addMatchedRule):
        Moved from StyleResolver.
        (WebCore::StyleResolver::applyPropertyToRegularStyle):
        (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
        (WebCore::StyleResolver::fontDescription):
        (WebCore::StyleResolver::parentFontDescription):
        (WebCore::StyleResolver::setFontDescription):
        (WebCore::StyleResolver::setZoom):
        (WebCore::StyleResolver::setEffectiveZoom):
        (WebCore::StyleResolver::setTextSizeAdjust):
        (WebCore::StyleResolver::setWritingMode):
        (WebCore::StyleResolver::setTextOrientation):
        These fontDescription, ..., setTextOrientation are wrappers to
        invoke State's methods. StyleBuilder still depends on StyleResolver
        and invokes these methods. So we need these wrappers.

2013-02-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] window.open passes height and width parameters even if not defined in a page
        https://bugs.webkit.org/show_bug.cgi?id=107705

        Reviewed by Kenneth Rohde Christiansen.

        Do not override width or height of 0, as that indicates default size, and not minimum size.

        Tested by tst_qwebpage.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::adjustWindowRect):

2013-02-13  Rashmi Shyamasundar  <rashmi.s2@samsung.com>

        The 2D Canvas functions fillText()/strokeText() should display nothing when maxWidth is less then or equal to zero
        https://bugs.webkit.org/show_bug.cgi?id=102656

        Reviewed by Dirk Schulze.

        The functions fillText()/strokeText() should not display anything when 
        maxWidth is less than or equal to zero, according to spec :
        http://www.w3.org/TR/2dcontext/#text-preparation-algorithm

        Test: fast/canvas/canvas-fillText-maxWidth-zero.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawTextInternal):

2013-02-13  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] Implement basic transform animations with clutter ac backend
        https://bugs.webkit.org/show_bug.cgi?id=109363

        Reviewed by Gustavo Noronha Silva.

        Implement basic transform animation with clutter ac backend.
        GraphicsLayerClutter is almost same with GraphicsLayerCA. And PlatformClutterAnimation
        interfaces are also similar with PlatformCAAnimation, but they are implemented
        with native clutter APIs. Clutter backend AC supports a basic single transform animation
        with this patch now, but additive animation combination and keyframe animation
        are not supported yet.

        Covered by existing animation tests.

        * platform/graphics/clutter/GraphicsLayerActor.cpp:
        (graphicsLayerActorSetTransform):
        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::isTransformTypeTransformationMatrix):
        (WebCore):
        (WebCore::isTransformTypeFloatPoint3D):
        (WebCore::isTransformTypeNumber):
        (WebCore::getTransformFunctionValue):
        (WebCore::getValueFunctionNameForTransformOperation):
        (WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
        (WebCore::GraphicsLayerClutter::appendToUncommittedAnimations):
        (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
        * platform/graphics/clutter/GraphicsLayerClutter.h:
        (GraphicsLayerClutter):
        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
        (WebCore::toClutterActorPropertyString):
        (WebCore):
        (WebCore::PlatformClutterAnimation::supportsValueFunction):
        (WebCore::PlatformClutterAnimation::duration):
        (WebCore::PlatformClutterAnimation::setDuration):
        (WebCore::PlatformClutterAnimation::setAdditive):
        (WebCore::PlatformClutterAnimation::valueFunction):
        (WebCore::PlatformClutterAnimation::setValueFunction):
        (WebCore::PlatformClutterAnimation::setFromValue):
        (WebCore::PlatformClutterAnimation::setToValue):
        (WebCore::PlatformClutterAnimation::timeline):
        (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
        (WebCore::PlatformClutterAnimation::addOpacityTransition):
        (WebCore::PlatformClutterAnimation::addTransformTransition):
        (WebCore::PlatformClutterAnimation::addAnimationForKey):
        * platform/graphics/clutter/PlatformClutterAnimation.h:
        (PlatformClutterAnimation):

2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
        https://bugs.webkit.org/show_bug.cgi?id=109554

        In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
        can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.

        Drive by fix: I introduced a client interface for the HeapGraphSerializer.
        It helps me to do the tests for the serializer.

        Reviewed by Yury Semikhatsky.

        It is covered by newly added tests in TestWebKitAPI.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::pushUpdate):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::toNodeId):
        (WebCore::HeapGraphSerializer::addRootNode):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializer):
        (Client):
        (WebCore::HeapGraphSerializer::Client::~Client):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):

2013-02-13  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: add experimental native heap graph to Timeline panel
        https://bugs.webkit.org/show_bug.cgi?id=109687

        Reviewed by Alexander Pavlov.

        Added experimentatl support for native heap graph on the Timeline panel.
        Native memory usage data is collected after each top level task and can
        be displayed instead of DOM counters graph on the Timeline panel if
        corresponding experiment is enabled in the inspector settings.

        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorTimelineAgent.cpp:
        (TimelineAgentState):
        (WebCore::InspectorTimelineAgent::setIncludeDomCounters):
        (WebCore):
        (WebCore::InspectorTimelineAgent::setIncludeNativeMemoryStatistics):
        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
        (WebCore::InspectorTimelineAgent::setDOMCounters):
        (WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:
        (WebCore):
        (WebCore::InspectorTimelineAgent::create):
        (InspectorTimelineAgent):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics):
        * inspector/front-end/NativeMemoryGraph.js:
        (WebInspector.NativeMemoryGraph):
        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/TimelinePanel.js:

2013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Fixed colorpicker editing and scrolling.
        https://bugs.webkit.org/show_bug.cgi?id=109434.

        Reviewed by Alexander Pavlov.

        The color picker scrolling logic relied on the fixed DOM structure which changed with the introduction of
        SidebarPaneStack (https://bugs.webkit.org/show_bug.cgi?id=108183).
        Added a special CSS class to mark the scroll target.

        No new tests.

        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane):
 
2013-02-13  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix js compilation warnings in TextPrompt
        https://bugs.webkit.org/show_bug.cgi?id=109685

        Reviewed by Alexander Pavlov.

        Mark last argument of _applySuggestion function as optional.

        No new tests: no change in behaviour.

        * inspector/front-end/TextPrompt.js:

2013-02-13  Pablo Flouret  <pablof@motorola.com>

        Implement css-conditional's CSS.supports()
        https://bugs.webkit.org/show_bug.cgi?id=100324

        Reviewed by Antti Koivisto.

        http://dev.w3.org/csswg/css3-conditional/#the-css-interface

        The supports() method provides the css @supports rule's corresponding
        dom api.
        The patch also adds the CSS interface on DOMWindow, which holds "useful
        CSS-related functions that do not belong elsewhere". This is where
        supports() lives.

        Test: css3/supports-dom-api.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/gobject/GNUmakefile.am:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipFunction):
            Add DOMWindowCSS.* to the build systems.

        * bindings/scripts/CodeGenerator.pm:
        (WK_lcfirst):
            Handle CSS prefixes correctly (s/cSS/css/).

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::CSSParser):
        (WebCore::CSSParser::parseSupportsCondition):
        (WebCore::CSSParser::detectAtToken):
        * css/CSSParser.h:
            webkit_supports_condition parses just the condition part of an
            @supports rule and evaluates it, outputting whether the condition
            is supported or not.

        * css/CSSAllInOne.cpp:
        * css/DOMWindowCSS.cpp: Added.
        * css/DOMWindowCSS.h: Added.
        * css/DOMWindowCSS.idl: Added.
            The CSS interface object.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::css):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:
            window.CSS

2013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Simplify SplitView to rely more on CSS
        https://bugs.webkit.org/show_bug.cgi?id=109426

        Reviewed by Vsevolod Vlasov.

        Simplified Javascript code by moving large part of the layout logic into CSS rules. The patch is larger than it
        should be because one of the clients (TimelinePanel) is breaking SplitView incapsulation by reparenting its
        resizer.

        No new tests.

        * inspector/front-end/SidebarView.js:
        (WebInspector.SidebarView):
        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView):
        (WebInspector.SplitView.prototype._innerSetVertical):
        (WebInspector.SplitView.prototype.setSecondIsSidebar):
        (WebInspector.SplitView.prototype._showOnly):
        (WebInspector.SplitView.prototype._removeAllLayoutProperties):
        * inspector/front-end/TimelinePanel.js:
        * inspector/front-end/cssNamedFlows.css:
        (.css-named-flow-collections-view .split-view-sidebar):
        (.css-named-flow-collections-view .split-view-sidebar .sidebar-content):
        (.css-named-flow-collections-view .split-view-sidebar .selection):
        (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
        (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before):
        * inspector/front-end/splitView.css:
        (.split-view-contents.maximized):
        (.split-view-vertical .split-view-contents):
        (.split-view-vertical .split-view-contents-first):
        (.split-view-vertical .split-view-contents-first.maximized):
        (.split-view-vertical .split-view-contents-second):
        (.split-view-vertical .split-view-contents-second.maximized):
        (.split-view-horizontal .split-view-contents):
        (.split-view-horizontal .split-view-contents-first):
        (.split-view-horizontal .split-view-contents-first.maximized):
        (.split-view-horizontal .split-view-contents-second):
        (.split-view-horizontal .split-view-contents-second.maximized):
        (.split-view-vertical .split-view-sidebar.split-view-contents-first:not(.maximized)):
        (.split-view-vertical .split-view-sidebar.split-view-contents-second:not(.maximized)):
        (.split-view-horizontal .split-view-sidebar.split-view-contents-first:not(.maximized)):
        (.split-view-horizontal .split-view-sidebar.split-view-contents-second:not(.maximized)):
        (.split-view-vertical .split-view-resizer):
        (.split-view-horizontal .split-view-resizer):
        * inspector/front-end/timelinePanel.css:
        (.timeline.split-view-vertical .split-view-resizer):
        (#timeline-container .split-view-sidebar):

2013-02-13  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r142730.
        http://trac.webkit.org/changeset/142730
        https://bugs.webkit.org/show_bug.cgi?id=109666

        chromium browser tests are failing

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (TestInterfaceV8Internal):
        (WebCore):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore):

2013-02-13  Tamas Czene  <tczene@inf.u-szeged.hu>

        OpenCL implementation of Flood SVG filters.
        https://bugs.webkit.org/show_bug.cgi?id=109580

        Reviewed by Zoltan Herczeg.

        * Target.pri:
        * platform/graphics/filters/FEFlood.h:
        (FEFlood):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
        (WebCore):
        (WebCore::PROGRAM_STR):
        (WebCore::FilterContextOpenCL::compileFill):
        (WebCore::FilterContextOpenCL::fill):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
        (FilterContextOpenCL):
        * platform/graphics/gpu/opencl/OpenCLFEFlood.cpp: Added.
        (WebCore):
        (WebCore::FEFlood::platformApplyOpenCL):

2013-02-13  Mike West  <mkwst@chromium.org>

        location.href does not throw SECURITY_ERR when accessed across origins with JSC bindings
        https://bugs.webkit.org/show_bug.cgi?id=43891

        Reviewed by Adam Barth.

        Other browsers (IE, Firefox, and Opera) throw an exception when accessing
        properties of a Location object across origins, as the spec suggests[1].
        WebKit is currently the outlier.

        This has a few negative effects: developers are forced to hack around
        access violations in two ways rather than having a single code path, and
        (more annoyingly) developers are unable to avoid generating the error
        message. See every ad on the internet for the effect on the console. :)

        This patch adds a SECURITY_ERR exception to these access violations,
        which is the first step towards getting rid of the console spam. Getting
        rid of the message entirely will require a solution to
        http://wkbug.com/98050.

        A fairly inconclusive thread[2] on webkit-dev popped up in 2010 and
        trailed off without reaching conclusion. A more recent thread reached
        agreement that this patch seems like a reasonable thing to do[3].

        This is the JSC half of the patch. V8 is coming in http://wkbug.com/43892

        [1]: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#security-location
        [2]: https://lists.webkit.org/pipermail/webkit-dev/2010-August/013880.html
        [2]: https://lists.webkit.org/pipermail/webkit-dev/2012-February/023636.html

        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):

2013-02-13  Andrew Wilson  <atwilson@chromium.org>

        Unreviewed Chromium gyp-file cleanup after glib backend removal.
        https://bugs.webkit.org/show_bug.cgi?id=109672

        Removed references to GLib unicode backend:

        * WebCore.gypi:

2013-02-12  Kentaro Hara  <haraken@chromium.org>

        [V8] Generate wrapper methods for custom getters/setters
        https://bugs.webkit.org/show_bug.cgi?id=109666

        Reviewed by Adam Barth.

        Currently V8 directly calls back custom getters/setters written
        in custom binding files. This makes it impossible for code generators
        to hook custom getters/setters (e.g. Code generators cannot insert a code
        for FeatureObservation into custom getters/setters). We should generate
        wrapper methods for custom getters/setters.

        In the future, I will insert TRACE_EVENT() macros into these wrapper methods
        to profile DOM getters/setters/methods.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
        (TestInterfaceV8Internal):
        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
        (WebCore):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::customAttrAttrGetter):
        (TestObjV8Internal):
        (WebCore::TestObjV8Internal::customAttrAttrSetter):
        (WebCore):

2013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142611.
        http://trac.webkit.org/changeset/142611
        https://bugs.webkit.org/show_bug.cgi?id=109668

        Suggest box is not shown anymore when user types "window." in
        inspector console. (Requested by vsevik on #webkit).

        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.complete):

2013-02-13  Kentaro Hara  <haraken@chromium.org>

        [V8] There is no XXXConstructor that requires a custom getter
        https://bugs.webkit.org/show_bug.cgi?id=109667

        Reviewed by Adam Barth.

        Currently '[Custom] attribute XXXConstructor xxx' generates
        XXXAttrGetter(). However, there is no XXXConstructor with [Custom].
        In addition, it does make no sense to generate XXXAttrGetter() for such cases.
        We can remove the logic from CodeGeneratorV8.pm.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateSingleBatchedAttribute):

2013-02-12  Hajime Morrita  <morrita@google.com>

        [Internals] setShadowDOMEnabled() shouldn't be used except a few tests.
        https://bugs.webkit.org/show_bug.cgi?id=109642

        Reviewed by Kent Tamura.

        InternalSettings.setShadowDOMEnabled() shouldn't be called after
        any relevant DOM bindings are touched. However for fuzzers, it
        isn't trivial to regulate its behavior.

        This change whitelists the URL of running test for prevent
        unintended API calls. This doesn't hurt the Internals usability
        since the API is called from just a couple of tests and the number
        isn't expected to grow.

        Test: fast/dom/shadow/shadow-dom-enabled-flag-whitelist.html

        * testing/InternalSettings.cpp:
        (WebCore::urlIsWhitelisted):
        (WebCore):
        (WebCore::InternalSettings::setShadowDOMEnabled):

2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce version controller to migrate settings versions.
        https://bugs.webkit.org/show_bug.cgi?id=109553

        Reviewed by Yury Semikhatsky.

        This patch introduces version controller that could be used to migrate inspector settings.

        Test: inspector/version-controller.html

        * inspector/front-end/Settings.js:
        (WebInspector.Settings):
        (WebInspector.VersionController):
        (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
        (WebInspector.VersionController.prototype._updateVersionFrom0To1):
        * inspector/front-end/inspector.js:

2013-02-12  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove the GLib unicode backend
        https://bugs.webkit.org/show_bug.cgi?id=109627

        Reviewed by Benjamin Poulain.

        Remove references to the GLib unicode backend from WebCore.

        * GNUmakefile.list.am: Update the source list.
        * platform/text/gtk/TextBreakIteratorGtk.cpp: Removed.
        * platform/text/gtk/TextCodecGtk.cpp: Removed.
        * platform/text/gtk/TextCodecGtk.h: Removed.

2013-02-12  Chris Fleizach  <cfleizach@apple.com>

         AX: crash when accessing AccessibilityScrollbar after page has been unloaded
         https://bugs.webkit.org/show_bug.cgi?id=109524

         Reviewed by Ryosuke Niwa.

         AX clients can hold onto AccesibilityScrollbar references that reference parent
         AccessibilityScrollViews that have already gone away.

         AccessibilityScrollView is not calling detachFromParent after it is removed, which
         leads to a crash. The fix is to clearChildren() when an object is deallocated.

         I could not create a test because the crash only manifests over multiple page loads.

         * accessibility/AccessibilityObject.cpp:
         (WebCore::AccessibilityObject::detach):

2013-02-12  Hayato Ito  <hayato@chromium.org>

        Use FocusEvent.relatedTarget in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
        https://bugs.webkit.org/show_bug.cgi?id=109650

        Reviewed by Dimitri Glazkov.

        Set FocusEvent.relatedTarget in its constructor so that each
        EventDispatchMediator can use FocusEvent.relatedTarget rather than
        its redundant m_{old,new}FocusedNode member variable.

        I've also removed FIXME comments, mentioning bug 109261, since I
        can not reproduce the issue.

        No new tests. No change in functionality.

        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::create):
        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::create):
        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        (WebCore::FocusInEventDispatchMediator::create):
        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::create):
        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        * dom/FocusEvent.h:
        (FocusEventDispatchMediator):
        (BlurEventDispatchMediator):
        (FocusInEventDispatchMediator):
        (FocusOutEventDispatchMediator):
        * dom/Node.cpp:
        (WebCore::Node::dispatchFocusInEvent):
        (WebCore::Node::dispatchFocusOutEvent):
        (WebCore::Node::dispatchFocusEvent):
        (WebCore::Node::dispatchBlurEvent):

2013-02-12  Takashi Sakamoto  <tasak@google.com>

        [Refactoring] Make SelectorChecker::mode a constructor parameter.
        https://bugs.webkit.org/show_bug.cgi?id=109653

        Reviewed by Dimitri Glazkov.

        No new tests, because just refactoring.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::SelectorChecker):
        Made mode a constructor parameter.
        * css/SelectorChecker.h:
        Removed setMode.
        (SelectorChecker):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::ruleMatches):
        (WebCore::StyleResolver::checkRegionSelector):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorQuery::matches):
        (WebCore::SelectorQuery::queryAll):
        (WebCore::SelectorQuery::queryFirst):
        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorChecker::ContentSelectorChecker):

2013-02-12  Andreas Kling  <akling@apple.com>

        Remove Element::ensureAttributeData().
        <http://webkit.org/b/109643>

        Reviewed by Anders Carlsson.

        * dom/Element.h:
        * dom/Element.cpp:
        (WebCore::Element::classAttributeChanged):
        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):

            Use attributeData() instead of ensureAttributeData(), it's already guaranteed to exist in
            both these functions as they are called in response to attribute changes.

        * svg/SVGElement.h:
        (WebCore::SVGElement::invalidateSVGAttributes):

            Use mutableAttributeData() instead of ensureAttributeData() when invalidating animated
            SVG attributes. While I can't find any bugs caused by this, an element with property animations
            shouldn't share attribute data with other elements.

2013-02-12  Hayato Ito  <hayato@chromium.org>

        Make {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator type safe.
        https://bugs.webkit.org/show_bug.cgi?id=109561

        Reviewed by Dimitri Glazkov.

        Use FocusEvent rather than Event in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.

        No new tests. No change in functionality.

        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::create):
        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
        (WebCore::BlurEventDispatchMediator::create):
        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
        (WebCore::FocusInEventDispatchMediator::create):
        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
        (WebCore::FocusOutEventDispatchMediator::create):
        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
        * dom/FocusEvent.h:
        (FocusEventDispatchMediator):
        (WebCore::FocusEventDispatchMediator::event):
        (BlurEventDispatchMediator):
        (WebCore::BlurEventDispatchMediator::event):
        (FocusInEventDispatchMediator):
        (WebCore::FocusInEventDispatchMediator::event):
        (FocusOutEventDispatchMediator):
        (WebCore::FocusOutEventDispatchMediator::event):

2013-02-12  Eric Seidel  <eric@webkit.org>

        Fix HTMLToken::Attribute member naming and update callsites to use Vector-based String functions
        https://bugs.webkit.org/show_bug.cgi?id=109638

        Reviewed by Adam Barth.

        Darin Adler noted in:
        https://bugs.webkit.org/show_bug.cgi?id=109408#c4
        that HTMLToken::Attribute (then MarkupTokenBase::Attribute)
        was a struct, yet incorrectly used m_ for its public members.

        This patch fixes the members to not have the m_, and since I was
        touching all callers, I also updated all callers to use modern
        Vector-based String creation/append functions instead of manually
        calling UChar*, size_t versions.

        There should be no behavior change to this patch.  Where I saw
        performance/memory bugs, I noted them with FIXMEs to keep
        this change simple.

        * html/HTMLViewSourceDocument.cpp:
        (WebCore::HTMLViewSourceDocument::processTagToken):
        * html/parser/AtomicHTMLToken.h:
        (WebCore::AtomicHTMLToken::publicIdentifier):
        (WebCore::AtomicHTMLToken::systemIdentifier):
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        (WebCore::AtomicHTMLToken::initializeAttributes):
        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        * html/parser/HTMLMetaCharsetParser.cpp:
        (WebCore::HTMLMetaCharsetParser::processMeta):
        (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::StartTagScanner::processAttributes):
        (WebCore::HTMLPreloadScanner::scan):
        (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
        (WebCore::HTMLPreloadScanner::processToken):
        * html/parser/HTMLToken.h:
        (Range):
        (Attribute):
        (WebCore::HTMLToken::clear):
        (WebCore::HTMLToken::startIndex):
        (WebCore::HTMLToken::endIndex):
        (WebCore::HTMLToken::end):
        (WebCore::HTMLToken::nameString):
        (WebCore::HTMLToken::addNewAttribute):
        (WebCore::HTMLToken::beginAttributeName):
        (WebCore::HTMLToken::endAttributeName):
        (WebCore::HTMLToken::beginAttributeValue):
        (WebCore::HTMLToken::endAttributeValue):
        (WebCore::HTMLToken::appendToAttributeName):
        (WebCore::HTMLToken::appendToAttributeValue):
        (WebCore::HTMLToken::eraseValueOfAttribute):
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::AtomicHTMLToken::nameForAttribute):
        * html/parser/HTMLViewSourceParser.cpp:
        (WebCore::HTMLViewSourceParser::updateTokenizerState):
        * html/parser/XSSAuditor.cpp:
        (WebCore::findAttributeWithName):
        (WebCore::XSSAuditor::filterParamToken):
        (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
        (WebCore::XSSAuditor::eraseAttributeIfInjected):
        (WebCore::XSSAuditor::decodedSnippetForAttribute):

2013-02-12  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix.

        * editing/Editor.h:
        (WebCore::Editor::avoidIntersectionWithDeleteButtonController):

2013-02-12  Nate Chapin  <japhet@chromium.org>

        REGRESSION: Reloading a local file doesn't pick up changes
        https://bugs.webkit.org/show_bug.cgi?id=109344

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/cache/reload-main-resource.php

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::load):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
        (WebCore::CachedResourceLoader::cachePolicy): Don't use subresourceCachePolicy()
            for main resources.
        * loader/cache/CachedResourceLoader.h:
        (CachedResourceLoader):

2013-02-12  Ryosuke Niwa  <rniwa@webkit.org>

        Turn avoidIntersectionWithNode into Editor member functions to encapsulate delete button controller
        https://bugs.webkit.org/show_bug.cgi?id=109549

        Reviewed by Tony Chang.

        Renamed avoidIntersectionWithNode to Editor::avoidIntersectionWithDeleteButtonController and added trivial
        implementations when delete button controllers are disabled (ENABLE_DELETION_UI is 0).

        * editing/DeleteButtonController.cpp:
        * editing/EditCommand.cpp:
        (WebCore::EditCommand::EditCommand):
        * editing/Editor.cpp:
        (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Moved from htmlediting.cpp and renamed.
        The version that takes VisibleSelection has been updated to use updatePositionForNodeRemoval to share
        mode code with that function.
        (WebCore::Editor::rangeForPoint):
        * editing/Editor.h:
        (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Added; trivial implementations.
        * editing/htmlediting.cpp:
        * editing/htmlediting.h:
        * editing/markup.cpp:
        (WebCore::createMarkupInternal): Extracted from createMarkup.
        (WebCore::createMarkup):

2013-02-12  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] Enable PAGE_VISIBILITY_API
        https://bugs.webkit.org/show_bug.cgi?id=109399

        Reviewed by David Kilzer.

        * Configurations/FeatureDefines.xcconfig:

2013-02-12  Andreas Kling  <akling@apple.com>

        Move ElementAttributeData into Element.cpp/h
        <http://webkit.org/b/109610>

        Reviewed by Anders Carlsson.

        Removed ElementAttributeData.cpp/h and moved the class itself into Element headquarters.
        In the near future, Element should be the only client of this class, and thus it won't
        be necessary for other classes to know anything about it.

        * dom/ElementAttributeData.cpp: Removed.
        * dom/ElementAttributeData.h: Removed.
        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/DocumentSharedObjectPool.cpp:
        * dom/Element.cpp:
        * dom/Element.h:
        * workers/SharedWorker.cpp:
        * Modules/webdatabase/DatabaseManager.cpp: Add ExceptionCode.h since Element.h doesn't pull it in anymore.

2013-02-12  Simon Fraser  <simon.fraser@apple.com>

        Crash when scrolling soon after page starts loading
        https://bugs.webkit.org/show_bug.cgi?id=109631
        <rdar://problem/13157533&13159627&13196727>
        
        Reviewed by Anders Carlsson.
        
        Make the scrolling tree more robust when the root state node,
        and/or scrolling node are null. This can happen if we try to
        handle a wheel event before we've done the first scrolling
        tree commit.

        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::commit): Handle the case where
        m_rootStateNode is null. We'll still commit, but the state tree
        will have no state nodes.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::handleWheelEvent): Null-check m_rootNode.
        (WebCore::ScrollingTree::commitNewTreeState): Handle a null root node.
        (WebCore::ScrollingTree::updateTreeFromStateNode): If the rood state node
        is null, just clear the map and null out the root scrolling node.
        * page/scrolling/ScrollingTree.h: m_debugInfoLayer was unused.
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView): It may be possible
        to get here before we've registered the root scroll layer, in which case scrollLayerID()
        will be 0. Assert to see if this can ever happen.
        (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText): Handle case of rootStateNode()
        being null.

2013-02-12  Raymond Toy  <rtoy@google.com>

        Synchronize setting of panner node model and processing
        https://bugs.webkit.org/show_bug.cgi?id=109599

        Reviewed by Chris Rogers.

        No new tests.

        * Modules/webaudio/PannerNode.cpp:
        (WebCore::PannerNode::process):
        (WebCore::PannerNode::setPanningModel):
        * Modules/webaudio/PannerNode.h:

2013-02-12  Dean Jackson  <dino@apple.com>

        Add class name for snapshotted plugin based on dimensions
        https://bugs.webkit.org/show_bug.cgi?id=108369

        Reviewed by Simon Fraser.

        As the size of the plugin changes, the Shadow Root for the snapshot
        might want to toggle different interfaces. Expose "tiny", "small",
        "medium" and "large" classes on the Shadow. (The dimensions are
        currently chosen fairly arbitrarily).

        Because we only know the dimensions after layout, we set up
        a post layout task to add the class. Luckily there already was
        a post layout task for plugins - I just updated it to handle
        both real and snapshotted plugins. This involved modifying
        the list of RenderEmbeddedObjects in FrameView to take generic
        RenderObjects, and decide which type they are when calling
        the update method.

        * html/HTMLPlugInImageElement.cpp: Some new dimensions for the various size thresholds.
        (WebCore::classNameForShadowRootSize): New static function that returns a class name
            after examining the size of the object.
        (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Sets the class name for
            the shadow root. This is called in the post layout task.
        (WebCore::shouldPlugInShowLabelAutomatically): Use new size names.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Ditto.
        * html/HTMLPlugInImageElement.h:
        (HTMLPlugInImageElement): New method updateSnapshotInfo.

        * page/FrameView.cpp:
        (WebCore::FrameView::addWidgetToUpdate): Change RenderEmbeddedObject* to RenderObject*.
        (WebCore::FrameView::removeWidgetToUpdate): Ditto
        (WebCore::FrameView::updateWidget): Branch based on EmbeddedObject vs SnapshottedPlugIn. Call
            plugin snapshot update if necessary.
        (WebCore::FrameView::updateWidgets): Handle both EmbeddedObject and SnapshottedPlugIn cases.
        * page/FrameView.h: Change RenderEmbeddedObject* to RenderObject* for post layout widget updates.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::layout): New virtual override. If size has changed, ask the
            FrameView to recalculate size after layout.
        * rendering/RenderSnapshottedPlugIn.h: New layout() method.

2013-02-12  Mike West  <mkwst@chromium.org>

        Implement script MIME restrictions for X-Content-Type-Options: nosniff
        https://bugs.webkit.org/show_bug.cgi?id=71851

        Reviewed by Adam Barth.

        This patch adds support for 'X-Content-Type-Options: nosniff' when
        deciding whether or not to execute a given chunk of JavaScript. If the
        header is present, script will only execute if it matches a predefined
        set of MIME types[1] that are deemed "executable". Scripts served with
        types that don't match the list will not execute.

        IE introduced this feature, and Gecko is working on an implementation[2]
        now. There's been some discussion on the WHATWG list about formalizing
        the specification for this feature[3], but nothing significant has been
        decided.

        This implementation's list of acceptible MIME types differs from IE's:
        it matches the list of supported JavaScript MIME types defined in
        MIMETypeRegistry::initializeSupportedJavaScriptMIMETypes()[4]. In
        particular, the VBScript types are not accepted, and
        'text/javascript1.{1,2,3}' are accepted, along with 'text/livescript'.

        This feature is locked tightly behind the ENABLE_NOSNIFF flag, which is
        currently only enabled on the Chromium port.

        [1]: http://msdn.microsoft.com/en-us/library/gg622941(v=vs.85).aspx
        [2]: https://bugzilla.mozilla.org/show_bug.cgi?id=471020
        [3]: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-November/037974.html
        [4]: http://trac.webkit.org/browser/trunk/Source/WebCore/platform/MIMETypeRegistry.cpp?rev=142086#L307

        Tests: http/tests/security/contentTypeOptions/invalid-content-type-options-allowed.html
               http/tests/security/contentTypeOptions/nosniff-script-allowed.html
               http/tests/security/contentTypeOptions/nosniff-script-blocked.html
               http/tests/security/contentTypeOptions/nosniff-script-without-content-type-allowed.html

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::executeScript):
            Before executing script, ensure that it shouldn't be blocked due to
            its MIME type. If it is blocked, write an error message to the
            console.
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::mimeType):
            Make scripts' MIME type available outside the context of
            CachedScript in order to correctly populate error messages we write
            to the console in ScriptElement::executeScript
        (WebCore):
        (WebCore::CachedScript::mimeTypeAllowedByNosniff):
        * loader/cache/CachedScript.h:
        (CachedScript):
            A new method which checks the resource's HTTP headers to set the
            'nosniff' disposition, and compares the resource's MIME type against
            the list of allowed executable types. Returns true iff the script
            is allowed.
        * platform/network/HTTPParsers.cpp:
        (WebCore):
        (WebCore::parseContentTypeOptionsHeader):
        * platform/network/HTTPParsers.h:
            Adds a new enum which relates the sniffable status of the resource,
            and a method to parse the HTTP header.

2013-02-12  Adam Barth  <abarth@webkit.org>

        Threaded HTML parser should pass the remaining fast/tokenizer tests
        https://bugs.webkit.org/show_bug.cgi?id=109607

        Reviewed by Eric Seidel.

        This patch fixes some edge cases involving document.write. Previously,
        we would drop input characters on the floor if the tokenizer wasn't
        able to consume them synchronously. In this patch, we send the unparsed
        characters to the background thread for consumption after rewinding the
        input stream.

        * html/parser/BackgroundHTMLInputStream.cpp:
        (WebCore::BackgroundHTMLInputStream::rewindTo):
        * html/parser/BackgroundHTMLInputStream.h:
        (BackgroundHTMLInputStream):
        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::resumeFrom):
        * html/parser/BackgroundHTMLParser.h:
        (Checkpoint):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::canTakeNextToken):
        (WebCore::HTMLDocumentParser::didFailSpeculation):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore::HTMLDocumentParser::finish):
        * html/parser/HTMLInputStream.h:
        (WebCore::HTMLInputStream::closeWithoutMarkingEndOfFile):
        (HTMLInputStream):

2013-02-12  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed buildfix for !ENABLE(INSPECTOR) platforms after r142654.

        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::scriptsEnabled):

2013-02-12  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        Remove remaining traces of Web Intents
        https://bugs.webkit.org/show_bug.cgi?id=109586

        Reviewed by Eric Seidel.

        Remove remaining traces of Web Intents as the functionality was
        removed in r142549.

        No new tests, no behavior change for layout tests.

        * GNUmakefile.features.am.in:
        * html/HTMLTagNames.in:

2013-02-12  Robert Hogan  <robert@webkit.org>

        REGRESSION(r136967): Combination of float and clear yields to bad layout
        https://bugs.webkit.org/show_bug.cgi?id=109476

        Reviewed by Levi Weintraub.

        Test: fast/block/margin-collapse/self-collapsing-block-with-float-children.html

        The change made at http://trac.webkit.org/changeset/136967 only needs to worry about the first floated
        child of a self-collapsing block. The ones that follow are not affected by its margins.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):

2013-02-12  Levi Weintraub  <leviw@chromium.org>

        ASSERTION FAILED: !object || object->isBox(), UNKNOWN in WebCore::RenderListItem::positionListMarker
        https://bugs.webkit.org/show_bug.cgi?id=108699

        Reviewed by Abhishek Arya.

        RenderListItems performs special management of its children to maintain list markers. Splitting a flow
        through a list item results in assumptions made inside RenderListItem failing, so for now, avoid splitting
        flows when inside one.

        Test: fast/multicol/span/list-multi-column-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::containingColumnsBlock):

2013-02-12  Roger Fong  <roger_fong@apple.com>

        Unreviewed Windows build fix.

        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState):
        (WebCore::Internals::Internals):

2013-02-12  Vivek Galatage  <vivek.vg@samsung.com>

        Web Inspector: JavaScript execution disabled by browser/UA should be notified to the front-end
        https://bugs.webkit.org/show_bug.cgi?id=109402

        Reviewed by Yury Semikhatsky.

        Whenever the UA/Browser changes the Script Execution state of a page, it should notify the
        inspector front-end. Added the InspectorInstrumentation method didScriptExecutionStateChange
        to achieve this. Also the state change triggered by the inspector should be ignored to avoid
        infinite loop.

        Test: inspector/script-execution-state-change-notification.html

        * inspector/Inspector.json:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::scriptsEnabledImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::scriptsEnabled):
        (WebCore):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::InspectorPageAgent):
        (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
        (WebCore::InspectorPageAgent::scriptsEnabled):
        (WebCore):
        * inspector/InspectorPageAgent.h:
        (InspectorPageAgent):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.PageDispatcher.prototype.javascriptDialogClosed):
        (WebInspector.PageDispatcher.prototype.scriptsEnabled):
        * page/Settings.cpp:
        (WebCore::Settings::setScriptEnabled):

2013-02-12  Antti Koivisto  <antti@apple.com>

        Cache timer heap pointer to timers
        https://bugs.webkit.org/show_bug.cgi?id=109597

        Reviewed by Andreas Kling.

        Accessing timer heap through thread global storage is slow (~0.1% in PLT3). We can cache the heap pointer to
        each TimerBase. There are not huge numbers of timers around so memory is not an issue and many timers are heavily reused.

        * platform/Timer.cpp:
        (WebCore::threadGlobalTimerHeap):
        (WebCore::TimerHeapReference::operator=):
        (WebCore::TimerHeapIterator::checkConsistency):
        (WebCore::TimerBase::TimerBase):
        (WebCore::TimerBase::checkHeapIndex):
        (WebCore::TimerBase::setNextFireTime):
        * platform/Timer.h:
        (WebCore::TimerBase::timerHeap):
        (TimerBase):

2013-02-12  Adam Barth  <abarth@webkit.org>

        BackgroundHTMLParser::resumeFrom should take a struct
        https://bugs.webkit.org/show_bug.cgi?id=109598

        Reviewed by Eric Seidel.

        This patch is purely a syntatic change that paves the way for fixing
        the partial-entity document.write tests. To fix those tests, we'll need
        to pass more information to resumeFrom, but we're hitting the argument
        limits in Functional.h. Rather than adding yet more arguments, this
        patch moves to a single argument that's a struct.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::resumeFrom):
        * html/parser/BackgroundHTMLParser.h:
        (Checkpoint):
        (BackgroundHTMLParser):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didFailSpeculation):

2013-02-12  Elliott Sprehn  <esprehn@chromium.org>

        rootRenderer in FrameView is really RenderView
        https://bugs.webkit.org/show_bug.cgi?id=109510

        Reviewed by Eric Seidel.

        The global function rootRenderer(FrameView*) is really just a way
        to get the RenderView from the Frame so replace it with a renderView()
        method and replace usage of the word "root" with renderView so it's
        obvious the root we're talking about is the renderView. This is an
        important distinction to make since we also have rootRenderer in the code
        for the documentElement()'s renderer and we also have a "layout root" which
        is entirely different.

        No new tests, just refactoring.

        * page/FrameView.cpp:
        (WebCore::FrameView::rootRenderer): Removed.
        (WebCore::FrameView::setFrameRect):
        (WebCore::FrameView::adjustViewSize):
        (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
        (WebCore::FrameView::updateCompositingLayersAfterLayout):
        (WebCore::FrameView::clearBackingStores):
        (WebCore::FrameView::restoreBackingStores):
        (WebCore::FrameView::usesCompositedScrolling):
        (WebCore::FrameView::layerForHorizontalScrollbar):
        (WebCore::FrameView::layerForVerticalScrollbar):
        (WebCore::FrameView::layerForScrollCorner):
        (WebCore::FrameView::tiledBacking):
        (WebCore::FrameView::scrollLayerID):
        (WebCore::FrameView::layerForOverhangAreas):
        (WebCore::FrameView::flushCompositingStateForThisFrame):
        (WebCore::FrameView::hasCompositedContent):
        (WebCore::FrameView::enterCompositingMode):
        (WebCore::FrameView::isSoftwareRenderable):
        (WebCore::FrameView::didMoveOnscreen):
        (WebCore::FrameView::willMoveOffscreen):
        (WebCore::FrameView::layout):
        (WebCore::FrameView::embeddedContentBox):
        (WebCore::FrameView::contentsInCompositedLayer):
        (WebCore::FrameView::scrollContentsFastPath):
        (WebCore::FrameView::scrollContentsSlowPath):
        (WebCore::FrameView::maintainScrollPositionAtAnchor):
        (WebCore::FrameView::scrollPositionChanged):
        (WebCore::FrameView::repaintFixedElementsAfterScrolling):
        (WebCore::FrameView::updateFixedElementsAfterScrolling):
        (WebCore::FrameView::visibleContentsResized):
        (WebCore::FrameView::scheduleRelayoutOfSubtree):
        (WebCore::FrameView::needsLayout):
        (WebCore::FrameView::setNeedsLayout):
        (WebCore::FrameView::performPostLayoutTasks):
        (WebCore::FrameView::updateControlTints):
        (WebCore::FrameView::paintContents):
        (WebCore::FrameView::forceLayoutForPagination):
        (WebCore::FrameView::adjustPageHeightDeprecated):
        (WebCore::FrameView::resetTrackedRepaints):
        (WebCore::FrameView::isVerticalDocument):
        (WebCore::FrameView::isFlippedDocument):
        * page/FrameView.h:
        (WebCore::FrameView::renderView): Added.

2013-02-12  Tomas Popela  <tpopela@redhat.com>

        [GTK][Introspection] GObject bindings for DataTransferItemList - one add() method must be removed from .idl
        https://bugs.webkit.org/show_bug.cgi?id=109180

        Reviewed by Xan Lopez.

        When compiling WebKit with --enable-introspection and generating GObject bindings
        for DataTransferItemList we must disable one add() method, because GObject is
        based on C and C does not allow two functions with the same name.

        No tests needed.

        * bindings/scripts/CodeGeneratorGObject.pm:

2013-02-12  Uday Kiran  <udaykiran@motorola.com>

        Background size width specified in viewport percentage units not working
        https://bugs.webkit.org/show_bug.cgi?id=109536

        Reviewed by Antti Koivisto.

        Corrected the check for viewport percentage unit while calculating
        background image width.

        Test: fast/backgrounds/size/backgroundSize-viewportPercentage-width.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateFillTileSize):

2013-02-12  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::DeleteButtonController::enable
        https://bugs.webkit.org/show_bug.cgi?id=109447

        Reviewed by Ryosuke Niwa.

        RefPtr frame pointer since it can get deleted due to mutation events
        fired inside AppendNodeCommand::doUnapply.

        No new tests. Testcase is hard to minimize due to recursive
        calls with DOMNodeRemovedFromDocument mutation event.

        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::unapply):
        (WebCore::EditCommandComposition::reapply):

2013-02-12  Eric Seidel  <eric@webkit.org>

        Remove HTMLTokenTypes header (and split out AtomicHTMLToken.h from HTMLToken.h)
        https://bugs.webkit.org/show_bug.cgi?id=109525

        Reviewed by Adam Barth.

        We no longer need a separate HTMLTokenTypes class now that NEW_XML is gone.
        However, to remove HTMLTokenTypes, I had to split AtomicHTMLToken.h from
        HTMLToken.h (to fix a circular dependancy).

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLViewSourceDocument.cpp:
        (WebCore::HTMLViewSourceDocument::addSource):
        * html/parser/AtomicHTMLToken.h: Added.
        (WebCore):
        (AtomicHTMLToken):
        (WebCore::AtomicHTMLToken::create):
        (WebCore::AtomicHTMLToken::forceQuirks):
        (WebCore::AtomicHTMLToken::type):
        (WebCore::AtomicHTMLToken::name):
        (WebCore::AtomicHTMLToken::setName):
        (WebCore::AtomicHTMLToken::selfClosing):
        (WebCore::AtomicHTMLToken::getAttributeItem):
        (WebCore::AtomicHTMLToken::attributes):
        (WebCore::AtomicHTMLToken::characters):
        (WebCore::AtomicHTMLToken::charactersLength):
        (WebCore::AtomicHTMLToken::isAll8BitData):
        (WebCore::AtomicHTMLToken::comment):
        (WebCore::AtomicHTMLToken::publicIdentifier):
        (WebCore::AtomicHTMLToken::systemIdentifier):
        (WebCore::AtomicHTMLToken::clearExternalCharacters):
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        (WebCore::AtomicHTMLToken::initializeAttributes):
        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        * html/parser/CompactHTMLToken.h:
        (WebCore::CompactHTMLToken::type):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertDoctype):
        (WebCore::HTMLConstructionSite::insertComment):
        (WebCore::HTMLConstructionSite::insertCommentOnDocument):
        (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
        (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
        (WebCore::HTMLConstructionSite::insertForeignElement):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
        * html/parser/HTMLDocumentParser.h:
        * html/parser/HTMLMetaCharsetParser.cpp:
        (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::isStartTag):
        (WebCore::isStartOrEndTag):
        (WebCore::HTMLPreloadScanner::processToken):
        * html/parser/HTMLSourceTracker.cpp:
        (WebCore::HTMLSourceTracker::start):
        (WebCore::HTMLSourceTracker::sourceForToken):
        * html/parser/HTMLStackItem.h:
        (WebCore::HTMLStackItem::HTMLStackItem):
        * html/parser/HTMLToken.h:
        (WebCore::HTMLToken::clear):
        (WebCore::HTMLToken::isUninitialized):
        (WebCore::HTMLToken::type):
        (WebCore::HTMLToken::makeEndOfFile):
        (WebCore::HTMLToken::data):
        (WebCore::HTMLToken::name):
        (WebCore::HTMLToken::appendToName):
        (WebCore::HTMLToken::forceQuirks):
        (WebCore::HTMLToken::setForceQuirks):
        (WebCore::HTMLToken::beginDOCTYPE):
        (WebCore::HTMLToken::publicIdentifier):
        (WebCore::HTMLToken::systemIdentifier):
        (WebCore::HTMLToken::setPublicIdentifierToEmptyString):
        (WebCore::HTMLToken::setSystemIdentifierToEmptyString):
        (WebCore::HTMLToken::appendToPublicIdentifier):
        (WebCore::HTMLToken::appendToSystemIdentifier):
        (WebCore::HTMLToken::selfClosing):
        (WebCore::HTMLToken::setSelfClosing):
        (WebCore::HTMLToken::beginStartTag):
        (WebCore::HTMLToken::beginEndTag):
        (WebCore::HTMLToken::addNewAttribute):
        (WebCore::HTMLToken::appendToAttributeName):
        (WebCore::HTMLToken::appendToAttributeValue):
        (WebCore::HTMLToken::attributes):
        (WebCore::HTMLToken::eraseValueOfAttribute):
        (WebCore::HTMLToken::ensureIsCharacterToken):
        (WebCore::HTMLToken::characters):
        (WebCore::HTMLToken::appendToCharacter):
        (WebCore::HTMLToken::comment):
        (WebCore::HTMLToken::beginComment):
        (WebCore::HTMLToken::appendToComment):
        (WebCore::HTMLToken::eraseCharacters):
        (HTMLToken):
        * html/parser/HTMLTokenTypes.h: Removed.
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::AtomicHTMLToken::usesName):
        (WebCore::AtomicHTMLToken::usesAttributes):
        (WebCore::HTMLTokenizer::flushBufferedEndTag):
        (WebCore::HTMLTokenizer::nextToken):
        * html/parser/HTMLTokenizer.h:
        (WebCore::HTMLTokenizer::saveEndTagNameIfNeeded):
        (WebCore::HTMLTokenizer::haveBufferedCharacterToken):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processToken):
        (WebCore::HTMLTreeBuilder::processDoctypeToken):
        (WebCore::HTMLTreeBuilder::processFakeStartTag):
        (WebCore::HTMLTreeBuilder::processFakeEndTag):
        (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
        (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
        (WebCore):
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processStartTagForInTable):
        (WebCore::HTMLTreeBuilder::processStartTag):
        (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
        (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
        (WebCore::HTMLTreeBuilder::processEndTagForInRow):
        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
        (WebCore::HTMLTreeBuilder::processEndTagForInTable):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processComment):
        (WebCore::HTMLTreeBuilder::processCharacter):
        (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
        (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
        (WebCore::HTMLTreeBuilder::defaultForInHead):
        (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
        (WebCore::HTMLTreeBuilder::defaultForAfterHead):
        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
        (WebCore::HTMLTreeBuilder::processScriptStartTag):
        (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
        * html/parser/HTMLViewSourceParser.cpp:
        (WebCore::HTMLViewSourceParser::updateTokenizerState):
        * html/parser/TextDocumentParser.cpp:
        (WebCore::TextDocumentParser::insertFakePreElement):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterToken):
        (WebCore::XSSAuditor::filterScriptToken):
        (WebCore::XSSAuditor::filterObjectToken):
        (WebCore::XSSAuditor::filterParamToken):
        (WebCore::XSSAuditor::filterEmbedToken):
        (WebCore::XSSAuditor::filterAppletToken):
        (WebCore::XSSAuditor::filterIframeToken):
        (WebCore::XSSAuditor::filterMetaToken):
        (WebCore::XSSAuditor::filterBaseToken):
        (WebCore::XSSAuditor::filterFormToken):

2013-02-12  Pablo Flouret  <pablof@motorola.com>

        Handle error recovery in @supports
        https://bugs.webkit.org/show_bug.cgi?id=103934

        Reviewed by Antti Koivisto.

        Tests 021, 024, 031, and 033 in
        http://hg.csswg.org/test/file/5f94e4b03ed9/contributors/opera/submitted/css3-conditional
        fail because there's no explicit error recovery in @support's grammar.
        Opera and Firefox pass the tests.

        No new tests, modified css3/supports{,-cssom}.html

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createSupportsRule):
        (WebCore::CSSParser::markSupportsRuleHeaderEnd):
        (WebCore::CSSParser::popSupportsRuleData):
        * css/CSSParser.h:

2013-02-12  Eric Carlson  <eric.carlson@apple.com>

        [Mac] guard against NULL languages array
        https://bugs.webkit.org/show_bug.cgi?id=109595

        Reviewed by Dean Jackson.

        No new tests, existing tests won't crash if this is correct.

        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::preferredLanguages):

2013-02-12  Emil A Eklund  <eae@chromium.org>

        TransformState::move should not round offset to int
        https://bugs.webkit.org/show_bug.cgi?id=108266

        Reviewed by Simon Fraser.
        
        Currently TransformState::move rounds the offset to the nearest
        integer values, this results in operations using TransformState
        to compute a position to misreport the location, specifically
        Element:getBoundingClientRect and repaint rects. Sizes are
        handled correctly and do not have the same problem.

        Tests: fast/sub-pixel/boundingclientrect-subpixel-margin.html
               fast/sub-pixel/clip-rect-box-consistent-rounding.html

        * page/FrameView.cpp:
        (WebCore::FrameView::convertFromRenderer):
        Change to use pixel snapping instead of enclosing box. All other
        code paths use pixelSnappedIntRect to align the rects to device
        pixels however this used enclosingIntRect (indirectly through
        the FloatQuad::enclosingBoundingBox call).
        Without the rounding in TransformState this causes repaint rects
        for elements on subpixel bounds to be too large by up to one
        pixel on each axis. For normal repaints this isn't really a
        problem but in scrollContentsSlowPath it can result in moving
        too large a rect.

        * platform/graphics/transforms/TransformState.cpp:
        (WebCore::TransformState::translateTransform):
        (WebCore::TransformState::translateMappedCoordinates):
        Change to take a LayoutSize instead of an IntSize.

        (WebCore::TransformState::move):
        (WebCore::TransformState::applyAccumulatedOffset):
        * platform/graphics/transforms/TransformState.h:
        Remove rounding logic and use original, more precise, value.

        * rendering/RenderGeometryMap.cpp:
        (WebCore::RenderGeometryMap::mapToContainer):
        Remove rounding logic and use original, more precise, value.

2013-02-12  Jessie Berlin  <jberlin@apple.com>

        Rollout r142618, it broke all the Mac builds.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::pushUpdate):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::toNodeId):
        (WebCore::HeapGraphSerializer::addRootNode):
        * inspector/HeapGraphSerializer.h:
        (WebCore):
        (HeapGraphSerializer):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):

2013-02-12  Rafael Weinstein  <rafaelw@chromium.org>

        [HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
        https://bugs.webkit.org/show_bug.cgi?id=109338

        Reviewed by Adam Barth.

        This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
        is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.

        Tests added to html5lib.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore):
        (WebCore::HTMLTreeBuilder::popAllTemplates):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processEndOfFile):
        * html/parser/HTMLTreeBuilder.h:
        (HTMLTreeBuilder):

2013-02-12  Dominic Mazzoni  <dmazzoni@google.com>

        ASSERTION FAILED: i < size(), UNKNOWN in WebCore::AccessibilityMenuListPopup::didUpdateActiveOption
        https://bugs.webkit.org/show_bug.cgi?id=109452

        Reviewed by Chris Fleizach.

        Send the accessibility childrenChanged notification in
        HTMLSelectElement::setRecalcListItems instead of in childrenChanged
        so that all possible codepaths are caught.

        Test: accessibility/insert-selected-option-into-select-causes-crash.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::childrenChanged):
        (WebCore::HTMLSelectElement::setRecalcListItems):

2013-02-12  Peter Rybin  <prybin@chromium.org>

        Web Inspector: for event listener provide handler function value in protocol and in UI
        https://bugs.webkit.org/show_bug.cgi?id=109284

        Reviewed by Yury Semikhatsky.

        The feature implies that we include a real handler function value into event listener description.
        Protocol description, inspector DOM agent (with V8 and JSC backends) and front-end is patched accordingly.

        * bindings/js/ScriptEventListener.cpp:
        (WebCore::eventListenerHandler):
        (WebCore):
        (WebCore::eventListenerHandlerScriptState):
        * bindings/js/ScriptEventListener.h:
        (WebCore):
        * bindings/v8/ScriptEventListener.cpp:
        (WebCore::eventListenerHandler):
        (WebCore):
        (WebCore::eventListenerHandlerScriptState):
        * bindings/v8/ScriptEventListener.h:
        (WebCore):
        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::getEventListenersForNode):
        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode.prototype.eventListeners):
        * inspector/front-end/EventListenersSidebarPane.js:
        (WebInspector.EventListenersSidebarPane.prototype.update):
        (.):

2013-02-12  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: add initial implementation of native memory graph to Timeline
        https://bugs.webkit.org/show_bug.cgi?id=109578

        Reviewed by Alexander Pavlov.

        This change adds inital implementation of native memory graph UI. The graph
        will be shown in the same place as DOM counters graph on the Timeline panel.

        Added NativeMemoryGraph.js that reuses parts of DOM counters graph
        implementation. MemoryStatistics.js was refactor to allow sharing
        more code between DOM counters and native memory graph.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics):
        (WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
        (WebInspector.MemoryStatistics.prototype._createCounterUIList):
        (WebInspector.MemoryStatistics.prototype._createCounterUIList.getNodeCount):
        (WebInspector.MemoryStatistics.prototype._createCounterUIList.getListenerCount):
        (WebInspector.MemoryStatistics.prototype._canvasHeight):
        (WebInspector.MemoryStatistics.prototype._updateSize):
        (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
        (WebInspector.MemoryStatistics.prototype._drawMarker):
        * inspector/front-end/NativeMemoryGraph.js: Added.
        (WebInspector.NativeMemoryGraph):
        (WebInspector.NativeMemoryCounterUI):
        (WebInspector.NativeMemoryCounterUI.prototype._hslToString):
        (WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):
        (WebInspector.NativeMemoryCounterUI.prototype.clearCurrentValueAndMarker):
        (WebInspector.NativeMemoryGraph.prototype._createCurrentValuesBar):
        (WebInspector.NativeMemoryGraph.prototype._createCounterUIList.getCounterValue):
        (WebInspector.NativeMemoryGraph.prototype._createCounterUIList):
        (WebInspector.NativeMemoryGraph.prototype._canvasHeight):
        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
        (WebInspector.NativeMemoryGraph.prototype._draw):
        (WebInspector.NativeMemoryGraph.prototype._clearCurrentValueAndMarker):
        (WebInspector.NativeMemoryGraph.prototype._updateCurrentValue):
        (WebInspector.NativeMemoryGraph.prototype._restoreImageUnderMarker):
        (WebInspector.NativeMemoryGraph.prototype._saveImageUnderMarker):
        (WebInspector.NativeMemoryGraph.prototype._drawMarker):
        (WebInspector.NativeMemoryGraph.prototype._maxCounterValue):
        (WebInspector.NativeMemoryGraph.prototype._resetTotalValues):
        (WebInspector.NativeMemoryGraph.prototype.valueGetter):
        (WebInspector.NativeMemoryGraph.prototype._drawGraph):
        (WebInspector.NativeMemoryGraph.prototype._discardImageUnderMarker):
        * inspector/front-end/TimelinePanel.js:
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/timelinePanel.css:
        (#memory-graphs-canvas-container.dom-counters .resources-dividers):
        (.memory-category-value):

2013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: refactor some reusable functionality from BraceHighlighter
        https://bugs.webkit.org/show_bug.cgi?id=109574

        Reviewed by Pavel Feldman.

        New test: inspector/editor/text-editor-brace-highlighter.html

        Extract functionality which, for given line and cursor position, will
        return position for a brace that should be highlighted. Add a layout
        test to verify brace highlighter funcionality.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.activeBraceColumnForCursorPosition):
        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
        * inspector/front-end/TextUtils.js:
        (WebInspector.TextUtils.isOpeningBraceChar):
        (WebInspector.TextUtils.isClosingBraceChar):
        (WebInspector.TextUtils.isBraceChar):

2013-02-12  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
        https://bugs.webkit.org/show_bug.cgi?id=109554

        In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
        can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.

        Drive by fix: I introduced a client interface for the HeapGraphSerializer.
        It helps me to do the tests for the serializer.

        Reviewed by Yury Semikhatsky.

        It is covered by newly added tests in TestWebKitAPI.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::pushUpdate):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::toNodeId):
        (WebCore::HeapGraphSerializer::addRootNode):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializerClient):
        (WebCore::HeapGraphSerializerClient::~HeapGraphSerializerClient):
        (HeapGraphSerializer):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):

2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce version controller to migrate settings versions.
        https://bugs.webkit.org/show_bug.cgi?id=109553

        Reviewed by Yury Semikhatsky.

        This patch introduces version controller that could be used to migrate inspector settings.

        Test: inspector/version-controller.html

        * inspector/front-end/Settings.js:
        (WebInspector.Settings):
        (WebInspector.VersionController):
        (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
        (WebInspector.VersionController.prototype._updateVersionFrom0To1):
        * inspector/front-end/inspector.js:

2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: File system should produce more verbose error messages and recover from errors
        https://bugs.webkit.org/show_bug.cgi?id=109571

        Reviewed by Alexander Pavlov.

        Error handler prints original file system call params now.
        Added callbacks to error handler to recover from errors.

        * inspector/front-end/FileSystemProjectDelegate.js:
        (WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
        (WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
        (WebInspector.FileSystemUtils.errorMessage):
        (.fileSystemLoaded):
        (.fileEntryLoaded):
        (.errorHandler):
        (WebInspector.FileSystemUtils.requestFileContent):
        (WebInspector.FileSystemUtils.setFileContent):
        (WebInspector.FileSystemUtils._readDirectory):
        (.innerCallback):
        (WebInspector.FileSystemUtils._requestEntries):

2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Get rid of unnecessary complexity in FileSystemUtil: remove _getDirectory() method.
        https://bugs.webkit.org/show_bug.cgi?id=109567

        Reviewed by Alexander Pavlov.

        The code in this method was redundant as the same result could be achieved by using File System API directly.

        * inspector/front-end/FileSystemProjectDelegate.js:

2013-02-12  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [SuggestBox] SuggestBox not hidden when prefix is empty and there is preceding input
        https://bugs.webkit.org/show_bug.cgi?id=109568

        Reviewed by Vsevolod Vlasov.

        The suggestbox would get hidden in the case of empty input, yet it should get hidden
        in the case of empty user-entered prefix (which is a wider notion.)

        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.complete):

2013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: separate SuggestBox from TextPrompt
        https://bugs.webkit.org/show_bug.cgi?id=109430

        Reviewed by Alexander Pavlov.

        Create WebInspector.SuggestBoxDelegate interface and
        refactor TextPrompt to use this interface. Separate SuggestBox into
        WebInspector.SuggestBox namespace and put it into its own file.

        No new tests: no change in behaviour.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/SuggestBox.js: Added.
        (WebInspector.SuggestBoxDelegate):
        (WebInspector.SuggestBoxDelegate.prototype.applySuggestion):
        (WebInspector.SuggestBoxDelegate.prototype.acceptSuggestion):
        (WebInspector.SuggestBoxDelegate.prototype.userEnteredText):
        (WebInspector.SuggestBox):
        (WebInspector.SuggestBox.prototype.get visible):
        (WebInspector.SuggestBox.prototype.get hasSelection):
        (WebInspector.SuggestBox.prototype._onscrollresize):
        (WebInspector.SuggestBox.prototype._updateBoxPositionWithExistingAnchor):
        (WebInspector.SuggestBox.prototype._updateBoxPosition):
        (WebInspector.SuggestBox.prototype._onboxmousedown):
        (WebInspector.SuggestBox.prototype.hide):
        (WebInspector.SuggestBox.prototype.removeFromElement):
        (WebInspector.SuggestBox.prototype._applySuggestion):
        (WebInspector.SuggestBox.prototype.acceptSuggestion):
        (WebInspector.SuggestBox.prototype._selectClosest):
        (WebInspector.SuggestBox.prototype.updateSuggestions):
        (WebInspector.SuggestBox.prototype._onItemMouseDown):
        (WebInspector.SuggestBox.prototype._createItemElement):
        (WebInspector.SuggestBox.prototype._updateItems):
        (WebInspector.SuggestBox.prototype._selectItem):
        (WebInspector.SuggestBox.prototype._canShowBox):
        (WebInspector.SuggestBox.prototype._rememberRowCountPerViewport):
        (WebInspector.SuggestBox.prototype._completionsReady):
        (WebInspector.SuggestBox.prototype.upKeyPressed):
        (WebInspector.SuggestBox.prototype.downKeyPressed):
        (WebInspector.SuggestBox.prototype.pageUpKeyPressed):
        (WebInspector.SuggestBox.prototype.pageDownKeyPressed):
        (WebInspector.SuggestBox.prototype.enterKeyPressed):
        (WebInspector.SuggestBox.prototype.tabKeyPressed):
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.userEnteredText):
        (WebInspector.TextPrompt.prototype._attachInternal):
        (WebInspector.TextPrompt.prototype._completionsReady):
        (WebInspector.TextPrompt.prototype.applySuggestion):
        (WebInspector.TextPrompt.prototype._applySuggestion):
        (WebInspector.TextPrompt.prototype.enterKeyPressed):
        (WebInspector.TextPrompt.prototype.upKeyPressed):
        (WebInspector.TextPrompt.prototype.downKeyPressed):
        (WebInspector.TextPrompt.prototype.pageUpKeyPressed):
        (WebInspector.TextPrompt.prototype.pageDownKeyPressed):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2013-02-12  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        [TexMap] Apply frames-per-second debug counter to WK1.
        https://bugs.webkit.org/show_bug.cgi?id=109540

        Reviewed by Noam Rosenthal.

        Adds basysKom copyright info to TextureMapperFPSCounter header.

        * platform/graphics/texmap/TextureMapperFPSCounter.cpp:
        * platform/graphics/texmap/TextureMapperFPSCounter.h:

2013-02-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142531.
        http://trac.webkit.org/changeset/142531
        https://bugs.webkit.org/show_bug.cgi?id=109569

        Causes html5lib/run-template layout test to crash. (Requested
        by atwilson_ on #webkit).

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
        (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
        (WebCore::HTMLTreeBuilder::processEndOfFile):
        * html/parser/HTMLTreeBuilder.h:
        (HTMLTreeBuilder):

2013-02-12  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Enable CSS image-set support in development builds
        https://bugs.webkit.org/show_bug.cgi?id=109475

        Reviewed by Martin Robinson.

        No new tests - majority of the related tests now passes.

        * GNUmakefile.features.am.in: Add the feature define for the CSS image-set feature
        with the define value defaulting to 0. The value gets overridden with 1 in development
        builds, meaning the feature is enabled under that configuration.

2013-02-12  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Enable DOM4 events constructors in development builds
        https://bugs.webkit.org/show_bug.cgi?id=109471

        Reviewed by Martin Robinson.

        No new tests - the related tests now pass.

        * GNUmakefile.features.am.in: Add the feature define for the DOM4 events
        constructors feature, its value defaulting to 0. This value is overridden
        with 1 in development builds, effectively enabling the feature.

2013-02-12  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix for the GTK port after r142595.
        Adding the TextureMapperFPSCounter files to the list of build targets
        in case of using the OpenGL texture mapper.

        * GNUmakefile.list.am:

2013-02-12  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: fix closure compiler warnings in extension server and API
        https://bugs.webkit.org/show_bug.cgi?id=109563

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ExtensionAPI.js: drive-by: make sure we fail if extensionServer is not defined in outer scope.
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype.):
        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
        * inspector/front-end/externs.js: add extensionServer

2013-02-12  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        Unreviewed. Fix !ENABLE(INSPECTOR) builds after r142575

        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::willDispatchEvent):

2013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: move showWhitespace option into experiments
        https://bugs.webkit.org/show_bug.cgi?id=109552

        Reviewed by Vsevolod Vlasov.

        Remove "show whitespace" setting and add it to experiments.

        No new tests: fixed an existing test to verify changes.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.wasShown):
        (WebInspector.TextEditorMainPanel.prototype.willHide):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):

2013-02-12  Tamas Czene  <tczene@inf.u-szeged.hu>

        Add error checking into OpenCL version of SVG filters.
        https://bugs.webkit.org/show_bug.cgi?id=107444

        Reviewed by Zoltan Herczeg.

        In case of an error the program runs through all the remaining filters by doing nothing. 
        After that deletes the results of every filter and starts software rendering.

        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore):
        (WebCore::FilterEffect::applyAll): At software rendering this is a simple inline methode, but at OpenCL rendering it releases OpenCL things. If we have an error remove filter's results and start software rendering.
        (WebCore::FilterEffect::clearResultsRecursive):
        (WebCore::FilterEffect::openCLImageToImageBuffer):
        (WebCore::FilterEffect::createOpenCLImageResult):
        (WebCore::FilterEffect::transformResultColorSpace):
        * platform/graphics/filters/FilterEffect.h:
        (FilterEffect):
        (WebCore::FilterEffect::applyAll):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
        (WebCore::FilterContextOpenCL::isFailed):
        (WebCore):
        (WebCore::FilterContextOpenCL::freeResources):
        (WebCore::FilterContextOpenCL::destroyContext):
        (WebCore::FilterContextOpenCL::compileTransformColorSpaceProgram):
        (WebCore::FilterContextOpenCL::openCLTransformColorSpace):
        (WebCore::FilterContextOpenCL::compileProgram):
        (WebCore::FilterContextOpenCL::freeResource):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
        (WebCore::FilterContextOpenCL::setInError):
        (WebCore::FilterContextOpenCL::inError):
        (FilterContextOpenCL):
        (WebCore::FilterContextOpenCL::RunKernel::RunKernel):
        (WebCore::FilterContextOpenCL::RunKernel::addArgument):
        (WebCore::FilterContextOpenCL::RunKernel::run):
        (RunKernel):
        * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:
        (WebCore::FilterContextOpenCL::compileFEColorMatrix):
        (WebCore::FEColorMatrix::platformApplyOpenCL):
        * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp:
        (WebCore::FilterContextOpenCL::compileFETurbulence):
        (WebCore::FETurbulence::platformApplyOpenCL):
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::postApplyResource):

2013-02-12  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Apply frames-per-second debug counter to WK1.
        https://bugs.webkit.org/show_bug.cgi?id=109540

        Reviewed by Noam Rosenthal.

        r142524 implemented frames-per-second debug counter on WK2. This patch
        applies frames-per-second debug counter to WK1 also.

        Visual debugging feature, no need for new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * platform/graphics/texmap/TextureMapper.h:
        * platform/graphics/texmap/TextureMapperFPSCounter.cpp: Added.
        (WebCore):
        (WebCore::TextureMapperFPSCounter::TextureMapperFPSCounter):
        (WebCore::TextureMapperFPSCounter::updateFPSAndDisplay):
        * platform/graphics/texmap/TextureMapperFPSCounter.h: Added.
        (WebCore):
        (TextureMapperFPSCounter):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore):
        (WebCore::TextureMapperGL::drawNumber):
          Rename from drawRepaintCounter to drawNumber.
        * platform/graphics/texmap/TextureMapperGL.h:
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::TextureMapperImageBuffer::drawNumber):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        (TextureMapperImageBuffer):
        * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
        (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
        (WebCore::CoordinatedBackingStore::drawRepaintCounter):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
          Move frames-per-second debug counter code to TextureMapperFPSCounter.
        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:

2013-02-11  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: stack trace is cut at native bind if inspector is closed
        https://bugs.webkit.org/show_bug.cgi?id=109427

        Reviewed by Pavel Feldman.

        Only top frame is collected instead of full stack trace when inspector
        front-end is closed to avoid expensive operations when exceptions are
        thrown.

        Test: http/tests/inspector-enabled/console-exception-while-no-inspector.html

        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::addMessageToConsole):

2013-02-12  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Mouse click not on sub-fields in multiple fields input  should not move focus
        https://bugs.webkit.org/show_bug.cgi?id=109544

        Reviewed by Kentaro Hara.

        This is similar to Bug 108914, "Should not move focus if the element
        already has focus." We fixed a focus() case in Bug 108914. However we
        still have the problem in a case of focusing by mouse click.

        The fix for Bug 108914 intercepted focus() function to change the
        behavior. However focus-by-click doesn't call focus(), but calls
        FocusController::setFocusedNode. To fix this problem, we introduce
        oldFocusedNode argument to handleFocusEvent, and
        BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent restores the
        focus to oldFocusedNode if oldFocusedNode is one of sub-fields.
        handleFocusEvent is called whenever the focused node is changed.

        We don't need InputType::willCancelFocus any more because the new code
        in handleFocusEvent covers it.

        Tests: Update fast/forms/time-multiple-fields/time-multiple-fields-focus.html.

        * html/HTMLTextFormControlElement.h:
        (WebCore::HTMLTextFormControlElement::handleFocusEvent):
        Add oldFocusedNode argument.
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
        Pass oldFocusedNode to handleFocusEvent.

        * html/HTMLInputElement.h:
        (HTMLInputElement):
         - Add oldFocusedNode argument to handleFocusEvent.
         - Remove focus() override.
        * html/HTMLInputElement.cpp: Remove focus() override.
        (WebCore::HTMLInputElement::handleFocusEvent):
        Pass oldFocusedNode to InputType::handleFocusEvent.
        * html/InputType.cpp: Remove willCancelFocus.
        (WebCore::InputType::handleFocusEvent):
        Add oldFocusedNode argument.
        * html/InputType.h:
        (InputType): Ditto.
        * html/PasswordInputType.cpp:
        (WebCore::PasswordInputType::handleFocusEvent): Ditto.
        * html/PasswordInputType.h:
        (PasswordInputType): Ditto.

        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType):
        Remove willCancelFocus, and add oldFocusedNode argument to handleFocusEvent.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent):
        Pass oldFocusedNode to DateTimeEditElement::focusByOwner if the
        direction is FocusDirectionNone.

        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement): Add oldFocusedNode argument to focusByOwner.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::focusByOwner):
        If oldFocusedNode is one of sub-fields, focus on it again.

2013-02-12  Takashi Sakamoto  <tasak@google.com>

        [Refactoring] Make m_selectorChecker in StyleResolver an on-stack object.
        https://bugs.webkit.org/show_bug.cgi?id=108595

        Reviewed by Eric Seidel.

        StyleResolver uses SelectorChecker's mode to change its resolving mode.
        However it is a state of StyleResolver. StyleResolver should have the
        mode and make SelectorChecker instance on a stack while required.

        No new tests, just refactoring.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::fastCheckRightmostSelector):
        (WebCore::SelectorChecker::fastCheck):
        (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
        (WebCore::SelectorChecker::matchesFocusPseudoClass):
        Changed to static class function, because these methods never use
        "this".
        (WebCore):
        * css/SelectorChecker.h:
        (SelectorChecker):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::collectMatchingRules):
        Now, matchesFocusPseudoClass is not a static method of
        SelectorChecker, so replaced "m_selectorChecker." with
        "SelectorChecker::".
        (WebCore::StyleResolver::sortAndTransferMatchedRules):
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::StyleResolver::pseudoStyleRulesForElement):
        Use m_mode instead of m_selectorChecker.mode().
        Also use document()->inQuirksMode() instead of
        m_selectoChecker.strictParsing().
        (WebCore::StyleResolver::ruleMatches):
        (WebCore::StyleResolver::checkRegionSelector):
        Created an on-stack SelectorChecker object and used it to check
        selectors.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::State::State):
        Added m_mode, this keeps m_selectorChecker's mode.
        (State):
        (StyleResolver):
        Removed m_selectorChecker.

2013-02-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [Qt][EFL][WebGL] Minor refactoring of GraphicsSurface/GraphicsSurfaceGLX
        https://bugs.webkit.org/show_bug.cgi?id=108686

        Reviewed by Noam Rosenthal.

        Remove unused platformSurface()/m_platformSurface from GraphicsSurface.
        Move m_texture from GraphicsSurface to GLX GraphicsSurfacePrivate to match
        Win and Mac implementations.

        No new tests, refactoring only.

        * platform/graphics/surfaces/GraphicsSurface.cpp:
        (WebCore::GraphicsSurface::GraphicsSurface):
        * platform/graphics/surfaces/GraphicsSurface.h:
        (GraphicsSurface):
        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurfacePrivate::surface):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::textureID):
        (WebCore::GraphicsSurfacePrivate::clear):
        (WebCore::GraphicsSurface::platformExport):
        (WebCore::GraphicsSurface::platformGetTextureID):
        (WebCore::GraphicsSurface::platformSwapBuffers):
        (WebCore::GraphicsSurface::platformCreate):
        (WebCore::GraphicsSurface::platformImport):
        (WebCore::GraphicsSurface::platformDestroy):

2013-02-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [EFL][WebGL] WebGL content is not painted after resizing the viewport.
        https://bugs.webkit.org/show_bug.cgi?id=106358

        Reviewed by Noam Rosenthal.

        When page size changes and layer parameters get updated LayerTreeRenderer::setLayerState
        clears the layer backing store and detaches the canvas surface from the layer. If the layer
        size is not changed then the canvas is not recreated. This leaves the canvas detached from
        the layer, but still referenced from m_surfaceBackingStores.
        Don't assign layer backing store to layer in assignImageBackingToLayer if there is a canvas
        surface already attached to the layer.

        Test: fast/canvas/webgl/webgl-layer-update.html

        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::setLayerState):
        (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:

2013-02-11  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Track language selection should be sticky
        https://bugs.webkit.org/show_bug.cgi?id=109466

        Reviewed by Dean Jackson.

        Choosing a text track from the caption menu should make that track's language the
        preferred caption language. Turning captions off from the menu should disable captions
        in videos loaded subsequently.

        OS X has system support for these settings, so changes made by DRT should not change the
        settings on the user's system. Add support for all other ports in DRT only.

        Test: media/track/track-user-preferences.html

        * WebCore.exp.in: Export PageGroup::captionPreferences().

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Use page()->group().captionPreferences().
        (WebCore::HTMLMediaElement::attach): Ditto.
        (WebCore::HTMLMediaElement::detach): Ditto.
        (WebCore::HTMLMediaElement::userPrefersCaptions): Ditto.
        (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto. Update for 
            preferredLanguageFromList change.
        (WebCore::HTMLMediaElement::toggleTrackAtIndex): Set user prefs for captions visible and
            caption language as appropriate.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Remove unneeded comment.
        (WebCore::MediaControlTextTrackContainerElement::updateSizes):  Use page()->group().captionPreferences().

        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsApple::closedCaptionTracksChanged): Update caption menu button visibility.

        * page/CaptionUserPreferences.h:
        (WebCore::CaptionUserPreferences::userPrefersCaptions): Support "testing" mode.
        (WebCore::CaptionUserPreferences::setUserPrefersCaptions): Ditto.
        (WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks): Ditto.
        (WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks): Ditto.
        (WebCore::CaptionUserPreferences::setPreferredLanguage): Ditto.
        (WebCore::CaptionUserPreferences::preferredLanguages): Ditto.
        (WebCore::CaptionUserPreferences::testingMode): Ditto.
        (WebCore::CaptionUserPreferences::setTestingMode): Ditto.
        (WebCore::CaptionUserPreferences::CaptionUserPreferences): Ditto.

        * page/CaptionUserPreferencesMac.h:
        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Support "testing" mode.
        (WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
        (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
        (WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Change name from
            registerForCaptionPreferencesChangedCallbacks. Support "testing" mode.
        (WebCore::CaptionUserPreferencesMac::unregisterForPreferencesChangedCallbacks):  Change name from
            unregisterForCaptionPreferencesChangedCallbacks. Support "testing" mode.
        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Support "testing" mode.
        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
        (WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
        (WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto. Return the platform override when set.

        * page/PageGroup.cpp:
        (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): Remove because it is already
            available from the caption preference object.
        (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
        (WebCore::PageGroup::userPrefersCaptions): Ditto.
        (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
        (WebCore::PageGroup::captionFontSizeScale): Ditto.
        * page/PageGroup.h:

        * platform/Language.cpp:
        (WebCore::preferredLanguageFromList): Take the list of preferred languages instead of assuming
            the system list.
        * platform/Language.h:

        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState): Disable caption testing mode.
        (WebCore::Internals::Internals): Enable caption testing mode so the user's system
            preferences are not modified.

2013-02-11  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Make CoordinatedGraphicsScene not know contents size.
        https://bugs.webkit.org/show_bug.cgi?id=108922

        Reviewed by Noam Rosenthal.

        Currently, CoordinatedGraphicsScene has two methods to know contents
        size: setContentsSize() and setVisibleContentsRect(). Contents size is
        used when adjusting a scroll position, but adjustment is not needed
        because EFL and Qt platform code (currently PageViewportController)
        already adjusts a scroll position, and it is natural for each platform
        to be in charge of adjusting. So this patch makes CoordinatedGraphicsScene
        not know contents size.

        In addition, now DrawingAreaProxy::coordinatedLayerTreeHostProxy() is only used
        to get CoordinatedGraphicsScene.

        This patch can only be tested manually since there is no automated
        testing facilities for in-motion touch.
        Test: ManualTests/fixed-position.html
              ManualTests/nested-fixed-position.html

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::setScrollPosition):
        (WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
        (CoordinatedGraphicsScene):

2013-02-11  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: remove the DidChangeScrollPosition message.
        https://bugs.webkit.org/show_bug.cgi?id=108051

        Reviewed by Noam Rosenthal.
        Signed off for WebKit2 by Benjamin Poulain.

        Currently, we use the DidChangeScrollPosition message to send the scroll
        position that WebCore used in this frame to UI Process. We had to have
        some member variables for the DidChangeScrollPosition message.
        However, we can send a scroll position via the DidRenderFrame message,
        because CoordinatedGraphicsScene::m_renderedContentsScrollPosition is
        updated at the moment of flushing. So we can remove the
        DidChangeScrollPosition message and some redundant member variables.

        No tests. No change in behavior.

        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::flushLayerChanges):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
        (CoordinatedGraphicsScene):

2013-02-11  Ryosuke Niwa  <rniwa@webkit.org>

        Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
        https://bugs.webkit.org/show_bug.cgi?id=109534

        Reviewed by Anders Carlsson.

        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::show):
        * editing/Editor.cpp:
        (WebCore):
        * editing/Editor.h:
        (Editor):
        * loader/EmptyClients.h:
        (WebCore::EmptyEditorClient::shouldDeleteRange):
        (EmptyEditorClient):
        (WebCore::EmptyEditorClient::shouldShowDeleteInterface):
        * page/EditorClient.h:
        (EditorClient):

2013-02-11  Hayato Ito  <hayato@chromium.org>

        Factor EventContext and introduces MouseOrFocusEventContext.
        https://bugs.webkit.org/show_bug.cgi?id=109278

        Reviewed by Dimitri Glazkov.

        To supoort Touch event retargeting (bug 107800), we have to factor
        event retargeting code so that it can support not only MouseEvent or FocusEvent,
        but also other events.

        This is the first attempt to refactor event retargeting code, a
        separated patch from bug 109156.  EventContext is now factored and
        MouseOrFocusEventContext was introduced to support MouseEvent or
        FocusEvent separately.

        In following patches, I'll introduce TouchEventContext and
        TouchEventDispatchMediator to support Touch event retargeting.

        No new tests. No change in functionality.

        * dom/EventContext.cpp:
        (WebCore::EventContext::EventContext): Factor relatedTarget out from EventContext into MouseOrFocusEventContext.
        (WebCore::EventContext::~EventContext):
        (WebCore):
        (WebCore::EventContext::handleLocalEvents):
        (WebCore::EventContext::isMouseOrFocusEventContext):
        (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext):  New. Handles MouseEvent's (or FocusEvent's) relatedTarget retargeting.
        (WebCore::MouseOrFocusEventContext::~MouseOrFocusEventContext):
        (WebCore::MouseOrFocusEventContext::handleLocalEvents):
        (WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext):
        * dom/EventContext.h:
        (EventContext):
        (WebCore::EventContext::node):
        (WebCore::EventContext::target):
        (WebCore::EventContext::currentTargetSameAsTarget):
        (WebCore):
        (MouseOrFocusEventContext):
        (WebCore::MouseOrFocusEventContext::relatedTarget):
        (WebCore::MouseOrFocusEventContext::setRelatedTarget):
        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedTargetAdjuster::adjust):
        (WebCore::EventDispatcher::adjustRelatedTarget):
        (WebCore::EventDispatcher::ensureEventPath):  Renamad from ensureEventAncestors. Use the DOM Core terminology.
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventDispatcher::dispatchEventAtCapturing):
        (WebCore::EventDispatcher::dispatchEventAtTarget):
        (WebCore::EventDispatcher::dispatchEventAtBubbling):
        (WebCore::EventDispatcher::dispatchEventPostProcess):
        (WebCore::EventDispatcher::topEventContext):
        * dom/EventDispatcher.h:
        (EventRelatedTargetAdjuster):
        (EventDispatcher):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::eventHasListeners):
        (WebCore::InspectorInstrumentation::willDispatchEventImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::willDispatchEvent):

2013-02-11  peavo@outlook.com  <peavo@outlook.com>

        [Curl] setCookiesFromDOM function does not save cookies to disk.
        https://bugs.webkit.org/show_bug.cgi?id=109285

        Reviewed by Brent Fulgham.

        Write cookies to disk by using the Curl easy api.

        * platform/network/curl/CookieJarCurl.cpp:
        (WebCore::setCookiesFromDOM):Write cookie to disk.
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::getCurlShareHandle): Added method to get Curl share handle.
        (WebCore::ResourceHandleManager::getCookieJarFileName): Added method to get cookie file name.
        * platform/network/curl/ResourceHandleManager.h: Added methods to get cookie file name, and Curl share handle.

2013-02-11  Hayato Ito  <hayato@chromium.org>

        Split each RuleSet and feature out from StyleResolver into its own class.
        https://bugs.webkit.org/show_bug.cgi?id=107777

        Reviewed by Dimitri Glazkov.

        Re-landing r141964, which was reverted in r141973, since r141964 seem to be innocent.

        No tests. No change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/DocumentRuleSets.cpp: Added.
        (WebCore):
        (WebCore::DocumentRuleSets::DocumentRuleSets):
        (WebCore::DocumentRuleSets::~DocumentRuleSets):
        (WebCore::DocumentRuleSets::initUserStyle): New helper to initialize each RuleSets.
        (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets): Factored out from StyleResolver.
        (WebCore::makeRuleSet): Ditto.
        (WebCore::DocumentRuleSets::resetAuthorStyle): Ditto.
        (WebCore::DocumentRuleSets::appendAuthorStyleSheets): Ditto.
        (WebCore::DocumentRuleSets::collectFeatures): Ditto.
        (WebCore::DocumentRuleSets::reportMemoryUsage): New methods to report memory usage. Factored out from StyleResolver.
        * css/DocumentRuleSets.h: Added.
        (WebCore):
        (DocumentRuleSets):
        (WebCore::DocumentRuleSets::authorStyle): Moved from StyleResolver.
        (WebCore::DocumentRuleSets::userStyle): Ditto.
        (WebCore::DocumentRuleSets::features): Ditto.
        (WebCore::DocumentRuleSets::sibling): Ditto.
        (WebCore::DocumentRuleSets::uncommonAttribute): Ditto.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::appendAuthorStyleSheets): Now calls DocumentRuleSets::appendAuthorStyleSheets.
        (WebCore::StyleResolver::matchAuthorRules): Use m_ruleSets.
        (WebCore::StyleResolver::matchUserRules): Ditto.
        (WebCore::StyleResolver::classNamesAffectedByRules): Ditto.
        (WebCore::StyleResolver::locateCousinList): Ditto.
        (WebCore::StyleResolver::canShareStyleWithElement): Ditto.
        (WebCore::StyleResolver::locateSharedStyle): Ditto.
        (WebCore::StyleResolver::styleForPage): Ditto.
        (WebCore::StyleResolver::checkRegionStyle): Ditto.
        (WebCore::StyleResolver::applyProperty): Ditto.
        (WebCore::StyleResolver::reportMemoryUsage): Now calls DocumentRuleSets::reportMemoryUsage.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::scopeResolver):
        (StyleResolver):
        (WebCore::StyleResolver::ruleSets): accessor r to DocumentRuleSets.
        (WebCore::StyleResolver::usesSiblingRules): Use m_ruleSets.
        (WebCore::StyleResolver::usesFirstLineRules): Ditto.
        (WebCore::StyleResolver::usesBeforeAfterRules): Ditto.
        (WebCore::StyleResolver::hasSelectorForAttribute): Ditto.
        (WebCore::StyleResolver::hasSelectorForClass): Ditto.
        (WebCore::StyleResolver::hasSelectorForId): Ditto.
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):

2013-02-11  Keishi Hattori  <keishi@webkit.org>

        REGRESSION (r140778):Calendar Picker buttons are wrong when rtl
        https://bugs.webkit.org/show_bug.cgi?id=109158

        Reviewed by Kent Tamura.

        The calendar picker button's icon and position where wrong when rtl.


        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ar.html

        * Resources/pagepopups/calendarPicker.css:
        (.year-month-button-left .year-month-button): Use -webkit-margin-end so the margin is applide to the right side.
        (.year-month-button-right .year-month-button): Use -webkit-margin-start so the margin is applide to the right side.
        (.today-clear-area .today-button): Use -webkit-margin-end so the margin is applide to the right side.
        * Resources/pagepopups/calendarPicker.js:
        (YearMonthController.prototype._attachLeftButtonsTo): Flip icon image when rtl.
        (YearMonthController.prototype._attachRightButtonsTo): Ditto.

2013-02-11  KwangYong Choi  <ky0.choi@samsung.com>

        REGRESSION (r142549): Remove web intents code
        https://bugs.webkit.org/show_bug.cgi?id=109532

        Reviewed by Nico Weber.

        Remove remaning code related to web intents.

        No new tests, no change on behavior.

        * UseJSC.cmake:
        * bindings/js/JSIntentConstructor.cpp: Removed.

2013-02-11  Kenneth Russell  <kbr@google.com>

        Add temporary typedef to ANGLEWebKitBridge to support incompatible API upgrade
        https://bugs.webkit.org/show_bug.cgi?id=109127

        Reviewed by Dean Jackson.

        No new tests. Built and tested WebKit and Chromium with this change.

        * platform/graphics/ANGLEWebKitBridge.cpp:
        (WebCore):
            Define temporary typedef spanning int -> size_t change.
        (WebCore::getValidationResultValue):
        (WebCore::getSymbolInfo):
            Use temporary typedef.

2013-02-11  Kentaro Hara  <haraken@chromium.org>

        [V8] ScheduledAction::m_context can be empty, so we shouldn't
        retrieve an Isolate by using m_context->GetIsolate()
        https://bugs.webkit.org/show_bug.cgi?id=109523

        Reviewed by Adam Barth.

        Chromium bug: https://code.google.com/p/chromium/issues/detail?id=175307#makechanges

        Currently ScheduledAction is retrieving an Isolate by using m_context->GetIsolate().
        This can crash because ScheduledAction::m_context can be empty. Specifically,
        ScheduledAction::m_context is set to ScriptController::currentWorldContext(),
        which can return an empty handle when a frame does not exist. In addition,
        'if(context.IsEmpty())' in ScheduledAction.cpp implies that it can be empty.

        Alternately, we should pass an Isolate explicitly when a ScheduledAction is instantiated.

        No tests. The Chromium crash report doesn't provide enough information
        to reproduce the bug.

        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::ScheduledAction):
        (WebCore):
        (WebCore::ScheduledAction::~ScheduledAction):
        * bindings/v8/ScheduledAction.h:
        (ScheduledAction):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::WindowSetTimeoutImpl):
        * bindings/v8/custom/V8WorkerContextCustom.cpp:
        (WebCore::SetTimeoutOrInterval):

2013-02-11  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Build fix: r142549 broke EFL build
        https://bugs.webkit.org/show_bug.cgi?id=109527

        Reviewed by Kentaro Hara.

        No new tests, no change on behavior.

        * CMakeLists.txt:

2013-02-11  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r142520?): Space no longer scrolls the page
        https://bugs.webkit.org/show_bug.cgi?id=109526

        Reviewed by Tim Horton.

        ScrollingTree::updateTreeFromStateNode() used to bail early when it had
        no children (no fixed or sticky elements), but that left updateAfterChildren()
        uncalled. Fix by always calling updateAfterChildren(), which updates the scroll
        position.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode):

2013-02-11  Tim Horton  <timothy_horton@apple.com>

        Remove extra early-return in FrameView::setScrollPosition

        Rubber-stamped by Simon Fraser.

        * page/FrameView.cpp:
        (WebCore::FrameView::setScrollPosition):

2013-02-11  Arko Saha  <arko@motorola.com>

        [Microdata] Fix crash after r141034 in chromuim port
        https://bugs.webkit.org/show_bug.cgi?id=109514

        Reviewed by Ryosuke Niwa.

        Added V8SkipVTableValidation extended attribute to skip
        VTable validation check for DOMSettableTokenList interface.

        This patch fixes below test failures:
        Tests: fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
               fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html
               fast/dom/MicroData/element-with-empty-itemprop.html
               fast/dom/MicroData/itemprop-add-remove-tokens.html
               fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html
               fast/dom/MicroData/itemprop-must-be-read-only.html
               fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html
               fast/dom/MicroData/itemref-add-remove-tokens.html
               fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html
               fast/dom/MicroData/itemref-for-an-element-must-be-correct.html
               fast/dom/MicroData/itemref-must-be-read-only.html
               fast/dom/MicroData/itemtype-add-remove-tokens.html
               fast/dom/MicroData/itemtype-attribute-test.html
               fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
               fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
               fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
               fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html

        * html/DOMSettableTokenList.idl:

2013-02-11  Adam Barth  <abarth@webkit.org>

        Load event fires too early with threaded HTML parser (take 2)
        https://bugs.webkit.org/show_bug.cgi?id=109485

        Reviewed by Eric Seidel.

        This patch restores the code that was removed in
        http://trac.webkit.org/changeset/142492 and adds code to
        DocumentLoader.cpp to avoid the regression.

        * dom/Document.cpp:
        (WebCore::Document::hasActiveParser):
        (WebCore::Document::decrementActiveParserCount):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::isLoadingInAPISense):

2013-02-11  Eric Seidel  <eric@webkit.org>

        Fold HTMLTokenizerState back into HTMLTokenizer now that MarkupTokenizerBase is RFG
        https://bugs.webkit.org/show_bug.cgi?id=109502

        Reviewed by Tony Gentilcore.

        Just a search replace of HTMLTokenizerState with HTMLTokenizer and moving the enum.
        This restores us to the peacefull world pre-NEW_XML.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::forcePlaintextForTextDocument):
        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::tokenizerStateForContextElement):
        (WebCore::HTMLDocumentParser::forcePlaintextForTextDocument):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::isEndTagBufferingState):
        (WebCore):
        (WebCore::HTMLTokenizer::reset):
        (WebCore::HTMLTokenizer::flushEmitAndResumeIn):
        (WebCore::HTMLTokenizer::nextToken):
        (WebCore::HTMLTokenizer::updateStateFor):
        * html/parser/HTMLTokenizer.h:
        (HTMLTokenizer):
        (WebCore::HTMLTokenizer::create):
        (WebCore::HTMLTokenizer::shouldSkipNullCharacters):
        (WebCore::HTMLTokenizer::emitEndOfFile):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
        (WebCore::HTMLTreeBuilder::processScriptStartTag):
        * html/parser/TextViewSourceParser.cpp:
        (WebCore::TextViewSourceParser::TextViewSourceParser):

2013-02-11  Kentaro Hara  <haraken@chromium.org>

        Build fix after r142528
        https://bugs.webkit.org/show_bug.cgi?id=109520

        Reviewed by Eric Seidel.

        r142528 changed GIFImageReader from a struct to a class.
        We also need to fix a forward declaration.

        No tests.

        * platform/image-decoders/gif/GIFImageDecoder.h:

2013-02-11  Nico Weber  <thakis@chromium.org>

        Remove web intents code
        https://bugs.webkit.org/show_bug.cgi?id=109501

        Reviewed by Eric Seidel.

        See thread "Removing ENABLE(WEB_INTENTS) code" on webkit-dev.

        * DerivedSources.make:
        * Modules/intents/DOMWindowIntents.cpp: Removed.
        * Modules/intents/DOMWindowIntents.h: Removed.
        * Modules/intents/DOMWindowIntents.idl: Removed.
        * Modules/intents/DeliveredIntent.cpp: Removed.
        * Modules/intents/DeliveredIntent.h: Removed.
        * Modules/intents/DeliveredIntent.idl: Removed.
        * Modules/intents/Intent.cpp: Removed.
        * Modules/intents/Intent.h: Removed.
        * Modules/intents/Intent.idl: Removed.
        * Modules/intents/IntentRequest.cpp: Removed.
        * Modules/intents/IntentRequest.h: Removed.
        * Modules/intents/IntentResultCallback.h: Removed.
        * Modules/intents/IntentResultCallback.idl: Removed.
        * Modules/intents/NavigatorIntents.cpp: Removed.
        * Modules/intents/NavigatorIntents.h: Removed.
        * Modules/intents/NavigatorIntents.idl: Removed.
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        * bindings/v8/custom/V8IntentCustom.cpp: Removed.
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLIntentElement.cpp: Removed.
        * html/HTMLIntentElement.h: Removed.
        * html/HTMLIntentElement.idl: Removed.
        * loader/EmptyClients.cpp:
        * loader/EmptyClients.h:
        (EmptyFrameLoaderClient):
        * loader/FrameLoaderClient.h:
        (WebCore):
        * page/DOMWindow.idl:

2013-02-11  Eric Seidel  <eric@webkit.org>

        Fix Mac build after http://trac.webkit.org/changeset/142535.

        Unreviewed build fix.

        * html/parser/HTMLTokenizer.h:
        (WebCore::HTMLTokenizer::emitAndReconsumeIn):

2013-02-11  David Farler  <dfarler@apple.com>

        Make WebCore Derived Sources work with SDK identifiers too
        https://bugs.webkit.org/show_bug.cgi?id=109324

        Reviewed by Sam Weinig.

        * WebCore.xcodeproj/project.pbxproj: Pass SDKROOT to make for DerivedSources.make

2013-02-11  Zhenyao Mo  <zmo@google.com>

        WEBGL_compressed_texture_s3tc extension can be enabled even when not supported
        https://bugs.webkit.org/show_bug.cgi?id=109508

        Reviewed by Kenneth Russell.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::getExtension): Check whether the extension support is there before returning the extension pointer.

2013-02-11  Emil A Eklund  <eae@chromium.org>

        Change RenderFrameSet::paint to use m-rows/m_cols directly.
        https://bugs.webkit.org/show_bug.cgi?id=108503

        Reviewed by Eric Seidel.

        Test: fast/frames/invalid-frameset.html

        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::paint):

2013-02-11  Yong Li  <yoli@rim.com>

        XMLHttpRequestProgressEventThrottle::resume() always schedules timer even when unnecessary
        https://bugs.webkit.org/show_bug.cgi?id=105348

        Reviewed by Alexey Proskuryakov.

        Let resume() clear the defer flag and return if there is deferred events to dispatch.

        No new tests as this should not affect existing cross-platform behavior. It should be
        OK as long as it doesn't break anything.

        * xml/XMLHttpRequestProgressEventThrottle.cpp:
        (WebCore::XMLHttpRequestProgressEventThrottle::resume):

2013-02-11  Eric Seidel  <eric@webkit.org>

        Fold MarkupTokenizerBase into HTMLTokenizer now that it is the only subclass
        https://bugs.webkit.org/show_bug.cgi?id=109499

        Reviewed by Adam Barth.

        For great justice.  And sanity.
        Epic amount of template code deleted.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::HTMLTokenizer):
        * html/parser/HTMLTokenizer.h:
        (HTMLTokenizer):
        (Checkpoint):
        (WebCore::HTMLTokenizer::state):
        (WebCore::HTMLTokenizer::setState):
        (WebCore::HTMLTokenizer::shouldSkipNullCharacters):
        (WebCore::HTMLTokenizer::bufferCharacter):
        (WebCore::HTMLTokenizer::emitAndResumeIn):
        (WebCore::HTMLTokenizer::emitAndReconsumeIn):
        (WebCore::HTMLTokenizer::emitEndOfFile):
        (WebCore::HTMLTokenizer::haveBufferedCharacterToken):
        * xml/parser/MarkupTokenizerBase.h: Removed.

2013-02-11  Anton Vayvod  <avayvod@chromium.org>

        [Text Autosizing] Collect narrow descendants and process them separately. Refactoring for
        a change to follow.
        https://bugs.webkit.org/show_bug.cgi?id=109054

        Preparational change to combine narrow descendants of the same autosizing cluster into
        groups by the width difference between the descendant and the block containing all text of
        the parent autosizing cluster. The groups will be autosized with the same multiplier.

        For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
        a large margin individually applied (via a CSS selector), causing them all to individually
        appear narrower than their enclosing blockContainingAllText. Rather than making each of
        these paragraphs into a separate cluster, we eventually want to be able to merge them back
        together into one (or a few) descendant clusters.

        Reviewed by Julien Chaffraix.

        No behavioral changes thus no new tests or test changes.

        * rendering/TextAutosizer.cpp:
        (TextAutosizingClusterInfo): Vector of narrow descendants.
        (WebCore::TextAutosizer::processCluster): Process narrow descendants separately.
        (WebCore::TextAutosizer::processContainer):

            Remember narrow descendants of the parent cluster for later processing.

2013-02-11  Enrica Casucci  <enrica@apple.com>

        Add ENABLE_DELETION_UI to control the use of the deletion UI.
        https://bugs.webkit.org/show_bug.cgi?id=109463.

        Reviewed by Ryosuke Niwa.
        
        This patch adds #if ENABLE(DELETION_UI) in every spot where
        DeleteButtonController is used. This class is now only instantiated
        if the feature is enabled. I've also done some cleanup in the
        DeleteButtonController class, removing unused methods and making
        private some methods only used internally to the class.
        Both DeleteButtonController and DeleteButton classes are now excluded
        from the compilation if the feature is not enabled.

        No new tests, no change of functionality.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::cloneChildNodes):
        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::unapply):
        (WebCore::EditCommandComposition::reapply):
        (WebCore::CompositeEditCommand::apply):
        * editing/DeleteButton.cpp:
        * editing/DeleteButtonController.cpp:
        * editing/DeleteButtonController.h: Some cleanup.
        (WebCore::DeleteButtonController::enabled): Made private.
        * editing/EditCommand.cpp:
        (WebCore::EditCommand::EditCommand):
        * editing/Editor.cpp:
        (WebCore::Editor::notifyComponentsOnChangedSelection):
        (WebCore::Editor::Editor):
        (WebCore::Editor::rangeForPoint):
        (WebCore::Editor::deviceScaleFactorChanged):
        * editing/Editor.h:
        * editing/htmlediting.cpp: avoidIntersectionWithNode is
        used only if the feature is enabled.
        * editing/htmlediting.h:
        * editing/markup.cpp:
        (WebCore::createMarkup):
        (WebCore::createFragmentFromNodes):
        * rendering/RenderTable.cpp: Removed unnecessary include
        fo DeleteButtonController.h

2013-02-11  Rafael Weinstein  <rafaelw@chromium.org>

        [HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
        https://bugs.webkit.org/show_bug.cgi?id=109338

        Reviewed by Adam Barth.

        This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
        is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.

        Tests added to html5lib.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore):
        (WebCore::HTMLTreeBuilder::popAllTemplates):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processEndOfFile):
        * html/parser/HTMLTreeBuilder.h:
        (HTMLTreeBuilder):

2013-02-11  Andreas Kling  <akling@apple.com>

        RenderText::isAllCollapsibleWhitespace() shouldn't upconvert string to 16-bit.
        <http://webkit.org/b/109354>

        Reviewed by Eric Seidel.

        254 KB progression on Membuster3.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::isAllCollapsibleWhitespace):

2013-02-11  Alpha Lam  <hclam@chromium.org>

        Fix code style violations in GIFImageReader.{cc|h}
        https://bugs.webkit.org/show_bug.cgi?id=109007

        Reviewed by Stephen White.

        This is just a style clean up for GIFImageReader.{cc|h}.

        There's going to be a lot changes in these two files and style check
        will add a lot of noise in later reviews. Fix style problems first.

        There is no change in logic at all. Just style fixes.

        No new tests.

        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::frameCount):
        (WebCore::GIFImageDecoder::repetitionCount):
        (WebCore::GIFImageDecoder::haveDecodedRow):
        (WebCore::GIFImageDecoder::initFrameBuffer):
        * platform/image-decoders/gif/GIFImageReader.cpp:
        (GIFImageReader::outputRow):
        (GIFImageReader::doLZW):
        (GIFImageReader::read):
        * platform/image-decoders/gif/GIFImageReader.h:
        (GIFFrameContext):
        (GIFFrameContext::GIFFrameContext):
        (GIFFrameContext::~GIFFrameContext):
        (GIFImageReader::GIFImageReader):
        (GIFImageReader::~GIFImageReader):
        (GIFImageReader):
        (GIFImageReader::imagesCount):
        (GIFImageReader::loopCount):
        (GIFImageReader::globalColormap):
        (GIFImageReader::globalColormapSize):
        (GIFImageReader::frameContext):

2013-02-11  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Exclusions] Handle shape-outside changing a float's overhang behavior
        https://bugs.webkit.org/show_bug.cgi?id=106927

        Reviewed by Julien Chaffraix.

        When the position on a shape outside causes a float to spill out into
        another block than it's container, it was not being drawn correctly. It
        became apparent that in order to fix this properly, the approach to
        positioning shape outsides and floats needed to be changed. The new
        approach also fixes some other outstanding issues, like hit detection.

        When a float has a shape outside, inline and float layout happens
        using the exclusion shape bounds instead of the float's box.  The
        effect of this is that the float itself no longer has any effect on
        layout, both with respect to positioning of the float's siblings as
        well as positioning the float's box. This means that when the float is
        positioned, it is the shape's box that must obey the positioning rules
        for floats. When the shape is given a position relative to the float's
        box, the rules for float positioning determine where the shape sits
        in the parent, causing the float's box to be offset by the position of
        the shape. Since the float's box does not affect layout (due to the
        shape), this is similar to relative positioning in that the offset is
        a paint time occurrence.

        So the new approach is to implement positioning of shape outside on
        floats similar to how relative positioning is implemented, using a
        RenderLayer.

        This is also tested by the existing tests for shape outside on floats positioning.

        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-overhang.html

        * rendering/ExclusionShapeOutsideInfo.h:
        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Utility method to create a LayoutSize for computing the layer offset.
        (ExclusionShapeOutsideInfo):
        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState): Check for floats with shape outside as well as in flow positioning.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::flipFloatForWritingModeForChild): Remove old positioning implementation.
        (WebCore::RenderBlock::paintFloats): Remove old positioning implementation.
        (WebCore::RenderBlock::blockSelectionGaps): Check for floats with shape outside as well as in flow positioning.
        (WebCore::RenderBlock::positionNewFloats): Remove old positioning implementation.
        (WebCore::RenderBlock::addOverhangingFloats): Remove FIXME.
        (WebCore::positionForPointRespectingEditingBoundaries): Check for floats with shape outside as well as in flow positioning.
        * rendering/RenderBlock.h:
        (RenderBlock): Remove old positioning implementation.
        (WebCore::RenderBlock::xPositionForFloatIncludingMargin): Remove old positioning implementation.
        (WebCore::RenderBlock::yPositionForFloatIncludingMargin): Remove old positioning implementation.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::mapLocalToContainer): Check for floats with shape outside as well as in flow positioning.
        (WebCore::RenderBox::offsetFromContainer): Check for floats with shape outside as well as in flow positioning.
        (WebCore::RenderBox::computeRectForRepaint): Check for floats with shape outside as well as in flow positioning.
        (WebCore::RenderBox::layoutOverflowRectForPropagation): Check for floats with shape outside as well as in flow positioning.
        * rendering/RenderBox.h: Make floats with shape outside get a layer.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintOffset): Method to return in flow
            positioning offset + offset from shape outside on floats.
        * rendering/RenderBoxModelObject.h:
        (RenderBoxModelObject): Add paintOffset method.
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::clippedOverflowRectForRepaint): Check for floats with shape outside as well as in flow positioning.
        (WebCore::RenderInline::computeRectForRepaint): Check for floats with shape outside as well as in flow positioning.
        (WebCore::RenderInline::mapLocalToContainer): Check for floats with shape outside as well as in flow positioning.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPosition): Check for floats with shape outside as well as in flow positioning.
        (WebCore::RenderLayer::calculateClipRects): Check for floats with shape outside as well as in flow positioning.
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::paintOffset): Rename offsetForInFlowPosition to reflect that it's not just for
            in flow positioning, it also reflects shape outside position on floats.
        (RenderLayer):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::hasPaintOffset): Determines if this object is in flow positioined or is a float with shape outside.
        * rendering/style/RenderStyle.h: Add hasPaintOffset method, analagous to method with same name on RenderObject.

2013-02-11  Tim Horton  <timothy_horton@apple.com>

        FrameView::setScrollPosition should clamp scroll position before handing it to
        ScrollingCoordinator instead of depending on ScrollView to do this
        https://bugs.webkit.org/show_bug.cgi?id=109497
        <rdar://problem/12631789>

        Reviewed by Simon Fraser.

        Clamp scroll position before handing it to ScrollingCoordinator. Also, like ScrollView does,
        bail out if we've already scrolled to the clamped scroll position.

        Test: platform/mac-wk2/tiled-drawing/clamp-out-of-bounds-scrolls.html

        * page/FrameView.cpp:
        (WebCore::FrameView::setScrollPosition):

2013-02-11  Adam Barth  <abarth@webkit.org>

        The threaded HTML parser should pass all the fast/parser tests
        https://bugs.webkit.org/show_bug.cgi?id=109486

        Reviewed by Tony Gentilcore.

        This patch fixes the last two test failures in fast/parser, which were
        crashes caused by not having a tokenizer when document.close() was
        called. (The tokenizer is created lazily by calls to document.write,
        which might not happen before document.close).

        fast/parser/document-close-iframe-load.html
        fast/parser/document-close-nested-iframe-load.html

        In addition, I've added a new test to make sure we flush the tokenizer
        properly in these cases.

        Test: fast/parser/document-close-iframe-load-partial-entity.html

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::prepareToStopParsing):
        (WebCore::HTMLDocumentParser::pumpTokenizer):

2013-02-11  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        [texmap] Implement frames-per-second debug counter
        https://bugs.webkit.org/show_bug.cgi?id=107942

        Reviewed by Noam Rosenthal.

        Adds FPS counter via WEBKIT_SHOW_FPS=<interval> environment variable,
        where <interval> is the period in seconds (i.e. =1.5) between FPS
        updates on screen. It is measured by counting
        CoordinatedGraphicsScene::paintTo* calls and is painted using
        drawRepaintCounter() after TextureMapperLayer has finished painting its
        contents.

        Visual debugging feature, no need for new tests.

        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
        (WebCore::CoordinatedGraphicsScene::updateFPS):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:

2013-02-11  Eric Seidel  <eric@webkit.org>

        Fold MarkupTokenBase into HTMLToken now that it has no other subclasses
        https://bugs.webkit.org/show_bug.cgi?id=109483

        Reviewed by Adam Barth.

        This deletes an epic amount of template yuck, as well as removes
        a vtable !?! from HTMLToken.

        This paves the way for further cleanup of HTMLToken now that we
        can see the whole object at once.
        We'll also probably re-create an HTMLToken.cpp again, now that we're
        free from the chains of template nonsense.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/HTMLToken.h:
        (WebCore::findAttributeInVector):
        (WebCore):
        (HTMLToken):
        (Attribute):
        (Range):
        (WebCore::HTMLToken::HTMLToken):
        (WebCore::HTMLToken::clear):
        (WebCore::HTMLToken::isUninitialized):
        (WebCore::HTMLToken::type):
        (WebCore::HTMLToken::makeEndOfFile):
        (WebCore::HTMLToken::startIndex):
        (WebCore::HTMLToken::endIndex):
        (WebCore::HTMLToken::setBaseOffset):
        (WebCore::HTMLToken::end):
        (WebCore::HTMLToken::data):
        (WebCore::HTMLToken::isAll8BitData):
        (WebCore::HTMLToken::name):
        (WebCore::HTMLToken::appendToName):
        (WebCore::HTMLToken::nameString):
        (WebCore::HTMLToken::selfClosing):
        (WebCore::HTMLToken::setSelfClosing):
        (WebCore::HTMLToken::beginStartTag):
        (WebCore::HTMLToken::beginEndTag):
        (WebCore::HTMLToken::addNewAttribute):
        (WebCore::HTMLToken::beginAttributeName):
        (WebCore::HTMLToken::endAttributeName):
        (WebCore::HTMLToken::beginAttributeValue):
        (WebCore::HTMLToken::endAttributeValue):
        (WebCore::HTMLToken::appendToAttributeName):
        (WebCore::HTMLToken::appendToAttributeValue):
        (WebCore::HTMLToken::attributes):
        (WebCore::HTMLToken::eraseValueOfAttribute):
        (WebCore::HTMLToken::ensureIsCharacterToken):
        (WebCore::HTMLToken::characters):
        (WebCore::HTMLToken::appendToCharacter):
        (WebCore::HTMLToken::comment):
        (WebCore::HTMLToken::beginComment):
        (WebCore::HTMLToken::appendToComment):
        (WebCore::HTMLToken::eraseCharacters):
        * html/parser/HTMLTokenTypes.h:
        * html/parser/XSSAuditor.h:
        * xml/parser/MarkupTokenBase.h: Removed.

2013-02-11  Gavin Barraclough  <barraclough@apple.com>

        PluginProcess should quit immediately if idle in response to low-memory notifications
        https://bugs.webkit.org/show_bug.cgi?id=109103
        <rdar://problem/12679827>

        Reviewed by Brady Eidson.

        This patch allows a process to set a custom callback for low memory warnings
        (defaulting to the current behaviour, as implemented in releaseMemory).

        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::MemoryPressureHandler):
            - Initialize m_lowMemoryHandler to releaseMemory.
        (WebCore::MemoryPressureHandler::install):
        (WebCore::MemoryPressureHandler::uninstall):
        (WebCore::MemoryPressureHandler::holdOff):
            - Cleaned up spacing.
        (WebCore::MemoryPressureHandler::releaseMemory):
            - Added null implementation for non-Mac builds.
        * platform/MemoryPressureHandler.h:
        (WebCore::MemoryPressureHandler::setLowMemoryHandler):
            - Added method to set m_lowMemoryHandler.
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
            - Changed to call releaseMemory via m_lowMemoryHandler.

2013-02-11  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r133807): Sticky-position review bar on bugzilla review page is jumpy
        https://bugs.webkit.org/show_bug.cgi?id=104276
        <rdar://problem/12827187>

        Reviewed by Tim Horton.

        When committing new scrolling tree state, if the root node has a scroll
        position update, we would handle that before updating the state of child
        nodes (with possibly new viewport constraints). That would cause incorrect
        child layer updates.
        
        Fix by adding a second 'update' phase that happens after child nodes,
        and moving the scroll position update into that.

        Scrolling tests only dump the state tree, so cannot test the bug.

        * page/FrameView.cpp:
        (WebCore::FrameView::setScrollPosition): If the scroll position didn't
        actually change, don't request a scroll position update from the ScrollingCoordinator.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode): Keep track of the scrolling node so
        that we can call updateAfterChildren() on it.
        * page/scrolling/ScrollingTreeNode.h:
        (ScrollingTreeNode):
        (WebCore::ScrollingTreeNode::updateAfterChildren):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (ScrollingTreeScrollingNode):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
        In the current bug the scrolling tree was scheduled for commit because of a
        scroll position request, but if only the viewport constraints change, we also need
        to commit the tree.
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        (ScrollingTreeFixedNode):
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        (ScrollingTreeScrollingNodeMac):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
        (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren): Move code here
        that updates things that have to happen after children.
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        (ScrollingTreeStickyNode):
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::updateBeforeChildren):

2013-02-11  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Build fix for Win7 Release.
        Because of InspectorAllInOne.cpp static globals must be named differently in files included by InspectorAllInOne.
        This was the case for UserInitiatedProfileName. Also removed the repeated HeapProfileType definition in
        InspectorHeapProfilerAgent.cpp since it wasn't being used anyways.

        * inspector/InspectorHeapProfilerAgent.cpp:
        (WebCore):
        (WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):

2013-02-11  Tony Gentilcore  <tonyg@chromium.org>

        SegmentedString's copy ctor should copy all fields
        https://bugs.webkit.org/show_bug.cgi?id=109477

        Reviewed by Adam Barth.

        This fixes http/tests/inspector-enabled/document-write.html (and likely others) for the threaded HTML parser.

        No new tests because covered by existing tests.

        * platform/text/SegmentedString.cpp:
        (WebCore::SegmentedString::SegmentedString):

2013-02-11  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: database connections don't close after versionchange transaction aborts
        https://bugs.webkit.org/show_bug.cgi?id=102298

        Reviewed by Tony Chang.

        Per spec, close the database if the "versionchange" transaction aborts.

        Tests: storage/indexeddb/aborted-versionchange-closes.html
               storage/indexeddb/lazy-index-population.html
               storage/objectstore-basics.html

        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::onAbort): Tell the IDBDatabase (connection) to close if
        this was a "versionchange" transaction.

2013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [EFL] fast/forms/number/number-l10n-input.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=109440

        Reviewed by Laszlo Gombos.

        Use LocaleICU instead of LocaleNone on EFL port. The EFL
        port already depends on ICU library and we get additional
        functionality this way.

        No new tests, already covered by existing tests.

        * CMakeLists.txt:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:
        * PlatformWinCE.cmake:

2013-02-11  Benjamin Poulain  <benjamin@webkit.org>

        Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings
        https://bugs.webkit.org/show_bug.cgi?id=109349

        Reviewed by Sam Weinig.

        Expose setMinimumTimerInterval() and implement the backup/restore to keep
        a consistent state between tests.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::setMinimumTimerInterval):
        (WebCore):
        * testing/InternalSettings.h:
        (Backup):
        (InternalSettings):
        * testing/InternalSettings.idl:

2013-02-11  Dean Jackson  <dino@apple.com>

        Source/WebCore: Snapshotted plug-in should use shadow root
        https://bugs.webkit.org/show_bug.cgi?id=108284

        Reviewed by Simon Fraser.

        Take three - relanding after rollout in r142400 that was caused by a global
        selector interfering with CSS Instrumentation in the Inspector.

        A snapshotted plugin needs to indicate to the user that it can be clicked
        to be restarted. Previously this was done with an image that had embedded
        text. Instead, we now use an internal shadow root to embed some markup that
        will display instructions that can be localised.

        The UA stylesheet for plug-ins provides a default styling for the label, which
        can be overridden by ports.

        In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
        since it is only responsible for drawing a paused plug-in. The snapshot creation
        can work with the default renderer, but a shadow root requires something like
        RenderBlock in order to draw its children. We swap from one renderer to another when
        necessary either by creating the shadow root or by explicitly detaching and attaching
        the plugin element.

        Unfortunately this is difficult to test, because the snapshotting requires
        time to execute, and also a PluginView to be instantiated.

        * css/plugIns.css:
        (object::-webkit-snapshotted-plugin-content): New rules for a default label style.

        * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
        * platform/LocalizedStrings.h:
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        * platform/chromium/LocalizedStringsChromium.cpp:
        * platform/efl/LocalizedStringsEfl.cpp:
        * platform/gtk/LocalizedStringsGtk.cpp:
        * platform/qt/LocalizedStringsQt.cpp:

        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
        that RenderSnapshottedPlugIn no longer is an embedded object.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
        (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
        (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
        (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
            a renderer, otherwise use the typical plug-in path.
        (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
            need to give it to the renderer.
        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
        * html/HTMLPlugInImageElement.h:
        (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
            should show immediately.
        (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
            to swap to the Shadow Root.
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
            in being recreated. Make sure we reattach so that a plugin renderer will be created.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
            displayState for snapshots.
        * html/HTMLPlugInImageElement.h:
        (HTMLPlugInImageElement): The new methods listed above.
        (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
            a snapshot should be immediately labeled.

        * page/ChromeClient.h: No need for plugInStartLabelImage any more.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
        (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
        (WebCore::RenderSnapshottedPlugIn::getCursor):
        (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
        * rendering/RenderSnapshottedPlugIn.h:
        (RenderSnapshottedPlugIn): New inheritance. Some method renaming.

2013-02-11  Mike West  <mkwst@chromium.org>

        CSP reports for blocked 'data:' URLs should report the scheme only.
        https://bugs.webkit.org/show_bug.cgi?id=109429

        Reviewed by Adam Barth.

        https://dvcs.w3.org/hg/content-security-policy/rev/001dc8e8bcc3 changed
        the CSP 1.1 spec to require that blocked URLs that don't refer to
        generally resolvable schemes (e.g. 'data:', 'javascript:', etc.) be
        stripped down to their scheme in violation reports.

        Test: http/tests/security/contentSecurityPolicy/report-blocked-data-uri.html

        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::reportViolation):
            If the blocked URL is a web-resolvable scheme, apply the current
            stripping logic to it, otherwise, strip it to the scheme only.
        * platform/KURL.h:
        (KURL):
            Move KURL::isHierarchical() out into KURL's public API.

2013-02-11  Simon Fraser  <simon.fraser@apple.com>

        ScrollingTree node maps keep getting larger
        https://bugs.webkit.org/show_bug.cgi?id=109348

        Reviewed by Sam Weinig.

        When navigating between pages, nodes would get left in the ScrollingTree's
        node map, and the ScrollingStateTree's node map, so these would get larger
        and larger as you browse.
        
        Simplify map maintenance by clearing the map when setting a new root node
        (which happens on the first commit of a new page). Also, don't keep root nodes
        around, but create them afresh for each page, which simplifies their ID
        management.
        
        This is closer to the original behavior; keeping the root nodes around was
        a fix for bug 99668, but we avoid regressing that fix by bailing early
        from frameViewLayoutUpdated() if there is no root state node (we'll get
        called again anyway).
        
        This now allows state nodeIDs to be purely read-only.

        * page/scrolling/ScrollingStateNode.h:
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::ScrollingStateTree):
        (WebCore::ScrollingStateTree::attachNode):
        (WebCore::ScrollingStateTree::clear):
        (WebCore::ScrollingStateTree::removeNode):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):

2013-02-11  Simon Fraser  <simon.fraser@apple.com>

        Move m_stateNodeMap from ScrollingCoordinatorMac to ScrollingStateTree
        https://bugs.webkit.org/show_bug.cgi?id=109361

        Reviewed by Sam Weinig.
        
        The map of scrolling node IDs to ScollingStateNodes was maintained by
        ScrollingCoordinatorMac, rather than ScrollingStateTree. This is different
        from the ScrollingTree (which owns its node map), and added some amount
        of to-and-fro between ScrollingStateTree and ScrollingCoordinatorMac.
        
        Having ScrollingCoordinatorMac maintain the map of IDs to state nodes
        simplifies things.

        No behavior change.

        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode):
        (WebCore::ScrollingStateTree::detachNode):
        (WebCore::ScrollingStateTree::clear):
        (WebCore::ScrollingStateTree::removeNode):
        (WebCore::ScrollingStateTree::stateNodeForID):
        * page/scrolling/ScrollingStateTree.h:
        (ScrollingStateTree): Remove some stale comments.
        (WebCore::ScrollingStateTree::removedNodes):
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
        (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
        (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
        (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
        (WebCore::ScrollingCoordinatorMac::attachToStateTree):
        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
        (WebCore::ScrollingCoordinatorMac::clearStateTree):
        (WebCore::ScrollingCoordinatorMac::updateScrollingNode):
        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):

2013-02-11  Mark Rowe  <mrowe@apple.com>

        Build fix.

        * platform/mac/PlatformSpeechSynthesizerMac.mm: Fix the case in the include.

2013-02-11  Julien Chaffraix  <jchaffraix@webkit.org>

        Regression(r131539): Heap-use-after-free in WebCore::RenderBlock::willBeDestroyed
        https://bugs.webkit.org/show_bug.cgi?id=107189

        Reviewed by Abhishek Arya.

        Test: fast/dynamic/continuation-detach-crash.html

        This patch reverts r131539 and the following changes (r132591 and r139664).
        This means we redo detaching from the bottom-up which solves the regression.
        It fixes the attached test case as we re-attach child nodes before detaching
        the parent. It seems wrong to do but this avoid a stale continuation.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::detach): Detach the children first, then ourself.
        * dom/Node.cpp:
        (WebCore::Node::detach): Clear the renderer instead of ASSERT'ing.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed): Removed the code to clear the associated node's renderer.
        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):
        Moved the repainting logic back into removeChildNode from destroyAndCleanupAnonymousWrappers.
        (WebCore::RenderObjectChildList::destroyLeftoverChildren): Re-added the code to clear the associated node's
        renderer.
        * rendering/RenderTextFragment.cpp:
        (WebCore::RenderTextFragment::setText): Re-added the code to set the associated node's renderer.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::detach):
        * dom/Node.cpp:
        (WebCore::Node::detach):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed):
        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::destroyLeftoverChildren):
        (WebCore::RenderObjectChildList::removeChildNode):
        * rendering/RenderTextFragment.cpp:
        (WebCore::RenderTextFragment::setText):

2013-02-11  Eric Seidel  <eric@webkit.org>

        Make WebVTTTokenizer stop inheriting from MarkupTokenizerBase
        https://bugs.webkit.org/show_bug.cgi?id=109411

        Reviewed by Adam Barth.

        Moved InputStreamPreprocessor into its own header file so it can be
        used by both WebVTTTokenizer and HTMLTokenizer.

        Also split out kEndOfFileMarker from InputStreamPreprocessor<T> so that
        it can be used w/o a specific instantiation of the template class.
        This also made it possible to fix three old fixmes about wanting to share
        that constant.

        Again, separating WebVTT code from Markup* base classes made it simpler
        at the cost of a little copy/paste code.  WebVTT tokenization is remarkably
        simple compared to HTML.

        This will make it immediately possible to pull MarkupTokenizerBase up into
        HTMLTokenizer and further simplify the code.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::markEndOfFile):
        * html/parser/HTMLInputStream.h:
        (WebCore::HTMLInputStream::markEndOfFile):
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::nextToken):
        * html/parser/InputStreamPreprocessor.h: Added.
        (WebCore):
        (InputStreamPreprocessor):
        (WebCore::InputStreamPreprocessor::InputStreamPreprocessor):
        (WebCore::InputStreamPreprocessor::nextInputCharacter):
        (WebCore::InputStreamPreprocessor::peek):
        (WebCore::InputStreamPreprocessor::advance):
        (WebCore::InputStreamPreprocessor::skipNextNewLine):
        (WebCore::InputStreamPreprocessor::reset):
        (WebCore::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
        * html/track/WebVTTTokenizer.cpp:
        (WebCore::WebVTTTokenizer::WebVTTTokenizer):
        (WebCore::WebVTTTokenizer::nextToken):
        * html/track/WebVTTTokenizer.h:
        (WebVTTTokenizer):
        (WebCore::WebVTTTokenizer::haveBufferedCharacterToken):
        (WebCore::WebVTTTokenizer::bufferCharacter):
        (WebCore::WebVTTTokenizer::emitAndResumeIn):
        (WebCore::WebVTTTokenizer::emitEndOfFile):
        (WebCore::WebVTTTokenizer::shouldSkipNullCharacters):
        * xml/parser/MarkupTokenizerBase.h:
        (MarkupTokenizerBase):
        (WebCore::MarkupTokenizerBase::bufferCharacter):

2013-02-11  Adam Barth  <abarth@webkit.org>

        document.write during window.onload can trigger DumpRenderTree to dump the render tree
        https://bugs.webkit.org/show_bug.cgi?id=109465

        Reviewed by Eric Seidel.

        This patch is a partial revert of
        http://trac.webkit.org/changeset/142378. It's not safe to call
        checkComplete during the load event. We'll need to find another way of
        calling checkComplete at the right time.

        Test: fast/parser/document-write-during-load.html

        * dom/Document.cpp:
        (WebCore::Document::decrementActiveParserCount):

2013-02-11  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: Timeline: invalidate and force locations are same for Layout records caused by style recalculaiton
        https://bugs.webkit.org/show_bug.cgi?id=109294

        Reviewed by Pavel Feldman.

        Use the stack that caused style recalculation as a cause for relayout performed due to
        layout invalidation caused by style recalculation.

        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.prototype.reset):
        (WebInspector.TimelinePresentationModel.Record):

2013-02-01  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extension API] adjust inspectedWindow.eval() callback parameters to expose non-exceptional error
        https://bugs.webkit.org/show_bug.cgi?id=108640

        Reviewed by Vsevolod Vlasov.

        - only set first parameter to eval() callback iff expression successfully evaluates;
        - use object, not bool as second parameter;
        - pass exceptions and extension errors as second parameter if evaluate failed;
        - minor drive-by changes in ExtensionAPI utilities.

        * inspector/front-end/ExtensionAPI.js:
        (injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setExpression):
        (injectedExtensionAPI.InspectedWindow.prototype.):
        (injectedExtensionAPI.InspectedWindow.prototype.eval):
        (injectedExtensionAPI.extractCallbackArgument):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype.):
        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
        (WebInspector.ExtensionStatus):

2013-02-11  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] expose ExtensionServerClient to tests so tests use same port as extensions API
        https://bugs.webkit.org/show_bug.cgi?id=109443

        Reviewed by Vsevolod Vlasov.

        Promote extensionServer var to the outer closure, so it may be accessed by platform-specific (or test) code.

        * inspector/front-end/ExtensionAPI.js:
        (buildExtensionAPIInjectedScript):

2013-02-11  Eric Seidel  <eric@webkit.org>

        Move WebVTTToken off of MarkupTokenBase
        https://bugs.webkit.org/show_bug.cgi?id=109410

        Reviewed by Tony Gentilcore.

        This introduces a small amount of "copy/paste" code
        but actually makes WebVTTToken much smaller and simpler!
        This also frees the HTMLParser to have its Token class
        back to itself so we can tune it to make HTML faster.

        * html/track/WebVTTToken.h:
        (WebVTTToken):
        (WebCore::WebVTTToken::WebVTTToken):
        (WebCore::WebVTTToken::appendToName):
        (WebCore::WebVTTToken::type):
        (WebCore::WebVTTToken::name):
        (WebCore::WebVTTToken::ensureIsCharacterToken):
        (WebCore::WebVTTToken::appendToCharacter):
        (WebCore::WebVTTToken::beginEmptyStartTag):
        (WebCore::WebVTTToken::beginStartTag):
        (WebCore::WebVTTToken::beginEndTag):
        (WebCore::WebVTTToken::beginTimestampTag):
        (WebCore::WebVTTToken::makeEndOfFile):
        (WebCore::WebVTTToken::clear):

2013-02-11  Joshua Bell  <jsbell@chromium.org>

        [V8] IndexedDB: Minor GC can collect IDBDatabase wrapper with versionchange handler
        https://bugs.webkit.org/show_bug.cgi?id=108670

        Reviewed by Kentaro Hara.

        Prevent IDBDatabase's wrapper from being GC'd while the database is open if it has
        listeners, as those listeners may close the database in response to events.

        Also, removed extraneous super-calls from hasPendingActivity() overrides.

        Test: storage/indexeddb/database-wrapper.html

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::hasPendingActivity): Implemented.
        * Modules/indexeddb/IDBDatabase.h: Declared.
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::hasPendingActivity): Simplified.
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::hasPendingActivity): Simplified.

2013-02-11  Eric Seidel  <eric@webkit.org>

        Remove AttributeBase now that NEW_XML is gone
        https://bugs.webkit.org/show_bug.cgi?id=109408

        Reviewed by Adam Barth.

        Just deleting code.  HTMLToken::Attribute is now just
        the real class and not a typedef.

        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::AtomicHTMLToken::nameForAttribute):
        * xml/parser/MarkupTokenBase.h:
        (WebCore):
        (MarkupTokenBase):
        (Attribute):
        (Range):

2013-02-11  Eric Seidel  <eric@webkit.org>

        Rename PreloadTask to StartTagScanner to match its purpose
        https://bugs.webkit.org/show_bug.cgi?id=109406

        Reviewed by Sam Weinig.

        As discussed in bug 107807.

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::StartTagScanner::StartTagScanner):
        (WebCore::StartTagScanner::processAttributes):
        (WebCore::HTMLPreloadScanner::processToken):

2013-02-11  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: WebInspector.Project refactorings.
        https://bugs.webkit.org/show_bug.cgi?id=109433

        Reviewed by Alexander Pavlov.

        This change prepares Workspace and Project to migration to project-per-domain mode for network based projects.
        Renamed WebInspector.WorkspaceProvider to WebInspector.ProjectDelegate.
        Renamed Project.name() to Project.id() and delegated it to project delegate.
        Added Project.displayName() method that is delegated to project delegate.
        SimpleWorkspaceProvider is now responsible for creation of SimpleWorkspaceDelegates and
        isolates various mappings from Project/ProjectDelegate concept.
        UISourceCode is now created based on path in the project.
        UISourceCode uri is now calculated based on project and path (right now uri is equal to path).

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/FileSystemProjectDelegate.js: Renamed from Source/WebCore/inspector/front-end/FileSystemWorkspaceProvider.js.
        (WebInspector.FileSystemProjectDelegate):
        (WebInspector.FileSystemProjectDelegate.prototype.id):
        (WebInspector.FileSystemProjectDelegate.prototype.type):
        (WebInspector.FileSystemProjectDelegate.prototype.displayName):
        (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
        (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
        (WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
        (WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
        (WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
        (WebInspector.FileSystemProjectDelegate.prototype._populate):
        (WebInspector.FileSystemProjectDelegate.prototype._addFile):
        (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
        (WebInspector.FileSystemProjectDelegate.prototype.reset):
        (WebInspector.FileSystemUtils):
        (WebInspector.FileSystemUtils.errorHandler):
        (WebInspector.FileSystemUtils.requestFileSystem):
        (.fileSystemLoaded):
        (.innerCallback):
        (WebInspector.FileSystemUtils.requestFilesRecursive):
        (.fileEntryLoaded):
        (.fileLoaded):
        (.readerLoadEnd):
        (WebInspector.FileSystemUtils.requestFileContent):
        (.fileWriterCreated.fileTruncated):
        (.fileWriterCreated):
        (.writerEnd):
        (WebInspector.FileSystemUtils.setFileContent):
        (WebInspector.FileSystemUtils._getDirectory):
        (.toArray):
        (WebInspector.FileSystemUtils._readDirectory):
        (WebInspector.FileSystemUtils._requestEntries):
        * inspector/front-end/IsolatedFileSystemModel.js:
        (WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleProjectDelegate):
        (WebInspector.SimpleProjectDelegate.prototype.id):
        (WebInspector.SimpleProjectDelegate.prototype.displayName):
        (WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
        (WebInspector.SimpleProjectDelegate.prototype.setFileContent):
        (WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
        (WebInspector.SimpleProjectDelegate.prototype.addFile):
        (WebInspector.SimpleProjectDelegate.prototype._uniquePath):
        (WebInspector.SimpleProjectDelegate.prototype.removeFile):
        (WebInspector.SimpleProjectDelegate.prototype.reset):
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.uriForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.addUniqueFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):
        (WebInspector.UISourceCode.prototype.path):
        (WebInspector.UISourceCode.prototype.uri):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/Workspace.js:
        (WebInspector.FileDescriptor):
        (WebInspector.ProjectDelegate):
        (WebInspector.ProjectDelegate.prototype.id):
        (WebInspector.ProjectDelegate.prototype.displayName):
        (WebInspector.ProjectDelegate.prototype.requestFileContent):
        (WebInspector.ProjectDelegate.prototype.setFileContent):
        (WebInspector.ProjectDelegate.prototype.searchInFileContent):
        (WebInspector.Project):
        (WebInspector.Project.prototype.id):
        (WebInspector.Project.prototype.type):
        (WebInspector.Project.prototype.displayName):
        (WebInspector.Project.prototype.isServiceProject):
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype._reset):
        (WebInspector.Project.prototype.uiSourceCode):
        (WebInspector.Project.prototype.uiSourceCodeForOriginURL):
        (WebInspector.Project.prototype.uiSourceCodeForURI):
        (WebInspector.Project.prototype.uiSourceCodes):
        (WebInspector.Project.prototype.requestFileContent):
        (WebInspector.Project.prototype.setFileContent):
        (WebInspector.Project.prototype.searchInFileContent):
        (WebInspector.Project.prototype.dispose):
        (WebInspector.Workspace.prototype.uiSourceCode):
        (WebInspector.Workspace.prototype.uiSourceCodeForURI):
        (WebInspector.Workspace.prototype.addProject):
        (WebInspector.Workspace.prototype.removeProject):
        (WebInspector.Workspace.prototype.project):
        (WebInspector.Workspace.prototype.uiSourceCodes):
        (WebInspector.Workspace.prototype.projectForUISourceCode):
        * inspector/front-end/inspector.html:

2013-02-11  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: fix closure compiler warnings in the profiler code
        https://bugs.webkit.org/show_bug.cgi?id=109432

        Reviewed by Pavel Feldman.

        Updated type annotations to match the code.

        * inspector/front-end/NativeMemorySnapshotView.js:
        * inspector/front-end/ProfilesPanel.js:

2013-02-11  Alexander Shalamov  <alexander.shalamov@intel.com>

        [QT] Regression (r142444): Broke qt linux minimal build
        https://bugs.webkit.org/show_bug.cgi?id=109423

        Reviewed by Kenneth Rohde Christiansen.

        Test: cssom/cssvalue-comparison.html

        * css/CSSValue.cpp:
        (WebCore::CSSValue::equals):

2013-02-11  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: introduce WebInspector.TextUtils
        https://bugs.webkit.org/show_bug.cgi?id=109289

        Reviewed by Pavel Feldman.

        Add new WebInspector.TextUtils file and extract commonly used
        text-operation subroutines from DefaultTextEditor into it.

        No new tests: no change in behaviour.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
        (WebInspector.DefaultTextEditor.WordMovementController.prototype._rangeForCtrlArrowMove):
        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
        * inspector/front-end/TextUtils.js: Added.
        (WebInspector.TextUtils.isStopChar):
        (WebInspector.TextUtils.isWordChar):
        (WebInspector.TextUtils.isSpaceChar):
        (WebInspector.TextUtils.isWord):
        (WebInspector.TextUtils.isBraceChar):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2013-02-11  Zan Dobersek  <zdobersek@igalia.com>

        [GTK][Clang] Build errors in LocalizedStringsGtk.cpp
        https://bugs.webkit.org/show_bug.cgi?id=109418

        Reviewed by Philippe Normand.

        Use the C++ isfinite(float) and abs(float) (instead of fabsf(float))
        methods by including the WTF MathExtras.h header. Use a static cast to
        an integer type on the float return value of the abs(float) method call
        instead of the C-style cast.

        No new tests - no new functiolnality.

        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::localizedMediaTimeDescription):

2013-02-11  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix for the WTFURL backend of KURL.

        * platform/KURL.cpp:
        (WebCore::KURL::isSafeToSendToAnotherThread): m_urlImpl is of RefPtr type so use
        the appropriate operator on it when calling the isSafeToSendToAnotherThread method.

2013-02-11  Mike West  <mkwst@chromium.org>

        Range::collapsed callers should explicitly ASSERT_NO_EXCEPTION.
        https://bugs.webkit.org/show_bug.cgi?id=108921

        Reviewed by Jochen Eisinger.

        For clarity and consistency, this patch adjusts Range::collapsed() to
        drop the default value of the ExceptionCode parameter it accepts. The
        three call sites that called the method with no arguments (all part of
        Editor::rangeOfString) will now explicitly ASSERT_NO_EXCEPTION.

        * dom/Range.h:
        (Range):
        * editing/Editor.cpp:
        (WebCore::Editor::rangeOfString):

2013-02-11  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Split Profiler domain in protocol into Profiler and HeapProfiler
        https://bugs.webkit.org/show_bug.cgi?id=108653

        Reviewed by Yury Semikhatsky.

        Currently CPU and heap profilers share the same domain 'Profiler' in the protocol.
        In fact these two profile types have not too much in common. So put each into its own domain.
        It should also help when Profiles panel gets split into several tools.
        This is the phase 1 which adds InspectorHeapProfilerAgent but doesn't
        change the original InspectorProfilerAgent.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/Inspector.json:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorHeapProfilerAgent.cpp: Added.
        (WebCore):
        (WebCore::InspectorHeapProfilerAgent::create):
        (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
        (WebCore::InspectorHeapProfilerAgent::~InspectorHeapProfilerAgent):
        (WebCore::InspectorHeapProfilerAgent::resetState):
        (WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
        (WebCore::InspectorHeapProfilerAgent::setFrontend):
        (WebCore::InspectorHeapProfilerAgent::clearFrontend):
        (WebCore::InspectorHeapProfilerAgent::restore):
        (WebCore::InspectorHeapProfilerAgent::collectGarbage):
        (WebCore::InspectorHeapProfilerAgent::createSnapshotHeader):
        (WebCore::InspectorHeapProfilerAgent::hasHeapProfiler):
        (WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
        (WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
        (WebCore::InspectorHeapProfilerAgent::removeProfile):
        (WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
        (WebCore::InspectorHeapProfilerAgent::getObjectByHeapObjectId):
        (WebCore::InspectorHeapProfilerAgent::getHeapObjectId):
        (WebCore::InspectorHeapProfilerAgent::reportMemoryUsage):
        * inspector/InspectorHeapProfilerAgent.h: Added.
        (WebCore):
        (InspectorHeapProfilerAgent):
        (WebCore::InspectorHeapProfilerAgent::clearProfiles):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        * inspector/InstrumentingAgents.h:
        (WebCore):
        (InstrumentingAgents):
        (WebCore::InstrumentingAgents::inspectorHeapProfilerAgent):
        (WebCore::InstrumentingAgents::setInspectorHeapProfilerAgent):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/front-end/HeapSnapshotDataGrids.js:
        * inspector/front-end/HeapSnapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapProfileHeader.prototype.startSnapshotTransfer):
        (WebInspector.HeapProfileHeader.prototype.saveToFile.onOpen):
        (WebInspector.HeapProfileHeader.prototype.saveToFile):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel):
        (WebInspector.ProfilesPanel.prototype._clearProfiles):
        (WebInspector.ProfilesPanel.prototype._garbageCollectButtonClicked):
        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
        (WebInspector.ProfilesPanel.prototype._populateProfiles.var):
        (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback):
        (WebInspector.ProfilesPanel.prototype._populateProfiles):
        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
        (WebInspector.ProfilesPanel.prototype.revealInView):
        (WebInspector.HeapProfilerDispatcher):
        (WebInspector.HeapProfilerDispatcher.prototype.addProfileHeader):
        (WebInspector.HeapProfilerDispatcher.prototype.addHeapSnapshotChunk):
        (WebInspector.HeapProfilerDispatcher.prototype.finishHeapSnapshot):
        (WebInspector.HeapProfilerDispatcher.prototype.resetProfiles):
        (WebInspector.HeapProfilerDispatcher.prototype.reportHeapSnapshotProgress):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._garbageCollectButtonClicked):
        * inspector/front-end/inspector.js:
        (WebInspector.doLoadedDone):

2013-02-11  Mike West  <mkwst@chromium.org>

        Use IGNORE_EXCEPTION for Editor::countMatchesForText's ignored exceptions.
        https://bugs.webkit.org/show_bug.cgi?id=109372

        Reviewed by Jochen Eisinger.

        Rather than implicitly ignoring exceptions, we should use the
        IGNORE_EXCEPTION macro for clarity.

        * editing/Editor.cpp:
        (WebCore::Editor::countMatchesForText):

2013-02-11  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt] Unreviewed. Fix minimal build after r142444.

        * css/CSSValue.cpp:
        (WebCore::CSSValue::equals):

2013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>

        [EFL] Stop using smart pointers for Ecore_Timer
        https://bugs.webkit.org/show_bug.cgi?id=109409

        Reviewed by Kenneth Rohde Christiansen.

        Stop using a smart pointer for Ecore_Timer in RunLoop::TimerBase. This
        is a bad idea because the timer handle becomes invalid as soon as the
        timer callback returns ECORE_CALLBACK_CANCEL. This may lead to crashes
        on destruction because OwnPtr calls ecore_timer_del() on an invalid
        handle.

        No new tests, already covered by exiting tests.

        * platform/RunLoop.h:
        (TimerBase):
        * platform/efl/RunLoopEfl.cpp:
        (WebCore::RunLoop::TimerBase::timerFired):
        (WebCore::RunLoop::TimerBase::start):
        (WebCore::RunLoop::TimerBase::stop):

2013-02-11  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Allow SplitView to keep the sidebar size as a fraction of the container size
        https://bugs.webkit.org/show_bug.cgi?id=109414

        Reviewed by Vsevolod Vlasov.

        SplitView now interprets defaultSidebarWidth and defaultSidebarHeight values between 0 and 1 as
        fractions of the total container size. The sidebar then will grow or shrink along with the container.
        When the sidebar is resized manually the updated ratio is stored in the settings.

        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView):
        (WebInspector.SplitView.prototype._removeAllLayoutProperties):
        (WebInspector.SplitView.prototype._updateTotalSize):
        (WebInspector.SplitView.prototype._innerSetSidebarSize):
        (WebInspector.SplitView.prototype._saveSidebarSize):

2013-02-11  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: highlight DOM nodes on hover while debugging
        https://bugs.webkit.org/show_bug.cgi?id=109355

        Reviewed by Vsevolod Vlasov.

        Along with showing the popover, highlight the remote object as node.

        * inspector/front-end/ObjectPopoverHelper.js:
        (WebInspector.ObjectPopoverHelper.prototype.):
        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
        (WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):

2013-02-11  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: displaying whitespace characters is broken
        https://bugs.webkit.org/show_bug.cgi?id=109412

        Reviewed by Vsevolod Vlasov.

        Add "pointer-events: none" rule for pseudo-class "before", which
        maintains rendering of whitespace characters.

        No new tests.

        * inspector/front-end/inspectorSyntaxHighlight.css:
        (.webkit-whitespace::before):

2013-02-11  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement position-based sourcemapping for stylesheets
        https://bugs.webkit.org/show_bug.cgi?id=109168

        Reviewed by Vsevolod Vlasov.

        This change introduces support for position-based source maps for CSS stylesheets.
        Sourcemaps and originating resources (sass, scss, etc.) are loaded synchronously
        upon the CSS UISourceCode addition. RangeBasedSourceMap is removed as it is not used.

        Test: http/tests/inspector/stylesheet-source-mapping.html

        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel):
        (WebInspector.CSSStyleModel.prototype.setSourceMapping):
        (WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
        (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
        (WebInspector.CSSLocation):
        (WebInspector.CSSProperty):
        (WebInspector.CSSProperty.parsePayload):
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping):
        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping):
        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
        (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
        (WebInspector.SASSSourceMapping.prototype._resourceAdded):
        (WebInspector.SASSSourceMapping.prototype._loadAndProcessSourceMap):
        (WebInspector.SASSSourceMapping.prototype.loadSourceMapForStyleSheet):
        (WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
        (WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
        (WebInspector.SASSSourceMapping.prototype.uiLocationToRawLocation):
        (WebInspector.SASSSourceMapping.prototype._reset):
        * inspector/front-end/SourceMap.js:
        (WebInspector.SourceMap):
        (WebInspector.SourceMap.load):
        (WebInspector.SourceMap.prototype.findEntry):
        (WebInspector.SourceMap.prototype.findEntryReversed):
        (WebInspector.SourceMap.prototype._parseMap):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping):
        (WebInspector.StylesSourceMapping.prototype._bindUISourceCode):
        * inspector/front-end/inspector.js:

2013-02-11  Alexander Shalamov  <alexander.shalamov@intel.com>

        Implement CSSValue::equals(const CSSValue&) to optimise CSSValue comparison
        https://bugs.webkit.org/show_bug.cgi?id=102901

        Reviewed by Antti Koivisto.

        Added comparison method to CSSValue and its children, so that the
        css values could be compared efficiently. Before this patch, CSSValue
        objects were compared using strings that were generated by the cssText() method.

        Test: cssom/cssvalue-comparison.html

        * css/CSSAspectRatioValue.cpp:
        (WebCore::CSSAspectRatioValue::equals):
        (WebCore):
        * css/CSSAspectRatioValue.h:
        (CSSAspectRatioValue):
        * css/CSSBasicShapes.cpp:
        (WebCore::CSSBasicShapeRectangle::equals):
        (WebCore):
        (WebCore::CSSBasicShapeCircle::equals):
        (WebCore::CSSBasicShapeEllipse::equals):
        (WebCore::CSSBasicShapePolygon::equals):
        * css/CSSBasicShapes.h:
        (CSSBasicShapeRectangle):
        (CSSBasicShapeCircle):
        (CSSBasicShapeEllipse):
        (CSSBasicShapePolygon):
        * css/CSSBorderImageSliceValue.cpp:
        (WebCore::CSSBorderImageSliceValue::equals):
        (WebCore):
        * css/CSSBorderImageSliceValue.h:
        (CSSBorderImageSliceValue):
        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcValue::equals):
        (WebCore):
        (WebCore::CSSCalcPrimitiveValue::equals):
        (CSSCalcPrimitiveValue):
        (WebCore::CSSCalcPrimitiveValue::type):
        (WebCore::CSSCalcBinaryOperation::equals):
        (CSSCalcBinaryOperation):
        (WebCore::CSSCalcBinaryOperation::type):
        * css/CSSCalculationValue.h:
        (WebCore::CSSCalcExpressionNode::equals):
        (CSSCalcExpressionNode):
        (CSSCalcValue):
        * css/CSSCanvasValue.cpp:
        (WebCore::CSSCanvasValue::equals):
        (WebCore):
        * css/CSSCanvasValue.h:
        (CSSCanvasValue):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
        (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
        * css/CSSCrossfadeValue.cpp:
        (WebCore::CSSCrossfadeValue::equals):
        (WebCore):
        * css/CSSCrossfadeValue.h:
        (CSSCrossfadeValue):
        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::equals):
        (WebCore):
        * css/CSSCursorImageValue.h:
        (CSSCursorImageValue):
        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::equals):
        (WebCore):
        * css/CSSFontFaceSrcValue.h:
        (CSSFontFaceSrcValue):
        * css/CSSFunctionValue.cpp:
        (WebCore::CSSFunctionValue::equals):
        (WebCore):
        * css/CSSFunctionValue.h:
        (CSSFunctionValue):
        * css/CSSGradientValue.cpp:
        (WebCore::CSSLinearGradientValue::equals):
        (WebCore):
        (WebCore::CSSRadialGradientValue::equals):
        * css/CSSGradientValue.h:
        (WebCore::CSSGradientColorStop::operator==):
        (CSSLinearGradientValue):
        (CSSRadialGradientValue):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::equals):
        (WebCore):
        * css/CSSImageValue.h:
        (CSSImageValue):
        * css/CSSInheritedValue.h:
        (WebCore::CSSInheritedValue::equals):
        (CSSInheritedValue):
        * css/CSSInitialValue.h:
        (WebCore::CSSInitialValue::equals):
        (CSSInitialValue):
        * css/CSSLineBoxContainValue.h:
        (WebCore::CSSLineBoxContainValue::equals):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::equals):
        (WebCore):
        * css/CSSPrimitiveValue.h:
        (CSSPrimitiveValue):
        * css/CSSReflectValue.cpp:
        (WebCore::CSSReflectValue::equals):
        (WebCore):
        * css/CSSReflectValue.h:
        (CSSReflectValue):
        * css/CSSTimingFunctionValue.cpp:
        (WebCore::CSSCubicBezierTimingFunctionValue::equals):
        (WebCore):
        (WebCore::CSSStepsTimingFunctionValue::equals):
        * css/CSSTimingFunctionValue.h:
        (WebCore::CSSLinearTimingFunctionValue::equals):
        (CSSLinearTimingFunctionValue):
        (CSSCubicBezierTimingFunctionValue):
        (CSSStepsTimingFunctionValue):
        * css/CSSUnicodeRangeValue.cpp:
        (WebCore::CSSUnicodeRangeValue::equals):
        (WebCore):
        * css/CSSUnicodeRangeValue.h:
        (CSSUnicodeRangeValue):
        * css/CSSValue.cpp:
        (WebCore):
        (WebCore::compareCSSValues):
        (WebCore::CSSValue::equals):
        * css/CSSValue.h:
        (CSSValue):
        (WebCore):
        (WebCore::compareCSSValueVector):
        (WebCore::compareCSSValuePtr):
        * css/CSSValueList.cpp:
        (WebCore::CSSValueList::removeAll):
        (WebCore::CSSValueList::hasValue):
        (WebCore::CSSValueList::equals):
        (WebCore):
        * css/CSSValueList.h:
        (CSSValueList):
        * css/CSSVariableValue.h:
        (WebCore::CSSVariableValue::equals):
        (CSSVariableValue):
        * css/Counter.h:
        (Counter):
        (WebCore::Counter::equals):
        * css/DashboardRegion.h:
        (WebCore::DashboardRegion::equals):
        * css/FontFeatureValue.cpp:
        (WebCore::FontFeatureValue::equals):
        (WebCore):
        * css/FontFeatureValue.h:
        (FontFeatureValue):
        * css/FontValue.cpp:
        (WebCore::FontValue::equals):
        (WebCore):
        * css/FontValue.h:
        (FontValue):
        * css/MediaQueryExp.h:
        (WebCore::MediaQueryExp::operator==):
        * css/Pair.h:
        (WebCore::Pair::equals):
        (Pair):
        * css/Rect.h:
        (WebCore::RectBase::equals):
        (RectBase):
        * css/ShadowValue.cpp:
        (WebCore::ShadowValue::equals):
        (WebCore):
        * css/ShadowValue.h:
        (ShadowValue):
        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::get4Values):
        (WebCore::StylePropertySet::propertyMatches):
        * css/WebKitCSSArrayFunctionValue.cpp:
        (WebCore::WebKitCSSArrayFunctionValue::equals):
        (WebCore):
        * css/WebKitCSSArrayFunctionValue.h:
        (WebKitCSSArrayFunctionValue):
        * css/WebKitCSSFilterValue.cpp:
        (WebCore::WebKitCSSFilterValue::equals):
        (WebCore):
        * css/WebKitCSSFilterValue.h:
        (WebKitCSSFilterValue):
        * css/WebKitCSSMixFunctionValue.cpp:
        (WebCore::WebKitCSSMixFunctionValue::equals):
        (WebCore):
        * css/WebKitCSSMixFunctionValue.h:
        (WebKitCSSMixFunctionValue):
        * css/WebKitCSSSVGDocumentValue.cpp:
        (WebCore::WebKitCSSSVGDocumentValue::equals):
        (WebCore):
        * css/WebKitCSSSVGDocumentValue.h:
        (WebKitCSSSVGDocumentValue):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::equals):
        (WebCore):
        * css/WebKitCSSShaderValue.h:
        (WebKitCSSShaderValue):
        * css/WebKitCSSTransformValue.h:
        (WebCore::WebKitCSSTransformValue::equals):
        * editing/EditingStyle.cpp:
        (WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
        * svg/SVGColor.cpp:
        (WebCore::SVGColor::equals):
        (WebCore):
        * svg/SVGColor.h:
        (SVGColor):
        * svg/SVGPaint.cpp:
        (WebCore::SVGPaint::equals):
        (WebCore):
        * svg/SVGPaint.h:
        (SVGPaint):

2013-02-11  Pan Deng  <pan.deng@intel.com>

        [Web Inspector] Network panel, sort by "transferSize" instead of "resourceSize".
        https://bugs.webkit.org/show_bug.cgi?id=109142.

        Reviewed by Vsevolod Vlasov.

        Sort by "transferSize" as it is the primary rather than "resoureSize".

        No new tests.

        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkDataGridNode.SizeComparator):

2013-02-11  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Resources] Prefactorings in DataGrid and CookieTable
        https://bugs.webkit.org/show_bug.cgi?id=109141

        Reviewed by Vsevolod Vlasov.

        1) Make deleteCookie method static and move to WebInspector.Cookie
        2) Replace resfreshCallback getter/setter in DataGrid with
        constructor parameter

        * inspector/front-end/CookieItemsView.js: Adopt changes.
        * inspector/front-end/CookieParser.js:
        (WebInspector.Cookie.prototype.remove): Moved from CookiesTable.
        * inspector/front-end/CookiesTable.js: Adopt changes.
        * inspector/front-end/DataGrid.js:
        Replace setter with constructor parameter.

2013-02-11  John J. Barton  <johnjbarton@chromium.org>

        Web Inspector: Don't throw exceptions in WebInspector.Color
        https://bugs.webkit.org/show_bug.cgi?id=104835

        Reviewed by Vsevolod Vlasov.

        WebInspector.Color.parse() returns a Color from a string, or null;
        Ctor calls now call parse();
        In the StylesSideBarPane, test null rather than catch(e).

        Added case to inspector/styles/styles-invalid-color-values.html

        * inspector/front-end/Color.js:
        (WebInspector.Color):
        (WebInspector.Color.parse):
        (WebInspector.Color.fromRGBA):
        (WebInspector.Color.fromRGB):
        (WebInspector.Color.prototype.toString):
        (WebInspector.Color.prototype._parse.this.alpha.set 0):
        (WebInspector.Color.prototype._parse.this.nickname.set 2):
        (WebInspector.Color.prototype._parse.this.hsla.set 1):
        (WebInspector.Color.prototype._parse.this.rgba.set 0):
        (WebInspector.Color.prototype._parse.set WebInspector):
        (WebInspector.Color.prototype._parse):
        * inspector/front-end/Spectrum.js:
        (WebInspector.Spectrum.prototype.get color):
        * inspector/front-end/StylesSidebarPane.js:

2013-02-11  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: home button behaviour is wrong in DTE
        https://bugs.webkit.org/show_bug.cgi?id=109154

        Reviewed by Vsevolod Vlasov.

        Handle home key shortcut explicitly in TextEditorMainPanel.

        New test: inspector/editor/text-editor-home-button.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
        (WebInspector.TextEditorMainPanel.prototype._handleHomeKey):

2013-02-11  Abhishek Arya  <inferno@chromium.org>

        Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
        https://bugs.webkit.org/show_bug.cgi?id=108981

        Reviewed by Eric Seidel.

        * Modules/mediastream/RTCStatsResponse.cpp:
        (WebCore::RTCStatsResponse::addElement):
        (WebCore::RTCStatsResponse::addStatistic):
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::skipBuffer):
        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
        (WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
        * css/WebKitCSSTransformValue.cpp:
        (WebCore::transformValueToCssString):
        * editing/TextIterator.cpp:
        (WebCore::SearchBuffer::search):
        * html/HTMLElement.cpp:
        (WebCore::parseColorStringWithCrazyLegacyRules):
        * html/ImageData.cpp:
        (WebCore::ImageData::ImageData):
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
        * html/track/TextTrackCueList.cpp:
        (WebCore::TextTrackCueList::add):
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::getSomeData):
        * platform/SharedBufferChunkReader.cpp:
        (WebCore::SharedBufferChunkReader::nextChunk):
        * platform/audio/HRTFDatabase.cpp:
        (WebCore::HRTFDatabase::getKernelsFromAzimuthElevation):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/graphics/Region.cpp:
        (WebCore::Region::Shape::segments_end):
        * platform/graphics/filters/FEComponentTransfer.cpp:
        (WebCore::FEComponentTransfer::getValues):
        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::FilterEffect::inputEffect):
        * platform/text/TextCodecUTF8.cpp:
        (WebCore::TextCodecUTF8::decode):
        * platform/text/mac/TextCodecMac.cpp:
        (WebCore::TextCodecMac::decode):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::checkFloatsInCleanLine):
        * svg/SVGAnimatedTypeAnimator.h:
        (WebCore::SVGAnimatedTypeAnimator::executeAction):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::calculatePercentForSpline):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::findInstanceTime):

2013-02-10  Chris Fleizach  <cfleizach@apple.com>

        WebSpeech: Implement basic speaking/finished speaking behavior
        https://bugs.webkit.org/show_bug.cgi?id=107135

        Reviewed by Sam Weinig.

        Implements the basic functionality of speaking utterances.

        In the WebCore side, it manages the speech queue the way the spec defines
        (that is, new jobs are appended to a queue and wait for other jobs to finish).

        On the Mac side, it instantiates a synthesizer and handles the callbacks for when
        jobs are finished. It sends those jobs back to WebCore to dispatch the right events.

        Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak.html

        * Modules/speech/SpeechSynthesis.cpp:
        (WebCore::SpeechSynthesis::SpeechSynthesis):
        (WebCore::SpeechSynthesis::paused):
        (WebCore::SpeechSynthesis::startSpeakingImmediately):
        (WebCore::SpeechSynthesis::speak):
        (WebCore):
        (WebCore::SpeechSynthesis::fireEvent):
        (WebCore::SpeechSynthesis::handleSpeakingCompleted):
        (WebCore::SpeechSynthesis::didStartSpeaking):
        (WebCore::SpeechSynthesis::didFinishSpeaking):
        (WebCore::SpeechSynthesis::speakingErrorOccurred):
        * Modules/speech/SpeechSynthesis.h:
        (WebCore):
        (WebCore::SpeechSynthesis::speaking):
        (SpeechSynthesis):
        * Modules/speech/SpeechSynthesisEvent.cpp:
        (WebCore::SpeechSynthesisEvent::create):
        (WebCore):
        (WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
        * Modules/speech/SpeechSynthesisEvent.h:
        (SpeechSynthesisEvent):
        (WebCore::SpeechSynthesisEvent::interfaceName):
        * Modules/speech/SpeechSynthesisUtterance.h:
        (WebCore::SpeechSynthesisUtterance::startTime):
        (WebCore::SpeechSynthesisUtterance::setStartTime):
        (SpeechSynthesisUtterance):
        * platform/PlatformSpeechSynthesisUtterance.cpp:
        (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
        * platform/PlatformSpeechSynthesisUtterance.h:
        (PlatformSpeechSynthesisUtterance):
        (WebCore::PlatformSpeechSynthesisUtterance::setVolume):
        (WebCore::PlatformSpeechSynthesisUtterance::setRate):
        (WebCore::PlatformSpeechSynthesisUtterance::setPitch):
        (WebCore::PlatformSpeechSynthesisUtterance::startTime):
        (WebCore::PlatformSpeechSynthesisUtterance::setStartTime):
        (WebCore::PlatformSpeechSynthesisUtterance::client):
        * platform/PlatformSpeechSynthesizer.cpp:
        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
        * platform/PlatformSpeechSynthesizer.h:
        (PlatformSpeechSynthesizerClient):
        (WebCore::PlatformSpeechSynthesizer::client):
        (PlatformSpeechSynthesizer):
        * platform/mac/PlatformSpeechSynthesizerMac.mm:
        (-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:WebCore::]):
        (-[WebSpeechSynthesisWrapper dealloc]):
        (-[WebSpeechSynthesisWrapper convertRateToWPM:]):
        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
        (WebCore::PlatformSpeechSynthesizer::speak):

2013-02-10  Eric Seidel  <eric@webkit.org>

        Make the existing HTMLPreloadScanner threading-aware
        https://bugs.webkit.org/show_bug.cgi?id=107807

        Reviewed by Adam Barth.

        The HTMLPreloadScanner and CSSPreloadScanner do a number of things.
        CSSPreloadScanner is mostly just a helper class for HTMLPreloadScanner.
        HTMLPreloadScanner runs its own copy of the HTMLTokenizer and uses
        HTMLTokenizer::updateStateFor to emulate enough of the TreeBuilder
        to get a realistic stream of tokens.  It does some additional TreeBuilder
        emulation, including tracking template tags and base tags, but mostly
        just scans the token stream for start-tags and looks for URLs in them.
        It tracks when it has seen a <style> tag and starts sending all character tokens
        to the CSSPreloadScanner until a </style> tag is seen.
        It also (unfortunately) knows some about the loader guts and how to construct
        a proper CachedResourcRequest and issue a preload.

        This patch changes the model so that the preload scanners only know how to produce
        PreloadRequest objects and append them to a passed-in vector.

        This changes the preload-scanner behavior so that preloads are now all issued in one large
        batch at the end of scanning, instead of as we hit each resource.  It's possible that
        we'll wait to instead check for preload requests more often, at a possible tradeoff
        to tokenizing speed.

        An alternate approach might be to pass in a preload-delegate of sorts which knew how
        to either build a vector, or send requests immediately.  For now the build-a-vector-always
        approach seems clean, and does not seem to slow down our PerformanceTest microbenchmarks at least.

        This patch has 2 main pieces:
        - Remove Document and (and loader) dependencies from HTMLPreloadScanner/CSSPreloadScanner
          This is done through introduction of a new HTMLResourcePreloader class which holds
          a Document* and knows how to talk to the CachedResourceLoader.
        - Clean-up HTMLPreloadScanners token-loop to not be tied to having a Tokenizer.
          (On a background thead, the HTMLPreloadScanner won't own the tokenizer, it will just
           be passed in tokens and expected to issue loads if necessary.)

        This passes all of the LayoutTests using the main thread parser.

        This patch does not make the HTMLPreloadScanner 100% ready for threading
        (it still uses AtomicString which is currently not-OK on the parser thread)
        but it's very close.  Two further (already written) patches will complete this.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::CSSPreloadScanner):
        (WebCore::CSSPreloadScanner::scan):
        (WebCore::CSSPreloadScanner::emitRule):
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore::HTMLDocumentParser::insert):
        (WebCore::HTMLDocumentParser::append):
        (WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::isStartTag):
        (WebCore):
        (WebCore::isStartOrEndTag):
        (WebCore::PreloadTask::processAttributes):
        (WebCore::PreloadTask::charset):
        (PreloadTask):
        (WebCore::PreloadTask::resourceType):
        (WebCore::PreloadTask::shouldPreload):
        (WebCore::PreloadTask::createPreloadRequest):
        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
        (WebCore::HTMLPreloadScanner::scan):
        (WebCore::HTMLPreloadScanner::processPossibleTemplateTag):
        (WebCore::HTMLPreloadScanner::processPossibleStyleTag):
        (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
        (WebCore::HTMLPreloadScanner::processToken):
        * html/parser/HTMLPreloadScanner.h:
        (HTMLPreloadScanner):
        * html/parser/HTMLResourcePreloader.cpp: Added.
        (WebCore):
        (WebCore::isStringSafeToSendToAnotherThread):
        (WebCore::PreloadRequest::isSafeToSendToAnotherThread):
        (WebCore::PreloadRequest::completeURL):
        (WebCore::PreloadRequest::resourceRequest):
        (WebCore::HTMLResourcePreloader::preload):
        * html/parser/HTMLResourcePreloader.h: Added.
        (WebCore):
        (PreloadRequest):
        (WebCore::PreloadRequest::create):
        (WebCore::PreloadRequest::PreloadRequest):
        (HTMLResourcePreloader):
        (WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
        (WebCore::HTMLResourcePreloader::createWeakPtr):
        * loader/cache/CachedResourceRequest.h:

2013-02-06  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename isolated() to getWorld(), rename worldForEnteredContextIfIsolated() to worldForEnteredContext()
        https://bugs.webkit.org/show_bug.cgi?id=109039

        Reviewed by Adam Barth.

        This is a follow-up patch for r141983.
        Rename methods for consistency.

        No tests. No change in behavior.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.h:
        (WebCore::DOMWrapperWorld::getWorld):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
        (WebCore::ScriptController::currentWorldContext):
        * bindings/v8/V8Binding.h:
        (WebCore::worldForEnteredContext):
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):

2013-02-10  Alexandre Elias  <aelias@chromium.org>

        [chromium] Fix Android scrollbar size
        https://bugs.webkit.org/show_bug.cgi?id=109374

        Reviewed by James Robinson.

        This shrinks scrollbars to 3 device-independent pixels (usually 6
        physical pixels) and deletes the edge fade. Although the Android
        system theme does have an edge fade, it's a much sharper cliff
        than we had (against black, the colors go 64 -> 64 -> 52 -> 21 -> 0)
        and I can't perceive any difference compared with no fade at all.

        No new tests (due for rewrite in a week anyway).

        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
        (WebCore):
        (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):

2013-02-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
        https://bugs.webkit.org/show_bug.cgi?id=108579

        Reviewed by Adam Barth.

        Currently V8GCController::m_edenNodes stores a list of nodes whose
        wrappers have been created since the latest GC. The reason why we
        needed m_edenNodes is that there was no way to know a list of wrappers
        in the new space of V8. By using m_edenNodes, we had been approximating
        'wrappers in the new space' by 'wrappers that have been created since
        the latest GC'.

        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
        can know a list of wrappers in the new space. By using the API, we can
        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
        need to keep m_edenNodes and that (2) it enables more precise minor
        DOM GC (Remember that m_edenNodes was just an approximation).

        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
        The benchmark runs 300 iterations, each of which creates 100000 elements.
        The benchmark measures average, min, median, max and stdev of execution times
        of the 300 iterations. This will tell us the worst-case overhead of this change.

        Before:
          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms

        After:
          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms

        As shown above, I couldn't observe any performance regression.

        No tests. No change in behavior.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::worldForEnteredContextIfIsolated):
        (WebCore::worldForEnteredContextWithoutContextCheck):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8GCController.cpp:
        (WebCore::gcTree):
        (WebCore):
        (MinorGCWrapperVisitor):
        (WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
        (WebCore::MinorGCWrapperVisitor::notifyFinished):
        (WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-02-10  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r132422): Page content and scrollbars are incorrectly offset after restoring a page from the page cache
        https://bugs.webkit.org/show_bug.cgi?id=109317
        <rdar://problem/12649131>

        Reviewed by Simon Fraser.

        Mark all scrolling that occurs beneath FrameView::layout as programmatic.

        Test: platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html

        * page/FrameView.cpp:
        (WebCore::FrameView::layout):

2013-02-10  Kent Tamura  <tkent@chromium.org>

        [Mac] Fix release build failure by recent reverts

        * WebCore.exp.in:

2013-02-10  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] media/video-controls-fullscreen-volume.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=108682

        Reviewed by Martin Robinson.

        Clean up various signal handlers and avoid bad interaction between
        the FullscreenVideoControllerGStreamer and its subclasses,
        especially when the platform video window is created.

        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
        (WebCore::FullscreenVideoControllerGStreamer::enterFullscreen):
        Initialize the window before connecting to the volume/mute
        signals. This ensures that the signals won't ever interfere with
        an inexisting window.
        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
        (WebCore::GStreamerGWorld::~GStreamerGWorld): Remove GstBus
        synchronous handler function.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
        Disconnect from volume/mute signals.
        (WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
        Keep a trace of volume/mute signal handlers.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
        Various forward type declarations to avoid un-necessary header includes.
        (MediaPlayerPrivateGStreamerBase):
        * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
        (WebCore::FullscreenVideoControllerGtk::FullscreenVideoControllerGtk):
        (WebCore::FullscreenVideoControllerGtk::volumeChanged): Bail out
        if volume button hasn't been created yet.
        (WebCore::FullscreenVideoControllerGtk::muteChanged): Ditto.

2013-02-10  Andreas Kling  <akling@apple.com>

        RenderStyle should use copy-on-write inheritance for NinePieceImage.
        <http://webkit.org/b/109366>

        Reviewed by Antti Koivisto.

        Refactor NinePieceImage to hold a copy-on-write DataRef like other RenderStyle substructures.
        This allows us to avoids copying the NinePieceImageData when one RenderStyle inherits from another
        but modifies something in the substructure holding the NinePieceImage (typically StyleSurroundData.)

        Also made RenderStyle not copy-on-write its StyleSurroundData prematurely when doing a no-op write
        to a border-image related value.

        1.23 MB progression on Membuster3.

        * rendering/style/NinePieceImage.cpp:
        (WebCore::defaultData):
        (WebCore::NinePieceImage::NinePieceImage):
        (WebCore::NinePieceImageData::NinePieceImageData):
        (WebCore::NinePieceImageData::operator==):
        * rendering/style/NinePieceImage.h:
        (WebCore::NinePieceImageData::create):
        (WebCore::NinePieceImageData::copy):
        (NinePieceImageData):
        (NinePieceImage):
        (WebCore::NinePieceImage::operator==):
        (WebCore::NinePieceImage::operator!=):
        (WebCore::NinePieceImage::hasImage):
        (WebCore::NinePieceImage::image):
        (WebCore::NinePieceImage::setImage):
        (WebCore::NinePieceImage::imageSlices):
        (WebCore::NinePieceImage::setImageSlices):
        (WebCore::NinePieceImage::fill):
        (WebCore::NinePieceImage::setFill):
        (WebCore::NinePieceImage::borderSlices):
        (WebCore::NinePieceImage::setBorderSlices):
        (WebCore::NinePieceImage::outset):
        (WebCore::NinePieceImage::setOutset):
        (WebCore::NinePieceImage::horizontalRule):
        (WebCore::NinePieceImage::setHorizontalRule):
        (WebCore::NinePieceImage::verticalRule):
        (WebCore::NinePieceImage::setVerticalRule):
        (WebCore::NinePieceImage::copyImageSlicesFrom):
        (WebCore::NinePieceImage::copyBorderSlicesFrom):
        (WebCore::NinePieceImage::copyOutsetFrom):
        (WebCore::NinePieceImage::copyRepeatFrom):
        (WebCore::NinePieceImage::setMaskDefaults):
        (WebCore::NinePieceImage::computeOutset):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::setBorderImageSource):
        (WebCore::RenderStyle::setBorderImageSlices):
        (WebCore::RenderStyle::setBorderImageWidth):
        (WebCore::RenderStyle::setBorderImageOutset):
        * rendering/style/RenderStyle.h:

2013-02-10  Kent Tamura  <tkent@chromium.org>

        Unreviewed, rolling out r142343.
        http://trac.webkit.org/changeset/142343
        https://bugs.webkit.org/show_bug.cgi?id=108284

        It might make inspector/profiler/selector-profiler-url.html
        crashy.

        * WebCore.exp.in:
        * css/plugIns.css:
        (p):
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::defaultEventHandler):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
        (WebCore::HTMLPlugInImageElement::createRenderer):
        (WebCore::HTMLPlugInImageElement::willRecalcStyle):
        (WebCore::HTMLPlugInImageElement::updateSnapshot):
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
        * html/HTMLPlugInImageElement.h:
        (WebCore):
        (HTMLPlugInImageElement):
        * page/ChromeClient.h:
        (WebCore::ChromeClient::plugInStartLabelImage):
        * platform/LocalizedStrings.cpp:
        * platform/LocalizedStrings.h:
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        * platform/chromium/LocalizedStringsChromium.cpp:
        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore):
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore):
        * platform/qt/LocalizedStringsQt.cpp:
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore):
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
        (WebCore::RenderSnapshottedPlugIn::paint):
        (WebCore::RenderSnapshottedPlugIn::paintReplaced):
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
        (WebCore::RenderSnapshottedPlugIn::startLabelImage):
        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):
        (WebCore::RenderSnapshottedPlugIn::getCursor):
        (WebCore::RenderSnapshottedPlugIn::handleEvent):
        (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel):
        * rendering/RenderSnapshottedPlugIn.h:

2013-02-10  Andreas Kling  <akling@apple.com>

        RenderText: Access characters through m_text instead of caching data pointers separately.
        <http://webkit.org/b/109357>

        Reviewed by Antti Koivisto.

        Go through RenderText::m_text.impl() instead of caching the character data pointer.
        RenderText should never have a null String in m_text so it's safe to access impl() directly.
        We have assertions for this since before.

        Removing this pointer shrinks RenderText by 8 bytes, allowing it to fit into a snugger size class.
        749 KB progression on Membuster3.

        * rendering/RenderText.cpp:
        (SameSizeAsRenderText):
        (WebCore::RenderText::RenderText):
        (WebCore::RenderText::setTextInternal):
        * rendering/RenderText.h:
        (WebCore::RenderText::is8Bit):
        (WebCore::RenderText::characters8):
        (WebCore::RenderText::characters16):
        (WebCore::RenderText::characterAt):
        (WebCore::RenderText::operator[]):
        (RenderText):

2013-02-10  Jae Hyun Park  <jae.park08@gmail.com>

        Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
        https://bugs.webkit.org/show_bug.cgi?id=104266

        Reviewed by Philippe Normand.

        Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
        the existing macro naming conventions.

        From Platform.h
        USE() - use a particular third-party library or optional OS service
        ENABLE() - turn on a specific feature of WebKit

        No new tests, no new functionality.

        * WebCore.pri:

2013-02-10  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Build errors in TextureMapperShaderProgram.cpp when compiling with Clang
        https://bugs.webkit.org/show_bug.cgi?id=109321

        Reviewed by Noam Rosenthal.

        Clang is reporting errors due to non-constant expressions that cannot be narrowed
        from double to float type in initializer list when constructing a matrix of GC3Dfloat
        numbers. To avoid this every parameter is passed through an explicit GC3Dfloat constructor.

        No new tests - no new functionality.

        * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
        (WebCore::TextureMapperShaderProgram::setMatrix):

2013-02-10  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] audio is muted when playback rate is between 0.8 and 2.0
        https://bugs.webkit.org/show_bug.cgi?id=109362

        Reviewed by Martin Robinson.

        Don't mute sound if the audio pitch is preserved. If this is not
        the case mute it if it's too extreme, as the HTML5 spec recommends.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::setRate):

2013-02-09  Dominic Mazzoni  <dmazzoni@google.com>

        fast/encoding/parser-tests-*.html tests sometimes crash
        https://bugs.webkit.org/show_bug.cgi?id=108058

        Reviewed by Chris Fleizach.

        To avoid calling accessibilityIsIgnored while the render
        tree is unstable, call accessibilityIsIgnored in the
        notification timer handler, only for childrenChanged
        notifications.

        This exposed a problem where notifications queued on
        objects can fire after the object has been deleted; fix that
        by checking the object's id, which is always set to 0 when
        removed from the tree.

        Covered by existing tests.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::childrenChanged):
        (WebCore::AXObjectCache::notificationPostTimerFired):

2013-02-09  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Do not assume MediaAccessibility framework is installed
        https://bugs.webkit.org/show_bug.cgi?id=109365

        Reviewed by Sam Weinig.

        * page/CaptionUserPreferencesMac.h:
        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Call the base class if the framework
            is not available.
        (WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
        (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
        (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Ditto.
        (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Ditto.
        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
        (WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
        (WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto.

2013-02-09  Dominic Mazzoni  <dmazzoni@google.com>

        AX: move isIgnored caching to AXObject
        https://bugs.webkit.org/show_bug.cgi?id=109322

        Reviewed by Chris Fleizach.

        There's some benefit to caching accessibilityIsIgnored
        (using AXComputedObjectAttributeCache) for more than just
        AXRenderObject, so move the caching code to AXObject.

        AXObject now has a protected virtual method
        computeAccessibilityIsIgnored, and all subclasses
        override that instead.

        No new tests.

        * accessibility/AccessibilityImageMapLink.h:
        (AccessibilityImageMapLink):
        (WebCore::AccessibilityImageMapLink::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityList.cpp:
        (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityList.h:
        (AccessibilityList):
        * accessibility/AccessibilityListBox.cpp:
        (WebCore::AccessibilityListBox::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityListBox.h:
        (AccessibilityListBox):
        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityListBoxOption.h:
        (AccessibilityListBoxOption):
        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
        (WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityMediaControls.h:
        (AccessibilityMediaControl):
        (WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
        (AccessibilityMediaTimeDisplay):
        * accessibility/AccessibilityMenuList.h:
        (WebCore::AccessibilityMenuList::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityMenuListOption.cpp:
        (WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityMenuListOption.h:
        (AccessibilityMenuListOption):
        * accessibility/AccessibilityMenuListPopup.cpp:
        (WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityMenuListPopup.h:
        (AccessibilityMenuListPopup):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityNodeObject.h:
        (AccessibilityNodeObject):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::accessibilityIsIgnored):
        (WebCore):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):
        (WebCore::AccessibilityObject::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityProgressIndicator.cpp:
        (WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityProgressIndicator.h:
        (AccessibilityProgressIndicator):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityScrollView.h:
        (AccessibilityScrollView):
        * accessibility/AccessibilityScrollbar.h:
        (WebCore::AccessibilityScrollbar::computeAccessibilityIsIgnored):
        * accessibility/AccessibilitySlider.cpp:
        (WebCore::AccessibilitySlider::computeAccessibilityIsIgnored):
        (WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
        * accessibility/AccessibilitySlider.h:
        (AccessibilitySlider):
        (AccessibilitySliderThumb):
        * accessibility/AccessibilitySpinButton.h:
        (WebCore::AccessibilitySpinButton::computeAccessibilityIsIgnored):
        (WebCore::AccessibilitySpinButtonPart::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityTable.h:
        (AccessibilityTable):
        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityTableCell.h:
        (AccessibilityTableCell):
        * accessibility/AccessibilityTableColumn.cpp:
        (WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityTableColumn.h:
        (AccessibilityTableColumn):
        * accessibility/AccessibilityTableHeaderContainer.cpp:
        (WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityTableHeaderContainer.h:
        (AccessibilityTableHeaderContainer):
        * accessibility/AccessibilityTableRow.cpp:
        (WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityTableRow.h:
        (AccessibilityTableRow):

2013-02-09  David Farler  <dfarler@apple.com>

        Make TestWebKitAPI work for iOS
        https://bugs.webkit.org/show_bug.cgi?id=108978

        Reviewed by David Kilzer.

        Tests already exist - refactor only.

        * WebCore.exp.in: Lumped __ZNK7WebCore4KURL7hasPathEv with related methods.
        * platform/KURL.cpp: Inlined hasPath() into the header
        * platform/KURL.h: Inlined hasPath() into the header

2013-02-09  Adam Barth  <abarth@webkit.org>

        Load event fires too early with threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=108984

        Reviewed by Eric Seidel.

        Previously, the DocumentLoader would always be on the stack when the
        HTMLDocumentParser was processing data from the network.  The
        DocumentLoader would then tell isLoadingInAPISense not to fire the load
        event.  Now that we process data asynchronously with the threaded
        parser, the DocumentLoader is not always on the stack, which means we
        need to delay the load event using the clause that asks the parser
        whether it is processing data.

        Unfortunately, that clause is fragile because we can check for load
        completion while we're switching parsers between the network-created
        parser and a script-created parser. To avoid accidentially triggerin
        the load event during these "gaps," this patch introduces a counter on
        document to record how many parsers are active on the stack.  While
        that numer is non-zero, we'll delay the load event. When that number
        reaches zero, we'll check for load complete.

        That last step is required because the DocumentLoader::finishLoading
        method is no longer guarunteed to check for load complete after calling
        finish on the parser because the finish operation might complete
        asynchronously.

        After this patch, the threaded parser passes all but four fast/parser
        tests.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::hasActiveParser):
        (WebCore):
        (WebCore::Document::decrementActiveParserCount):
        * dom/Document.h:
        (Document):
        (WebCore::Document::incrementActiveParserCount):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/HTMLParserScheduler.cpp:
        (WebCore::ActiveParserSession::ActiveParserSession):
        (WebCore):
        (WebCore::ActiveParserSession::~ActiveParserSession):
        (WebCore::PumpSession::PumpSession):
        (WebCore::PumpSession::~PumpSession):
        * html/parser/HTMLParserScheduler.h:
        (WebCore):
        (ActiveParserSession):
        (PumpSession):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::isLoadingInAPISense):

2013-02-09  Mike West  <mkwst@chromium.org>

        Use IGNORE_EXCEPTION for initialized, but unused, ExceptionCodes.
        https://bugs.webkit.org/show_bug.cgi?id=109295

        Reviewed by Darin Adler.

        The monster patch in http://wkbug.com/108771 missed an entire class of
        ignored exceptions. It only dealt with call sites that never initialized
        the ExceptionCode variable, on the assumption that only such call sites
        would ignore the variable's value.

        That was a flawed assumption: a large number of sites that initialize the
        ExceptionCode to 0 ignore it regardless. This patch deals with the
        almost-as-large set of callsites that initialize the variable, pass it to
        a function, and then never touch it again.

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::forceClose):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::ariaSelectedTextRange):
        (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
        (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
        (getSelectionOffsetsForObject):
        * accessibility/atk/WebKitAccessibleUtil.cpp:
        (selectionBelongsToObject):
        * dom/Node.cpp:
        (WebCore::Node::textRects):
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::hide):
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::styleAtSelectionStart):
        * editing/Editor.cpp:
        (WebCore::Editor::canDeleteRange):
        (WebCore::Editor::pasteAsPlainText):
        (WebCore::Editor::pasteAsFragment):
        (WebCore::Editor::shouldDeleteRange):
        (WebCore::Editor::dispatchCPPEvent):
        (WebCore::Editor::setComposition):
        (WebCore::Editor::advanceToNextMisspelling):
        (WebCore::isFrameInRange):
        * editing/EditorCommand.cpp:
        (WebCore::expandSelectionToGranularity):
        * editing/MergeIdenticalElementsCommand.cpp:
        (WebCore::MergeIdenticalElementsCommand::doApply):
        * editing/SplitElementCommand.cpp:
        (WebCore::SplitElementCommand::doUnapply):
        * editing/SplitTextNodeCommand.cpp:
        (WebCore::SplitTextNodeCommand::doApply):
        * editing/TextCheckingHelper.cpp:
        (WebCore::expandToParagraphBoundary):
        (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
        (WebCore::TextCheckingHelper::isUngrammatical):
        (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange):
        * editing/TextInsertionBaseCommand.cpp:
        (WebCore::dispatchBeforeTextInsertedEvent):
        (WebCore::canAppendNewLineFeedToSelection):
        * editing/TextIterator.cpp:
        (WebCore::findPlainText):
        * editing/htmlediting.cpp:
        (WebCore::extendRangeToWrappingNodes):
        (WebCore::isNodeVisiblyContainedWithin):
        * editing/visible_units.cpp:
        (WebCore::nextBoundary):
        * html/FileInputType.cpp:
        (WebCore::FileInputType::createShadowSubtree):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::setText):
        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::setText):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::didCompleteLoad):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::createShadowSubtree):
        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::createShadowSubtree):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::createShadowSubtree):
        * html/track/TextTrackList.cpp:
        (TextTrackList::asyncEventTimerFired):
        * inspector/DOMPatchSupport.cpp:
        (WebCore::DOMPatchSupport::patchDocument):
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore):
        * inspector/InspectorFileSystemAgent.cpp:
        (WebCore):
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::addRange):
        * page/DragController.cpp:
        (WebCore::DragController::dispatchTextInputEventFor):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchMouseEvent):
        (WebCore::EventHandler::handleTouchEvent):
        * page/FrameActionScheduler.cpp:
        (WebCore::EventFrameAction::fire):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
        * svg/SVGDocument.cpp:
        (WebCore::SVGDocument::dispatchZoomEvent):
        (WebCore::SVGDocument::dispatchScrollEvent):
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::SVGLength):
        (WebCore::SVGLength::value):
        * xml/parser/XMLDocumentParser.cpp:
        (WebCore::XMLDocumentParser::exitText):
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::parse):
        (WebCore::XMLDocumentParser::startDocument):
        (WebCore::XMLDocumentParser::parseCharacters):

2013-02-09  Stephen White  <senorblanco@chromium.org>

        [skia] Fix memory management in SkiaImageFilterBuilder and friends.
        https://bugs.webkit.org/show_bug.cgi?id=109326

        Sadly, skia has no official ref-counted pointers, so we must make do
        with SkAutoTUnref.

        Reviewed by James Robinson.

        Correctness covered by existing tests in css3/filters.

        * platform/graphics/filters/skia/FEBlendSkia.cpp:
        (WebCore::FEBlend::createImageFilter):
        * platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
        (WebCore::FEComponentTransfer::createImageFilter):
        * platform/graphics/filters/skia/FELightingSkia.cpp:
        (WebCore::FELighting::createImageFilter):
        Adopt refs produced by the build() pass with SkAutoTUnref.
        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
        (WebCore::SkiaImageFilterBuilder::~SkiaImageFilterBuilder):
        Unref the builder's hashmap effect pointers.
        (WebCore::SkiaImageFilterBuilder::build):
        Ref the pointer returned to the caller, and use SkAutoTUnref
        internally while building the tree.
        * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
        (SkiaImageFilterBuilder):
        Add a destructor to SkiaImageFilterBuilder.


2013-02-09  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Rename AXObject::cachedIsIgnoredValue to lastKnownIsIgnoredValue
        https://bugs.webkit.org/show_bug.cgi?id=108238

        Reviewed by Chris Fleizach.

        Simple refactoring, no new tests.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::childrenChanged):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::AccessibilityObject):
        (WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
        (WebCore::AccessibilityObject::setLastKnownIsIgnoredValue):
        (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):

2013-02-09  Anton Vayvod  <avayvod@chromium.org>
 
        [Text Autosizing] Cleanup change: converter the pointer argument to be a reference since
        non-null pointer is always expected.
        https://bugs.webkit.org/show_bug.cgi?id=109079
 
        Reviewed by Kenneth Rohde Christiansen.
 
        Cleanup change, no need to add new tests or modify the existing ones.
 
        * rendering/TextAutosizer.cpp:
 
        Changed parameter from a pointer to a reference in the methods below.
 
        (WebCore::TextAutosizer::processSubtree):
        (WebCore::TextAutosizer::processCluster):
        (WebCore::TextAutosizer::processContainer):
        (WebCore::TextAutosizer::isNarrowDescendant):
        (WebCore::TextAutosizer::isWiderDescendant):
        (WebCore::TextAutosizer::isAutosizingCluster):
        (WebCore::TextAutosizer::clusterShouldBeAutosized):
        (WebCore::TextAutosizer::measureDescendantTextWidth):
 
        * rendering/TextAutosizer.h: updated method prototypes.

2013-02-09  Rafael Brandao  <rafael.lobo@openbossa.org>

        [TexMap] Separate classes per file in TextureMapperBackingStore.h
        https://bugs.webkit.org/show_bug.cgi?id=109333

        Reviewed by Noam Rosenthal.

        TextureMapperBackingStore.h had the classes TextureMapperBackingStore,
        TextureMapperTiledBackingStore, TextureMapperSurfaceBackingStore and
        TextureMapperTile which was quite confusing. Now each one has its
        own header and its own source file.

        No new tests needed, refactoring only.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        * platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp: Added.
        (WebCore):
        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
        (WebCore::TextureMapperSurfaceBackingStore::texture):
        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
        * platform/graphics/texmap/TextureMapperSurfaceBackingStore.h: Added.
        (WebCore):
        (TextureMapperSurfaceBackingStore):
        (WebCore::TextureMapperSurfaceBackingStore::create):
        (WebCore::TextureMapperSurfaceBackingStore::~TextureMapperSurfaceBackingStore):
        (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
        * platform/graphics/texmap/TextureMapperTile.cpp: Added.
        (WebCore):
        (WebCore::TextureMapperTile::updateContents):
        (WebCore::TextureMapperTile::paint):
        * platform/graphics/texmap/TextureMapperTile.h: Added.
        (WebCore):
        (TextureMapperTile):
        (WebCore::TextureMapperTile::texture):
        (WebCore::TextureMapperTile::rect):
        (WebCore::TextureMapperTile::setTexture):
        (WebCore::TextureMapperTile::setRect):
        (WebCore::TextureMapperTile::~TextureMapperTile):
        (WebCore::TextureMapperTile::TextureMapperTile):
        * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp.
        (WebCore):
        (WebCore::TextureMapperTiledBackingStore::TextureMapperTiledBackingStore):
        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
        (WebCore::TextureMapperTiledBackingStore::adjustedTransformForRect):
        (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
        (WebCore::TextureMapperTiledBackingStore::drawBorder):
        (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
        (WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        (WebCore::TextureMapperTiledBackingStore::texture):
        * platform/graphics/texmap/TextureMapperTiledBackingStore.h: Added.
        (WebCore):
        (TextureMapperTiledBackingStore):
        (WebCore::TextureMapperTiledBackingStore::create):
        (WebCore::TextureMapperTiledBackingStore::~TextureMapperTiledBackingStore):
        (WebCore::TextureMapperTiledBackingStore::setContentsToImage):
        (WebCore::TextureMapperTiledBackingStore::rect):
        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:

2013-02-09  Philip Rogers  <pdr@google.com>

        Sanitize m_keyTimes for paced value animations
        https://bugs.webkit.org/show_bug.cgi?id=108828

        Reviewed by Dirk Schulze.

        SVG animations with calcMode=paced calculate new m_keyTimes in
        SVGAnimationElement::calculateKeyTimesForCalcModePaced() because paced animations do not
        specify keyTimes. If an error occurs while calculating m_keyTimes, and there exists
        user-specified values, a crash could occur because the user-specified values were not
        sanitized.

        This change clears user-specified keyTimes before calculating new ones.

        Test: svg/animations/animate-keytimes-crash.html

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):

2013-02-09  Eric Seidel  <eric@webkit.org>

        Fix TextDocumentParser to play nice with threading
        https://bugs.webkit.org/show_bug.cgi?id=109240

        Reviewed by Adam Barth.

        Before the HTML5 parser re-write the text document parser
        was completely custom.  With the HTML5 parser, we just made
        the TextDocumentParser use the HTMLDocumentParser with an
        artificial script tag.

        However, our solution was slightly over-engineered to avoid
        lying about the column numbers of the first line of the text document
        during parsing. :)

        This change makes us use a simpler (and threading-compatible)
        solution by just inserting a real "<pre>" tag into the
        input stream instead of hacking one together with the treebuilder
        and manually setting the Tokenizer state.

        fast/parser/empty-text-resource.html covers this case.

        * html/parser/TextDocumentParser.cpp:
        (WebCore::TextDocumentParser::TextDocumentParser):
        (WebCore::TextDocumentParser::insertFakePreElement):

2013-02-09  Kent Tamura  <tkent@chromium.org>

        Add missing copyright header
        https://bugs.webkit.org/show_bug.cgi?id=107507

        * Resources/pagepopups/chromium/calendarPickerChromium.css:
        * Resources/pagepopups/chromium/pickerCommonChromium.css:

2013-02-09  Kent Tamura  <tkent@chromium.org>

        Fix crash by img[ismap] with content property
        https://bugs.webkit.org/show_bug.cgi?id=108702

        Reviewed by Adam Barth.

        Test: fast/dom/HTMLAnchorElement/anchor-ismap-crash.html

        * html/HTMLAnchorElement.cpp:
        (WebCore::appendServerMapMousePosition):
        Check if the renderer of an img element is RenderImage.

2013-02-09  Mike West  <mkwst@chromium.org>

        Drop ExceptionCode from IDB's directionToString and modeToString.
        https://bugs.webkit.org/show_bug.cgi?id=109143

        Reviewed by Jochen Eisinger.

        No caller of either IDBCursor::directionToString or
        IDBTransaction::modeToString makes use of the ExceptionCode these
        methods require. This patch removes the 'ExceptionCode&' parameter from
        both methods and their callsites.

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::direction):
        (WebCore::IDBCursor::directionToString):
            Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
            exception previously generated with ASSERT_NOT_REACHED.
        * Modules/indexeddb/IDBCursor.h:
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::mode):
        (WebCore::IDBTransaction::modeToString):
            Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
            exception previously generated with ASSERT_NOT_REACHED.
        * Modules/indexeddb/IDBTransaction.h:

2013-02-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][Qt][WebGL] Share the common code between GraphicsSurfaceGLX and X11WindowResources.
        https://bugs.webkit.org/show_bug.cgi?id=106666

        Reviewed by Kenneth Rohde Christiansen.

        Covered by existing WebGL tests.

        This patch removes any duplicate code in X11WindowResources and
        GraphicsSurfaceGLX. No new functionality is added.

        * PlatformEfl.cmake:
        * Target.pri:
        * platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
        (WebCore::EGLConfigSelector::pixmapContextConfig):
        * platform/graphics/surfaces/egl/EGLConfigSelector.h:
        (EGLConfigSelector):
        * platform/graphics/surfaces/egl/EGLSurface.cpp:
        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
        (WebCore::EGLWindowTransportSurface::destroy):
        (WebCore::EGLWindowTransportSurface::setGeometry):
        * platform/graphics/surfaces/egl/EGLSurface.h:
        (WebCore):
        (EGLWindowTransportSurface):
        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
        (WebCore::GLXConfigSelector::GLXConfigSelector):
        (WebCore::GLXConfigSelector::visualInfo):
        (WebCore::GLXConfigSelector::pBufferContextConfig):
        (WebCore::GLXConfigSelector::createSurfaceConfig):
        (GLXConfigSelector):
        * platform/graphics/surfaces/glx/GLXContext.cpp:
        (WebCore::initializeARBExtensions):
        (WebCore::GLXOffScreenContext::GLXOffScreenContext):
        (WebCore::GLXOffScreenContext::initialize):
        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
        (WebCore::GLXOffScreenContext::freeResources):
        * platform/graphics/surfaces/glx/GLXContext.h:
        (GLXOffScreenContext):
        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        (WebCore::GLXTransportSurface::setGeometry):
        (WebCore::GLXTransportSurface::destroy):
        (WebCore::GLXPBuffer::initialize):
        * platform/graphics/surfaces/glx/GLXSurface.h:
        (GLXTransportSurface):
        (GLXPBuffer):
        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::initialize):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::display):
        (WebCore::GraphicsSurfacePrivate::flags):
        (WebCore::GraphicsSurfacePrivate::clear):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        No new functionality added. Made changes to take the common code into use.

        * platform/graphics/surfaces/glx/X11WindowResources.h: Removed.
        * platform/graphics/surfaces/glx/X11Helper.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/glx/X11WindowResources.cpp.
        (WebCore):
        (WebCore::DisplayConnection::DisplayConnection):
        (DisplayConnection):
        (WebCore::DisplayConnection::~DisplayConnection):
        (WebCore::DisplayConnection::display):
        (OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::rootWindow):
        (WebCore::X11Helper::resizeWindow):
        (WebCore::X11Helper::createOffScreenWindow):
        (WebCore::X11Helper::destroyWindow):
        (WebCore::X11Helper::isXRenderExtensionSupported):
        (WebCore::X11Helper::nativeDisplay):
        (WebCore::X11Helper::offscreenRootWindow):
        * platform/graphics/surfaces/glx/X11Helper.h: Added.
        (WebCore):
        (WebCore::handleXPixmapCreationError):
        (X11Helper):
        (ScopedXPixmapCreationErrorHandler):
        (WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
        (WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
        (WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
        Moved common code from GraphicsSurfaceGLX to X11Helper.

2013-02-09  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: show whitespace characters in DTE
        https://bugs.webkit.org/show_bug.cgi?id=108947

        Reviewed by Pavel Feldman.

        New test: inspector/editor/text-editor-show-whitespaces.html

        Split consecutive whitespace characters into groups of 16, 8, 4, 2 and 1 and
        add ::before pseudoclass for this groups which contains necessary
        amount of "dots" (u+00b7). Add a setting "Show whitespace" for this
        option in "Sources" section of "General" tab.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype.wasShown):
        (WebInspector.TextEditorMainPanel.prototype.willHide):
        (WebInspector.TextEditorMainPanel.prototype._renderRanges):
        (WebInspector.TextEditorMainPanel.prototype._renderWhitespaceCharsWithFixedSizeSpans):
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):
        * inspector/front-end/inspectorSyntaxHighlight.css:
        (.webkit-whitespace-1::before):
        (.webkit-whitespace-2::before):
        (.webkit-whitespace-4::before):
        (.webkit-whitespace-8::before):
        (.webkit-whitespace-16::before):
        (.webkit-whitespace::before):

2013-02-08  Eric Carlson  <eric.carlson@apple.com>

        [Mac] respect in-band caption color
        https://bugs.webkit.org/show_bug.cgi?id=109203

        Reviewed by Dean Jackson.

        Test: media/track/track-in-band-style.html

        * WebCore.xcodeproj/project.pbxproj: Add HTMLDivElement.h to private headers because it is 
            included by HTMLTextElement, which is included by HTMLMediaElement.h, which is included 
            by files in WebKit/WebKit2.
        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::addGenericCue): Set cue colors if necessary.

        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::element): New, accessor for the cue element so it can be styled.

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Set container and cue background 
            color if necessary.
        (WebCore::TextTrackCueGeneric::operator==): Compare cue colors.
        * html/track/TextTrackCueGeneric.h:
        (WebCore::TextTrackCueGeneric::foregroundColor): Add color accessors.
        (WebCore::TextTrackCueGeneric::setForegroundColor):
        (WebCore::TextTrackCueGeneric::backgroundColor):
        (WebCore::TextTrackCueGeneric::setBackgroundColor):

        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Always
            regenerate override CSS when an element registers for callbacks.
        (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Drive by fix of "window color" padding.
        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Log the stylesheet generated
            for easier debugging.

        * platform/graphics/InbandTextTrackPrivateClient.h:
        (WebCore::GenericCueData::foregroundColor): Add color getters/setters.
        (WebCore::GenericCueData::setForegroundColor):
        (WebCore::GenericCueData::backgroundColor):
        (WebCore::GenericCueData::setBackgroundColor):

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::makeRGBA32FromARGBCFArray): Initialize a RGBA32 from a CFArray of color values.
        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Process cue colors.

2013-02-08  Benjamin Poulain  <bpoulain@apple.com>

        Move workerThreadCount from TestRunner to WebCore Internals
        https://bugs.webkit.org/show_bug.cgi?id=109239

        Reviewed by Darin Adler.

        Add the new read-only property workerThreadCount.

        * testing/Internals.cpp:
        (WebCore::Internals::workerThreadCount):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-02-08  Dean Jackson  <dino@apple.com>

        Snapshotted plug-in should use shadow root
        https://bugs.webkit.org/show_bug.cgi?id=108284

        Reviewed by Simon Fraser.

        Take two! This time with updated exports file.

        A snapshotted plugin needs to indicate to the user that it can be clicked
        to be restarted. Previously this was done with an image that had embedded
        text. Instead, we now use an internal shadow root to embed some markup that
        will display instructions that can be localised.

        The UA stylesheet for plug-ins provides a default styling for the label, which
        can be overridden by ports.

        In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
        since it is only responsible for drawing a paused plug-in. The snapshot creation
        can work with the default renderer, but a shadow root requires something like
        RenderBlock in order to draw its children. We swap from one renderer to another when
        necessary either by creating the shadow root or by explicitly detaching and attaching
        the plugin element.

        Unfortunately this is difficult to test, because the snapshotting requires
        time to execute, and also a PluginView to be instantiated.

        * WebCore.exp.in: Export the InlineBox interface.

        * css/plugIns.css:
        (object::-webkit-snapshotted-plugin-content): New rules for a default label style.

        * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
        * platform/LocalizedStrings.h:
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        * platform/chromium/LocalizedStringsChromium.cpp:
        * platform/efl/LocalizedStringsEfl.cpp:
        * platform/gtk/LocalizedStringsGtk.cpp:
        * platform/qt/LocalizedStringsQt.cpp:

        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
        that RenderSnapshottedPlugIn no longer is an embedded object.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
        (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
        (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
        (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
            a renderer, otherwise use the typical plug-in path.
        (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
            need to give it to the renderer.
        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
        * html/HTMLPlugInImageElement.h:
        (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
            should show immediately.
        (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
            to swap to the Shadow Root.
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
            in being recreated. Make sure we reattach so that a plugin renderer will be created.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
            displayState for snapshots.
        * html/HTMLPlugInImageElement.h:
        (HTMLPlugInImageElement): The new methods listed above.
        (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
            a snapshot should be immediately labeled.

        * page/ChromeClient.h: No need for plugInStartLabelImage any more.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
        (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
        (WebCore::RenderSnapshottedPlugIn::getCursor):
        (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
        * rendering/RenderSnapshottedPlugIn.h:
        (RenderSnapshottedPlugIn): New inheritance. Some method renaming.

2013-02-08  Dean Jackson  <dino@apple.com>

        Rolling out r142333 and r142337 which broke Mac Release builds.

2013-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142337.
        http://trac.webkit.org/changeset/142337
        https://bugs.webkit.org/show_bug.cgi?id=109339

        Breaking Mac release builds (Requested by dino_ on #webkit).

        * rendering/RenderSnapshottedPlugIn.h:

2013-02-08  Dean Jackson  <dino@apple.com>

        Attempted Mac and GTK build fix after r142333.

        * rendering/RenderSnapshottedPlugIn.h: Include InlineBox.h.

2013-02-08  Andy Estes  <aestes@apple.com>

        Restore pre-r118852 behavior for EllipsisBox::nodeAtPoint()
        https://bugs.webkit.org/show_bug.cgi?id=109277

        Reviewed by Simon Fraser.

        Test: fast/flexbox/line-clamp-link-after-ellipsis.html

        Roll out r118852. Enough time has passed that this can't be done
        mechanically, so transcribe the old method definition to current
        WebCore interfaces.

        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::markupBox): EllipsisBox no longer has
        m_markupBox, so break the logic for finding the markup box from
        paintMarkupBox() into its own function.
        (WebCore::EllipsisBox::paintMarkupBox): Call markupBox().
        (WebCore::EllipsisBox::nodeAtPoint): Transcribe the pre-r118852 implementation.
        * rendering/EllipsisBox.h:
        (EllipsisBox): Declare markupBox().

2013-02-08  Eric Carlson  <eric.carlson@apple.com>

        [Mac] In-band closed caption tracks are not always initialized correctly
        https://bugs.webkit.org/show_bug.cgi?id=109323

        Reviewed by Dean Jackson.

        No new tests, this fix makes existing tests less flakey.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Create and configure legible output
            here instad of in tracksChanged.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setClosedCaptionsVisible): Do nothing in a build with
            in-band track support.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Move legible output creation to 
            createAVPlayerItem, don't set look at track media type to see if the movie has captions 
            when we have support for in-band captions.

2013-02-08  Dean Jackson  <dino@apple.com>

        Snapshotted plug-in should use shadow root
        https://bugs.webkit.org/show_bug.cgi?id=108284

        Reviewed by Simon Fraser.

        A snapshotted plugin needs to indicate to the user that it can be clicked
        to be restarted. Previously this was done with an image that had embedded
        text. Instead, we now use an internal shadow root to embed some markup that
        will display instructions that can be localised.

        The UA stylesheet for plug-ins provides a default styling for the label, which
        can be overridden by ports.

        In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
        since it is only responsible for drawing a paused plug-in. The snapshot creation
        can work with the default renderer, but a shadow root requires something like
        RenderBlock in order to draw its children. We swap from one renderer to another when
        necessary either by creating the shadow root or by explicitly detaching and attaching
        the plugin element.

        Unfortunately this is difficult to test, because the snapshotting requires
        time to execute, and also a PluginView to be instantiated.

        * css/plugIns.css:
        (object::-webkit-snapshotted-plugin-content): New rules for a default label style.

        * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
        * platform/LocalizedStrings.h:
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        * platform/chromium/LocalizedStringsChromium.cpp:
        * platform/efl/LocalizedStringsEfl.cpp:
        * platform/gtk/LocalizedStringsGtk.cpp:
        * platform/qt/LocalizedStringsQt.cpp:

        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
        that RenderSnapshottedPlugIn no longer is an embedded object.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
        (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
        (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
        (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
            a renderer, otherwise use the typical plug-in path.
        (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
            need to give it to the renderer.
        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
        * html/HTMLPlugInImageElement.h:
        (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
            should show immediately.
        (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
            to swap to the Shadow Root.
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
            in being recreated. Make sure we reattach so that a plugin renderer will be created.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
            displayState for snapshots.
        * html/HTMLPlugInImageElement.h:
        (HTMLPlugInImageElement): The new methods listed above.
        (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
            a snapshot should be immediately labeled.

        * page/ChromeClient.h: No need for plugInStartLabelImage any more.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
        (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
        (WebCore::RenderSnapshottedPlugIn::getCursor):
        (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
        * rendering/RenderSnapshottedPlugIn.h:
        (RenderSnapshottedPlugIn): New inheritance. Some method renaming.

2013-02-08  Kentaro Hara  <haraken@chromium.org>

        {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator should be in FocusEvent.cpp
        https://bugs.webkit.org/show_bug.cgi?id=109265

        Reviewed by Dimitri Glazkov.

        Conventionally we put XXXEventDispatchMediator to XXXEvent.cpp.
        We should move {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator to FocusEvent.cpp.

        No tests. No change in behavior.

        * dom/EventDispatchMediator.cpp:
        * dom/EventDispatchMediator.h:
        * dom/FocusEvent.cpp:
        (WebCore::FocusEventDispatchMediator::create):
        (WebCore):
        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::create):
        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        (WebCore::FocusInEventDispatchMediator::create):
        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::create):
        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        * dom/FocusEvent.h:
        (WebCore):
        (FocusEventDispatchMediator):
        (BlurEventDispatchMediator):
        (FocusInEventDispatchMediator):
        (FocusOutEventDispatchMediator):
        * dom/UIEvent.cpp:
        * dom/UIEvent.h:

2013-02-08  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix. MSVC (and other compilers) need a default: case in switch statement.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::notificationName):

2013-02-08  Jer Noble  <jer.noble@apple.com>

        Bring WebKit up to speed with latest Encrypted Media spec.
        https://bugs.webkit.org/show_bug.cgi?id=97037

        Reviewed by Eric Carlson.

        The most recent version of the Encrypted Media Extensions spec breaks functionality out of the
        HTMLMediaElement and into new MediaKeys and MediaKeySession classes. Since the CDM functionality
        has been pulled out of the media element, we create a proxy CDM class and factory system for
        creating specific CDM key system implementations. The spec also breaks out MediaKeyEvent
        into distinct event classes, MediaKeyNeededEvent and MediaKeyMessageEvent, for needkey and
        keymessage events, respectively.

        Tests: media/encrypted-media/encrypted-media-v2-events.html
               media/encrypted-media/encrypted-media-v2-syntax.html

        CDM is a proxy class (a la MediaPlayer) for a specific CDMPrivateInterface implementation. A CDM
        implementation is registered with the CDMFactory and will be created if that implementation supports
        the key system passed into the MediaKeys constructor. CDMSession is a pure-virtual interface exposed
        by concrete CDMPrivate subclasses.  Its lifetime is owned by MediaKeySession.
        * Modules/encryptedmedia/CDM.cpp: Added.
        (WebCore::installedCDMFactories): Initialize all the known CDM subtypes. Ports will add CDM implementations here.
        (WebCore::CDM::registerCDMFactory): Registers a new CDMFactory using the passed in function pointers.
        (WebCore::CDMFactoryForKeySystem): Return the first CDM factory which supports the requested key system.
        (WebCore::CDM::supportsKeySystem): Walk the installed CDMs and ask if the given key system is supported.
        (WebCore::CDM::supportsKeySystemMIMETypeAndCodec): Ditto, with an additional MIME type and codec string.
        (WebCore::CDM::create): Simple constructor wrapper.
        (WebCore::CDM::CDM): Simple constructor; calls bestCDMForKeySystem() to create it's private implementation.
        (WebCore::CDM::~CDM): Simple destructor.
        (WebCore::CDM::createSession): Creates a new CDMSession.
        * Modules/encryptedmedia/CDM.h: Added.
        (WebCore::CDM::keySystem): Simple accessor for m_keySystem.
        (WebCore::CDMSession::CDMSession): Simple constructor.
        (WebCore::CDMSession::~CDMSession): Simple destructor.
        * Modules/encryptedmedia/CDMPrivate.h: Added.
        (WebCore::CDMPrivateInterface::CDMPrivateInterface): Simple constructor.
        (WebCore::CDMPrivateInterface::~CDMPrivateInterface): Simple destructor.

        The new classes, MediaKeyMessageEvent and MediaKeyNeededEvent, take distinct subsets of the initializers of
        the original MediaKeyMessageEvent.
        * Modules/encryptedmedia/MediaKeyMessageEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.cpp.
        (WebCore::MediaKeyMessageEventInit::MediaKeyMessageEventInit): Initializer now only takes message and destinationURL
            parameters.
        (WebCore::MediaKeyMessageEvent::MediaKeyMessageEvent): Simple constructor.
        (WebCore::MediaKeyMessageEvent::~MediaKeyMessageEvent): Simple destructor.
        (WebCore::MediaKeyMessageEvent::interfaceName): Standard interfaceName.
        * Modules/encryptedmedia/MediaKeyMessageEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
        (WebCore::MediaKeyMessageEvent::create): Simple construction wrapper.
        (WebCore::MediaKeyMessageEvent::message): Simple accessor for m_message.
        (WebCore::MediaKeyMessageEvent::destinationURL): Simple accessor for m_destinationURL.
        * Modules/encryptedmedia/MediaKeyMessageEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
        * Modules/encryptedmedia/MediaKeyNeededEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.h.
        (WebCore::MediaKeyNeededEventInit::MediaKeyNeededEventInit): Initializer now only takes initData parameter.
        (WebCore::MediaKeyNeededEvent::MediaKeyNeededEvent): Simple constructor.
        (WebCore::MediaKeyNeededEvent::~MediaKeyNeededEvent): Simple destructor.
        (WebCore::MediaKeyNeededEvent::interfaceName): Standard interfaceName.
        * Modules/encryptedmedia/MediaKeyNeededEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
        (WebCore::MediaKeyNeededEvent::create): Simple construction wrapper.
        (WebCore::MediaKeyNeededEvent::initData): Simple accessor for m_initData.
        * Modules/encryptedmedia/MediaKeyNeededEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.

        MediaKeySession is a new class that maps keys and key requests to a given session ID:
        * Modules/encryptedmedia/MediaKeySession.cpp: Added.
        (WebCore::MediaKeySession::create): Simple construction wrapper.
        (WebCore::MediaKeySession::MediaKeySession): Simple constructor.
        (WebCore::MediaKeySession::~MediaKeySession): Simple destructor; calls close().
        (WebCore::MediaKeySession::setError): Simple setter for m_error;
        (WebCore::MediaKeySession::close): Tell the CDM to clear any saved session keys.
        (WebCore::MediaKeySession::generateKeyRequest): Start a one-shot timer, handled in keyRequestTimerFired.
        (WebCore::MediaKeySession::keyRequestTimerFired): Follow the steps in the spec; ask the CDM to generate a key request.
        (WebCore::MediaKeySession::addKey): Start a one-shot timer, handled in addKeyTimerFired.
        (WebCore::MediaKeySession::addKeyTimerFired): Follow the steps in the spec; provide the key data to the CDM.
        * Modules/encryptedmedia/MediaKeySession.h: Added.
        (WebCore::MediaKeySession::keySystem): Simple accessor for m_keySystem.
        (WebCore::MediaKeySession::sessionId): Simple accessor for m_sessionId.
        (WebCore::MediaKeySession::error): Simple accessor for m_error;
        * Modules/encryptedmedia/MediaKeySession.idl:

        MediaKeySession inherits from EventTarget, and must override the pure virtual functions in that class:
        * Modules/encryptedmedia/MediaKeySession.cpp: Added.
        (WebCore::MediaKeySession::interfaceName):
        * Modules/encryptedmedia/MediaKeySession.h: Added.
        (WebCore::MediaKeySession::refEventTarget):
        (WebCore::MediaKeySession::derefEventTarget):
        (WebCore::MediaKeySession::eventTargetData):
        (WebCore::MediaKeySession::ensureEventTargetData):
        (WebCore::MediaKeySession::scriptExecutionContext):

        MediaKeys is a new class that encapsulates a CDM and a number of key sessions:
        * Modules/encryptedmedia/MediaKeys.cpp: Added.
        (WebCore::MediaKeys::create): Throw an exception if the key system parameter is unsupported; create a CDM object
            and a new MediaKeys session.
        (WebCore::MediaKeys::MediaKeys): Simple constructor.
        (WebCore::MediaKeys::~MediaKeys): Simple destructor.
        (WebCore::MediaKeys::createSession): Follow the spec and create a new key session.
        * Modules/encryptedmedia/MediaKeys.h: Added.
        * Modules/encryptedmedia/MediaKeys.idl: Copied from Source/WebCore/html/MediaError.idl.

        Provide a new interface to HTMLMediaElement for MediaPlayer which does not require a sessionId or a key system:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::keyNeeded):

        MediaKeyError now has a systemCode parameter and member variable.
        * html/MediaKeyError.h:
        (WebCore::MediaKeyError::create): Take a systemCode parameter with a default (0) value.
        (WebCore::MediaKeyError::MediaKeyError): Ditto.
        (WebCore::MediaKeyError::systemCode): Simple accessor for m_systemCode.
        * html/MediaKeyError.idl:

        Add new methods to HTMLMediaElement to support MediaKeys. Support different initializer
        for the MediaKeyNeededEvent.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setMediaKeys): Simple setter for m_mediaKeys.
        (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): This version takes fewer parameters
            than the deprecated version.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::mediaKeys): Simple accessor for m_mediaKeys.
        * html/HTMLMediaElement.idl: Add the mediaKeys attribute.

        Add an ENABLE(ENCRYPTED_MEDIA_V2) check to the existing ENABLE(ENCRYPTED_MEDIA) one:
        * html/MediaError.h:
        * html/MediaError.idl:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::bestMediaEngineForTypeAndCodecs):
        (WebCore::MediaPlayer::supportsType):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayer::keyNeeded): This version takes fewer parameters than the
            deprecated version.

        Support the new version of canPlayType which takes an extra parameter:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType):
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
        (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType):

        Add a mock CDM for use within DRT and WKTR to test the MediaKeys and MediaKeySession
        APIs and events:
        * testing/Internals.cpp:
        (WebCore::Internals::initializeMockCDM): Add the MockCDM class to the CDM factories.
        * testing/Internals.h:
        * testing/Internals.idl: Add the initializeMockCDM() method.
        * testing/MockCDM.cpp: Added.
        (WebCore::MockCDM::supportsKeySystem): Only supports the 'com.webcore.mock' key system.
        (WebCore::MockCDM::supportsMIMEType): Only supports the 'video/mock' mime type.
        (WebCore::initDataPrefix): Static method which returns a Uint8Array containing 'mock'.
        (WebCore::keyPrefix): Static method which returns a Uint8Array containing 'key'.
        (WebCore::keyRequest): Static method which returns a Uint8Array containing 'request'.
        (WebCore::generateSessionId): Return a monotonically increasing number.
        (WebCore::MockCDMSession::MockCDMSession): Simple constructor.
        (WebCore::MockCDMSession::generateKeyRequest): Ignores the parameters and returns a keyRequest() array.
        (WebCore::MockCDMSession::releaseKeys): No-op.
        (WebCore::MockCDMSession::addKey): Checks that the key starts with the keyPrefix() array.
        * testing/MockCDM.h: Added.
        (WebCore::MockCDM::create):
        (WebCore::MockCDM::~MockCDM): Simple destructor.
        (WebCore::MockCDM::MockCDM): Simple constructor.

        Add the new classes to the built system:
        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

        Miscelaneous changes:
        * dom/EventNames.in: Add the two new event types, MediaKeyMessageEvent and MediaKeyNeededEvent.
        * dom/EventTargetFactory.in: Add the new EventTarget, MediaKeySession.
        * page/DOMWindow.idl: Add constructors for the new classes to the window object.

2013-02-08  Chris Fleizach  <cfleizach@apple.com>

        Refactor platform-specific code in SpeechSynthesis
        https://bugs.webkit.org/show_bug.cgi?id=107414

        Reviewed by Sam Weinig.

        Refactor WebSpeech code to use a platform mechanism to provide access to platform resources.

        * Modules/speech/DOMWindowSpeechSynthesis.cpp:
        (WebCore::DOMWindowSpeechSynthesis::from):
        * Modules/speech/SpeechSynthesis.cpp:
        (WebCore::SpeechSynthesis::SpeechSynthesis):
        (WebCore):
        (WebCore::SpeechSynthesis::voicesDidChange):
        (WebCore::SpeechSynthesis::getVoices):
        (WebCore::SpeechSynthesis::pending):
        (WebCore::SpeechSynthesis::speaking):
        (WebCore::SpeechSynthesis::paused):
        (WebCore::SpeechSynthesis::speak):
        (WebCore::SpeechSynthesis::cancel):
        (WebCore::SpeechSynthesis::pause):
        (WebCore::SpeechSynthesis::resume):
        * Modules/speech/SpeechSynthesis.h:
        (WebCore):
        (SpeechSynthesis):
        (WebCore::SpeechSynthesis::didStartSpeaking):
        (WebCore::SpeechSynthesis::didFinishSpeaking):
        (WebCore::SpeechSynthesis::speakingErrorOccurred):
        * Modules/speech/SpeechSynthesisUtterance.cpp:
        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
        * Modules/speech/SpeechSynthesisUtterance.h:
        (WebCore::SpeechSynthesisUtterance::text):
        (WebCore::SpeechSynthesisUtterance::setText):
        (WebCore::SpeechSynthesisUtterance::lang):
        (WebCore::SpeechSynthesisUtterance::setLang):
        (WebCore::SpeechSynthesisUtterance::voiceURI):
        (WebCore::SpeechSynthesisUtterance::setVoiceURI):
        (WebCore::SpeechSynthesisUtterance::volume):
        (WebCore::SpeechSynthesisUtterance::setVolume):
        (WebCore::SpeechSynthesisUtterance::rate):
        (WebCore::SpeechSynthesisUtterance::setRate):
        (WebCore::SpeechSynthesisUtterance::pitch):
        (WebCore::SpeechSynthesisUtterance::setPitch):
        (SpeechSynthesisUtterance):
        (WebCore::SpeechSynthesisUtterance::platformUtterance):
        * Modules/speech/SpeechSynthesisVoice.cpp:
        (WebCore::SpeechSynthesisVoice::create):
        (WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
        * Modules/speech/SpeechSynthesisVoice.h:
        (SpeechSynthesisVoice):
        (WebCore::SpeechSynthesisVoice::voiceURI):
        (WebCore::SpeechSynthesisVoice::name):
        (WebCore::SpeechSynthesisVoice::lang):
        (WebCore::SpeechSynthesisVoice::localService):
        (WebCore::SpeechSynthesisVoice::isDefault):
        * Modules/speech/mac/SpeechSynthesisMac.mm:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/PlatformSpeechSynthesis.h: Added.
        (WebCore):
        (PlatformSpeechSynthesis):
        * platform/PlatformSpeechSynthesisUtterance.cpp: Added.
        (WebCore):
        (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
        * platform/PlatformSpeechSynthesisUtterance.h: Added.
        (WebCore):
        (PlatformSpeechSynthesisUtteranceClient):
        (WebCore::PlatformSpeechSynthesisUtteranceClient::~PlatformSpeechSynthesisUtteranceClient):
        (PlatformSpeechSynthesisUtterance):
        (WebCore::PlatformSpeechSynthesisUtterance::text):
        (WebCore::PlatformSpeechSynthesisUtterance::setText):
        (WebCore::PlatformSpeechSynthesisUtterance::lang):
        (WebCore::PlatformSpeechSynthesisUtterance::setLang):
        (WebCore::PlatformSpeechSynthesisUtterance::voiceURI):
        (WebCore::PlatformSpeechSynthesisUtterance::setVoiceURI):
        (WebCore::PlatformSpeechSynthesisUtterance::volume):
        (WebCore::PlatformSpeechSynthesisUtterance::setVolume):
        (WebCore::PlatformSpeechSynthesisUtterance::rate):
        (WebCore::PlatformSpeechSynthesisUtterance::setRate):
        (WebCore::PlatformSpeechSynthesisUtterance::pitch):
        (WebCore::PlatformSpeechSynthesisUtterance::setPitch):
        * platform/PlatformSpeechSynthesisVoice.cpp: Added.
        (WebCore):
        (WebCore::PlatformSpeechSynthesisVoice::create):
        (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
        * platform/PlatformSpeechSynthesisVoice.h: Added.
        (WebCore):
        (PlatformSpeechSynthesisVoice):
        (WebCore::PlatformSpeechSynthesisVoice::voiceURI):
        (WebCore::PlatformSpeechSynthesisVoice::name):
        (WebCore::PlatformSpeechSynthesisVoice::lang):
        (WebCore::PlatformSpeechSynthesisVoice::localService):
        (WebCore::PlatformSpeechSynthesisVoice::isDefault):
        * platform/PlatformSpeechSynthesizer.cpp: Added.
        (WebCore):
        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
        * platform/PlatformSpeechSynthesizer.h: Added.
        (WebCore):
        (PlatformSpeechSynthesizerClient):
        (WebCore::PlatformSpeechSynthesizerClient::~PlatformSpeechSynthesizerClient):
        (PlatformSpeechSynthesizer):
        (WebCore::PlatformSpeechSynthesizer::voiceList):
        * platform/mac/PlatformSpeechSynthesisMac.mm: Added.
        (WebCore):
        (WebCore::PlatformSpeechSynthesis::create):
        (WebCore::PlatformSpeechSynthesis::PlatformSpeechSynthesis):
        (WebCore::PlatformSpeechSynthesis::platformSpeak):
        * platform/mac/PlatformSpeechSynthesizerMac.mm: Added.
        (WebCore):
        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
        (WebCore::PlatformSpeechSynthesizer::speak):

2013-02-08  Dean Jackson  <dino@apple.com>

        Put snapshotting label text into localizable strings
        https://bugs.webkit.org/show_bug.cgi?id=108268

        Reviewed by Simon Fraser.

        In preparation for a snapshotted plug-in using a ShadowRoot, allow
        its label to be localized.

        * English.lproj/Localizable.strings:
        * platform/LocalizedStrings.cpp:
        (WebCore::snapshottedPlugInLabelTitle): New method for returning title.
        (WebCore::snapshottedPlugInLabelSubtitle): New method for returning subtitle.
        * platform/LocalizedStrings.h:

2013-02-08  Dean Jackson  <dino@apple.com>

        Do not register autostart for plugins from file:// (or nowhere)
        https://bugs.webkit.org/show_bug.cgi?id=108271

        Reviewed by Tim Horton.

        If the page url origin is treated as a local URL, don't attempt
        to add it to the auto-start list.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):

2013-02-08  Adam Barth  <abarth@webkit.org>

        Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
        https://bugs.webkit.org/show_bug.cgi?id=107190

        Reviewed by Eric Seidel.

        This patch replaces the parser map with WeakPtr. We now use WeakPtrs to
        communicate from the main thread to the background thread. (We were
        already using WeakPtrs to communicate from the background thread to the
        main thread.) This change lets us remove a bunch of boilerplate code.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::stop):
        (WebCore):
        * html/parser/BackgroundHTMLParser.h:
        (WebCore::BackgroundHTMLParser::create):
        (BackgroundHTMLParser):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didFailSpeculation):
        (WebCore::HTMLDocumentParser::startBackgroundParser):
        (WebCore::HTMLDocumentParser::stopBackgroundParser):
        (WebCore::HTMLDocumentParser::append):
        (WebCore::HTMLDocumentParser::finish):
        * html/parser/HTMLDocumentParser.h:
        (WebCore):
        (HTMLDocumentParser):

2013-02-07  Roger Fong  <roger_fong@apple.com>

        VS2010 WebCore TestSupport project.
        https://bugs.webkit.org/show_bug.cgi?id=107034.

        Reviewed by Brent Fulgham.

        * WebCore.vcxproj/WebCoreTestSupport.vcxproj: Added.
        * WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Added.

2013-02-08  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] GraphicsLayerActor code clean up after clutter version up.
        https://bugs.webkit.org/show_bug.cgi?id=109304

        Reviewed by Gustavo Noronha Silva.

        This patch cleans up GraphicsLayerActor functions by using new clutter apis
        and makes existing functions simple & readable.

        No new tests since no change in functionality

        * platform/graphics/clutter/GraphicsLayerActor.cpp:
        (_GraphicsLayerActorPrivate):
        (graphicsLayerActorApplyTransform):
        (graphicsLayerActorPaint):
        (graphicsLayerActorDraw):
        (graphicsLayerActorUpdateTexture):
        (drawLayerContents):
        (graphicsLayerActorNew):
        (graphicsLayerActorInvalidateRectangle):
        (graphicsLayerActorSetTransform):
        (graphicsLayerActorSetAnchorPoint):
        (graphicsLayerActorGetAnchorPoint):
        (graphicsLayerActorSetScrollPosition):
        * platform/graphics/clutter/PlatformClutterAnimation.h:

2013-02-08  Harald Alvestrand  <hta@google.com>

        Fix and test for missing return statement

        RTCPeerConnection.getStats() failed when remote stats were instantiated.
        https://bugs.webkit.org/show_bug.cgi?id=109292

        Reviewed by Adam Barth.

        Tested by extending the existing mock's behaviour.

        * Modules/mediastream/RTCStatsReport.cpp:
        (WebCore::RTCStatsReport::addElement):

2013-02-08  Anton Vayvod  <avayvod@chromium.org>

        [Text Autosizing] Split isAutosizingCluster into three independent checks
        https://bugs.webkit.org/show_bug.cgi?id=109093

        Refactoring to create more flexible version of isAutosizingCluster since there're more types
        of autosizing cluster now: narrower than the parent cluster, wider than the parent cluster
        and the one that doesn't depend on the parent cluster.

        Reviewed by Kenneth Rohde Christiansen.

        Refactoring, no test changes.

        * rendering/TextAutosizer.cpp:

        (WebCore::TextAutosizer::isNarrowDescendant):

            Separate check for the container to be of the narrow-descendant type. Was a part of
            isAutosizingCluster().

        (WebCore::TextAutosizer::isWiderDescendant):

            Separate check for the container to be of the wider-descendant type. Was a part of
            isAutosizingCluster().

        (WebCore::TextAutosizer::isIndependentDescendant):

            Separate check for the container to be autosized separately from the ancestor cluster.
            Checks for conditions independent of the aforementioned cluster.

        (WebCore::TextAutosizer::isAutosizingCluster):

            Handy method to check all separate conditions together.

        (WebCore::TextAutosizer::processSubtree):
        (WebCore::TextAutosizer::processCluster):
        (WebCore::TextAutosizer::processContainer):
        (WebCore::TextAutosizer::clusterShouldBeAutosized):
        (WebCore::TextAutosizer::measureDescendantTextWidth):
        (WebCore::TextAutosizer::findFirstTextLeafNotInCluster):

            The methods above were updated to use new functions/arguments.

        * rendering/TextAutosizer.h:

            Updated/added method definitions.

2013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extension sever should use Workspace.projectForType() instead of Workspace.project()
        https://bugs.webkit.org/show_bug.cgi?id=109301

        Reviewed by Alexander Pavlov.

        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onGetPageResources):

2013-02-04  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: simplify Memory.getDOMNodeCount implementation
        https://bugs.webkit.org/show_bug.cgi?id=108821

        Reviewed by Alexander Pavlov.

        Removed Memory.getDOMNodeCount command from the protocol. Memory.getDOMCounters
        should be used instead.

        * inspector/Inspector.json:
        * inspector/InspectorMemoryAgent.cpp:
        * inspector/InspectorMemoryAgent.h:
        (InspectorMemoryAgent):

2013-02-08  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: refactor MemoryStatistics.js
        https://bugs.webkit.org/show_bug.cgi?id=109299

        Reviewed by Vsevolod Vlasov.

        Extracted functionality specific to DOM counter graphs drawing into
        separate methods on MemoryStatistics class.
        Introduced CounterUIBase base class for DOMCounterUI that contains
        functionality which can be shared with native memory graph.

        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics):
        (WebInspector.CounterUIBase):
        (WebInspector.CounterUIBase.prototype.updateCurrentValue):
        (WebInspector.CounterUIBase.prototype.clearCurrentValueAndMarker):
        (WebInspector.CounterUIBase.prototype.get visible):
        (WebInspector.DOMCounterUI):
        (WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
        (WebInspector.MemoryStatistics.prototype._onMouseOut):
        (WebInspector.MemoryStatistics.prototype._clearCurrentValueAndMarker):
        (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
        (WebInspector.MemoryStatistics.prototype._updateCurrentValue):
        (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
        (WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
        (WebInspector.MemoryStatistics.prototype._saveImageUnderMarker):
        (WebInspector.MemoryStatistics.prototype._drawMarker):
        (WebInspector.MemoryStatistics.prototype._clear):
        (WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):

2013-02-08  Mike West  <mkwst@chromium.org>

        Add a new IGNORE_EXCEPTION helper to ignore ExceptionCodes when they are expected but uninteresting
        https://bugs.webkit.org/show_bug.cgi?id=108771

        Reviewed by Eric Seidel.

        In cases where the ExceptionCode passed into a function is completely
        ignored, this patch replaces it with a new IGNORE_EXCEPTION macro. This
        makes our expectations about possible exceptions (or lack thereof)
        explicit, rather than relying on implicit assumptions about whether a
        variable is intentionally uninitialized or not. It also removes
        knowledge about the internals of ExceptionCodes (that they're currently
        ints, for instance) from code that shouldn't care, which will help with
        future refactorings.

        The implementation is entirely based upon ASSERT_NO_EXCEPTION, and
        shouldn't have any visible effect on the web. As long as all the
        current tests pass, we're good.

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::dispatchEvent):
        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::stop):
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::processBuffer):
        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
        * dom/ExceptionCodePlaceholder.h:
        (WebCore):
        * dom/Node.cpp:
        (WebCore::Node::normalize):
        * dom/Text.cpp:
        (WebCore::Text::replaceWholeText):
        * editing/AlternativeTextController.cpp:
        (WebCore::AlternativeTextController::insertDictatedText):
        * editing/AppendNodeCommand.cpp:
        (WebCore::AppendNodeCommand::doApply):
        (WebCore::AppendNodeCommand::doUnapply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt):
        * editing/DeleteFromTextNodeCommand.cpp:
        (WebCore::DeleteFromTextNodeCommand::doUnapply):
        * editing/Editor.cpp:
        (WebCore::dispatchEditableContentChangedEvents):
        (WebCore::Editor::applyEditingStyleToElement):
        * editing/EditorCommand.cpp:
        (WebCore::executeFormatBlock):
        * editing/FormatBlockCommand.cpp:
        (WebCore::FormatBlockCommand::elementForFormatBlockCommand):
        * editing/InsertIntoTextNodeCommand.cpp:
        (WebCore::InsertIntoTextNodeCommand::doApply):
        (WebCore::InsertIntoTextNodeCommand::doUnapply):
        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::doApplyForSingleParagraph):
        * editing/InsertNodeBeforeCommand.cpp:
        (WebCore::InsertNodeBeforeCommand::doApply):
        (WebCore::InsertNodeBeforeCommand::doUnapply):
        * editing/RemoveCSSPropertyCommand.cpp:
        (WebCore::RemoveCSSPropertyCommand::doApply):
        (WebCore::RemoveCSSPropertyCommand::doUnapply):
        * editing/RemoveNodeCommand.cpp:
        (WebCore::RemoveNodeCommand::doApply):
        (WebCore::RemoveNodeCommand::doUnapply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::getLocationAndLengthFromRange):
        * editing/WrapContentsInDummySpanCommand.cpp:
        (WebCore::WrapContentsInDummySpanCommand::executeApply):
        (WebCore::WrapContentsInDummySpanCommand::doUnapply):
        * editing/htmlediting.cpp:
        (WebCore::comparePositions):
        * editing/markup.cpp:
        (WebCore::highestAncestorToWrapMarkup):
        * html/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryDocumentParser::appendEntry):
        (WebCore::FTPDirectoryDocumentParser::createTDForFilename):
        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
        (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::rewind):
        (WebCore::HTMLMediaElement::returnToRealtime):
        (WebCore::HTMLMediaElement::playInternal):
        (WebCore::HTMLMediaElement::percentLoaded):
        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
        (WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
        (WebCore::HTMLMediaElement::applyMediaFragmentURI):
        * html/HTMLOutputElement.cpp:
        (WebCore::HTMLOutputElement::setTextContentInternal):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::remove):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::createTHead):
        (WebCore::HTMLTableElement::deleteTHead):
        (WebCore::HTMLTableElement::createTFoot):
        (WebCore::HTMLTableElement::deleteTFoot):
        (WebCore::HTMLTableElement::createCaption):
        (WebCore::HTMLTableElement::deleteCaption):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::setDefaultValue):
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::createDocumentStructure):
        * html/InputType.cpp:
        (WebCore::InputType::stepUpFromRenderer):
        * html/MediaController.cpp:
        (MediaController::bringElementUpToSpeed):
        (MediaController::asyncEventTimerFired):
        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::createDocumentStructure):
        (WebCore::MediaDocument::replaceMediaElementTimerFired):
        * html/PluginDocument.cpp:
        (WebCore::PluginDocumentParser::createDocumentStructure):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::handleKeydownEvent):
        * html/TimeRanges.cpp:
        (TimeRanges::contain):
        (TimeRanges::nearest):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImageFromRect):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::MediaControlSeekButtonElement::seekTimerFired):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):
        (WebCore::MediaControlStatusDisplayElement::update):
        (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
        (WebCore::MediaControlTimelineElement::defaultEventHandler):
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::updateCurrentTimeDisplay):
        (WebCore::MediaControls::createTextTrackDisplay):
        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsApple::updateCurrentTimeDisplay):
        * html/shadow/MediaControlsBlackBerry.cpp:
        (WebCore::MediaControlEmbeddedPanelElement::setPosition):
        (WebCore::MediaControlEmbeddedPanelElement::resetPosition):
        (WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
        (WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
        * html/shadow/MediaControlsChromium.cpp:
        (WebCore::MediaControlsChromium::updateCurrentTimeDisplay):
        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::addGenericCue):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
        * inspector/InspectorHistory.cpp:
        (WebCore::InspectorHistory::markUndoableState):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::replayXHR):
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected):
        * page/DOMWindow.cpp:
        (WebCore::didAddStorageEventListener):
        * page/DragController.cpp:
        (WebCore::documentFragmentFromDragData):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchDragEvent):
        (WebCore::EventHandler::keyEvent):
        (WebCore::EventHandler::handleTextInputEvent):
        * page/Page.cpp:
        (WebCore::Page::findStringMatchingRanges):
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::paintMediaSliderTrack):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::percentLoaded):
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::paintMediaSliderTrack):
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::getDataSelection):
        (WebCore::documentFragmentWithImageResource):
        (WebCore::Pasteboard::documentFragment):
        * platform/mac/WebVideoFullscreenHUDWindowController.mm:
        (-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
        (-[WebVideoFullscreenHUDWindowController setVolume:]):
        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::paintMediaSliderTrack):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::getRanges):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintMediaSliderTrack):
        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::detachTarget):
        * xml/XMLTreeViewer.cpp:
        (WebCore::XMLTreeViewer::transformDocumentToTreeView):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::endElementNs):
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::parseEndElement):

2013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce workspace provider/project type, encapsulate uri creation in SimpleWorkspaceProvider.
        https://bugs.webkit.org/show_bug.cgi?id=109282

        Reviewed by Alexander Pavlov.

        SimpleWorkspaceProvider now fully takes care of creating uri based on project/workspace provider type.
        This is the first step on the way to project-per-domain mode for non file system project types.
        Workspace is now partly aware of the possibility that several projects with the same type exist.
        Drive-by: ScriptsPanel now uses FileMapping to show anchor location properly.

        * inspector/front-end/DefaultScriptMapping.js:
        (WebInspector.DefaultScriptMapping):
        (WebInspector.DefaultScriptMapping.prototype.addScript):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onGetPageResources):
        * inspector/front-end/FileMapping.js:
        (WebInspector.FileMapping.prototype.uriForURL):
        * inspector/front-end/FileSystemWorkspaceProvider.js:
        (WebInspector.FileSystemWorkspaceProvider.prototype.type):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
        * inspector/front-end/LiveEditSupport.js:
        (WebInspector.LiveEditSupport):
        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel):
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype._navigatorViewForUISourceCode):
        (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
        (WebInspector.ScriptsPanel.prototype._projectWillReset):
        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.uriForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.type):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.addUniqueFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype._uniqueURI):
        * inspector/front-end/Workspace.js:
        (WebInspector.WorkspaceProvider.prototype.type):
        (WebInspector.Project.prototype.type):
        (WebInspector.Project.prototype.isServiceProject):
        (WebInspector.Workspace.prototype.uiSourceCodeForOriginURL):
        (WebInspector.Workspace.prototype.uiSourceCodesForProjectType):
        (WebInspector.Workspace.prototype.projectsForType):
        * inspector/front-end/inspector.js:

2013-02-08  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] GraphicsLayerClutter doesn't need to recalculate its position after changing anchor position.
        https://bugs.webkit.org/show_bug.cgi?id=109226

        Reviewed by Gustavo Noronha Silva.

        Clutter has a different coordinate system from mac port's, so we don't need to
        recalulate GraphicsLayer position after changing its anchor position.

        Covered by existing ac tests.

        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::GraphicsLayerClutter::updateGeometry):

2013-02-08  Mike West  <mkwst@chromium.org>

        Migrate ExceptionCode ASSERTs in IDB to ASSERT_NO_EXCEPTION.
        https://bugs.webkit.org/show_bug.cgi?id=109266

        Reviewed by Jochen Eisinger.

        The pattern:

            ExceptionCode ec = 0;
            methodThatGeneratesException(ec);
            ASSERT(!ec);

        is more clearly and succinctly written as:

            methodThatGeneratesException(ASSERT_NO_EXCEPTION);

        This patch replaces the occurances of the former in IDB code that never
        touch 'ec' again with the latter. No change in behavior should result
        from this refactoring.

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::advance):
        (WebCore::IDBCursor::continueFunction):
        (WebCore::IDBCursor::deleteFunction):
            These methods checked the value of the ExceptionCode without first
            initializing it to 0. Now the ExceptionCode is explicitly set to 0
            before doing potentially exception-generating work.
        (WebCore::IDBCursor::direction):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::mode):
            Replace the above pattern with ASSERT_NO_EXCEPTION.

2013-02-08  Mike West  <mkwst@chromium.org>

        Migrate ExceptionCode ASSERTs in SVG to ASSERT_NO_EXCEPTION.
        https://bugs.webkit.org/show_bug.cgi?id=109267

        Reviewed by Jochen Eisinger.

        The pattern:

            ExceptionCode ec = 0;
            methodThatGeneratesException(ec);
            ASSERT(!ec);

        is more clearly and succinctly written as:

            methodThatGeneratesException(ASSERT_NO_EXCEPTION);

        This patch replaces the occurances of the former in SVG code that never
        touch 'ec' again with the latter. No change in behavior should result
        from this refactoring.

        * svg/SVGLength.cpp:
        (WebCore::SVGLength::SVGLength):
        (WebCore::SVGLength::setValue):
            This method checked the value of the ExceptionCode without first
            initializing it to 0. Now it initializes before doing potentially
            exception-generating work.
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::initialBaselineShiftValue):
        (WebCore::SVGRenderStyle::initialKerning):
        (WebCore::SVGRenderStyle::initialStrokeDashOffset):
        (WebCore::SVGRenderStyle::initialStrokeWidth):
        * svg/SVGAnimatedLength.cpp:
        (WebCore::sharedSVGLength):
        (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
        (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
        * svg/SVGAnimatedLengthList.cpp:
        (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
        (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::textLengthAnimated):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::constructQualifiedName):
            Replace the above pattern with ASSERT_NO_EXCEPTION.

2013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Replace workspace with project in UISourceCode constructor.
        https://bugs.webkit.org/show_bug.cgi?id=109256

        Reviewed by Alexander Pavlov.

        Replaced workspace with project in UISourceCode constructor since every UISourceCode
        operation is delegated to project anyway.

        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):
        (WebInspector.UISourceCode.prototype.project):
        (WebInspector.UISourceCode.prototype.requestContent):
        (WebInspector.UISourceCode.prototype.requestOriginalContent):
        (WebInspector.UISourceCode.prototype._commitContent):
        (WebInspector.UISourceCode.prototype.searchInContent):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype.requestFileContent):
        (WebInspector.Project.prototype.setFileContent):
        (WebInspector.Project.prototype.searchInFileContent):

2013-02-08  Patrick Gansterer  <paroga@webkit.org>

        Build fix for Windows after r141981.

        * platform/network/win/ResourceHandleWin.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):

2013-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141695 and r141697.
        http://trac.webkit.org/changeset/141695
        http://trac.webkit.org/changeset/141697
        https://bugs.webkit.org/show_bug.cgi?id=109279

        broke on-disk buffering for http(s) media (Requested by philn
        on #webkit).

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::load):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcGetProtocols):
        (webKitWebSrcSetUri):

2013-02-08  Dan Carney  <dcarney@google.com>

        [v8] isolate parameter added to all v8::peristent calls
        https://bugs.webkit.org/show_bug.cgi?id=109268

        Reviewed by Kentaro Hara.

        No new tests. No change in functionality.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateDomainSafeFunctionGetter):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
        (WebCore::V8TestNamedConstructor::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperMap::clear):
        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::isolatedWorldWeakCallback):
        (WebCore::DOMWrapperWorld::makeContextWeak):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::freeV8NPObject):
        (WebCore::npCreateV8ScriptObject):
        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::ScheduledAction):
        (WebCore::ScheduledAction::~ScheduledAction):
        * bindings/v8/ScopedPersistent.h:
        (WebCore::ScopedPersistent::ScopedPersistent):
        (WebCore::ScopedPersistent::set):
        (WebCore::ScopedPersistent::clear):
        * bindings/v8/ScriptWrappable.h:
        (WebCore::ScriptWrappable::setWrapper):
        (WebCore::ScriptWrappable::disposeWrapper):
        (WebCore::ScriptWrappable::weakCallback):
        * bindings/v8/V8Binding.cpp:
        (WebCore::createRawTemplate):
        * bindings/v8/V8Binding.h:
        (WebCore):
        * bindings/v8/V8GCController.cpp:
        (WebCore::gcTree):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):
        * bindings/v8/V8HiddenPropertyName.cpp:
        (WebCore::V8HiddenPropertyName::createString):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::V8NPTemplateMap::dispose):
        (WebCore::npObjectGetProperty):
        (WebCore::createV8ObjectForNPObject):
        * bindings/v8/V8PerContextData.cpp:
        (WebCore::V8PerContextData::dispose):
        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
        (WebCore::V8PerContextData::constructorForTypeSlowCase):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::makeExternalString):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore::WrapperConfiguration::configureWrapper):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::wrapInShadowObject):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::WeakReferenceCallback):
        (WebCore::createInjectedScriptHostV8Wrapper):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::V8Location::reloadAccessorGetter):
        (WebCore::V8Location::replaceAccessorGetter):
        (WebCore::V8Location::assignAccessorGetter):

2013-02-08  Kent Tamura  <tkent@chromium.org>

        Adjust usage of ENABLE flags to enable whole content
        https://bugs.webkit.org/show_bug.cgi?id=109270

        Reviewed by Eric Seidel.

        Our common usage of ENABLE flags to enable whole content of files is:

        For .cpp files:
          #include "config.h"
          #if ENABLE(FOOBAR)
          #include "FooBar.h"

        For .h files:
          #ifndef FooBar_h
          #define FooBar_h
          #if ENABLE(FOOBAR)

        Fix files which have uncommon usage, and fix CodeGeneratorV8.pm so that
        it generates the common pattern. Note that CodeGeneratorJS.pm already
        generates code in this order.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeaderContentHeader):
        (GenerateImplementationContentHeader):
        * bindings/scripts/test/V8/V8TestCallback.cpp:
        * bindings/scripts/test/V8/V8TestCallback.h:
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        * bindings/scripts/test/V8/V8TestInterface.h:
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        * html/ColorInputType.cpp:
        * html/ColorInputType.h:
        * html/DateInputType.cpp:
        * html/DateTimeInputType.cpp:
        * html/DateTimeInputType.h:
        * html/DateTimeLocalInputType.cpp:
        * html/HTMLAudioElement.cpp:
        * html/HTMLAudioElement.h:
        * html/HTMLDataListElement.cpp:
        * html/HTMLDialogElement.cpp:
        * html/HTMLDialogElement.h:
        * html/HTMLMediaElement.cpp:
        * html/HTMLMediaElement.h:
        * html/HTMLMeterElement.cpp:
        * html/HTMLProgressElement.cpp:
        * html/HTMLSourceElement.cpp:
        * html/HTMLSourceElement.h:
        * html/HTMLTrackElement.cpp:
        * html/HTMLTrackElement.h:
        * html/HTMLVideoElement.cpp:
        * html/HTMLVideoElement.h:
        * html/MonthInputType.cpp:
        * html/TimeInputType.cpp:
        * html/WeekInputType.cpp:
        * html/shadow/DateTimeFieldElement.h:
        * html/shadow/DetailsMarkerControl.cpp:
        * html/shadow/MeterShadowElement.cpp:
        * html/shadow/ProgressShadowElement.cpp:
        * rendering/RenderDetailsMarker.cpp:
        * rendering/RenderInputSpeech.cpp:
        * rendering/RenderMeter.cpp:
        * rendering/RenderProgress.cpp:

2013-02-08  Mike West  <mkwst@chromium.org>

        Replace ExceptionCode assertions with ASSERT_NO_EXCEPTION macro.
        https://bugs.webkit.org/show_bug.cgi?id=109044

        Reviewed by Darin Adler.

        The pattern:

            ExceptionCode ec = 0;
            methodThatGeneratesException(ec);
            ASSERT(!ec);

        is more clearly and succinctly written as:

            methodThatGeneratesException(ASSERT_NO_EXCEPTION);

        This patch replaces the occurances of the former that never touch 'ec'
        again with the latter. It does the same for 'ASSERT(ec == 0);' (and, as
        a drive-by, replaces 'ASSERT(ec == 0)' with 'ASSERT(!ec)' in places
        where it does indeed matter that 'ec' get set properly.

        No change in behavior should result from this refactoring.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::takeAllChildrenFrom):
        * dom/Document.cpp:
        (WebCore::Document::setTitle):
        * dom/MessagePort.cpp:
        (WebCore::MessagePort::dispatchMessages):
        (WebCore::MessagePort::disentanglePorts):
        * editing/DeleteButtonController.cpp:
        (WebCore::enclosingDeletableElement):
        (WebCore::DeleteButtonController::createDeletionUI):
            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
        (WebCore::DeleteButtonController::show):
            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
        * editing/EditorCommand.cpp:
        (WebCore::unionDOMRanges):
        * editing/ReplaceNodeWithSpanCommand.cpp:
        (WebCore::swapInNodePreservingAttributesAndChildren):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::ReplacementFragment):
        (WebCore::ReplacementFragment::removeNode):
        (WebCore::ReplacementFragment::insertNodeBefore):
        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
        (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        * editing/SplitTextNodeCommand.cpp:
        (WebCore::SplitTextNodeCommand::doUnapply):
        * editing/TextIterator.cpp:
        (WebCore::CharacterIterator::range):
        (WebCore::BackwardsCharacterIterator::range):
        (WebCore::TextIterator::rangeFromLocationAndLength):
        (WebCore::collapsedToBoundary):
        * editing/htmlediting.cpp:
        (WebCore::createTabSpanElement):
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::fontForSelection):
        (WebCore::Editor::fontAttributesForSelectionStart):
        * editing/markup.cpp:
        (WebCore::createMarkup):
        (WebCore::trimFragment):
        (WebCore::createFragmentFromMarkupWithContext):
        (WebCore::fillContainerFromString):
        (WebCore::createFragmentFromText):
        (WebCore::createFragmentFromNodes):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::createShadowSubtree):
            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::updatePlaceholderText):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::buildBubbleTree):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::getCookies):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::addRule):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::dispatchDOMEvent):
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::deleteFromDocument):
        * page/DragController.cpp:
        (WebCore::prepareClipboardForImageDrag):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::visiblePositionForIndex):
            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.

2013-02-08  Alexei Filippov  <alph@chromium.org>

        Web Inspector: disable profile type switching while profile in progress
        https://bugs.webkit.org/show_bug.cgi?id=109178

        Reviewed by Yury Semikhatsky.

        Disables profile type selection controls when a profiling session
        is in progress.

        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
        * inspector/front-end/ProfileLauncherView.js:
        (WebInspector.ProfileLauncherView.prototype._updateControls):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):

2013-02-08  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: adjust chunk transfer size for better speed.
        https://bugs.webkit.org/show_bug.cgi?id=109263

        Reviewed by Yury Semikhatsky.

        The chunk size is changed from 100 to 10000.
        addString counts only first 256 symbols of the string.o

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::pushUpdateIfNeeded):
        (WebCore::HeapGraphSerializer::addString):
        * inspector/front-end/NativeMemorySnapshotView.js:

2013-02-08  Kentaro Hara  <haraken@chromium.org>

        Support a relatedTarget attribute on focus/blur events
        https://bugs.webkit.org/show_bug.cgi?id=109176

        Reviewed by Ojan Vafai.

        In bug 76216, we supported a relatedTarget attribute on
        focusin/focusout events. We should also support it on focus/blur events.

        See http://lists.w3.org/Archives/Public/www-dom/2012OctDec/0061.html
        for the www-dom discussion.

        Test: fast/dom/shadow/shadow-boundary-events.html
              fast/events/related-target-focusevent.html

        * dom/EventDispatchMediator.cpp:
        (WebCore::FocusEventDispatchMediator::create):
        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
        (WebCore::BlurEventDispatchMediator::create):
        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
        * dom/EventDispatchMediator.h:
        (FocusEventDispatchMediator):
        (BlurEventDispatchMediator):
        * dom/Node.cpp:
        (WebCore::Node::dispatchFocusInEvent):
        (WebCore::Node::dispatchFocusOutEvent):
        (WebCore::Node::dispatchFocusEvent):
        (WebCore::Node::dispatchBlurEvent):

2013-02-07  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: reduce number of native memory instrumentation categories
        https://bugs.webkit.org/show_bug.cgi?id=109146

        Reviewed by Pavel Feldman.

        Merged some of memory instrumentation categories.

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.MemoryBlockViewProperties._initialize):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):

2013-02-07  Mike West  <mkwst@chromium.org>

        <iframe seamless> should avoid vertical scrollbars during the initial layout passes.
        https://bugs.webkit.org/show_bug.cgi?id=87707

        Reviewed by Eric Seidel.

        Seamless documents currently render incorrectly when their content fills
        the width of the container into which they're placed. Because FrameView
        assumes that the container's size is properly set before the first pass
        of layout, vertical scrollbars are incorrectly forced onto seamless
        content, because seamless sets the container's height to 0 before
        handing it off to FrameView for layout. The scrollbars make the
        available width for the seamless document ~15px smaller than it should
        be, resulting in content getting bumped to the next line.

        This patch special-cases FrameView::calculateScrollbarModesForLayout in
        order to force scrollbars off for seamless documents with a full visible
        height of 0px. Once the layout pass has grabbed the content height and
        applied it to the visible height, scrollbars will again be applicable.

        The change should be covered by rebaselines for the newly-passing
        results in fast/frame/seamless-{float,inline}.html

        * page/FrameView.cpp:
        (WebCore::FrameView::calculateScrollbarModesForLayout):
            If we're rendering a seamless document, and the full visible height
            is 0, and the vertical scrollbar would otherwise be ScrollbarAuto,
            then force ScrollbarAlwaysOff.

2013-02-07  Kent Tamura  <tkent@chromium.org>

        document.activeElement should not return a non-focusable element
        https://bugs.webkit.org/show_bug.cgi?id=86707

        Reviewed by Hajime Morita.

        This is based on a patch by Arpita Bahuguna.

        Test: fast/dom/HTMLDocument/set-focus-on-valid-element.html

        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode):
        Added check for verifying that the node to be focused is
        focusable. However, this check should be skipped for HTMLPlugInElement
        because it has special behavior.

2013-02-07  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Fix front-end compilation warnings related to WebInspector.SidebarPane
        https://bugs.webkit.org/show_bug.cgi?id=109259

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/DOMBreakpointsSidebarPane.js:
        (WebInspector.DOMBreakpointsSidebarPane.Proxy):
        * inspector/front-end/SidebarPane.js:

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        [V8] enum V8HiddenPropertyCreationType is not used
        https://bugs.webkit.org/show_bug.cgi?id=109250

        Reviewed by Adam Barth.

        V8HiddenPropertyCreationType is always NewSymbol. We can remove the enum.

        No tests. No change in behavior.

        * bindings/v8/V8HiddenPropertyName.cpp:
        (WebCore::hiddenReferenceName):
        * bindings/v8/V8HiddenPropertyName.h:
        (WebCore):

2013-02-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142212.
        http://trac.webkit.org/changeset/142212
        https://bugs.webkit.org/show_bug.cgi?id=109255

        Causes ASSERT(!m_installed) on launch (Requested by smfr on
        #webkit).

        * WebCore.exp.in:
        * platform/MemoryPressureHandler.cpp:
        (WebCore):
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
        * platform/MemoryPressureHandler.h:
        (MemoryPressureHandler):
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):

2013-02-07  Hanyee Kim  <choco@company100.net>

        NamedFlowCollection should be a ContextDestructionObserver
        https://bugs.webkit.org/show_bug.cgi?id=99239

        Reviewed by Adam Barth

        This patch removes the raw pointer of Document in NamedFlowCollection.
        It could be replaced with ContextDestructionObserver.
        ContextDestructionObserver has the pointer and clears the pointer
        automatically when the document is destroyed. 

        * dom/Document.cpp:
        (WebCore::Document::~Document):
        * dom/NamedFlowCollection.cpp:
        (WebCore::NamedFlowCollection::NamedFlowCollection):
        (WebCore::NamedFlowCollection::ensureFlowWithName):
        (WebCore::NamedFlowCollection::discardNamedFlow):
        (WebCore::NamedFlowCollection::document):
        (WebCore):
        * dom/NamedFlowCollection.h:
        (NamedFlowCollection):

2013-02-07  Dean Jackson  <dino@apple.com>

        Followup review suggestions from Alexey Proskuryakov on
        https://bugs.webkit.org/show_bug.cgi?id=109215

        Don't provide a charset on embedded SVG, especially
        with incorrect syntax :)

        * css/mediaControlsQuickTime.css:
        (video::-webkit-media-controls-toggle-closed-captions-button):
        (video::-webkit-media-controls-closed-captions-track-list li.selected):
        (video::-webkit-media-controls-closed-captions-track-list li.selected:hover):

2013-02-07  Seulgi Kim  <seulgikim@company100.net>

        [Gtk] RunLoop::run shuold run current thread's run loop.
        https://bugs.webkit.org/show_bug.cgi?id=107887

        Reviewed by Martin Robinson.

        Currently, RunLoop in Gtk can use just main thread's event loop.
        But the other ports are implemented to use RunLoop in sub threads.

        This patch makes RunLoop constructor create new context, not use default
        context.
        But in the main thread still uses default context to use main event loop
        since there is some codes using glib directly (e.g. in
        LayerTreeHostGtk::scheduleLayerFlush).

        No new tests. There is no case that uses RunLoop in off the main thread
        yet.

        * platform/gtk/RunLoopGtk.cpp:
        (WebCore::RunLoop::RunLoop):
        (WebCore::RunLoop::run):

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        [V8] Move V8DOMWrapper::setNamedHiddenReference() to V8HiddenPropertyName.h
        https://bugs.webkit.org/show_bug.cgi?id=109186

        Reviewed by Adam Barth.

        V8HiddenPropertyName.h is a right place for setNamedHiddenReference().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        * bindings/v8/V8HiddenPropertyName.cpp:
        (WebCore::V8HiddenPropertyName::hiddenReferenceName):
        (WebCore::V8HiddenPropertyName::setNamedHiddenReference):
        (WebCore):
        * bindings/v8/V8HiddenPropertyName.h:
        (V8HiddenPropertyName):
        (WebCore::V8HiddenPropertyName::V8HiddenPropertyName):
        * bindings/v8/custom/V8MessageChannelCustom.cpp:
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):

2013-02-07  Elliott Sprehn  <esprehn@chromium.org>

        getComputedStyle() doesn't report intermediate values during a transition of a pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=106535

        Reviewed by Ojan Vafai.

        Element::computedStyle and CSSComputedStyleDeclaration::getPropertyCSSValue
        should use the PseudoElement and it's renderer if they exist so that
        querying the computed style while an animation is running returns
        the intermediate values.

        No new tests, updated existing tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::styledNode): Added, returns either the PseudoElement or the Node.
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Updated to use styledNode.
        * css/CSSComputedStyleDeclaration.h:
        (CSSComputedStyleDeclaration):
        * dom/Element.cpp:
        (WebCore::Element::computedStyle): Check the PseudoElement, not just the cached pseudo style.
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::pseudoElement): Remove ASSERT_NOT_REACHED so passing other pseudos returns 0.

2013-02-07  Mark Lam  <mark.lam@apple.com>

        Add a comment about how the SQLTransaction state machine works.
        https://bugs.webkit.org/show_bug.cgi?id=109243.

        Rubber stamped by Anders Carlsson.

        No new tests.

        * Modules/webdatabase/SQLTransactionBackend.cpp:

2013-02-06  Gavin Barraclough  <barraclough@apple.com>

        PluginProcess should quit immediately if idle in response to low-memory notifications
        https://bugs.webkit.org/show_bug.cgi?id=109103
        <rdar://problem/12679827>

        Reviewed by Darin Adler.

        This patch allows a process to set a custom callback for low memory warnings
        (defaulting to the current behaviour, as implemented in releaseMemory).

        MemoryPressureHandler::install is currently used for two purposes - it is
        called when first initializing a low memory handler for a process, and also
        used to reinstall the handler (on a delay) after the notification has occured.
        Since reinstallation doesn't change the callback, split these behaviours out -
        MemoryPressureHandler::initialize is added to initialization, and accepts a
        custom callback, install in made private.

        * WebCore.exp.in:
            - Added export for releaseMemory.
        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::releaseMemory):
            - Added null implementation for non-Mac builds.
        * platform/MemoryPressureHandler.h:
        (WebCore::MemoryPressureHandler::initialize):
            - distinguish initialization from reinstallations, allow handler to be set.
        (MemoryPressureHandler):
            - Added m_lowMemoryHandler function pointer member variable.
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
            - Call m_lowMemoryHandler instead of releaseMemory.

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        [V8] #ifndef NDEBUG is redundant for assertContextHasCorrectPrototype()
        https://bugs.webkit.org/show_bug.cgi?id=109167

        Reviewed by Andreas Kling.

        Given that assertContextHasCorrectPrototype() is anyway empty in a release
        build, we don't need to surround it with #ifndef NDEBUG.

        No tests. No change in behavior.

        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::assertContextHasCorrectPrototype):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isolated):

2013-02-07  Alexei Svitkine  <asvitkine@chromium.org>

        Chromium: Hang parsing bidi control chars on Mac OS X 10.6
        https://bugs.webkit.org/show_bug.cgi?id=108877

        This was broken a while ago by:
            https://bugs.webkit.org/show_bug.cgi?id=83045

        On 10.6, CoreText will not produce any runs covering the
        Unicode BiDi RTL mark control char, which causes an infinite
        loop in ComplexTextController::indexOfCurrentRun() due to no
        run covering the character at offset 0.

        This patch fixes that issue by finding the earliest run
        explicitly via the minimum stringBegin() index instead of
        relying on a run existing that covers offset 0.

        Fixes hang on many BiDi wikipedia pages on Chromium/Mac10.6.
        Chromium bug: http://crbug.com/167844

        New test in the same style as the harfbuzz-buffer-overrun.html
        test (in the same folder).

        Reviewed by Eric Seidel.

        Test: fast/text/international/rtl-mark.html

        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::ComplexTextController::indexOfCurrentRun):

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        Implement FocusEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=109170

        Reviewed by Adam Barth.

        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm

        FocusEvent constructor should be implemented under a DOM4_EVENTS_CONSTRUCTOR
        flag, which is enabled on Chromium and Safari.

        Test: fast/events/constructors/focus-event-constructor.html

        * dom/FocusEvent.cpp:
        (WebCore::FocusEventInit::FocusEventInit):
        (WebCore):
        (WebCore::FocusEvent::FocusEvent):
        * dom/FocusEvent.h:
        (FocusEventInit):
        (WebCore):
        (WebCore::FocusEvent::create):
        (FocusEvent):
        * dom/FocusEvent.idl:
        * page/DOMWindow.idl:

2013-02-07  Elliott Sprehn  <esprehn@chromium.org>

        HTML parser should queue MutationRecords for its operations
        https://bugs.webkit.org/show_bug.cgi?id=89351

        Reviewed by Eric Seidel.

        Generate mutation records inside the parser. This is done by using a
        ChildListMutationScope in the ContainerNode::parser* methods and then
        adding delivery before each <script> element would be processed by
        the parser.

        Test: fast/dom/MutationObserver/parser-mutations.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::takeAllChildrenFrom):
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserRemoveChild):
        (WebCore::ContainerNode::parserAppendChild):
        * html/parser/HTMLScriptRunner.cpp:
        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
        (WebCore::HTMLScriptRunner::execute):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
        (WebCore::HTMLScriptRunner::runScript):

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        Fix FIXMEs in WindowFeatures.h
        https://bugs.webkit.org/show_bug.cgi?id=109151

        Reviewed by Adam Barth.

        1. // FIXME: We can delete this constructor once V8 showModalDialog is
           // changed to use DOMWindow.

        This FIXME is not right. The WindowFeatures() constructor is used by
        other ports too (e.g. WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp).
        So we should remove the FIXME.

        2. // FIXME: We can make these functions private non-member functions
           // once V8 showModalDialog is changed to use DOMWindow.

        Given that V8 now uses DOMWindow in showModalDialog(), we can make the
        methods private.

        No tests. No change in behavior.

        * page/WindowFeatures.h:
        (WebCore):
        (WebCore::WindowFeatures::WindowFeatures):
        (WindowFeatures):

2013-02-07  Adam Barth  <abarth@webkit.org>

        fast/parser/document-write-noscript.html fails for threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=109237

        Reviewed by Eric Seidel.

        If there are multiple calls to document.write in an external script, we
        need to wait for them all to complete before invalidating the
        speculative tokens. Instead of doing this when we unwind the
        document.write call stack, we do this when we're about to resume
        parsing after script execution.

        Test: fast/parser/document-write-basic.html

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::insert):
        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):

2013-02-07  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>

        Fix build when compiling with css3-text and css3-conditional-rules feature flags enabled.
        https://bugs.webkit.org/show_bug.cgi?id=109217

        Reviewed by Benjamin Poulain.

        * css/InspectorCSSOMWrappers.cpp:
        (WebCore::InspectorCSSOMWrappers::collect):

2013-02-07  Keishi Hattori  <keishi@webkit.org>

        REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
        https://bugs.webkit.org/show_bug.cgi?id=109136

        Reviewed by Kent Tamura.

        Calendar picker was using the "Clear" button to calculate the window width.
        Since it doesn't exist when the input element has a required attribute,
        it was throwing an error. This patch fixes the width calculating logic.

        Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html
               platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required.html

        * Resources/pagepopups/calendarPicker.css:
        (.today-clear-area):
        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker.prototype.fixWindowSize): Fixing the logic to calculate
        the width. We don't want to use clear button because it doesn't exist
        when a value is required.

2013-02-07  Terry Anderson  <tdanderson@chromium.org>

        Non-scrollable divs and non-scrollable iframes can scroll with touch
        https://bugs.webkit.org/show_bug.cgi?id=109087

        Reviewed by Eric Seidel.

        Tests: fast/events/touch/gesture/touch-gesture-noscroll-div.html
               fast/events/touch/gesture/touch-gesture-noscroll-iframe.html

        When finding a candidate for a scrollable node in
        EventHandler::handleGestureScrollUpdate(), select the document node
        if it is reached before any scrollable element when walking up the DOM
        tree. Also ensure that calling RenderLayer::scrollBy() for a document
        node does not result in scrolling if the element is not scrollable.

        * page/EventHandler.cpp:
        (WebCore::closestScrollableNodeCandidate):
        (WebCore::EventHandler::handleGestureScrollUpdate):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollBy):

2013-02-07  Mark Lam  <mark.lam@apple.com>

        Introduce SQLTransactionBackend and SQLTransactionBackendSync [Part 2].
        https://bugs.webkit.org/show_bug.cgi?id=109109.

        Reviewed by Anders Carlsson.

        Adding back the new SQLTransaction and SQLTransactionSync files.

        No new tests.

        * Modules/webdatabase/SQLTransaction.cpp: Added.
        (WebCore::SQLTransaction::create):
        (WebCore::SQLTransaction::SQLTransaction):
        (WebCore::SQLTransaction::from):
        * Modules/webdatabase/SQLTransaction.h: Added.
        (SQLTransaction):
        * Modules/webdatabase/SQLTransactionSync.cpp: Added.
        (WebCore::SQLTransactionSync::create):
        (WebCore::SQLTransactionSync::SQLTransactionSync):
        (WebCore::SQLTransactionSync::from):
        * Modules/webdatabase/SQLTransactionSync.h: Added.
        (SQLTransactionSync):

2013-02-07  Mark Lam  <mark.lam@apple.com>

        Introduce SQLTransactionBackend and SQLTransactionBackendSync.
        https://bugs.webkit.org/show_bug.cgi?id=109109.

        Reviewed by Anders Carlsson.

        - Renamed SQLTransaction and SQLTransactionSync to SQLTransactionBackend
          and SQLTransactionBackendSync respectively.
        - Added back SQLTransaction and SQLTransactionSync as new files, and have
          their classes extends their respective backends. This is a stop gap
          measure to keep things working until the front-end and back-end can be
          properly split.
          Note: these files will be committed in a subsequent commit to ensure
          that the patching goes smoothly.
        - Where needed, I made use of new SQLTransaction::from() and
          SQLTransactionSync::from() static methods that "get" the front-end
          transactions from the back-ends. This is also a stop gap measure to
          keep things working until the proper refactoring is complete.
        - Fixed up pre-existing style checker violations that are now detected
          on code that were touched during my renaming.
        - Added the back-end files to all the build files.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::scheduleTransactionStep):
        * Modules/webdatabase/Database.h:
        (Database):
        * Modules/webdatabase/DatabaseBackend.h:
        (DatabaseBackend):
        * Modules/webdatabase/DatabaseTask.cpp:
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
        * Modules/webdatabase/DatabaseTask.h:
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::create):
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::transaction):
        (DatabaseBackendAsync::DatabaseTransactionTask):
        * Modules/webdatabase/SQLTransaction.cpp: Removed.
        * Modules/webdatabase/SQLTransaction.h: Removed.
        * Modules/webdatabase/SQLTransactionBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.cpp.
        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
        (WebCore::SQLTransactionBackend::~SQLTransactionBackend):
        (WebCore::SQLTransactionBackend::executeSQL):
        (WebCore::SQLTransactionBackend::enqueueStatement):
        (WebCore::SQLTransactionBackend::debugStepName):
        (WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
        (WebCore::SQLTransactionBackend::performNextStep):
        (WebCore::SQLTransactionBackend::performPendingCallback):
        (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
        (WebCore::SQLTransactionBackend::acquireLock):
        (WebCore::SQLTransactionBackend::lockAcquired):
        (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
        (WebCore::SQLTransactionBackend::deliverTransactionCallback):
        (WebCore::SQLTransactionBackend::scheduleToRunStatements):
        (WebCore::SQLTransactionBackend::runStatements):
        (WebCore::SQLTransactionBackend::getNextStatement):
        (WebCore::SQLTransactionBackend::runCurrentStatement):
        (WebCore::SQLTransactionBackend::handleCurrentStatementError):
        (WebCore::SQLTransactionBackend::deliverStatementCallback):
        (WebCore::SQLTransactionBackend::deliverQuotaIncreaseCallback):
        (WebCore::SQLTransactionBackend::postflightAndCommit):
        (WebCore::SQLTransactionBackend::deliverSuccessCallback):
        (WebCore::SQLTransactionBackend::cleanupAfterSuccessCallback):
        (WebCore::SQLTransactionBackend::handleTransactionError):
        (WebCore::SQLTransactionBackend::deliverTransactionErrorCallback):
        (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
        * Modules/webdatabase/SQLTransactionBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.h.
        (SQLTransactionBackend):
        * Modules/webdatabase/SQLTransactionBackendSync.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.cpp.
        (WebCore::SQLTransactionBackendSync::SQLTransactionBackendSync):
        (WebCore::SQLTransactionBackendSync::~SQLTransactionBackendSync):
        (WebCore::SQLTransactionBackendSync::executeSQL):
        (WebCore::SQLTransactionBackendSync::begin):
        (WebCore::SQLTransactionBackendSync::execute):
        (WebCore::SQLTransactionBackendSync::commit):
        (WebCore::SQLTransactionBackendSync::rollback):
        * Modules/webdatabase/SQLTransactionBackendSync.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.h.
        (SQLTransactionBackendSync):
        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
        (WebCore::getDatabaseIdentifier):
        (WebCore::SQLTransactionCoordinator::processPendingTransactions):
        (WebCore::SQLTransactionCoordinator::acquireLock):
        (WebCore::SQLTransactionCoordinator::releaseLock):
        (WebCore::SQLTransactionCoordinator::shutdown):
        * Modules/webdatabase/SQLTransactionCoordinator.h:
        (SQLTransactionCoordinator):
        (WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
        (CoordinationInfo):
        * Modules/webdatabase/SQLTransactionSync.cpp: Removed.
        * Modules/webdatabase/SQLTransactionSync.h: Removed.
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-02-07  Dean Jackson  <dino@apple.com>

        Use new speech bubble artwork for captions menu button
        https://bugs.webkit.org/show_bug.cgi?id=109215

        Reviewed by Eric Carlson.

        Rather than call into RenderTheme to display this button, embed artwork
        into the CSS. This means we can remove some uncalled methods in
        RenderTheme.

        * css/mediaControlsQuickTime.css:
        (video::-webkit-media-controls-toggle-closed-captions-button): New background image using SVG.
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint): Don't call the specific painter for the CC button.
        * rendering/RenderTheme.h: Remove unused function.
        * rendering/RenderThemeMac.h: Ditto.
        * rendering/RenderThemeMac.mm: Ditto.

2013-02-07  Michelangelo De Simone  <michelangelo@webkit.org>

        [CSS Shaders] Add the last blending step
        https://bugs.webkit.org/show_bug.cgi?id=104012

        The resulting blended color in mix() is now weighted according to
        the original element's backdrop alpha value.

        Reviewed by Dean Jackson.

        Test: css3/filters/custom/custom-filter-blend-fractional-destination-alpha.html

        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):

2013-02-07  Benjamin Poulain  <bpoulain@apple.com>

        Fix two exports of WebCore symbols on iOS
        https://bugs.webkit.org/show_bug.cgi?id=109238

        Reviewed by David Kilzer.

        * WebCore.exp.in: Export wkCTFontTransformGlyphs but not
        wkCGContextDrawsWithCorrectShadowOffsets on iOS.

2013-02-07  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Ignore ExclusionPolygon edges above minLogicalIntervalTop
        https://bugs.webkit.org/show_bug.cgi?id=107566

        Reviewed by David Hyatt.

        Improve ExclusionPolygon::firstIncludedIntervalLogicalTop() performance by only
        creating offset edges for polygon edges that are below the horizontal minLogicalIntervalTop
        line. In other words, don't bother creating offset edges that can't define the polygon's
        first fit location.

        Test: fast/exclusions/shape-inside/shape-inside-first-fit-004.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Don't create offset edges for polygon edges above minLogicalIntervalTop.

2013-02-07  Jer Noble  <jer.noble@apple.com>

        Improve logging of MediaPlayerPrivateAVFoundation Notifications.
        https://bugs.webkit.org/show_bug.cgi?id=109223

        Reviewed by Eric Carlson.

        Convert the existing Notification enum to an expandable macro. Then add a
        Logging-only function which stringifies the enums.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore):
        (WebCore::notificationName):
        (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
        (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

2013-02-07  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Cleanup command-line defines
        https://bugs.webkit.org/show_bug.cgi?id=109213

        Reviewed by Xan Lopez.

        * GNUmakefile.am: Remove references to flags that are now handled
        via autotoolsconfig.h.

2013-02-07  Tom Sepez  <tsepez@chromium.org>

        [V8] Binding Integrity crash in V8MediaStream::createWrapper
        https://bugs.webkit.org/show_bug.cgi?id=109211

        Reviewed by Adam Barth.

        Patch suppresses a chrome crasher.

        * Modules/mediastream/MediaStream.idl:

2013-02-07  Eric Carlson  <eric.carlson@apple.com>

        [Mac] decrease in-band caption advance notice interval
        https://bugs.webkit.org/show_bug.cgi?id=109190

        Reviewed by Simon Fraser.

        No new tests, no observable change in behavior.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Request cues 2 seconds in advance.

2013-02-07  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] Clutter required version up to 1.12
        https://bugs.webkit.org/show_bug.cgi?id=109037

        Reviewed by Martin Robinson.

        Replace deprecated clutter apis with new ones.

        No new tests, since this patch is minor refactoring.

        * platform/graphics/clutter/GraphicsLayerActor.cpp:
        (graphicsLayerActorSetAnchorPoint):
        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::idleDestroy):
        (WebCore::GraphicsLayerClutter::updateSublayerList):

2013-02-07  Benjamin Poulain  <bpoulain@apple.com>

        Move pauseAnimation/pauseTransition from TestRunner to Internals
        https://bugs.webkit.org/show_bug.cgi?id=109107

        Reviewed by Anders Carlsson.

        Tests: animations/animation-internals-api-multiple-keyframes.html
               animations/animation-internals-api.html

        * testing/Internals.cpp:
        (WebCore::Internals::pauseAnimationAtTimeOnElement):
        (WebCore):
        (WebCore::Internals::pauseTransitionAtTimeOnElement):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-02-07  Gavin Peters  <gavinp@chromium.org>

        Unreviewed, rolling out r142155.
        http://trac.webkit.org/changeset/142155
        https://bugs.webkit.org/show_bug.cgi?id=82888

        cr/win build broke.

        * bindings/js/JSClipboardCustom.cpp:
        (WebCore::JSClipboard::types):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        (WebCore::V8Clipboard::typesAccessorGetter):
        * dom/Clipboard.h:
        (Clipboard):
        * platform/blackberry/ClipboardBlackBerry.cpp:
        (WebCore::ClipboardBlackBerry::types):
        * platform/blackberry/ClipboardBlackBerry.h:
        (ClipboardBlackBerry):
        * platform/chromium/ChromiumDataObject.cpp:
        (WebCore::ChromiumDataObject::types):
        * platform/chromium/ChromiumDataObject.h:
        (ChromiumDataObject):
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::ClipboardChromium::types):
        * platform/chromium/ClipboardChromium.h:
        (ClipboardChromium):
        * platform/efl/ClipboardEfl.cpp:
        (WebCore::ClipboardEfl::types):
        * platform/efl/ClipboardEfl.h:
        (ClipboardEfl):
        * platform/gtk/ClipboardGtk.cpp:
        (WebCore::ClipboardGtk::types):
        * platform/gtk/ClipboardGtk.h:
        (ClipboardGtk):
        * platform/mac/ClipboardMac.h:
        (ClipboardMac):
        * platform/mac/ClipboardMac.mm:
        (WebCore::addHTMLClipboardTypesForCocoaType):
        (WebCore::ClipboardMac::types):
        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::types):
        * platform/qt/ClipboardQt.h:
        (ClipboardQt):
        * platform/win/ClipboardWin.cpp:
        (WebCore::addMimeTypesForFormat):
        (WebCore::ClipboardWin::types):
        * platform/win/ClipboardWin.h:
        (ClipboardWin):

2013-02-07  Rik Cabanier  <cabanier@adobe.com>

        Add support for parsing of -webkit-background-blend-mode
        https://bugs.webkit.org/show_bug.cgi?id=108547

        Reviewed by David Hyatt.

        Added parsing and general CSS handling of -webkit-background-blend-mode per 
        https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#background-blend-mode

        Tests: css3/compositing/background-blend-mode-property-parsing.html
               css3/compositing/background-blend-mode-property.html

        * css/CSSComputedStyleDeclaration.cpp: Built value for getComputedStyle.
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp: Parsed and stored value of -webkit-background-blend-mode.
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFillProperty):
        * css/CSSProperty.cpp: Listed -webkit-background-blend-mode as a non-inherited property.
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in: Added -webkit-background-blend-mode as a CSS property.
        * css/CSSToStyleMap.cpp: Mapped background blend mode from CSS value to enum.
        (WebCore::CSSToStyleMap::mapFillBlendMode):
        (WebCore):
        * css/CSSToStyleMap.h: Added function declaration 'mapFillBlendMode'.
        (CSSToStyleMap):
        * css/StyleBuilder.cpp: Set up propery handler for -webkit-background-blend-mode.
        (WebCore::StyleBuilder::StyleBuilder):
        * rendering/style/FillLayer.cpp: Added code to store and retrieve the blend mode from a layer.
        (WebCore::FillLayer::FillLayer):
        (WebCore::FillLayer::operator=):
        (WebCore::FillLayer::operator==):
        (WebCore::FillLayer::fillUnsetProperties):
        * rendering/style/FillLayer.h: Added function definitions to manage blend mode in a layer.
        (WebCore::FillLayer::blendMode):
        (WebCore::FillLayer::isBlendModeSet):
        (WebCore::FillLayer::setBlendMode):
        (WebCore::FillLayer::clearBlendMode):
        (WebCore::FillLayer::initialFillBlendMode):
        (FillLayer):

2013-02-07  Gavin Peters  <gavinp@chromium.org>

        Unreviewed, rolling out r142142.
        http://trac.webkit.org/changeset/142142
        https://bugs.webkit.org/show_bug.cgi?id=109154

        Mac expectations were not right. See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .


        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):

2013-02-07  Gavin Peters  <gavinp@chromium.org>

        Unreviewed, rolling out r142081.
        http://trac.webkit.org/changeset/142081
        https://bugs.webkit.org/show_bug.cgi?id=109146

        The patch caused a crash in inspector-protocol/nmi-webaudio*.html .

        See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.MemoryBlockViewProperties._initialize):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):

2013-02-07  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] shape-inside does not properly handle padding or border
        https://bugs.webkit.org/show_bug.cgi?id=102715

        Reviewed by David Hyatt.

        This patch positions the exclusion shape based on the value of the css box sizing
        property. Geometry calculations happen in the shape coordinate space. For layout,
        these coordinates are translated to the border-box coordinate system by adding
        the appropriate offsets.

        Test: fast/exclusions/shape-inside/shape-inside-box-sizing.html

        * rendering/ExclusionShapeInfo.cpp:
        (WebCore::::computedShape): Pass m_shapeLogicalWidth to the exclusion shape
        geometry code.
        * rendering/ExclusionShapeInfo.h:
        (WebCore::ExclusionShapeInfo::setShapeSize): Adjust block layout dimensions to
        shape dimensions when checking to see if the shape geometry must be recalculated.
        (WebCore::ExclusionShapeInfo::shapeLogicalTop): Account for layout offsets.
        (WebCore::ExclusionShapeInfo::shapeLogicalBottom): Ditto.
        (WebCore::ExclusionShapeInfo::shapeLogicalLeft): Ditto.
        (WebCore::ExclusionShapeInfo::shapeLogicalRight): Ditto.
        (WebCore::ExclusionShapeInfo::logicalTopOffset): Return the offset from the logical
        top of the border box to the logical top of the shape.
        (WebCore::ExclusionShapeInfo::logicalLeftOffset): Return the offset from the logical
        left of the border box to the logical left of the shape.
        (ExclusionShapeInfo):
        * rendering/ExclusionShapeInsideInfo.cpp:
        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Adjust line top to
        be in shape coordinates.
        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Ditto.
        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Use consistent
        coordinate system (border box) to test for whether a line overlaps a shape.
        (WebCore::ExclusionShapeInsideInfo::logicalLineTop): Include the logical offset
        from the border box.
        (WebCore::ExclusionShapeInsideInfo::logicalLineBottom): Ditto.

2013-02-07  Benjamin Poulain  <bpoulain@apple.com>

        Upstream iOS isWebThread() and isUIThread()
        https://bugs.webkit.org/show_bug.cgi?id=109130

        Reviewed by Sam Weinig.

        * bindings/objc/WebScriptObject.mm:
        (+[WebScriptObject initialize]):
        * platform/mac/SharedBufferMac.mm:
        (+[WebCoreSharedBufferData initialize]):
        #ifdef out the legacy initialization as it is not correct when
        using a WebThread.

2013-02-07  Vivek Galatage  <vivek.vg@samsung.com>

        Web Inspector: CPU pegged when inspecting LocalStorage that mutates.
        https://bugs.webkit.org/show_bug.cgi?id=107937

        Reviewed by Yury Semikhatsky.

        The DOM storage agent will fire an event to the frontend based on the action
        performed on the storage. Based on this action, the front-end will just add/update/remove
        the entry in the view. This enhances the front-end responsiveness as the round trip
        for fetching the storage entries has been eliminated.

        Existing test: LayoutTests/inspector/storage-panel-dom-storage-update.html should verify the change

        * inspector/Inspector.json:
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
        * inspector/front-end/DOMStorage.js:
        (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
        (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
        (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
        (WebInspector.DOMStorageModel.prototype._domStorageItemUpdated):
        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemsCleared):
        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemRemoved):
        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemAdded):
        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemUpdated):
        * inspector/front-end/DOMStorageItemsView.js:
        (WebInspector.DOMStorageItemsView):
        (WebInspector.DOMStorageItemsView.prototype.wasShown):
        (WebInspector.DOMStorageItemsView.prototype._domStorageItemsCleared):
        (WebInspector.DOMStorageItemsView.prototype._domStorageItemRemoved):
        (WebInspector.DOMStorageItemsView.prototype._domStorageItemAdded):
        (WebInspector.DOMStorageItemsView.prototype._domStorageItemUpdated):
        (WebInspector.DOMStorageItemsView.prototype._update):
        (WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
        (WebInspector.DOMStorageItemsView.prototype._refreshButtonClicked):
        (WebInspector.DOMStorageItemsView.prototype._editingCallback):
        (WebInspector.DOMStorageItemsView.prototype._deleteCallback):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel):
        (WebInspector.ResourcesPanel.prototype._showDOMStorage.get if):
        (WebInspector.ResourcesPanel.prototype._showDOMStorage):

2013-02-07  Dan Carney  <dcarney@google.com>

        [v8] move persistent::new and ::dispose into same class
        https://bugs.webkit.org/show_bug.cgi?id=109065

        Reviewed by Adam Barth.

        No new tests. No change in functionality.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateSingleConstructorCallback):
        (GenerateEventConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateToV8Converters):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::createWrapper):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::createWrapper):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::createWrapper):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        (WebCore::V8TestEventConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::createWrapper):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::createWrapper):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::constructorCallback):
        (WebCore::V8TestInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::createWrapper):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        (WebCore::V8TestNamedConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::constructorCallback):
        (WebCore::V8TestNode::createWrapper):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::constructorCallback):
        (WebCore::V8TestObj::createWrapper):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        (WebCore::V8TestOverloadedConstructors::createWrapper):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
        * bindings/v8/DOMDataStore.cpp:
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapper):
        (DOMDataStore):
        (WebCore::DOMDataStore::set):
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperMap::get):
        (WebCore::DOMWrapperMap::set):
        (WebCore::DOMWrapperMap::removeAndDispose):
        (WebCore::DOMWrapperMap::defaultWeakCallback):
        * bindings/v8/ScriptWrappable.h:
        (WebCore::ScriptWrappable::wrapper):
        (WebCore::ScriptWrappable::setWrapper):
        (WebCore::ScriptWrappable::reportMemoryUsage):
        (ScriptWrappable):
        (WebCore::ScriptWrappable::disposeWrapper):
        (WebCore::ScriptWrappable::weakCallback):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::installDOMWindow):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::associateObjectWithWrapper):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::weakNPObjectCallback):
        (WebCore::createV8ObjectForNPObject):
        (WebCore::forgetV8ObjectForNPObject):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::initializeContextIfNeeded):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WrapperConfiguration):
        (WebCore::WrapperConfiguration::configureWrapper):
        (WebCore::buildWrapperConfiguration):
        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::wrapArrayBufferView):
        (WebCore::constructWebGLArray):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallbackCustom):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::constructorCallbackCustom):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::constructorCallbackCustom):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8MessageChannelCustom.cpp:
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallbackCustom):
        * bindings/v8/custom/V8WebKitPointCustom.cpp:
        (WebCore::V8WebKitPoint::constructorCallbackCustom):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):

2013-02-07  Zan Dobersek  <zdobersek@igalia.com>

        [Autotools] Remove uses of Automake FARSTREAM_(CFLAGS|LIBS) variables, USE_FARSTREAM conditional
        https://bugs.webkit.org/show_bug.cgi?id=109198

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Remove FARSTREAM_CFLAGS variable, it's not set to anything.

2013-02-07   Vineet Chaudhary  <rgf748@motorola.com>

        Consider replacing return type of Clipboard::types() from ListHashSet<String> to Vector<String>
        https://bugs.webkit.org/show_bug.cgi?id=82888

        Reviewed by Kentaro Hara.

        As part of removing custom bindings of types Array Clipboard::types() needs to return
        Vector<String> than ListHashSet<String>

        No new tests. Existing test should pass with this change as no behavoural changes.

        * bindings/js/JSClipboardCustom.cpp: Replace data type from ListHashSet<> to Vector<>.
        (WebCore::JSClipboard::types):
        * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
        (WebCore::V8Clipboard::typesAccessorGetter): Ditto.
        * dom/Clipboard.h: Ditto.
        * platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
        (WebCore::ClipboardBlackBerry::types):
        * platform/blackberry/ClipboardBlackBerry.h: Ditto.
        * platform/chromium/ChromiumDataObject.cpp: Ditto.
        (WebCore::ChromiumDataObject::types):
        * platform/chromium/ChromiumDataObject.h: Ditto.
        * platform/chromium/ClipboardChromium.cpp: Ditto.
        (WebCore::ClipboardChromium::types):
        * platform/chromium/ClipboardChromium.h: Ditto.
        * platform/efl/ClipboardEfl.cpp: Ditto.
        (WebCore::ClipboardEfl::types):
        * platform/efl/ClipboardEfl.h: Ditto.
        * platform/gtk/ClipboardGtk.cpp: Ditto.
        (WebCore::ClipboardGtk::types):
        * platform/gtk/ClipboardGtk.h: Ditto.
        * platform/mac/ClipboardMac.h: Ditto.
        * platform/mac/ClipboardMac.mm: Ditto.
        (WebCore::addHTMLClipboardTypesForCocoaType):
        (WebCore::ClipboardMac::types):
        * platform/qt/ClipboardQt.cpp: Ditto.
        (WebCore::ClipboardQt::types):
        * platform/qt/ClipboardQt.h: Ditto.
        * platform/win/ClipboardWin.cpp: Ditto.
        (WebCore::addMimeTypesForFormat):
        (WebCore::ClipboardWin::types):
        * platform/win/ClipboardWin.h: Ditto.

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        [V8] StringCache::m_stringCache should be HashMap<StringImpl*, Persistent<String>>
        https://bugs.webkit.org/show_bug.cgi?id=109123

        Reviewed by Adam Barth.

        Currently StringCache::m_stringCache is implemented as
        HashMap<StringImpl*, v8::String*>. Given that v8::String*
        can change when a GC is triggered, it is dangerous to store a raw pointer.
        We should use HashMap<StringImpl*, v8::Persistent<v8::String>> instead.

        This is a possible fix for an IndexedDB crash (https://bugs.webkit.org/show_bug.cgi?id=105363),
        although I'm not sure if this patch fixes the crash. (I couldn't reproduce the crash.)

        No tests. This change highly depends on GC behavior and thus it is
        difficult to make a reliable test case.

        * bindings/v8/V8ValueCache.cpp:
        (WebCore::makeExternalString):
        * bindings/v8/V8ValueCache.h:
        (StringCache):

2013-01-27  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: floats-149 fails
        https://bugs.webkit.org/show_bug.cgi?id=95772

        Reviewed by David Hyatt.

        Treat inlines that contain nothing but empty inlines as empty too so that they get a linebox.

        Tests: fast/inline/inline-with-empty-inline-children.html
               css2.1/20110323/floats-149.htm

        * rendering/InlineIterator.h:
        (WebCore::isEmptyInline):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Now that empty inlines get a linebox any out-of-flow
        objects inside an empty inline (on a line that is otherwise empty) won't get positioned while skipping 
        through leading whitespace. 

2013-02-07  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile fix after r141981
        https://bugs.webkit.org/show_bug.cgi?id=109184

        Reviewed by Brent Fulgham.

        * platform/network/curl/ResourceHandleCurl.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):

2013-02-07  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Cookie database isn't loaded into memory in some rare cases
        https://bugs.webkit.org/show_bug.cgi?id=109202
        PR 286189

        Reviewed by Yong Li.
        Internally Reviewed by Konrad Piascik.

        If a get/setCookie call is made before the database is loaded, or if there's some
        kind of error that causes the loading of the database to fail in the constructor
        of CookieManager, the browser will get into a state where it seems like cookie is
        permanenty disabled.

        Instead of logging the errors and redispatching the setCookie, we should do a force sync
        to load the cookie database before continuing.

        Since the bug is so difficult to reproduce (I never did so myself), I did the follow test
        to make sure the code path is correct:
        1) Make sure original implementation is retained - open and loading done in the constructor
        2) Removed opening and loading in constructor, the new calls in get/setcookies loaded the db just fine (although with
        an initial lag because we are blocking WKT while performing SQLite options).
        3) Removed loading in constructor, the new calls loaded the db just fine.

        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
        (WebCore::CookieDatabaseBackingStore::openAndLoadDatabaseSynchronously):
        (WebCore):
        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
        (CookieDatabaseBackingStore):
        * platform/blackberry/CookieManager.cpp:
        (WebCore::CookieManager::setCookies):
        (WebCore::CookieManager::getCookie):
        (WebCore::CookieManager::generateHtmlFragmentForCookies):
        (WebCore::CookieManager::getRawCookies):

2013-02-07  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Add WebKitCSSFilterRule to DOMWindow.idl
        https://bugs.webkit.org/show_bug.cgi?id=109082

        Reviewed by Dean Jackson.

        Add an entry for WebKitCSSFilterRuleConstructor in DOMWindow.idl.

        Tests: css3/filters/custom-with-at-rule-syntax/parsing-at-rule-invalid.html
               css3/filters/custom-with-at-rule-syntax/parsing-at-rule-valid.html

        * page/DOMWindow.idl:

2013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove unused workspace field from NetworkUISourceCodeProvider
        https://bugs.webkit.org/show_bug.cgi?id=109201

        Reviewed by Pavel Feldman.

        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider):
        * inspector/front-end/inspector.js:

2013-02-07  Jessie Berlin  <jberlin@apple.com>

        REGRESSION(r142003): Duplicate "Unknown" strings in LocalizedStrings.cpp not distinguished
        by key
        https://bugs.webkit.org/show_bug.cgi?id=109196

        Reviewed by Eric Carlson.

        * English.lproj/Localizable.strings:
        Updated for the changes.
        * platform/LocalizedStrings.cpp:
        (WebCore::unknownFileSizeText):
        Add a key.
        (WebCore::textTrackNoLabelText):
        Ditto.

2013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: linkifyResourceAsNode produced anchor should not prefer resources to scripts panel.
        https://bugs.webkit.org/show_bug.cgi?id=109197

        Reviewed by Pavel Feldman.

        Javascript syntax errors in console are now linkified so that they show sources panel by default.

        * inspector/front-end/ResourceUtils.js:
        (WebInspector.linkifyResourceAsNode):

2013-02-07  Eberhard Graether  <egraether@google.com>

        Web Inspector: Add settings checkbox for composited layer borders
        https://bugs.webkit.org/show_bug.cgi?id=109096

        Reviewed by Pavel Feldman.

        This change adds a checkbox to show composited layer borders to the WebInspector's
        rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The setting
        is visible if InspectorClient::canShowDebugBorders() returns true.

        No new tests.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::canShowDebugBorders):
        (WebCore::InspectorClient::setShowDebugBorders):
        (InspectorClient):
        * inspector/InspectorPageAgent.cpp:
        (PageAgentState):
        (WebCore::InspectorPageAgent::restore):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::canShowDebugBorders):
        (WebCore):
        (WebCore::InspectorPageAgent::setShowDebugBorders):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):
        (WebInspector.GenericSettingsTab.prototype.get _showDebugBordersChanged):
        * inspector/front-end/inspector.js:
        (WebInspector.doLoadedDone):

2013-02-07  Gavin Peters  <gavinp@chromium.org>

        Unreviewed, rolling out r142141.
        http://trac.webkit.org/changeset/142141
        https://bugs.webkit.org/show_bug.cgi?id=108990

        Reland r142112, will update Chromium expectations and create a
        Chromium bug instead for the crash.

        * CMakeLists.txt:
        * Target.pri:
        * WebCore.pri:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::create):
        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Added.
        (WebCore):
        (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
        (WebCore::ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer):
        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
        (WebCore):
        (ScrollingCoordinatorCoordinatedGraphics):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
        (WebCore):
        (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        (CoordinatedGraphicsLayerClient):
        (CoordinatedGraphicsLayer):

2013-02-07  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: home button behaviour is wrong in DTE
        https://bugs.webkit.org/show_bug.cgi?id=109154

        Reviewed by Vsevolod Vlasov.

        Handle home key shortcut explicitly in TextEditorMainPanel.

        New test: inspector/editor/text-editor-home-button.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
        (WebInspector.TextEditorMainPanel.prototype._handleHomeKey):

2013-02-07  Gavin Peters  <gavinp@chromium.org>

        Unreviewed, rolling out r142112.
        http://trac.webkit.org/changeset/142112
        https://bugs.webkit.org/show_bug.cgi?id=108990

        The new test scrollingcoordinator/non-fast-scrollable-region-transformed- iframe.html crashes on Lion.

        See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=scrollingcoordinator%2Fnon-fast-scrollable-region-transformed-iframe.html

        * CMakeLists.txt:
        * Target.pri:
        * WebCore.pri:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::create):
        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Removed.
        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Removed.
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        (CoordinatedGraphicsLayerClient):
        (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):

2013-02-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Scrollbars misplaced with accelerated compositing for overflow scroll
        https://bugs.webkit.org/show_bug.cgi?id=108625

        Reviewed by Simon Fraser.

        Scrollbars require their own layer if overflow scroll is composited,
        otherwise the scrollbars would be rendered on the content layer and
        not fixed to the viewport.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer):
        (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer):
        (WebCore::RenderLayerBacking::requiresScrollCornerLayer):

2013-02-07  Mike West  <mkwst@chromium.org>

        Don't ASSERT things about uninitialized variables.
        https://bugs.webkit.org/show_bug.cgi?id=109187

        Reviewed by Jochen Eisinger.

        Rather than ASSERTing that an uninitialized ExceptionCode is non-zero
        after some method executes, we should use the ASSERT_NO_EXCEPTION macro.

        * editing/markup.cpp:
        (WebCore::removeElementPreservingChildren):

2013-02-07  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: [Regression] breakpoint condition not editable
        https://bugs.webkit.org/show_bug.cgi?id=109183

        Reviewed by Vsevolod Vlasov.

        Improve TextEditorMainPanel.selection() method to return null if the
        selection is set inside of decoration element.

        No new tests.

        * inspector/front-end/DOMExtension.js:
        (Node.prototype.enclosingNodeOrSelfWithClass): Improve to add iteration boundary.
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype.selection):

2013-02-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [WK2][EFL][QT]REGRESSION(r142045): Scrolling is broken
        https://bugs.webkit.org/show_bug.cgi?id=109185

        Reviewed by Kenneth Rohde Christiansen.

        This patch is disabling paints clipping logic added at r142045 for the case 
        when the view should render the entire contents (case of using tiled backing store).

        No new tests, covered by plenty of existing manual tests that allow scrolling
        (for example fixed-position.html).

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::paint):

2013-02-07  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Show elements and sources sidebar panes in a tabbed pane when they are below the main pane
        https://bugs.webkit.org/show_bug.cgi?id=107552

        Reviewed by Pavel Feldman.

        Removed the aspect ratio detection logic and implemented explicit user action "Split Horizontally" available
        in Elements and Sources panels. When split horizontally the sidebar panes are organized into a tabbed pane.
        This user action is behind an experimental flag.

        No new tests.

        * inspector/front-end/ContextMenu.js:
        (WebInspector.ContextMenu.prototype.show):
        * inspector/front-end/DOMBreakpointsSidebarPane.js:
        (WebInspector.DOMBreakpointsSidebarPane.prototype.createProxy):
        (WebInspector.DOMBreakpointsSidebarPane.prototype.onContentReady):
        (WebInspector.DOMBreakpointsSidebarPane.Proxy):
        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.expanded):
        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.expand):
        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.collapse):
        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.onContentReady):
        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.wasShown):
        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype._reattachBody):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype._populateContextMenu):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._clearInterface):
        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
        (WebInspector.ScriptsPanel.prototype._contextMenuEventFired):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SidebarPane.js:
        (WebInspector.SidebarPane):
        (WebInspector.SidebarPane.prototype.prepareContent):
        (WebInspector.SidebarPane.prototype.expanded):
        (WebInspector.SidebarPane.prototype.expand):
        (WebInspector.SidebarPane.prototype.collapse):
        (WebInspector.SidebarPane.prototype.onContentReady):
        (WebInspector.SidebarPane.prototype._setExpandCallback):
        (WebInspector.SidebarPaneStack.prototype.addPane):
        (WebInspector.SidebarPaneStack.prototype.activePaneId):
        (WebInspector.SidebarPaneStack.prototype.setActivePaneId):
        (WebInspector.SidebarPaneStack.prototype._setExpanded):
        (WebInspector.SidebarPaneStack.prototype._onPaneExpanded):
        (WebInspector.SidebarPaneStack.prototype._collapsePane):
        (WebInspector.SidebarTabbedPane):
        (WebInspector.SidebarTabbedPane.prototype.addPane):
        (WebInspector.SidebarTabbedPane.prototype.activePaneId):
        (WebInspector.SidebarTabbedPane.prototype.setActivePaneId):
        (WebInspector.SidebarPaneGroup):
        (WebInspector.SidebarPaneGroup.prototype.setStacked):
        (WebInspector.SidebarPaneGroup.prototype.addPane):
        (WebInspector.SidebarPaneGroup.prototype.attachToPanel):
        (WebInspector.SidebarPaneGroup.prototype.populateContextMenu.toggleSplitDirection):
        (WebInspector.SidebarPaneGroup.prototype.get _contextMenuEventFired):
        (WebInspector.SidebarPaneGroup.prototype._onSplitDirectionSettingChanged):
        * inspector/front-end/SidebarView.js:
        (WebInspector.SidebarView):
        (WebInspector.SidebarView.prototype._updateSidebarElementStyle):
        (WebInspector.SidebarView.prototype.setVertical):
        (WebInspector.SidebarView.prototype.onResize):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.ComputedStyleSidebarPane.prototype.wasShown):
        (WebInspector.ComputedStyleSidebarPane.prototype.prepareContent):
        * inspector/front-end/inspector.css:
        (.sidebar-pane .section .properties, .event-bar .event-properties):
        (.pane-title):
        (.sidebar-pane-toolbar):
        (.sidebar-pane-toolbar > *):
        (.sidebar-pane-toolbar > select):
        (.sidebar-pane-toolbar > select:hover):
        (.sidebar-pane-toolbar > select:active):
        (.sidebar-pane-toolbar > select.select-settings):
        (.sidebar-pane-toolbar > select.select-filter):
        (.sidebar-pane-toolbar > select > option, .sidebar-pane-toolbar > select > hr):
        (.sidebar-pane-toolbar > .pane-title-button):
        (.sidebar-pane-toolbar > .pane-title-button:hover):
        (.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
        (.sidebar-pane-toolbar > .pane-title-button.add):
        (.sidebar-pane-toolbar > .pane-title-button.element-state):
        (.sidebar-pane-toolbar > .pane-title-button.refresh):
        (.sidebar-pane):
        (.sidebar-pane > .body):
        (.sidebar-pane > .body .info):
        (.sidebar-pane > .body .placard + .info):
        (.sidebar-pane.visible > .body):
        (.sidebar-pane > .body .breakpoint-condition):
        (.sidebar-pane.visible:nth-last-of-type(1)):
        (.sidebar-pane-subtitle):
        (.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
        (.sidebar-pane .breakpoint-hit):

2013-02-07  Gavin Peters  <gavinp@chromium.org>

        Unreviewed, rolling out r142111.
        http://trac.webkit.org/changeset/142111
        https://bugs.webkit.org/show_bug.cgi?id=108055

        win7 bot didn't display Arabic, see http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=platform%2Fchromium%2Ffast%2Fforms%2Fcalendar-picker%2Fcalendar-picker-appearance-required-ar.html

        * Resources/pagepopups/calendarPicker.css:
        (.today-clear-area .today-button):
        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker.prototype.fixWindowSize):

2013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Map.size() returns negative values.
        https://bugs.webkit.org/show_bug.cgi?id=109174

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/utilities.js:

2013-02-07  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: break details are only rendered upon first debugger pause.
        https://bugs.webkit.org/show_bug.cgi?id=109193

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/CallStackSidebarPane.js:
        (WebInspector.CallStackSidebarPane.prototype.update):

2013-02-07  Gavin Peters  <gavinp@chromium.org>

        Unreviewed, rolling out r142118.
        http://trac.webkit.org/changeset/142118
        https://bugs.webkit.org/show_bug.cgi?id=109044

        Broke SVG! Oh noes!

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::direction):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::mode):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::takeAllChildrenFrom):
        * dom/Document.cpp:
        (WebCore::Document::setTitle):
        * dom/MessagePort.cpp:
        (WebCore::MessagePort::dispatchMessages):
        (WebCore::MessagePort::disentanglePorts):
        * editing/DeleteButtonController.cpp:
        (WebCore::enclosingDeletableElement):
        (WebCore::DeleteButtonController::createDeletionUI):
        (WebCore::DeleteButtonController::show):
        * editing/EditorCommand.cpp:
        (WebCore::unionDOMRanges):
        * editing/ReplaceNodeWithSpanCommand.cpp:
        (WebCore::swapInNodePreservingAttributesAndChildren):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::ReplacementFragment):
        (WebCore::ReplacementFragment::removeNode):
        (WebCore::ReplacementFragment::insertNodeBefore):
        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
        (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        * editing/SplitTextNodeCommand.cpp:
        (WebCore::SplitTextNodeCommand::doUnapply):
        * editing/TextIterator.cpp:
        (WebCore::CharacterIterator::range):
        (WebCore::BackwardsCharacterIterator::range):
        (WebCore::TextIterator::rangeFromLocationAndLength):
        (WebCore::collapsedToBoundary):
        * editing/htmlediting.cpp:
        (WebCore::createTabSpanElement):
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::fontForSelection):
        (WebCore::Editor::fontAttributesForSelectionStart):
        * editing/markup.cpp:
        (WebCore::createMarkup):
        (WebCore::trimFragment):
        (WebCore::createFragmentFromMarkupWithContext):
        (WebCore::fillContainerFromString):
        (WebCore::createFragmentFromText):
        (WebCore::createFragmentFromNodes):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::createShadowSubtree):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::updatePlaceholderText):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::buildBubbleTree):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::getCookies):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::addRule):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::dispatchDOMEvent):
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::deleteFromDocument):
        * page/DragController.cpp:
        (WebCore::prepareClipboardForImageDrag):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::visiblePositionForIndex):
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::initialBaselineShiftValue):
        (WebCore::SVGRenderStyle::initialKerning):
        (WebCore::SVGRenderStyle::initialStrokeDashOffset):
        (WebCore::SVGRenderStyle::initialStrokeWidth):
        * svg/SVGAnimatedLength.cpp:
        (WebCore::sharedSVGLength):
        (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
        (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
        * svg/SVGAnimatedLengthList.cpp:
        (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
        (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::SVGLength):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::textLengthAnimated):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::constructQualifiedName):

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        Remove #if USE(V8) from IDBRequest.h
        https://bugs.webkit.org/show_bug.cgi?id=109163

        Reviewed by Andreas Kling.

        The header included inside the #if USE(V8) macro is not used.
        We can simply remove it.

        No tests. No change in behavior.

        * Modules/indexeddb/IDBRequest.h:

2013-02-07  Stephen Chenney  <schenney@chromium.org>

        GraphicsContext::drawImageBuffer is inefficient
        https://bugs.webkit.org/show_bug.cgi?id=104367

        Reviewed by Dirk Schulze.

        This patch converts all of the drawImage and drawImageBuffer
        convenience methods (those that take parameters of various types) to
        invoke the implementing method (that takes FloatRect src and dest)
        directly, rather than through the next-most-convenient method as was
        done previously. This will knock some layers off the stack compared
        to the existing code, and may remove one or two constructor invocations.
        This may be slightly more efficient, and also makes debugging simpler.

        Also removes the unused drawImage method that takes and IntRect source
        area and IntRect destination. It is not invoked anywhere in a standard
        WebKit checkout.

        No new tests. No change in functionality, just refactoring.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage): Modify all the convenience versions to call
        the implementing version directly.
        (WebCore::GraphicsContext::drawImageBuffer): Modify all the convenience versions
        to call the implementing version directly.
        * platform/graphics/GraphicsContext.h:
        (GraphicsContext): Remove IntRect, IntRect version of drawImage.

2013-02-07  Kent Tamura  <tkent@chromium.org>

        Conversion from localized numbers to HTML numbers should accept not only localized numbers but also HTML numbers
        https://bugs.webkit.org/show_bug.cgi?id=109160

        Reviewed by Kentaro Hara.

        For example, A French user needs to specify a number to a number input
        field. He might use a local decimal point, like 3,141592, or he might
        use the standard decimal point like 3.141592. We had better accept both
        of them.

        We accepted both last year, but we changed the behavior so that we
        accept only localized numbers because we had some cases where an input
        string can be recognized as both of a localized number and the standard
        number. e.g. 3.141 is 3141 in French locale and 3.141 in the
        standard. Now we introduce a simple rule that we don't accept group
        separator at all. So users won't confuse even if we accept both of
        decimal points.

        Test: fast/forms/number/number-l10n-input.html

        * platform/text/PlatformLocale.cpp:
        (WebCore::Locale::convertFromLocalizedNumber):
        If the specified string contains invalid characters including group
        separators, just return the specified string.

2013-02-07  Xiaobo Wang  <xbwang@torchmobile.com.cn>

        [BlackBerry] CHHW - Characters that are using 32 bits encoding get trunked to 16bits
        https://bugs.webkit.org/show_bug.cgi?id=109126
        PR 292540

        Reviewed by Yong Li.

        Change char code to 4 bytes.
        Need to convert UTF32 key char to UTF16 before constructing a WTF::String.

        * platform/PlatformKeyboardEvent.h:
        (WebCore::PlatformKeyboardEvent::unmodifiedCharacter):
        (PlatformKeyboardEvent):
        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
        (WebCore::keyIdentifierForBlackBerryCharacter):
        (WebCore::windowsKeyCodeForBlackBerryCharacter):
        (WebCore::adjustCharacterFromOS):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2013-02-07  Mike West  <mkwst@chromium.org>

        Replace ExceptionCode assertions with ASSERT_NO_EXCEPTION macro.
        https://bugs.webkit.org/show_bug.cgi?id=109044

        Reviewed by Darin Adler.

        The pattern:

            ExceptionCode ec = 0;
            methodThatGeneratesException(ec);
            ASSERT(!ec);

        is more clearly and succinctly written as:

            methodThatGeneratesException(ASSERT_NO_EXCEPTION);

        This patch replaces the occurances of the former that never touch 'ec'
        again with the latter. It does the same for 'ASSERT(ec == 0);' (and, as
        a drive-by, replaces 'ASSERT(ec == 0)' with 'ASSERT(!ec)' in places
        where it does indeed matter that 'ec' get set properly.

        No change in behavior should result from this refactoring.

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::direction):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::mode):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::takeAllChildrenFrom):
        * dom/Document.cpp:
        (WebCore::Document::setTitle):
        * dom/MessagePort.cpp:
        (WebCore::MessagePort::dispatchMessages):
        (WebCore::MessagePort::disentanglePorts):
        * editing/DeleteButtonController.cpp:
        (WebCore::enclosingDeletableElement):
        (WebCore::DeleteButtonController::createDeletionUI):
            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
        (WebCore::DeleteButtonController::show):
            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
        * editing/EditorCommand.cpp:
        (WebCore::unionDOMRanges):
        * editing/ReplaceNodeWithSpanCommand.cpp:
        (WebCore::swapInNodePreservingAttributesAndChildren):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::ReplacementFragment):
        (WebCore::ReplacementFragment::removeNode):
        (WebCore::ReplacementFragment::insertNodeBefore):
        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
        (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        * editing/SplitTextNodeCommand.cpp:
        (WebCore::SplitTextNodeCommand::doUnapply):
        * editing/TextIterator.cpp:
        (WebCore::CharacterIterator::range):
        (WebCore::BackwardsCharacterIterator::range):
        (WebCore::TextIterator::rangeFromLocationAndLength):
        (WebCore::collapsedToBoundary):
        * editing/htmlediting.cpp:
        (WebCore::createTabSpanElement):
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::fontForSelection):
        (WebCore::Editor::fontAttributesForSelectionStart):
        * editing/markup.cpp:
        (WebCore::createMarkup):
        (WebCore::trimFragment):
        (WebCore::createFragmentFromMarkupWithContext):
        (WebCore::fillContainerFromString):
        (WebCore::createFragmentFromText):
        (WebCore::createFragmentFromNodes):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::createShadowSubtree):
            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::updatePlaceholderText):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::buildBubbleTree):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::getCookies):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::addRule):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::dispatchDOMEvent):
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::deleteFromDocument):
        * page/DragController.cpp:
        (WebCore::prepareClipboardForImageDrag):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::visiblePositionForIndex):
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::initialBaselineShiftValue):
        (WebCore::SVGRenderStyle::initialKerning):
        (WebCore::SVGRenderStyle::initialStrokeDashOffset):
        (WebCore::SVGRenderStyle::initialStrokeWidth):
        * svg/SVGAnimatedLength.cpp:
        (WebCore::sharedSVGLength):
        (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
        (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
        * svg/SVGAnimatedLengthList.cpp:
        (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
        (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::SVGLength):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::textLengthAnimated):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::constructQualifiedName):
            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.

2013-02-07  Mary Wu  <mary.wu@torchmobile.com.cn>

        [BlackBerry] Export mimeType in NetworkJob
        https://bugs.webkit.org/show_bug.cgi?id=109002

        Reviewed by Yong Li.

        NetworkJob will analysize resource mimetype and set it to resourceResponse,
        we will pass it on to be used by other Streams like download stream.

        RIM bug# 284408, internally reviewed by Liam Quinn.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::mimeType):
        (WebCore):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):

2013-02-07  Peter Rybin  <prybin@chromium.org>

        Web Inspector: support JavaScript variable mutation in protocol and V8 bindings
        https://bugs.webkit.org/show_bug.cgi?id=107829

        A new command is added to protocol description and the call is passed through
        debugger agent through injected script and debugger script down to V8 mirror
        API. JSC bindings got a thorw exception stub.

        Only declarative JavaScript scopes are supported (local, closure, catch). Other
        scopes (global, with) are not supported by V8 and not supported by protocol, because
        manual approach (direct property assigment) is available for them in form of evaluate
        commands and is more desirable because of a complex nature of operation (it can throw
        exception in several cases such as exception in setter function).

        Reviewed by Pavel Feldman.

        Test: inspector-protocol/debugger-setVariableValue.html

        * bindings/js/JSInjectedScriptHostCustom.cpp:
        (WebCore::JSInjectedScriptHost::setFunctionVariableValue):
        (WebCore):
        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
        (WebCore::JSJavaScriptCallFrame::setVariableValue):
        (WebCore):
        * bindings/v8/DebuggerScript.js:
        (.):
        * bindings/v8/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::setVariableValue):
        (WebCore):
        * bindings/v8/JavaScriptCallFrame.h:
        (JavaScriptCallFrame):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::setFunctionVariableValue):
        (WebCore):
        * bindings/v8/ScriptDebugServer.h:
        (ScriptDebugServer):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::setFunctionVariableValueCallback):
        (WebCore):
        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
        (WebCore::V8JavaScriptCallFrame::setVariableValueCallback):
        (WebCore):
        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::setVariableValue):
        (WebCore):
        * inspector/InjectedScript.h:
        (InjectedScript):
        * inspector/InjectedScriptHost.idl:
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::getFunctionDetails):
        (WebCore::InspectorDebuggerAgent::setVariableValue):
        (WebCore):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/JavaScriptCallFrame.idl:

2013-02-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        [CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers
        https://bugs.webkit.org/show_bug.cgi?id=108990

        Reviewed by Noam Rosenthal.

        WebCore keeps ScrollingCoordinator up-to-date about whether layers are fixed or not, so we
        don't need to traverse the tree every frame to get this information.

        The function ScrollingCoordinator::setLayerIsFixedToContainerLayer() is called when
        RenderLayerBacking is updating its graphics layers.

        The new code also works in new situations where the previous was broken: if a layer changed
        from being fixed to not fixed (but still kept as a layer for other reasons), the layer will
        be correctly updated. Previous implementation only had logic to mark layers as fixed, but
        not the other way round. A manual test was added to illustrate the solved problem.

        Testing was done with the existing manual tests that make use of "position:fixed". Automatic
        tests are mostly not affected by this because usage of this information affects only the
        UseFixedLayout mode, not used by default in WebKitTestRunner. Work to improve this situation
        will be tracked in bug https://bugs.webkit.org/show_bug.cgi?id=109175.

        * CMakeLists.txt:
        * Target.pri:
        * WebCore.pri:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::create): create specific version of ScrollingCoordinator.
        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Added.
        (WebCore):
        (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
        (WebCore::ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer):
        update layer information using existing hook in ScrollingCoordinator.
        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
        (WebCore):
        (ScrollingCoordinatorCoordinatedGraphics):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::setFixedToViewport): now that setting viewport is not
        embedded in the synchronization work, we need to mark the layer so it is updated in the
        next frame.
        (WebCore):
        (WebCore::CoordinatedGraphicsLayer::flushCompositingState): remove call to syncFixedLayers().
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        (CoordinatedGraphicsLayerClient): remove now unused syncFixedLayers() from client.
        (CoordinatedGraphicsLayer):

2013-02-07  Keishi Hattori  <keishi@webkit.org>

        REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
        https://bugs.webkit.org/show_bug.cgi?id=109136

        Reviewed by Kent Tamura.

        Calendar picker was using the "Clear" button to calculate the window width.
        Since it doesn't exist when the input element has a required attribute,
        it was throwing an error. This patch fixes the width calculating logic.

        Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html
               platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required.html

        * Resources/pagepopups/calendarPicker.css:
        (.today-clear-area):
        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker.prototype.fixWindowSize): Fixing the logic to calculate
        the width. We don't want to use clear button because it doesn't exist
        when a value is required.

2013-02-07  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed build fix. libWebCore.la needs to be relinked when
        symbols.filter changes.

        * GNUmakefile.am: add symbols.filter as a dependency for the
        libWebCore.la library.

2013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Closure compilation fixes
        https://bugs.webkit.org/show_bug.cgi?id=109131

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        * inspector/front-end/FileSystemMapping.js:
        (WebInspector.FileSystemMappingImpl.prototype.uriPrefixForPathPrefix):
        * inspector/front-end/IsolatedFileSystemModel.js:
        (WebInspector.IsolatedFileSystemModel.prototype._fileSystemRemoved):
        * inspector/front-end/SidebarPane.js:

2013-02-07  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r142077.
        http://trac.webkit.org/changeset/142077
        https://bugs.webkit.org/show_bug.cgi?id=108579

        fast/filesystem/workers/file-writer-empty-blob.html is broken

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isolated):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::worldForEnteredContextIfIsolated):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8GCController.cpp:
        (WebCore::WrapperVisitor::WrapperVisitor):
        (WebCore):
        (WebCore::gcTree):
        (WebCore::V8GCController::didCreateWrapperForNode):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-02-07  Tony Gentilcore  <tonyg@chromium.org>

        Call XSSAuditor.filterToken() from threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=107603

        Reviewed by Adam Barth.

        With this patch we now pass 180 of 182 tests in http/tests/security/xssAuditor.

        We do this by creating aan XSSAuditor on the main thread and passing ownership of them to the BackgroundHTMLParser upon its creation.

        Then the background thread calls filterToken() and stores the resulting XSSInfo (if any) on the CompactHTMLToken for the main thread to handle.

        This involved trimming the XSSAuditor to only depend on the TextEncoding instead of the whole TextResourceDecoder.

        No new tests because covered by existing tests.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        (WebCore::BackgroundHTMLParser::createPartial):
        * html/parser/BackgroundHTMLParser.h:
        (WebCore):
        (WebCore::BackgroundHTMLParser::create):
        (BackgroundHTMLParser):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore::HTMLDocumentParser::startBackgroundParser):
        * html/parser/HTMLSourceTracker.cpp:
        (WebCore::HTMLSourceTracker::start):
        (WebCore::HTMLSourceTracker::end):
        * html/parser/HTMLSourceTracker.h: Change the HTMLInputStream args to SegmentedString because the background thread only has a BackgroundHTMLInputStream.
        (HTMLSourceTracker):
        * html/parser/HTMLViewSourceParser.cpp:
        (WebCore::HTMLViewSourceParser::pumpTokenizer):
        * html/parser/XSSAuditor.cpp:
        (WebCore::fullyDecodeString):
        (WebCore::XSSAuditor::XSSAuditor):
        (WebCore::XSSAuditor::init): Copies necessary to make isSafeToSendToAnotherThread() happy.
        (WebCore::XSSAuditor::decodedSnippetForName):
        (WebCore::XSSAuditor::decodedSnippetForAttribute):
        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
        (WebCore::XSSAuditor::isSafeToSendToAnotherThread): Check that all String and KURL members are safe to send to another thread.
        (WebCore):
        * html/parser/XSSAuditor.h:
        (WebCore):
        (WebCore::FilterTokenRequest::FilterTokenRequest):
        (FilterTokenRequest):
        (XSSAuditor):

2013-02-07  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] Implement opacity animation with clutter ac backend
        https://bugs.webkit.org/show_bug.cgi?id=108961

        Reviewed by Gustavo Noronha Silva.

        Implement opacity animation with clutter ac backend.
        Almost all implementations of GraphicsLayerClutter are based on mac port's one.
        PlatformClutterAnimation interfaces are also similar with mac port, but they are implemented
        with native clutter APIs.
        This patch includes only opacity animation related changes, so many APIs might be empty.
        Remained animations like rotation and translate will be dealt in another patches.

        Covered by existing animation tests.

        * GNUmakefile.list.am:
        * platform/graphics/clutter/GraphicsLayerActor.cpp:
        (graphicsLayerActorGetAnimationForKey):
        * platform/graphics/clutter/GraphicsLayerActor.h:
        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore):
        (WebCore::propertyIdToString):
        (WebCore::animationIdentifier):
        (WebCore::animationHasStepsTimingFunction):
        (WebCore::GraphicsLayerClutter::setOpacity):
        (WebCore::GraphicsLayerClutter::updateAnimations):
        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerClutter::setupAnimation):
        (WebCore::GraphicsLayerClutter::timingFunctionForAnimationValue):
        (WebCore::GraphicsLayerClutter::createBasicAnimation):
        (WebCore::GraphicsLayerClutter::createKeyframeAnimation):
        (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
        (WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
        (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
        (WebCore::GraphicsLayerClutter::createAnimationFromKeyframes):
        (WebCore::GraphicsLayerClutter::addAnimation):
        (WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
        (WebCore::GraphicsLayerClutter::pauseClutterAnimationOnLayer):
        (WebCore::GraphicsLayerClutter::setAnimationOnLayer):
        (WebCore::GraphicsLayerClutter::setAnimationEndpoints):
        (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
        (WebCore::GraphicsLayerClutter::animatedLayer):
        * platform/graphics/clutter/GraphicsLayerClutter.h:
        (GraphicsLayerClutter):
        (WebCore::GraphicsLayerClutter::LayerPropertyAnimation::LayerPropertyAnimation):
        (LayerPropertyAnimation):
        (WebCore::GraphicsLayerClutter::AnimationProcessingAction::AnimationProcessingAction):
        (AnimationProcessingAction):
        * platform/graphics/clutter/PlatformClutterAnimation.cpp: Added.
        (WebCore):
        (WebCore::timelineStartedCallback):
        (WebCore::toClutterAnimationMode):
        (WebCore::PlatformClutterAnimation::stringToAnimatedPropertyType):
        (WebCore::PlatformClutterAnimation::create):
        (WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
        (WebCore::PlatformClutterAnimation::~PlatformClutterAnimation):
        (WebCore::PlatformClutterAnimation::supportsValueFunction):
        (WebCore::PlatformClutterAnimation::beginTime):
        (WebCore::PlatformClutterAnimation::setBeginTime):
        (WebCore::PlatformClutterAnimation::duration):
        (WebCore::PlatformClutterAnimation::setDuration):
        (WebCore::PlatformClutterAnimation::speed):
        (WebCore::PlatformClutterAnimation::setSpeed):
        (WebCore::PlatformClutterAnimation::timeOffset):
        (WebCore::PlatformClutterAnimation::setTimeOffset):
        (WebCore::PlatformClutterAnimation::repeatCount):
        (WebCore::PlatformClutterAnimation::setRepeatCount):
        (WebCore::PlatformClutterAnimation::autoreverses):
        (WebCore::PlatformClutterAnimation::setAutoreverses):
        (WebCore::PlatformClutterAnimation::fillMode):
        (WebCore::PlatformClutterAnimation::setFillMode):
        (WebCore::PlatformClutterAnimation::setTimingFunction):
        (WebCore::PlatformClutterAnimation::copyTimingFunctionFrom):
        (WebCore::PlatformClutterAnimation::isRemovedOnCompletion):
        (WebCore::PlatformClutterAnimation::setRemovedOnCompletion):
        (WebCore::PlatformClutterAnimation::isAdditive):
        (WebCore::PlatformClutterAnimation::setAdditive):
        (WebCore::PlatformClutterAnimation::valueFunction):
        (WebCore::PlatformClutterAnimation::setValueFunction):
        (WebCore::PlatformClutterAnimation::setFromValue):
        (WebCore::PlatformClutterAnimation::copyFromValueFrom):
        (WebCore::PlatformClutterAnimation::setToValue):
        (WebCore::PlatformClutterAnimation::copyToValueFrom):
        (WebCore::PlatformClutterAnimation::setValues):
        (WebCore::PlatformClutterAnimation::copyValuesFrom):
        (WebCore::PlatformClutterAnimation::setKeyTimes):
        (WebCore::PlatformClutterAnimation::copyKeyTimesFrom):
        (WebCore::PlatformClutterAnimation::setTimingFunctions):
        (WebCore::PlatformClutterAnimation::copyTimingFunctionsFrom):
        (WebCore::PlatformClutterAnimation::animationDidStart):
        (WebCore::PlatformClutterAnimation::timeline):
        (WebCore::PlatformClutterAnimation::addOpacityTransition):
        (WebCore::PlatformClutterAnimation::addAnimationForKey):
        (WebCore::PlatformClutterAnimation::removeAnimationForKey):
        * platform/graphics/clutter/PlatformClutterAnimation.h: Added.
        (WebCore):
        (PlatformClutterAnimation):
        (WebCore::PlatformClutterAnimation::animationType):

2013-02-07  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: highlight matching braces in DTE.
        https://bugs.webkit.org/show_bug.cgi?id=108697

        Reviewed by Pavel Feldman.

        Implement BraceMatcher class which for given position in textModel
        will respond with enclosing brace pair for that position.
        Make use of this class in DefaultTextEditor by handling
        selectionChange event. Make use of this class in "_closingBlockOffset"
        method of TextEditorMainPanel as this method implements similar
        functionality.

        New test: inspector/editor/brace-matcher.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
        (WebInspector.TextEditorMainPanel.BraceHighlightController):
        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
        * inspector/front-end/TextEditorHighlighter.js:
        (WebInspector.TextEditorHighlighter.prototype._highlightLines):
        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextEditorModel.endsWithBracketRegex):
        (WebInspector.TextEditorModel.endsWithBracketRegex.):
        * inspector/front-end/textEditor.css:
        (.text-editor-brace-match):

2013-02-05  Eunmi Lee  <eunmi15.lee@samsung.com> and Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>

        [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
        https://bugs.webkit.org/show_bug.cgi?id=97173

        Reviewed by Kenneth Rohde Christiansen, signed-off by Benjamin Poulain.

        Remove codes to initialize and shutdown the EFL libraries from
        RunLoopEfl.cpp. Initialization and shutdown will be done in the
        ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
        process.

        No new tests. This patch doesn't change behavior.

        * platform/efl/RunLoopEfl.cpp:
        (WebCore::RunLoop::RunLoop):
        (WebCore::RunLoop::~RunLoop):

2013-02-07  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed fix for inspector tests in debug.
        m_frontend should be initialized in constructor.

        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):

2013-02-07  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: reduce number of native memory instrumentation categories
        https://bugs.webkit.org/show_bug.cgi?id=109146

        Reviewed by Pavel Feldman.

        Merged some of memory instrumentation categories.

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.MemoryBlockViewProperties._initialize):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):

2013-02-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
        https://bugs.webkit.org/show_bug.cgi?id=108579

        Reviewed by Adam Barth.

        Currently V8GCController::m_edenNodes stores a list of nodes whose
        wrappers have been created since the latest GC. The reason why we
        needed m_edenNodes is that there was no way to know a list of wrappers
        in the new space of V8. By using m_edenNodes, we had been approximating
        'wrappers in the new space' by 'wrappers that have been created since
        the latest GC'.

        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
        can know a list of wrappers in the new space. By using the API, we can
        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
        need to keep m_edenNodes and that (2) it enables more precise minor
        DOM GC (Remember that m_edenNodes was just an approximation).

        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
        The benchmark runs 300 iterations, each of which creates 100000 elements.
        The benchmark measures average, min, median, max and stdev of execution times
        of the 300 iterations. This will tell us the worst-case overhead of this change.

        Before:
          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms

        After:
          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms

        As shown above, I couldn't observe any performance regression.

        No tests. No change in behavior.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::worldForEnteredContextIfIsolated):
        (WebCore::worldForEnteredContextWithoutContextCheck):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8GCController.cpp:
        (WebCore::gcTree):
        (WebCore):
        (MinorGCWrapperVisitor):
        (WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
        (WebCore::MinorGCWrapperVisitor::notifyFinished):
        (WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-02-06  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r141195): INPUT_MULTIPLE_FIELDS_UI: Space in a placeholder string is removed
        https://bugs.webkit.org/show_bug.cgi?id=109132

        Reviewed by Hajime Morita.

        <input  type=date> should be shown in Japanese UI as:
        [ 年 /月/日]
        But it is shown wrongly since r141195:
        [年 /月/日]

        We should use white-space:pre.

        No new tests. This change is not testable in WebKit because this
        requires a Japanese-localized UI string of Chromium.

        * css/html.css:
        (input::-webkit-datetime-edit-fields-wrapper):
        Use white-space:pre instead of nowrap.

2013-02-06  Kentaro Hara  <haraken@chromium.org>

        Remove DOMWindow::parseModalDialogFeatures()
        https://bugs.webkit.org/show_bug.cgi?id=109139

        Reviewed by Kent Tamura.

        No one uses the method. FIXME is saying:

          // FIXME: We can remove this function once V8 showModalDialog is changed to use DOMWindow.

        Given that V8's showModalDialog() is now using DOMWindow, we can remove it.

        No tests. No change in behavior.

        * page/DOMWindow.cpp:
        * page/DOMWindow.h:
        (DOMWindow):

2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: reduce native heap snapshot runtime memory footprint
        https://bugs.webkit.org/show_bug.cgi?id=108824

        Reviewed by Yury Semikhatsky.

        New event was added into Memory domain addNativeSnapshotChunk.
        The content of HeapGraphSerializer is completely rewritten according to new API.
        Now it collects strings, nodes, edges and id2id map and pushes when the collected items count exceed a limit.
        On the frontend side I added new method for the new event and fixed the postprocessing step.
        MemoryInstrumentation was slightly changed. Now it reports base to real address map only after reporting the node with real address.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::pushUpdateIfNeed):
        (WebCore):
        (WebCore::HeapGraphSerializer::pushUpdate):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::reportNodeImpl):
        (WebCore::HeapGraphSerializer::reportEdge):
        (WebCore::HeapGraphSerializer::reportEdgeImpl):
        (WebCore::HeapGraphSerializer::reportLeaf):
        (WebCore::HeapGraphSerializer::reportBaseAddress):
        (WebCore::HeapGraphSerializer::finish):
        (WebCore::HeapGraphSerializer::reportMemoryUsage):
        (WebCore::HeapGraphSerializer::addString):
        (WebCore::HeapGraphSerializer::toNodeId):
        (WebCore::HeapGraphSerializer::addRootNode):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializer):
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::processMemoryDistribution):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionMap):
        (WebCore):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
        (WebCore::InspectorMemoryAgent::setFrontend):
        (WebCore::InspectorMemoryAgent::clearFrontend):
        * inspector/InspectorMemoryAgent.h:
        (InspectorMemoryAgent):
        * inspector/front-end/NativeHeapSnapshot.js:
        (WebInspector.NativeHeapSnapshot):
        (WebInspector.NativeHeapSnapshotNode.prototype.classIndex):
        (WebInspector.NativeHeapSnapshotNode.prototype.id):
        (WebInspector.NativeHeapSnapshotNode.prototype.name):
        (WebInspector.NativeHeapSnapshotNode.prototype.serialize):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
        (WebInspector.NativeSnapshotProfileHeader):
        (WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
        (WebInspector.NativeSnapshotProfileHeader.prototype.addNativeSnapshotChunk):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
        (WebInspector.NativeMemoryBarChart.prototype._updateStats):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel):
        (WebInspector.MemoryDispatcher):
        (WebInspector.MemoryDispatcher.prototype.addNativeSnapshotChunk):

2013-02-03  Kentaro Hara  <haraken@chromium.org>

        WebKit's focus events are UIEvents (instead of FocusEvent) and thus don't expose .relatedTarget
        https://bugs.webkit.org/show_bug.cgi?id=76216

        Reviewed by Eric Seidel.

        Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-FocusEvent

        This patch creates a new FocusEvent class with a relatedTarget attribute.
        Now when focusin or focusout events are dispatched, a FocusEvent is created with
        the relatedTarget attribute set accordingly.

        Test: fast/events/related-target-focusevent.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/Event.cpp:
        (WebCore::Event::isFocusEvent):
        (WebCore):
        * dom/Event.h:
        (Event):
        * dom/EventContext.cpp:
        (WebCore::EventContext::handleLocalEvents):
        * dom/EventNames.in:
        * dom/FocusEvent.h: Added.
        (WebCore):
        (FocusEvent):
        (WebCore::FocusEvent::create):
        (WebCore::FocusEvent::relatedTarget):
        (WebCore::FocusEvent::setRelatedTarget):
        (WebCore::toFocusEvent):
        * dom/FocusEvent.idl: Added.
        * dom/Node.cpp:
        (WebCore::Node::dispatchFocusInEvent):
        (WebCore::Node::dispatchFocusOutEvent):

2013-02-06  Kent Tamura  <tkent@chromium.org>

        Fix style of RenderTheme.cpp and RenderThemeChromiumWin.h
        https://bugs.webkit.org/show_bug.cgi?id=109137

        Reviewed by Kentaro Hara.

        No new tests. Just style fix.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        (WebCore::RenderTheme::isControlStyled):
        (WebCore::RenderTheme::adjustButtonStyle):
        (WebCore::RenderTheme::systemColor):
        * rendering/RenderThemeChromiumWin.h:
        (WebCore::ThemeData::ThemeData):
        (ThemeData):
        (RenderThemeChromiumWin):
        (WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
        (WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):

2013-02-06  Kent Tamura  <tkent@chromium.org>

        Fix style of Chrome.h and Page.h
        https://bugs.webkit.org/show_bug.cgi?id=109138

        Reviewed by Ryosuke Niwa.

        No new tests. Just style fixes.

        * page/Chrome.h:
        (WebCore):
        (Chrome):
        (WebCore::Chrome::client):
        * page/Page.h:
        (JSC):
        (WebCore):
        (WebCore::ArenaSize::ArenaSize):
        (ArenaSize):
        (Page):
        (PageClients):
        (WebCore::Page::theme):
        (WebCore::Page::canStartMedia):
        (WebCore::Page::editorClient):
        (WebCore::Page::plugInClient):
        (WebCore::Page::mainFrame):
        (WebCore::Page::groupPtr):
        (WebCore::Page::incrementSubframeCount):
        (WebCore::Page::decrementSubframeCount):
        (WebCore::Page::subframeCount):
        (WebCore::Page::chrome):
        (WebCore::Page::dragCaretController):
        (WebCore::Page::dragController):
        (WebCore::Page::focusController):
        (WebCore::Page::contextMenuController):
        (WebCore::Page::inspectorController):
        (WebCore::Page::pointerLockController):
        (WebCore::Page::validationMessageClient):
        (WebCore::Page::settings):
        (WebCore::Page::progress):
        (WebCore::Page::backForward):
        (WebCore::Page::featureObserver):
        (WebCore::Page::viewMode):
        (WebCore::Page::setTabKeyCyclesThroughElements):
        (WebCore::Page::tabKeyCyclesThroughElements):
        (WebCore::Page::scheduledRunLoopPairs):
        (WebCore::Page::defersLoading):
        (WebCore::Page::mediaVolume):
        (WebCore::Page::pageScaleFactor):
        (WebCore::Page::deviceScaleFactor):
        (WebCore::Page::shouldSuppressScrollbarAnimations):
        (WebCore::Page::pagination):
        (WebCore::Page::isOnscreen):
        (WebCore::Page::scriptedAnimationsSuspended):
        (WebCore::Page::debugger):
        (WebCore::Page::hasCustomHTMLTokenizerTimeDelay):
        (WebCore::Page::customHTMLTokenizerTimeDelay):
        (WebCore::Page::hasCustomHTMLTokenizerChunkSize):
        (WebCore::Page::customHTMLTokenizerChunkSize):
        (WebCore::Page::areMemoryCacheClientCallsEnabled):
        (WebCore::Page::setEditable):
        (WebCore::Page::isEditable):
        (WebCore::Page::displayID):
        (WebCore::Page::layoutMilestones):
        (WebCore::Page::setIsPainting):
        (WebCore::Page::isPainting):
        (WebCore::Page::alternativeTextClient):
        (WebCore::Page::checkSubframeCountConsistency):
        (WebCore::Page::group):

2013-02-06  Mike West  <mkwst@chromium.org>

        Entity-header extension headers honored on 304 responses.
        https://bugs.webkit.org/show_bug.cgi?id=72414

        Reviewed by Alexey Proskuryakov.

        This patch ports Chromium's network stack logic governing header
        updates after resource revalidation. Generally, headers sent with 304
        responses ought to update the original cached resource's headers.
        Certain headers should never be sent with 304 responses, and we should
        ignore them if a misconfigured server sends them anyway.

        Currently, WebCore ignores all headers prefixed with 'content-'. This
        patch adds 'x-content-' and 'x-webkit-' to the list, as well as specific
        headers like 'upgrade', 'trailer', and others that the Chromium network
        stack currently ignores.

        The tests verify that those headers with visible effect are correctly
        handled: 'x-frame-options', 'content-security-policy', and
        'x-xss-protection'.

        Tests: http/tests/security/XFrameOptions/x-frame-options-cached.html
               http/tests/security/contentSecurityPolicy/cached-frame-csp.html
               http/tests/security/xssAuditor/cached-frame.html

        * loader/cache/CachedResource.cpp:
        (WebCore):
        (WebCore::CachedResource::updateResponseAfterRevalidation):
            This patch adds two arrays containing the specific headers to
            ignore and the prefixes to ignore. These lists are processed in
            shouldUpdateHeaderAfterRevalidation.
            CachedResource::updateResponseAfterRevalidation relies on this new
            method when processing revalidated resources.

        * loader/cache/CachedResource.cpp:
        (WebCore):
        (WebCore::shouldUpdateHeaderAfterRevalidation):
        (WebCore::CachedResource::updateResponseAfterRevalidation):

2013-02-06  Tom Sepez  <tsepez@chromium.org>

        document.referrer leakage with XSS Auditor page block
        https://bugs.webkit.org/show_bug.cgi?id=109089

        Reviewed by Adam Barth.

        Pass "about:blank" as referrer instead of "" so that the actual page
        is not leaked when empty referrers are replaced later on in the
        request.
        
        * html/parser/XSSAuditorDelegate.cpp:
        (WebCore::XSSAuditorDelegate::didBlockScript):

2013-02-06  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in GetTemplate() and GetRawTemplate()
        https://bugs.webkit.org/show_bug.cgi?id=109026

        Reviewed by Adam Barth.

        Now it's time to kill an optional Isolate parameter.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::GetRawTemplate):
        (WebCore::V8Float64Array::GetTemplate):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (V8Float64Array):
        (WebCore::V8Float64Array::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
        (WebCore::V8TestActiveDOMObject::GetTemplate):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (V8TestActiveDOMObject):
        (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
        (WebCore::V8TestCustomNamedGetter::GetTemplate):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (V8TestCustomNamedGetter):
        (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::GetRawTemplate):
        (WebCore::V8TestEventConstructor::GetTemplate):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (V8TestEventConstructor):
        (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::GetRawTemplate):
        (WebCore::V8TestEventTarget::GetTemplate):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (V8TestEventTarget):
        (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::GetRawTemplate):
        (WebCore::V8TestException::GetTemplate):
        * bindings/scripts/test/V8/V8TestException.h:
        (V8TestException):
        (WebCore::V8TestException::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::GetRawTemplate):
        (WebCore::V8TestInterface::GetTemplate):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):
        (WebCore::V8TestInterface::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
        (WebCore::V8TestMediaQueryListListener::GetTemplate):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (V8TestMediaQueryListListener):
        (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
        (WebCore::V8TestNamedConstructor::GetRawTemplate):
        (WebCore::V8TestNamedConstructor::GetTemplate):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (V8TestNamedConstructor):
        (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::GetRawTemplate):
        (WebCore::V8TestNode::GetTemplate):
        * bindings/scripts/test/V8/V8TestNode.h:
        (V8TestNode):
        (WebCore::V8TestNode::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::GetRawTemplate):
        (WebCore::V8TestObj::GetTemplate):
        (WebCore::V8TestObj::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
        (WebCore::V8TestOverloadedConstructors::GetTemplate):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (V8TestOverloadedConstructors):
        (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (V8TestSerializedScriptValueInterface):
        (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
        * bindings/v8/V8PerContextData.cpp:
        (WebCore::V8PerContextData::constructorForTypeSlowCase):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):

2013-02-06  Terry Anderson  <tdanderson@chromium.org>

        Add support for gesture scroll events that do not propagate to enclosing scrollables
        https://bugs.webkit.org/show_bug.cgi?id=108849

        Reviewed by Antonio Gomes.

        Tests: fast/events/touch/gesture/touch-gesture-scroll-div-not-propagated.html
               fast/events/touch/gesture/touch-gesture-scroll-iframe-not-propagated.html
               fast/events/touch/gesture/touch-gesture-scroll-page-not-propagated.html

        Rename RenderLayer::scrollByRecursively() to RenderLayer::scrollBy() and add a parameter
        of type RenderLayer::ScrollPropagation to specify whether or not the scroll should
        propagate to its parent by recursing. Implement RenderLayer::scrollByRecursively() as a
        call to RenderLayer::scrollBy() with argument RenderLayer::ShouldPropagateScroll so
        that all existing calls to the function still produce the correct behavior.

        In EventHandler::handleGestureScrollUpdate(), call RenderLayer::scrollBy() with
        argument RenderLayer::ShouldPropagateScroll if |gestureEvent| is a GestureScrollUpdate
        or instead with argument RenderLayer::DontPropagateScroll if |gestureEvent| is a
        GestureScrollUpdateWithoutPropagation.

        * dom/GestureEvent.cpp:
        (WebCore::GestureEvent::create):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::handleGestureScrollUpdate):
        * platform/PlatformEvent.h:
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::gestureEvent):
        * platform/chromium/PopupContainer.cpp:
        (WebCore::PopupContainer::handleGestureEvent):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollByRecursively):
        (WebCore):
        (WebCore::RenderLayer::scrollBy):
        * rendering/RenderLayer.h:

2013-02-06  Ojan Vafai  <ojan@chromium.org>

        [Chromium] table-section-overflow-clip-crash.html hits an assert
        https://bugs.webkit.org/show_bug.cgi?id=108594

        Reviewed by Levi Weintraub.

        When a counter calls setNeedsLayout, it also marks it's containing blocks
        as needing layout, so we need to clear the setNeedsLayoutIsForbidden bit on the
        containing blocks as well as the counter itself.

        Also, use RAII objects for all the places where we clear this bit and make
        the setter/getter for it private to RenderObject.

        * rendering/RenderCounter.cpp:
        (WebCore::RenderCounter::computePreferredLogicalWidths):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
        (WebCore::RenderObject::markContainingBlocksForLayout):
        * rendering/RenderObject.h:
        (SetLayoutNeededForbiddenScope):
        (RenderObject):
        (WebCore::RenderObject::isSetNeedsLayoutForbidden):
        (WebCore::RenderObject::setNeedsLayoutIsForbidden):
        * rendering/RenderQuote.cpp:
        (WebCore::RenderQuote::computePreferredLogicalWidths):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::calcRowLogicalHeight):
        (WebCore::RenderTableSection::layoutRows):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):

2013-02-06  Ojan Vafai  <ojan@chromium.org>

        display:none file upload button crashes
        https://bugs.webkit.org/show_bug.cgi?id=109102

        Reviewed by Levi Weintraub.

        Test: fast/forms/file/display-none-upload-button.html

        * rendering/RenderFileUploadControl.cpp:
        (WebCore::nodeWidth):
        (WebCore::RenderFileUploadControl::paintObject):
        Having an upload button doesn't mean we have a rendered upload button.
        Null check the renderer before trying to access it.

2013-02-06  Dirk Schulze  <dschulze@adobe.com>

        Context's currentPath should check for passed type
        https://bugs.webkit.org/show_bug.cgi?id=109097

        Reviewed by Dean Jackson.

        Add check for passed pointer and return earlier.

        Test: fast/canvas/canvas-currentPath-crash.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setCurrentPath):

2013-02-06  Rafael Weinstein  <rafaelw@chromium.org>

        [HTMLTemplateElement] Non </template> end tags should be ignored in "template contents" insertion mode.
        https://bugs.webkit.org/show_bug.cgi?id=109090

        Reviewed by Adam Barth.

        https://dvcs.w3.org/hg/webcomponents/raw-file/38536d37fb82/spec/templates/index.html#template-contents-insertion-mode.

        Test added to html5lib suite.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processEndTag):

2013-02-06  Alexandre Elias  <aelias@chromium.org>

        Make ScrollView::paint() clip by visibleContentRect
        https://bugs.webkit.org/show_bug.cgi?id=108888

        Reviewed by Levi Weintraub.

        When applyPageScaleFactorInCompositor or fixedVisibleContentRect
        are used, frameRect() and visibleContentRect(true).size() are
        no longer synonyms, and the latter is the one that should be
        used for clipping paints.

        New WebFrameTest: pageScaleFactorScalesPaintClip.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::paint):

2013-02-06  Dima Gorbik  <dgorbik@apple.com>

        Store the language internally instead of using lang attribute for WebVTT nodes
        https://bugs.webkit.org/show_bug.cgi?id=108858

        Reviewed by Eric Carlson.

        Only language webvtt elements should have a lang attribute so we have to store
        the language internally in the element. Refactored the code to make 
        computeInheritedLanguage virtual.

        Existing tests were modified to cover this case.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * html/track/WebVTTElement.cpp:
        (WebCore::WebVTTElement::WebVTTElement):
        (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
        (WebCore::WebVTTElement::createEquivalentHTMLElement): clone the internal language property.
        * html/track/WebVTTElement.h:
        (WebCore::WebVTTElement::language):
        (WebCore::WebVTTElement::setLanguage):
        * html/track/WebVTTParser.cpp: only set the lang attribute for language objects.
        (WebCore::WebVTTParser::constructTreeFromToken):

2013-02-06  Levi Weintraub  <leviw@chromium.org>

        Negative text indents can break RenderBlock's inline maximum preferred width calculation
        https://bugs.webkit.org/show_bug.cgi?id=108973

        Reviewed by Emil A Eklund.

        Change two quirks about to how we calculate a block's inline preferred width with
        text-indent.

        First, re-use text-indent that's first applied to floats on text that follows it.
        This matches Layout, as otherwise we can prematurely wrap text when there's a negative
        margin on a block starting with a float. This also matches FireFox.

        Second, correct how the max preferred width is calculated in the presence of a negative
        text-indent. If the text-indent is more negative than the first text line break, we
        update the value to be the remainder. Previously, we added this remaining negative value
        to subsequent minimum and maximum preferred width calculations (until the remainder was
        gone). This is wrong for the max preferred width, as we're adding the negative value more
        than once, and leads to a max preferred width that's smaller than our line.

        Test: fast/css/negative-text-indent-in-inline-block.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):

2013-02-06  Mark Lam  <mark.lam@apple.com>

        Fix broken release builds, greening the bots.
        https://bugs.webkit.org/show_bug.cgi?id=107475.

        Not reviewed.

        No new tests.

        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::logOpenDatabaseError):

2013-02-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r142025.
        http://trac.webkit.org/changeset/142025
        https://bugs.webkit.org/show_bug.cgi?id=109091

        broke the build (Requested by tdanderson on #webkit).

        * dom/GestureEvent.cpp:
        (WebCore::GestureEvent::create):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::handleGestureScrollUpdate):
        * platform/PlatformEvent.h:
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::gestureEvent):
        * platform/chromium/PopupContainer.cpp:
        (WebCore::PopupContainer::handleGestureEvent):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollByRecursively):
        * rendering/RenderLayer.h:

2013-02-06  Mark Lam  <mark.lam@apple.com>

        Split openDatabase() between front and back end work.
        https://bugs.webkit.org/show_bug.cgi?id=107475.

        Reviewed by Anders Carlsson.

        The main work of splitting DatabaseManager::openDatabase() is in
        refactoring how DatabaseTracker::canEstablishDatabase() works. It used
        to check for adequate space quota, and if the check fails, it would call
        back into the client from inside canEstablishDatabase(). The call back
        allows the client to update the quota (if appropriate). Thereafter,
        canEstablishDatabase() will retry its quota check.

        In a webkit2 world, we'll want to minimize the traffic between the
        client (script side) and the server (sqlite db side), and ideally, we
        don't want the server to call back to the client. Note: the
        DatabaseTracker belongs on the server side.

        To achieve this, we split canEstablishDatabase() into 2 parts: the
        checks before the call back to the client, and the checks after.
        The first part will retain the name canEstablishDatabase(), and the
        second part will be named retryCanEstablishDatabase().
        We also added a DatabaseServer::openDatabase() function that can be
        called with a retry flag.

        The client side DatabaseManager::openDatabase() will call
        DatabaseServer::openDatabase(), which then calls canEstablishDatabase()
        to do its quota check. If there is enough quota,
        DatabaseServer::openDatabase() will proceed to open the backend database
        without return to the client first. The opened database will be returned
        to the client.

        If DatabaseServer::openDatabase() finds inadequate quota the first time,
        it will return with a DatabaseSizeExceededQuota error. The DatabaseManager
        (on the client side) will check for this error and call back to its client
        for an opportunity to increase the quota. Thereafter, the DatabaseManager
        will call DatabaseServer::openDatabase() again. This time,
        DatabaseServer::openDatabase() will call retryCanEstablishDatabase() to
        check the quota, and then open the backend database if there is enough
        quota.

        No new tests.

        * Modules/webdatabase/AbstractDatabaseServer.h:
        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
        (WebCore::DOMWindowWebDatabase::openDatabase):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::create):
        * Modules/webdatabase/Database.h:
        (Database):
        * Modules/webdatabase/DatabaseBackend.cpp:
        (WebCore::DatabaseBackend::performOpenAndVerify):
        * Modules/webdatabase/DatabaseBackend.h:
        (DatabaseBackend):
        * Modules/webdatabase/DatabaseBackendAsync.cpp:
        (WebCore::DatabaseBackendAsync::openAndVerifyVersion):
        (WebCore::DatabaseBackendAsync::performOpenAndVerify):
        * Modules/webdatabase/DatabaseBackendAsync.h:
        (DatabaseBackendAsync):
        * Modules/webdatabase/DatabaseBackendSync.cpp:
        (WebCore::DatabaseBackendSync::openAndVerifyVersion):
        * Modules/webdatabase/DatabaseBackendSync.h:
        (DatabaseBackendSync):
        * Modules/webdatabase/DatabaseError.h:
        (WebCore::ENUM_CLASS):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::exceptionCodeForDatabaseError):
        (WebCore::DatabaseManager::openDatabaseBackend):
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseManager::openDatabaseSync):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseServer.cpp:
        (WebCore::DatabaseServer::openDatabase):
        (WebCore::DatabaseServer::createDatabase):
        * Modules/webdatabase/DatabaseServer.h:
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::create):
        * Modules/webdatabase/DatabaseSync.h:
        (DatabaseSync):
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
        (WebCore::DatabaseTracker::canEstablishDatabase):
        (WebCore::DatabaseTracker::retryCanEstablishDatabase):
        * Modules/webdatabase/DatabaseTracker.h:
        (DatabaseTracker):
        * Modules/webdatabase/WorkerContextWebDatabase.cpp:
        (WebCore::WorkerContextWebDatabase::openDatabase):
        (WebCore::WorkerContextWebDatabase::openDatabaseSync):
        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase):
        (WebCore::DatabaseTracker::retryCanEstablishDatabase):

2013-02-06  Tony Gentilcore  <tonyg@chromium.org>

        Fix CompactHTMLToken's copy ctor to copy all fields
        https://bugs.webkit.org/show_bug.cgi?id=109076

        Reviewed by Adam Barth.

        This was introduced by me in r142004. Without this patch we fail all tests when using the background parser.

        Also don't use getters in copy ctor.

        No new tests because no new functionality.

        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):

2013-02-06  Brian Salomon  <bsalomon@google.com>

        [Chromium/Skia] Remove use of deprecated Skia names
        https://bugs.webkit.org/show_bug.cgi?id=109085

        Reviewed by Stephen White.

        Tested by every existing canvas2d test.

        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::grContext):

2013-02-06  Terry Anderson  <tdanderson@chromium.org>

        Add support for gesture scroll events that do not propagate to enclosing scrollables
        https://bugs.webkit.org/show_bug.cgi?id=108849

        Reviewed by Antonio Gomes.

        Tests: fast/events/touch/gesture/touch-gesture-scroll-div-not-propagated.html
               fast/events/touch/gesture/touch-gesture-scroll-iframe-not-propagated.html
               fast/events/touch/gesture/touch-gesture-scroll-page-not-propagated.html

        Rename RenderLayer::scrollByRecursively() to RenderLayer::scrollBy() and add a parameter
        of type RenderLayer::ScrollPropagation to specify whether or not the scroll should
        propagate to its parent by recursing. Implement RenderLayer::scrollByRecursively() as a
        call to RenderLayer::scrollBy() with argument RenderLayer::ShouldPropagateScroll so
        that all existing calls to the function still produce the correct behavior.

        In EventHandler::handleGestureScrollUpdate(), call RenderLayer::scrollBy() with
        argument RenderLayer::ShouldPropagateScroll if |gestureEvent| is a GestureScrollUpdate
        or instead with argument RenderLayer::DontPropagateScroll if |gestureEvent| is a
        GestureScrollUpdateWithoutPropagation.

        * dom/GestureEvent.cpp:
        (WebCore::GestureEvent::create):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::handleGestureScrollUpdate):
        * platform/PlatformEvent.h:
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::gestureEvent):
        * platform/chromium/PopupContainer.cpp:
        (WebCore::PopupContainer::handleGestureEvent):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollByRecursively):
        (WebCore):
        (WebCore::RenderLayer::scrollBy):
        * rendering/RenderLayer.h:

2013-02-06  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r141136): Apple's internal PLT test suite doesn't finish
        https://bugs.webkit.org/show_bug.cgi?id=108380

        Reviewed by Alexey Proskuryakov.

        Re-enable the main resource cache since the regression had been fixed in r141615.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):

2013-02-06  Uday Kiran  <udaykiran@motorola.com>

        Implement 'vmax' from CSS3 values and units
        https://bugs.webkit.org/show_bug.cgi?id=91440

        Reviewed by Antti Koivisto.

        vmax is implemented as primitive length unit.
        New length type ViewportPercentageMax is added and included support for fetching the value
        of this viewport percentage unit based on current viewport size.

        The specification related to this implementation is
        http://dev.w3.org/csswg/css3-values/#viewport-relative-lengths.

        Tests: css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmax-absolute.html
               css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmax.html

        * css/CSSGrammar.y.in: Added vmax support.
        * css/CSSParser.cpp: Parsing of vmax unit.
        (WebCore::CSSParser::validUnit): Added vmax to valid units.
        (WebCore::CSSParser::createPrimitiveNumericValue): Added vmax to primitive untis.
        (WebCore::CSSParser::parseValidPrimitive): Creation of CSSPrimitive for vmax.
        (WebCore::CSSParser::detectNumberToken): Parsing of vmax token.
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserValue::createCSSValue): Added support for vmax.
        * css/CSSPrimitiveValue.cpp:
        (WebCore::isValidCSSUnitTypeForDoubleConversion): Added support for vmax.
        (WebCore::unitCategory): Ditto.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
        (WebCore::CSSPrimitiveValue::cleanup):
        (WebCore::CSSPrimitiveValue::customCssText): Added support for vmax.
        (WebCore::CSSPrimitiveValue::viewportPercentageLength): Function to create the Length structure for the viewport-percentage unit types.
        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isViewportPercentageLength): Checks whether the primitive value is ViewportPercentage Length.
        * css/CSSPrimitiveValue.idl: Added support for vmax.
        * css/LengthFunctions.cpp: Calcuation of length value based on the current viewport size.
        (WebCore::minimumValueForLength):
        (WebCore::valueForLength):
        (WebCore::floatValueForLength):
        * platform/Length.h:
        (WebCore::Length::isViewportPercentage): To check the Length is of type ViewportPercentage.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):

2013-02-06  Pravin D  <pravind.2k4@gmail.com>

        When a block element is made inline positioned and has static left and right,  it does not follow inline formatting context
        https://bugs.webkit.org/show_bug.cgi?id=91665

        Reviewed by Julien Chaffraix.

        Out-of-flow-positioned elements have their display overriden to BLOCK. When a static block elements 
        changes to inline out-of-flow-positioned or vice-versa, the element current and previous display properties 
        are same. This causes the element to follow a wrong flow context(in this case Block context) and the element
        is laid out incorrectly. The patch fixes the issue by reattaching the renderers of the node whenever either
        position property changes or when its floating property changes.
        Also the cases when an out-of-flow-positioned/floating element changes to static/non-floating element where
        being specially handled. As reattaching the renderers in the above cases correctly handles the above cases,
        special handling for such cases is no more required and the related code can be safely removed.
 
        Reattaching renderers for the afore mentioned issues takes a different(longer) code path. Performance measurements
        summary for the same is as follows:
                                                              % increase in time
         Absolute-block-to-static-block                            2.00
         Absolute-inline-to-static-block                           1.21
         Absolute-inline-to-static-inline                          1.18
         Static-block-to-absolute-block                            1.13
         Static-inline-to-absolute-inline                          1.35
         Floating-block-non-floating-block                         0.85
         Floating-inline-non-floating-block                        0.66
         Floating-inline-non-floating-inline                       0.57
         Non-floating-block-floating-block                         0.12
         Non-floating-inline-floating-inline                       1.36

        Tests: fast/dynamic/absolute-positioned-to-static-positioned.html
               fast/dynamic/floating-to-non-floating.html
               fast/dynamic/non-floating-to-floating.html
               fast/dynamic/static-positioned-to-absolute-positioned.html

        * dom/Node.cpp:
        (WebCore::Node::diff):
          Return detach in the following conditions:
             1) Element changes to out-of-flow-positioned or vice-versa.
             2) Element becomes floating or vice-versa.

        * rendering/RenderBlock.cpp:
        (WebCore):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBoxModelObject.h:
        (RenderBoxModelObject):
        * rendering/RenderInline.cpp:
        (WebCore):
        * rendering/RenderInline.h:
        (RenderInline):
        * rendering/RenderObject.cpp:
        (WebCore):
        (WebCore::RenderObject::styleWillChange):
        (WebCore::RenderObject::styleDidChange):
        * rendering/RenderObject.h:
        (RenderObject):
          The fix in Node::diff() obsoletes some code. The above deletion are part of this dead code cleanup.

2013-02-06  Chris Fleizach  <cfleizach@apple.com>

        AX: if <html> has an ARIA attribute, it's exposed as an AXGroup
        https://bugs.webkit.org/show_bug.cgi?id=109008

        Reviewed by Ryosuke Niwa.

        If an <html> element had an ARIA attribute, it was being turned into an element
        in the AX hierarchy. This was causing trouble for screen readers by inserting
        an unexpected element in the navigation sequence.

        Test: accessibility/html-html-element-is-ignored.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):

2013-02-06  Shawn Singh  <shawnsingh@chromium.org>

        RenderLayer hasVisibleContent() has inconsistent semantics causing disappearing composited layers
        https://bugs.webkit.org/show_bug.cgi?id=108118

        Reviewed by Simon Fraser.

        RenderLayerBacking::hasVisibleNonCompositingDescendantLayers was
        only checking whether direct children had visible content. As a
        result, composited layers had wrong visibility status if only a
        deeper descendant RenderLayer was visible.

        Test: compositing/visibility/visibility-on-distant-descendant.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::hasVisibleNonCompositingDescendant): copied the original
        implementation into this function; then added the RenderLayer
        recursion as appropriate.
        (WebCore):
        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
        This is now just a wrapper to the private static recursive
        function.

2013-02-06  Jonathon Jongsma  <jonathon.jongsma@collabora.com>

        [GStreamer] MediaPlayer's code is not easily reusable by other GStreamer-based players
        https://bugs.webkit.org/show_bug.cgi?id=100261

        Refactor the media player implementation so that more of the
        internal functionality can be shared between the current media
        backend and the mediastream player backend.  Common code is
        broken out into a MediaPlayerPrivateGStreamerBase class, and
        both MediaPlayerPrivateGStreamer and
        StreamMediaPlayerPrivateGStreamer inherit from this base class.

        Reviewed by Philippe Normand

        No new tests since functionality is covered by existing media tests

        * GNUmakefile.list.am:
        * PlatformEfl.cmake:
        * Target.pri:
        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
        (WebCore::FullscreenVideoControllerGStreamer::create):
        (WebCore::FullscreenVideoControllerGStreamer::FullscreenVideoControllerGStreamer):
        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.h:
        (WebCore):
        (FullscreenVideoControllerGStreamer):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Added.
        (WebCore):
        (WebCore::greatestCommonDivisor):
        (WebCore::mediaPlayerPrivateVolumeChangedCallback):
        (WebCore::mediaPlayerPrivateVolumeChangeTimeoutCallback):
        (WebCore::mediaPlayerPrivateMuteChangedCallback):
        (WebCore::mediaPlayerPrivateMuteChangeTimeoutCallback):
        (WebCore::mediaPlayerPrivateRepaintCallback):
        (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
        (WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
        (WebCore::MediaPlayerPrivateGStreamerBase::setVolume):
        (WebCore::MediaPlayerPrivateGStreamerBase::volume):
        (WebCore::MediaPlayerPrivateGStreamerBase::notifyPlayerOfVolumeChange):
        (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
        (WebCore::MediaPlayerPrivateGStreamerBase::networkState):
        (WebCore::MediaPlayerPrivateGStreamerBase::readyState):
        (WebCore::MediaPlayerPrivateGStreamerBase::sizeChanged):
        (WebCore::MediaPlayerPrivateGStreamerBase::setMuted):
        (WebCore::MediaPlayerPrivateGStreamerBase::muted):
        (WebCore::MediaPlayerPrivateGStreamerBase::notifyPlayerOfMute):
        (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
        (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
        (WebCore::MediaPlayerPrivateGStreamerBase::setSize):
        (WebCore::MediaPlayerPrivateGStreamerBase::paint):
        (WebCore::MediaPlayerPrivateGStreamerBase::enterFullscreen):
        (WebCore::MediaPlayerPrivateGStreamerBase::exitFullscreen):
        (WebCore::MediaPlayerPrivateGStreamerBase::supportsFullscreen):
        (WebCore::MediaPlayerPrivateGStreamerBase::platformMedia):
        (WebCore::MediaPlayerPrivateGStreamerBase::movieLoadType):
        (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
        (WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
        (WebCore::MediaPlayerPrivateGStreamerBase::decodedFrameCount):
        (WebCore::MediaPlayerPrivateGStreamerBase::droppedFrameCount):
        (WebCore::MediaPlayerPrivateGStreamerBase::audioDecodedByteCount):
        (WebCore::MediaPlayerPrivateGStreamerBase::videoDecodedByteCount):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Added.
        (WebCore):
        (MediaPlayerPrivateGStreamerBase):
        (WebCore::MediaPlayerPrivateGStreamerBase::supportsMuting):
        (WebCore::MediaPlayerPrivateGStreamerBase::setVisible):
        (WebCore::MediaPlayerPrivateGStreamerBase::hasSingleSecurityOrigin):
        (WebCore::MediaPlayerPrivateGStreamerBase::maxTimeLoaded):
        (WebCore::MediaPlayerPrivateGStreamerBase::canEnterFullscreen):
        (WebCore::MediaPlayerPrivateGStreamerBase::mediaPlayer):
        (WebCore::MediaPlayerPrivateGStreamerBase::audioSink):
        * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
        (WebCore::FullscreenVideoControllerGtk::FullscreenVideoControllerGtk):
        * platform/graphics/gtk/FullscreenVideoControllerGtk.h:
        (FullscreenVideoControllerGtk):

2013-02-06  Tony Gentilcore  <tonyg@chromium.org>

        Call XSSAuditor's didBlockScript() for the threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=108726

        Reviewed by Adam Barth.

        This patch causes us to call didBlockScript() on the main thread if the CompactHTML token has XSSInfo.
        To do so, we:
        1. Rename DidBlockScriptRequest to XSSInfo.
        2. Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
        3. Add an isSafeToSendToAnotherThread() method to String and KURL.

        We don't yet populate didBlockScriptRequest on the background thread, but this should just work once we do.

        No new tests because no new functionality.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::pumpTokenizer): Update comment for rename.
        * html/parser/CompactHTMLToken.cpp:
        (SameSizeAsCompactHTMLToken):
        (WebCore::CompactHTMLToken::CompactHTMLToken): Add a copy constructor used by Vector.
        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread): Include new m_xssInfo field in safety check.
        (WebCore):
        (WebCore::CompactHTMLToken::xssInfo): Added.
        (WebCore::CompactHTMLToken::setXSSInfo): Added.
        * html/parser/CompactHTMLToken.h: Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
        (WebCore):
        (CompactHTMLToken):
        (WTF): Add VectorTraits necessary for copying Vector fields objects that contain an OwnPtr.
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser): Add new didBlockScript() call.
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/XSSAuditor.cpp: Renaming.
        (WebCore::XSSAuditor::filterToken):
        * html/parser/XSSAuditor.h: Renaming.
        (WebCore):
        (XSSAuditor):
        * html/parser/XSSAuditorDelegate.cpp:
        (WebCore::XSSInfo::isSafeToSendToAnotherThread):
        (WebCore):
        (WebCore::XSSAuditorDelegate::didBlockScript):
        * html/parser/XSSAuditorDelegate.h:
        (WebCore::XSSInfo::create):
        (XSSInfo):
        (WebCore::XSSInfo::XSSInfo):
        (XSSAuditorDelegate):
        * platform/KURL.cpp:
        (WebCore::KURL::isSafeToSendToAnotherThread): Added.
        (WebCore):
        * platform/KURL.h:
        (KURL):
        * platform/KURLGoogle.cpp:
        (WebCore):
        (WebCore::KURLGooglePrivate::isSafeToSendToAnotherThread): Added.
        * platform/KURLGooglePrivate.h:
        (KURLGooglePrivate):
        * platform/KURLWTFURLImpl.h:
        (WebCore::KURLWTFURLImpl::isSafeToSendToAnotherThread): Added.

2013-02-06  Dean Jackson  <dino@apple.com>

        Minor updates to captions menu UI
        https://bugs.webkit.org/show_bug.cgi?id=109005

        Reviewed by Eric Carlson.

        Now that we only have a single section in the captions menu, remove the
        unnecessary wrapper element. Also update the UI for Mac so that the menu
        grows in size dynamically, and change the text we display for a caption
        that has neither label or language identifiers.

        Covered by existing tests.

        * English.lproj/Localizable.strings: New string for an unknown caption label.
        * css/fullscreenQuickTime.css: New rules for the captions menu.
        (video:-webkit-full-screen::-webkit-media-controls-closed-captions-container):
        (video:-webkit-full-screen::-webkit-media-controls-closed-captions-track-list):
        * css/mediaControlsQuickTime.css: Ditto.
        (video::-webkit-media-controls-closed-captions-container):
        (video::-webkit-media-controls-closed-captions-track-list):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
            Remove the <section> element container.
        * platform/LocalizedStrings.cpp:
        (WebCore::textTrackNoLabelText): New string for an unknown caption label.

2013-02-06  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove isSnippet field from FileDescriptor and UISourceCode.
        https://bugs.webkit.org/show_bug.cgi?id=109045
        
        Reviewed by Pavel Feldman.

        Snippets are now distinguished based on uiSourceCode project.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
        * inspector/front-end/NavigatorView.js:
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype._navigatorViewForUISourceCode):
        (WebInspector.ScriptsNavigator.prototype.addUISourceCode):
        (WebInspector.ScriptsNavigator.prototype.removeUISourceCode):
        (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
        (WebInspector.ScriptsNavigator.prototype.rename):
        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._showFile):
        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
        * inspector/front-end/Workspace.js:
        (WebInspector.FileDescriptor):
        (WebInspector.Project.prototype._fileAdded):

2013-02-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141983.
        http://trac.webkit.org/changeset/141983
        https://bugs.webkit.org/show_bug.cgi?id=109055

        lots of new crashes in handlescope (Requested by gavinp on
        #webkit).

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isolated):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::worldForEnteredContextIfIsolated):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8GCController.cpp:
        (WebCore::WrapperVisitor::WrapperVisitor):
        (WebCore):
        (WebCore::gcTree):
        (WebCore::V8GCController::didCreateWrapperForNode):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-02-06  Andreas Kling  <akling@apple.com>

        Optimize GlyphPage for case where all glyphs are available in the same font.
        <http://webkit.org/b/108835>
        <rdar://problem/13157042>

        Reviewed by Antti Koivisto.

        Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
        the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.

        If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
        is allocated transparently.

        4.98 MB progression on Membuster3.

        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/graphics/GlyphPage.h:
        (WebCore::GlyphPage::createUninitialized):
        (WebCore::GlyphPage::createZeroedSystemFallbackPage):
        (WebCore::GlyphPage::createCopiedSystemFallbackPage):

            There are now three ways of constructing a GlyphPage, two of them are only used for
            creating system fallback pages.

        (WebCore::GlyphPage::setGlyphDataForIndex):

            Hold off creating a SimpleFontData* array until we're sure there are two different
            SimpleFontData* backing the glyphs in this page.
            We don't store font data for glyph #0, instead we let the getters always return null for it.

        (WebCore::GlyphPage::~GlyphPage):

            Free the SimpleFontData* array if needed.

        (WebCore::GlyphPage::glyphDataForCharacter):
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::fontDataForCharacter):

            The font data for glyph #0 is always a null pointer now.

        (WebCore::GlyphPage::clearForFontData):

            Updated for new storage format.

        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):

            Fix bug where non-zero glyph was temporarily associated with null font data,
            which triggered the new assertion in setGlyphDataForIndex().

2013-02-06  Pavel Feldman  <pfeldman@chromium.org>

        Follow up to r141979: do not consume Home/End.
        Not reviewed.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):

2013-02-06  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove show script folders setting
        https://bugs.webkit.org/show_bug.cgi?id=108940

        Reviewed by Pavel Feldman.

        Removed showScriptFolders setting, the sources are never shown as a flat list in navigator anymore.

        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorView):
        (WebInspector.NavigatorView.prototype._getOrCreateFolderTreeElement):
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):

2013-02-06  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: update javascriptsourcetokenizer to produce "whitespaces" token
        https://bugs.webkit.org/show_bug.cgi?id=108945

        Reviewed by Pavel Feldman.

        Update re2c grammar for SourceJavaScriptTokenizer to produce
        "whitespace" token which holds consequtive whitespaces in it.

        Updated existing tests expectations.

        * inspector/front-end/DOMSyntaxHighlighter.js:
        (WebInspector.DOMSyntaxHighlighter.prototype.createSpan): Do not strip spaces from tokens with class "whitespaces".
        * inspector/front-end/SourceJavaScriptTokenizer.js: Regenerated.
        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
        * inspector/front-end/SourceJavaScriptTokenizer.re2js:

2013-02-06  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: refactor registerShortcuts method of DTE
        https://bugs.webkit.org/show_bug.cgi?id=109031

        Reviewed by Pavel Feldman.

        Implement _registerShortcuts method in TextEditorMainPanel which will
        bind its private methods to the different key combinations. Refactor
        method handlers handleUndoRedo, handleTabKeyPress and handleEnterKey
        from public to private.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Remove bindings of TextEditorMainPanel methods
        (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts): Added.
        (WebInspector.TextEditorMainPanel.prototype._handleUndoRedo):
        (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):

2013-02-06  Mike West  <mkwst@chromium.org>

        Add an ENABLE_NOSNIFF feature flag.
        https://bugs.webkit.org/show_bug.cgi?id=109029

        Reviewed by Jochen Eisinger.

        This new flag will control the behavior of 'X-Content-Type-Options: nosniff'
        when processing script and other resource types.

        * Configurations/FeatureDefines.xcconfig:

2013-02-06  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Implement DTMF support in RTCPeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=106782

        Reviewed by Adam Barth.

        The WebRTC specification have added support for DTMF:
        http://dev.w3.org/2011/webrtc/editor/webrtc.html#peer-to-peer-dtmf

        Implementation wise this is implemented using the same pattern as RTCDataChannel;
        where a RTCDTMFSenderHandler is created by the UA through a new method on
        RTCPeerConnectionHandler.

        Test: fast/mediastream/RTCPeerConnection-dtmf.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/mediastream/RTCDTMFSender.cpp: Added.
        (WebCore):
        (WebCore::RTCDTMFSender::create):
        (WebCore::RTCDTMFSender::RTCDTMFSender):
        (WebCore::RTCDTMFSender::~RTCDTMFSender):
        (WebCore::RTCDTMFSender::canInsertDTMF):
        (WebCore::RTCDTMFSender::track):
        (WebCore::RTCDTMFSender::toneBuffer):
        (WebCore::RTCDTMFSender::insertDTMF):
        (WebCore::RTCDTMFSender::didPlayTone):
        (WebCore::RTCDTMFSender::interfaceName):
        (WebCore::RTCDTMFSender::scriptExecutionContext):
        (WebCore::RTCDTMFSender::stop):
        (WebCore::RTCDTMFSender::eventTargetData):
        (WebCore::RTCDTMFSender::ensureEventTargetData):
        (WebCore::RTCDTMFSender::scheduleDispatchEvent):
        (WebCore::RTCDTMFSender::scheduledEventTimerFired):
        * Modules/mediastream/RTCDTMFSender.h: Added.
        (WebCore):
        (RTCDTMFSender):
        (WebCore::RTCDTMFSender::duration):
        (WebCore::RTCDTMFSender::interToneGap):
        * Modules/mediastream/RTCDTMFSender.idl: Added.
        * Modules/mediastream/RTCDTMFToneChangeEvent.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
        (WebCore):
        (WebCore::RTCDTMFToneChangeEvent::create):
        (WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent):
        (WebCore::RTCDTMFToneChangeEvent::~RTCDTMFToneChangeEvent):
        (WebCore::RTCDTMFToneChangeEvent::tone):
        (WebCore::RTCDTMFToneChangeEvent::interfaceName):
        * Modules/mediastream/RTCDTMFToneChangeEvent.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
        (WebCore):
        (RTCDTMFToneChangeEventInit):
        (RTCDTMFToneChangeEvent):
        * Modules/mediastream/RTCDTMFToneChangeEvent.idl: Added.
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::createDataChannel):
        (WebCore):
        (WebCore::RTCPeerConnection::getStreamByTrackId):
        (WebCore::RTCPeerConnection::createDTMFSender):
        * Modules/mediastream/RTCPeerConnection.h:
        (WebCore):
        (RTCPeerConnection):
        * Modules/mediastream/RTCPeerConnection.idl:
        * WebCore.gypi:
        * dom/EventNames.h:
        (WebCore):
        * dom/EventNames.in:
        * dom/EventTargetFactory.in:
        * platform/chromium/support/WebMediaStreamTrack.cpp:
        (WebKit::WebMediaStreamTrack::WebMediaStreamTrack):
        (WebKit):
        * platform/mediastream/RTCDTMFSenderHandler.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
        (WebCore):
        (RTCDTMFSenderHandler):
        (WebCore::RTCDTMFSenderHandler::~RTCDTMFSenderHandler):
        * platform/mediastream/RTCDTMFSenderHandlerClient.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
        (WebCore):
        (RTCDTMFSenderHandlerClient):
        (WebCore::RTCDTMFSenderHandlerClient::~RTCDTMFSenderHandlerClient):
        * platform/mediastream/RTCPeerConnectionHandler.h:
        (WebCore):
        (RTCPeerConnectionHandler):
        * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
        (WebCore):
        (WebCore::RTCDTMFSenderHandlerChromium::create):
        (WebCore::RTCDTMFSenderHandlerChromium::RTCDTMFSenderHandlerChromium):
        (WebCore::RTCDTMFSenderHandlerChromium::~RTCDTMFSenderHandlerChromium):
        (WebCore::RTCDTMFSenderHandlerChromium::setClient):
        (WebCore::RTCDTMFSenderHandlerChromium::currentToneBuffer):
        (WebCore::RTCDTMFSenderHandlerChromium::canInsertDTMF):
        (WebCore::RTCDTMFSenderHandlerChromium::insertDTMF):
        (WebCore::RTCDTMFSenderHandlerChromium::didPlayTone):
        * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
        (WebCore):
        (RTCDTMFSenderHandlerChromium):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::createDTMFSender):
        (WebCore):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (RTCPeerConnectionHandlerChromium):

2013-02-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
        https://bugs.webkit.org/show_bug.cgi?id=108579

        Reviewed by Adam Barth.

        Currently V8GCController::m_edenNodes stores a list of nodes whose
        wrappers have been created since the latest GC. The reason why we
        needed m_edenNodes is that there was no way to know a list of wrappers
        in the new space of V8. By using m_edenNodes, we had been approximating
        'wrappers in the new space' by 'wrappers that have been created since
        the latest GC'.

        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
        can know a list of wrappers in the new space. By using the API, we can
        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
        need to keep m_edenNodes and that (2) it enables more precise minor
        DOM GC (Remember that m_edenNodes was just an approximation).

        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
        The benchmark runs 300 iterations, each of which creates 100000 elements.
        The benchmark measures average, min, median, max and stdev of execution times
        of the 300 iterations. This will tell us the worst-case overhead of this change.

        Before:
          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms

        After:
          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms

        As shown above, I couldn't observe any performance regression.

        No tests. No change in behavior.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::worldForEnteredContextIfIsolated):
        (WebCore::worldForEnteredContextWithoutContextCheck):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8GCController.cpp:
        (WebCore::gcTree):
        (WebCore):
        (MinorGCWrapperVisitor):
        (WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
        (WebCore::MinorGCWrapperVisitor::notifyFinished):
        (WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-02-06  Mihai Maerean  <mmaerean@adobe.com>

        [CSSRegions] Assertion failure in Node::detach (!renderer || renderer->inRenderFlowThread())
        https://bugs.webkit.org/show_bug.cgi?id=104517

        Reviewed by Julien Chaffraix.

        The RenderObject::inRenderFlowThread bit could have become disconnected from the fact that the RenderObject
        has (or not) an enclosing RenderFlowThread.
        The cause of this was that, when setting or removing the parent of a RenderObject, the inRenderFlowThread flags
        wasn't being set/reset for the children too.
        This is now fixed by calling the new setInRenderFlowThreadIncludingDescendants.

        The ASSERT was hit for anonymous blocks when detaching the document.

        Test: fast/regions/detaching-regions-with-anonymous-blocks.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::setInRenderFlowThreadRecursive):
        (WebCore):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::setParent):
        (RenderObject):

2013-02-06  Marja Hölttä  <marja@chromium.org>

        Take referrer policy into account when clearing the referrer header
        https://bugs.webkit.org/show_bug.cgi?id=86000

        Reviewed by Alexey Proskuryakov.

        The referrer should only be cleared when doing a https -> http redirect,
        if the policy is "default". Otherwise the referrer should be left intact.

        In order to do that, added a function for checking the policy in
        NetworkingContext, and stored the NetworkingContext in ResourceHandle
        (like some ports already did).

        No new tests (unskipped old tests).

        * loader/FrameNetworkingContext.h:
        (WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect):
        (FrameNetworkingContext):
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::BlobResourceHandle):
        * platform/network/NetworkingContext.h:
        (NetworkingContext):
        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::ResourceHandle):
        (WebCore::ResourceHandle::create):
        (WebCore::ResourceHandle::context):
        (WebCore):
        * platform/network/ResourceHandle.h:
        (ResourceHandle):
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (ResourceHandleInternal):
        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willSendRequest):
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):
        * platform/network/chromium/ResourceHandle.cpp:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (WebCore::ResourceHandle::ResourceHandle):
        (WebCore::ResourceHandle::create):
        (WebCore::ResourceHandle::context):
        (WebCore):
        (WebCore::ResourceHandle::start):
        * platform/network/chromium/ResourceHandleInternal.h:
        (WebCore):
        (ResourceHandleInternal):
        (WebCore::ResourceHandleInternal::context):
        * platform/network/curl/ResourceHandleCurl.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):
        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::redirect):
        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::doRedirect):
        (WebCore::ResourceHandle::start):
        * platform/network/win/ResourceHandleWin.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):

2013-02-06  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: file selector list jumps as I type or move Up/Down
        https://bugs.webkit.org/show_bug.cgi?id=108933

        Reviewed by Vsevolod Vlasov.

        Missing return was scheduling extra updates.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog):
        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
        (WebInspector.FilteredItemSelectionDialog.prototype._updateSelection):

2013-02-06  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to remaining GetTemplate()s
        https://bugs.webkit.org/show_bug.cgi?id=109001

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::namedSecurityCheck): Because this method is a callback from V8,
        we cannot change its signature to receive an Isolate.
        (WebCore::V8DOMWindow::indexedSecurityCheck): Ditto.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateToV8Converters):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::createWrapper):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::createWrapper):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::createWrapper):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::createWrapper):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::createWrapper):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::createWrapper):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::createWrapper):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::createWrapper):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::createWrapper):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::createWrapper):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::wrapInShadowObject):

2013-02-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141961.
        http://trac.webkit.org/changeset/141961
        https://bugs.webkit.org/show_bug.cgi?id=109019

        assertion failures on svn tests such as fonts-glyph-04-t.svg
        (Requested by falken on #webkit).

        * platform/graphics/GlyphPage.h:
        (WebCore::GlyphPage::create):
        (WebCore::GlyphPage::glyphDataForCharacter):
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::fontDataForCharacter):
        (WebCore::GlyphPage::setGlyphDataForIndex):
        (GlyphPage):
        (WebCore::GlyphPage::copyFrom):
        (WebCore::GlyphPage::clear):
        (WebCore::GlyphPage::clearForFontData):
        (WebCore::GlyphPage::GlyphPage):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):

2013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141964.
        http://trac.webkit.org/changeset/141964
        https://bugs.webkit.org/show_bug.cgi?id=109014

        caused performance regression (Requested by hayato on
        #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/DocumentRuleSets.cpp: Removed.
        * css/DocumentRuleSets.h: Removed.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
        (WebCore):
        (WebCore::makeRuleSet):
        (WebCore::StyleResolver::resetAuthorStyle):
        (WebCore::StyleResolver::appendAuthorStyleSheets):
        (WebCore::StyleResolver::matchAuthorRules):
        (WebCore::StyleResolver::matchUserRules):
        (WebCore::StyleResolver::classNamesAffectedByRules):
        (WebCore::StyleResolver::locateCousinList):
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::locateSharedStyle):
        (WebCore::StyleResolver::styleForElement):
        (WebCore::StyleResolver::styleForPage):
        (WebCore::StyleResolver::checkRegionStyle):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::collectFeatures):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/StyleResolver.h:
        (StyleResolver):
        (WebCore::StyleResolver::usesSiblingRules):
        (WebCore::StyleResolver::usesFirstLineRules):
        (WebCore::StyleResolver::usesBeforeAfterRules):
        (WebCore::StyleResolver::hasSelectorForAttribute):
        (WebCore::StyleResolver::hasSelectorForClass):
        (WebCore::StyleResolver::hasSelectorForId):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):

2013-02-05  Kentaro Hara  <haraken@chromium.org>

        Add #if USE(V8) to Node::V8CollectableDuringMinorGCFlag
        https://bugs.webkit.org/show_bug.cgi?id=109009

        Reviewed by Kent Tamura.

        Node flags should be saved. V8CollectableDuringMinorGCFlag is used by V8 only.

        * dom/Node.h:
        (Node):

2013-02-05  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Add ending slashes automatically to file mappings.
        https://bugs.webkit.org/show_bug.cgi?id=108936

        Reviewed by Pavel Feldman.

        * inspector/front-end/SettingsScreen.js:
        (WebInspector.WorkspaceSettingsTab.prototype._addFileMappingClicked):

2013-02-05  Eric Carlson  <eric.carlson@apple.com>

        More updates to Caption user preferences
        https://bugs.webkit.org/show_bug.cgi?id=108997

        Reviewed by Dean Jackson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::captionPreferencesChanged): Give the media controls a chance
            to update for a preferences change.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Add optional "force update" 
            param to force font size recalc even when the video size hasn't changed.
        * html/shadow/MediaControlElements.h:

        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::textTrackPreferencesChanged): New, force a font size recalc.
        * html/shadow/MediaControls.h:

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Don't set width/size of cues
            that use default positioning. Use "start" as the default alignment.

        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Set padding when the window is visible
            so it shows around the cue background.
        (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Set padding to 0 when the background
            is visible.
        (WebCore::CaptionUserPreferencesMac::windowRoundedCornerRadiusCSS): Add "px" to the border radius
            so it actually works.
        * rendering/RenderTextTrackCue.cpp:
        (WebCore::RenderTextTrackCue::layout): Special case generic cues with default style.
        (WebCore::RenderTextTrackCue::repositionGenericCue):
        * rendering/RenderTextTrackCue.h:

2013-02-05  Hayato Ito  <hayato@chromium.org>

        Split each RuleSet and feature out from StyleResolver into its own class.
        https://bugs.webkit.org/show_bug.cgi?id=107777

        Reviewed by Dimitri Glazkov.

        Splitting each RuleSet and feature out from StyleResover into its onw class, DocumentRuleSets,
        to manage them separately.

        This is one of the attempts to try to resolve meta bug (bug 89879)
        to lose StyleResolver's weight.  We need further action to factor
        StyleResolver to separate it into some classes cleanly.
        See also https://bugs.webkit.org/show_bug.cgi?id=108890. A following patch will address that.

        No tests. No change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/DocumentRuleSets.cpp: Added.
        (WebCore):
        (WebCore::DocumentRuleSets::DocumentRuleSets):
        (WebCore::DocumentRuleSets::~DocumentRuleSets):
        (WebCore::DocumentRuleSets::initUserStyle): New helper to initialize each RuleSets.
        (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets): Factored out from StyleResolver.
        (WebCore::makeRuleSet): Ditto.
        (WebCore::DocumentRuleSets::resetAuthorStyle): Ditto.
        (WebCore::DocumentRuleSets::appendAuthorStyleSheets): Ditto.
        (WebCore::DocumentRuleSets::collectFeatures): Ditto.
        (WebCore::DocumentRuleSets::reportMemoryUsage): New methods to report memory usage. Factored out from StyleResolver.
        * css/DocumentRuleSets.h: Added.
        (WebCore):
        (DocumentRuleSets):
        (WebCore::DocumentRuleSets::authorStyle): Moved from StyleResolver.
        (WebCore::DocumentRuleSets::userStyle): Ditto.
        (WebCore::DocumentRuleSets::features): Ditto.
        (WebCore::DocumentRuleSets::sibling): Ditto.
        (WebCore::DocumentRuleSets::uncommonAttribute): Ditto.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::appendAuthorStyleSheets): Now calls DocumentRuleSets::appendAuthorStyleSheets.
        (WebCore::StyleResolver::matchAuthorRules): Use m_ruleSets.
        (WebCore::StyleResolver::matchUserRules): Ditto.
        (WebCore::StyleResolver::classNamesAffectedByRules): Ditto.
        (WebCore::StyleResolver::locateCousinList): Ditto.
        (WebCore::StyleResolver::canShareStyleWithElement): Ditto.
        (WebCore::StyleResolver::locateSharedStyle): Ditto.
        (WebCore::StyleResolver::styleForPage): Ditto.
        (WebCore::StyleResolver::checkRegionStyle): Ditto.
        (WebCore::StyleResolver::applyProperty): Ditto.
        (WebCore::StyleResolver::reportMemoryUsage): Now calls DocumentRuleSets::reportMemoryUsage.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::scopeResolver):
        (StyleResolver):
        (WebCore::StyleResolver::ruleSets): accessor r to DocumentRuleSets.
        (WebCore::StyleResolver::usesSiblingRules): Use m_ruleSets.
        (WebCore::StyleResolver::usesFirstLineRules): Ditto.
        (WebCore::StyleResolver::usesBeforeAfterRules): Ditto.
        (WebCore::StyleResolver::hasSelectorForAttribute): Ditto.
        (WebCore::StyleResolver::hasSelectorForClass): Ditto.
        (WebCore::StyleResolver::hasSelectorForId): Ditto.
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):

2013-02-05  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Grid item's logical height is not properly recomputed after -webkit-grid-column / -webkit-grid-row changes
        https://bugs.webkit.org/show_bug.cgi?id=108975

        Reviewed by Tony Chang.

        Test: fast/css-grid-layout/implicit-position-dynamic-change.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::clearContainingBlockOverrideSize):
        (WebCore::RenderBox::clearOverrideContainingBlockContentLogicalHeight):
        * rendering/RenderBox.h:
        Added clearOverrideContainingBlockContentLogicalHeight and updated clearContainingBlockOverrideSize
        to use it.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::minContentForChild):
        (WebCore::RenderGrid::maxContentForChild):
        Added missing clearContainingBlockOverrideSize to ensure we don't use a previous layout's override.

2013-02-05  Andreas Kling  <akling@apple.com>

        Optimize GlyphPage for case where all glyphs are available in the same font.
        <http://webkit.org/b/108835>
        <rdar://problem/13157042>

        Reviewed by Antti Koivisto.

        Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
        the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.

        If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
        is allocated transparently.

        4.98 MB progression on Membuster3.

        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/graphics/GlyphPage.h:
        (WebCore::GlyphPage::createUninitialized):
        (WebCore::GlyphPage::createZeroedSystemFallbackPage):
        (WebCore::GlyphPage::createCopiedSystemFallbackPage):

            There are now three ways of constructing a GlyphPage, two of them are only used for
            creating system fallback pages.

        (WebCore::GlyphPage::setGlyphDataForIndex):

            Hold off creating a SimpleFontData* array until we're sure there are two different
            SimpleFontData* backing the glyphs in this page.
            We don't store font data for glyph #0, instead we let the getters always return null for it.

        (WebCore::GlyphPage::~GlyphPage):

            Free the SimpleFontData* array if needed.

        (WebCore::GlyphPage::glyphDataForCharacter):
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::fontDataForCharacter):

            The font data for glyph #0 is always a null pointer now.

        (WebCore::GlyphPage::clearForFontData):

            Updated for new storage format.

2013-02-05  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Read-only inputs should be focusable
        https://bugs.webkit.org/show_bug.cgi?id=108795

        Reviewed by Kentaro Hara.

        According to the standard [1], readonly form controls should be focusable.

        - Sub-fields should be focusable if they are read-only. We should check
          isDisabled mainly.
        - All keyboard operations should not be handled if a field is disabled,
          and focus navigation keyboard operations should be handled even if a
          field is read-only.

        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-readonly-attribute

        No new tests. Update
        fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html
        for the new behavior.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable):
        Make <input> focusable even if it is read-only.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::isFieldOwnerDisabled):
        Separate isFieldOwnerDisabledOrReadOnly into two.
        (WebCore::DateTimeEditElement::isFieldOwnerReadOnly): Ditto.
        (WebCore::DateTimeEditElement::updateUIState):
        We don't need to focus out if this is read-only.
        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement): Separate isFieldOwnerDisabledOrReadOnly into two.
        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::defaultEventHandler):
        Skip handleKeyboardEvent if the field is disabled or the owner input is
        disabled or read-only. handleKeyboardEvent handles editing key
        operations.
        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
        If this field is disabled or the owner input is disabled, all keyboard
        inputs are ignored.
        If this field is read-only, we handle only left and right arrows to
        change focus, and skip down/up/backspace/del keys.
        (WebCore::DateTimeFieldElement::isFieldOwnerDisabled):
        A helper function to check disable state of the owner input.
        (WebCore::DateTimeFieldElement::isFieldOwnerReadOnly):
        A helper function to check read-only state of the owner input.
        (WebCore::DateTimeFieldElement::isFocusable):
        This field should be focusable if it is read-only and not disabled.
        * html/shadow/DateTimeFieldElement.h:
        (FieldOwner): Separate isFieldOwnerDisabledOrReadOnly into two.
        (DateTimeFieldElement):
        Declare isFieldOwnerDisabled and isFieldOwnerReadOnly.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
        Remove redundant isDisabled check. It is done in
        DateTimeFieldElement::defaultEventHandler.

2013-02-05  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Complete plumbing so captions menu can indicate track type
        https://bugs.webkit.org/show_bug.cgi?id=108994

        Reviewed by Dean Jackson.

        Plumb "isClosedCaptions" through to the Mac media engine.

        Updated media/video-controls-captions-trackmenu-localized.html and results.

        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::isClosedCaptions): New, pass the call through to the private track.
        * html/track/InbandTextTrack.h:
        (InbandTextTrack):
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Lose the member variable, this won't be accessed often enough
            to make it worth caching the value.
        * html/track/TextTrack.h:
        (WebCore::TextTrack::isClosedCaptions): Make virtual so derived classes can oveerride.
        * platform/graphics/InbandTextTrackPrivate.h:
        (WebCore::InbandTextTrackPrivate::isClosedCaptions): New.
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
        (WebCore::InbandTextTrackPrivateAVFObjC::isClosedCaptions): New.

2013-02-05  Mark Lam  <mark.lam@apple.com>

        Change DatabaseTask and DatabaseThread to work with DatabaseBackendAsync
        instead of Database.
        https://bugs.webkit.org/show_bug.cgi?id=108995.

        Reviewed by Sam Weinig.

        This change also moves the task inner classes from Database to
        DatabaseBackendAsync.

        No new tests.

        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::from):
        * Modules/webdatabase/Database.h:
        (Database):
        * Modules/webdatabase/DatabaseBackend.h:
        (DatabaseBackend):
        * Modules/webdatabase/DatabaseBackendAsync.h:
        (DatabaseBackendAsync):
        * Modules/webdatabase/DatabaseTask.cpp:
        (WebCore::DatabaseTask::DatabaseTask):
        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::DatabaseOpenTask):
        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::doPerformTask):
        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::debugTaskName):
        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::DatabaseCloseTask):
        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::doPerformTask):
        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::debugTaskName):
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::debugTaskName):
        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::DatabaseTableNamesTask):
        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::doPerformTask):
        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::debugTaskName):
        * Modules/webdatabase/DatabaseTask.h:
        (WebCore::DatabaseTask::database):
        (DatabaseTask):
        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::create):
        (DatabaseBackendAsync::DatabaseOpenTask):
        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::create):
        (DatabaseBackendAsync::DatabaseCloseTask):
        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::create):
        (DatabaseBackendAsync::DatabaseTableNamesTask):
        * Modules/webdatabase/DatabaseThread.cpp:
        (WebCore::DatabaseThread::databaseThread):
        (WebCore::DatabaseThread::recordDatabaseOpen):
        (WebCore::DatabaseThread::recordDatabaseClosed):
        (WebCore::SameDatabasePredicate::SameDatabasePredicate):
        (SameDatabasePredicate):
        (WebCore::DatabaseThread::unscheduleDatabaseTasks):
        * Modules/webdatabase/DatabaseThread.h:
        (DatabaseThread):

2013-02-05  Mark Lam  <mark.lam@apple.com>

        Rename ENUM_CLASS_BEGIN() macro to ENUM_CLASS(), and make DatabaseType a strong enum.
        https://bugs.webkit.org/show_bug.cgi?id=108988.

        Reviewed by Alexey Proskuryakov.

        No new tests.

        * Modules/webdatabase/DatabaseBackend.cpp:
        (WebCore::DatabaseBackend::DatabaseBackend):
        * Modules/webdatabase/DatabaseBackend.h:
        (DatabaseBackend):
        * Modules/webdatabase/DatabaseBackendAsync.cpp:
        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
        * Modules/webdatabase/DatabaseBackendSync.cpp:
        (WebCore::DatabaseBackendSync::DatabaseBackendSync):
        * Modules/webdatabase/DatabaseBasicTypes.h:
        (WebCore::ENUM_CLASS):
        * Modules/webdatabase/DatabaseError.h:
        (WebCore::ENUM_CLASS):

2013-02-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove deprecatedV8String() and deprecatedV8Integer()
        https://bugs.webkit.org/show_bug.cgi?id=108919

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/V8Binding.cpp:
        (WebCore::toXPathNSResolver):
        * bindings/v8/V8Binding.h:
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::create):
        (WebCore::V8CustomXPathNSResolver::V8CustomXPathNSResolver):
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
        * bindings/v8/custom/V8CustomXPathNSResolver.h:
        (V8CustomXPathNSResolver):

2013-02-05   Vineet Chaudhary  <rgf748@motorola.com>

        formenctype to have empty string as default value.
        https://bugs.webkit.org/show_bug.cgi?id=108969

        Reviewed by Kent Tamura.

        The spec says formEnctype should only have an invalid value default, not a missing value default.
        Spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formenctype
              http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-formenctype

        No new tests. Covered by existing test case fast/forms/submit-form-attributes.html

        * html/HTMLFormControlElement.cpp: For the missing formEnctype attr return empty string.
        (WebCore::HTMLFormControlElement::formEnctype):

2013-02-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Reduce usage of deprecatedString() and deprecatedInteger()
        https://bugs.webkit.org/show_bug.cgi?id=108909

        Reviewed by Adam Barth.

        By passing an Isolate parameter around, we can reduce usage of
        deprecated methods.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrSetter):
        (GenerateEventListenerCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::addEventListenerCallback):
        (WebCore::TestObjV8Internal::removeEventListenerCallback):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::get):
        (WebCore::set):
        (WebCore::getNthValueOnKeyPath):
        (WebCore::canInjectNthValueOnKeyPath):
        (WebCore::ensureNthValueOnKeyPath):
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore::injectIDBKeyIntoScriptValue):
        (WebCore::canInjectIDBKeyIntoScriptValue):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::createValueListFromVariantArgs):
        (_NPN_Invoke):
        (_NPN_InvokeDefault):
        (_NPN_SetProperty):
        (_NPN_Construct):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::compileAndRunScript):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore):
        (WebCore::ScriptProfiler::takeHeapSnapshot):
        * bindings/v8/ScriptSourceCode.cpp:
        (WebCore::ScriptSourceCode::compileScript):
        * bindings/v8/ScriptSourceCode.h:
        (ScriptSourceCode):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::npObjectInvokeImpl):
        (WebCore::npObjectGetProperty):
        * bindings/v8/V8NPUtils.cpp:
        (WebCore::convertNPVariantToV8Object):
        * bindings/v8/V8NPUtils.h:
        (WebCore):
        * bindings/v8/V8Utilities.cpp:
        (WebCore::createHiddenDependency):
        (WebCore::removeHiddenDependency):
        (WebCore::transferHiddenDependency):
        * bindings/v8/V8Utilities.h:
        (WebCore):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::addEventListenerCallback):
        (WebCore::V8DOMWindow::removeEventListenerCallback):

2013-02-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in HasInstance()
        https://bugs.webkit.org/show_bug.cgi?id=108917

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::HasInstance):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (V8Float64Array):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::HasInstance):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (V8TestActiveDOMObject):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::HasInstance):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (V8TestCustomNamedGetter):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::HasInstance):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (V8TestEventConstructor):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::HasInstance):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (V8TestEventTarget):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::HasInstance):
        * bindings/scripts/test/V8/V8TestException.h:
        (V8TestException):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::HasInstance):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::HasInstance):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (V8TestMediaQueryListListener):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructor::HasInstance):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (V8TestNamedConstructor):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::HasInstance):
        * bindings/scripts/test/V8/V8TestNode.h:
        (V8TestNode):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::HasInstance):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::HasInstance):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (V8TestOverloadedConstructors):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (V8TestSerializedScriptValueInterface):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toWebGLUniformLocation):

2013-02-05  Kentaro Hara  <haraken@chromium.org>

        [JSC] Clean up CodeGeneratorJS.pm by introducing HasCustom{Getter,Setter,Method}
        https://bugs.webkit.org/show_bug.cgi?id=108898

        Reviewed by Sam Weinig.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (HasCustomGetter):
        (HasCustomSetter):
        (HasCustomMethod):

2013-02-05  Dana Jansens  <danakj@chromium.org>

        [chromium] Provide compositor offscreen context through the WebLayerTreeViewClient interface
        https://bugs.webkit.org/show_bug.cgi?id=107776

        Reviewed by James Robinson.

        Allow the compositor thread's context to be retrieved on either thread,
        so the main thread can create and pass the context to the impl thread
        via its own mechanisms.

        Move the code to bind the GrGLInterface to a WebGraphicsContext3D into
        chromium's GraphicsContext3DPrivate. The chromium-side code will need
        to implement this code itself.

        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore):
        (WebCore::GraphicsContext3DPrivate::grContext):
        * platform/chromium/support/GraphicsContext3DPrivate.h:
        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
        (WebCore::SharedGraphicsContext3D::getForImplThread):

2013-02-05  Tony Gentilcore  <tonyg@chromium.org>

        Continue making XSSAuditor thread safe: Remove dependency on the parser's tokenizer
        https://bugs.webkit.org/show_bug.cgi?id=108666

        Reviewed by Adam Barth.

        This is the final dependency on the parser, so we remove that as well. Yay!

        No new tests because no new functionality.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer): Pass m_tokenizer->shouldAllowCDATA()
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::XSSAuditor): Remove isMainThread() check because we have one in init() anyway.
        Move m_isEnabled and m_documentURL initialization to init() because we have a Document* there.
        (WebCore::XSSAuditor::init):
        (WebCore::XSSAuditor::filterToken):
        (WebCore::XSSAuditor::filterStartToken):
        (WebCore::XSSAuditor::filterEndToken):
        (WebCore::XSSAuditor::filterScriptToken):
        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
        * html/parser/XSSAuditor.h:
        (WebCore::FilterTokenRequest::FilterTokenRequest):
        (FilterTokenRequest):
        (XSSAuditor):

2013-02-05  Enrica Casucci  <enrica@apple.com>

        Make baseWritingDirectionForSelectionStart available to all platforms in the Editor class.
        https://bugs.webkit.org/show_bug.cgi?id=108977.

        Reviewed by Ryosuke Niwa.
        
        Now that baseWritingDirectionForSelectionStart doesn't use
        platform specific type anymore, we can make it available for
        all platforms. This way it can be used for iOS as well.

        No new tests, no functionality change.

        * editing/Editor.cpp:
        (WebCore::Editor::baseWritingDirectionForSelectionStart): Added.
        * editing/Editor.h: Moved from PLATFORM(MAC).
        * editing/mac/EditorMac.mm: baseWritingDirectionForSelectionStart removed.

2013-02-05  Benjamin Poulain  <bpoulain@apple.com>

        Avoid String->AtomicString conversion in Attr::childrenChanged()
        https://bugs.webkit.org/show_bug.cgi?id=108742

        Reviewed by Andreas Kling.

        * dom/Attr.cpp:
        (WebCore::Attr::childrenChanged): StringBuilder can output AtomicString directly.

2013-02-05  Yusuf Ozuysal  <yusufo@google.com>

        [chromium] Enable shouldGesturesTriggerActive for Android
        https://bugs.webkit.org/show_bug.cgi?id=96948

        Reviewed by James Robinson.

        We need this to fix performance issues we are getting because of touchstart 
        triggering hover/active states.

        No new tests. The tests introduced in https://bugs.webkit.org/show_bug.cgi?id=96060
        should run with the corrected behavior and would cover this change as well.

        * page/EventHandler.cpp:
        (WebCore::shouldGesturesTriggerActive):

2013-02-05  Mark Lam  <mark.lam@apple.com>

        Introduced back-end database classes + a few small fixes.
        https://bugs.webkit.org/show_bug.cgi?id=108759.

        Reviewed by Brady Eidson.

        1. Added DatabaseBackendContext, DatabaseBackendAsync, and DatabaseBackendSync.
           These are backends for DatabaseContext, Database, and DatabaseSync
           respectively.
        2. Added DatabaseBase to hold common code between Database and DatabaseSync.
        3. Renamed a few functions.
        4. Cleaned up unneeded code in ~DatabaseSync().
        5. Added some FIXMEs as reminders or places to clean up when we're done
           refactoring.
        6. Moved the calling of ScriptController::initializeThreading() from the Database
           constructor to DatabaseManager::openDatabase(). This just moves the call
           earlier in the same code path. System initialization work (i.e. initializing
           script threading in this case) should be done by the manager instead of by
           each Database instance.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabaseServer.h:
        (AbstractDatabaseServer):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::Database):
        (WebCore::Database::backend):
        * Modules/webdatabase/Database.h:
        (Database):
        * Modules/webdatabase/DatabaseBackend.cpp:
        (WebCore::DatabaseBackend::DatabaseBackend):
        (WebCore::DatabaseBackend::~DatabaseBackend):
        (WebCore::DatabaseBackend::incrementalVacuumIfNeeded):
        * Modules/webdatabase/DatabaseBackend.h:
        (DatabaseBackend):
        (WebCore::DatabaseBackend::databaseContext):
        (WebCore::DatabaseBackend::setFrontend):
        * Modules/webdatabase/DatabaseBackendAsync.cpp: Added.
        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
        * Modules/webdatabase/DatabaseBackendAsync.h: Added.
        (DatabaseBackendAsync):
        * Modules/webdatabase/DatabaseBackendContext.cpp: Added.
        (WebCore::DatabaseBackendContext::securityOrigin):
        (WebCore::DatabaseBackendContext::isContextThread):
        * Modules/webdatabase/DatabaseBackendContext.h: Added.
        (DatabaseBackendContext):
        (WebCore::DatabaseBackendContext::scriptExecutionContext):
        * Modules/webdatabase/DatabaseBackendSync.cpp: Added.
        (WebCore::DatabaseBackendSync::DatabaseBackendSync):
        (WebCore::DatabaseBackendSync::~DatabaseBackendSync):
        * Modules/webdatabase/DatabaseBackendSync.h: Added.
        (DatabaseBackendSync):
        * Modules/webdatabase/DatabaseBase.cpp: Added.
        (WebCore::DatabaseBase::DatabaseBase):
        (WebCore::DatabaseBase::scriptExecutionContext):
        (WebCore::DatabaseBase::logErrorMessage):
        * Modules/webdatabase/DatabaseBase.h: Added.
        (DatabaseBase):
        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::DatabaseContext):
        (WebCore::DatabaseContext::backend):
        * Modules/webdatabase/DatabaseContext.h:
        (DatabaseContext):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseManager::openDatabaseSync):
        (WebCore::DatabaseManager::hasOpenDatabases):
        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
        (WebCore::DatabaseManager::getMaxSizeForDatabase):
        (WebCore::DatabaseManager::logErrorMessage):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseServer.cpp:
        (WebCore::DatabaseServer::interruptAllDatabasesForContext):
        (WebCore::DatabaseServer::canEstablishDatabase):
        * Modules/webdatabase/DatabaseServer.h:
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::DatabaseSync):
        (WebCore::DatabaseSync::~DatabaseSync):
        (WebCore::DatabaseSync::backend):
        * Modules/webdatabase/DatabaseSync.h:
        (DatabaseSync):
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::openTrackerDatabase):
        (WebCore::DatabaseTracker::canEstablishDatabase):
        (WebCore::DatabaseTracker::hasEntryForDatabase):
        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
        (WebCore::DatabaseTracker::populateOriginsIfNeeded):
        (WebCore::DatabaseTracker::databaseNamesForOriginNoLock):
        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
        (WebCore::DatabaseTracker::setDatabaseDetails):
        (WebCore::DatabaseTracker::usageForOriginNoLock):
        (WebCore::DatabaseTracker::setQuota):
        (WebCore::DatabaseTracker::addDatabase):
        (WebCore::DatabaseTracker::deleteOrigin):
        (WebCore::DatabaseTracker::isDeletingDatabaseOrOriginFor):
        (WebCore::DatabaseTracker::canDeleteDatabase):
        (WebCore::DatabaseTracker::isDeletingDatabase):
        (WebCore::DatabaseTracker::canDeleteOrigin):
        (WebCore::DatabaseTracker::isDeletingOrigin):
        (WebCore::DatabaseTracker::recordDeletingOrigin):
        (WebCore::DatabaseTracker::doneDeletingOrigin):
        (WebCore::DatabaseTracker::deleteDatabase):
        (WebCore::DatabaseTracker::deleteDatabaseFile):
        * Modules/webdatabase/DatabaseTracker.h:
        (DatabaseTracker):
        * Modules/webdatabase/SQLTransaction.cpp:
        * Modules/webdatabase/SQLTransactionClient.cpp:
        (WebCore::SQLTransactionClient::didExceedQuota):
        * Modules/webdatabase/SQLTransactionSync.cpp:
        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase):
        (WebCore::DatabaseTracker::removeOpenDatabase):
        (WebCore::DatabaseTracker::prepareToOpenDatabase):
        (WebCore::DatabaseTracker::failedToOpenDatabase):
        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
        (WebCore::DatabaseTracker::closeDatabasesImmediately):
        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
        (WebCore::SQLTransactionClient::didExceedQuota):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-02-05  Nayan Kumar K  <nayankk@motorola.com>

        [WEBGL] Rename WEBKIT_WEBGL_depth_texture to WEBGL_depth_texture.
        https://bugs.webkit.org/show_bug.cgi?id=108959

        Reviewed by Kenneth Russell.

        WEBGL_depth_texture is official now. Hence remove the vendor prefix from
        WEBKIT_WEBGL_depth_texture and rename this extension string to WEBGL_depth_texture.
        Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/.

        Tests already exists, modified them to test querying of unprefixed extension string.

        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLDepthTexture.cpp:
        (WebCore::WebGLDepthTexture::getName):
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::getExtension):

2013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141905.
        http://trac.webkit.org/changeset/141905
        https://bugs.webkit.org/show_bug.cgi?id=108963

        "Broke mac build" (Requested by tonyg-cr on #webkit).

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        * html/parser/CompactHTMLToken.cpp:
        (SameSizeAsCompactHTMLToken):
        (WebCore::isStringSafeToSendToAnotherThread):
        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
        * html/parser/CompactHTMLToken.h:
        (WebCore):
        (CompactHTMLToken):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterToken):
        * html/parser/XSSAuditor.h:
        (WebCore):
        (XSSAuditor):
        * html/parser/XSSAuditorDelegate.cpp:
        (WebCore::XSSAuditorDelegate::didBlockScript):
        * html/parser/XSSAuditorDelegate.h:
        (WebCore::DidBlockScriptRequest::create):
        (WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
        (XSSAuditorDelegate):
        * platform/KURL.cpp:
        * platform/KURL.h:
        (KURL):
        * platform/KURLGoogle.cpp:
        (WebCore::KURLGooglePrivate::reportMemoryUsage):
        * platform/KURLGooglePrivate.h:
        (KURLGooglePrivate):
        * platform/KURLWTFURLImpl.h:
        (WebCore::KURLWTFURLImpl::reportMemoryUsage):

2013-02-05  Dominik Röttsches  <dominik.rottsches@intel.com>

        [HarfBuzz][Cairo] harfBuzzGetGlyph is slow and hot
        https://bugs.webkit.org/show_bug.cgi?id=108941

        Reviewed by Kenneth Rohde Christiansen.

        The text to glyph conversion using Cairo is slow
        due to expensive text codec conversion to UTF-8.
        Additionally, the glyph lookup itself is expensive.

        Inspired by the approach taken in HarfBuzzFaceSkia.cpp
        I suggest to implement a similar caching mechanism to
        accelerate this conversion.

        Arabic line breaking test, under review in
        bug 108948 shows about 58% improvement on my system
        with this patch.

        * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
        (WebCore::HarfBuzzFontData::HarfBuzzFontData):
            New container structure that keeps pointers
            to the cairo scaled font as well as the glyph cache.
        (HarfBuzzFontData):
        (WebCore):
        (WebCore::harfBuzzGetGlyph): Using the new container structure for accessing the cache.
        (WebCore::harfBuzzGetGlyphHorizontalAdvance): Using the new container structure for accessing the scaled font.
        (WebCore::harfBuzzGetGlyphExtents): Ditto.
        (WebCore::destroyHarfBuzzFontData): Destroying the container that held the pointers.
        (WebCore::HarfBuzzFace::createFont):
            Initializing the container structure with the pointers
            to the cache that is held in HarfBuzzFace and the cairo scaled font.

2013-02-05  Tony Gentilcore  <tonyg@chromium.org>

        Call XSSAuditor's didBlockScript() for the threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=108726

        Reviewed by Adam Barth.

        This patch causes us to call didBlockScript() on the main thread if the CompactHTML token has XSSInfo.
        To do so, we:
        1. Rename DidBlockScriptRequest to XSSInfo.
        2. Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
        3. Add an isSafeToSendToAnotherThread() method to String and KURL.

        We don't yet populate didBlockScriptRequest on the background thread, but this should just work once we do.

        No new tests because no new functionality.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::pumpTokenizer): Update comment for rename.
        * html/parser/CompactHTMLToken.cpp:
        (SameSizeAsCompactHTMLToken):
        (WebCore::CompactHTMLToken::CompactHTMLToken): Add a copy constructor used by Vector.
        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread): Include new m_xssInfo field in safety check.
        (WebCore):
        (WebCore::CompactHTMLToken::xssInfo): Added.
        (WebCore::CompactHTMLToken::setXSSInfo): Added.
        * html/parser/CompactHTMLToken.h: Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
        (WebCore):
        (CompactHTMLToken):
        (WTF): Add VectorTraits necessary for copying Vector fields objects that contain an OwnPtr.
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser): Add new didBlockScript() call.
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/XSSAuditor.cpp: Renaming.
        (WebCore::XSSAuditor::filterToken):
        * html/parser/XSSAuditor.h: Renaming.
        (WebCore):
        (XSSAuditor):
        * html/parser/XSSAuditorDelegate.cpp:
        (WebCore::XSSInfo::isSafeToSendToAnotherThread):
        (WebCore):
        (WebCore::XSSAuditorDelegate::didBlockScript):
        * html/parser/XSSAuditorDelegate.h:
        (WebCore::XSSInfo::create):
        (XSSInfo):
        (WebCore::XSSInfo::XSSInfo):
        (XSSAuditorDelegate):
        * platform/KURL.cpp:
        (WebCore::KURL::isSafeToSendToAnotherThread): Added.
        (WebCore):
        * platform/KURL.h:
        (KURL):
        * platform/KURLGoogle.cpp:
        (WebCore):
        (WebCore::KURLGooglePrivate::isSafeToSendToAnotherThread): Added.
        * platform/KURLGooglePrivate.h:
        (KURLGooglePrivate):
        * platform/KURLWTFURLImpl.h:
        (WebCore::KURLWTFURLImpl::isSafeToSendToAnotherThread): Added.

2013-02-05  Anton Vayvod  <avayvod@chromium.org>

        TextAutosizing: adjust the maximum difference between cluster text width and its descendant
        width.
        https://bugs.webkit.org/show_bug.cgi?id=108411

        Currently, if a render object is more than 200 CSS units shorter than its parent cluster, it
        becomes a separate autosizing cluster (see https://bugs.webkit.org/show_bug.cgi?id=105188).
        This doesn't work well for layouts when narrow nodes are related, like nested comments:
        deeper comments are all shorter than the parent cluster and become autosized differently. To
        avoid that the difference that makes a shorter descendant a new autosizing cluster is
        adjusted each time the width difference is not greater than 50 CSS units from the previous
        one. This allows nested comments, for example, to remain a part of the parent cluster and be
        autosized with the same multiplier.
        
        Reviewed by Kenneth Rohde Christiansen.

        Tests:
                fast/text-autosizing/nested-child.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizingClusterInfo::TextAutosizingClusterInfo):

            Added a new field to store the current maximum width difference for the cluster.

        (WebCore::TextAutosizer::isAutosizingCluster):

            Uses the new field to determine if the current node is a separate cluster,
            updates the maximum allowed width difference between the cluster and its descendant.

        (WebCore::TextAutosizer::processContainer):
        (WebCore::TextAutosizer::clusterShouldBeAutosized):
        (WebCore::TextAutosizer::measureDescendantTextWidth):

            Non-const reference passed to the methods above.

        * rendering/TextAutosizer.h: updated method parameters.

2013-02-05  Tony Gentilcore  <tonyg@chromium.org>

        Continue making XSSAuditor thread safe: Remove dependency on parser's sourceForToken and TextResourceDecoder
        https://bugs.webkit.org/show_bug.cgi?id=108698

        Reviewed by Adam Barth.

        We'd like to be able to call filterToken() from the BackgroundHTMLParser where there is no HTMLDocumentParser. So we are removing the dependencies of
        filterToken() on the HTMLDocumentParser. This patch brings us one step closer to removing the m_parser member from XSSAuditor by passing in the
        TextResourceDecoder and HTMLSourceTracker to filterToken. To keep the number of parameters from blowing up, this introduces a FilterTokenRequest struct
        to hold its arguments. We expect to add one more member to this struct.


        No new tests because no new functionality.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.h:
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterToken):
        (WebCore::XSSAuditor::filterStartToken):
        (WebCore::XSSAuditor::filterCharacterToken):
        (WebCore::XSSAuditor::filterScriptToken):
        (WebCore::XSSAuditor::filterObjectToken):
        (WebCore::XSSAuditor::filterParamToken):
        (WebCore::XSSAuditor::filterEmbedToken):
        (WebCore::XSSAuditor::filterAppletToken):
        (WebCore::XSSAuditor::filterIframeToken):
        (WebCore::XSSAuditor::filterMetaToken):
        (WebCore::XSSAuditor::filterBaseToken):
        (WebCore::XSSAuditor::filterFormToken):
        (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
        (WebCore::XSSAuditor::eraseAttributeIfInjected):
        (WebCore::XSSAuditor::decodedSnippetForName):
        (WebCore::XSSAuditor::decodedSnippetForAttribute):
        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
        * html/parser/XSSAuditor.h:
        (WebCore):
        (WebCore::FilterTokenRequest::FilterTokenRequest):
        (FilterTokenRequest):
        (XSSAuditor):

2013-02-05  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>

        [Qt] REGRESSION(r137436): It made all inspector tests timeout on developer builds
        https://bugs.webkit.org/show_bug.cgi?id=106554

        Reviewed by Simon Hausmann.

        * Target.pri:

2013-02-05  Peter Rybin  <prybin@chromium.org>

        Web Inspector: prevent crash, add required error string value
        https://bugs.webkit.org/show_bug.cgi?id=108776

        Reviewed by Pavel Feldman.

        Error string is assigned where missing, assert is added where empty string is
        possible.

        * inspector/InjectedScriptBase.cpp:
        (WebCore::InjectedScriptBase::makeEvalCall):
        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::injectedScriptForEval):

2013-02-05  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Clicking a profile's title in the console loads about:blank.
        https://bugs.webkit.org/show_bug.cgi?id=107949

        Reviewed by Vsevolod Vlasov.

        Quick fix for regression.

        * inspector/front-end/inspector.js:
        Avoid "exit route" when URL is a profile URL.

2013-02-05  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: element.focus() should not focus on disabled sub-fields.
        https://bugs.webkit.org/show_bug.cgi?id=108924

        Reviewed by Kentaro Hara.

        The first field may be non-focusable. We should search sub-fields for
        focusable one.

        Test: fast/forms/date-multiple-fields/date-multiple-fields-focus.html

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::focusOnNextFocusableField):
        Added. A private helper function.
        (WebCore::DateTimeEditElement::focusIfNoFocus): Use focusOnNextFocusableField.
        (WebCore::DateTimeEditElement::focusByOwner): Ditto.
        (WebCore::DateTimeEditElement::focusOnNextField): Ditto.
        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement): Declare focusOnNextFocusableField.

2013-02-04  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Create separate project for each file system added to inspector.
        https://bugs.webkit.org/show_bug.cgi?id=108652

        Reviewed by Pavel Feldman.

        Every file system added to web inspector is now represented by its own project in workspace.
        FileSystemMapping changed accrodingly.

        Test: inspector/file-system-mapping.html

        * inspector/front-end/FileMapping.js:
        (WebInspector.FileMapping.prototype._entryURIPrefix):
        * inspector/front-end/FileSystemMapping.js:
        (WebInspector.FileSystemMapping.prototype.fileForURI):
        (WebInspector.FileSystemMapping.prototype.uriForFile):
        (WebInspector.FileSystemMapping.prototype.uriPrefixForPathPrefix):
        (WebInspector.FileSystemMappingImpl):
        (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings.get this):
        (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings):
        (WebInspector.FileSystemMappingImpl.prototype._saveToSettings):
        (WebInspector.FileSystemMappingImpl.prototype.set _fileSystemName):
        (WebInspector.FileSystemMappingImpl.prototype.fileSystemId):
        (WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
        (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
        (WebInspector.FileSystemMappingImpl.prototype.fileSystemPaths):
        (WebInspector.FileSystemMappingImpl.prototype.fileForURI):
        (WebInspector.FileSystemMappingImpl.prototype.uriForFile):
        (WebInspector.FileSystemMappingImpl.prototype.uriPrefixForPathPrefix):
        * inspector/front-end/FileSystemWorkspaceProvider.js:
        (WebInspector.FileSystemWorkspaceProvider):
        (WebInspector.FileSystemWorkspaceProvider.prototype.innerCallback):
        (WebInspector.FileSystemWorkspaceProvider.prototype.requestFileContent):
        (WebInspector.FileSystemWorkspaceProvider.prototype.setFileContent):
        (WebInspector.FileSystemWorkspaceProvider.prototype._populate.filesLoaded):
        (WebInspector.FileSystemWorkspaceProvider.prototype._populate):
        (WebInspector.FileSystemWorkspaceProvider.prototype._addFile):
        (WebInspector.FileSystemWorkspaceProvider.prototype._removeFile):
        (WebInspector.FileSystemWorkspaceProvider.prototype.reset):
        * inspector/front-end/IsolatedFileSystemModel.js:
        (WebInspector.IsolatedFileSystemModel):
        (WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
        (WebInspector.IsolatedFileSystemModel.prototype._fileSystemRemoved):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype.searchInFileContent):
        (WebInspector.Project.prototype.dispose):
        (WebInspector.Workspace.prototype.removeProject):

2013-02-05  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Should not move focus if the element already has focus
        https://bugs.webkit.org/show_bug.cgi?id=108914

        Reviewed by Kentaro Hara.

        If timeInput.focus() is called when a sub-field of the time input
        already has focus, we should not focus on the first sub-field of the
        time input.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-focus.html

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::willCancelFocus): If
        the input elment already has focused sub-field, we don't need to proceed
        focus handling. FocusDirection check is required because we don't need
        to do this in cases of sequential focus navigation.
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType): Override InputType::willCancelFocus.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::focus):
        Cancel focus if InputType::willCancelFocus returns true.
        * html/HTMLInputElement.h:
        (HTMLInputElement): Override focus.
        * html/InputType.cpp:
        (WebCore::InputType::willCancelFocus):
        Add a default implementation. It returns false.
        * html/InputType.h:
        (InputType): Declare willCancelFocus.

2013-02-05  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] RGB -> BGR is wrong on big endian
        https://bugs.webkit.org/show_bug.cgi?id=107560

        Reviewed by Jocelyn Turcotte.

        Replace the conversion to methods that make it clearer what is going on.
        The routines are also optimized compared to the existing by avoiding going
        over slow Color constructor.

        Tested by existing tests in canvas and fast/canvas.

        * platform/graphics/Color.cpp:
        (WebCore::colorFromPremultipliedARGB):
            Cleanup.
        (WebCore::premultipliedARGBFromColor):
            Cleanup and correct for alpha = 0.
        * platform/graphics/Color.h:
        (WebCore):
        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::copyColorToRGBA):
        (WebCore::copyRGBAToColor):
        (WebCore::getImageData):
        (WebCore::ImageBuffer::putByteArray):

2013-02-05  JungJik Lee  <jungjik.lee@samsung.com>

        [TexMap] Use visible as initial value of backface-visibility-property.
        https://bugs.webkit.org/show_bug.cgi?id=108875

        Reviewed by Noam Rosenthal.

        According to W3C spec, the initial value of backface-visibility-visibility is visible.
        However TextureMapperLayer's initial value is false which means hidden.
        So this patch is for changing the value to visible(true).

        Covered by existing tests.

        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore::TextureMapperLayer::State::State): Change the initial value false to true
        to use backface-visibility.

2013-02-05  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] do not store a dropped trace log in backend
        https://bugs.webkit.org/show_bug.cgi?id=108600

        Reviewed by Pavel Feldman.

        Clear memory immediately on dropping current trace log instead of waiting for the next capture command.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2013-02-05  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] UI is not restored properly when deleting a live recording profile
        https://bugs.webkit.org/show_bug.cgi?id=108602

        Reviewed by Pavel Feldman.

        Cancel recording profile of canvas-type when deleting an alive trace log.
        Drive-by: rename ProfileHeader.reset to ProfileHeader.dispose since it's called on header's destruction.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileHeader.prototype.dispose):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfileHeader.prototype.dispose):
        (WebInspector.ProfilesPanel.prototype._reset):
        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
        (WebInspector.ProfilesPanel.prototype.setRecordingProfile):

2013-02-05  Julien Brianceau  <jbrianceau@nds.com>

        Build is broken since r141543 for platforms without OpenGL
        https://bugs.webkit.org/show_bug.cgi?id=108862

        Reviewed by Simon Hausmann.

        * Target.pri:

2013-02-05  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r141865.
        http://trac.webkit.org/changeset/141865
        https://bugs.webkit.org/show_bug.cgi?id=108909

        webkit unit tests are broken

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrSetter):
        (GenerateEventListenerCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::addEventListenerCallback):
        (WebCore::TestObjV8Internal::removeEventListenerCallback):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::get):
        (WebCore::set):
        (WebCore::getNthValueOnKeyPath):
        (WebCore::canInjectNthValueOnKeyPath):
        (WebCore::ensureNthValueOnKeyPath):
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore::injectIDBKeyIntoScriptValue):
        (WebCore::canInjectIDBKeyIntoScriptValue):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::createValueListFromVariantArgs):
        (_NPN_Invoke):
        (_NPN_InvokeDefault):
        (_NPN_SetProperty):
        (_NPN_Construct):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::compileAndRunScript):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::takeHeapSnapshot):
        * bindings/v8/ScriptSourceCode.cpp:
        (WebCore::ScriptSourceCode::compileScript):
        * bindings/v8/ScriptSourceCode.h:
        (ScriptSourceCode):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::npObjectInvokeImpl):
        (WebCore::npObjectGetProperty):
        * bindings/v8/V8NPUtils.cpp:
        (WebCore::convertNPVariantToV8Object):
        * bindings/v8/V8NPUtils.h:
        (WebCore):
        * bindings/v8/V8Utilities.cpp:
        (WebCore::createHiddenDependency):
        (WebCore::removeHiddenDependency):
        (WebCore::transferHiddenDependency):
        * bindings/v8/V8Utilities.h:
        (WebCore):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::addEventListenerCallback):
        (WebCore::V8DOMWindow::removeEventListenerCallback):

2013-02-05  Mike West  <mkwst@chromium.org>

        Cleanup: Use exceptionless Range::* methods rather than ignoring exceptions.
        https://bugs.webkit.org/show_bug.cgi?id=108773

        Reviewed by Darin Adler.

        We often call Range::{start,end}{Container,Offset} with an ExceptionCode
        that's completely ignored. In these cases, we should simply use the
        exceptionless version of the method instead.

        * dom/DocumentMarkerController.cpp:
        (WebCore::DocumentMarkerController::addMarker):
            Here, I also moved parameters onto one line to make the
            stylebot happy.
        (WebCore::DocumentMarkerController::addTextMatchMarker):
        (WebCore::DocumentMarkerController::setMarkersActive):
            Dropped ignored ExceptionCode variable entirely.
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
            Can't drop the variable because of the selectNodeContents call.
        * editing/Editor.cpp:
        (WebCore::Editor::canDeleteRange):
            Dropped ignored ExceptionCode variable entirely.
        (WebCore::Editor::advanceToNextMisspelling):
            Can't drop the variable because of setStart/setEnd.
        * editing/EditorCommand.cpp:
        (WebCore::unionDOMRanges):
            Can't drop the variable because of compareBoundaryPoints.
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendNodeValue):
            Dropped ignored ExceptionCode variable entirely.
        * editing/TextCheckingHelper.cpp:
        (WebCore::TextCheckingParagraph::offsetAsRange):
        (WebCore::TextCheckingHelper::findFirstMisspelling):
        (WebCore::TextCheckingHelper::findFirstGrammarDetail):
        (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::renderedText):
        (WebCore::StyledMarkupAccumulator::stringValueForRange):
            Dropped ignored ExceptionCode variable entirely.
        * editing/visible_units.cpp:
        (WebCore::previousBoundary):
            Can't drop the variable due to many other calls.
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::deleteFromDocument):
        (WebCore::DOMSelection::containsNode):
            For both these cases, the 'ASSERT(!ec)' after the statement I've
            edited only checked the last occurance of the exception: that is,
            if 'startXxx(ec)' threw an exception, it would be overwritten by
            the 'setBaseAndExtend()' or 'compareBoundaryPoints()' exception.
            Removing the exception parameters from the parameters' calls
            shouldn't effect behavior.
        * platform/chromium/PasteboardChromium.cpp:
        (WebCore::Pasteboard::writeSelection):
        * platform/mac/HTMLConverter.mm:
        (+[WebHTMLConverter editingAttributedStringFromRange:]):
        * platform/win/ClipboardWin.cpp:
        (WebCore::ClipboardWin::writeRange):
        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::writeSelection):
        * platform/wince/PasteboardWinCE.cpp:
        (WebCore::Pasteboard::writeSelection):
            Dropped ignored ExceptionCode variable entirely.

2013-02-05  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector:  introduce Memory.getDOMCounters
        https://bugs.webkit.org/show_bug.cgi?id=108822

        Reviewed by Pavel Feldman.

        Introduced Memory.getDOMCounters command that returns number of Documents, Nodes
        and JS event listeners in the inspected process.

        * inspector/Inspector.json:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getDOMCounters):
        (WebCore):
        * inspector/InspectorMemoryAgent.h:
        (InspectorMemoryAgent):

2013-02-04  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: rename Image m_data member to m_encodedImageData for the consistency
        https://bugs.webkit.org/show_bug.cgi?id=108913

        Reviewed by Yury Semikhatsky.

        No new tests because no API changes.

        * platform/graphics/Image.cpp:
        (WebCore::Image::setData):
        (WebCore::Image::reportMemoryUsage):
        * platform/graphics/Image.h:
        (WebCore::Image::data):
        (Image):

2013-02-05  Hajime Morrita  <morrita@google.com>

        Unreviewed Linux ASAN build fix for r141783.

        * platform/RefCountedSupplement.h:
        (Wrapper):
        * platform/Supplementable.h:
        (Supplement):

2013-02-05  Mike West  <mkwst@chromium.org>

        [chromium] Unreviewed: Fix broken SVG-disabled build.
        https://bugs.webkit.org/show_bug.cgi?id=108916

        The new enum value CSSPropertyWebkitGridAutoFlow was introduced in
        r141787, and accidentally left out of CSSParser::parseValue's big
        switch. This causes problems in non-SVG builds.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):

2013-02-05  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update RTCPeerConnections stream accessors to match the latest specification
        https://bugs.webkit.org/show_bug.cgi?id=108179

        Reviewed by Adam Barth.

        http://dev.w3.org/2011/webrtc/editor/webrtc.html#interface-definition
        The attributes localStreams and remoteStreams have been changes to the methods
        getLocalStreams() and getRemoteStreams() which return a native array instead.

        Existing tests updated to cover patch.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/mediastream/MediaStream.h:
        (WebCore):
        * Modules/mediastream/MediaStreamList.cpp: Removed.
        * Modules/mediastream/MediaStreamList.h: Removed.
        * Modules/mediastream/MediaStreamList.idl: Removed.
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::addStream):
        (WebCore::RTCPeerConnection::removeStream):
        (WebCore::RTCPeerConnection::getLocalStreams):
        (WebCore::RTCPeerConnection::getRemoteStreams):
        (WebCore::RTCPeerConnection::didAddRemoteStream):
        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
        * Modules/mediastream/RTCPeerConnection.h:
        (RTCPeerConnection):
        * Modules/mediastream/RTCPeerConnection.idl:
        * WebCore.gypi:

2013-02-05  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [Qt][EFL][WebGL] Webgl doesn't work on nvidia cards
        https://bugs.webkit.org/show_bug.cgi?id=108059

        Reviewed by Kenneth Rohde Christiansen.

        Commit r138327 fixed repainting issues on mesa3d GL library by re-binding
        texture to the window after every glXSwapBuffer. Unfortunatelly re-bind
        breaks rendering on NVidia cards with NVidia propiertary drivers.
        This change limits texture re-binding only for mesa3d GL library.

        No new tests. HW specific fix.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::OffScreenRootWindow::isMesaGLX):
        (OffScreenRootWindow):
        (WebCore::GraphicsSurface::platformSwapBuffers):

2013-02-05  Praveen Jadhav  <praveen.j@samsung.com>

        Floating point precision error in AudioPannerNode.
        https://bugs.webkit.org/show_bug.cgi?id=106001

        Reviewed by Kentaro Hara.

        Specifications Update: 
        https://dvcs.w3.org/hg/audio/rev/69a39a516e45

        Conversion from double to float and back to double
        results in precision error. Avoiding these conversions
        will make sure that proper values are retained in the
        parameters.

        * Modules/webaudio/PannerNode.h:
        (WebCore::PannerNode::refDistance):
        (WebCore::PannerNode::setRefDistance):
        (WebCore::PannerNode::maxDistance):
        (WebCore::PannerNode::setMaxDistance):
        (WebCore::PannerNode::rolloffFactor):
        (WebCore::PannerNode::setRolloffFactor):
        (WebCore::PannerNode::coneInnerAngle):
        (WebCore::PannerNode::setConeInnerAngle):
        (WebCore::PannerNode::coneOuterAngle):
        (WebCore::PannerNode::setConeOuterAngle):
        (WebCore::PannerNode::coneOuterGain):
        (WebCore::PannerNode::setConeOuterGain):
        * Modules/webaudio/PannerNode.idl:

2013-02-05  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Use disabled attribute internally instead of readonly attribute
        https://bugs.webkit.org/show_bug.cgi?id=108911

        Reviewed by Kentaro Hara.

        Use 'disabled' attribute for shadow elements for <input> with
        multiple-fields UI instead of 'readonly' attribute because 'readonly'
        attribute represents focusable-but-non-editable state in HTML though
        we'd like to represent non-focusable-and-non-editable state.

        The summary of changes:
        - Use 'disabled' attribute instead of 'readonly' attribute for DateTimeFieldElement,
        - Rename C++ functions for it,
        - Call isFocusable instead of isReadOnly to check focusable state.

        No new tests. This doesn't make user-visible behavior changes.

        * css/html.css:
        Replace [readonly] with [disabled] for sub-fields.
        * html/shadow/DateTimeEditElement.cpp:
        (DateTimeEditBuilder):
        (WebCore::DateTimeEditBuilder::visitField):
        (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
        (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled):
        (WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled):
        (WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled):
        (WebCore::DateTimeEditBuilder::shouldYearFieldDisabled):
        (WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
        (WebCore::DateTimeEditElement::focusOnNextField): Use isFocusable.
        (WebCore::DateTimeEditElement::focusOnPreviousField): Use isFocusable.
        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::isFocusable):
        (WebCore::DateTimeFieldElement::isDisabled):
        (WebCore::DateTimeFieldElement::setDisabled):
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement): Make isFocusable public in order that
        DateTimeEditElement can call it.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
        (WebCore::DateTimeNumericFieldElement::setEmptyValue):
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue):

2013-02-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Reduce usage of deprecatedString() and deprecatedInteger()
        https://bugs.webkit.org/show_bug.cgi?id=108909

        Reviewed by Adam Barth.

        By passing an Isolate parameter around, we can reduce usage of
        deprecated methods.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrSetter):
        (GenerateEventListenerCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::addEventListenerCallback):
        (WebCore::TestObjV8Internal::removeEventListenerCallback):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::get):
        (WebCore::set):
        (WebCore::getNthValueOnKeyPath):
        (WebCore::canInjectNthValueOnKeyPath):
        (WebCore::ensureNthValueOnKeyPath):
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore::injectIDBKeyIntoScriptValue):
        (WebCore::canInjectIDBKeyIntoScriptValue):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::createValueListFromVariantArgs):
        (_NPN_Invoke):
        (_NPN_InvokeDefault):
        (_NPN_SetProperty):
        (_NPN_Construct):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::compileAndRunScript):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore):
        (WebCore::ScriptProfiler::takeHeapSnapshot):
        * bindings/v8/ScriptSourceCode.cpp:
        (WebCore::ScriptSourceCode::compileScript):
        * bindings/v8/ScriptSourceCode.h:
        (ScriptSourceCode):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::npObjectInvokeImpl):
        (WebCore::npObjectGetProperty):
        * bindings/v8/V8NPUtils.cpp:
        (WebCore::convertNPVariantToV8Object):
        * bindings/v8/V8NPUtils.h:
        (WebCore):
        * bindings/v8/V8Utilities.cpp:
        (WebCore::createHiddenDependency):
        (WebCore::removeHiddenDependency):
        (WebCore::transferHiddenDependency):
        * bindings/v8/V8Utilities.h:
        (WebCore):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::addEventListenerCallback):
        (WebCore::V8DOMWindow::removeEventListenerCallback):

2013-02-04  Dean Jackson  <dino@apple.com>

        [Mac] Captions menu should indicate language and type of track
        https://bugs.webkit.org/show_bug.cgi?id=108882

        Reviewed by Eric Carlson.

        On Mac, we want a specific format for menu items in a caption list. Since
        other ports might want different formats, move the generation of the label
        into CaptionsUserPreferences where it can be overridden.

        This required CaptionsUserPreferences to become public on the PageGroup, so
        it could be used when creating the menu. Also, since CaptionsUserPreferences
        was hidden on Mountain Lion and below, be a little more specific about
        which pieces can be seen on which builds.

        Covered by exisiting media/video-controls-captions-trackmenu tests.

        * English.lproj/Localizable.strings: Remove textTrackClosedCaptionsText.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Build only
            one section and get the track's display name from the user preferences.
        * page/CaptionUserPreferences.h:
        (WebCore::CaptionUserPreferences::displayNameForTrack): Default implementation of
            virtual function that provides a label for a captions menu item.
        * page/CaptionUserPreferencesMac.h: Add the new virtual function, and expose just
            a bit of this class outside 10.9 builds.
        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac): Guard features for system version.
        (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac): Ditto.
        (WebCore::CaptionUserPreferencesMac::displayNameForTrack): New OS X-specific method that
            returns a string for the menu label.
        * page/PageGroup.cpp:
        (WebCore::PageGroup::captionPreferences): Unguard for system version.
        * page/PageGroup.h: Make captionPreferences public.
        * platform/LocalizedStrings.cpp: Remove textTrackClosedCaptionsText - not needed any more.
        * platform/LocalizedStrings.h: Remove textTrackClosedCaptionsText.

2013-02-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to V8DOMConfiguration
        https://bugs.webkit.org/show_bug.cgi?id=108900

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (GenerateToV8Converters):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::ConfigureV8Float64ArrayTemplate):
        (WebCore::V8Float64Array::createWrapper):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
        (WebCore::V8TestActiveDOMObject::createWrapper):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
        (WebCore::V8TestCustomNamedGetter::createWrapper):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::ConfigureV8TestEventConstructorTemplate):
        (WebCore::V8TestEventConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::ConfigureV8TestEventTargetTemplate):
        (WebCore::V8TestEventTarget::createWrapper):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::ConfigureV8TestExceptionTemplate):
        (WebCore::V8TestException::createWrapper):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::ConfigureV8TestInterfaceTemplate):
        (WebCore::V8TestInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
        (WebCore::V8TestMediaQueryListListener::createWrapper):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::ConfigureV8TestNamedConstructorTemplate):
        (WebCore::V8TestNamedConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::ConfigureV8TestNodeTemplate):
        (WebCore::V8TestNode::createWrapper):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::V8TestNode::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::ConfigureV8TestObjTemplate):
        (WebCore::V8TestObj::installPerContextProperties):
        (WebCore::V8TestObj::createWrapper):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
        (WebCore::V8TestOverloadedConstructors::createWrapper):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
        * bindings/v8/V8DOMConfiguration.cpp:
        (WebCore::V8DOMConfiguration::batchConfigureAttributes):
        (WebCore::V8DOMConfiguration::batchConfigureConstants):
        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
        (WebCore::V8DOMConfiguration::configureTemplate):
        * bindings/v8/V8DOMConfiguration.h:
        (V8DOMConfiguration):
        (WebCore::V8DOMConfiguration::configureAttribute):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::installDOMWindow):

2013-02-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Clean up CodeGeneratorV8.pm by introducing HasCustom{Getter,Setter,Method}
        https://bugs.webkit.org/show_bug.cgi?id=108896

        Reviewed by Adam Barth.

        No tests. No change in generated code.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (HasCustomGetter):
        (HasCustomSetter):
        (HasCustomMethod):
        (GetFunctionTemplateCallbackName):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):
        (RequiresCustomSignature):

2013-02-04  Kent Tamura  <tkent@chromium.org>

        Fix crash by <select> type change on focus
        https://bugs.webkit.org/show_bug.cgi?id=108830

        Reviewed by Abhishek Arya.

        Test: fast/forms/select/select-change-type-on-focus.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        focus() calls may change the renderer type.

2013-02-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to opaqueRootForGC()
        https://bugs.webkit.org/show_bug.cgi?id=108886

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateOpaqueRootForGC):
        (GenerateHeader):
        * bindings/v8/V8GCController.cpp:
        (WebCore::V8GCController::opaqueRootForGC):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::opaqueRootForGC):
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::opaqueRootForGC):

2013-02-04  Wei James  <james.wei@intel.com>

        Heap-buffer-overflow in WebCore::AudioBufferSourceNode::process
        https://bugs.webkit.org/show_bug.cgi?id=108515

        After calling setBuffer() with a buffer having a different number of
        channels, there can in rare cases be a slight delay before the output
        bus is updated to the new number of channels because of use of
        tryLocks() in the context's updating system.
        In this case, if the the buffer has just been changed and we're
        not quite ready yet then just output silence.

        Reviewed by Chris Rogers.

        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::process):
        (WebCore::AudioBufferSourceNode::renderFromBuffer):

2013-02-04  James Simonsen  <simonjam@chromium.org>

        [Chromium] Add a signal for when the body is inserted in the document
        https://bugs.webkit.org/show_bug.cgi?id=108725

        Reviewed by Adam Barth.

        This is an important signal for resource scheduling. We know we have enough to paint something,
        so we can start kicking off image preloads.

        Test: Chromium webkit_unit_tests

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
        * loader/FrameLoaderClient.h:
        (FrameLoaderClient):
        (WebCore::FrameLoaderClient::dispatchWillInsertBody):

2013-02-04  Benjamin Poulain  <bpoulain@apple.com>

        Kill suspendAnimation(), resumeAnimation() and numberOfActiveAnimations() from DRT/WTR; use Internals
        https://bugs.webkit.org/show_bug.cgi?id=108741

        Reviewed by Tony Chang.

        Move suspendAnimations and resumeAnimations to group all the animation related
        code together.

        Add support for numberOfActiveAnimations, similarily to the feature previously defined
        in TestRunner.

        * testing/Internals.cpp:
        (WebCore::Internals::numberOfActiveAnimations):
        (WebCore):
        (WebCore::Internals::suspendAnimations):
        (WebCore::Internals::resumeAnimations):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-02-04  Nayan Kumar K  <nayankk@motorola.com>

        [WEBGL] Rename WEBKIT_WEBGL_compressed_texture_s3tc to WEBGL_compressed_texture_s3tc
        https://bugs.webkit.org/show_bug.cgi?id=108866

        Reviewed by Kenneth Russell.

        WEBGL_compressed_texture_s3tc is one of the community approved WebGL extension.
        Hence remove the vendor prefix from WEBKIT_WEBGL_compressed_texture_s3tc.
        Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/

        No tests currently present to test WEBKIT_WEBGL_compressed_texture_s3tc.

        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLCompressedTextureS3TC.cpp:
        (WebCore::WebGLCompressedTextureS3TC::getName):
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::getExtension):

2013-02-04  Nayan Kumar K  <nayankk@motorola.com>

        [WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context.
        https://bugs.webkit.org/show_bug.cgi?id=108694

        Reviewed by Kenneth Russell.

        WEBGL_lose_context is one of the community approved WebGL extension.
        Hence remove the vendor prefix from WEBKIT_WEBGL_lose_context extension.
        Spefication: http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/

        Tests already exists, modified them to verify the change in extension name.

        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLLoseContext.cpp:
        (WebCore::WebGLLoseContext::getName):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):

2013-02-04  Dean Jackson  <dino@apple.com>

        Default element styles are not always collected for sharing detection
        https://bugs.webkit.org/show_bug.cgi?id=108404

        Reviewed by Antti Koivisto.

        The method ensureDefaultStyleSheetsForElement is run as we add elements
        to the document. This may update the defaultStyle of the document, but
        does not recollect any changes into the StyleResolver. This means that
        style sharing might be overly ambitious, thinking it can share a style
        for an element which was matched in the new rules. This showed up most
        often in the Shadow Root for media elements, which would add a set of
        style rules, but the shadow children would sometimes share styles even
        when they shouldn't.

        The fix is to detect if we need to collect after adding a
        style for an element. This might cause a little more work, but
        in my testing it doesn't happen very often.

        Unfortunately it is hard to get a reproducible test for this.

        * css/CSSDefaultStyleSheets.cpp:
        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement): As we load in
            styles, keep track of whether or not we change the default style.
        * css/CSSDefaultStyleSheets.h:
        (CSSDefaultStyleSheets): New boolean parameter indicating if the style has changed.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForElement): Collect features if the element
            caused the default style to update.
        (WebCore::StyleResolver::collectFeatures): Protect for null in updates.

2013-02-04  Jun Jiang  <jun.a.jiang@intel.com>

        Fix the issue that some possible source formats are ignored for float textures in texture packing for CG port
        https://bugs.webkit.org/show_bug.cgi?id=108812

        Reviewed by Kenneth Russell.

        Already covered by latest WebGL conformance test.

        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore):

2013-02-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Remove needless local variables in LocalizedStringsEfl.cpp
        https://bugs.webkit.org/show_bug.cgi?id=108869

        Reviewed by Kentaro Hara.

        fromUTF8() returns static String. So, we don't need to use needless local variables.

        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::contextMenuItemTagCopy):
        (WebCore::contextMenuItemTagDelete):
        (WebCore::contextMenuItemTagSelectAll):
        (WebCore::contextMenuItemTagGoBack):
        (WebCore::contextMenuItemTagGoForward):
        (WebCore::contextMenuItemTagStop):
        (WebCore::contextMenuItemTagCut):
        (WebCore::contextMenuItemTagPaste):
        (WebCore::contextMenuItemTagBold):
        (WebCore::contextMenuItemTagItalic):
        (WebCore::contextMenuItemTagUnderline):

2013-02-04  Jun Jiang  <jun.a.jiang@intel.com>

        WebGL: Move the format conversion for 16-bit per channel formats into Core Graphics port only
        https://bugs.webkit.org/show_bug.cgi?id=108304

        Reviewed by Kenneth Russell.

        Since the 16-bit per channel formats are only used for Core Graphics port in WebGL and not a standard to represent any file format that is widely used 
        for each platform, it is better to limit and hide this kinds of information and processing in CG specific code only. 
        It can make the code more clear and reduce the binary size for both CG port and non-CG port.

        Already covered by current tests.

        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore):
        * platform/graphics/GraphicsContext3D.h:
        (GraphicsContext3D):
        (WebCore::GraphicsContext3D::srcFormatComeFromDOMElementOrImageData):
        (ImageExtractor):
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):

2013-02-04  Dean Jackson  <dino@apple.com>

        Allow TextTracks to be marked as closed captions
        https://bugs.webkit.org/show_bug.cgi?id=108856

        Reviewed by Darin Adler.

        While this isn't exposed directly in markup, some platform media frameworks can
        provide indication that a caption track is a closed caption. Expose such a flag
        on TextTrack and platforms can show a different UI if they want to.

        No tests - this isn't used elsewhere yet, nor exposed to the DOM.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Initialise new member.
        * html/track/TextTrack.h:
        (WebCore::TextTrack::isClosedCaptions): New member variable.
        (WebCore::TextTrack::setIsClosedCaptions):

2013-02-04  Chris Hopman  <cjhopman@chromium.org>

        Make moveCaretTowardsWindowPoint not snap to the beginning/end when moved above/below editable
        https://bugs.webkit.org/show_bug.cgi?id=107850

        Reviewed by Ojan Vafai.

        On Android, EditingBehavior::shouldMoveCaret[...] controls the
        behavior of insertion handles. This change adds a new Android specific
        editing behavior type.

        The new EditingBehavior is the same as EditingUnixBehavior except for
        EditingBehavior::shouldMoveCaret[...]. This new behavior fixes
        WebFrame::moveCaretTowardsWindowPoint to not span to the
        beginning/end.

        * editing/EditingBehavior.h:
        (WebCore::EditingBehavior::shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom):
        (WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
        (WebCore::EditingBehavior::shouldNavigateBackOnBackspace):
        * editing/EditingBehaviorTypes.h:
        * page/Settings.cpp:
        (WebCore):
        (WebCore::editingBehaviorTypeForPlatform):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::setEditingBehavior):

2013-02-04  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Focus order is not controllable by tabIndex attribute on <input>
        https://bugs.webkit.org/show_bug.cgi?id=108447

        Reviewed by Hajime Morita.

        We make <input> elements with the multiple-fields UI focusable.
         - However, we don't want to change the existing focus behavior for
           multiple-fields <input>. We'd like to focus on the last sub-field of
           an<input> with Shift + TAB focus navigation, and focus on the first
           sub-field of the <input> otherwise. So, we move focus immediately
           after the <input> gets focus.
         - We don't need the isFocusableByClickOnLabel hack any more. <input>
           elements with the multiple-fields UI are mouse-focusable.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-tabindex.html

        * html/InputType.h:
        (InputType): Add FocusDirection argument to handleFocusEvent, and remove
        unnecessary isFocusableByClickOnLabel and focus.
        * html/InputType.cpp:
        (WebCore::InputType::handleFocusEvent): Ditto.
        * html/PasswordInputType.cpp:
        (WebCore::PasswordInputType::handleFocusEvent): Follow the argument change.
        * html/PasswordInputType.h:
        (PasswordInputType): Ditto.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent):
        If this element gets focus by FocusDirectionBackward (it means the focus
        is moved from the first sub-field of the element,) move the focus
        backward once more. Otherwise, we focus on the first sub-filed of the
        element.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable):
        Make this keyboard-focusable. We have a wrong test to ensure read-only
        input does NOT get focus. We'll address it later.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isMouseFocusable):
        Make this mouse-focusable.
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType):

        * html/HTMLInputElement.h:
        (HTMLInputElement): Remove defaultFocus, focus, and isFocusableByClickOnLabel.
        Add missing OVERRIDE to handleFocusEvent.
        * html/HTMLInputElement.cpp: Remove unnecessary functions.
        (WebCore::HTMLInputElement::handleFocusEvent):
        Pass FocusDirection value to InputTYpe::handleFocusEvent.

        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::defaultEventHandler):
        Use isMouseFocusable().
        * html/HTMLElement.cpp: Remove unnecessary isFocusableByClickOnLabel.
        * html/HTMLElement.h: Ditto.

2013-02-04  Seulgi Kim  <seulgikim@company100.net>

        Coordinated Graphics: crash in TiledBackingStore::adjustForContentsRect
        https://bugs.webkit.org/show_bug.cgi?id=107639

        Reviewed by Kenneth Rohde Christiansen.

        In TiledBackingStore::adjustForContentsRect method, inflating is not
        needed when there is no intersections between the cover/keep rect and
        the content rect.

        No new tests, no change in functionality.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::adjustForContentsRect):

2013-02-04  Stephen White  <senorblanco@chromium.org>

        [skia] Remove use of SkSingleInputImageFilter.
        https://bugs.webkit.org/show_bug.cgi?id=108867

        Reviewed by James Robinson.

        This class is but a hollow shell of its former self, and has
        been removed in Skia.

        Covered by existing tests in css3/filters.

        * platform/graphics/filters/skia/DropShadowImageFilter.cpp:
        (WebCore::DropShadowImageFilter::DropShadowImageFilter):
        (WebCore::DropShadowImageFilter::onFilterImage):
        * platform/graphics/filters/skia/DropShadowImageFilter.h:

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        Implement WheelEvent::deltaMode
        https://bugs.webkit.org/show_bug.cgi?id=108455

        Reviewed by Adam Barth.

        Per the spec, WheelEvent::deltaMode should return
        DOM_DELTA_PIXEL or DOM_DELTA_LINE or DOM_DELTA_PAGE.

        Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
        https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#constructor-wheelevent

        Test: fast/event/wheel-event-constructor.html

        * dom/WheelEvent.cpp:
        (WebCore::WheelEventInit::WheelEventInit):
        (WebCore::WheelEvent::WheelEvent):
        (WebCore::WheelEvent::initWheelEvent):
        (WebCore::deltaMode):
        * dom/WheelEvent.h:
        (WheelEventInit):
        (WebCore::WheelEvent::create):
        (WebCore::WheelEvent::deltaMode):
        (WheelEvent):
        * dom/WheelEvent.idl:
        * page/EventHandler.cpp:
        (WebCore::wheelGranularityToScrollGranularity):

2013-02-04  Gustavo Noronha Silva  <gns@gnome.org>

        [Soup] Remove duplicate setting of first party for cookies
        https://bugs.webkit.org/show_bug.cgi?id=108814

        Reviewed by Martin Robinson.

        Covered by existing tests.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::createSoupMessageForHandleAndRequest): there is no need to set
        the first party for cookies here, since that is already done in
        ResourceRequest::updateSoupMessage, which is called a few lines before.

2013-02-04  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
        https://bugs.webkit.org/show_bug.cgi?id=105552

        Reviewed by Philippe Normand.

        Makes it possible for the GStreamer media backend to provide the buffer to which
        the Soup networking backend will use to download data to. This makes copying
        memory unnecessary when ResourceHandle hands data over to the media player's
        StreamingClient. Thanks to Dan Winship for help designing the interface.

        No behaviour change, covered by existing tests.

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (createGstBufferForData): New helper to create a GstBuffer when
        we have a data pointer and a length.
        (getGstBufferSize): Abstract obtaining the size of the buffer, so the code
        is cleaner while still working for both GST 0.10 and 1.0.
        (setGstBufferSize): Ditto, but for setting the size.
        (getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
        (mapGstBuffer): Convenience method to take care of mapping the buffer so that
        we can provide the data pointer to ResourceHandle.
        (unmapGstBuffer): Convenience method which takes care of unmapping the buffer
        and properly freeing the GstMapInfo.
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (StreamingClient): New methods.
        (_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
        so we can later unmap it and push it to the pipeline.
        (webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
        destroyed.
        (webKitWebSrcStop): Also clear the GstBuffer in this case.
        (StreamingClient::didReceiveData): Handle the hand-over of the buffer.
        (StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
        * platform/network/ResourceHandleClient.h:
        (ResourceHandleClient):
        (WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
        member variable to 0.
        (WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
        has been allocated.
        (WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
        newly allocated char pointer.
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
        buffer is handled by the ResourceHandleClient.
        (WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
        (WebCore::sendRequestCallback): Ditto.
        (WebCore::readCallback): Ditto.

2013-02-04  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move WorkerContextProxy to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=108847

        Reviewed by Adam Barth.

        Part of a larger refactoring series; see tracking bug 106829.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * workers/chromium: Added.
        * workers/chromium/WorkerContextProxyChromium.cpp: Added.
        (WebCore):
        (WebCore::setWorkerContextProxyCreateFunction):
        (WebCore::WorkerContextProxy::create):
        * workers/chromium/WorkerContextProxyChromium.h: Added.
        (WebCore):

2013-02-04  Dima Gorbik  <dgorbik@apple.com>

        WebVTT <i>, <b> and <u> elements should have default styles
        https://bugs.webkit.org/show_bug.cgi?id=107214

        Reviewed by Darin Adler.

        Added default styles for basic webvtt object types.

        Test: media/track/track-css-matching-default.html

        * css/mediaControls.css:
        (video::-webkit-media-text-track-container b):
        (video::-webkit-media-text-track-container u):
        (video::-webkit-media-text-track-container i):

2013-02-04  Abhishek Arya  <inferno@chromium.org>

        Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
        https://bugs.webkit.org/show_bug.cgi?id=108668

        Reviewed by Eric Seidel.

        * bindings/v8/SerializedScriptValue.cpp:
        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcExpressionNodeParser::parseCalc):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::fillImageSet):
        (WebCore::CSSImageSetValue::customCssText):
        * css/CSSParserValues.h:
        (WebCore::CSSParserString::operator[]):
        * css/CSSValueList.h:
        (WebCore::CSSValueListInspector::item):
        * css/StyleSheetContents.cpp:
        (WebCore::StyleSheetContents::ruleAt):
        (WebCore::StyleSheetContents::wrapperInsertRule):
        (WebCore::StyleSheetContents::wrapperDeleteRule):
        * dom/Document.cpp:
        (WebCore::Document::processArguments):
        * dom/Element.cpp:
        (WebCore::Element::removeAttributeInternal):
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::removeAttribute):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::attributeItem):
        * dom/SpaceSplitString.h:
        (WebCore::SpaceSplitStringData::operator[]):
        (WebCore::SpaceSplitString::operator[]):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::characterAt):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::removeFormElement):
        * html/HTMLSelectElementWin.cpp:
        (WebCore::HTMLSelectElement::platformHandleKeydownEvent):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        * html/parser/HTMLFormattingElementList.cpp:
        (WebCore::HTMLFormattingElementList::swapTo):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::styleSheetTextWithChangedStyle):
        * inspector/InspectorStyleTextEditor.cpp:
        (WebCore::InspectorStyleTextEditor::replaceProperty):
        * inspector/InspectorValues.cpp:
        (WebCore::InspectorArrayBase::get):
        * page/WindowFeatures.cpp:
        (WebCore::WindowFeatures::WindowFeatures):
        * platform/audio/AudioArray.h:
        (WebCore::AudioArray::at):
        * platform/audio/AudioFIFO.cpp:
        (WebCore::AudioFIFO::findWrapLengths):
        * platform/graphics/GlyphPage.h:
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::glyphAt):
        (WebCore::GlyphPage::setGlyphDataForIndex):
        * platform/graphics/TextRun.h:
        (WebCore::TextRun::operator[]):
        (WebCore::TextRun::data8):
        (WebCore::TextRun::data16):
        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::setDrawRange):
        * platform/graphics/openvg/TiledImageOpenVG.cpp:
        (WebCore::TiledImageOpenVG::setTile):
        (WebCore::TiledImageOpenVG::tile):
        * platform/image-decoders/ico/ICOImageDecoder.cpp:
        (WebCore::ICOImageDecoder::decodeAtIndex):
        (WebCore::ICOImageDecoder::imageTypeAtIndex):
        * platform/text/QuotedPrintable.cpp:
        (WebCore::lengthOfLineEndingAtIndex):
        * platform/text/SegmentedString.cpp:
        (WebCore::SegmentedString::advance):
        * platform/win/WebCoreTextRenderer.cpp:
        (WebCore::doDrawTextAtPoint):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::paintSelection):

2013-02-04  Nate Chapin  <japhet@chromium.org>

        REGRESSION (r137607): Loading of archives as substitute data is broken
        https://bugs.webkit.org/show_bug.cgi?id=108589

        Reviewed by Alexey Proskuryakov.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::resourceData): Return the content from
            SubstituteData as mainResourceData if present.

2013-02-04  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Heap-buffer-overflow in std::sort
        https://bugs.webkit.org/show_bug.cgi?id=108834

        Reviewed by Abhishek Arya.

        Test: fast/css-grid-layout/grid-strict-ordering-crash.html

        * rendering/RenderGrid.cpp:
        (WebCore::sortByGridTrackGrowthPotential):
        The std::sort documentation says that this function should define a *strict* weak ordering. Fixed the strict
        part of the ordering. Also moved the function definition next to where it is needed and made the GridTrack
        argument const (as it shouldn't modify them or std::sort will misbehave).

        * rendering/RenderGrid.cpp:
        (WebCore::sortByGridTrackGrowthPotential):
        (WebCore):

2013-02-04  Igor Oliveira  <igor.o@sisa.samsung.com>

        [Texmap] Implement BGRA swizzling detection
        https://bugs.webkit.org/show_bug.cgi?id=81103

        For OpenGLES if the extension EXT_texture_format_BGRA8888 is supported
        the internal and external formats need to be BGRA.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore):
        (WebCore::driverSupportsExternalTextureBGRA):
        (WebCore::driverSupportsSubImage):
        (WebCore::BitmapTextureGL::didReset):

2013-02-04  Dima Gorbik  <dgorbik@apple.com>

        class="cue" is getting some default style
        https://bugs.webkit.org/show_bug.cgi?id=108752

        Reviewed by Dean Jackson.
        
        The value variable inside the selector is used to store different information depending on the 
        type of the selector so we have to check explicitly that the selector we apply filtering to 
        matches a pseudo element.
        
        Existing tests modified to cover this case.

        * css/RuleSet.cpp:
        (WebCore::determinePropertyWhitelistType):

2013-02-04  Tom Sepez  <tsepez@chromium.org>

        [V8] Binding Integrity crash in V8HTMLEmbedElement::createWrapper
        https://bugs.webkit.org/show_bug.cgi?id=108841

        Reviewed by Adam Barth.

        * html/HTMLEmbedElement.idl:
        Quick change to IDL to disable binding check for now.
        
2013-02-04  Martin Robinson  <mrobinson@igalia.com>

        Fix GTK+ 'make dist' in preparation for the 1.11.5 release.

        * GNUmakefile.list.am:

2013-02-04  Enrica Casucci  <enrica@apple.com>

        Add specific EditActions for Bold and Italic commands.
        https://bugs.webkit.org/show_bug.cgi?id=108842.
        <rdar://problem/13098252>

        This change is required on iOS where we need to
        identify the command in order to display the correct
        message in the undo popup. It is also in line with
        what we do for underline, which already has its own
        separate EditAction.
        
        Reviewed by Ryosuke Niwa.

        No new tests. No behavior change.

        * editing/EditAction.h:
        * editing/EditorCommand.cpp:
        (WebCore::executeToggleBold):
        (WebCore::executeToggleItalic):

2013-02-04  Dima Gorbik  <dgorbik@apple.com>

        Implemet :lang() pseudo class support for the WebVTT ::cue pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=105478

        Reviewed by Antti Koivisto.

        In WebVTT lang is preprocessed and stored in the lang attribute of the element, 
        so we access it instead of walking up the tree the way it is done in HTML.

        Existing tests were modified to cover this case.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):

2013-02-04  Tim Horton  <timothy_horton@apple.com>

        Disable autoscrolling the main frame if main frame scrolling is disabled
        https://bugs.webkit.org/show_bug.cgi?id=108848
        <rdar://problem/13004059>

        Reviewed by Simon Fraser.

        Ensure that the main frame can scroll at all before allowing an autoscroll.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::canAutoscroll):

2013-02-04  Tom Sepez  <tsepez@chromiium.org>

        XSS Auditor bypass via svg tags and xlink:href
        https://bugs.webkit.org/show_bug.cgi?id=84158

        This patch adds a test for the xlink:href attribute inside of
        script tokens. The test is complicated by the namespacing; the
        xlink hrefAttr qualified name does not contain a literal "xlink"
        prefix but only the URI of the namespace.
        
        Reviewed by Adam Barth.

        Test: http/tests/security/xssAuditor/svg-script-tag.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::findAttributeWithName):
        (WebCore::XSSAuditor::filterScriptToken):

2013-02-04  Eric Carlson  <eric.carlson@apple.com>

        Update CaptionUserPreferences
        https://bugs.webkit.org/show_bug.cgi?id=108783

        Reviewed by Dean Jackson.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Mark font size as important
            when necessary.
        * page/CaptionUserPreferences.h:
        (WebCore::CaptionUserPreferences::setUserPrefersCaptions): New, allow a port to remember that
            the user has chosen to see captions.
        (WebCore::CaptionUserPreferences::setPreferredLanguage): New, allow a port to remember the
            user's preferred caption language.
        (WebCore::CaptionUserPreferences::preferredLanguages): New, return a Vector of the user's 
            preferred caption languages.
        * page/CaptionUserPreferencesMac.h:
        * page/CaptionUserPreferencesMac.mm:
        * page/PageGroup.cpp:
        (WebCore::PageGroup::captionPreferences):
        (WebCore::PageGroup::captionFontSizeScale):
        * page/PageGroup.h:
        * platform/Language.cpp:
        (WebCore::userPreferredLanguagesOverride): New, return the user preferred languages override
            used during testing.
        * platform/Language.h:
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
        (WebCore::InbandTextTrackPrivateAVFObjC::kind):

2013-02-04  Tim Horton  <timothy_horton@apple.com>

        Allow TiledCoreAnimationDrawingArea overlay layers to become tiled
        https://bugs.webkit.org/show_bug.cgi?id=108729
        <rdar://problem/13047546>

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): The "for this layer only" variant
        of flushCompositingState wasn't informing its client that it committed changes for the layer.
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): We now explicitly want to be able to have a
        GraphicsLayerCA switch into or out of tiling while being unparented (we'll get a client callback and
        swap out its parent ourselves).

2013-02-04  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Add parsing for grid-auto-flow
        https://bugs.webkit.org/show_bug.cgi?id=108397

        Reviewed by Ojan Vafai.

        Test: fast/css-grid-layout/grid-auto-flow-get-set.html

        This change adds the parsing, application and conversion back through getComputedStyle
        for the new property -webkit-grid-auto-flow, which accpets the following:

        -webkit-grid-auto-flow: none | rows | columns

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        Added code to convert the RenderStyle information back into a CSS value.

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        Implemented parsing for -webkit-grid-auto-flow.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::operator GridAutoFlow):
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        Added the conversion operators, used for parsing and getComputedStyle.

        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        Added -webkit-grid-auto-flow to the list of the not inherited properties.

        * css/CSSPropertyNames.in:
        Added the new value and keywords.

        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        Added a handler for the new CSS property.

        * rendering/style/RenderStyle.h:
        Added the usual getter / setter / initial function.

        * rendering/style/RenderStyleConstants.h:
        Added a new enum GridAutoFlow to hold the parsed value.

        * rendering/style/StyleGridData.cpp:
        (WebCore::StyleGridData::StyleGridData):
        * rendering/style/StyleGridData.h:
        (WebCore::StyleGridData::operator==):
        Updated after adding a new field for the GridAutoFlow value.

2013-02-04  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move IDBFactoryBackendInterface to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=108638

        Reviewed by Adam Barth.

        Part of a larger refactoring series; see tracking bug 106829.

        * Modules/indexeddb/chromium: Added.
        * Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.cpp: Added.
        (WebCore):
        (WebCore::setIDBFactoryBackendInterfaceCreateFunction):
        (WebCore::IDBFactoryBackendInterface::create):
        * Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.h: Added.
        (WebCore):
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:

2013-02-04  Abhishek Arya  <inferno@chromium.org>

        Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad cast in DOM, CSS, etc.
        https://bugs.webkit.org/show_bug.cgi?id=108688

        Reviewed by Eric Seidel.

        * Modules/notifications/Notification.cpp:
        (WebCore::Notification::Notification):
        (WebCore::Notification::permission):
        (WebCore::Notification::requestPermission):
        * Modules/speech/SpeechGrammar.cpp:
        (WebCore::SpeechGrammar::setSrc):
        * Modules/speech/SpeechGrammarList.cpp:
        (WebCore::SpeechGrammarList::addFromUri):
        * Modules/websockets/ThreadableWebSocketChannel.cpp:
        (WebCore::ThreadableWebSocketChannel::create):
        * accessibility/AccessibilityMenuListPopup.cpp:
        (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::cellForColumnAndRow):
        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::reattach):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::fillImageSet):
        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::reattach):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::reattach):
        * css/StyleBuilder.cpp:
        (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
        (WebCore::ApplyPropertyTextDecoration::applyValue):
        (WebCore::ApplyPropertyZoom::applyValue):
        * css/StyleResolver.cpp:
        (WebCore::createGridPosition):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
        * css/WebKitCSSFilterRule.cpp:
        (WebCore::WebKitCSSFilterRule::reattach):
        * css/WebKitCSSKeyframesRule.cpp:
        (WebCore::WebKitCSSKeyframesRule::reattach):
        * css/WebKitCSSViewportRule.cpp:
        (WebCore::WebKitCSSViewportRule::reattach):
        * editing/EditCommand.h:
        (WebCore::toSimpleEditCommand):
        * editing/visible_units.cpp:
        (WebCore::startOfParagraph):
        (WebCore::endOfParagraph):
        * html/HTMLCollection.cpp:
        (WebCore::LiveNodeListBase::setItemCache):
        * loader/ThreadableLoader.cpp:
        (WebCore::ThreadableLoader::create):
        (WebCore::ThreadableLoader::loadResourceSynchronously):
        * loader/WorkerThreadableLoader.cpp:
        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
        * page/Frame.cpp:
        (WebCore::Frame::frameForWidget):
        * platform/RefCountedSupplement.h:
        (WebCore::RefCountedSupplement::from):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::splitBlocks):
        (WebCore::RenderBlock::firstLineBlock):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::createLineBoxes):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::positionForPoint):
        * rendering/svg/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes):
        (WebCore::SVGRootInlineBox::layoutChildBoxes):
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject):
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject):
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::addToWorkerDocuments):
        (WebCore::SharedWorkerConnectTask::performTask):
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/WorkerContext.cpp:
        (WebCore::CloseWorkerContextTask::performTask):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::MessageWorkerContextTask::performTask):
        (WebCore::connectToWorkerContextInspectorTask):
        (WebCore::disconnectFromWorkerContextInspectorTask):
        (WebCore::dispatchOnInspectorBackendTask):
        * workers/WorkerScriptLoader.cpp:
        (WebCore::WorkerScriptLoader::loadSynchronously):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThreadShutdownFinishTask::performTask):
        (WebCore::WorkerThreadShutdownStartTask::performTask):

2013-02-04  Dominik Röttsches  <dominik.rottsches@intel.com>

        [Skia] Argument to HarfBuzzShaper::offsetForPosition unnecessarily truncated
        https://bugs.webkit.org/show_bug.cgi?id=108479

        Reviewed by Emil A Eklund.

        Remove a FIXME that intended to solve the value truncation.
        Should positively affect SVG text positioning.

        No new tests, partially covered by manual test
        ManualTests/harfbuzz-mouse-selection-crash.html.

        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
        (WebCore::Font::offsetForPositionForComplexText):

2013-02-04  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Create a container class for SidebarPane instances
        https://bugs.webkit.org/show_bug.cgi?id=108183

        Reviewed by Pavel Feldman.

        SidebarPaneStack is responsible for pane title bar and expand/collapse behavior (previously handled by SidebarPane).
        SidebarPanes are inserted into DOM lazily and can belong to more than one container.
        SidebarPane is ready to be displayed in other types of containers (such as tabbed pane as requested in https://bugs.webkit.org/show_bug.cgi?id=107552).
        There should be no visible changes except for one: DOM breakpoint pane expand/collapse state is no longer
        shared between Elements and Sources sidebars.

        * inspector/front-end/AuditResultView.js:
        (WebInspector.AuditResultView):
        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._addBreakpoint):
        (WebInspector.XHRBreakpointsSidebarPane.prototype.highlightBreakpoint):
        (WebInspector.EventListenerBreakpointsSidebarPane.prototype.highlightBreakpoint):
        * inspector/front-end/DOMBreakpointsSidebarPane.js:
        (WebInspector.DOMBreakpointsSidebarPane.prototype.highlightBreakpoint):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype.wasShown):
        (WebInspector.ElementsPanel.prototype.updateStyles):
        (WebInspector.ElementsPanel.prototype.updateMetrics):
        (WebInspector.ElementsPanel.prototype.updateProperties):
        (WebInspector.ElementsPanel.prototype.updateEventListeners):
        * inspector/front-end/ExtensionPanel.js:
        (WebInspector.ExtensionSidebarPane):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.wasShown):
        * inspector/front-end/SidebarPane.js:
        (WebInspector.SidebarPane):
        (WebInspector.SidebarPane.prototype.title):
        (WebInspector.SidebarPane.prototype.prepareContent):
        (WebInspector.SidebarPane.prototype.expand):
        (WebInspector.SidebarPane.prototype.onContentReady):
        (WebInspector.SidebarPane.prototype.setExpandCallback):
        (WebInspector.SidebarPane.prototype.setShowCallback):
        (WebInspector.SidebarPane.prototype.wasShown):
        (WebInspector.SidebarPaneStack):
        (WebInspector.SidebarPaneStack.prototype.wasShown):
        (WebInspector.SidebarPaneStack.prototype.addPane):
        (WebInspector.SidebarPaneStack.prototype._addTitle):
        (WebInspector.SidebarPaneStack.prototype._attachToPane):
        (WebInspector.SidebarPaneStack.prototype._isExpanded):
        (WebInspector.SidebarPaneStack.prototype._setExpanded):
        (WebInspector.SidebarPaneStack.prototype._onPaneExpanded):
        (WebInspector.SidebarPaneStack.prototype._collapsePane):
        (WebInspector.SidebarPaneStack.prototype._togglePane):
        (WebInspector.SidebarPaneStack.prototype._onTitleKeyDown):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
        (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
        (WebInspector.StylesSidebarPane.prototype.set _createNewRule):
        (WebInspector.ComputedStyleSidebarPane.prototype.prepareContent):
        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionsSidebarPane):
        (WebInspector.WatchExpressionsSidebarPane.prototype.wasShown):
        (WebInspector.WatchExpressionsSidebarPane.prototype.addExpression):
        (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
        * inspector/front-end/inspector.css:
        (.pane-title + .pane-title, .pane:not(.visible) + .pane-title, .pane-title:first-of-type):
        (.pane-title):
        (.pane-title:active):
        (.pane-title::before):
        (.pane-title.expanded::before):
        (.pane-title > select):
        (.pane-title > select:hover):
        (.pane-title > select:active):
        (.pane-title > select.select-settings):
        (.pane-title > select.select-filter):
        (.pane-title > select > option, .pane-title > select > hr):
        (.pane-title > .pane-title-button):
        (.pane-title > .pane-title-button:hover):
        (.pane-title > .pane-title-button:active, .pane-title > .pane-title-button.toggled):
        (.pane-title > .pane-title-button.add):
        (.pane-title > .pane-title-button.element-state):
        (.pane-title > .pane-title-button.refresh):
        (.pane.visible > .body):
        (.pane.visible:nth-last-of-type(1)):
        (.panel-enabler-view button:not(.status-bar-item), .pane-title-button, button.show-all-nodes):
        (.panel-enabler-view button:active:not(.status-bar-item), .pane-title-button:active, button.show-all-nodes:active):
        (body.inactive .panel-enabler-view button:not(.status-bar-item), .panel-enabler-view button:disabled:not(.status-bar-item), body.inactive .pane-title-button, .pane-title-button:disabled, body.inactive button.show-all-nodes):

2013-02-01  Emil A Eklund  <eae@chromium.org>

        Remove duplicate code in RenderBoxModelObject::computedCSSPadding*
        https://bugs.webkit.org/show_bug.cgi?id=108707

        Reviewed by Eric Seidel.
        
        The computedCSSPaddingTop/Bottom/... methods in
        RenderBoxModelObject all do pretty much exactly the same thing
        yet share no code.
        
        Break out shared code into computedCSSPadding method and have
        the top/bottom/left/right/... ones call it with the appropriate
        length value.

        No new tests, no change in functionality.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::computedCSSPadding):
        * rendering/RenderBoxModelObject.h:
        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
        (RenderBoxModelObject):

2013-02-04  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: add round braces to javascript tokenizer
        https://bugs.webkit.org/show_bug.cgi?id=108692

        Reviewed by Pavel Feldman.

        Change SourceJavascriptTokenizer.re2js file to produce "brace-start"
        and "brace-end" tokens for round braces.
        Regenerate SourceJavascriptTokenizer.js according to new re2js file.

        No new tests: no change in behaviour.

        * inspector/front-end/SourceJavaScriptTokenizer.js:
        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
        * inspector/front-end/SourceJavaScriptTokenizer.re2js:

2013-02-04  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: take page scale factor into account when updating overlay.
        https://bugs.webkit.org/show_bug.cgi?id=108831

        Reviewed by Vsevolod Vlasov.

        Otherwise, the ports that use page scale factor have broken overlay.

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::update):

2013-02-04  Dan Carney  <dcarney@google.com>

        [v8] explicit isolate parameter for MakeWeak calls
        https://bugs.webkit.org/show_bug.cgi?id=108818

        Reviewed by Kentaro Hara.

        No new tests. No change in functionality.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::weakCallback):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapper):
        (WebCore::DOMDataStore::set):
        (WebCore::DOMDataStore::setWrapperInObject):
        (DOMDataStore):
        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperMap::DOMWrapperMap):
        (WebCore::DOMWrapperMap::set):
        (WebCore::DOMWrapperMap::defaultWeakCallback):
        (DOMWrapperMap):
        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::isolatedWorldWeakCallback):
        (WebCore::DOMWrapperWorld::makeContextWeak):
        * bindings/v8/ScriptState.cpp:
        (WebCore::ScriptState::ScriptState):
        (WebCore::ScriptState::weakReferenceCallback):
        * bindings/v8/ScriptState.h:
        (ScriptState):
        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::weakEventListenerCallback):
        (WebCore::V8AbstractEventListener::V8AbstractEventListener):
        (WebCore::V8AbstractEventListener::setListenerObject):
        * bindings/v8/V8AbstractEventListener.h:
        (V8AbstractEventListener):
        * bindings/v8/V8EventListener.cpp:
        (WebCore::V8EventListener::V8EventListener):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::V8LazyEventListener):
        * bindings/v8/V8MutationCallback.cpp:
        (WebCore::V8MutationCallback::V8MutationCallback):
        * bindings/v8/V8MutationCallback.h:
        (WebCore::V8MutationCallback::create):
        (WebCore::V8MutationCallback::weakCallback):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::V8NPTemplateMap::set):
        (WebCore::V8NPTemplateMap::sharedInstance):
        (WebCore::V8NPTemplateMap::V8NPTemplateMap):
        (V8NPTemplateMap):
        (WebCore::V8NPTemplateMap::weakCallback):
        (WebCore::npObjectGetProperty):
        (WebCore):
        (WebCore::staticNPObjectMap):
        (WebCore::weakNPObjectCallback):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::cachedStringCallback):
        (WebCore::StringCache::v8ExternalStringSlow):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::WeakReferenceCallback):
        (WebCore::createInjectedScriptHostV8Wrapper):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallbackCustom):

2013-02-04  Dmitry Gozman  <dgozman@chromium.org>

        Web Inspector: Allow user to change dock side by dragging toolbar
        https://bugs.webkit.org/show_bug.cgi?id=108073

        Dragging toolbar to the right/bottom will change the dock side accordingly
        instead of changing the inspector window height (if dock to right is available).

        Reviewed by Pavel Feldman.

        No new tests, because of pure inspector UI change.

        * inspector/front-end/DockController.js:
        (WebInspector.DockController.prototype.dockSide):
        * inspector/front-end/Toolbar.js:
        (WebInspector.Toolbar):
        (WebInspector.Toolbar.prototype._isDockedToBottom):
        (WebInspector.Toolbar.prototype._isUndocked):
        (WebInspector.Toolbar.prototype._toolbarDragStart):
        (WebInspector.Toolbar.prototype._toolbarDragEnd):
        (WebInspector.Toolbar.prototype._toolbarDrag):
        (WebInspector.Toolbar.prototype._toolbarDragMoveWindow):
        (WebInspector.Toolbar.prototype._toolbarDragChangeDocking):
        (WebInspector.Toolbar.prototype._toolbarDragChangeHeight):
        * inspector/front-end/UIUtils.js:
        (WebInspector._elementDragStart):
        (WebInspector._elementDragMove):
        (WebInspector._cancelDragEvents):
        (WebInspector._elementDragEnd):

2013-02-04  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: sync list of console API methods to that used by auto-complete
        https://bugs.webkit.org/show_bug.cgi?id=108804

        Reviewed by Pavel Feldman.

        - push new method names from InjectedScriptSource to RuntimeModel;
        - add a comment to InjectedScriptSource noting the necessity of keeping lists in sync.

        * inspector/InjectedScriptSource.js:
        * inspector/front-end/RuntimeModel.js:
        (WebInspector.RuntimeModel.prototype.receivedPropertyNames):
        (WebInspector.RuntimeModel.prototype._completionsForExpression):

2013-02-04  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Minor refactorings.
        https://bugs.webkit.org/show_bug.cgi?id=108162

        Reviewed by Vsevolod Vlasov.

        Apply minor refactorings to NetworkPanel.js
        Add hint to statusbar selector buttons.

        * English.lproj/localizedStrings.js: Added hint string.
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._createStatusBarItems): Ditto.
        (WebInspector.NetworkLogView.prototype._makeHeaderFragment):
        Applied minor refactoring.
        (WebInspector.NetworkLogView.prototype._createStatusBarItems.createFilterElement):
        Ditto.
        (WebInspector.NetworkLogView.prototype._updateOffscreenRows): Ditto.
        (WebInspector.NetworkPanel.prototype._onRowSizeChanged): Ditto.

2013-02-04  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [CPU Profile] Apply minor refactorings and add JSDocs.
        https://bugs.webkit.org/show_bug.cgi?id=108437

        Reviewed by Pavel Feldman.

        CPU Profile code has obsolete inline-comments to clarify types.
        Currently we use JSDocs to specify types.

        Also applied some minor refactorings.

        * inspector/front-end/BottomUpProfileDataGridTree.js:
        (WebInspector.BottomUpProfileDataGridNode):
        Added JSDocs. Removed profileView parameter.
        (WebInspector.BottomUpProfileDataGridNode.prototype._takePropertiesFromProfileDataGridNode):
        Added JSDocs.
        (WebInspector.BottomUpProfileDataGridNode.prototype._keepOnlyChild):
        Ditto.
        (WebInspector.BottomUpProfileDataGridNode.prototype._merge):
        Ditto.
        (WebInspector.BottomUpProfileDataGridNode.prototype._sharedPopulate):
        Do not pass profileView to constructor.
        (WebInspector.BottomUpProfileDataGridTree):
        Added JSDocs. Renamed parameters.
        (WebInspector.BottomUpProfileDataGridTree.prototype.focus):
        Added JSDocs.
        (WebInspector.BottomUpProfileDataGridTree.prototype.exclude):
        Ditto.
        * inspector/front-end/CPUProfileView.js: Removed unused getter/setter.
        (WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
        Un-nested. Added JSDocs.
        (WebInspector.CPUProfileView.prototype._getBottomUpProfileDataGridTree):
        Added JSDocs. Turned to method from getter. Simplified.
        (WebInspector.CPUProfileView.prototype._getTopDownProfileDataGridTree):
        Added JSDocs. Turned to method from getter.
        (WebInspector.CPUProfileView.prototype._assignParentsInProfile):
        Optimized.
        * inspector/front-end/DataGrid.js: Added JSDocs.
        * inspector/front-end/ProfileDataGridTree.js:
        (WebInspector.ProfileDataGridNode):
        Added JSDocs. Removed profileView parameter.
        (WebInspector.ProfileDataGridNode.prototype.createCell): Added JSDocs.
        (WebInspector.ProfileDataGridNode.prototype.sort): Ditto.
        (WebInspector.ProfileDataGridNode.prototype.insertChild): Ditto.
        (WebInspector.ProfileDataGridNode.prototype.removeChild): Ditto.
        (WebInspector.ProfileDataGridNode.prototype.removeChildren):
        Added JSDocs. Removed parameter.
        (WebInspector.ProfileDataGridNode.prototype.findChild): Added JSDocs.
        (WebInspector.ProfileDataGridTree): Added JSDocs. Renamed parameter.
        * inspector/front-end/TopDownProfileDataGridTree.js:
        (WebInspector.TopDownProfileDataGridNode):
        Added JSDocs. Removed profileView parameter.
        (WebInspector.TopDownProfileDataGridNode.prototype._sharedPopulate):
        Do not pass profileView to constructor.
        (WebInspector.TopDownProfileDataGridTree):
        Added JSDocs. Renamed parameter.
        (WebInspector.TopDownProfileDataGridTree.prototype.focus):
        Added JSDocs.
        (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
        Ditto.

2013-02-04  Dan Carney  <dcarney@google.com>

        [v8] use toV8Fast in hand coded callbacks
        https://bugs.webkit.org/show_bug.cgi?id=108817

        Reviewed by Kentaro Hara.

        No new tests. No change in functionality.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::openCallback):
        (WebCore::V8DOMWindow::indexedPropertyGetter):
        (WebCore::V8DOMWindow::namedPropertyGetter):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):
        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
        (WebCore::V8Document::locationAccessorGetter):
        * bindings/v8/custom/V8EventCustom.cpp:
        (WebCore::V8Event::dataTransferAccessorGetter):
        (WebCore::V8Event::clipboardDataAccessorGetter):
        * bindings/v8/custom/V8FileReaderCustom.cpp:
        (WebCore::V8FileReader::resultAccessorGetter):
        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
        (WebCore):
        (WebCore::getNamedItems):
        (WebCore::getItem):
        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
        (WebCore::V8HTMLAllCollection::itemCallback):
        (WebCore::V8HTMLAllCollection::namedItemCallback):
        (WebCore::V8HTMLAllCollection::callAsFunctionCallback):
        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
        (WebCore::V8HTMLCanvasElement::getContextCallback):
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::V8HTMLCollection::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLElementCustom.cpp:
        (WebCore::V8HTMLElement::itemValueAccessorGetter):
        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
        (WebCore):
        (WebCore::getNamedItems):
        (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
        (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
        (WebCore::V8HTMLFormElement::indexedPropertyGetter):
        (WebCore::V8HTMLFormElement::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
        (WebCore::V8HTMLLinkElement::sizesAccessorGetter):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore):
        (WebCore::getNamedItems):
        (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
        (WebCore::V8HTMLOptionsCollection::namedItemCallback):
        (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
        (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAccessorGetter):
        (WebCore::V8MessageEvent::portsAccessorGetter):
        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
        (WebCore::V8NamedNodeMap::indexedPropertyGetter):
        (WebCore::V8NamedNodeMap::namedPropertyGetter):
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::namedPropertyGetter):
        * bindings/v8/custom/V8PopStateEventCustom.cpp:
        (WebCore::V8PopStateEvent::stateAccessorGetter):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
        (WebCore::V8StyleSheetList::namedPropertyGetter):
        * bindings/v8/custom/V8TrackEventCustom.cpp:
        (WebCore::V8TrackEvent::trackAccessorGetter):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::responseAccessorGetter):

2013-02-04  David Kilzer  <ddkilzer@apple.com>

        Remove duplicate entry from WebCore Xcode project

            $ uniq Source/WebCore/WebCore.xcodeproj/project.pbxproj | diff -u - Source/WebCore/WebCore.xcodeproj/project.pbxproj | patch -p0 -R
            patching file Source/WebCore/WebCore.xcodeproj/project.pbxproj

        * WebCore.xcodeproj/project.pbxproj: Remove duplicate.

2013-02-04  David Kilzer  <ddkilzer@apple.com>

        Sort WebCore Xcode project file

        * WebCore.xcodeproj/project.pbxproj:

2013-02-04  Dan Carney  <dcarney@google.com>

        [v8] disable ascii check once latin-1 is enabled in v8
        https://bugs.webkit.org/show_bug.cgi?id=108805

        Reviewed by Kentaro Hara.

        No new tests. No change in functionality.

        * bindings/v8/V8ValueCache.cpp:
        (WebCore::makeExternalString):

2013-02-04  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: make tabbed pane header a relayout boundary.
        https://bugs.webkit.org/show_bug.cgi?id=108650

        Reviewed by Alexander Pavlov.

        Otherwise, its measure width routine causes total reflow.

        * inspector/front-end/tabbedPane.css:
        (.tabbed-pane-header):

2013-02-04  Hayato Ito  <hayato@chromium.org>

        Split InspectorCSSOMWrappers out from StyleResolver.h into its own file.
        https://bugs.webkit.org/show_bug.cgi?id=108797

        Reviewed by Hajime Morita.

        This is a following patch after r141373. Now we can have
        InspectorCSSOMWrappers in its own file since CSSDefaultStyleSheets
        was factored out from StyleResolver.cpp in r141733.

        WebCore/inspector/ directory is used for basic inspector
        functionalities. Therefore, I've put
        InspectorCSSOMWrappers.{h,cpp} in WebCore/css/ rather than
        WebCore/inspector/.

        No new tests, refactoring only.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/InspectorCSSOMWrappers.cpp: Added.
        (WebCore):
        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetIfNeeded):
        (WebCore::InspectorCSSOMWrappers::collect):
        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents):
        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheets):
        (WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection):
        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
        (WebCore::InspectorCSSOMWrappers::reportMemoryUsage):
        * css/InspectorCSSOMWrappers.h: Added.
        (WebCore):
        (InspectorCSSOMWrappers):
        * css/StyleResolver.cpp:
        * css/StyleResolver.h:

2013-02-04  Balazs Kelemen  <kbalazs@webkit.org>

        [Soup] Wrap SoupSession by NetworkStorageSession
        https://bugs.webkit.org/show_bug.cgi?id=108615

        Reviewed by Alexey Proskuryakov.

        Implement NetworkStorageSession for ports using soup. It has been
        separated from NetworkingContext, so now we have a default storage
        session, which is the same as before but now wrapped with NetworkStorageSession,
        and it can be overridden by the networking context.

        No change in behavior so no new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:
        * loader/CookieJar.cpp:
        (WebCore):
        Now we also get the storage session from the networking context
        and not the other way.

        * platform/network/NetworkStorageSession.h:
        (NetworkStorageSession):
        (WebCore::NetworkStorageSession::setSoupSession):
        (WebCore::NetworkStorageSession::soupSession):
        Hold a SoupSession pointer for ports using soup. Added a setter because it is
        necessary for API's that allow it to be specified per page, like EFL WK1.

        * platform/network/NetworkingContext.h:
        (NetworkingContext):
        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::cookieJarForSession):
        * platform/network/soup/NetworkStorageSessionSoup.cpp: Copied from Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp.
        (WebCore::NetworkStorageSession::NetworkStorageSession):
        (WebCore::NetworkStorageSession::defaultStorageSession):
        (WebCore::NetworkStorageSession::createDefaultSession):
        (WebCore::NetworkStorageSession::createPrivateBrowsingSession):
        (WebCore::NetworkStorageSession::switchToNewTestingSession):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::sessionFromContext):

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:
        * loader/CookieJar.cpp:
        (WebCore):
        * platform/network/NetworkStorageSession.h:
        (NetworkStorageSession):
        (WebCore::NetworkStorageSession::setSoupSession):
        (WebCore::NetworkStorageSession::soupSession):
        * platform/network/NetworkingContext.h:
        (NetworkingContext):
        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::cookieJarForSession):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::sessionFromContext):

2013-02-04  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: source location in statusbar has few bugs in it
        https://bugs.webkit.org/show_bug.cgi?id=108748

        Reviewed by Vsevolod Vlasov.

        Call super method statusBarItems in SnippetJavaScriptSourceFrame class
        and merge its results. Fix css styles for source location in statusbar
        and rename its css class into a less confusing name.

        No new test: no change in behaviour.

        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
        (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame):
        * inspector/front-end/inspector.css:
        (.source-frame-cursor-position):

2013-02-04  Mike West  <mkwst@chromium.org>

        Cleanup: Normalize usage of ExceptionCode in ContainerNode::checkXxxChild()
        https://bugs.webkit.org/show_bug.cgi?id=108766

        Reviewed by Kentaro Hara.

        This patch refactors checkAddChild and checkReplaceChild to remove the
        creation of an extra ExceptionCode that's not necessary for the
        desired behavior, and to bring the ExceptionCode usage into line with
        the rest of WebKit (this was the only case where ExceptionCode was
        assigned inside an 'if' statement's condition).

        After this patch, 'ec' will always be assigned a value, even if the
        result of 'checkAcceptChild' is 0. This would only change behavior if
        'ec' was non-zero coming into the function, and 'checkAcceptChild'
        returned 0. Since every callsite is either directly after an explicit
        zeroing of 'ec', or after an 'if (ec)' clause, that case should never
        appear. This patch, therefore, shouldn't visibly change WebKit's
        behavior.

        * dom/ContainerNode.cpp:
        (WebCore::checkAddChild):
        (WebCore::checkReplaceChild):

2013-02-03  David Kilzer  <ddkilzer@apple.com>

        Upstream ENABLE_PDFKIT_PLUGIN settting
        <http://webkit.org/b/108792>

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig: Disable PDFKIT_PLUGIN
        on iOS since PDFKit is a Mac-only framework.

2013-02-03  Takashi Sakamoto  <tasak@google.com>

        Split per-resolve logic out from StyleResolver.
        https://bugs.webkit.org/show_bug.cgi?id=96421

        Reviewed by Eric Seidel.

        Implemented class StyleResolver::State and added m_state to
        StyleResolver. All member variables used for per-resolve logic are
        moved into the state class.

        No new tests, because just refactoring.

        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::collectMatchingRulesForRegion):
        (WebCore::StyleResolver::sortAndTransferMatchedRules):
        (WebCore::StyleResolver::matchScopedAuthorRules):
        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
        (WebCore::StyleResolver::matchHostRules):
        (WebCore::StyleResolver::matchAuthorRules):
        (WebCore::StyleResolver::matchUserRules):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::sortMatchedRules):
        (WebCore::StyleResolver::matchAllRules):
        (WebCore::StyleResolver::initElement):
        (WebCore::StyleResolver::initForStyleResolve):
        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
        (WebCore::StyleResolver::canShareStyleWithControl):
        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::locateSharedStyle):
        (WebCore::StyleResolver::styleForElement):
        (WebCore::StyleResolver::styleForKeyframe):
        (WebCore::StyleResolver::pseudoStyleForElement):
        (WebCore::StyleResolver::styleForPage):
        (WebCore::StyleResolver::defaultStyleForElement):
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::StyleResolver::updateFont):
        (WebCore::StyleResolver::cacheBorderAndBackground):
        (WebCore::StyleResolver::pseudoStyleRulesForElement):
        (WebCore::StyleResolver::ruleMatches):
        (WebCore::StyleResolver::checkRegionSelector):
        (WebCore::StyleResolver::applyProperties):
        (WebCore::StyleResolver::applyMatchedProperties):
        (WebCore::StyleResolver::isLeftPage):
        (WebCore::StyleResolver::applyPropertyToStyle):
        (WebCore::StyleResolver::useSVGZoomRules):
        (WebCore::createGridTrackBreadth):
        (WebCore::createGridTrackMinMax):
        (WebCore::createGridTrackGroup):
        (WebCore::createGridTrackList):
        (WebCore::StyleResolver::resolveVariables):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::cachedOrPendingFromValue):
        (WebCore::StyleResolver::generatedOrPendingFromValue):
        (WebCore::StyleResolver::setOrPendingFromValue):
        (WebCore::StyleResolver::cursorOrPendingFromValue):
        (WebCore::StyleResolver::checkForTextSizeAdjust):
        (WebCore::StyleResolver::initializeFontStyle):
        (WebCore::StyleResolver::setFontSize):
        (WebCore::StyleResolver::colorFromPrimitiveValue):
        (WebCore::StyleResolver::loadPendingSVGDocuments):
        (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
        (WebCore::StyleResolver::loadPendingShaders):
        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
        (WebCore::StyleResolver::createFilterOperations):
        (WebCore::StyleResolver::loadPendingImage):
        (WebCore::StyleResolver::loadPendingImages):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::style):
        (WebCore::StyleResolver::parentStyle):
        (WebCore::StyleResolver::rootElementStyle):
        (WebCore::StyleResolver::element):
        (WebCore::StyleResolver::setFontDescription):
        (WebCore::StyleResolver::setZoom):
        (WebCore::StyleResolver::setEffectiveZoom):
        (WebCore::StyleResolver::setTextSizeAdjust):
        (WebCore::StyleResolver::setWritingMode):
        (WebCore::StyleResolver::setTextOrientation):
        (WebCore::StyleResolver::hasParentNode):
        (WebCore::StyleResolver::addMatchedRule):
        (StyleResolver):
        (State):
        (WebCore::StyleResolver::State::State):
        (WebCore::StyleResolver::applyPropertyToRegularStyle):
        (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
        Added "m_state." to access member variables used for per-resolve logic.

2013-02-03  Kent Tamura  <tkent@chromium.org>

        Support setLangAttributeAwareFormControlUIEnabled on Chromium Windows XP
        https://bugs.webkit.org/show_bug.cgi?id=108791

        Reviewed by Kentaro Hara.

        We didn't support setLangAttributeAwareFormControlUIEnabled(true) on
        Chromium Windows XP because of lack of LocaleNameToLCID API. This change
        add manual mapping from locale names to LCIDs for Windows XP.

        No new tests. This doesn't make any behavior changes in products, and
        this improves some test results.

        * platform/text/win/LocaleWin.cpp:
        (WebCore): Define NameToLCIDMap.
        (WebCore::removeLastComponent):
        Remove the last component separated with '-'.
        (WebCore::ensureNameToLCIDMap):
        Add locale names used in layout tests.
        (WebCore::convertLocaleNameToLCID):
        Find an appropriate LCID longest matching with the specified locale name.
        (WebCore::LCIDFromLocale):
        Use convertLocaleNameToLCID if LocaleNameToLCID is not available.

2013-02-03  Kent Tamura  <tkent@chromium.org>

        Add FocusDirection argument to HTMLTextFormControlElement::handleFocusEvent
        https://bugs.webkit.org/show_bug.cgi?id=108775

        Reviewed by Hajime Morita.

        We'd like to add a FocusDirection argument to
        HTMLTextFormControlElement::handleFocusEvent in order to fix Bug
        108447. This is a preparation for it.

        We need to add FocusDirection arguments to some focus-related functions
        to pass it correctly when TAB or Shift+TAB is pressed.

        No new tests. This doesn't make any behavior changes.

        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
        To pass the FocusDirection argument to handleFocusEvent, we need to add
        it to dispatchFocusEvent too.
        * html/HTMLTextFormControlElement.h:
        (HTMLTextFormControlElement):
        Add FocusDirection arugment to dispatchFocusEvent.
        (WebCore::HTMLTextFormControlElement::handleFocusEvent):
        Add FocusDirection argument.

        * dom/Node.cpp:
        (WebCore::Node::dispatchFocusEvent): Add FocusDirection argument.
        * dom/Node.h:
        (Node): Ditto.

        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode): Add FocusDirection argument in
        order to pass it to Node::dispatchFocusEvent.
        * dom/Document.h:
        (Document): Ditto.

        * page/FocusController.cpp:
        (WebCore::dispatchEventsOnWindowAndFocusedNode):
        Adjust Node::dispatchFocusEvent argument.
        (WebCore::FocusController::advanceFocusInDocumentOrder):
        Pass FocusDirectio to Element::focus.
        (WebCore::FocusController::setFocusedNode):
        Add FocusDirection argument in order to pass it to Document::setFocusedNode.
        (WebCore::FocusController::advanceFocusDirectionallyInContainer):
        Pass FocusDirectio to Element::focus.
        * page/FocusController.h:
        (FocusController): Add FocusDirection argument to setFocusedNode.

        * dom/Element.cpp:
        (WebCore::Element::focus):
        Add FocusDirection argument to pass it to FocusController::setFocusedNode.
        * dom/Element.h:
        (Element): Ditto.

        * WebCore.exp.in:
        Update FocusController::setFocusedNode and Document::setFocusedNode.

        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::focus): Adjust FocusDirection argument.
        * html/HTMLLabelElement.h:
        (HTMLLabelElement): Ditto.
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::focus): Ditto.
        * html/HTMLLegendElement.h:
        (HTMLLegendElement): Ditto.
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::dispatchFocusEvent): Ditto.
        * html/HTMLSelectElement.h:
        (HTMLSelectElement): Ditto.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::defaultFocus):
        Add FocusDirection argument in order to pass it from
        HTMLInputElement::focus() to HTMLTextFormControlElement::focus().
        (WebCore::HTMLInputElement::focus):
        Pass the FocusDirection argument to InputType::focus. See above.
        (WebCore::HTMLInputElement::handleFocusEvent):
        Adjust FocusDirection argument.
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/InputType.cpp:
        (WebCore::InputType::focus): Add FocusDirection argument.
        * html/InputType.h:
        (InputType): Ditto.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::focus):
        Add FocusDirection argument to follow InputType.
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType): Ditto.

2013-02-03  Kassy Coan  <kassycoan@chromium.org>

        Adds usage instrumentation for indexedDB
        Includes new header file in project files

        https://bugs.webkit.org/show_bug.cgi?id=107772

        Reviewed by Tony Chang.

        Currently untestable. Has zero effect apart from histogramming.

        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::openInternal):
        (WebCore::IDBFactory::deleteDatabase):
        * Modules/indexeddb/IDBHistograms.h: Added.
        (WebCore):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2013-02-03  Hayato Ito  <hayato@chromium.org>

        Split default style-sheet statics out from StyleResolver into its own class
        https://bugs.webkit.org/show_bug.cgi?id=107780

        Reviewed by Dimitri Glazkov.

        Factored static variables and logic about default style sheets out from StyleResolver into its own class
        CSSDefaultStyleSheets. This is a following patch after r141373.

        No new tests, refactoring only.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/CSSDefaultStyleSheets.cpp: Added.
        (WebCore):
        (WebCore::elementCanUseSimpleDefaultStyle):
        (WebCore::screenEval):
        (WebCore::printEval):
        (WebCore::parseUASheet):
        (WebCore::CSSDefaultStyleSheets::initDefaultStyle):
        (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
        (WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
        (WebCore::CSSDefaultStyleSheets::viewSourceStyle):
        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
        * css/CSSDefaultStyleSheets.h: Added.
        (WebCore):
        (CSSDefaultStyleSheets):
        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::styleForElement):
        (WebCore::StyleResolver::styleForPage):
        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
        (WebCore::StyleResolver::collectFeatures):
        (WebCore::StyleResolver::reportMemoryUsage):

2013-02-03  Kentaro Hara  <haraken@chromium.org>

        [V8] Simplify CodeGeneratorV8.pm by using InheritsExtendedAttribute("EventTarget")
        https://bugs.webkit.org/show_bug.cgi?id=108441

        Reviewed by Adam Barth.

        A complicated condition in GetInternalFields() can be simplified
        by using InheritsExtendedAttribute("EventTarget").

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetInternalFields):
        * dom/EventTarget.idl: Added [EventTarget] which should have been added.
        * svg/SVGElementInstance.idl: Ditto.

2013-02-03  Gustavo Noronha Silva  <gns@gnome.org>

        [Soup] Do not use local variables for the client
        https://bugs.webkit.org/show_bug.cgi?id=108714

        Reviewed by Martin Robinson.

        Covered by existing tests, refactoring code only.

        We have had problems in the past with the client being destroyed or
        changed inside a method or function, and we ended up with a stale
        pointer, leading to crashes. This refactoring is an effort to minimize
        the possibility of hitting that same issue in the future.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::redirectSkipCallback): no longer use a local variable to hold
        the client.
        (WebCore::wroteBodyDataCallback): ditto.
        (WebCore::nextMultipartResponsePartCallback): ditto.
        (WebCore::sendRequestCallback): ditto.
        (WebCore::closeCallback): ditto.
        (WebCore::readCallback): ditto.

2013-02-03  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to HasInstance() (part 1)
        https://bugs.webkit.org/show_bug.cgi?id=108617

        Reviewed by Adam Barth.

        This is one of efforts to pass an Isolate to GetTemplate().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (JSValueToNative):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::Float64ArrayV8Internal::fooCallback):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
        (WebCore::TestObjV8Internal::mutablePointAttrSetter):
        (WebCore::TestObjV8Internal::immutablePointAttrSetter):
        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
        (WebCore::TestObjV8Internal::convert1Callback):
        (WebCore::TestObjV8Internal::convert2Callback):
        (WebCore::TestObjV8Internal::convert4Callback):
        (WebCore::TestObjV8Internal::convert5Callback):
        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitNodeWrappers):
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::SerializedScriptValue):
        (WebCore::SerializedScriptValue::deserialize):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toDOMStringList):
        (WebCore::toXPathNSResolver):
        * bindings/v8/V8Binding.h:
        (WebCore):
        * bindings/v8/V8Collection.cpp:
        (WebCore::toOptionsCollectionSetter):
        * bindings/v8/V8GCController.cpp:
        (WebCore::WrapperVisitor::WrapperVisitor):
        (WrapperVisitor):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::npObjectInvokeImpl):
        * bindings/v8/V8Utilities.cpp:
        (WebCore::extractTransferables):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):

2013-02-03  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] Make distcheck fails
        https://bugs.webkit.org/show_bug.cgi?id=108756

        Reviewed by Kentaro Hara.

        * GNUmakefile.list.am: Remove header files which no longer exist;
        correct one which got added incorrectly.

2013-02-03  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to HasInstance() (part 3)
        https://bugs.webkit.org/show_bug.cgi?id=108622

        Reviewed by Adam Barth.

        This is one of efforts to pass an Isolate to GetTemplate().

        No tests. No change in behavior.

        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallback):
        (WebCore::V8InjectedScriptHost::typeCallback):
        (WebCore::V8InjectedScriptHost::getEventListenersCallback):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::V8Node::insertBeforeCallback):
        (WebCore::V8Node::replaceChildCallback):
        (WebCore::V8Node::removeChildCallback):
        (WebCore::V8Node::appendChildCallback):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toWebGLUniformLocation):
        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
        (WebCore::V8WebGLRenderingContext::getUniformCallback):
        (WebCore::vertexAttribAndUniformHelperf):
        (WebCore::uniformHelperi):
        (WebCore::uniformMatrixHelper):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::isDocumentType):
        (WebCore::V8XMLHttpRequest::sendCallback):

2013-02-03  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to HasInstance() (part 2)
        https://bugs.webkit.org/show_bug.cgi?id=108620

        Reviewed by Adam Barth.

        This is one of efforts to pass an Isolate to GetTemplate().

        No tests. No change in behavior.

        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::constructWebGLArray):
        (WebCore::setWebGLArrayHelper):
        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
        (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
        * bindings/v8/custom/V8BlobCustom.cpp:
        (WebCore::V8Blob::constructorCallbackCustom):
        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
        (WebCore::toCanvasStyle):
        (WebCore::V8CanvasRenderingContext2D::strokeStyleAccessorSetter):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        (WebCore::V8Clipboard::setDragImageCallback):
        * bindings/v8/custom/V8CryptoCustom.cpp:
        (WebCore::V8Crypto::getRandomValuesCallback):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::constructorCallbackCustom):
        (WebCore::V8DOMFormData::appendCallback):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::constructorCallbackCustom):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):
        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
        (WebCore::V8HTMLMediaElement::controllerAccessorSetter):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::addCallback):
        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
        (WebCore::removeElement):

2013-02-03  Mike West  <mkwst@chromium.org>

        Cleanup: 'ExceptionCode& ec', not 'ExceptionCode &ec'.
        https://bugs.webkit.org/show_bug.cgi?id=108769

        Reviewed by Eric Seidel.

        Does what it says on the tin: reference parameters should read
        'type& name', and this patch fixes the two occurances of 'type &name'
        that cropped up for ExceptionCode.

        Pure style change; no effect on behavior.

        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):

2013-02-02  Jun Jiang  <jun.a.jiang@intel.com>

        Optimize some operations for float type in texture format conversions of WebGL
        https://bugs.webkit.org/show_bug.cgi?id=107526

        Reviewed by Darin Adler.

        Some small changes are made to optimize the operations for float type in the texture format conversion of WebGL to improve performance.

        Already covered by current tests.

        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore):

2013-02-02  Simon Fraser  <simon.fraser@apple.com>

        Clean up the storage of dirty bits on nodes in the scrolling state tree
        https://bugs.webkit.org/show_bug.cgi?id=108744

        Reviewed by Sam Weinig.

        ScrollingStateNode and its subclasses used different techniques for
        tracking which properties changed. ScrollingStateNode tracked its layers
        via a bool member and some layer-specific methods, but also had virtual
        methods to allow subclasses to track properties via a bit mask.
        
        Clean this up by having the base class store the bit mask, and use
        enums to specify bits for the various properties. All properties are thus
        tracked in the same way. Bits are read and written through non-virtual member
        functions on ScrollingStateNode. All bit checking is done via hasChangedProperty().

        * page/scrolling/ScrollingStateFixedNode.cpp:
        (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode): m_changedProperties is now on the base class.
        (WebCore::ScrollingStateFixedNode::updateConstraints): Use setPropertyChanged()
        * page/scrolling/ScrollingStateFixedNode.h: Remove overrides that are no longer needed.
        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::ScrollingStateNode): Initialize m_changedProperties,
        m_scrollLayerDidChange no longer tracked separately.
        (WebCore::ScrollingStateNode::cloneAndReset):
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::ScrollingStateNode::hasChangedProperties):
        (WebCore::ScrollingStateNode::hasChangedProperty): Tests the bit.
        (WebCore::ScrollingStateNode::resetChangedProperties): Set all bits to 0.
        (WebCore::ScrollingStateNode::setPropertyChanged): Set the bit.
        (WebCore::ScrollingStateNode::changedProperties): Private to discourage incorrect usage
        (changeProperties() & foo).
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): Base class does the copying now.
        (WebCore::ScrollingStateScrollingNode::setViewportRect): Use setPropertyChanged().
        (WebCore::ScrollingStateScrollingNode::setContentsSize): Ditto.
        (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Etc.
        (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
        (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
        (WebCore::ScrollingStateScrollingNode::setShouldUpdateScrollLayerPositionOnMainThread):
        (WebCore::ScrollingStateScrollingNode::setHorizontalScrollElasticity):
        (WebCore::ScrollingStateScrollingNode::setVerticalScrollElasticity):
        (WebCore::ScrollingStateScrollingNode::setHasEnabledHorizontalScrollbar):
        (WebCore::ScrollingStateScrollingNode::setHasEnabledVerticalScrollbar):
        (WebCore::ScrollingStateScrollingNode::setHorizontalScrollbarMode):
        (WebCore::ScrollingStateScrollingNode::setVerticalScrollbarMode):
        (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
        (WebCore::ScrollingStateScrollingNode::setScrollOrigin):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (ScrollingStateScrollingNode):
        * page/scrolling/ScrollingStateStickyNode.cpp:
        (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
        (WebCore::ScrollingStateStickyNode::updateConstraints):
        * page/scrolling/ScrollingStateStickyNode.h:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::commitNewTreeState):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::update):
        * page/scrolling/mac/ScrollingStateNodeMac.mm:
        (WebCore::ScrollingStateNode::setScrollLayer):
        * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::update):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::update):
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::update):

2013-02-02  Simon Fraser  <simon.fraser@apple.com>

        Fixed and sticky nodes have no nodeID set
        https://bugs.webkit.org/show_bug.cgi?id=108734

        Reviewed by Sam Weinig.
        
        Push ScrollingNodeIDs onto scrolling nodes at construction time, and thereafter
        treat them as readonly. Previously, only the root scrolling node would have a node ID.
        
        Node IDs aren't actually used by the scrolling tree yet, but are useful for debugging.

        Not testable since we only dump the scrolling state tree, not the scrolling
        node tree in tests.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree): No longer create the root node here;
        we can only create it when we know what its ID will be.
        (WebCore::ScrollingTree::updateTreeFromStateNode): Create the root node if
        necessary. Pass node IDs into create methods.
        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
        * page/scrolling/ScrollingTreeNode.h:
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::create):
        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNode::create):
        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::create):
        (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):

2013-02-02  Takashi Sakamoto  <tasak@google.com>

        Making -webkit-image-set() the first value of background property causes crash.
        https://bugs.webkit.org/show_bug.cgi?id=108409

        Reviewed by Beth Dakin.

        CSSParser::addFillValue should use lval->isBaseValueList() instead
        of lval->isValueList(). If lval is -webkit-image-set, rval is appended
        to -webkit-image-set.

        Test: fast/css/image-set-value-crash-in-fillImageSet.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::addFillValue):
        If lval is not a value list, lval is initialized by using
        CSSValueList::createCommaSeparated(). So we have to check whether
        lval is created by CSSValueList::createCommaSeparated() or not.

2013-02-02  David Kilzer  <ddkilzer@apple.com>

        Upstream iOS FeatureDefines
        <http://webkit.org/b/108753>

        Reviewed by Anders Carlsson.

        * Configurations/FeatureDefines.xcconfig:
        - ENABLE_DEVICE_ORIENTATION: Add iOS configurations.
        - ENABLE_PLUGIN_PROXY_FOR_VIDEO: Ditto.
        - FEATURE_DEFINES: Add ENABLE_PLUGIN_PROXY_FOR_VIDEO.  Add
          PLATFORM_NAME variant to reduce future merge conflicts. 

2013-02-02  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] Media tests fix after r141695.

        Rubber-stamped by Martin Robinson.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL): Remove
        both fragment and query string for file:// uris before loading.

2013-02-02  Patrick Gansterer  <paroga@webkit.org>

        Build fix for WinCE after r141637.

        * platform/graphics/wince/ImageBufferWinCE.cpp:

2013-02-01  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] webkitwebsrc is exposed to application-side
        https://bugs.webkit.org/show_bug.cgi?id=108088

        Reviewed by Martin Robinson.

        Switch the webkitwebsrc to handle webkit+http(s) uris so it is now
        explicit that this element is meant to be used preferrably inside
        WebKit. This change is internal to the player.

        No new tests, covered by existing http/tests/media tests.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):
        (WebCore):
        (WebCore::MediaPlayerPrivateGStreamer::load):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcGetProtocols):
        (webKitWebSrcSetUri):

2013-02-02  Simon Hausmann  <simon.hausmann@digia.com>

        Unreviewed trivial prospective build fix for A17n disabled
        configurations.

        The dummy computed object attriute cache control functions need to be defined
        as being member functions of AXObjectCache, because that's where they are
        declared.

        * accessibility/AXObjectCache.h:
        (WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
        (WebCore::AXObjectCache::stopCachingComputedObjectAttributes):

2013-02-02  Antoine Quint  <graouts@apple.com>

        Creating a WebInspector.ContextMenu without an event crashes WebCore when calling .show()
        https://bugs.webkit.org/show_bug.cgi?id=108636

        Reviewed by Pavel Feldman.

        Return early if InspectorFrontendHost::showContextMenu() is called without an event and
        assert in ContextMenuController::createContextMenu() in case no event was provided.

        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::showContextMenu):
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::createContextMenu):

2013-02-02  Jonathan Feldstein  <jfeldstein@rim.com>

        [BlackBerry] Improper initialization of ANGLEResources
        https://bugs.webkit.org/show_bug.cgi?id=101489

        Reviewed by Antonio Gomes.

        MaxDrawBuffers, OES_standard_derivatives, OES_EGL_image_external and ARB_texture_rectangle have already been initialized through ShBuiltInResources function and these fields do not need to be set again in GraphicsContext3dBlackBerry.cpp. In addition, the extension flags cannot be set to true without getExtension having been called (Khronos WebGL specs, section 5.14.14.). Thus these lines need to be removed.

        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):

2013-02-02  Vivek Galatage  <vivek.vg@samsung.com>

        Web Inspector: Refactor InspectorDOMStorageAgent::getDOMStorageEntries to report the error messages
        https://bugs.webkit.org/show_bug.cgi?id=108611

        Reviewed by Pavel Feldman.

        Added reporting of various error messages. Moved the modification of output
        parameter at a later stage when there are no errors reported.

        No new tests as code refactoring.

        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::hadException):
        (WebCore):
        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):

2013-02-02  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix bug in highlighting single chars via highlightRange API of DTE
        https://bugs.webkit.org/show_bug.cgi?id=108685

        Reviewed by Pavel Feldman.

        Use Math.min instead of Math.max in rangesForLine method.

        Updated test: text-editor-highlight-api.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.rangesForLine):

2013-02-02  Tony Gentilcore  <tonyg@chromium.org>

        Continue making XSSAuditor thread safe: Remove unsafe AtomicString compares
        https://bugs.webkit.org/show_bug.cgi?id=108557

        Reviewed by Adam Barth.

        Unfortunately HTMLNames comparisons will always be false on a non-main thread
        with our current design, so we have to use some "threadSafeMatch" helpers written
        for the HTMLBackgroundParser.

        Also factor out threadSafeMatch() methods to HTMLParserIdioms.

        No new tests because no new functionality.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore):
        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::threadSafeEqual):
        (WebCore):
        (WebCore::threadSafeMatch):
        * html/parser/HTMLParserIdioms.h:
        (WebCore):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::eraseAttributeIfInjected):

2013-02-01  James Simonsen  <simonjam@chromium.org>

        Add didChangePriority() to ResourceHandle
        https://bugs.webkit.org/show_bug.cgi?id=107995

        Reviewed by Darin Fisher.

        For PLT, it's important that preloads remain a lower priority than parser requested resources.
        This can lead to a 5% improvement.

        The plan is to use this plumbing to expose the desired behavior. This patch simply allows a
        resource's priority to change and have it propagate to the network layer. An upcoming patch will
        lower the priority of preloads and then increase the priority when the parser officially requests
        it.

        No new tests. No visible change, because priority doesn't change yet.

        * loader/cache/CachedResource.cpp:
        (WebCore):
        (WebCore::CachedResource::setLoadPriority):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource): Allow loads to modify priority.
        * loader/cache/CachedResourceRequest.h:
        (WebCore::CachedResourceRequest::setPriority): Notify when priority changes.
        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::didChangePriority): Added.
        (WebCore):
        * platform/network/ResourceHandle.h:
        (ResourceHandle):
        * platform/network/chromium/ResourceHandle.cpp:
        (WebCore::ResourceHandleInternal::didChangePriority):
        (WebCore):
        (WebCore::ResourceHandle::didChangePriority):
        * platform/network/chromium/ResourceHandleInternal.h:
        (ResourceHandleInternal):

2013-02-01  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Clean up WebCore VS2010 project.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.vcxproj/WebCoreCommon.props:
        * WebCore.vcxproj/WebCoreGenerated.make:
        * WebCore.vcxproj/WebCorePreLink.cmd: Removed.
        * WebCore.vcxproj/build-generated-files.sh:

2013-02-01  Sam Weinig  <sam@webkit.org>

        Don't use deprecated method -[NSImage dissolveToPoint:fraction:]
        <rdar://problem/11723792>
        https://bugs.webkit.org/show_bug.cgi?id=108739

        Reviewed by Anders Carlsson.

        * platform/mac/DragImageMac.mm:
        (WebCore::dissolveDragImageToFraction):
        Remove use of deprecated NSImage methods and simplify a bit.

2013-02-01  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix "DOM Exception 8" when deleting lines containing decoration in DTE.
        https://bugs.webkit.org/show_bug.cgi?id=108689

        Reviewed by Alexander Pavlov.

        Add a check that decoration element is still added to the line before trying to delete it. This
        won't be true if the whole line is deleted in contentEditable,
        and this is the reason for the exception to be thrown.

        No new tests.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainChunk.prototype.removeAllDecorations):

2013-02-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141669.
        http://trac.webkit.org/changeset/141669
        https://bugs.webkit.org/show_bug.cgi?id=108728

        Broke the windows build. (Requested by leviw on #webkit).

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
        (WebCore):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
        * rendering/RenderBoxModelObject.h:
        (RenderBoxModelObject):

2013-02-01  Emil A Eklund  <eae@chromium.org>

        Remove duplicate code in RenderBoxModelObject::computedCSSPadding*
        https://bugs.webkit.org/show_bug.cgi?id=108707

        Reviewed by Levi Weintraub.
        
        The computedCSSPaddingTop/Bottom/... methods in
        RenderBoxModelObject all do pretty much exactly the same thing
        yet share no code.
        
        Break out shared code into computedCSSPadding method and have
        the top/bottom/left/right/... ones call it with the appropriate
        length value.

        No new tests, no change in functionality.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::computedCSSPadding):
        * rendering/RenderBoxModelObject.h:
        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
        (RenderBoxModelObject):

2013-02-01  Mark Lam  <mark.lam@apple.com>

        Replace ExceptionCode with DatabaseError in the openDatabase() code path.
        https://bugs.webkit.org/show_bug.cgi?id=108724.

        Reviewed by Alexey Proskuryakov.

        Also made DatabaseBackend::performOpenAndVerify() a little more
        straightforward and less repetitive.

        No new tests.

        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
        (WebCore::DOMWindowWebDatabase::openDatabase):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::openAndVerifyVersion):
        (WebCore::Database::performOpenAndVerify):
        * Modules/webdatabase/Database.h:
        (Database):
        * Modules/webdatabase/DatabaseBackend.cpp:
        (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
        (WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
        (DoneCreatingDatabaseOnExitCaller):
        (WebCore::DoneCreatingDatabaseOnExitCaller::openSucceeded):
        (WebCore::DatabaseBackend::performOpenAndVerify):
        * Modules/webdatabase/DatabaseBackend.h:
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseManager::openDatabaseSync):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::openAndVerifyVersion):
        * Modules/webdatabase/DatabaseSync.h:
        (DatabaseSync):
        * Modules/webdatabase/DatabaseTask.cpp:
        (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
        (WebCore::Database::DatabaseOpenTask::doPerformTask):
        * Modules/webdatabase/DatabaseTask.h:
        (WebCore::Database::DatabaseOpenTask::create):
        (Database::DatabaseOpenTask):
        * Modules/webdatabase/WorkerContextWebDatabase.cpp:
        (WebCore::WorkerContextWebDatabase::openDatabase):
        (WebCore::WorkerContextWebDatabase::openDatabaseSync):
        * WebCore.gypi:

2013-02-01  Yongjun Zhang  <yongjun_zhang@apple.com>

        Document is never released if an image's src attribute is changed to a url blocked by content-security-policy.
        https://bugs.webkit.org/show_bug.cgi?id=108545

        If we just scheduled an error event due to an null newImage, we should not cancel it when newImage and oldImage
        is not the same.  Otherwise we will ref the sourceElement in updateHasPendingEvent (m_hasPendingErrorEvent is true)
        but never deref it since we already cancelled the error event.

        Reviewed by Alexey Proskuryakov.

        Test: fast/images/image-error-event-not-firing.html

        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement): don't cancel error event if newImage is null, we want the
            error event to fire.

2013-02-01  Benjamin Poulain  <bpoulain@apple.com>

        Clean the String->AtomicString conversion for AnimationController::pauseAnimationAtTime
        https://bugs.webkit.org/show_bug.cgi?id=108558

        Reviewed by Dean Jackson.

        This is a step torward killing the implicit conversion from String to AtomicString.

        The animation name are AtomicString. The API is changed all the way to the callers
        to take an AtomicString. When needed, we use explicit conversion.

        * WebCore.exp.in:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
        (WebCore::AnimationController::pauseAnimationAtTime):
        * page/animation/AnimationController.h:
        (AnimationController):
        * page/animation/AnimationControllerPrivate.h:
        (AnimationControllerPrivate):
        * page/animation/CompositeAnimation.cpp:
        (WebCore::CompositeAnimation::pauseAnimationAtTime):
        We should not null check the name. Getting a null name from the HashMap would be
        an error from the tests, and the HashMap would never return a value anyway.
        * testing/Internals.cpp:
        (WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):

2013-02-01  Dominic Mazzoni  <dmazzoni@google.com>

        AX: memoize expensive computation during blocks where tree doesn't change
        https://bugs.webkit.org/show_bug.cgi?id=106497

        Reviewed by Ryosuke Niwa.

        Add a cache for computed attributes of AXObjects.
        The cache can be enabled at the start of a batch of
        read-only operations on the accessibility tree, and
        it's cleared automatically when the tree mutates.
        Currently accessibilityIsIgnored is cached, since it's
        frequently called and relatively expensive to compute.

        No new tests.

        * accessibility/AXObjectCache.cpp:
        (WebCore):
        (WebCore::AXComputedObjectAttributeCache::getIgnored):
        (WebCore::AXComputedObjectAttributeCache::setIgnored):
        (WebCore::AXObjectCache::postNotification):
        (WebCore::AXObjectCache::nodeTextChangeNotification):
        (WebCore::AXObjectCache::handleScrollbarUpdate):
        (WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
        (WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
        * accessibility/AXObjectCache.h:
        (AXComputedObjectAttributeCache):
        (WebCore::AXComputedObjectAttributeCache::create):
        (WebCore::AXComputedObjectAttributeCache::AXComputedObjectAttributeCache):
        (WebCore::AXComputedObjectAttributeCache::CachedAXObjectAttributes::CachedAXObjectAttributes):
        (CachedAXObjectAttributes):
        (WebCore):
        (WebCore::AXObjectCache::computedObjectAttributeCache):
        (AXObjectCache):
        (WebCore::AXComputedObjectAttributeCache::getIgnored):
        (WebCore::AXComputedObjectAttributeCache::setIgnored):
        (WebCore::startCachingComputedObjectAttributesUntilTreeMutates):
        (WebCore::stopCachingComputedObjectAttributes):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::findMatchingObjects):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore):
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):

2013-02-01  Alexey Proskuryakov  <ap@apple.com>

        Build fix.

        * Modules/webdatabase/DatabaseBackend.cpp: (DoneCreatingDatabaseOnExitCaller):
        Don't fail because of an unused member variable in cross-plaform code path.

2013-02-01  Kevin Ellis  <kevers@chromium.org>

        [chromium] Fat scrollbars on Windows in high-DPI mode.
        https://bugs.webkit.org/show_bug.cgi?id=108637

        Updates mechanism for retrieving scrollbar metrics on the
        Windows port of Chromium.  Previously, GetSystemMetrics calls
        were used, which fetches prescaled sizes in pixel rather than
        logical units, resulting in a double scaling when a device
        scale factor is set.  With the patch, the size is retrieved
        from the theme engine in DIP.

        Reviewed by Adam Barth.

        No new tests.

        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore):
        (WebCore::menuListButtonWidth):

2013-02-01  Mark Lam  <mark.lam@apple.com>

        Clean up calls to DatabaseTracker::add/removeOpenDatabase().
        https://bugs.webkit.org/show_bug.cgi?id=108431

        Reviewed by Geoffrey Garen.

        Also adapted the chromium port to work with this new code.
        Chromium parts reviewed by Michael Nordman and David Levin.

        This is part of the webdatabase refactoring effort.

        No new tests.

        * Modules/webdatabase/AbstractDatabaseServer.h:
        (AbstractDatabaseServer):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::openAndVerifyVersion):
        (WebCore::Database::close):
        * Modules/webdatabase/DatabaseBackend.cpp:
        (WebCore::DatabaseBackend::DatabaseBackend):
        (WebCore::DatabaseBackend::closeDatabase):
        (DoneCreatingDatabaseOnExitCaller):
        (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
        (WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
        (WebCore::DatabaseBackend::performOpenAndVerify):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseManager::openDatabaseSync):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseServer.cpp:
        * Modules/webdatabase/DatabaseServer.h:
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::~DatabaseSync):
        (WebCore::DatabaseSync::openAndVerifyVersion):
        (WebCore::DatabaseSync::closeImmediately):
        * Modules/webdatabase/DatabaseSync.h:
        (DatabaseSync):
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::doneCreatingDatabase):
        (WebCore::DatabaseTracker::addOpenDatabase):
        * Modules/webdatabase/DatabaseTracker.h:
        (DatabaseTracker):
        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
        (WebCore::DatabaseTracker::addOpenDatabase):
        (WebCore::DatabaseTracker::prepareToOpenDatabase):
        (WebCore::DatabaseTracker::failedToOpenDatabase):

2013-02-01  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: remove extra padding around overlay highlight.
        https://bugs.webkit.org/show_bug.cgi?id=108679

        Reviewed by Alexander Pavlov.

        No new tests: no change in behaviour.

        Remove extraWidth from overlay highlight spans.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):

2013-02-01  Philip Rogers  <pdr@google.com>

        Prevent skipped repaints for children of inner SVG elements
        https://bugs.webkit.org/show_bug.cgi?id=108429

        Reviewed by Eric Seidel.

        This patch fixes a bug caused by r108699 and r133786 where we would not repaint children
        of inner SVG elements because "m_didTransformToRootUpdate" was never reset on viewport
        containers. The stale m_didTransformToRootUpdate variable caused us to skip child repaints.

        I verified that the Robohornet SVG benchmark performance gains in r133786 are not regressed
        with this patch.

        Test: svg/repaint/svgsvgelement-repaint-children.html

        * rendering/svg/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::calcViewport):

            This can be removed because setNeedsTransformUpdate() will set m_needsTransformUpdate.

        (WebCore::RenderSVGViewportContainer::calculateLocalTransform):

            This change is straightforward and is similar to the equivalent assignment in
            RenderSVGTransformableContainer::calculateLocalTransform().

2013-02-01  Philip Rogers  <pdr@google.com>

        Change hasAlpha to isKnownToBeOpaque and correct the return value for SVG images.
        https://bugs.webkit.org/show_bug.cgi?id=106966

        Reviewed by Stephen White.

        Previously, Image::currentFrameHasAlpha's default implementation returned false so SVG
        images always returned false for currentFrameHasAlpha. Additionally, currentFrameHasAlpha
        was treated as returning whether the frame had alpha when it would actually conservatively
        return true.

        This patch renames hasAlpha and currentFrameHasAlpha to isKnownToBeOpaque and
        currentFrameIsKnownToBeOpaque, respectively. This rename better describes the actual
        functionality. This patch also makes Image::isKnownToBeOpaque a pure virtual function and
        correctly implements it for SVG images.

        All users of isKnownToBeOpaque access SVG images using CachedImage::imageForRenderer which
        currently returns a cached bitmap image. Therefore, this patch will not affect existing
        functionality. A regression test has been added that will catch if this changes in the
        future (e.g., WK106159 which proposes not returning cached bitmaps). The now unnecessary
        isBitmapImage() calls have been removed in this patch.

        image-box-shadow.html has been modified to test SVG images.

        * css/CSSCrossfadeValue.cpp:
        (WebCore::subimageKnownToBeOpaque):
        (WebCore::CSSCrossfadeValue::knownToBeOpaque):

            Mostly straightforward rename but note the logic has been slightly altered: AND -> OR.

        * css/CSSCrossfadeValue.h:
        (CSSCrossfadeValue):
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::knownToBeOpaque):
        * css/CSSGradientValue.h:
        (CSSGradientValue):
        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::knownToBeOpaque):
        * css/CSSImageGeneratorValue.h:
        (CSSImageGeneratorValue):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::knownToBeOpaque):
        * css/CSSImageValue.h:
        (CSSImageValue):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::currentFrameKnownToBeOpaque):
        * loader/cache/CachedImage.h:
        (CachedImage):
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::currentFrameKnownToBeOpaque):
        * platform/graphics/BitmapImage.h:
        (BitmapImage):
        * platform/graphics/GeneratedImage.h:
        (GeneratedImage):
        * platform/graphics/Image.h:

            Note: now a pure virtual function!

        (Image):
        * platform/graphics/blackberry/LayerTiler.cpp:
        (WebCore::LayerTiler::updateTextureContentsIfNeeded):

            Removed unnecessary isBitmapImage() checks.

        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):

            Removed unnecessary isBitmapImage() checks.

        * platform/graphics/cg/PDFDocumentImage.h:
        (PDFDocumentImage):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:

            Removed unnecessary isBitmapImage() checks.

        (WebCore::GraphicsLayerChromium::setContentsToImage):
        * platform/graphics/qt/StillImageQt.cpp:
        (WebCore::StillImage::currentFrameKnownToBeOpaque):
        * platform/graphics/qt/StillImageQt.h:
        (StillImage):
        * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp:
        (WebCore::BitmapImageSingleFrameSkia::currentFrameKnownToBeOpaque):
        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
        (BitmapImageSingleFrameSkia):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperTile::updateContents):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
        (WebCore::CoordinatedImageBacking::update):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::backgroundIsObscured):

            Removed unnecessary isBitmapImage() checks and slightly reworked the logic.

        * rendering/style/FillLayer.cpp:
        (WebCore::FillLayer::hasOpaqueImage):
        * rendering/style/StyleCachedImage.cpp:
        (WebCore::StyleCachedImage::knownToBeOpaque):
        * rendering/style/StyleCachedImage.h:
        (StyleCachedImage):
        * rendering/style/StyleCachedImageSet.cpp:
        (WebCore::StyleCachedImageSet::knownToBeOpaque):
        * rendering/style/StyleCachedImageSet.h:
        (StyleCachedImageSet):
        * rendering/style/StyleGeneratedImage.cpp:
        (WebCore::StyleGeneratedImage::knownToBeOpaque):
        * rendering/style/StyleGeneratedImage.h:
        (StyleGeneratedImage):
        * rendering/style/StyleImage.h:
        (StyleImage):
        * rendering/style/StylePendingImage.h:
        (WebCore::StylePendingImage::knownToBeOpaque):
        * svg/graphics/SVGImage.h:
        (SVGImage):

2013-02-01  Brady Eidson  <beidson@apple.com>

        Clean up WebArchive loading with the NetworkProcess
        <rdar://problem/12695840> and https://bugs.webkit.org/show_bug.cgi?id=108673

        Reviewed by Alexey Proskuryakov.

        No new tests (No change in WebCore behavior).

        Remove a now unneeded function and add a needed export.

        * WebCore.exp.in:
        * loader/ResourceLoadScheduler.cpp:
        * loader/ResourceLoadScheduler.h:

2013-02-01  Alok Priyadarshi  <alokp@chromium.org>

        Print GraphicsLayer::m_contentsOpaque if non-default (true)
        https://bugs.webkit.org/show_bug.cgi?id=108354

        Reviewed by Simon Fraser.

        No new tests. This change facilitates testing of GraphicsLayer opaqueness.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::dumpProperties):

2013-02-01  Tony Gentilcore  <tonyg@chromium.org>

        Continue making XSSAuditor thread safe: Remove dependency on parser's Document URL
        https://bugs.webkit.org/show_bug.cgi?id=108655

        Reviewed by Adam Barth.

        No new tests because no new functionality.

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::XSSAuditor):
        (WebCore::XSSAuditor::init):
        (WebCore::XSSAuditor::isLikelySafeResource):
        * html/parser/XSSAuditor.h:

2013-02-01  Jer Noble  <jer.noble@apple.com>

        REGRESSION (r141281): Navigating to this HTTP Live Streaming (application/vnd.apple.mpegurl) URL downloads a file instead of playing it in the browser
        https://bugs.webkit.org/show_bug.cgi?id=108674
        <rdar://problem/13133595>

        Reviewed by Eric Carlson.

        When passed a HashSet of available MIME types to fill out, QTKit was overwriting the contents, which were
        AVFoundation's supported types. Instead, it should be appending to the list of supported types.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::concatenateHashSets): Added static utility function.
        (WebCore::MediaPlayerPrivateQTKit::getSupportedTypes): Concatenate instead of overwriting the passed in MIME types.

2013-02-01  Beth Dakin  <bdakin@apple.com>

        Another speculative windows build fix.

        * platform/ScrollAnimator.h:

2013-01-31  Dirk Schulze  <krit@webkit.org>

        [canvas] Add more constructors to Path
        https://bugs.webkit.org/show_bug.cgi?id=108587

        Reviewed by Dean Jackson.

        Add more constructors to Path object to make it possible
        to copy Path objects and parse SVG strings into a Path
        object that can be used on the canvas context afterwards.

        Test: fast/canvas/canvas-path-constructors.html

        * html/canvas/DOMPath.h: New constructors for Path.
        (WebCore::DOMPath::create):
        (WebCore::DOMPath::DOMPath):
        * html/canvas/DOMPath.idl: Ditto.

2013-02-01  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Add WTFURL source files to the build
        https://bugs.webkit.org/show_bug.cgi?id=108215

        Reviewed by Benjamin Poulain.

        * platform/KURLWTFURL.cpp:
        (WebCore): Only use the stub implementation of the fileSystemPath method for the
        Apple ports, other ports should for now still rely on their platform-specific implementations.

2013-02-01  Mike West  <mkwst@chromium.org>

        Remove call to SecurityOrigin::canAccessDatabase from IDB constructor.
        https://bugs.webkit.org/show_bug.cgi?id=108477

        Reviewed by Adam Barth.

        This change removes the 'SecurityOrigin::canAccessDatabase' check from
        the constructor for the 'indexedDB' property on both DOMWindow and
        WorkerContext. After the patch for http://wkbug.com/94171 this check
        is redundant, as all the entry points to IDB are now gated on access
        being granted.

        As a side-effect, dropping the check in WorkerContextIndexedDatabase
        allows us to stop holding a pointer to the ScriptExecutionContext we're
        extending, which can only be a good thing.

        The tests in storage/indexeddb should continue to pass.

        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
        (WebCore::DOMWindowIndexedDatabase::indexedDB):
            Drop the SecurityOrigin::canAccessDatabase check.
        * Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
        (WebCore::WorkerContextIndexedDatabase::WorkerContextIndexedDatabase):
        (WebCore::WorkerContextIndexedDatabase::from):
            Drop the ScriptExecutionContext parameter from the class's
            constructor and callsites.
        (WebCore::WorkerContextIndexedDatabase::indexedDB):
            Drop the SecurityOrigin::canAccessDatabase check.
        * Modules/indexeddb/WorkerContextIndexedDatabase.h:
        (WorkerContextIndexedDatabase):
            Drop the stored pointer to ScriptExecutionContext, as we no longer
            need it in ::indexedDB.

2013-02-01  Beth Dakin  <bdakin@apple.com>

        Speculative Windows build fix. 

        * platform/ScrollAnimator.h:
        (WebCore):

2013-02-01  Ryosuke Niwa  <rniwa@webkit.org>

        Smart link can erroneously move caret after an URL when typing immediately before it
        https://bugs.webkit.org/show_bug.cgi?id=92812

        Reviewed by Enrica Casucci.

        The bug was caused by smart link being triggered even when a user finished typing a word
        immediately before an URL. We already had a logic to avoid smart-linking an URL when the caret
        was after the URL but we were missing a check for when the caret is before the URL.

        Fixed the bug by adding this check.

        Test: editing/inserting/smart-link-when-caret-is-moved-before-URL.html

        * editing/Editor.cpp:
        (WebCore::Editor::markAndReplaceFor):

2013-02-01  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Windows build fix. FloatSize.cpp was not included in the project.

        * WebCore.vcproj/WebCore.vcproj:

2013-02-01  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] computePreferredLogicalWidths doesn't handle minmax tracks
        https://bugs.webkit.org/show_bug.cgi?id=108403

        Reviewed by Ojan Vafai.

        Test: fast/css-grid-layout/grid-preferred-logical-widths.html

        The code before this change was only handling minmax() with 2 fixed widths.
        The new code was updated to remove this artificial limitation and we now
        support all combination of minmax().

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computePreferredLogicalWidths):
        Updated to use computePreferredTrackWidth..

        (WebCore::RenderGrid::computePreferredTrackWidth):
        Added this helper function that implements the core of the preferred width
        computation.

        * rendering/RenderGrid.h: Added computePreferredTrackWidth.

2013-02-01  Nate Chapin  <japhet@chromium.org>

        Cached main resources report a zero identifer on 304s
        https://bugs.webkit.org/show_bug.cgi?id=108402

        Reviewed by Adam Barth.

        Test: http/tests/cache/iframe-304-crash.html

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::responseReceived): Throughout, check m_identifierForLoadWithoutResourceLoader
            instead of !loader() to determine whether MainResourceLoader needs to synthesize resource load callbacks.
        (WebCore::MainResourceLoader::dataReceived):
        (WebCore::MainResourceLoader::didFinishLoading):

2013-02-01  Nico Weber  <thakis@chromium.org>

        [chromium] Build webkit with enable_web_intents set to 0.
        https://bugs.webkit.org/show_bug.cgi?id=108408

        Reviewed by Tony Chang.

        I'll then make chromium build fine with that, then switch
        enable_web_intents to 0, roll that into webkit, and then
        actually remove the code hidden behind this flag.

        * bindings/v8/custom/V8IntentCustom.cpp:

2013-02-01  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: make console object state hint non-active
        https://bugs.webkit.org/show_bug.cgi?id=108642

        Reviewed by Vsevolod Vlasov.

        Otherwise it seems like an active element user could click.

        * inspector/front-end/inspector.css:
        (.object-info-state-note):

2013-02-01  Rashmi Shyamasundar  <rashmi.s2@samsung.com>

        Zero size gradient should paint nothing on canvas
        https://bugs.webkit.org/show_bug.cgi?id=102654

        Reviewed by Dirk Schulze.

        The functions fill(), fillText(), stroke(), strokeRect() and strokeText()
        should paint nothing on canvas when the canvas fillStyle/strokeStyle
        is set to a zero size gradient.
 
        Tests: fast/canvas/canvas-fill-zeroSizeGradient.html
               fast/canvas/canvas-fillRect-zeroSizeGradient.html
               fast/canvas/canvas-fillText-zeroSizeGradient.html
               fast/canvas/canvas-stroke-zeroSizeGradient.html
               fast/canvas/canvas-strokeRect-zeroSizeGradient.html
               fast/canvas/canvas-strokeText-zeroSizeGradient.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::fill):
        (WebCore::CanvasRenderingContext2D::stroke):
        (WebCore::CanvasRenderingContext2D::strokeRect):
        (WebCore::CanvasRenderingContext2D::drawTextInternal):

2013-02-01  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        HRTFElevation segfault if a null AudioBus is returned by loadPlatformResource
        https://bugs.webkit.org/show_bug.cgi?id=108504

        Reviewed by Kenneth Russell.

        Fixed a segfault by checking if the returned AudioBus is null or not.
        If it is, we should early return in the same way it was being done already
        in HRTFElevation::calculateKernelsForAzimuthElevation();

        No new tests, covered by existing tests.

        * platform/audio/HRTFElevation.cpp:
        (WebCore::getConcatenatedImpulseResponsesForSubject):

2013-02-01  Beth Dakin  <bdakin@apple.com>

        ScrollAnimatorMac should adopt contentAreaScrolledInDirection
        https://bugs.webkit.org/show_bug.cgi?id=108647
        -and corresponding-
        <rdar://problem/12434779>

        Reviewed by Anders Carlsson.

        This patch makes notifyContentAreaScrolled() and notifyPositionChanged() take a 
        FloatSize parameter that represents the scroll delta so that it can be passed 
        along to contentAreaScrolledInDirection:. 

        Pass along the scroll delta.
        * platform/ScrollAnimator.cpp:
        (WebCore::ScrollAnimator::scroll):
        (WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):

        The delta is not needed in this base-class implementation. It will only be needed 
        in the ScrollAnimatorMac override.
        (WebCore::ScrollAnimator::notifyPositionChanged):
        * platform/ScrollAnimator.h:
        (WebCore::ScrollAnimator::notifyContentAreaScrolled):

        Pass along the delta.
        * platform/ScrollAnimatorNone.cpp:
        (WebCore::ScrollAnimatorNone::scrollToOffsetWithoutAnimation):
        (WebCore::ScrollAnimatorNone::animationTimerFired):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::scrollPositionChanged):

        Add contentAreaScrolledInDirection: to the NSScrollerImpDetails.
        * platform/mac/NSScrollerImpDetails.h:

        New member variable m_contentAreaScrolledTimerScrollDelta stores the current 
        scroll delta while we are waiting for m_sendContentAreaScrolledTimer to fire.
        * platform/mac/ScrollAnimatorMac.h:

        We need this so that we can call just contentAreaScrolled if 
        contentAreaScrolledInDirection: is not available.
        * platform/mac/ScrollAnimatorMac.mm:
        (supportsContentAreaScrolledInDirection):

        Pass along the delta.
        (WebCore::ScrollAnimatorMac::immediateScrollTo):
        (WebCore::ScrollAnimatorMac::notifyPositionChanged):
        (WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
        (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
        (WebCore::ScrollAnimatorMac::immediateScrollBy):
        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):

        If contentAreaScrolledInDirection: is available, call it with the delta, and then 
        reset our delta. Otherwise, still call contentAreaScrolled.
        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):

2013-02-01  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: [file selector dialog] for mixed case queries, score uppercase letters only when assessing camelcase.
        https://bugs.webkit.org/show_bug.cgi?id=108639

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog.prototype._createScoringRegex):

2013-02-01  Robert Hogan  <robert@webkit.org>

        Padding in a parent inline preceding an empty inline child should be counted towards width
        https://bugs.webkit.org/show_bug.cgi?id=108226

        Reviewed by Levi Weintraub.

        Add the border/padding/margin from an empty inline's parent inline if it is the first or last
        child of the inline. 

        Tests: fast/inline/parent-inline-element-padding-contributes-width.html
               fast/inline/positioned-element-padding-contributes-width.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):

2013-02-01  Tony Gentilcore  <tonyg@chromium.org>

        Continue making XSSAuditor thread safe: Remove dependencies on m_parser from init()
        https://bugs.webkit.org/show_bug.cgi?id=108531

        Reviewed by Adam Barth.

        The threaded HTML parser will create and init() the XSSAuditor on the main thread, but filterToken() will be called on the background.

        No new tests because no change in functionality.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::XSSAuditor):
        (WebCore::XSSAuditor::init):
        (WebCore::XSSAuditor::filterToken):
        * html/parser/XSSAuditor.h:
        (WebCore):
        (XSSAuditor):

2013-02-01  Brady Eidson  <beidson@apple.com>

        Remove unnecessary parameter from DocumentLoader::scheduleArchiveLoad
        https://bugs.webkit.org/show_bug.cgi?id=108654

        Reviewed by Alexey Proskuryakov.

        No new tests (No behavior change.)

        Remove the KURL parameter parameter from this method which, in practice,
        is always the same as the url of the ResourceRequest parameter.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::scheduleArchiveLoad):
        * loader/DocumentLoader.h:

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::start):

2013-02-01  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: relax goto file matching again.
        https://bugs.webkit.org/show_bug.cgi?id=108346

        Reviewed by Vsevolod Vlasov.

        This change brings back behavior introduced in r116244.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
        (WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegex):
        (WebInspector.FilteredItemSelectionDialog.prototype._createScoringRegex):
        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
        (WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
        (WebInspector.FilteredItemSelectionDialog.prototype.itemElement):
        (WebInspector.OpenResourceDialog):
        * inspector/front-end/utilities.js:
        (String.regexSpecialCharacters):
        (String.prototype.escapeForRegExp):

2013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Navigator should not create tree elements for uiSourceCodes unless neededm should populate folders on expand only.
        https://bugs.webkit.org/show_bug.cgi?id=108601

        Reviewed by Pavel Feldman.

        Tree elememnts for uiSourceCodes are not created until really needed anymore.
        They are now created when parent folder tree elememnts are expanded or when uiSourceCode is revealed in navigator.

        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorView):
        (WebInspector.NavigatorView.prototype.addUISourceCode):
        (WebInspector.NavigatorView.prototype._getOrCreateScriptTreeElement):
        (WebInspector.NavigatorView.prototype._getScriptTreeElement):
        (WebInspector.NavigatorView.prototype._createScriptTreeElement):
        (WebInspector.NavigatorView.prototype._removeScriptTreeElement):
        (WebInspector.NavigatorView.prototype._updateScriptTitle):
        (WebInspector.NavigatorView.prototype.isScriptSourceAdded):
        (WebInspector.NavigatorView.prototype.revealUISourceCode):
        (WebInspector.NavigatorView.prototype.removeUISourceCode):
        (WebInspector.NavigatorView.prototype.reset):
        (WebInspector.NavigatorView.prototype.createFolderTreeElement):
        (WebInspector.NavigatorView.prototype._populateFolderTreeElement):
        (WebInspector.NavigatorView.prototype._addScriptTreeElement):
        (WebInspector.NavigatorView.prototype._adoptUISourceCode):
        (WebInspector.NavigatorFolderTreeElement):
        (WebInspector.NavigatorFolderTreeElement.prototype.onpopulate):

2013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TabbedEditorContainer.History performance optimization.
        https://bugs.webkit.org/show_bug.cgi?id=108581

        Introduced history items indexing by url.

        Reviewed by Pavel Feldman.

        Covered by existing test.

        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.History):
        (WebInspector.TabbedEditorContainer.History.prototype.index):
        (WebInspector.TabbedEditorContainer.History.prototype._rebuildItemIndex):
        (WebInspector.TabbedEditorContainer.History.prototype.update):
        (WebInspector.TabbedEditorContainer.History.prototype.remove):

2013-02-01  Geoffrey Garen  <ggaren@apple.com>

        Added TriState to WTF and started using it in one place
        https://bugs.webkit.org/show_bug.cgi?id=108628

        Reviewed by Beth Dakin.

        * editing/EditingStyle.h:
        (WebCore): Moved TriState to WTF so it can be used in more places.

2013-02-01  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: Follow up to r141260: fixing renamed style.
        Not reviewed.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
        (WebInspector.FilteredItemSelectionDialog.prototype._onClick):
        (WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):

2013-02-01  Alexis Menard  <alexis@webkit.org>

        Enable unprefixed CSS transitions by default.
        https://bugs.webkit.org/show_bug.cgi?id=108216

        Reviewed by Dean Jackson.

        Rename the flag CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
        to CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED which will be used later to 
        guard the unprefixing work for CSS Transforms and animations. Remove the
        various #ifdefs and conditional generations.

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.cpp:
        * GNUmakefile.features.am.in:
        * css/CSSPropertyNames.in:
        * dom/EventNames.in:
        * dom/TransitionEvent.cpp:
        * dom/TransitionEvent.h:
        * dom/TransitionEvent.idl:
        * page/DOMWindow.idl:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):

2013-02-01  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r141548.
        http://trac.webkit.org/changeset/141548
        https://bugs.webkit.org/show_bug.cgi?id=108579

        userscript-plugin-document.html is flaky

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/V8GCController.cpp:
        (WebCore):
        (WebCore::gcTree):
        (WebCore::V8GCController::didCreateWrapperForNode):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-02-01  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: fix jscompiler warnings
        https://bugs.webkit.org/show_bug.cgi?id=108604

        Reviewed by Pavel Feldman.

        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleGroup.prototype.addMessage):
        * inspector/front-end/ContextMenu.js:
        (WebInspector.ContextSubMenuItem):
        * inspector/front-end/ImageView.js:
        (WebInspector.ImageView.prototype._copyImageURL):
        (WebInspector.ImageView.prototype._openInNewTab):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._clearBrowserCache):
        (WebInspector.NetworkLogView.prototype._clearBrowserCookies):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.IDBDatabaseTreeElement.prototype._refreshIndexedDB):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
        (WebInspector.SnippetsNavigatorView.prototype._handleRenameSnippet):
        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
        (WebInspector.SnippetsNavigatorView.prototype._handleCreateSnippet):
        * inspector/front-end/Toolbar.js:
        (WebInspector.Toolbar.prototype._isDockedToBottom):

2013-02-01  Jae Hyun Park  <jae.park@company100.net>


        Coordinated Graphics : Sort Target.pri and class declarations in alphabetical order.
        https://bugs.webkit.org/show_bug.cgi?id=108590

        Reviewed by Noam Rosenthal.

        Sort CoordinatedGraphics files in Target.pri in alphabetical order.

        No new tests. No change in behavior.

        * Target.pri:

2013-02-01  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: provide edge names to class members in all WebCore instrumented classes.
        https://bugs.webkit.org/show_bug.cgi?id=107369

        Reviewed by Yury Semikhatsky.

        It is almost mechanical change generated by a script.
        Late I'll implement name to edge name consistency check in clang plugin.

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::reportMemoryUsage):
        * Modules/webaudio/AudioNode.cpp:
        (WebCore::AudioNode::reportMemoryUsage):
        * bindings/js/ScriptWrappable.h:
        (WebCore::ScriptWrappable::reportMemoryUsage):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::reportMemoryUsage):
        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperMap::reportMemoryUsage):
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::reportMemoryUsage):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::StringCache::reportMemoryUsage):
        * css/CSSBorderImageSliceValue.cpp:
        (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
        * css/CSSCalculationValue.cpp:
        * css/CSSCanvasValue.cpp:
        (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
        * css/CSSCharsetRule.cpp:
        (WebCore::CSSCharsetRule::reportMemoryUsage):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
        * css/CSSCrossfadeValue.cpp:
        (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::reportMemoryUsage):
        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
        * css/CSSFunctionValue.cpp:
        (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientColorStop::reportMemoryUsage):
        (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
        (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
        (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
        * css/CSSGroupingRule.cpp:
        (WebCore::CSSGroupingRule::reportMemoryUsage):
        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
        (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::reportDescendantMemoryUsage):
        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::reportMemoryUsage):
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::reportMemoryUsage):
        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::reportMemoryUsage):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::reportMemoryUsage):
        * css/CSSReflectValue.cpp:
        (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
        * css/CSSRule.cpp:
        (WebCore::CSSRule::reportMemoryUsage):
        * css/CSSRuleList.cpp:
        (WebCore::StaticCSSRuleList::reportMemoryUsage):
        * css/CSSRuleList.h:
        * css/CSSSelectorList.cpp:
        (WebCore::CSSSelectorList::reportMemoryUsage):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::reportMemoryUsage):
        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::reportMemoryUsage):
        * css/CSSValue.cpp:
        (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
        * css/CSSValueList.cpp:
        (WebCore::CSSValueList::reportDescendantMemoryUsage):
        * css/CSSVariableValue.h:
        (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
        * css/FontFeatureValue.cpp:
        (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
        * css/FontValue.cpp:
        (WebCore::FontValue::reportDescendantMemoryUsage):
        * css/MediaList.cpp:
        (WebCore::MediaQuerySet::reportMemoryUsage):
        (WebCore::MediaList::reportMemoryUsage):
        * css/MediaQuery.cpp:
        (WebCore::MediaQuery::reportMemoryUsage):
        * css/MediaQueryExp.cpp:
        (WebCore::MediaQueryExp::reportMemoryUsage):
        * css/PropertySetCSSStyleDeclaration.cpp:
        (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
        * css/RuleFeature.cpp:
        (WebCore::RuleFeatureSet::reportMemoryUsage):
        * css/RuleSet.cpp:
        (WebCore::RuleData::reportMemoryUsage):
        (WebCore::RuleSet::reportMemoryUsage):
        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
        * css/ShadowValue.cpp:
        (WebCore::ShadowValue::reportDescendantMemoryUsage):
        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::reportMemoryUsage):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::MatchedProperties::reportMemoryUsage):
        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
        (WebCore::MediaQueryResult::reportMemoryUsage):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/StyleRule.cpp:
        (WebCore::StyleRule::reportDescendantMemoryUsage):
        (WebCore::StyleRulePage::reportDescendantMemoryUsage):
        (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
        (WebCore::StyleRuleGroup::reportDescendantMemoryUsage):
        (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
        (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
        (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
        * css/StyleRuleImport.cpp:
        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::reportMemoryUsage):
        * css/StyleSheetContents.cpp:
        (WebCore::StyleSheetContents::reportMemoryUsage):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::StyleKeyframe::reportMemoryUsage):
        (WebCore::WebKitCSSKeyframeRule::reportMemoryUsage):
        * css/WebKitCSSKeyframesRule.cpp:
        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
        (WebCore::WebKitCSSKeyframesRule::reportMemoryUsage):
        * css/WebKitCSSSVGDocumentValue.cpp:
        (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
        * css/WebKitCSSViewportRule.cpp:
        (WebCore::WebKitCSSViewportRule::reportMemoryUsage):
        * dom/Attribute.h:
        (WebCore::Attribute::reportMemoryUsage):
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::reportMemoryUsage):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::reportMemoryUsage):
        * dom/ContainerNode.h:
        (ContainerNode):
        * dom/Document.cpp:
        (WebCore::Document::reportMemoryUsage):
        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::reportMemoryUsage):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::DocumentOrderedMap::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/Element.cpp:
        (WebCore::Element::reportMemoryUsage):
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::reportMemoryUsage):
        * dom/ElementRareData.cpp:
        (WebCore::ElementRareData::reportMemoryUsage):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::reportMemoryUsage):
        * dom/Event.cpp:
        (WebCore::Event::reportMemoryUsage):
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeListBase::reportMemoryUsage):
        * dom/Node.cpp:
        (WebCore::Node::reportMemoryUsage):
        * dom/NodeRareData.cpp:
        (WebCore::NodeListsNodeData::reportMemoryUsage):
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/QualifiedName.cpp:
        (WebCore::QualifiedName::reportMemoryUsage):
        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::reportMemoryUsage):
        * dom/SecurityContext.cpp:
        (WebCore::SecurityContext::reportMemoryUsage):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::reportMemoryUsage):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::reportMemoryUsage):
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::reportMemoryUsage):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::reportMemoryUsage):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::reportMemoryUsage):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::reportMemoryUsage):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::reportMemoryUsage):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::reportMemoryUsage):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializer):
        * inspector/InspectorBaseAgent.cpp:
        (WebCore::InspectorBaseAgentInterface::reportMemoryUsage):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::reportMemoryUsage):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
        * inspector/InspectorDOMStorageResource.cpp:
        (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
        (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::reportMemoryUsage):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::reportMemoryUsage):
        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
        (WebCore::MemoryInstrumentationImpl::reportMemoryUsage):
        * inspector/NetworkResourcesData.cpp:
        (WebCore::XHRReplayData::reportMemoryUsage):
        (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
        (WebCore::NetworkResourcesData::reportMemoryUsage):
        * loader/CachedMetadata.cpp:
        (WebCore::CachedMetadata::reportMemoryUsage):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::reportMemoryUsage):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::reportMemoryUsage):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::reportMemoryUsage):
        * loader/Prerenderer.cpp:
        (WebCore::Prerenderer::reportMemoryUsage):
        * loader/ResourceBuffer.cpp:
        (WebCore::ResourceBuffer::reportMemoryUsage):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::reportMemoryUsage):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::reportMemoryUsage):
        * loader/SubstituteData.cpp:
        (WebCore::SubstituteData::reportMemoryUsage):
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
        * loader/cache/CachedFont.cpp:
        (WebCore::CachedFont::reportMemoryUsage):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::reportMemoryUsage):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::reportMemoryUsage):
        * loader/cache/CachedResourceHandle.cpp:
        (WebCore::CachedResourceHandleBase::reportMemoryUsage):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::reportMemoryUsage):
        * loader/cache/CachedSVGDocument.cpp:
        (WebCore::CachedSVGDocument::reportMemoryUsage):
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::reportMemoryUsage):
        * loader/cache/CachedShader.cpp:
        (WebCore::CachedShader::reportMemoryUsage):
        * loader/cache/CachedXSLStyleSheet.cpp:
        (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::reportMemoryUsage):
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::reportMemoryUsage):
        * page/Frame.cpp:
        (WebCore::Frame::reportMemoryUsage):
        * page/Page.cpp:
        (WebCore::Page::reportMemoryUsage):
        * platform/KURL.cpp:
        (WebCore::KURL::reportMemoryUsage):
        * platform/KURLGoogle.cpp:
        (WebCore::KURLGooglePrivate::reportMemoryUsage):
        * platform/KURLWTFURLImpl.h:
        (WebCore::KURLWTFURLImpl::reportMemoryUsage):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::reportMemoryUsage):
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::reportMemoryUsage):
        * platform/audio/AudioArray.h:
        (WebCore::AudioArray::reportMemoryUsage):
        * platform/audio/FFTFrame.cpp:
        (WebCore::FFTFrame::reportMemoryUsage):
        * platform/audio/HRTFDatabase.cpp:
        (WebCore::HRTFDatabase::reportMemoryUsage):
        * platform/audio/HRTFDatabaseLoader.cpp:
        (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
        * platform/audio/HRTFElevation.cpp:
        (WebCore::HRTFElevation::reportMemoryUsage):
        * platform/audio/HRTFKernel.cpp:
        (WebCore::HRTFKernel::reportMemoryUsage):
        * platform/audio/ffmpeg/FFTFrameFFMPEG.cpp:
        (reportMemoryUsage):
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::reportMemoryUsage):
        (WebCore::FrameData::reportMemoryUsage):
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
        * platform/graphics/GeneratorGeneratedImage.cpp:
        (WebCore::GeneratorGeneratedImage::reportMemoryUsage):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::reportMemoryUsage):
        * platform/graphics/ImageBuffer.cpp:
        (WebCore::ImageBuffer::reportMemoryUsage):
        * platform/graphics/ImageSource.cpp:
        (WebCore::ImageSource::reportMemoryUsage):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::reportMemoryUsage):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBufferData::reportMemoryUsage):
        * platform/graphics/skia/MemoryInstrumentationSkia.cpp:
        (reportMemoryUsage):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::reportMemoryUsage):
        * platform/image-decoders/ImageDecoder.cpp:
        (WebCore::ImageFrame::reportMemoryUsage):
        (WebCore):
        (WebCore::ImageDecoder::reportMemoryUsage):
        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::reportMemoryUsage):
        * platform/network/FormData.cpp:
        (WebCore::FormData::reportMemoryUsage):
        (WebCore::FormDataElement::reportMemoryUsage):
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::reportMemoryUsageBase):
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::reportMemoryUsage):
        * platform/network/chromium/ResourceRequest.cpp:
        (WebCore::ResourceRequest::reportMemoryUsage):
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::reportMemoryUsage):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::reportMemoryUsage):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::reportMemoryUsage):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::reportMemoryUsage):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::reportMemoryUsage):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::reportMemoryUsage):
        (WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::reportMemoryUsage):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::reportMemoryUsage):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::reportMemoryUsage):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::reportMemoryUsage):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::reportMemoryUsage):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::reportMemoryUsage):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::reportMemoryUsage):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::reportMemoryUsage):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::reportMemoryUsage):
        (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
        (WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::reportMemoryUsage):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::reportMemoryUsage):
        * rendering/style/DataRef.h:
        (WebCore::DataRef::reportMemoryUsage):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::reportMemoryUsage):
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::reportMemoryUsage):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
        * svg/SVGPaint.cpp:
        (WebCore::SVGPaint::reportDescendantMemoryUsage):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::reportMemoryUsage):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::reportMemoryUsage):

2013-02-01  Philippe Normand  <pnormand@igalia.com>

        [GTK][GStreamer] FullscreenVideoControllerGtk implementation
        https://bugs.webkit.org/show_bug.cgi?id=107398

        Reviewed by Gustavo Noronha Silva.

        NATIVE_FULLSCREEN_VIDEO support for the GTK port. The previous
        FullscreenVideoController implementation was refactored as a
        sub-class of FullscreenVideoControllerGStreamer and hooked in the
        MediaPlayerPrivateGStreamer backend.

        * GNUmakefile.list.am:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp: Renamed from Source/WebKit/gtk/WebCoreSupport/FullscreenVideoController.cpp.
        * platform/graphics/gtk/FullscreenVideoControllerGtk.h: Renamed from Source/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h.

2013-02-01  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix cursor location in Source Frame
        https://bugs.webkit.org/show_bug.cgi?id=108592

        Reviewed by Pavel Feldman.

        Normalize range before computing amount of lines in
        _updateSourcePosition.

        No new tests.

        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame.prototype._updateSourcePosition): Normalize text range.
        * inspector/front-end/inspector.css: Slightly bigger left padding for the text.
        (.source-frame-position):

2013-02-01  Kentaro Hara  <haraken@chromium.org>

        Unreviewed build fix after r141553.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::HasInstance):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::HasInstance):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::HasInstance):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::HasInstance):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::HasInstance):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::HasInstance):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::HasInstance):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::HasInstance):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructor::HasInstance):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::HasInstance):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::HasInstance):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::HasInstance):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):

2013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Sources panel navigator reveal and expand fixes.
        https://bugs.webkit.org/show_bug.cgi?id=108584

        Reviewed by Pavel Feldman.

        Navigator folders are not expanded by default anymore.
        Made domain folder expanded for inspected page main frame domain.
        UISourceCodes are now added to navigator before editor container
        so that they could be revealed if editor container decides to show them.

        * inspector/front-end/NavigatorView.js:
        (WebInspector.BaseNavigatorTreeElement.prototype.onattach):
        (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._addUISourceCode):

2013-02-01  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] drop trace log in the backend when deleting profile in frontend
        https://bugs.webkit.org/show_bug.cgi?id=108591

        Reviewed by Pavel Feldman.

        Send a dropTraceLog command to the backend when deleting a profile header from the sidebar.
        Before we were sending the command only upon deleting an existing view of a profile, so we  would not
        sent the command if the view was not created or if a profile header was removed via context menu (the ondelete() method).
        Drive-by: fixed an odd formatting of property functions.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView.prototype.dispose):
        (WebInspector.CanvasProfileHeader.prototype.reset):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfileHeader.prototype.reset):
        (WebInspector.ProfileHeader.prototype.load):
        (WebInspector.ProfileHeader.prototype.canSaveToFile):
        (WebInspector.ProfileHeader.prototype.saveToFile):
        (WebInspector.ProfileHeader.prototype.loadFromFile):
        (WebInspector.ProfileHeader.prototype.fromFile):
        (WebInspector.ProfilesPanel):
        (WebInspector.ProfilesPanel.prototype._reset):
        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):

2013-02-01  Chris Fleizach  <cfleizach@apple.com>

        AX: when aria-activedescendant is used with a ComboBox role, focus should not be changed
        https://bugs.webkit.org/show_bug.cgi?id=108596

        Reviewed by Ryosuke Niwa.

        Normally, an aria-activedescendant change causes a focus change to be triggered.
        However, when used in conjunction with a combo box, this causes problems for screen readers.
        Namely, the user expects focus to remain in the text field so that the user can keep typing. 
        If focus moves to an item in the combobox list, it is not possible to keep typing.

        The solution is to not trigger a focus change in this case and instead use a selected children change notification.

        Test: platform/mac/accessibility/combobox-activedescendant-notifications.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant):
        (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant):
        (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::postPlatformNotification):

2013-02-01  Chris Fleizach  <cfleizach@apple.com>

        [Mac] REGRESSION(r140974): accessibility/lists.html fails on Lion=
        https://bugs.webkit.org/show_bug.cgi?id=108291

        Reviewed by Ryosuke Niwa.

        This accounts for differences in what AppKit gives for accessibility role descriptions between platforms
        when the subrole is not recognized, and standardizes it for WebKit.

        Unskip a failing Lion test

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper roleDescription]):

2013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Replace localeCompare in NavigatorView with compareTo.
        https://bugs.webkit.org/show_bug.cgi?id=108585

        Reviewed by Pavel Feldman.

        Replaced String.prototype.localeCompare with String.prototype.compareTo
        in NavigatorView to improve performance.

        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorTreeOutline._treeElementsCompare):

2013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: File system pending requests list is not cleared after processing.
        https://bugs.webkit.org/show_bug.cgi?id=108573

        Reviewed by Pavel Feldman.

        * inspector/front-end/IsolatedFileSystemModel.js:
        (WebInspector.IsolatedFileSystemModel.prototype._processPendingFileSystemRequests):

2013-02-01  Tom Sepez  <tsepez@chromium.org>

        Dubious cast from HTMLCollection to HTMLAllCollection
        https://bugs.webkit.org/show_bug.cgi?id=108538

        Reviewed by Adam Barth.

        Patch is tested by enabling V8 binding integrity on HTMLAllCollection and
        running the existing tests without introducing new crashes.

        * dom/Document.cpp:
        (WebCore::Document::all):
        Pass correct type to template.
        
        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::create):
        (WebCore::HTMLAllCollection::HTMLAllCollection):
        * html/HTMLAllCollection.h:
        (HTMLAllCollection):
        Make create() method arguments compatible with template above.

        * html/HTMLAllCollection.idl:
        Enable binding integrity.

2013-02-01  Ken Kania  <kkania@chromium.org>

        Web Inspector: Add support for handling modal dialogs
        https://bugs.webkit.org/show_bug.cgi?id=107883

        Reviewed by Pavel Feldman.

        Introduce support for being notified when a JavaScript modal dialog
        is opening and closing, as well as a new command for accepting or
        dismissing the dialog.

        Test: inspector-protocol/page/willRunJavaScriptDialog.html

        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::handleJavaScriptDialog):
        (InspectorClient):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::willRunJavaScriptDialogImpl):
        (WebCore::InspectorInstrumentation::didRunJavaScriptDialogImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::willRunJavaScriptDialog):
        (WebCore):
        (WebCore::InspectorInstrumentation::didRunJavaScriptDialog):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::willRunJavaScriptDialog):
        (WebCore):
        (WebCore::InspectorPageAgent::didRunJavaScriptDialog):
        (WebCore::InspectorPageAgent::handleJavaScriptDialog):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.PageDispatcher.prototype.frameStartedLoading):
        (WebInspector.PageDispatcher.prototype.frameStoppedLoading):
        (WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
        (WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
        (WebInspector.PageDispatcher.prototype.javascriptDialogOpening):
        (WebInspector.PageDispatcher.prototype.javascriptDialogClosed):
        * page/Chrome.cpp:
        (WebCore::Chrome::runBeforeUnloadConfirmPanel):
        (WebCore::Chrome::runJavaScriptAlert):
        (WebCore::Chrome::runJavaScriptConfirm):
        (WebCore::Chrome::runJavaScriptPrompt):

2013-02-01  Dan Alcantara  <dfalcantara@chromium.org>

        Touch disambiguation blacklist is not being queried properly
        https://bugs.webkit.org/show_bug.cgi?id=108222

        Reviewed by Adam Barth.

        TEST=WebFrameTest::DisambiguationPopupBlacklist

        Fix the blacklist so that we check it for the right nodes.
        Add a chromium test to check that the blacklist is being built and used
        correctly.  Also update the other DisambiguationPopup tests to
        use the new page scale method.

        * page/TouchDisambiguation.cpp:
        (WebCore::findGoodTouchTargets):

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        [V8] Add a temporary optional Isolate parameter to HasInstance()
        https://bugs.webkit.org/show_bug.cgi?id=108567

        Reviewed by Adam Barth.

        The optional Isolate parameter will be removed once all call sites have an Isolate.
        It will require several patches.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrSetter):
        (GenerateParametersCheckExpression):
        (GenerateParametersCheck):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::HasInstance):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (V8Float64Array):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::HasInstance):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (V8TestActiveDOMObject):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::HasInstance):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (V8TestCustomNamedGetter):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::HasInstance):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (V8TestEventConstructor):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::HasInstance):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (V8TestEventTarget):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::HasInstance):
        * bindings/scripts/test/V8/V8TestException.h:
        (V8TestException):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::HasInstance):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::HasInstance):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (V8TestMediaQueryListListener):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructor::HasInstance):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (V8TestNamedConstructor):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::HasInstance):
        * bindings/scripts/test/V8/V8TestNode.h:
        (V8TestNode):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::overloadedMethodCallback):
        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
        (WebCore::V8TestObj::HasInstance):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructorCallback):
        (WebCore::V8TestOverloadedConstructors::HasInstance):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (V8TestOverloadedConstructors):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (V8TestSerializedScriptValueInterface):

2013-02-01  Nils Barth  <nbarth@google.com>

        [CPP,GObject,ObjC] Add 'static' skip to CodeGenerator{CPP,GObject,ObjC}.pm
        https://bugs.webkit.org/show_bug.cgi?id=108578

        Reviewed by Kentaro Hara.

        Since CPP/GObject/ObjC code generators (CodeGenerator{CPP,GObject,ObjC}.pm)
        do not support static attributes, add test to skip these.
        This lets us remove #if macro from static in test files and not need
        these in future.

        Test: bindings/scripts/test/TestObj.idl (run-bindings-test)
        Test: bindings/scripts/test/TestSupplemental.idl (run-bindings-test)

        * bindings/scripts/CodeGeneratorCPP.pm:
        (SkipAttribute):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipAttribute):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (SkipAttribute):
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestSupplemental.idl:

2013-02-01  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove V8GCController::m_edenNodes
        https://bugs.webkit.org/show_bug.cgi?id=108579

        Reviewed by Adam Barth.

        Currently V8GCController::m_edenNodes stores a list of nodes whose
        wrappers have been created since the latest GC. The reason why we
        needed m_edenNodes is that there was no way to know a list of wrappers
        in the new space of V8. By using m_edenNodes, we had been approximating
        'wrappers in the new space' by 'wrappers that have been created since
        the latest GC'.

        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
        can know a list of wrappers in the new space. By using the API, we can
        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
        need to keep m_edenNodes and that (2) it enables more precise minor
        DOM GC (Remember that m_edenNodes was just an approximation).

        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
        The benchmark runs 300 iterations, each of which creates 100000 elements.
        The benchmark measures average, min, median, max and stdev of execution times
        of the 300 iterations. This will tell us the worst-case overhead of this change.

        Before:
          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms

        After:
          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms

        As shown above, I couldn't observe any performance regression.

        No tests. No change in behavior.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::setWrapperInObject):
        * bindings/v8/V8GCController.cpp:
        (WebCore::gcTree):
        (WebCore):
        (MinorGCWrapperVisitor):
        (WebCore::MinorGCWrapperVisitor::notifyFinished):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Use String.prototype.startsWith instead of String.prototype.indexOf when possible
        https://bugs.webkit.org/show_bug.cgi?id=108575

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/FileMapping.js:
        (WebInspector.FileMapping.prototype._entryMatchesURL):
        (WebInspector.FileMapping.prototype.urlForURI):
        * inspector/front-end/FileSystemMapping.js:
        (get WebInspector.FileSystemMappingImpl.prototype.fileForURI):
        (get WebInspector.FileSystemMappingImpl.prototype.uriForPath):

2013-01-31  Aurimas Liutikas  <aurimas@chromium.org>

        Editor::m_compositionNode not updated on HTMLInputElement::setValue()
        https://bugs.webkit.org/show_bug.cgi?id=107737

        Reviewed by Ryosuke Niwa.

        Chromium has a bug where the IME composition did not get cancelled on JavaScript changes
        to the focused editing field. Most of other WebKit ports were already doing this check
        in their EditorClient::respondToChangedSelection. I took that logic and moved it to the
        Editor so every port and use the same code.

        An existing test editing/input/setting-input-value-cancel-ime-composition.html covers this change.
        This test used to have an expectation to fail on Chromium and after this patch it will start passing.

        * editing/Editor.cpp:
        (WebCore::Editor::cancelCompositionIfSelectionIsInvalid):
            Adding a call that can be used by any the port to cancel the composition if it's no longer valid.
        (WebCore):
        * editing/Editor.h:
        (Editor):

2013-01-31  Jae Hyun Park  <jae.park@company100.net>

        Coordinated Graphics : Move CoordinatedGraphics related files to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=108149

        Reviewed by Noam Rosenthal.

        This patch moves Coordinated Graphics related code to WebCore. To
        implement Threaded Coordinated Graphics, most of Coordianted Graphics
        code should be shared. Therefore, they should reside in WebCore instead of
        WebKit2.

        When moving to WebCore, two renamings have been done.

        1. Rename LayerTreeRenderer to CoordinatedGraphicsScene.

        2. Rename WebCustomFilterProgram and WebCustomFilterOperation to
        CoordinatedCustomFilterProgram and CoordinatedCustomFilterOperation,
        respectively.

        No new tests, covered by existing tests.

        * CMakeLists.txt:
        * Target.pri:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        * platform/graphics/texmap/coordinated/AreaAllocator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.cpp.
        * platform/graphics/texmap/coordinated/AreaAllocator.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h.
        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp.
        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h.
        * platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/WebCustomFilterOperation.h.
        * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/WebCustomFilterProgram.h.
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp.
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h.
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp.
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h.
        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp.
        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.h.
        * platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedLayerInfo.h.
        * platform/graphics/texmap/coordinated/CoordinatedSurface.cpp: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedSurface.cpp.
        * platform/graphics/texmap/coordinated/CoordinatedSurface.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedSurface.h.
        * platform/graphics/texmap/coordinated/CoordinatedTile.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp.
        * platform/graphics/texmap/coordinated/CoordinatedTile.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.h.
        * platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/SurfaceUpdateInfo.h.
        * platform/graphics/texmap/coordinated/UpdateAtlas.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp.
        * platform/graphics/texmap/coordinated/UpdateAtlas.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.h.

2013-01-31  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>

        [Qt] Add support for text decoration "wavy" style
        https://bugs.webkit.org/show_bug.cgi?id=93507

        Reviewed by Simon Hausmann.

        Add support for text decoration "wavy" style for Qt platform.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::toQPenStyle):
        Remove FIXME comments obsoleted by this patch.
        (WebCore::GraphicsContext::drawLine):
        Implement wavy style line tracer.

2013-01-31  Nils Barth  <nbarth@google.com>

        [CPP,GObject,ObjC] Add 'enum' skip to CodeGenerator{CPP,GObject,ObjC}.pm
        https://bugs.webkit.org/show_bug.cgi?id=108565

        Reviewed by Kentaro Hara.

        Since legacy code generators (CodeGenerator{CPP,GObject,ObjC}.pm)
        do not support enumerations, add test to skip attributes of enum type.
        This lets us remove #if macro from enum in test file and not need
        these in future.
        Also minor associated code cleaning:
          auxiliary variable: $type = $attribute->signature->type.

        Test: bindings/scripts/test/TestObj.idl (run-bindings-test)

        * bindings/scripts/CodeGeneratorCPP.pm:
        (SkipAttribute):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipAttribute):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (SkipAttribute):
        * bindings/scripts/test/TestObj.idl: remove #if macro

2013-01-31  Kent Tamura  <tkent@chromium.org>

        Refactoring: Remove the default argument value for Node::setFocus
        https://bugs.webkit.org/show_bug.cgi?id=108554

        Reviewed by Kentaro Hara.

        There is no code to use the default argument.
        No new tests. Just a refactoring.

        * dom/Node.h: Remove default argument value for setFocus.
        * dom/ContainerNode.h:
        (ContainerNode): Ditto.
        * html/HTMLAreaElement.h:
        (HTMLAreaElement): Add OVERRIDE to setFocus.
        * html/HTMLFrameElementBase.h:
        (HTMLFrameElementBase): Ditto.

2013-01-31  Victor Carbune  <vcarbune@chromium.org>

        [Track] Closed Caption button shouldn't be visible if all the track resources have failed loading
        https://bugs.webkit.org/show_bug.cgi?id=106285

        Reviewed by Eric Carlson.

        Updated existing test cases.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTracksAreReady): Checked whether there are tracks not loaded
        when the algorithm began.
        (WebCore::HTMLMediaElement::textTrackReadyStateChanged): If the ready state changed to
        FailedToLoad the media controls should check whether there are other caption tracks
        and hide the button if not.
        (WebCore::HTMLMediaElement::didAddTrack): Added trigger to closedCaptionsTrackChanged.
        (WebCore::HTMLMediaElement::hasClosedCaptions): Updated check to skip tracks that
        failed to load.
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::reset): Used the newly added method.
        (WebCore::MediaControls::refreshClosedCaptionsButtonVisibility): Added container method for
        default behaviour for refreshing the visibility of the caption button.
        (WebCore::MediaControls::closedCaptionTracksChanged): Used the newly added method.
        (WebCore):
        * html/shadow/MediaControls.h:
        (MediaControls):

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTracksAreReady):
        (WebCore::HTMLMediaElement::textTrackReadyStateChanged):
        (WebCore::HTMLMediaElement::setReadyState):
        (WebCore::HTMLMediaElement::didAddTrack):
        (WebCore::HTMLMediaElement::hasClosedCaptions):
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::reset):
        (WebCore::MediaControls::refreshClosedCaptionsButtonVisibility):
        (WebCore::MediaControls::closedCaptionTracksChanged):
        (WebCore):
        * html/shadow/MediaControls.h:
        (MediaControls):

2013-01-31  Dima Gorbik  <dgorbik@apple.com>

        REGRESSION(r140231): media track layout tests crashing
        https://bugs.webkit.org/show_bug.cgi?id=107579

        Reviewed by Eric Carlson.

        We were using non-standard element names with HTMLElement, which made v8 try to cast
        WebVTTElements to HTMLUnknownElements which was not possible. Subclassing Element instead
        of HTMLElement, though this requires building HTMLElements from WebVTTElements for creating
        a DOM tree. The code has been refactored to move WebVTT node type to QuialifiedName mappings 
        inside the WebVTTElement class. All WebVTTElements in the shadow dom tree now are in the 
        namespace defined by 'NullAtom'. This prevents regular styles from being applied to <b>, <i>
        and similar tags. Those have to be styled separately without reusing existing QualifiedNames
        and their styles. https://bugs.webkit.org/show_bug.cgi?id=107214

        Unskipping tests to cover this.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::canShareStyleWithElement):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree):
        (WebCore::TextTrackCue::getCueAsHTML):
        (WebCore::TextTrackCue::createCueRenderingTree):
        (WebCore::TextTrackCue::markFutureAndPastNodes):
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::cueShadowPseudoId):
        * html/track/WebVTTElement.cpp:
        (WebCore::nodeTypeToTagName): get a QualifiedName to use in the shadow DOM tree.
        (WebCore::WebVTTElement::WebVTTElement):
        (WebCore::WebVTTElement::create):
        (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
        (WebCore::WebVTTElement::createEquivalentHTMLElement): create an HTMLElement to use in the DOM tree.
        * html/track/WebVTTElement.h:
        (WebCore::WebVTTElement::setWebVTTNodeType):
        (WebCore::WebVTTElement::webVTTNodeType):
        (WebCore::WebVTTElement::isPastNode):
        (WebCore::WebVTTElement::setIsPastNode):
        (WebCore::WebVTTElement::voiceAttributeName):
        * html/track/WebVTTParser.cpp:
        (WebCore::tokenToNodeType): determine a WebVTT node type for the token.
        (WebCore::WebVTTParser::constructTreeFromToken):

2013-01-31  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141479.
        http://trac.webkit.org/changeset/141479
        https://bugs.webkit.org/show_bug.cgi?id=108564

        breaks chromium test (Requested by morrita on #webkit).

        * editing/Editor.cpp:
        * editing/Editor.h:
        (Editor):

2013-01-31  Changhun Kang  <temoochin@company100.net>

        Rename from parentOrHost* to parentOrShadowHost* in Node.h.
        https://bugs.webkit.org/show_bug.cgi?id=108308

        Reviewed by Dimitri Glazkov.

        No new tests. No change in behavior.

2013-01-31  Alec Flett  <alecflett@chromium.org>

        IndexedDB: remove old transaction backend bootstrap code
        https://bugs.webkit.org/show_bug.cgi?id=103923

        Reviewed by Dimitri Glazkov.

        Finally remove all leftover code from the IndexedDB "giant
        async refactor of 2012." This includes removal of all
        IDBTransaction* interfaces that were shared between
        the frontend and backend and a few straggling methods
        like onUpgradeNeeded and onSuccess that were left from
        the last stage of refactoring.

        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::metadata):
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (WebCore):
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (WebCore):
        * Modules/indexeddb/IDBTransaction.h:
        (WebCore):
        (IDBTransaction):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore):
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h: Removed.
        * Modules/indexeddb/IDBTransactionCallbacks.h: Removed.
        * Modules/indexeddb/IDBTransactionCoordinator.h:
        (WebCore):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r141502.
        http://trac.webkit.org/changeset/141502
        https://bugs.webkit.org/show_bug.cgi?id=108441

        Hit assert in SVGElementInstance

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetInternalFields):
        * dom/EventTarget.idl:
        * svg/SVGElementInstance.idl:

2013-01-31  Ojan Vafai  <ojan@chromium.org>

        Assert that computePreferredLogicalWidths never calls setNeedsLayout
        https://bugs.webkit.org/show_bug.cgi?id=108539

        Reviewed by Tony Chang.

        computePreferredLogicalWidths should only set m_minPreferredLogicalWidth
        and m_maxPreferredLogicalWidth. It shouldn't have other side-effects.
        This is take 2 after this was rolled out because it was missing the guards
        in RenderCounter/RenderQuote.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::minPreferredLogicalWidth):
        (WebCore::RenderBox::maxPreferredLogicalWidth):
        * rendering/RenderCounter.cpp:
        (WebCore::RenderCounter::computePreferredLogicalWidths):
        * rendering/RenderQuote.cpp:
        (WebCore::RenderQuote::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):

2013-01-31  Abhishek Arya  <inferno@chromium.org>

        Use ASSERT_WITH_SECURITY_IMPLICATION to catch bad casts in DOM
        https://bugs.webkit.org/show_bug.cgi?id=108490
 
        Reviewed by Eric Seidel.

        * dom/ContainerNode.h:
        (WebCore::toContainerNode):
        * dom/Element.h:
        (WebCore::toElement):
        * dom/ShadowRoot.h:
        (WebCore::toShadowRoot):
        * dom/Text.h:
        (WebCore::toText):
        * html/HTMLElement.h:
        (HTMLElement):
        (WebCore::toHTMLElement):
        * html/HTMLFrameOwnerElement.h:
        (WebCore::toFrameOwnerElement):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::hasMediaControls):
        * html/HTMLTemplateElement.cpp:
        (WebCore::toHTMLTemplateElement):
        * html/HTMLUnknownElement.h:
        (WebCore::toHTMLUnknownElement):
        * html/shadow/InsertionPoint.h:
        (WebCore::toInsertionPoint):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::mediaControlElementType):
        * html/shadow/MediaControls.h:
        (WebCore::toMediaControls):
        * html/shadow/SliderThumbElement.h:
        (WebCore::toSliderThumbElement):
        * html/shadow/TextControlInnerElements.h:
        (WebCore::toInputFieldSpeechButtonElement):
        * html/shadow/TextFieldDecorationElement.h:
        (WebCore::toTextFieldDecorationElement):
        * html/track/WebVTTElement.h:
        (WebCore::toWebVTTElement):
        * mathml/MathMLElement.h:
        (WebCore::toMathMLElement):
        * page/scrolling/ScrollingStateFixedNode.h:
        (WebCore::toScrollingStateFixedNode):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (WebCore::toScrollingStateScrollingNode):
        * page/scrolling/ScrollingStateStickyNode.h:
        (WebCore::toScrollingStateStickyNode):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        * rendering/svg/SVGResources.cpp:
        (WebCore::registerPendingResource):
        (WebCore::SVGResources::buildCachedResources):
        * svg/SVGElement.h:
        (WebCore::toSVGElement):
        * svg/SVGStyledElement.h:
        (WebCore::toSVGStyledElement):

2013-01-31  Christopher Cameron  <ccameron@chromium.org>

        Fix rubber-band effect on non-scrollable pages
        https://bugs.webkit.org/show_bug.cgi?id=107611

        Reviewed by Antonio Gomes.

        Handle a FrameView's wheel event even if it is not scrollable
        because Chrome relies on handling these wheel events for the
        over-scroll rubber-band effect.
 
        This had been removed in r138378
        [EFL][WK2] Never create WebCore scrollbars for EFL/WK2
        by kenneth@chromium.org

        Tests: platform/chromium/rubberbanding/wheelevent-overhang-e.html
               platform/chromium/rubberbanding/wheelevent-overhang-n.html
               platform/chromium/rubberbanding/wheelevent-overhang-s.html
               platform/chromium/rubberbanding/wheelevent-overhang-w.html

        * page/FrameView.cpp:
        (WebCore::FrameView::wheelEvent):

2013-01-31  Enrica Casucci  <enrica@apple.com>

        Mac: Editor::baseWritingDirectionForSelectionStart should return WritingDirection instead of NSWritingDirection.
        https://bugs.webkit.org/show_bug.cgi?id=108519.

        Reviewed by Sam Weinig.

        No new tests, no change in behavior.

        There is no need to use AppKit types here.
        baseWritingDirectionForSelectionStart now returns WritingDirection and
        WebHTMLView toggleWritingDirection has been modified accordingly.
        
        * editing/Editor.h:
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::baseWritingDirectionForSelectionStart):

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to GetTemplate() in CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=108445

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateDomainSafeFunctionGetter):
        (GenerateDomainSafeFunctionSetter):
        (GenerateNormalAttrGetter):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::ConfigureV8Float64ArrayTemplate):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
        (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::ConfigureV8TestNodeTemplate):

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        [V8] Clean up Dictionary::get() by removing redundant FindInstanceInPrototypeChain()
        https://bugs.webkit.org/show_bug.cgi?id=108443

        Reviewed by Adam Barth.

        In Dictionary::get(), wrapper->FindInstanceInPrototypeChain(V8XXX::GetTemplate())
        is unnecessary for DOM wrappers other than DOMWindow. For wrappers other than
        DOMWindow, we can simply use V8XXX::HasInstance(wrapper).

        Tests: fast/events/constructors/*

        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):

2013-01-31  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Support implicit rows and columns
        https://bugs.webkit.org/show_bug.cgi?id=103573

        Reviewed by Ojan Vafai.

        Tests: fast/css-grid-layout/implicit-columns-auto-resolution.html
               fast/css-grid-layout/implicit-rows-auto-resolution.html

        This change makes us properly initialize our GridTrack vectors's size
        so that we can safely query any items during layout.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::gridTrackSize):
        Added this helper function to return the track size from the grid
        element's columns' / rows' definitions or the default value.

        (WebCore::RenderGrid::maximumIndexInDirection):
        Added this helper function to get the maximum index in a direction
        taking grid item's implicit indexes into account.

        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
        Changed the funtion to not append the new tracks as we are properly
        sized now.

        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
        Updated these functions to use the new helper functions.

        (WebCore::RenderGrid::layoutGridItems):
        Changed this function to size both vectors when initializing them.
        Also removed an unneeded bounds check as it shouldn't be needed anymore.

        * rendering/RenderGrid.h:
        Added the new helper functions.

        * rendering/style/GridTrackSize.h:
        (WebCore::GridTrackSize::GridTrackSize):
        Added a constructor taking a LengthType.

2013-01-31  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] fast/css/relative-positioned-block-crash.html is intermittently crashing
        https://bugs.webkit.org/show_bug.cgi?id=108200

        Reviewed by Martin Robinson.

        Getting the Position of a PseudoElement now triggers an assertion.
        This can occur when clicking on empty space in a render block.
        Looking to the unignored parent's node (and passing that accessible
        object on in a signal to Assistive Technologies) seems like the most
        reasonable thing to do here.

        No new tests; instead skipping two tests that were crashing as a result.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (objectFocusedAndCaretOffsetUnignored):

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        [V8] Simplify CodeGeneratorV8.pm by using InheritsExtendedAttribute("EventTarget")
        https://bugs.webkit.org/show_bug.cgi?id=108441

        Reviewed by Adam Barth.

        A complicated condition in GetInternalFields() can be simplified
        by using InheritsExtendedAttribute("EventTarget").

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetInternalFields):
        * dom/EventTarget.idl: Added [EventTarget] which should have been added.
        * svg/SVGElementInstance.idl: Ditto.

2013-01-31  Youenn Fablet  <youennf@gmail.com>

        Quadratic and bezier curves with coincident endpoints rendered incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=105650

        Reviewed by Kenneth Russell.

        Tests: fast/canvas/canvas-bezier-same-endpoint.html
               fast/canvas/canvas-quadratic-same-endpoint.html

        * html/canvas/CanvasPathMethods.cpp:
        (WebCore::CanvasPathMethods::quadraticCurveTo):
        (WebCore::CanvasPathMethods::bezierCurveTo):

2013-01-31  Mark Lam  <mark.lam@apple.com>

        Abstraction for hiding enum class.
        https://bugs.webkit.org/show_bug.cgi?id=108533

        Reviewed by Anders Carlsson.

        No new tests.

        * Modules/webdatabase/DatabaseError.h:
        (WebCore::ENUM_CLASS_BEGIN):

2013-01-31  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        [Gtk] drag and drop has black background without composition
        https://bugs.webkit.org/show_bug.cgi?id=108376

        Reviewed by Martin Robinson.

        Use gtk_drag_set_icon_surface (or gtk_drag_set_icon_pixbuf) when the
        screen is not composited. That way, drag window will be decomposited
        and rendered transparent with Xshape.

        To determine which parts of the window must be transparent, gtk checks
        if a pixel is more than 50% opaque. With dissolveDragImageToFraction,
        all pixels are made 25% transparent. With antialiasing, opacity goes
        below the threshold for some pixels, which makes the resulting image
        messy. So, we need to skip dissolveDragImageToFraction when we use
        gtk_drag_set_icon_surface.

        * platform/gtk/DragIcon.cpp:
        (WebCore::DragIcon::DragIcon):
        (WebCore::DragIcon::~DragIcon):
        (WebCore::DragIcon::setImage):
        (WebCore::DragIcon::useForDrag):
        * platform/gtk/DragIcon.h:
        (DragIcon):
        * platform/gtk/DragImageGtk.cpp:
        (WebCore::dissolveDragImageToFraction):

2013-01-31  Tony Gentilcore  <tonyg@chromium.org>

        Begin to make XSSAuditor thread aware
        https://bugs.webkit.org/show_bug.cgi?id=108394

        Reviewed by Adam Barth.

        This patch moves the parts of filterToken() that depend on Frame, Document, etc. to a delegate class.
        The new didBlockScript delegate method is invoked with the resulting DidBlockScriptRequest which will
        be owned by the CompactHTMLToken in the threaded case.

        This is just the first step as there is more to do to make XSSAuditor thread safe.

        No new tests because covered by existing tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterToken):
        * html/parser/XSSAuditor.h:
        (WebCore):
        (XSSAuditor):
        * html/parser/XSSAuditorDelegate.cpp: Added.
        (WebCore):
        (WebCore::XSSAuditorDelegate::XSSAuditorDelegate):
        (WebCore::XSSAuditorDelegate::didBlockScript):
        * html/parser/XSSAuditorDelegate.h: Added.
        (WebCore):
        (DidBlockScriptRequest):
        (WebCore::DidBlockScriptRequest::create):
        (WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
        (XSSAuditorDelegate):

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::XSSAuditor):
        (WebCore::XSSAuditor::filterToken):
        * html/parser/XSSAuditor.h:
        (WebCore):
        (XSSAuditor):
        * html/parser/XSSAuditorDelegate.cpp: Added.
        (WebCore):
        (WebCore::XSSAuditorDelegate::XSSAuditorDelegate):
        (WebCore::XSSAuditorDelegate::didBlockScript):
        * html/parser/XSSAuditorDelegate.h: Added.
        (WebCore):
        (DidBlockScriptRequest):
        (WebCore::DidBlockScriptRequest::create):
        (WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
        (XSSAuditorDelegate):

2013-01-31  Uday Kiran  <udaykiran@motorola.com>

        CSS3's vh attribute is not adjusting while browser resizes
        https://bugs.webkit.org/show_bug.cgi?id=86418

        Reviewed by Antti Koivisto.

        Elements with viewport percentage units needs layout whenever
        viewport size changes. Check for viewport percentage unit
        was missing for height.

        Test: css3/viewport-percentage-lengths/vh-resize.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateBlockChildDirtyBitsBeforeLayout):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::hasViewportPercentageLogicalHeight): Check if style
        is specified in viewport percentage units.
        (WebCore):
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::layout): Elements with viewport percentage units
        needs relayout when viewport size changes.

2013-01-31  Anton Vayvod  <avayvod@chromium.org>

        TextAutosizing: refactor the cluster related method parameters into a single struct.
        https://bugs.webkit.org/show_bug.cgi?id=108384

        This anticipates adding more cluster related information in the following patches.
        
        Reviewed by Kenneth Rohde Christiansen.

        Just a refactoring so no new tests.

        * rendering/TextAutosizer.cpp: define the new struct and pass it to every method instead of
        a cluster and its descendant block containing all text.
        * rendering/TextAutosizer.h: change method prototypes to receive the new struct
        as a parameter defining an autosizing cluster.

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizingClusterInfo::TextAutosizingClusterInfo):
        (TextAutosizingClusterInfo):
        (WebCore):
        (WebCore::TextAutosizer::processSubtree):
        (WebCore::TextAutosizer::processCluster):
        (WebCore::TextAutosizer::processContainer):
        (WebCore::TextAutosizer::isAutosizingCluster):
        (WebCore::TextAutosizer::clusterShouldBeAutosized):
        (WebCore::TextAutosizer::measureDescendantTextWidth):
        * rendering/TextAutosizer.h:
        (WebCore):

2013-01-31  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Bing Images viewport causes layout "fun"
        https://bugs.webkit.org/show_bug.cgi?id=108393

        Reviewed by Yong Li.
        Internally reviewed by Arvid Nilsson and partially reviewed by Konrad Piascik.

        PR: 277855
        On bing.com image search page, JS generated styles for the divs which
        contained images based on the window.screen and window.innerWidth.
        Unfortunately the styles for the divs weren't good enough on our device
        which resulted in three images being overlapped in the same viewport.
        On our port, we calculate the screen rect base on the physical screen
        pixels. However, iOS and lastest Android Chrome port already changed it
        to density-independent (logical) pixels. And also to my knowledge that
        some websites would generate bad styles for us as well through
        @media device-width/device-height.
        To be consistent and fix such kinds of issues, we should use
        density-independent pixels instead of physical screen pixels. Mainly
        ported from Chrome port change r139356. The patch will affect
        screen.width/height, window.outerWidth/outerHeight and
        @media device-width/device-height.

        * platform/blackberry/PlatformScreenBlackBerry.cpp:
        (WebCore):
        (WebCore::toUserSpace):
        (WebCore::screenAvailableRect):
        (WebCore::screenRect):

2013-01-31  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Parse custom filter function with the at-rule reference syntax
        https://bugs.webkit.org/show_bug.cgi?id=108351

        Reviewed by Dean Jackson.

        This patch implements the parsing for the new custom filter function "at-rule reference"
        syntax. It does not implement the style resolution yet.

        The custom function syntax has changed in the spec. Instead of including all of the custom
        filter information inline, the custom function can now reference an @filter rule by name.
        The custom function can still accept a list of parameters.

        The syntax is defined as the following, where IDENT is the name of the @filter rule:
        filter: custom(IDENT [, <param>]*)

        In practice, it can look like this:
        filter: custom(page-curl, direction 90, amount 0.5);

        Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#customident-ltparamgt

        Tests: css3/filters/custom-with-at-rule-syntax/parsing-custom-function-invalid.html
               css3/filters/custom-with-at-rule-syntax/parsing-custom-function-valid.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCustomFilterParameters):
            Factor out a new function that just parses custom filter parameters. This is used by the
            previous inline syntax and the new at-rule reference syntax.
        (WebCore):
        (WebCore::CSSParser::parseCustomFilterFunctionWithAtRuleReferenceSyntax):
            This method parses the new at-rule reference syntax. When we remove the inline syntax,
            we can rename this method to "parseCustomFilterFunction" and call it directly.
        (WebCore::CSSParser::parseCustomFilterFunctionWithInlineSyntax):
            Move the previous inline syntax parsing code into a new function.
        (WebCore::CSSParser::parseCustomFilterFunction):
            This method looks ahead in the CSS parser values and decides whether to parse the custom
            function with the previous inline syntax or with the new at-rule reference syntax.
        (WebCore::CSSParser::parseFilter):
            I renamed the "parseCustomFilter" method to "parseCustomFilterFunction" to be more
            explicit. Here, we update the name in the call site.
        * css/CSSParser.h:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createCustomFilterOperationWithAtRuleReferenceSyntax):
            This is a stub method. In the future, style resolution for the at-rule reference
            syntax will happen here. When we remove the inline syntax, we can rename this method 
        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
            This method contains the previous inline syntax style resolution code.
        (WebCore):
        (WebCore::StyleResolver::createCustomFilterOperation):
            This method decides which syntax we should use to resolve the style.
        * css/StyleResolver.h:
        (StyleResolver):

2013-01-31  Aurimas Liutikas  <aurimas@chromium.org>

        Editor::m_compositionNode not updated on HTMLInputElement::setValue()
        https://bugs.webkit.org/show_bug.cgi?id=107737

        Reviewed by Ryosuke Niwa.

        Chromium has a bug where the IME composition did not get cancelled on JavaScript changes
        to the focused editing field. Most of other WebKit ports were already doing this check
        in their EditorClient::respondToChangedSelection. I took that logic and moved it to the
        Editor so every port and use the same code.

        An existing test editing/input/setting-input-value-cancel-ime-composition.html covers this change.
        This test used to have an expectation to fail on Chromium and after this patch it will start passing.

        * editing/Editor.cpp:
        (WebCore::Editor::cancelCompositionIfSelectionIsInvalid):
            Adding a call that can be used by any the port to cancel the composition if it's no longer valid.
        (WebCore):
        * editing/Editor.h:
        (Editor):

2013-01-31  Joseph Pecoraro  <pecoraro@apple.com>

        Disable ENABLE_FULLSCREEN_API on iOS
        https://bugs.webkit.org/show_bug.cgi?id=108250

        Reviewed by Benjamin Poulain.

        * Configurations/FeatureDefines.xcconfig:

2013-01-31  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move LocalizedStrings to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=108488

        Reviewed by Adam Barth.

        Part of a larger refactoring series; see tracking bug 106829.

        * WebCore.gypi:
        * platform/chromium/LocalizedStringsChromium.cpp: Copied from Source/WebKit/chromium/src/LocalizedStrings.cpp.
        (WebCore::imageTitle):

2013-01-31  Enrica Casucci  <enrica@apple.com>

        WebKit2: provide new bundle APIs to allow bundle clients to be notified of pasteboard access.
        https://bugs.webkit.org/show_bug.cgi?id=108396.
        <rdar://problem/12920461>

        Reviewed by Alexey Proskuryakov.

        Adds support in WebCore to new EditorClient methods to support the modified
        client bundle API in WebKit2.

        * WebCore.exp.in:
        * editing/Editor.cpp:
        (WebCore::Editor::cut): Added call to willWriteSelectionToPasteboard.
        (WebCore::Editor::copy): Ditto.
        (WebCore::Editor::willWriteSelectionToPasteboard): Added.
        * editing/Editor.h:
        * loader/EmptyClients.h: Added empty client implementation
        for the new methods.
        (WebCore::EmptyEditorClient::willWriteSelectionToPasteboard):
        (WebCore::EmptyEditorClient::getClientPasteboardDataForRange):
        * page/EditorClient.h:
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::writeSelectionForTypes): Added call to getClientPasteboardDataForRange.

2013-01-31  David Kilzer  <ddkilzer@apple.com>

        Use OS() and PLATFORM() macros in WebCorePrefix.h for readability
        <http://webkit.org/b/108374>

        Reviewed by Laszlo Gombos.

        * WebCorePrefix.h: Replaced all possible checks with OS() or
        PLATFORM() macros other than __APPLE__.

2013-01-31  Mike West  <mkwst@chromium.org>

        Cleanup: Use ScriptExecutionContext::topOrigin when relevant.
        https://bugs.webkit.org/show_bug.cgi?id=108476

        Reviewed by Jochen Eisinger.

        Rather than diving through 'frame()->top()' or 'topDocument()' to get
        the SecurityOrigin of the top-level document in a frame, we can now
        directly grab the 'topOrigin()' off of a ScriptExecutionContext. This
        patch adjusts a few callsites to use the new hotness rather than the
        old brokenness.

        This is a pure refactoring: No web-visible changes should result.

        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
        (WebCore::DOMWindowWebDatabase::openDatabase):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::sessionStorage):
        (WebCore::DOMWindow::localStorage):
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::startWorkerContext):

2013-01-31  peavo@outlook.com  <peavo@outlook.com>

        [Curl] There is no way for a WebKit client to set the Curl cookie jar path
        https://bugs.webkit.org/show_bug.cgi?id=107692

        Reviewed by Brent Fulgham.

        Set default cookie jar path.
        Get the cookie jar path for Curl from the environment variable CURL_COOKIE_JAR_PATH.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::cookieJarPath): Added helper function to set cookie jar path.
        (WebCore::ResourceHandleManager::ResourceHandleManager): Call helper function.

2013-01-31  Maciej Stachowiak  <mjs@apple.com>

        REGRESSION (r138962): Fails to show "confirm form resubmission", hangs browser
        https://bugs.webkit.org/show_bug.cgi?id=108214

        Reviewed by Adam Barth.
        
        Attempt a workaround suggested by Nate Chapin by putting some code
        in #ifdef !PLATFORM(CHROMIUM).

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::notifyFinished):

2013-01-31  Ojan Vafai  <ojan@chromium.org>

        REGRESSION(r128517): Percentage heights in quirks mode collapse when printing
        https://bugs.webkit.org/show_bug.cgi?id=108382

        Reviewed by David Hyatt.

        r128517 clean up our containing block finding logic, but broke percentage
        heights in quirks mode during printing since the RenderView would have 0 height.
        Turns out we already had a long-standing bug where we'd incorrectly
        treat collapse percentage heights on the body when printing as well.

        Fix both bugs by changing the way we grab the logical height on the RenderView.
        RenderView::computeLogicalHeight returns 0 when printing. For the purposes of
        stretching and percentage heights, we instead need to return the pageLogicalHeight.

        Tests: printing/quirks-percentage-height-body.html
               printing/quirks-percentage-height.html
               printing/standards-percentage-heights.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeLogicalHeight):
        This FIXME is outdated and already fixed. Also, call viewLogicalHeightForPercentages
        which does the same logic except also correctly handles column RenderViews.
        (WebCore::RenderBox::viewLogicalHeightForPercentages):
        (WebCore::RenderBox::computePercentageLogicalHeight):
        * rendering/RenderBox.h:

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeLogicalHeight):
        (WebCore::RenderBox::viewLogicalHeightForPercentages):
        (WebCore):
        (WebCore::RenderBox::computePercentageLogicalHeight):
        * rendering/RenderBox.h:
        (RenderBox):

2013-01-31  Dirk Schulze  <krit@webkit.org>

        [canvas] Implement currentPath to get and set the current path of the context
        https://bugs.webkit.org/show_bug.cgi?id=108246

        Reviewed by Dean Jackson.

        Add currentPath attribute to CanvasRenderingContext2d interface. This allows
        setting the current context path by an existing Path object as well as getting
        the current context path as new Path object. The returned and the set Paths
        are not live.

        This feature is behind the CANVAS_PATH compiler flag which is disabled by
        default for now.

        Test: fast/canvas/canvas-currentPath.html

        * html/canvas/CanvasPathMethods.cpp: Rename transformIsInvertible to
            isTransformInvertible for harmonizing naming schema.
        (WebCore::CanvasPathMethods::moveTo): Ditto.
        (WebCore::CanvasPathMethods::lineTo): Ditto.
        (WebCore::CanvasPathMethods::quadraticCurveTo): Ditto.
        (WebCore::CanvasPathMethods::bezierCurveTo): Ditto.
        (WebCore::CanvasPathMethods::arcTo): Ditto.
        (WebCore::CanvasPathMethods::arc): Ditto.
        (WebCore::CanvasPathMethods::rect): Ditto.
        * html/canvas/CanvasPathMethods.h: Ditto.
        (CanvasPathMethods):
        (WebCore::CanvasPathMethods::isTransformInvertible):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore):
        (WebCore::CanvasRenderingContext2D::currentPath): Getter for currentPath.
        (WebCore::CanvasRenderingContext2D::setCurrentPath): Setter for currentPath.
        * html/canvas/CanvasRenderingContext2D.h:
        (WebCore):
        (CanvasRenderingContext2D):
        (WebCore::CanvasRenderingContext2D::isTransformInvertible):
        * html/canvas/CanvasRenderingContext2D.idl: Add currentPath attribute.
        * html/canvas/DOMPath.h: Add new constructor and getter for Path object.
        (WebCore::DOMPath::create): New static function for new ctor.
        (DOMPath):
        (WebCore::DOMPath::path): Getter for Path object.
        (WebCore::DOMPath::DOMPath):

2013-01-31  Alexandre Elias  <aelias@chromium.org>

        Call FrameView::contentsResized() when setting fixed layout size
        https://bugs.webkit.org/show_bug.cgi?id=107922

        Reviewed by James Robinson.

        In fixed layout mode, we should be calling contentsResized() when the
        fixed layout size is changed, but not laying out when the visible
        content rect changes.

        Previously landed as r140869 but was reverted due to a bug in bundled
        Chromium-specific code. This patch includes just the minimum needed in
        WebCore.

        New WebFrameTest: FrameViewNeedsLayoutOnFixedLayoutResize.  Some
        flaky and obsolete tests for the old page scale mode are also deleted.

        * page/FrameView.cpp:
        (WebCore::FrameView::visibleContentsResized):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::setFixedLayoutSize):
        (WebCore::ScrollView::setUseFixedLayout):

2013-01-31  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] CookieParser should ignore invalid/unsupported attributes instead of ignoring the cookie
        https://bugs.webkit.org/show_bug.cgi?id=108494

        PR 287832
        Reviewed by Rob Buis.
        Internally Reviewed by Liam Quinn.

        A short-term fix for CookieParser to not blow up when a Set-Cookie header has an invalid
        or unsupported cookie attribute.

        We will ignore the attribute only, not the entire cookie.

        Also, making sure the parser won't replace values of valid attributes when evaluating an unsupported
        cookie with the same length and same first character as a supported attribute.

        Tested using opera cookie and browser.swlab.rim.net cookies test suite. Tested using regular sites that
        has a login mechanism.

        * platform/blackberry/CookieParser.cpp:
        (WebCore::CookieParser::parseOneCookie):

2013-01-31  Tommy Widenflycht  <tommyw@google.com>

        [chromium] MediaStream API: Rename WebMediaStreamDescriptor and WebMediaStreamComponent to WebMediaStream and WebMediaStreamTrack
        https://bugs.webkit.org/show_bug.cgi?id=108458

        Reviewed by Adam Barth.

        Only renames, no other code changes.

        * WebCore.gypi:
        * platform/chromium/support/WebMediaStream.cpp: Added.
        (WebKit::WebMediaStream::WebMediaStream):
        (WebKit):
        (WebKit::WebMediaStream::reset):
        (WebKit::WebMediaStream::label):
        (WebKit::WebMediaStream::id):
        (WebKit::WebMediaStream::extraData):
        (WebKit::WebMediaStream::setExtraData):
        (WebKit::WebMediaStream::audioSources):
        (WebKit::WebMediaStream::videoSources):
        (WebKit::WebMediaStream::operator=):
        (WebKit::WebMediaStream::operator PassRefPtr<WebCore::MediaStreamDescriptor>):
        (WebKit::WebMediaStream::operator WebCore::MediaStreamDescriptor*):
        (WebKit::WebMediaStream::initialize):
        (WebKit::WebMediaStream::assign):
        * platform/chromium/support/WebMediaStreamComponent.cpp: Removed.
        * platform/chromium/support/WebMediaStreamDescriptor.cpp: Removed.
        * platform/chromium/support/WebMediaStreamTrack.cpp: Added.
        (WebKit):
        (WebKit::WebMediaStreamTrack::WebMediaStreamTrack):
        (WebKit::WebMediaStreamTrack::operator=):
        (WebKit::WebMediaStreamTrack::initialize):
        (WebKit::WebMediaStreamTrack::reset):
        (WebKit::WebMediaStreamTrack::operator PassRefPtr<MediaStreamComponent>):
        (WebKit::WebMediaStreamTrack::operator MediaStreamComponent*):
        (WebKit::WebMediaStreamTrack::isEnabled):
        (WebKit::WebMediaStreamTrack::id):
        (WebKit::WebMediaStreamTrack::stream):
        (WebKit::WebMediaStreamTrack::source):
        (WebKit::WebMediaStreamTrack::assign):
        * platform/chromium/support/WebRTCStatsRequest.cpp:
        (WebKit::WebRTCStatsRequest::stream):
        (WebKit::WebRTCStatsRequest::component):
        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
        (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
        (WebCore::MediaStreamCenterChromium::stopLocalMediaStream):
        (WebCore::MediaStreamCenterChromium::addMediaStreamTrack):
        (WebCore::MediaStreamCenterChromium::removeMediaStreamTrack):
        * platform/mediastream/chromium/MediaStreamCenterChromium.h:
        (WebKit):
        (MediaStreamCenterChromium):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteStream):
        (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (WebKit):
        (RTCPeerConnectionHandlerChromium):

2013-01-31  Dmitry Zvorygin  <zvorygin@chromium.org>

        Web Inspector: searching for <u> in elements panel finds all tags containing "u"
        https://bugs.webkit.org/show_bug.cgi?id=108176

        Reviewed by Pavel Feldman.

        When searching for tag name check that tag name must either start from
        search query, or must end with it.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::performSearch):

2013-01-30  Mark Lam  <mark.lam@apple.com>

        DatabaseContext needs to outlive the ScriptExecutionContext.
        https://bugs.webkit.org/show_bug.cgi?id=108355.

        Reviewed by Geoffrey Garen.

        Added a RefPtr<DatabaseContext> in ScriptExecutionContext to keep the
        DatabaseContext alive until after ScriptExecutionContext destructs.

        No new tests.

        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::DatabaseContext):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::setDatabaseContext):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):

2013-01-31  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        On Linux, can't get spelling suggestions without selection when unified text checker is enabled
        https://bugs.webkit.org/show_bug.cgi?id=107684

        Reviewed by Ryosuke Niwa.

        No new tests, covered by context-menu-suggestions.html.

        * editing/Editor.cpp:
        (WebCore::Editor::guessesForMisspelledOrUngrammatical):
        For Linux, extend selection range to the closest word to get
        the spelling suggestions when unified text checker is enabled.

2013-01-31  Florin Malita  <fmalita@chromium.org>

        [Skia] Update SkiaImageFilterBuilder's brightness matrix to match Chromium's implementation
        https://bugs.webkit.org/show_bug.cgi?id=107841

        Reviewed by Stephen White.

        Update Skia's brightness filter to match the spec after http://trac.webkit.org/changeset/139770.

        No new tests: covered by existing tests (currently disabled pending rebaseline).

        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:

2013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: show cursor location in DTE
        https://bugs.webkit.org/show_bug.cgi?id=108478

        Reviewed by Pavel Feldman.

        Add a new status bar element to SourceFrame to display current
        DefaultTextEditor cursor position.

        No new tests.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.copyRange):
        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame):
        (WebInspector.SourceFrame.prototype.statusBarItems):
        (WebInspector.SourceFrame.prototype.selectionChanged):
        (WebInspector.SourceFrame.prototype._updateSourcePosition):
        * inspector/front-end/TextEditor.js:
        (WebInspector.TextEditor.prototype.copyRange):
        * inspector/front-end/inspector.css:
        (.source-frame-position):

2013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: overlay highlight in DTE gets messed up when zoom factor changes.
        https://bugs.webkit.org/show_bug.cgi?id=108486

        Reviewed by Pavel Feldman.

        Repaint overlay highlight when zoom factor changes.

        No new tests.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
        (WebInspector.TextEditorMainPanel.prototype.removeHighlight):
        (WebInspector.TextEditorMainPanel.prototype.highlightRange):
        (WebInspector.TextEditorMainPanel.prototype._repaintLineRowsAffectedByHighlightDescriptors):
        (WebInspector.TextEditorMainPanel.prototype.resize):

2013-01-31  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Fix minor memory leak in slot execution

        Reviewed by Allan Sandfeld Jensen.

        Don't leak the "length" string when executing a slot in JavaScript.

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::QtConnectionObject::execute):

2013-01-31  Mike West  <mkwst@chromium.org>

        Allow blocking of IndexedDB in third-party contexts
        https://bugs.webkit.org/show_bug.cgi?id=94171

        Reviewed by Jochen Eisinger.

        This patch ensures that the origin of the top window is passed into
        SecurityOrigin::canAccessDatabase when working with IndexedDB. Giving
        SecurityOrigin access to this data means that it can properly check
        whether the database is being opened in a third-party context, and
        therefore properly enforce the third-party access checks that were
        added in http://trac.webkit.org/changeset/125736.

        Third-party checks are added to IDBFactory::open,
        IDBFactory::deleteDatabase, and IDBFactory::getDatabaseNames; each will
        now throw a SECURITY_ERR exception when access in a third-party context
        if third-party access checks are enabled.

        To make this process slightly more clear, and avoid some ugly casting
        logic, this patch adds a 'topOrigin'  method to ScriptExecutionContext,
        and implements it on both WorkerContext and Document.

        Tests: http/tests/security/cross-origin-indexeddb-allowed.html
               http/tests/security/cross-origin-indexeddb.html
               http/tests/security/cross-origin-worker-indexeddb-allowed.html
               http/tests/security/cross-origin-worker-indexeddb.html

        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::getDatabaseNames):
        (WebCore::IDBFactory::openInternal):
        (WebCore::IDBFactory::deleteDatabase):
            Grab the SecurityOrigin of the current context's top-level origin,
            and pass it to SecurityOrigin::canAccessDatabase to ensure that
            access checks are properly applied to these three methods.
        * dom/Document.cpp:
        (WebCore::Document::topOrigin):
        (WebCore):
        * dom/Document.h:
        (Document):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
            Add a topOrigin() method to ScriptExecutionContext, and implement it
            on Document in order to give callers access to the top document's
            SecurityOrigin without casting ScriptExecutionContext.
        * workers/WorkerContext.h:
            Change the existing topOrigin() method to override the new method
            on ScriptExecutionContext.

2013-01-31  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Add cookie column to show presence of request/response cookies.
        https://bugs.webkit.org/show_bug.cgi?id=107441

        Reviewed by Pavel Feldman.

        In some use cases only responses that contain "set-cookie" headers
        are interesting.

        * English.lproj/localizedStrings.js: Added "Set-Cookies" string.
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._createTable): Added columns.
        (WebInspector.NetworkLogView.prototype._createSortingFunctions): Ditto.
        (WebInspector.NetworkDataGridNode.prototype.createCells): Ditto.
        (WebInspector.NetworkDataGridNode.prototype.refreshRequest): Ditto.
        (WebInspector.NetworkDataGridNode.prototype._refreshCookiesCell): Added.
        (WebInspector.NetworkDataGridNode.prototype._refreshSetCookiesCell): Added.
        (WebInspector.NetworkDataGridNode.RequestCookiesCountComparator): Added.
        (WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator): Added.

2013-01-31  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: Exception in HeapSnapshotView.js
        https://bugs.webkit.org/show_bug.cgi?id=108456

        Reviewed by Yury Semikhatsky.

        Listen "profile added" events in the HeapSnapshotView targeted only to the Heap Snapshot type.

        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapSnapshotView.prototype._onProfileHeaderAdded):

2013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: do not set any textContent in overlay highlight spans
        https://bugs.webkit.org/show_bug.cgi?id=108460

        Reviewed by Pavel Feldman.

        Do not set any text content for overlay highlight spans to implicitly
        set its height. Instead, measure its height in the same manner as its
        done for "width" and "left" and set it explicitly.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
        (WebInspector.TextEditorMainPanel.ElementMetrics):
        * inspector/front-end/textEditor.css:
        (.text-editor-token-highlight): Update highlight to correspond to
        slightly different elements height.

2013-01-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Box shadows on a transparency layer is very slow
        https://bugs.webkit.org/show_bug.cgi?id=107547

        Reviewed by Noam Rosenthal.

        Include the window boundaries in the clip returned by GraphicsContext,
        since QPainter may remember clips larger than the destination, but
        ShadowBlur uses the clipBounds to determine the size of the shadow layer.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::clipBounds):

2013-01-31  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: highlight backend languages as scripts
        https://bugs.webkit.org/show_bug.cgi?id=108336

        Reviewed by Vsevolod Vlasov.

        Most languages have structure similar to js, so enabling default highlighter for them won't hurt.

        * inspector/front-end/FileSystemWorkspaceProvider.js:
        (WebInspector.FileSystemWorkspaceProvider.prototype._contentTypeForPath):

2013-01-31  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Profiles] show launcher view upon deleting last profile type's header
        https://bugs.webkit.org/show_bug.cgi?id=108468

        Reviewed by Pavel Feldman.

        We should show launcher view and hide profile type sidebar section upon deleting last profile type's header from the sidebar.
        Right now we only show launcher view upon deleting the last profile header (of any profile type).

        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):

2013-01-31  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Columns are misaligned as first row goes out of sight.
        https://bugs.webkit.org/show_bug.cgi?id=107933

        Reviewed by Pavel Feldman.

        For some reason if "td" elements in first table row have "display: none"
        style, then column width calculation breaks.

        * inspector/front-end/networkLogView.css:
        (.network-log-grid.data-grid tr.offscreen > td > div):
        Hide content instead of "td" element itself.

2013-01-31   Vineet Chaudhary  <rgf748@motorola.com>

        formMethod to have empty string as default value and 'get' as invalid.
        https://bugs.webkit.org/show_bug.cgi?id=108263

        Reviewed by Kent Tamura.

        The spec says formmethod should only have an invalid value default, not a missing value default.
        Spec: http://www.whatwg.org/specs/web-apps/current-work/#form-submission-0
              http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formmethod

        Test: fast/forms/formmethod-attribute-test.html

        * html/HTMLFormControlElement.cpp: For the missing formMethod attr return empty string.
        (WebCore::HTMLFormControlElement::formMethod):

2013-01-20 Kondapally Kalyan <kalyan.kondapally@intel.com>

        [Efl][WebGL] Add better support to track and free XResources.
        https://bugs.webkit.org/show_bug.cgi?id=107397

        Reviewed by Noam Rosenthal.

        We leak Memory during config selection as we dont free temporary
        allocated visuals, config etc. This patch ensures that we dont leak any
        memory.

        Covered by existing WebGL tests.

        * platform/graphics/surfaces/egl/EGLSurface.cpp:
        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
        (WebCore::GLXConfigSelector::GLXConfigSelector):
        (WebCore::GLXConfigSelector::visualInfo):
        (WebCore::GLXConfigSelector::pBufferContextConfig):
        (WebCore::GLXConfigSelector::surfaceContextConfig):
        (WebCore::GLXConfigSelector::createSurfaceConfig):
        (GLXConfigSelector):
        Removed XVisualInfo as member variable. Fixed memory leaks.

        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        * platform/graphics/surfaces/glx/OwnPtrX11.h: Added.
        (OwnPtrX11):
        (WebCore::OwnPtrX11::OwnPtrX11):
        (WebCore::OwnPtrX11::~OwnPtrX11):
        (WebCore::OwnPtrX11::operator=):
        (WebCore::OwnPtrX11::operator T*):
        (WebCore::OwnPtrX11::operator->):
        (WebCore::OwnPtrX11::get):
        Calls XFree on pointer to memory allocated by X when the class goes out of scope.
        OwnPtr cannot be used here as GLXFBConfig is a pointer to an array of pointers.

        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
        (WebCore::X11OffScreenWindow::~X11OffScreenWindow):
        (WebCore):
        (WebCore::X11OffScreenWindow::createOffScreenWindow):
        (WebCore::X11OffScreenWindow::destroyWindow):
        (WebCore::X11OffScreenWindow::nativeSharedDisplay):
        * platform/graphics/surfaces/glx/X11WindowResources.h:
        (X11OffScreenWindow):
        Removed unused code. Fixed memory leaks.

2013-01-31  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] remove invalid canvas profile trace logs upon frame navigation
        https://bugs.webkit.org/show_bug.cgi?id=108454

        Reviewed by Pavel Feldman.

        When canvas profile trace logs stored in the backend get destroyed (for example, on frame navigation), send an event to frontend and update the UI.
        Drive-by: replace String types to corresponding TypeBuilder::Canvas::* typedefs.

        * inspector/InjectedScriptCanvasModule.cpp:
        (WebCore::InjectedScriptCanvasModule::captureFrame):
        (WebCore::InjectedScriptCanvasModule::startCapturing):
        (WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
        (WebCore::InjectedScriptCanvasModule::stopCapturing):
        (WebCore::InjectedScriptCanvasModule::dropTraceLog):
        (WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
        (WebCore::InjectedScriptCanvasModule::traceLog):
        (WebCore::InjectedScriptCanvasModule::replayTraceLog):
        (WebCore::InjectedScriptCanvasModule::resourceInfo):
        (WebCore::InjectedScriptCanvasModule::resourceState):
        * inspector/InjectedScriptCanvasModule.h:
        (InjectedScriptCanvasModule):
        * inspector/Inspector.json:
        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::dropTraceLog):
        (WebCore::InspectorCanvasAgent::stopCapturing):
        (WebCore::InspectorCanvasAgent::getTraceLog):
        (WebCore::InspectorCanvasAgent::replayTraceLog):
        (WebCore::InspectorCanvasAgent::getResourceInfo):
        (WebCore::InspectorCanvasAgent::getResourceState):
        (WebCore::InspectorCanvasAgent::frameNavigated):
        * inspector/InspectorCanvasAgent.h:
        (InspectorCanvasAgent):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::hasIdForFrame):
        (WebCore):
        * inspector/InspectorPageAgent.h:
        (InspectorPageAgent):
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
        (WebInspector.CanvasProfileType.prototype._startFrameCapturing):
        (WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
        (WebInspector.CanvasProfileType.prototype._traceLogsRemoved):
        (WebInspector.CanvasDispatcher.prototype.contextCreated):
        (WebInspector.CanvasDispatcher.prototype.traceLogsRemoved):
        (WebInspector.CanvasProfileHeader):
        (WebInspector.CanvasProfileHeader.prototype.frameId):

2013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: DTE doesn't highlight words if the selected one is the last in the line
        https://bugs.webkit.org/show_bug.cgi?id=108344

        Reviewed by Pavel Feldman.

        Fix error in _isWord function which made an erroneous line-end check.

        Improved test: inspector/editor/text-editor-highlight-token.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):

2013-01-31  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, Qt build fix after r141265.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        Avoid uninitialized variable error when NATIVE_FULLSCREEN_VIDEO is disabled.

2013-01-31  Kent Tamura  <tkent@chromium.org>

        Click on a label element won't select input[type=date]
        https://bugs.webkit.org/show_bug.cgi?id=108428

        Reviewed by Kentaro Hara.

        date/time input types with INPUT_MULTIPLE_FIELDS_UI are not
        mouse-focusable. <input> as a shadow host never gets focus and
        sub-fields in its shadow tree are focusable. Howevever, the click
        handling of <label> checked isMouseFocusable. We introduce new function
        isFocusableByClickOnLabel to HTMLElement. It's default implementation is
        same as isMouseFocusable, and we add special handling for
        BaseMultipleFieldsDateAndTimeInputType::isFocusableByClickOnLabel.

        Also, date/time input types without INPUT_MULTIPLE_FIELDS_UI were not
        mouse-focusable by a mistake. It should be mouse-focusable.

        Test: fast/forms/date/date-click-on-label.html

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::isFocusableByClickOnLabel):
        Added. Just calls isMouseFocusable.
        * html/HTMLElement.h:
        (HTMLElement): Declare isFocusableByClickOnLabel.
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::defaultEventHandler):
        Calls isFocusableByClickOnLabel instead of isMouseFocusable.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::isFocusableByClickOnLabel):
        Delegate to InputType::isFocusableByClickOnLabel.
        * html/HTMLInputElement.h:
        (HTMLInputElement): Declare isFocusableByClickOnLabel.
        * html/InputType.cpp:
        (WebCore::InputType::isFocusableByClickOnLabel):
        Added. Calls isMouseFocusable.
        * html/InputType.h:
        (InputType): Declare isFocusableByClickOnLabel.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isFocusableByClickOnLabel):
        Added. Use the same logic with textfields.
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType): Declare isFocusableByClickOnLabel.
        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::isMouseFocusable):
        Added. Use the same logic with textfields.
        * html/BaseChooserOnlyDateAndTimeInputType.h:
        (BaseChooserOnlyDateAndTimeInputType): Declare isMouseFocusable.

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        Rename WheelEvent::Granularity to WheelEvent::DeltaMode
        https://bugs.webkit.org/show_bug.cgi?id=108434

        Reviewed by Ryosuke Niwa.

        Per the spec, WheelEvent::Granularity should be renamed to WheelEvent::DeltaMode.

        Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent
        https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#constructor-wheelevent

        No tests. No change in behavior.

        * dom/WheelEvent.cpp:
        (WebCore::WheelEvent::WheelEvent):
        (WebCore::WheelEvent::initWheelEvent):
        (WebCore::deltaMode):
        (WebCore::WheelEventDispatchMediator::WheelEventDispatchMediator):
        * dom/WheelEvent.h:
        (WebCore::WheelEvent::create):
        (WebCore::WheelEvent::deltaMode):
        (WheelEvent):
        * page/EventHandler.cpp:
        (WebCore::wheelGranularityToScrollGranularity):
        (WebCore::EventHandler::defaultWheelEventHandler):

2013-01-30  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: test that nodes from the same detached DOM tree will get into one group in heap snapshot
        https://bugs.webkit.org/show_bug.cgi?id=108202

        Reviewed by Vsevolod Vlasov.

        Test: inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html

        * inspector/front-end/JSHeapSnapshot.js:
        (WebInspector.JSHeapSnapshotNode.prototype.className): removed unnecessary i18n.

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        [V8] Trace not only major DOM GCs but also minor DOM GCs
        https://bugs.webkit.org/show_bug.cgi?id=108436

        Reviewed by Adam Barth.

        Currently only major DOM GCs are traced.
        We should also trace minor DOM GCs.

        No tests. No change in behavior.

        * bindings/v8/V8GCController.cpp:
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::minorGCEpilogue):

2013-01-31  Yury Semikhatsky  <yurys@chromium.org>

        Layout Test inspector-protocol/take-heap-snapshot.html crashes in the Debug mode
        https://bugs.webkit.org/show_bug.cgi?id=104800

        Reviewed by Jochen Eisinger.

        The test crashed because during snapshot generation Profiler.reportHeapSnapshotProgress
        events were sent to the inspector front-end, then parsed and dispatched there.
        Since in case of layout tests the front-end resides in the same process
        as the inspected page parsing the event broke an assumption that there are
        no JS heap allocations while heap snapshot is being taken.

        I added optional boolean parameter 'reportProgress' to Profiler.takeHeapSnapshot
        command so that the protocol client can control whether progress events should
        be sent during snapshot generation. The protocol test is not interested in the
        progress events and sets reportProgress to false.

        Test: inspector-protocol/heap-profiler/take-heap-snapshot.html

        * inspector/Inspector.json:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::takeHeapSnapshot):
        * inspector/InspectorProfilerAgent.h:
        (InspectorProfilerAgent):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):

2013-01-31  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141110.
        http://trac.webkit.org/changeset/141110
        https://bugs.webkit.org/show_bug.cgi?id=108349

        This patch broke WK2-EFL unit tests (Requested by grzegorz on
        #webkit).

        * platform/text/TextChecking.h:
        (WebCore):

2013-01-31  Kentaro Hara  <haraken@chromium.org>

        [V8] 'new MouseEvent("click", {relatedTarget: window}).window' should return window
        https://bugs.webkit.org/show_bug.cgi?id=108432

        Reviewed by Adam Barth.

        In V8 'new MouseEvent("click", {relatedTarget: window}).window'
        returns null. JSC returns window, which is a correct behavior.
        V8 should also return window.

        The point is that we need to handle a DOMWindow wrapper specially
        before converting it to an EventTarget object. A wrapper returned by
        Dictionary::get("relatedTarget") is not an expected DOMWindow wrapper.
        To get the expected DOMWindow wrapper, we need to look up a prototype
        chain of the DOMWindow wrapper.

        In JSC, this special handling is done by JSEventTargetCustom::toEventTarget().

        Test: fast/events/constructors/mouse-event-constructor.html

        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):

2013-01-31  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move MediaPlayerPrivateChromium to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=108415

        Reviewed by Adam Barth.

        Part of a larger refactoring series; see tracking bug 106829.

        * WebCore.gypi:
        * platform/graphics/chromium/MediaPlayerPrivateChromium.cpp: Added.
        (WebCore):
        (WebCore::MediaPlayerPrivate::registerMediaEngine): call
        registerMediaEngine through static function pointer that was set
        during WebKit initializeWithoutV8
        (WebCore::MediaPlayerPrivate::setMediaEngineRegisterSelfFunction):
        new setter function that takes a function pointer that is used by registerMediaEngine
        * platform/graphics/chromium/MediaPlayerPrivateChromium.h:
        (WebCore):
        (MediaPlayerPrivate):

2013-01-30  Patrick Gansterer  <paroga@webkit.org>

        Port DragImageWin.cpp to WinCE
        https://bugs.webkit.org/show_bug.cgi?id=108329

        Reviewed by Brent Fulgham.

        Add #if !OS(WINCE) around a few lines of the code, so it can be used by the WinCE port too.

        * PlatformWinCE.cmake:
        * platform/win/DragImageWin.cpp:
        (WebCore::dragLabelFont):
        * platform/wince/DragImageWinCE.cpp: Removed.

2013-01-30  Hayato Ito  <hayato@chromium.org>

        Split CSSOMWrapper data and functions out from StyleResolver into its own class.
        https://bugs.webkit.org/show_bug.cgi?id=107779

        Reviewed by Dimitri Glazkov.

        Factored CSSOMWrapper logic and data out from StyleResolver into a
        InspectorCSSOMWrappers class.  Since InspectorCSSOMWrappers
        depends on static variables defined in StyleResolver.cpp, this
        patch does not extract a new class into a new file, which makes a
        review easier since it produces readable diffs.

        After we factor static variables related to default style sheets
        in a following patch (bug 107780), I'll move
        InspectorCSSOMWrappers into a its own file.

        No new tests, refactoring only.

        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::StyleResolver::appendAuthorStyleSheets):
        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetIfNeeded):
        (WebCore::InspectorCSSOMWrappers::collect):
        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents): Name it explicitly rather than overloading.
        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheets): Name it explicitly rather than overloading.
        (WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection): Name it explicitly rather than overloading.
        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets): Renamed from ensureFullCSSOMWrapperForInspector().
        (WebCore::InspectorCSSOMWrappers::reportMemoryUsage):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/StyleResolver.h:
        (InspectorCSSOMWrappers):
        (WebCore):
        (StyleResolver):
        (WebCore::StyleResolver::inspectorCSSOMWrappers):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::willMatchRule):
        (WebCore::InspectorCSSAgent::willProcessRule):
        (WebCore::InspectorCSSAgent::buildObjectForRule):

2013-01-30  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141358.
        http://trac.webkit.org/changeset/141358
        https://bugs.webkit.org/show_bug.cgi?id=108421

        breaks android builder (Requested by morrita on #webkit).

        * bindings/v8/custom/V8IntentCustom.cpp:

2013-01-30  Kentaro Hara  <haraken@chromium.org>

        [V8] Use state->isolate() when state is not 0
        https://bugs.webkit.org/show_bug.cgi?id=107674

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::start):
        (WebCore::ScriptProfiler::stop):

2013-01-30  Adam Barth  <abarth@webkit.org>

        The background HTML parser should be able to parse speculatively
        https://bugs.webkit.org/show_bug.cgi?id=107753

        Reviewed by Eric Seidel.

        This patch adds the ability for the foreground HTML parser to
        invalidate speculative parsing done by the background HTML parser.
        Currently, we're a bit overly agressive an invalidate all speculations
        on document.write. We plan to refine that in the future.

        Test: fast/parser/document-write-partial-script.html

        * WebCore.gypi:
        * html/parser/BackgroundHTMLInputStream.cpp: Added.
        (WebCore):
        (WebCore::BackgroundHTMLInputStream::BackgroundHTMLInputStream):
        (WebCore::BackgroundHTMLInputStream::append):
        (WebCore::BackgroundHTMLInputStream::close):
        (WebCore::BackgroundHTMLInputStream::createCheckpoint):
        (WebCore::BackgroundHTMLInputStream::rewindTo):
        * html/parser/BackgroundHTMLInputStream.h: Added.
        (WebCore):
        (BackgroundHTMLInputStream):
        (WebCore::BackgroundHTMLInputStream::current):
        (WebCore::BackgroundHTMLInputStream::Checkpoint::Checkpoint):
        (Checkpoint):
        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::append):
        (WebCore):
        (WebCore::BackgroundHTMLParser::resumeFrom):
        (WebCore::BackgroundHTMLParser::markEndOfFile):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
        (WebCore::BackgroundHTMLParser::resumeFromPartial):
        * html/parser/BackgroundHTMLParser.h:
        (BackgroundHTMLParser):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::didFailSpeculation):
        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
        * html/parser/HTMLDocumentParser.h:
        (ParsedChunk):
        (HTMLDocumentParser):

2013-01-30  Nils Barth  <nbarth@google.com>

        [V8] Add IDL 'enum' support to CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=106553

        Reviewed by Kentaro Hara.

        Add partial support for Web IDL enumerations in V8 bindings

        Binding generators currently cannot handle IDL enumerations.
        (An enumeration is an DOMString with a limited set of values, thus
        treated internally as DOMString, with validation code added in
        bindings.)
        This adds support for enumerations in V8, adding validation checking
        to setters.
        It does not add validation checking to operations (no test case), and
        does not add support in JSC.

        Test: bindings/scripts/test/TestObj.idl (run-bindings-test)

        * bindings/scripts/IDLParser.pm:
         - Parser assumes all IDL definitions are interfaces; add support for
           other definitions
         - Parser parses but discards enum definitions; instead, record
           parsed data
        (Parse): Sort definitions into interfaces and enums.
        Remove "@definitions eq (someIdlDocument)" test, as this never
        happens (fossil code) -- parseDefinitions returns list of definitions,
        never a one-item list consisting of a document (no nested documents).
        (unquoteString): new utility function to unquote StringToken (token
        itself still quoted)
        (parseEnum):
        (parseEnumValueList):
        (parseEnumValues):
        (parseEnumOld):

        * bindings/scripts/CodeGenerator.pm:
         - Expose parsed enum data to backends (detect enums, list valid
           values)
         - Enums treated as DOMString type in internal function
        (ProcessDocument):
        (IsEnumType):
        (ValidEnumValues):
        (IsRefPtrType):
        * bindings/scripts/CodeGeneratorV8.pm:
         - Enums treated as DOMString type in internal functions
         - Add validation to setter
        (GenerateNormalAttrSetter):
        (GetNativeType):
        (JSValueToNative):
        (NativeToJSValue):
        (ConvertToV8StringResource):
        * bindings/scripts/test/TestObj.idl:
         - New enum type and enum variable test for IDL enumeration support
        * bindings/scripts/test/V8/V8TestObj.cpp:
         - Generated code, desired behavior
        (WebCore::TestObjV8Internal::enumAttrAttrGetter):
        (TestObjV8Internal):
        (WebCore::TestObjV8Internal::enumAttrAttrSetter):
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.cpp:
         - Generated code, currently incorrect
        (WebCore):
        (WebCore::jsTestObjEnumAttr):
        (WebCore::setJSTestObjEnumAttr):
        * bindings/scripts/test/JS/JSTestObj.h:
         - Generated code, currently incorrect
        (WebCore):

2013-01-30  Nico Weber  <thakis@chromium.org>

        [chromium] Build webkit with enable_web_intents set to 0.
        https://bugs.webkit.org/show_bug.cgi?id=108408

        Reviewed by Kentaro Hara.

        I'll then make chromium build fine with that, then switch
        enable_web_intents to 0, roll that into webkit, and then
        actually remove the code hidden behind this flag.

        * bindings/v8/custom/V8IntentCustom.cpp:

2013-01-30  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove speculative dispatchEvent crash fix now that root cause is addressed
        https://bugs.webkit.org/show_bug.cgi?id=108131

        Reviewed by Tony Chang.

        A patch was landed in r140027 to prevent a null pointer crash in
        IDBRequest::dispatchEvent and confirm the source of the crash (which
        we couldn't repro locally). Following confirmation from user reports,
        the root cause was tracked down to a race condition in MessageQueue,
        and was fixed in r140483. This patch is no longer needed, and there's
        always been an ASSERT in place to catch regressions while debugging.

        No new tests - no behavior change.

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::dispatchEvent): Remove extraneous test.

2013-01-30  Joe Mason  <jmason@rim.com>

        [BlackBerry] Store both proxy and host credentials simultaneously for NetworkJob
        https://bugs.webkit.org/show_bug.cgi?id=108388

        Reviewed by Yong Li.

        The platform NetworkRequest interface has been updated again, to store both a proxy and host
        credential for each request (to prevent an infinite loop when a request authenticates against a
        proxy but fails the host authentication, and then the followup contains the host credential but not
        the proxy credential so it fails proxy authentication, so the next followup contains the proxy
        credential but not the host credential...)

        Complying with the new interface requires the host and proxy challenge to be stored separately in
        webkit so they can both be added to the same NetworkRequest.

        Internal PR: 281172
        Internal Reviewer: Leo Yang

        * platform/network/ResourceHandleInternal.h:
        (ResourceHandleInternal):
        * platform/network/blackberry/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::hasCredentials):
        (AuthenticationChallenge):
        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyAuthReceived):
        (WebCore::NetworkJob::handleRedirect):
        (WebCore::NetworkJob::sendRequestWithCredentials):
        (WebCore::NetworkJob::storeCredentials):
        (WebCore):
        (WebCore::NetworkJob::purgeCredentials):
        (WebCore::NetworkJob::notifyChallengeResult):
        (WebCore::NetworkJob::updateCurrentWebChallenge):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::setAuthCredentials):
        (WebCore):
        (WebCore::NetworkManager::startJob):

2013-01-30  Oliver Hunt  <oliver@apple.com>

        Make JSEventListener more robust in the event of the compiled handler being released.
        https://bugs.webkit.org/show_bug.cgi?id=108390

        Reviewed by Michael Saboff.

        It shouldn't be possible for a handler to be collected for any object that
        might still trigger an event.  Nonetheless it does still happen, and the
        only point of failure that currently exists is compiling the handler.

        This patch is mostly just assertions, but also removes a bunch of field
        clearing that was previously being performed.  Given we do seem to periodically
        end up needing to recompile a handler this appears to be necessary.  That
        said there does not appear to be a memory hit from this as the event handlers
        that make us use JSLazyEventListener are not frequently compiled, and the bulk
        of the functions that are compiled end up causing us to keep the strings around
        anyway.

        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::JSLazyEventListener):
        (WebCore::JSLazyEventListener::initializeJSFunction):

2013-01-30  Kentaro Hara  <haraken@chromium.org>

        Implement KeyboardEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=108320

        Reviewed by Adam Barth.

        This patch implements KeyboardEvent constructor under a DOM4_EVENTS_CONSTRUCTOR flag,
        which is enabled on Chromium and Safari.

        This significantly simplifies a code to construct a KeyboardEvent.

        Before:
          e = document.createEvent("KeyboardEvent");
          e.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 0, 0);

        After:
          e = new KeyboardEvent("keypress");

        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm

        - 'char' and 'code' are not yet supported due to lack of WebCore implementation.

        - 'altGraphKey' is not supported because it's an extended attribute in WebKit
        and is not speced.

        - Renamed keyboard event constant variables to avoid style errors.

        Test: fast/events/constructors/keyboard-event-constructor.html

        * dom/KeyboardEvent.cpp:
        (WebCore::keyLocationCode):
        (WebCore::KeyboardEventInit::KeyboardEventInit):
        (WebCore):
        (WebCore::KeyboardEvent::KeyboardEvent):
        * dom/KeyboardEvent.h:
        (WebCore):
        (WebCore::KeypressCommand::KeypressCommand):
        (KeypressCommand):
        (KeyboardEventInit):
        (KeyboardEvent):
        (WebCore::KeyboardEvent::create):
        (WebCore::KeyboardEvent::keyIdentifier):
        (WebCore::KeyboardEvent::keyLocation):
        (WebCore::KeyboardEvent::altGraphKey):
        (WebCore::KeyboardEvent::keyEvent):
        (WebCore::KeyboardEvent::keypressCommands):
        * dom/KeyboardEvent.idl:

2013-01-30  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: IDBKeyRange::isOnlyKey() does pointer equality comparison
        https://bugs.webkit.org/show_bug.cgi?id=107582

        Reviewed by Tony Chang.

        Per the bug title, IDBKeyRange::isOnlyKey() was testing the upper/lower pointers to
        determine if this was a "trivial" range, which can be used to fast-path lookups. This
        is insufficient in multi-process ports where range values may be thrown across the wire.
        This is addressed by using the existing key equality tests.

        In addition, the bounds type check incorrectly checked m_lowerType == LowerBoundOpen, which
        meant the function could never return true (since upper == lower implies closed bounds).
        Therefore, the fast-path case wasn't used even in single-process ports (e.g. DRT). The
        slow-path case contructed a backing store cursor over the range, and exited early if the
        cursor yielded nothing. The fast-path case doesn't need to create a cursor, so needs to
        deal with lookup misses. This revealed two similar (but trivial) lurking bugs in the
        fast-path.

        No new behavior; covered by tests such as: storage/indexeddb/get-keyrange.html

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBBackingStore::getRecord): Handle backing store read miss case.
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::GetOperation::perform): Handle backing store read miss case.
        * Modules/indexeddb/IDBKeyRange.cpp:
        (WebCore::IDBKeyRange::isOnlyKey): Compare keys by value, not pointer, correct
        type checks, add assertions.
        * Modules/indexeddb/IDBKeyRange.h:
        (IDBKeyRange): Move implementation to CPP file.

2013-01-30  Joe Mason  <jmason@rim.com>

        [BlackBerry] Never store empty credentials in NetworkJob::storeCredentials
        https://bugs.webkit.org/show_bug.cgi?id=108387

        Reviewed by Yong Li.

        There is a code path that can cause NetworkJob::storeCredentials to be called with empty
        credentials, causing the existing credentials to be overwritten even though authentication
        succeeded.  PR 287791 has been filed to investigate why this happens; in the meantime, ignore empty
        credentials.

        Internal PR: 281172
        Internally Reviewed By: Leo Yang

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::storeCredentials):

2013-01-30  Andy Estes  <aestes@apple.com>

        ContentFilter should be a ref-counted class
        https://bugs.webkit.org/show_bug.cgi?id=108392

        Reviewed by David Kilzer.

        * loader/MainResourceLoader.h:
        (MainResourceLoader): Store a RefPtr to m_contentFilter.
        * platform/ContentFilter.h: Inherit from RefCounted<ContentFilter>.
        * platform/mac/ContentFilterMac.mm:
        (WebCore::ContentFilter::create): Return a PassRefPtr.

2013-01-30  Tim Horton  <timothy_horton@apple.com>

        [mac] ImageBuffer should create accelerated buffers for small canvases, but we shouldn't force them to create compositing layers
        https://bugs.webkit.org/show_bug.cgi?id=107804
        <rdar://problem/11752381>

        Reviewed by Simon Fraser.

        Make all canvases IOSurface-backed if requested, instead of having a size threshold
        under which we won't use accelerated canvas.

        Make requiresCompositingForCanvas take the size of the canvas into account, using
        the threshold which was previously in ImageBuffer to determine whether or not a
        canvas should be forced into a compositing layer.

        This improves canvas performance on some benchmarks
        (http://www.mikechambers.com/html5/javascript/QuadTree/examples/collision.html, for example)
        significantly, in cases where canvases which fall below the size limit
        (and thus are unaccelerated) are being drawn rapidly into either accelerated
        tiles or another accelerated canvas, by preventing excessive copying to/from the GPU.

        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore):
        (WebCore::ImageBuffer::ImageBuffer):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):

2013-01-30  Alec Flett  <alecflett@chromium.org>

        IndexedDB: clean up scheduleTask return type
        https://bugs.webkit.org/show_bug.cgi?id=108361

        Reviewed by Tony Chang.

        This is just a code simplification now that the
        synchronous consumers of scheduleTask are gone.

        No new tests: pure refactor.

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        (IDBTransactionBackendImpl):

2013-01-30  Simon Fraser  <simon.fraser@apple.com>

        Elements that dynamically become fixed sometimes jump to the top left on scrolling
        https://bugs.webkit.org/show_bug.cgi?id=108389

        Reviewed by Beth Dakin.

        When an element became position:fixed and gained a compositing layer
        as a result, we would compute its viewport constraints (including the 
        last GraphicsLayer position) before we had actually updated the GraphicsLayer
        geometry for the first time. This would cause a jump to 0,0 on scrolling.
        
        Fix by removing the call to updateViewportConstraintStatus() just after
        creating the backing. Instead, hook in to registerScrollingLayers(),
        which is called on every geometry update, to update the viewport
        constraints for this layer.
        
        Tested via existing tests, which now show correct positions at last
        layout.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::registerScrollingLayers):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateBacking):

2013-01-30  Adam Barth  <abarth@webkit.org>

        HTMLDocumentParser::insert should be aware of threaded parsing
        https://bugs.webkit.org/show_bug.cgi?id=107764

        Reviewed by Eric Seidel.

        This patch is an incremental step towards recovering from
        document.write invalidating our speculative parsing buffer. The
        approach I've taken is to make it possible to transfer the
        HTMLDocumentParser's HTMLTokenizer and HTMLToken to the background
        thread. To make that possible, I've taught the HTMLDocumentParser how
        to operate without a tokenizer or a token.

        Not having a tokenizer or a token while parsing in the background also
        helps us avoid accidentially feeding input to the main thread's
        tokenizer when we're supposed to feed it to the background thread.

        This patch shouldn't have any behavior change (other than possibly
        fixing a crash in fast/parser when threading parsing is enabled).

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::didFailSpeculation):
        (WebCore):
        (WebCore::HTMLDocumentParser::insert):
        (WebCore::HTMLDocumentParser::finish):
        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::constructTree):
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
        (WebCore::HTMLTreeBuilder::processScriptStartTag):
        * html/parser/TextDocumentParser.cpp:
        (WebCore::TextDocumentParser::TextDocumentParser):

2013-01-30  Rafael Weinstein  <rafaelw@chromium.org>

        [HTMLTemplateElement] prevent the parser from removing nodes from the content when the foster agency is processing formatting elements
        https://bugs.webkit.org/show_bug.cgi?id=108377

        Reviewed by Adam Barth.

        https://dvcs.w3.org/hg/webcomponents/raw-file/50ce1f368c1a/spec/templates/index.html#in-body-addition

        callTheAdoptionAgency now appends to the template's content when it previously would have appended to the template element itself.

        New test added to html5lib.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserAppendChild):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):

2013-01-30  Mark Lam  <mark.lam@apple.com>

        DatabaseContext should implement ThreadSafeRefCounted.
        https://bugs.webkit.org/show_bug.cgi?id=108285.

        Reviewed by Alexey Proskuryakov.

        DatabaseManager::interruptAllDatabasesForContext() can ref a
        DatabaseContext from another thread. Hence, the DatabaseContext needs
        to be a ThreadSafeRefCounted instead of a RefCounted.

        No new tests.

        * Modules/webdatabase/DatabaseContext.h:

2013-01-30  Kentaro Hara  <haraken@chromium.org>

        Implement WheelEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=108303

        Reviewed by Adam Barth.

        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm

        This patch implements UIEvent constructor under a DOM4_EVENTS_CONSTRUCTOR flag,
        which is enabled on Chromium and Safari.

        Test: fast/events/constructors/wheel-event-constructor.html

        * dom/WheelEvent.cpp:
        (WebCore::WheelEventInit::WheelEventInit):
        (WebCore):
        (WebCore::WheelEvent::WheelEvent):
        (WebCore::WheelEvent::initWheelEvent):
        * dom/WheelEvent.h:
        (WheelEventInit):
        (WebCore):
        (WheelEvent):
        (WebCore::WheelEvent::create):
        (WebCore::WheelEvent::wheelDelta):
        (WebCore::WheelEvent::wheelDeltaX):
        (WebCore::WheelEvent::wheelDeltaY):
        (WebCore::WheelEvent::rawDeltaX):
        (WebCore::WheelEvent::rawDeltaY):
        (WebCore::WheelEvent::granularity):
        (WebCore::WheelEvent::webkitDirectionInvertedFromDevice):
        (WebCore::WheelEvent::isHorizontal):
        * dom/WheelEvent.idl:

2013-01-30  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Support 'auto' sized grid items
        https://bugs.webkit.org/show_bug.cgi?id=103332

        Reviewed by Tony Chang.

        Tests: fast/css-grid-layout/auto-content-resolution-columns.html
               fast/css-grid-layout/auto-content-resolution-rows.html

        The specification interprets 'auto' as minmax(min-content, max-content).
        Because we stored the grid definitions as an 'auto' length, we wouldn't
        handle it properly during layout.

        This change makes us do the translation when we query the information for
        layout.

        * rendering/style/GridTrackSize.h:
        (WebCore::GridTrackSize::minTrackBreadth):
        (WebCore::GridTrackSize::maxTrackBreadth):
        Translate 'auto' to minmax(min-content, max-content). This works as getComputedStyle
        still sees the GridTrackSize as a single length and thus query length() instead of the
        individual component of minmax().

2013-01-30  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Avoid crashing when deleting indexes
        https://bugs.webkit.org/show_bug.cgi?id=108356

        Reviewed by Tony Chang.

        It is reasonable that the backend aborts a transaction before
        the frontend is aware, depending on the timing of events. This
        allows the transactionId to be invalid rather than asserting.

        Test: storage/indexeddb/createIndex-after-failure.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::createIndex):
        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
        (WebCore::IDBDatabaseBackendImpl::get):
        (WebCore::IDBDatabaseBackendImpl::put):
        (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
        (WebCore::IDBDatabaseBackendImpl::openCursor):
        (WebCore::IDBDatabaseBackendImpl::count):
        (WebCore::IDBDatabaseBackendImpl::deleteRange):
        (WebCore::IDBDatabaseBackendImpl::clear):

2013-01-30  Kentaro Hara  <haraken@chromium.org>

        isSameAsCurrentState() should take SerializedScriptValue* instead of PassRefPtr
        https://bugs.webkit.org/show_bug.cgi?id=107904

        Reviewed by Darin Adler.

        Applied Darin's comment: https://bugs.webkit.org/show_bug.cgi?id=107904#c5

        No tests. No change in behavior.

        * bindings/js/JSPopStateEventCustom.cpp:
        (WebCore::JSPopStateEvent::state):
        * bindings/v8/custom/V8PopStateEventCustom.cpp:
        (WebCore::V8PopStateEvent::stateAccessorGetter):
        * page/History.cpp:
        (WebCore::History::isSameAsCurrentState):
        * page/History.h:
        (History):

2013-01-30  Douglas Stockwell  <dstockwell@chromium.org>

        Remove unnecessary setAnimating() method
        https://bugs.webkit.org/show_bug.cgi?id=107495

        Reviewed by Dean Jackson.

        The corresponding accessor and uses were removed in r39211.

        No new tests: no change in behaviour.

        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::AnimationBase):
        * page/animation/AnimationBase.h:
        (AnimationBase):
        * page/animation/CompositeAnimation.cpp:
        * page/animation/CompositeAnimation.h:
        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::animate):
        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::animate):

2013-01-30  Elliott Sprehn  <esprehn@chromium.org>

        Clean up interface to ShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=108300

        Reviewed by Dimitri Glazkov.

        Lots of general clean up to ShadowRoot removing unused headers and forward
        declarations, moving short inline methods into the class definition so it's
        easier to understand what methods do what, and replacing macros with methods
        with inline methods.

        No new tests, just refactoring.

        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::addShadowRoot):
        (WebCore::ElementShadow::removeAllShadowRoots):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::setInnerHTML): Use isOrphan instead of macro.
        (WebCore::ShadowRoot::setApplyAuthorStyles): Use isOrphan instead of macro.
        (WebCore::ShadowRoot::setResetStyleInheritance): Use isOrphan instead of macro.
        (WebCore::ShadowRoot::childrenChanged): Use isOrphan instead of macro.
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::setHost): Removed.
        (WebCore::ShadowRoot::host):
        (WebCore::ShadowRoot::owner):
        (ShadowRoot):
        (WebCore::ShadowRoot::isOrphan): Replacement of GuardOrphanShadowRoot macro.

2013-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        Apple's internal PLT test suite doesn't finish after r141136
        https://bugs.webkit.org/show_bug.cgi?id=108380

        Reviewed by Alexey Proskuryakov.

        Temporarily disable the feature to see if that fixes it.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):

2013-01-30  Florin Malita  <fmalita@chromium.org>

        [Chromium] Unreviewed gardening.

        Attempted Mac build fix after http://trac.webkit.org/changeset/141291.

        * platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp:
        (WebCore::harfBuzzCoreTextGetFontFuncs):

2013-01-30  Philip Rogers  <pdr@google.com>

        Track scale and zoom together when drawing SVG images
        https://bugs.webkit.org/show_bug.cgi?id=108108

        Reviewed by Tim Horton.

        This patch refactors SVGImage::drawSVGToImageBuffer to take a single zoomAndScale parameter
        and removes two messy calls to setPageZoomFactor. This patch makes progress towards an
        SVG image cache keyed on just container size and scale.

        This refactoring is covered by existing tests.

        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::setContainerSizeForRenderer):
        (WebCore::CachedImage::imageSizeForRenderer):

            This complex logic has been refactored out of CachedImage and into SVGImageCache.
            In addition to the code move, we no longer divide by the zoom factor because the
            container size is stored without zoom.

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawSVGToImageBuffer):

            This method signature has changed to take a FloatSize for the container size and
            a combined zoom and scale parameter (zoomAndScale). A FloatSize is needed for the
            container size because we now store the container size unzoomed, and in this process
            we do not want to lose precision.

            The messy setPageZoomFactor calls have also been removed which cleans this function up.

        * svg/graphics/SVGImage.h:
        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::setContainerSizeForRenderer):

            This function now stores the container size unzoomed. The container size was changed
            to a FloatSize so that precision is not lost.

        (WebCore::SVGImageCache::imageSizeForRenderer):

            Note that the ImageBuffer size will stay the same. We now store the size as:
                containerSize (without zoom) * zoom * scale
            Previously this was:
                containerSize (with zoom) * scale

        (WebCore::SVGImageCache::redraw):
        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
        * svg/graphics/SVGImageCache.h:
        (WebCore::SVGImageCache::SizeAndScales::SizeAndScales):
        (SizeAndScales):
        (SVGImageCache):

2013-01-30  Benjamin Poulain  <benjamin@webkit.org>

        Do not convert to String->AtomicString for NamedNodeMap
        https://bugs.webkit.org/show_bug.cgi?id=108289

        Reviewed by Kentaro Hara.

        NamedNodeMap's API was taking a WTF::String. Internally, attribute
        names are AtomicString.

        The conversions String->AtomicString was causing an additional ref-deref
        for the JS/V8 bindings. And could cause an additional memory allocation for the Objective-C
        bindings.

        This patch changes the API to use AtomicString, and update the custom bindings accordingly.

        * bindings/js/JSNamedNodeMapCustom.cpp:
        (WebCore::JSNamedNodeMap::canGetItemsForName):
        (WebCore::JSNamedNodeMap::nameGetter):
        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
        (WebCore::V8NamedNodeMap::namedPropertyGetter):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::getNamedItem):
        (WebCore::NamedNodeMap::getNamedItemNS):
        (WebCore::NamedNodeMap::removeNamedItem):
        (WebCore::NamedNodeMap::removeNamedItemNS):
        * dom/NamedNodeMap.h:
        (NamedNodeMap):

2013-01-30  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=108100

        Reviewed by Tony Gentilcore.

        Similarly to the changes to V8 bindings in r140882, wrap the PerformanceEntry
        as a PerformanceMark or PerformanceMeasure if possible.

        No new tests - the relevant test now passes.

        * bindings/js/JSPerformanceEntryCustom.cpp:
        (WebCore::toJS):

2013-01-30  Adam Klein  <adamk@chromium.org>

        [JSC] MutationObservers should not create circular, leaky references
        https://bugs.webkit.org/show_bug.cgi?id=93661

        Reviewed by Adam Barth.

        This patch makes JSMutationCallback an entirely-custom class that
        holds a weak reference to the function it wraps. To keep that function
        alive, it also adds a PrivateName between the JSMutationObserver
        wrapper and the function when the MutationObserver is constructed.

        Unlike the generated JSC callbacks, JSMutationCallback doesn't hold a
        reference to the JSDOMGlobalObject, instead holding the
        DOMWrapperWorld it was created in. As an ActiveDOMCallback, it also
        holds a weak pointer to ScriptExecutionContext (via ContextDestructionObserver).

        It's not clear to me how to write a test for this. There's an existing
        manual test in ManualTests/leak-cycle-observer-wrapper.html which may
        be of use but which doesn't seem to currently give meaningful output.

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * UseJSC.cmake:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSMutationCallback.cpp: Added.
        (WebCore):
        (WebCore::JSMutationCallback::JSMutationCallback):
        (WebCore::JSMutationCallback::~JSMutationCallback):
        (WebCore::JSMutationCallback::handleEvent):
        * bindings/js/JSMutationCallback.h: Added.
        (WebCore):
        (JSMutationCallback): Instead of a JSCallbackData, hold a weak ref to the callback and a RefPtr to the DOMWrapperWorld.
        (WebCore::JSMutationCallback::create):
        * bindings/js/JSMutationCallbackCustom.cpp: Removed.
        * bindings/js/JSMutationObserverCustom.cpp:
        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
        When constructing the JSMutationObserver, add a reference via PrivateName from the MutationObserver to the callback function.
        * dom/MutationCallback.idl: Removed. Neither JSC nor V8 use an IDL file to generate this class any more.

2013-01-30  Elliott Sprehn  <esprehn@chromium.org>

        Remove willAddAuthorShadowRoot and replace with alwaysCreateUserAgentShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=108248

        Reviewed by Dimitri Glazkov.

        The only reason willAddAuthorShadowRoot exists is so that a handful of
        other elements can create the user agent shadow root right before the
        author shadow root is created. Instead of providing this generic hook
        just expose a virtual method on Element that requests this behavior.

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::createShadowRoot):
        * dom/Element.h:
        (Element):
        (WebCore::Element::alwaysCreateUserAgentShadowRoot): Added.
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::addShadowRoot): Remove willAddAuthorShadowRoot notification.
        * html/HTMLButtonElement.cpp:
        * html/HTMLButtonElement.h:
        * html/HTMLFormControlElement.cpp:
        * html/HTMLFormControlElement.h:
        * html/HTMLMediaElement.cpp:
        * html/HTMLMediaElement.h:

2013-01-30  Dominik Röttsches  <dominik.rottsches@intel.com>

        [HarfBuzz] Naming fixes after removing old HarfBuzz code
        https://bugs.webkit.org/show_bug.cgi?id=108170

        Reviewed by Tony Chang.

        Since the old harfbuzz code is gone in r141241, it makes sense to get rid
        of the now unnecessray NG suffix in a number of places. While at it,
        I am also fixing some naming inconsistencies.

        Renamed all occurences of HarfBuzzNG* to HarfBuzz*,
        renamed lowercase variants of harfbuzz* in variable and function names to camel-case harfBuzz*,
        moved files in platform/graphics/harfbuzz/ng/* one level up and removed ng folder.
        Updated corresponding entries in Chromium, GTK and EFL build system files.

        No new tests, no change in behavior.

        * GNUmakefile.list.am:
        * PlatformEfl.cmake:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/graphics/FontPlatformData.cpp:
        * platform/graphics/FontPlatformData.h:
        (WebCore):
        (FontPlatformData):
        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
        (WebCore::FontPlatformData::platformDataInit):
        (WebCore::FontPlatformData::platformDataAssign):
        (WebCore::FontPlatformData::harfBuzzFace):
        * platform/graphics/freetype/FontPlatformData.h:
        (FontPlatformData):
        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        (WebCore::FontPlatformData::operator=):
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::harfBuzzFace):
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::operator=):
        (WebCore::FontPlatformData::harfBuzzFace):
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
        (WebCore):
        (FontPlatformData):
        * platform/graphics/harfbuzz/HarfBuzzFace.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp.
        (WebCore):
        (FaceCacheEntry):
        (WebCore::FaceCacheEntry::create):
        (WebCore::FaceCacheEntry::~FaceCacheEntry):
        (WebCore::FaceCacheEntry::face):
        (WebCore::FaceCacheEntry::glyphCache):
        (WebCore::FaceCacheEntry::FaceCacheEntry):
        (WebCore::harfBuzzFaceCache):
        (WebCore::HarfBuzzFace::HarfBuzzFace):
        (WebCore::HarfBuzzFace::~HarfBuzzFace):
        (WebCore::findScriptForVerticalGlyphSubstitution):
        (WebCore::HarfBuzzFace::setScriptForVerticalGlyphSubstitution):
        * platform/graphics/harfbuzz/HarfBuzzFace.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h.
        (WebCore):
        (HarfBuzzFace):
        (WebCore::HarfBuzzFace::create):
        * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp.
        (WebCore):
        (CairoFtFaceLocker):
        (WebCore::CairoFtFaceLocker::CairoFtFaceLocker):
        (WebCore::CairoFtFaceLocker::lock):
        (WebCore::CairoFtFaceLocker::~CairoFtFaceLocker):
        (WebCore::floatToHarfBuzzPosition):
        (WebCore::doubleToHarfBuzzPosition):
        (WebCore::CairoGetGlyphWidthAndExtents):
        (WebCore::harfBuzzGetGlyph):
        (WebCore::harfBuzzGetGlyphHorizontalAdvance):
        (WebCore::harfBuzzGetGlyphHorizontalOrigin):
        (WebCore::harfBuzzGetGlyphExtents):
        (WebCore::harfBuzzCairoTextGetFontFuncs):
        (WebCore::harfBuzzCairoGetTable):
        (WebCore::HarfBuzzFace::createFace):
        (WebCore::HarfBuzzFace::createFont):
        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
        * platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp.
        (WebCore):
        (WebCore::floatToHarfBuzzPosition):
        (WebCore::getGlyph):
        (WebCore::getGlyphHorizontalAdvance):
        (WebCore::getGlyphHorizontalOrigin):
        (WebCore::getGlyphExtents):
        (WebCore::harfbuzzCoreTextGetFontFuncs):
        (WebCore::releaseTableData):
        (WebCore::harfBuzzCoreTextGetTable):
        (WebCore::HarfBuzzFace::createFace):
        (WebCore::HarfBuzzFace::createFont):
        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
        * platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp.
        (WebCore):
        (WebCore::HarfBuzzFontData::HarfBuzzFontData):
        (HarfBuzzFontData):
        (WebCore::SkiaScalarToHarfBuzzPosition):
        (WebCore::SkiaGetGlyphWidthAndExtents):
        (WebCore::harfBuzzGetGlyph):
        (WebCore::harfBuzzGetGlyphHorizontalAdvance):
        (WebCore::harfBuzzGetGlyphHorizontalOrigin):
        (WebCore::harfBuzzGetGlyphExtents):
        (WebCore::harfBuzzSkiaGetFontFuncs):
        (WebCore::harfBuzzSkiaGetTable): Also fixed style checker whitespace complaint / indentation.
        (WebCore::destroyHarfBuzzFontData):
        (WebCore::HarfBuzzFace::createFace):
        (WebCore::HarfBuzzFace::createFont):
        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp.
        (WebCore):
        (HarfBuzzScopedPtr):
        (WebCore::HarfBuzzScopedPtr::HarfBuzzScopedPtr):
        (WebCore::HarfBuzzScopedPtr::~HarfBuzzScopedPtr):
        (WebCore::HarfBuzzScopedPtr::get):
        (WebCore::harfBuzzPositionToFloat):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
        (WebCore::normalizeCharacters):
        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
        (WebCore::HarfBuzzShaper::~HarfBuzzShaper):
        (WebCore::HarfBuzzShaper::setDrawRange):
        (WebCore::HarfBuzzShaper::setFontFeatures):
        (WebCore::HarfBuzzShaper::shape):
        (WebCore::HarfBuzzShaper::adjustStartPoint):
        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
        (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun):
        (WebCore::HarfBuzzShaper::fillGlyphBuffer):
        (WebCore::HarfBuzzShaper::offsetForPosition):
        (WebCore::HarfBuzzShaper::selectionRect):
        * platform/graphics/harfbuzz/HarfBuzzShaper.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.h.
        (WebCore):
        (HarfBuzzShaper):
        (WebCore::HarfBuzzShaper::totalWidth):
        (HarfBuzzRun):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::setWidth):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::fontData):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::startIndex):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::numCharacters):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::numGlyphs):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphs):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::advances):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::offsets):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphToCharacterIndexes):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::width):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::script):

2013-01-30  Tony Chang  <tony@chromium.org>

        REGRESSION(r136324): Flexbox should relayout flex children when width changes
        https://bugs.webkit.org/show_bug.cgi?id=108231

        Reviewed by Ojan Vafai.

        If the width of a block changes, we need to set relayoutChildren = true
        to relayout the children. This broke when we optimized the layout calls
        in layoutAndPlaceChildren.

        Test: css3/flexbox/width-change-and-relayout-children.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock): Also reorder the code to match RenderBlock.
        The bug fix is to use updateLogicalWidthAndColumnWidth() and its return value to set
        relayoutChildren = true.

2013-01-30  Tim Horton  <timothy_horton@apple.com>

        GraphicsContext3DCG needs to copy image data in paintToCanvas
        https://bugs.webkit.org/show_bug.cgi?id=108310

        Reviewed by Simon Fraser.

        Make the CG implementation of GraphicsContext3D::paintToCanvas copy image data
        before drawing if we're drawing into an accelerated context, matching the fix made
        in http://trac.webkit.org/changeset/106095 for 2D canvas.

        No new tests, depends on acceleration and would be flaky at best.

        * platform/graphics/GraphicsContext3D.h:
        (GraphicsContext3D): Make CG's paintToCanvas take a GraphicsContext instead of a CGContextRef.
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::releaseImageData): Added.
        (WebCore::GraphicsContext3D::paintToCanvas): Copy image data if the destination is
        an accelerated context. Also, use GraphicsContext API instead of CGContext.
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):

2013-01-29  Jer Noble  <jer.noble@apple.com>

        MediaPlayerPrivateQTKit claims it supports application/x-diskcopy, breaking downloads.
        https://bugs.webkit.org/show_bug.cgi?id=108237

        Reviewed by Eric Carlson.

        Disclaim any non-'video/' or 'audio/' types which QTKit purports to support.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::addFileTypesToCache):

2013-01-30  Florin Malita  <fmalita@chromium.org>

        Do not restart the matched properties cache timer if active
        https://bugs.webkit.org/show_bug.cgi?id=108345

        Reviewed by Andreas Kling.

        StyleResolver::addToMatchedPropertiesCache() keeps resetting the timer as more than
        matchedDeclarationCacheAdditionsBetweenSweeps entries are added. When armed, we should let
        the timer expire at its scheduled time - otherwise it may never get a chance to fire if
        entries keep getting added.

        No new tests. This is a long lived timer (1min) which makes testing impractical.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::addToMatchedPropertiesCache):

2013-01-30  Simon Fraser  <simon.fraser@apple.com>

        Temporarily disable assertions related to clip rect computation in RenderLayer
        https://bugs.webkit.org/show_bug.cgi?id=108265

        Reviewed by Dean Jackson.

        These assertions are killing the test bots, so disable them temporarily
        until we figure out the underlying bug (tracked by https://bugs.webkit.org/show_bug.cgi?id=103432).

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):

2013-01-30  Elliott Sprehn  <esprehn@chromium.org>

        Element::areAuthorShadowsAllowed should be private
        https://bugs.webkit.org/show_bug.cgi?id=108298

        Reviewed by Darin Adler.

        There's no reason for areAuthorShadowsAllowed to be exposed publically
        on Element since it just controls the behavior of createShadowRoot. Make
        it private and fix all places where it wasn't in subclasses.

        No new tests, just refactoring.

        * dom/Element.h:
        (WebCore::Element::areAuthorShadowsAllowed): Made private.
        * html/HTMLFrameElementBase.h:
        (HTMLFrameElementBase):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):
        * html/HTMLPlugInElement.h:
        (HTMLPlugInElement):
        * svg/SVGElement.h:
        (SVGElement):

2013-01-30  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Script Profiler: Make profiler output typed.
        https://bugs.webkit.org/show_bug.cgi?id=102792

        Reviewed by Yury Semikhatsky.

        Currently fields "head" and "bottomUpHead" of Profile object
        returned by Profiler.getCPUProfile is untyped (type = object).

        That's not good both for client side (protocol users may
        only guess on output content) and backend side (field names
        are hardcoded in source code).

        This patch defines "head" and "bottomUpHead" to be of new
        "CPUProfileNode" type and updates serialization code to use
        builders to create output.

        * bindings/js/ScriptProfile.cpp: Used buiders for serialization.
        * bindings/js/ScriptProfile.h: Ditto.
        * bindings/v8/ScriptProfile.cpp: Ditto.
        * bindings/v8/ScriptProfile.h: Ditto.
        * inspector/Inspector.json: Added and used new ProfileNode type.

2013-01-30  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: remove NativeHeapGraph.js
        https://bugs.webkit.org/show_bug.cgi?id=108342

        Reviewed by Pavel Feldman.

        NativeHeapGraph.js was removed as NativeHeapSnapshot.js provides more
        features and shares its implementation with JSHeapSnapshot.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/NativeHeapGraph.js: Removed.
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
        (WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
        * inspector/front-end/ProfilesPanel.js:
        * inspector/front-end/WebKit.qrc:

2013-01-30  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Sidebar splitter is invisible in Elements and Sources panels
        https://bugs.webkit.org/show_bug.cgi?id=108331

        Reviewed by Pavel Feldman.

        This was a regression caused by https://bugs.webkit.org/show_bug.cgi?id=108181.
        The splitter element did not get the correct class at the initialization.

        * inspector/front-end/SidebarView.js:
        (WebInspector.SidebarView):
        (WebInspector.SidebarView.prototype._updateSidebarPosition):

2013-01-30  Dmitry Zvorygin  <zvorygin@chromium.org>

        Web Inspector: Filters on Console panel
        https://bugs.webkit.org/show_bug.cgi?id=107813

        The problem is that third-party libraries may spam javascript console with internal
        messages. Now there's filter context-menu option, which allows to hide/show messages
        sent from specific scripts or urls.

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
        (WebInspector.ConsoleMessageImpl.prototype._printArray):
        (WebInspector.ConsoleMessageImpl.prototype._highlightSearchResultsInElement):
        * inspector/front-end/ConsolePanel.js:
        (WebInspector.ConsolePanel.prototype.performSearch):
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.get this):
        (WebInspector.ConsoleView.prototype._consoleMessageAdded):
        (WebInspector.ConsoleView.prototype._appendConsoleMessage):
        (WebInspector.ConsoleView.prototype._consoleCleared):
        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
        (WebInspector.ConsoleView.prototype._shouldBeVisible):
        (WebInspector.ConsoleView.prototype._updateMessageList):
        (WebInspector.ConsoleGroup.prototype.addMessage):
        * inspector/front-end/ContextMenu.js:
        (WebInspector.ContextMenuItem.prototype.isEnabled):
        (WebInspector.ContextMenuItem.prototype.setEnabled):
        * inspector/front-end/Settings.js:

2013-01-20  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] USE(NATIVE_FULLSCREEN_VIDEO) support
        https://bugs.webkit.org/show_bug.cgi?id=106760

        Reviewed by Gustavo Noronha Silva.

        Initial support for NATIVE_FULLSCREEN_VIDEO in the GStreamer media
        player. A new FullscreenVideoControllerGStreamer class is
        introduced, ports interested to implement native fullscreen video
        support should inherit from it (see FullscreenVideoControllerGtk)
        and hook it in the MediaPlayerPrivateGStreamer backend.

        The GStreamerGWorld port to GStreamer 1.x is partly based on a
        patch by Sebastian Dröge <sebastian.droge@collabora.com>.

        * GNUmakefile.am: Enable NATIVE_FULLSCREEN_VIDEO support.
        * GNUmakefile.list.am: New
        FullscreenVideoController{GStreamer,Gtk} modules.
        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp: Added.
        (WebCore):
        (WebCore::playerVolumeChangedCallback): Playbin notify::volume
        signal callback.
        (WebCore::playerMuteChangedCallback): Playbin notify::mute signal callback.
        (WebCore::FullscreenVideoControllerGStreamer::FullscreenVideoControllerGStreamer):
        (WebCore::FullscreenVideoControllerGStreamer::~FullscreenVideoControllerGStreamer):
        (WebCore::FullscreenVideoControllerGStreamer::enterFullscreen):
        Switch GStreamerGWorld to full screen, hook in to playbin's
        notify::volume and mute signals and initialize the full screen window.
        (WebCore::FullscreenVideoControllerGStreamer::exitFullscreen):
        Destroy the full screen window, disconnect from playbin signals
        and switch GStreamerGWorld out of full screen.
        (WebCore::FullscreenVideoControllerGStreamer::exitOnUserRequest):
        Trigger exit from full screen mode. This method is meant to be
        called when the user explicitely requests to exit from full screen
        by pressing a key or something similar.
        (WebCore::FullscreenVideoControllerGStreamer::togglePlay): Switch
        between play and pause states. Useful for child classes.
        (WebCore::FullscreenVideoControllerGStreamer::increaseVolume):
        Useful for child classes as well.
        (WebCore::FullscreenVideoControllerGStreamer::decreaseVolume): Ditto.
        (WebCore::FullscreenVideoControllerGStreamer::setVolume): Ditto.
        (WebCore::FullscreenVideoControllerGStreamer::timeToString): Ditto.
        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.h: Added.
        (WebCore):
        (FullscreenVideoControllerGStreamer):
        (WebCore::FullscreenVideoControllerGStreamer::playStateChanged):
        To be implemented by child class to reflect the player's state changed.
        (WebCore::FullscreenVideoControllerGStreamer::volumeChanged): To
        be implemented by child class as well.
        (WebCore::FullscreenVideoControllerGStreamer::muteChanged): Ditto.
        (WebCore::FullscreenVideoControllerGStreamer::initializeWindow): Ditto.
        (WebCore::FullscreenVideoControllerGStreamer::destroyWindow): Ditto.
        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
        (WebCore::gstGWorldSyncMessageCallback): Adapt for GStreamer video
        overlay API changes.
        (WebCore::GStreamerGWorld::GStreamerGWorld):
        gst_bus_set_sync_handler takes one more argument in GStreamer 1.x.
        (WebCore::GStreamerGWorld::enterFullscreen): ffmpegcolorspace was
        renamed to videoconvert in GStreamer 1.x and the tee src pad
        template was renamed to src_%u. There is no need to send a new
        segment query either.
        (WebCore):
        (WebCore::gstGWorldPadProbeCallback): Remove the platform video
        sink branch once the tee source pad starting it has been blocked.
        (WebCore::GStreamerGWorld::exitFullscreen): Refactor to use an
        asynchronous pad probe.
        (WebCore::GStreamerGWorld::removePlatformVideoSink): Refactored
        from exitFullscreen.
        (WebCore::GStreamerGWorld::setWindowOverlay): Adapt for GStreamer video
        overlay API changes.
        * platform/graphics/gstreamer/GStreamerGWorld.h:
        (GStreamerGWorld):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
        Hook NATIVE_FULLSCREEN_VIDEO support.
        (WebCore::MediaPlayerPrivateGStreamer::volume): Playbin volume
        query used by the FullscreenVideoController.
        (WebCore):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (WebCore):
        (MediaPlayerPrivateGStreamer): volume(), muted() and MediaPlayer
        accessor methods added. NATIVE_FULLSCREEN_VIDEO methods added as well.
        (WebCore::MediaPlayerPrivateGStreamer::canEnterFullscreen):
        (WebCore::MediaPlayerPrivateGStreamer::mediaPlayer):
        * platform/graphics/gstreamer/PlatformVideoWindow.h: Re-enable
        module if NATIVE_FULLSCREEN_VIDEO is turned on.
        * platform/graphics/gstreamer/PlatformVideoWindowGtk.cpp: Ditto.
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Re-enable
        GStreamerGWorld support.
        (_WebKitVideoSinkPrivate):
        (webkitVideoSinkRender):
        * platform/graphics/gstreamer/VideoSinkGStreamer.h: Ditto.

2013-01-30  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: beautify file selector dialog to render as two rows
        https://bugs.webkit.org/show_bug.cgi?id=108335

        Reviewed by Vsevolod Vlasov.

        Go-to-file is now rendered in two rows.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog):
        (WebInspector.FilteredItemSelectionDialog.prototype.focus):
        (WebInspector.FilteredItemSelectionDialog.prototype.renderAsTwoRows):
        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
        (WebInspector.OpenResourceDialog.show):
        * inspector/front-end/ViewportControl.js:
        (WebInspector.ViewportControl):
        (WebInspector.ViewportControl.prototype.refresh):
        * inspector/front-end/filteredItemSelectionDialog.css:
        (.filtered-item-list-dialog > input):
        (.filtered-item-list-dialog > div.progress):
        (.filtered-item-list-dialog > div.container):
        (.filtered-item-list-dialog-item):
        (.filtered-item-list-dialog-subtitle):
        (.filtered-item-list-dialog-item.one-row .filtered-item-list-dialog-subtitle):
        (.filtered-item-list-dialog-item.two-rows):
        (.filtered-item-list-dialog-item.selected):
        (.filtered-item-list-dialog-item span.highlight):

2013-01-30  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: migrate file selection dialog to the viewport.
        https://bugs.webkit.org/show_bug.cgi?id=108313

        Reviewed by Vsevolod Vlasov.

        Otherwise it takes too long to render.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog):
        (WebInspector.FilteredItemSelectionDialog.prototype.focus):
        (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
        (WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown.updateSelection):
        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
        (WebInspector.FilteredItemSelectionDialog.prototype._updateSelection):
        (WebInspector.FilteredItemSelectionDialog.prototype._onClick):
        (WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
        (WebInspector.FilteredItemSelectionDialog.prototype.itemCount):
        (WebInspector.FilteredItemSelectionDialog.prototype.itemElement):
        * inspector/front-end/ViewportControl.js: Added.
        (WebInspector.ViewportControl):
        (WebInspector.ViewportControl.Provider):
        (WebInspector.ViewportControl.Provider.prototype.itemCount):
        (WebInspector.ViewportControl.Provider.prototype.itemElement):
        (WebInspector.ViewportControl.prototype.contentElement):
        (WebInspector.ViewportControl.prototype.refresh):
        (WebInspector.ViewportControl.prototype._onScroll):
        (WebInspector.ViewportControl.prototype.rowsPerViewport):
        (WebInspector.ViewportControl.prototype.firstVisibleIndex):
        (WebInspector.ViewportControl.prototype.lastVisibleIndex):
        (WebInspector.ViewportControl.prototype.renderedElementAt):
        (WebInspector.ViewportControl.prototype.scrollItemIntoView):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/filteredItemSelectionDialog.css:
        (.js-outline-dialog .container div.item.selected):
        (.js-outline-dialog .container div.item span.highlight):
        * inspector/front-end/inspector.html:

2013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: implement highlight range API
        https://bugs.webkit.org/show_bug.cgi?id=108317

        Reviewed by Pavel Feldman.

        Test: inspector/editor/text-editor-highlight-api.html

        Introduce RangeHighlightDescriptor class and implement Highlight Range
        api.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.removeHighlight):
        (WebInspector.DefaultTextEditor.prototype.highlightRange):
        (WebInspector.TextEditorMainPanel.prototype.removeHighlight):
        (WebInspector.TextEditorMainPanel.prototype.highlightRange):
        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor):
        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.affectsLine):
        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.rangesForLine):
        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.cssClass):
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
        * inspector/front-end/TextEditor.js:
        (WebInspector.TextEditor.prototype.highlightRange):
        (WebInspector.TextEditor.prototype.removeHighlight):

2013-01-30  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Remove QT4_UNICODE related code paths
        https://bugs.webkit.org/show_bug.cgi?id=108316

        Reviewed by Kenneth Rohde Christiansen.

        Get rid of QT4_UNICODE and any related code paths. The Qt port
        requires Qt5 and ICU these days. This also allows for the removal
        of TextCodecQt.

        * Target.pri:
        * platform/KURL.cpp:
        (WebCore::appendEncodedHostname):
        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
        (WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks):
        * platform/text/TextEncoding.cpp:
        (WebCore::TextEncoding::encode):
        * platform/text/TextEncodingRegistry.cpp:
        (WebCore::extendTextCodecMaps):
        * platform/text/qt/TextCodecQt.cpp: Removed.
        * platform/text/qt/TextCodecQt.h: Removed.

2013-01-30  David Kilzer  <ddkilzer@apple.com>

        BUILD FIX: Make WebCorePrefix.h build on iOS
        <http://webkit.org/b/108224>

        Reviewed by Sam Weinig.

        * WebCorePrefix.h:
        - Include <wtf/Platform.h>.
        - Do not include <CoreServices/CoreServices.h> on iOS.
        - Include <Foundation/Foundation.h> instead of <Cocoa/Cocoa.h>
          on iOS.

2013-01-30  Patrick Gansterer  <paroga@webkit.org>

        Build fix for WinCE after r141156.

        * PlatformWinCE.cmake:

2013-01-30  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] support instrumenting canvases in iframes (frontend side)
        https://bugs.webkit.org/show_bug.cgi?id=108319

        Reviewed by Pavel Feldman.

        Add a frame selector to choose between frames with canvases. Show this selector in the status
        bar only if there are 2 or more frames with canvses. Otherwise, assume silently the only
        frame with canvases (most common use case).

        * English.lproj/localizedStrings.js:
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileType):
        (WebInspector.CanvasProfileType.prototype.get statusBarItems):
        (WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
        (WebInspector.CanvasProfileType.prototype._startFrameCapturing):
        (WebInspector.CanvasProfileType.prototype._frameAdded):
        (WebInspector.CanvasProfileType.prototype._addFrame):
        (WebInspector.CanvasProfileType.prototype._frameRemoved):
        (WebInspector.CanvasProfileType.prototype._contextCreated):
        (WebInspector.CanvasProfileType.prototype._selectedFrameId):
        (WebInspector.CanvasProfileType.prototype._dispatchViewUpdatedEvent):
        (WebInspector.CanvasDispatcher):
        (WebInspector.CanvasDispatcher.prototype.contextCreated):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfileType.prototype.createProfile):
        (WebInspector.ProfilesPanel.prototype._onProfileTypeSelected):
        (WebInspector.ProfilesPanel.prototype._updateProfileTypeSpecificUI):
        (WebInspector.ProfilesPanel.prototype._registerProfileType):
        * inspector/front-end/StatusBarButton.js:
        (WebInspector.StatusBarComboBox.prototype.size):

2013-01-30  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Change the Elements panel sidebar layout based on its aspect ratio.
        https://bugs.webkit.org/show_bug.cgi?id=108181

        Reviewed by Pavel Feldman.

        Sidebar aspect ratio proved to be a better trigger for the sidebar layout change that the docking mode.
        Moved the sidebar layout handling completely into WebInspector.SidebarView which now only accepts
        two positions: Start (corresponding to Left or Top) and End (corresponding to Right or Bottom).

        No new tests.

        * inspector/front-end/CSSNamedFlowCollectionsView.js:
        (WebInspector.CSSNamedFlowCollectionsView):
        * inspector/front-end/DockController.js:
        (WebInspector.DockController.prototype._updateUI):
        (WebInspector.DockController.prototype._toggleDockState):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype.onResize):
        * inspector/front-end/FileSystemView.js:
        (WebInspector.FileSystemView):
        * inspector/front-end/MemoryStatistics.js:
        * inspector/front-end/Panel.js:
        (WebInspector.Panel.prototype.createSidebarView):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SidebarView.js:
        (WebInspector.SidebarView):
        (WebInspector.SidebarView.prototype.setAutoOrientation):
        (WebInspector.SidebarView.prototype._updateSidebarPosition):
        (WebInspector.SidebarView.prototype.onResize):

2013-01-30  Patrick Gansterer  <paroga@webkit.org>

        Port SharedTimerWin.cpp to WinCE
        https://bugs.webkit.org/show_bug.cgi?id=103724

        Reviewed by Brent Fulgham.

        Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too.

        * PlatformWinCE.cmake:
        * platform/win/SharedTimerWin.cpp:
        (WebCore):
        (WebCore::TimerWindowWndProc):
        (WebCore::initializeOffScreenTimerWindow):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):
        * platform/wince/SharedTimerWinCE.cpp: Removed.

2013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>

        ctrl-arrows, ctrl-shift-arrow, ctrl-backspace

        Web Inspector: implmenet Ctrl-Arrow/Ctrl-Backspace in DefaultTextEditor
        https://bugs.webkit.org/show_bug.cgi?id=107944

        Reviewed by Pavel Feldman.

        Add ctrl-arrows/ctrl-shift-arrow/ctrl-backspace shortcuts to jump over
        and delete words.

        New test: inspector/editor/text-editor-ctrl-movements.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor):
        (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
        (WebInspector.DefaultTextEditor.prototype.selection):
        (WebInspector.DefaultTextEditor.WordMovementController): Added.
        (WebInspector.DefaultTextEditor.WordMovementController.prototype._registerShortcuts):
        (WebInspector.DefaultTextEditor.WordMovementController.prototype.):
        (WebInspector.DefaultTextEditor.WordMovementController.prototype._rangeForCtrlArrowMove):
        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlArrow):
        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlShiftArrow):
        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlBackspace):

2013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: do not repaint all lines in highlight regex API in DTE
        https://bugs.webkit.org/show_bug.cgi?id=108081

        Reviewed by Pavel Feldman.

        Implement repaintLineRowsAffectedByHighlightDescriptor method that
        will go through the visible lineRows and repaint only those of them
        which were outdated by highlight change.

        Improved test: inspector/editor/text-editor-highlight-regexp.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
        (WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
        (WebInspector.TextEditorMainPanel.prototype._repaintLineRowsAffectedByHighlightDescriptor):
        (WebInspector.TextEditorMainPanel.prototype._paintLines):
        (WebInspector.TextEditorMainPanel.prototype._paintLineRows):

2013-01-30  Tien-Ren Chen  <trchen@chromium.org>

        REGRESSION (r139282): Caret repainting is broken for text-align: center'd <input>
        https://bugs.webkit.org/show_bug.cgi?id=108283

        Reviewed by Tim Horton.

        Occasionally carets won't be fully erased when blinking.
        There used to be 1-pixel padding but removed since r139282.
        This patch adds back the same workaround.

        Need to rebaseline test expectations.

        * editing/FrameSelection.cpp:
        (WebCore::repaintCaretForLocalRect):

2013-01-30  Dominik Röttsches  <dominik.rottsches@intel.com>

        [HarfBuzz] Remove the HarfBuzz-old code
        https://bugs.webkit.org/show_bug.cgi?id=108077

        Reviewed by Benjamin Poulain.

        Removing unused old variant of the HarfBuzz code.

        No new tests, no change in functionality.

        * GNUmakefile.am: Rename WTF_USE_HARFBUZZ_NG to WTF_USE_HARFBUZZ
        * WebCore.gypi: Removing ComplexTextControllerHarfBuzz* and HarfBuzzSkia* files,
        * platform/graphics/SimpleFontData.h:
        (SimpleFontData): USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
        * platform/graphics/freetype/FontPlatformData.h:
        (FontPlatformData): Removing USE(HARFBUZZ_NG) ifdefs.
        * platform/graphics/freetype/FontPlatformDataFreeType.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
        (WebCore::FontPlatformData::operator=):
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::harfbuzzFace):
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp: USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
        (WebCore):
        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: Removed.
        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h: Removed.
        * platform/graphics/harfbuzz/FontHarfBuzz.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
        (WebCore::Font::drawComplexText):
        (WebCore::Font::floatWidthForComplexText):
        (WebCore::Font::offsetForPositionForComplexText):
        (WebCore::Font::selectionRectForComplexText):
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
        (WebCore::FontPlatformData::harfbuzzFace):
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Removing USE(HARFBUZZ_NG) ifdefs.
        (WebCore):
        (FontPlatformData):
        * platform/graphics/harfbuzz/HarfBuzzSkia.cpp: Removed.
        * platform/graphics/harfbuzz/HarfBuzzSkia.h: Removed.
        * platform/graphics/skia/SimpleFontDataSkia.cpp: USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
        (WebCore):

2013-01-30  David Faure  <faure@kde.org>

        [Qt] Major performance improvement in Qt's PluginDatabase implementation
        https://bugs.webkit.org/show_bug.cgi?id=106140

        Reviewed by Simon Hausmann.

        No new tests, only a performance improvement.

        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::fetchInfo): Don't do a full-fledged load(), load the module directly.
        Keep the refcounting as it was before (broken, but otherwise flash crashes).
        (WebCore::PluginPackage::load): Use existing module if fetchInfo created it.

2013-01-30  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Remove GraphicsLayer in TextureMapperLayer.
        https://bugs.webkit.org/show_bug.cgi?id=107073

        Reviewed by Noam Rosenthal.

        Remove the dependency of TextureMapperLayer on GraphicsLayer. It is needed to
        remove GraphicsLayerTextureMapper in LayerTreeRenderer.

        This is in preparation for refactoring TextureMapper to work in an actor
        model (http://webkit.org/b/103854).

        Covered by existing tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::toTextureMapperLayer):
        (WebCore):
        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::notifyChange):
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
            Set BackgroundColorChange to m_changeMask instead of ContentChange.
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
        (WebCore::GraphicsLayerTextureMapper::setChildren):
        (WebCore::GraphicsLayerTextureMapper::addChild):
        (WebCore::GraphicsLayerTextureMapper::addChildAtIndex):
        (WebCore::GraphicsLayerTextureMapper::addChildAbove):
        (WebCore::GraphicsLayerTextureMapper::addChildBelow):
        (WebCore::GraphicsLayerTextureMapper::replaceChild):
        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
        (WebCore::GraphicsLayerTextureMapper::setReplicatedByLayer):
        (WebCore::GraphicsLayerTextureMapper::setPosition):
        (WebCore::GraphicsLayerTextureMapper::setAnchorPoint):
        (WebCore::GraphicsLayerTextureMapper::setSize):
        (WebCore::GraphicsLayerTextureMapper::setTransform):
        (WebCore::GraphicsLayerTextureMapper::setChildrenTransform):
        (WebCore::GraphicsLayerTextureMapper::setPreserves3D):
        (WebCore::GraphicsLayerTextureMapper::setMasksToBounds):
        (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
        (WebCore::GraphicsLayerTextureMapper::setContentsOpaque):
        (WebCore::GraphicsLayerTextureMapper::setBackfaceVisibility):
        (WebCore::GraphicsLayerTextureMapper::setOpacity):
        (WebCore::GraphicsLayerTextureMapper::setContentsRect):
        (WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
        (WebCore::GraphicsLayerTextureMapper::setContentsToMedia):
        (WebCore::GraphicsLayerTextureMapper::setShowDebugBorder):
        (WebCore::GraphicsLayerTextureMapper::setShowRepaintCounter):
        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
        (WebCore::GraphicsLayerTextureMapper::setDebugBorder):
        (WebCore::toTextureMapperLayerVector):
        (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
            Flush pending changes into TextureMapperLayer.
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        (WebCore::GraphicsLayerTextureMapper::setAnimations):
        (WebCore::GraphicsLayerTextureMapper::setFilters):
        (WebCore::GraphicsLayerTextureMapper::setBackingStore):
        (WebCore::GraphicsLayerTextureMapper::setFixedToViewport):
        (WebCore::GraphicsLayerTextureMapper::setRepaintCount):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        (WebCore):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::setChildren):
        (WebCore::TextureMapperLayer::setMaskLayer):
        (WebCore):
        (WebCore::TextureMapperLayer::setReplicaLayer):
        (WebCore::TextureMapperLayer::setPosition):
        (WebCore::TextureMapperLayer::setSize):
        (WebCore::TextureMapperLayer::setAnchorPoint):
        (WebCore::TextureMapperLayer::setPreserves3D):
        (WebCore::TextureMapperLayer::setTransform):
        (WebCore::TextureMapperLayer::setChildrenTransform):
        (WebCore::TextureMapperLayer::setContentsRect):
        (WebCore::TextureMapperLayer::setMasksToBounds):
        (WebCore::TextureMapperLayer::setDrawsContent):
        (WebCore::TextureMapperLayer::setContentsVisible):
        (WebCore::TextureMapperLayer::setContentsOpaque):
        (WebCore::TextureMapperLayer::setBackfaceVisibility):
        (WebCore::TextureMapperLayer::setOpacity):
        (WebCore::TextureMapperLayer::setSolidColor):
        (WebCore::TextureMapperLayer::setFilters):
        (WebCore::TextureMapperLayer::setDebugVisuals):
        (WebCore::TextureMapperLayer::setRepaintCount):
        (WebCore::TextureMapperLayer::setContentsLayer):
        (WebCore::TextureMapperLayer::setAnimations):
        (WebCore::TextureMapperLayer::setFixedToViewport):
        (WebCore::TextureMapperLayer::setBackingStore):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore):
        (TextureMapperLayer):
        (WebCore::TextureMapperLayer::TextureMapperLayer):

2013-01-30  Elliott Sprehn  <esprehn@chromium.org>

        getDecorationRootAndDecoratedRoot should add new user agent shadow roots
        https://bugs.webkit.org/show_bug.cgi?id=108301

        Reviewed by Hajime Morita.

        getDecorationRootAndDecoratedRoot intended to add a second UserAgentShadowRoot
        to the input, not just reuse the existing one so it could insert icons into
        the inputs. Add back in this behavior for now so we can sort out the right thing
        to do.

        This behavior is wrong in the current architecture since it means if you had an
        input type=submit, add an author shadow root, and then change the type to text
        and then the browser decorates it your shadow magically becomes inaccessible since
        input.shadowRoot is no longer available. This feature is currently only used for
        decorating type=password fields in Chromium with an icon for password generation.

        No new tests, there's no way to test this because it's only used in Chromium
        by way of the ChromeClient.

        * html/shadow/TextFieldDecorationElement.cpp:
        (WebCore::getDecorationRootAndDecoratedRoot):

2013-01-30  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Remove m_pendingSyncBackingStores in LayerTreeRenderer.
        https://bugs.webkit.org/show_bug.cgi?id=107099

        Reviewed by Noam Rosenthal.

        Add GraphicsLayerTextureMapper::setBackingStore() so that
        LayerTreeRenderer sets a backing store to GraphicsLayerTextureMapper.

        Remove three methods of TextureMapperLayer related to a backing store
        because they are no longer used.

        Covered by existing compositing tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
        (WebCore):
        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
        (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
        (WebCore::GraphicsLayerTextureMapper::setBackingStore):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (TextureMapperLayer):

2013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: DTE adds additional space to the end of line.
        https://bugs.webkit.org/show_bug.cgi?id=108192

        Reviewed by Pavel Feldman.

        Append overlay highlight spans before decorations elements and skip
        them in _collectLinesFromDom method.

        No new tests.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
        (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):

2013-01-29  Shinya Kawanaka  <shinyak@chromium.org>

        Renderer is recreated unexpectedly after detach in HTMLInputElement
        https://bugs.webkit.org/show_bug.cgi?id=108150

        Reviewed by Kent Tamura.

        After r140659, destoryShadowSubtree() may update style in removeChild(). It causes
        attaching HTMLInputElement before creating shadowsubtree in HTMLInputElement::updateType().

        For safe, destroyShadowSubtree() should be done before detach().

        Test: fast/forms/number/number-change-type-on-focus-2.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):

2013-01-29  James Robinson  <jamesr@chromium.org>

        Scrollbar and scroll corner composited layers positioned incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=108255

        Reviewed by Simon Fraser.

        ScrollView::updateScrollbars() needs to update the overflow controls composited layers if scrollbars are added
        or removed. It was doing this by recording on entry to the function if it had horizontal or vertical scrollbars
        and then comparing that to m_horizontal/verticalScrollbar on exit. Unfortunately updateScrollbars is recursive
        and exits without running the postamble code when nested on the callstack. As a result, scrollbars may be
        added or removed several times during the recursion, possibly leaving the overflow control layers in an
        inconsistent state, while ending up with the same set of scrollbars.

        This changes the "has anything changed" logic to only compare local state (hasXXXScrollbar vs
        newHasXXXScrollbar) so changes in recursive calls are not considered.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):

2013-01-29  Shinya Kawanaka  <shinyak@chromium.org>

        Convert deprecatedShadowAncestorNode() to shadowHost() in Editor.cpp
        https://bugs.webkit.org/show_bug.cgi?id=108287

        Reviewed by Hajime Morita.

        This is the effort to convert deprecatedShadowAncestorNode() to shadowHost().

        Since all the caller object of deprecatedShadowAncestorNode() is in a shadow tree, calling deprecatedShadowAncestorNode()
        is equiavalent to calling shadowHost(). Also, for all the occurence of deprecatedShadowAncestorNode(), we don't need to
        worry about nested ShadowDOM issues. So directly converting deprecatedShadowAncestorNode() to shadowHost() should be safe.

        No new tests, simple refactoring.

        * editing/Editor.cpp:
        (WebCore::Editor::rangeOfString):
        (WebCore::Editor::countMatchesForText):

2013-01-29  Simon Fraser  <simon.fraser@apple.com>

        Rubberband scrolling on news.google.com causes text to blink repeatedly
        https://bugs.webkit.org/show_bug.cgi?id=107326

        Reviewed by Beth Dakin.

        When in the middle of layout, RenderBlock::updateScrollInfoAfterLayout()
        could cause us to re-evaluate reasons for compositing, via the call
        to updateLayerCompositingState() in RenderLayer::updateScrollInfoAfterLayout().
        
        At this time, when layout is still happening, it's bad to look at render
        geometry to decide when to do compositing (e.g. for fixed position); we might
        incorrectly conclude that the layer is outside the viewport.
        
        Fix by having RenderLayerCompositing store in a member whether it's safe
        to look at layout information. requiresCompositingForPosition() then consults
        this bit, and, if it needs to make decisions based on layout but layout is not
        complete, it doesn't change the compositing state of the layer.
        
        Not testable, since dumping the layer tree will update layout and mask the bug.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
        (WebCore::RenderLayerCompositor::updateCompositingLayers):
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2013-01-29  Mark Lam  <mark.lam@apple.com>

        Introducing WTF::TypeSafeEnum and DatabaseError.
        https://bugs.webkit.org/show_bug.cgi?id=108279.

        Reviewed by Geoffrey Garen.

        DatabaseError will be used later in the webdatabase refactoring effort.
        It is currently unused.

        No new tests.

        * GNUmakefile.list.am:
        * Modules/webdatabase/DatabaseError.h: Added.
        (WebCore):
        * Target.pri:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-01-29  Elliott Sprehn  <esprehn@chromium.org>

        Move ShadowRoot creation into ElementShadow
        https://bugs.webkit.org/show_bug.cgi?id=108267

        Reviewed by Hajime Morita.

        Instead of the ShadowRoot::create method doing crazy factory things and
        then needing to assert about the state of the ShadowRoot in addShadowRoot,
        just create ShadowRoots from inside ElementShadow.

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::createShadowRoot): Use addShadowRoot().
        (WebCore::Element::ensureUserAgentShadowRoot): Use addShadowRoot().
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::addShadowRoot): Now returns the new ShadowRoot.
        * dom/ElementShadow.h:
        (ElementShadow):
        * dom/ShadowRoot.cpp:
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::create): No longer does the association.
        (WebCore::ShadowRoot::setHost): Sets parent tree scope automatically.

2013-01-29  Mark Lam  <mark.lam@apple.com>

        Rename DBBackend::Server to DatabaseServer.
        https://bugs.webkit.org/show_bug.cgi?id=108278.

        Rubber stamped by Geoffrey Garen.

        This is only a renaming operation as part of the webdatabase refactoring
        effort. There is no semantic change.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/DBBackendServer.cpp: Removed.
        * Modules/webdatabase/DBBackendServer.h: Removed.
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::DatabaseManager):
        * Modules/webdatabase/DatabaseServer.cpp: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.cpp.
        (WebCore::DatabaseServer::initialize):
        (WebCore::DatabaseServer::setClient):
        (WebCore::DatabaseServer::databaseDirectoryPath):
        (WebCore::DatabaseServer::setDatabaseDirectoryPath):
        (WebCore::DatabaseServer::fullPathForDatabase):
        (WebCore::DatabaseServer::hasEntryForOrigin):
        (WebCore::DatabaseServer::origins):
        (WebCore::DatabaseServer::databaseNamesForOrigin):
        (WebCore::DatabaseServer::detailsForNameAndOrigin):
        (WebCore::DatabaseServer::usageForOrigin):
        (WebCore::DatabaseServer::quotaForOrigin):
        (WebCore::DatabaseServer::setQuota):
        (WebCore::DatabaseServer::deleteAllDatabases):
        (WebCore::DatabaseServer::deleteOrigin):
        (WebCore::DatabaseServer::deleteDatabase):
        (WebCore::DatabaseServer::scheduleNotifyDatabaseChanged):
        (WebCore::DatabaseServer::databaseChanged):
        (WebCore::DatabaseServer::closeDatabasesImmediately):
        (WebCore::DatabaseServer::interruptAllDatabasesForContext):
        (WebCore::DatabaseServer::canEstablishDatabase):
        (WebCore::DatabaseServer::addOpenDatabase):
        (WebCore::DatabaseServer::removeOpenDatabase):
        (WebCore::DatabaseServer::setDatabaseDetails):
        (WebCore::DatabaseServer::getMaxSizeForDatabase):
        (WebCore):
        * Modules/webdatabase/DatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
        * Target.pri:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/DatabaseStrategy.cpp:
        (WebCore::DatabaseStrategy::getDatabaseServer):

2013-01-29  Chris Fleizach  <cfleizach@apple.com>

        AX: VoiceOver not reading bullets correctly in the text of notes
        https://bugs.webkit.org/show_bug.cgi?id=107980

        Reviewed by Ryosuke Niwa.

        Accessibility code should not assume that all list markers end with the same "." suffix.
        We need to use the actual suffix.

        Test: platform/mac/accessibility/listmarker-suffix.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

2013-01-29  Mark Lam  <mark.lam@apple.com>

        Rename AbstractDatabase to DatabaseBackend.
        https://bugs.webkit.org/show_bug.cgi?id=108275.

        Reviewed by Sam Weinig.

        This is a pure rename operation as part of the webdatabase refactoring
        effort. There is no semantic change in this patch.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabase.cpp: Removed.
        * Modules/webdatabase/AbstractDatabase.h: Removed.
        * Modules/webdatabase/AbstractDatabaseServer.h:
        (WebCore):
        (AbstractDatabaseServer):
        * Modules/webdatabase/DBBackendServer.cpp:
        (WebCore::DBBackend::Server::databaseChanged):
        (WebCore::DBBackend::Server::addOpenDatabase):
        (WebCore::DBBackend::Server::removeOpenDatabase):
        (WebCore::DBBackend::Server::getMaxSizeForDatabase):
        * Modules/webdatabase/DBBackendServer.h:
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::Database):
        (WebCore::Database::version):
        (WebCore::Database::performOpenAndVerify):
        * Modules/webdatabase/Database.h:
        * Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabase.cpp.
        (WebCore):
        (WebCore::DatabaseBackend::databaseInfoTableName):
        (WebCore::DatabaseBackend::DatabaseBackend):
        (WebCore::DatabaseBackend::~DatabaseBackend):
        (WebCore::DatabaseBackend::closeDatabase):
        (WebCore::DatabaseBackend::version):
        (WebCore::DatabaseBackend::performOpenAndVerify):
        (WebCore::DatabaseBackend::scriptExecutionContext):
        (WebCore::DatabaseBackend::securityOrigin):
        (WebCore::DatabaseBackend::stringIdentifier):
        (WebCore::DatabaseBackend::displayName):
        (WebCore::DatabaseBackend::estimatedSize):
        (WebCore::DatabaseBackend::fileName):
        (WebCore::DatabaseBackend::details):
        (WebCore::DatabaseBackend::getVersionFromDatabase):
        (WebCore::DatabaseBackend::setVersionInDatabase):
        (WebCore::DatabaseBackend::setExpectedVersion):
        (WebCore::DatabaseBackend::getCachedVersion):
        (WebCore::DatabaseBackend::setCachedVersion):
        (WebCore::DatabaseBackend::getActualVersionForTransaction):
        (WebCore::DatabaseBackend::disableAuthorizer):
        (WebCore::DatabaseBackend::enableAuthorizer):
        (WebCore::DatabaseBackend::setAuthorizerReadOnly):
        (WebCore::DatabaseBackend::setAuthorizerPermissions):
        (WebCore::DatabaseBackend::lastActionChangedDatabase):
        (WebCore::DatabaseBackend::lastActionWasInsert):
        (WebCore::DatabaseBackend::resetDeletes):
        (WebCore::DatabaseBackend::hadDeletes):
        (WebCore::DatabaseBackend::resetAuthorizer):
        (WebCore::DatabaseBackend::maximumSize):
        (WebCore::DatabaseBackend::incrementalVacuumIfNeeded):
        (WebCore::DatabaseBackend::interrupt):
        (WebCore::DatabaseBackend::isInterrupted):
        (WebCore::DatabaseBackend::logErrorMessage):
        (WebCore::DatabaseBackend::reportOpenDatabaseResult):
        (WebCore::DatabaseBackend::reportChangeVersionResult):
        (WebCore::DatabaseBackend::reportStartTransactionResult):
        (WebCore::DatabaseBackend::reportCommitTransactionResult):
        (WebCore::DatabaseBackend::reportExecuteStatementResult):
        (WebCore::DatabaseBackend::reportVacuumDatabaseResult):
        * Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabase.h.
        (DatabaseBackend):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::databaseChanged):
        (WebCore::DatabaseManager::addOpenDatabase):
        (WebCore::DatabaseManager::removeOpenDatabase):
        (WebCore::DatabaseManager::getMaxSizeForDatabase):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::DatabaseSync):
        * Modules/webdatabase/DatabaseSync.h:
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
        (WebCore::DatabaseTracker::databaseChanged):
        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
        (WebCore::DatabaseTracker::addOpenDatabase):
        (WebCore::DatabaseTracker::removeOpenDatabase):
        (WebCore::DatabaseTracker::getOpenDatabases):
        (WebCore::DatabaseTracker::deleteDatabaseFile):
        * Modules/webdatabase/DatabaseTracker.h:
        (WebCore):
        (DatabaseTracker):
        * Modules/webdatabase/OriginQuotaManager.cpp:
        (WebCore::OriginQuotaManager::markDatabase):
        * Modules/webdatabase/OriginQuotaManager.h:
        (WebCore):
        (OriginQuotaManager):
        * Modules/webdatabase/SQLTransactionClient.cpp:
        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
        (WebCore::SQLTransactionClient::didExecuteStatement):
        (WebCore::SQLTransactionClient::didExceedQuota):
        * Modules/webdatabase/SQLTransactionClient.h:
        (WebCore):
        (SQLTransactionClient):
        * Modules/webdatabase/chromium/DatabaseObserver.h:
        (WebCore):
        (DatabaseObserver):
        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
        (WebCore::DatabaseTracker::addOpenDatabase):
        (WebCore::NotifyDatabaseObserverOnCloseTask::create):
        (WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
        (NotifyDatabaseObserverOnCloseTask):
        (WebCore::DatabaseTracker::removeOpenDatabase):
        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
        (DatabaseTracker::CloseOneDatabaseImmediatelyTask):
        (WebCore::DatabaseTracker::closeOneDatabaseImmediately):
        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
        (WebCore::NotifyDatabaseChangedTask::create):
        (WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
        (NotifyDatabaseChangedTask):
        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
        (WebCore::SQLTransactionClient::didExecuteStatement):
        (WebCore::SQLTransactionClient::didExceedQuota):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:

2013-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140983.
        http://trac.webkit.org/changeset/140983
        https://bugs.webkit.org/show_bug.cgi?id=108277

        Unfortunately, this API has one last client (Requested by
        abarth on #webkit).

        * Configurations/FeatureDefines.xcconfig:
        * Modules/notifications/Notification.cpp:
        (WebCore::Notification::Notification):
        (WebCore):
        (WebCore::Notification::create):
        * Modules/notifications/Notification.h:
        (Notification):
        (WebCore::Notification::isHTML):
        (WebCore::Notification::setHTML):
        (WebCore::Notification::url):
        (WebCore::Notification::setURL):
        * Modules/notifications/NotificationCenter.h:
        (WebCore::NotificationCenter::createHTMLNotification):
        (NotificationCenter):
        * Modules/notifications/NotificationCenter.idl:
        * page/FeatureObserver.h:

2013-01-29  Rafael Weinstein  <rafaelw@chromium.org>

        parserAppendChild and parserInsertBefore should ensure that child nodes are in the same document
        https://bugs.webkit.org/show_bug.cgi?id=108260

        Reviewed by Eric Seidel.

        Test: fast/parser/xml-error-adopted.xml

        The check and adoption if the documents don't match is now moved into ContainerNode::parser* from HTMLConstructionSite.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserAppendChild):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::findFosterSite):
        (WebCore::HTMLConstructionSite::fosterParent):

2013-01-29  Shinya Kawanaka  <shinyak@chromium.org>

        [Chromium] Cannot copy text when selecting readonly (or disabled) input elements
        https://bugs.webkit.org/show_bug.cgi?id=106287

        Reviewed by Hajime Morita.

        When an input element is disabled or readonly, its inner element is not editable. So its rootEditableElement
        does not exist. In WebViewImpl::caretOrSelectionRange, if rootEditableElement does not exist, it uses
        a document element. However, the inner element and document element have a different tree scope, the selection range
        cannot be gotten correctly.

        We should use ShadowRoot instead of document so that we can stay in the same tree scope.

        * WebCore.exp.in:
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::rootEditableElementOrTreeScopeRootNode): Added. Returns ShadowRoot so that we can
        stay in the same tree scope.
        (WebCore):
        * editing/FrameSelection.h:
        (FrameSelection):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::getLocationAndLengthFromRange):
        * editing/TextIterator.h:
        (TextIterator):

2013-01-29  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: The content should not overflow the <input> boundary
        https://bugs.webkit.org/show_bug.cgi?id=108069

        Reviewed by Hajime Morita.

        To avoid the overflow, we do:
        A) Specify overflow:hidden to <input>.

        However, we need to make sub-fields and buttons workable even if the
        width is smaller than the intrinsic size. So, we do:
        B) Make DateTimeEditElement shrinkable, and
        C) Make the sub-fields scrollable horizontally like input[type=text].

        To achieve B, we need to remove -webkit-date-and-time-container (D)
        because width property for <input> can shrink only the direct child
        elements.

        Tests: fast/forms/time-multiple-fields/time-multiple-fields-narrow-width-scroll.html
        and new test cases in fast/forms/date/date-appearance-basic.html.

        * css/html.css:
        (input[type="date"]):
        Change -webkit-align-items value. (D)
        Specify overflow:hidden. (A)
        (input[type="datetime"]): Ditto.
        (input[type="datetime-local"]): Ditto.
        (input[type="month"]): Ditto.
        (input[type="time"]): Ditto.
        (input[type="week"]): Ditto.
        (input::-webkit-datetime-edit):
        Add min-width:0 (B), and overflow:hidden. (C)
        Remove unnecessary white-space:pre because of white-space:nowrap below.
        (input::-webkit-datetime-edit-fields-wrapper):
        Added. This is the child of -webkit-datetime-edit, and contains
        sub-fields. (C)
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
        Remove -webkit-date-and-time-container, and append DateTimeEditElement,
        spin button, and picker indicator element to the ShadowRoot. (D)
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldApplyLocaleDirection):
        <input> for multiple fields UI should have the direction of the browser
        locale. This is a replacement of the code for dir attribute in
        updateInnerTextValue below. (D)
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
        Remove the code to set dir= to -webkit-date-and-time-container.
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType):
        Declare shouldApplyLocaleDirection. (D)
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::HTMLInputElement):
        Calls setHasCustomCallbacks for customStyleForRenderer. (D)
        (WebCore::HTMLInputElement::customStyleForRenderer):
        Set direction to RenderStyle if shouldApplyLocaleDirection is true. This
        is a replacement of the dir setting code in
        BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue. (D)
        * html/HTMLInputElement.h:
        (HTMLInputElement): Declare customStyleForRenderer. (D)
        * html/InputType.cpp:
        (WebCore::InputType::shouldApplyLocaleDirection):
        Add default implmentation of shouldApplyLocaleDirection. (D)
        * html/InputType.h:
        (InputType): Declare shouldApplyLocaleDirection. (D)

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitLiteral):
        Add elements to -webkit-datetime-edit-fields-wrapper element. (C)
        (WebCore::DateTimeEditElement::fieldsWrapperElement):
        A helper to get -webkit-datetime-edit-fields-wrapper element. (C)
        (WebCore::DateTimeEditElement::addField):
        Add elements to -webkit-datetime-edit-fields-wrapper element. (C)
        (WebCore::DateTimeEditElement::customStyleForRenderer):
        - Iterate over children of -webkit-datetime-edit-fields-wrapper element. (C)
        - Set width property instead of min-width. (B)
        (WebCore::DateTimeEditElement::layout):
        - Prepare -webkit-datetime-edit-fields-wrapper element. (C)
        - Handle children of -webkit-datetime-edit-fields-wrapper element. (C)
        - Need to do style recalc because child structure is changed. (C)
        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement): Declare fieldsWrapperElement. (C)

2013-01-29  Tom Sepez  <tsepez@chromium.org>

        [v8] Enable binding integrity on linux
        https://bugs.webkit.org/show_bug.cgi?id=108242

        Reviewed by Adam Barth.

        Patch is correct if existing tests pass.

        * html/TextMetrics.idl:
        Suppress check to allow link on linux.

2013-01-29  Tim Horton  <timothy_horton@apple.com>

        Don't updateTileCoverageMap() from setScrollingModeIndication if we don't need to.

        Reviewed by Simon Fraser.

        Only do the work if the tiled scrolling indicator/map is enabled.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setScrollingModeIndication):

2013-01-29  Chris Fleizach  <cfleizach@apple.com>

        AX: Add support for aria-autocomplete="list" on ARIA combobox
        https://bugs.webkit.org/show_bug.cgi?id=108228

        Reviewed by Ryosuke Niwa.

        Comboboxes behave much like textfields, and so they need
        to respond like text controls.

        Test: platform/mac/accessibility/combox-box-value.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::isTextControl):
        (WebCore):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):

2013-01-29  Nico Weber  <thakis@chromium.org>

        [chromium] Do not mark translation-unit-local functions as extern "C"
        https://bugs.webkit.org/show_bug.cgi?id=108218

        Reviewed by Adam Barth.

        Requested by darin in https://bugs.webkit.org/show_bug.cgi?id=107845
        This also allows enabling -Wreturn-type-c-linkage again, but I'd like to
        wait for the next clang roll (which tweaks this warning) before undoing
        r140800 (which removed that warning).

        No behavior change.

        * bindings/v8/npruntime.cpp:

2013-01-29  Geoffrey Garen  <ggaren@apple.com>

        Removed GGC because it has been disabled for a long time
        https://bugs.webkit.org/show_bug.cgi?id=108245

        Reviewed by Filip Pizlo.

        * ForwardingHeaders/heap/CardSet.h: Removed.
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:

2013-01-29  Elliott Sprehn  <esprehn@chromium.org>
        Refactor ShadowRoot exception handling
        https://bugs.webkit.org/show_bug.cgi?id=108209

        Reviewed by Dimitri Glazkov.

        Many of the exception cases for ShadowRoot are actually impossible and
        should be asserts instead. We can also move the one case of exception logic,
        for elements that don't allow author shadows into Element::createShadowRoot
        instead of having it all over the ShadowRoot and ElementShadow classes. This
        is the first step in centralizing all ShadowRoot creation inside ElementShadow.

        No new tests, covered by existing tests.

        * WebCore.exp.in:
        * dom/Element.cpp:
        (WebCore::Element::createShadowRoot): Be explicit about what kind of ShadowRoot you're creating.
        (WebCore::Element::ensureUserAgentShadowRoot): No more exceptions.
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::addShadowRoot): This never actually throws exceptions, remove ExceptionCode.
        * dom/ElementShadow.h:
        (ElementShadow):
        * dom/ShadowRoot.cpp:
        (WebCore::determineUsageType): Merge with Element::createShadowRoot.
        (WebCore):
        (WebCore::ShadowRoot::ShadowRoot): Moved Histogram logic here since it's actually about the constructor anyway.
        (WebCore::ShadowRoot::create): Removed overload that made the code less obvious.
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        * html/shadow/TextFieldDecorationElement.cpp:
        (WebCore::getDecorationRootAndDecoratedRoot):
        * testing/Internals.cpp:
        (WebCore::Internals::ensureShadowRoot):
        (WebCore::Internals::createShadowRoot):

2013-01-29  Mark Lam  <mark.lam@apple.com>

        Change DatabaseContext lookup to be thread-safe.
        https://bugs.webkit.org/show_bug.cgi?id=107784.

        Reviewed by Geoffrey Garen.

        DatabaseContext will no longer be a Supplement of ScriptExecutionContext.
        Instead we will maintain a mutex guarded contextMap in the DatabaseManager
        which maps ScriptExecutionContexts to DatabaseContexts.

        Also cleaned up the shutdown mechanism of the DatabaseContext,
        DatabaseThread, and Databases when their owner ScriptExecutionContext
        destructs.

        No new tests.

        * Modules/webdatabase/AbstractDatabase.cpp:
        (WebCore::AbstractDatabase::AbstractDatabase):
        * Modules/webdatabase/AbstractDatabase.h:
        (WebCore::AbstractDatabase::databaseContext):
        (AbstractDatabase):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::Database):
        * Modules/webdatabase/Database.h:
        (WebCore):
        (Database):
        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore):
        (WebCore::DatabaseContext::DatabaseContext):
        (WebCore::DatabaseContext::~DatabaseContext):
        (WebCore::DatabaseContext::contextDestroyed):
        (WebCore::DatabaseContext::stop):
        (WebCore::DatabaseContext::databaseThread):
        (WebCore::DatabaseContext::stopDatabases):
        * Modules/webdatabase/DatabaseContext.h:
        (DatabaseContext):
        (WebCore::DatabaseContext::scriptExecutionContext):
        (WebCore::DatabaseContext::hasOpenDatabases):
        (WebCore::DatabaseContext::stopDatabases):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::manager):
        (WebCore::DatabaseManager::DatabaseManager):
        (WebCore::DatabaseManager::getExistingDatabaseContext):
        (WebCore):
        (WebCore::DatabaseManager::getDatabaseContext):
        (WebCore::DatabaseManager::registerDatabaseContext):
        (WebCore::DatabaseManager::unregisterDatabaseContext):
        (WebCore::DatabaseManager::notifyDatabaseContextConstructed):
        (WebCore::DatabaseManager::notifyDatabaseContextDestructed):
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseManager::openDatabaseSync):
        (WebCore::DatabaseManager::hasOpenDatabases):
        (WebCore::DatabaseManager::stopDatabases):
        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
        * Modules/webdatabase/DatabaseManager.h:
        (WebCore):
        (DatabaseManager):
        (WebCore::DatabaseManager::notifyDatabaseContextConstructed):
        (WebCore::DatabaseManager::notifyDatabaseContextDestructed):
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::DatabaseSync):
        * Modules/webdatabase/DatabaseSync.h:
        (WebCore):
        (DatabaseSync):
        * Modules/webdatabase/DatabaseThread.cpp:
        (WebCore::DatabaseThread::~DatabaseThread):
        (WebCore::DatabaseThread::requestTermination):
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase):
        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::~ActiveDOMObject):

2013-01-29  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Make resolveContentBasedTrackSizingFunctionsForItems reuse distributeSpaceToTracks
        https://bugs.webkit.org/show_bug.cgi?id=108110

        Reviewed by Tony Chang.

        This change makes us match more closely the specification by reusing distributeSpaceToTracks inside
        resolveContentBasedTrackSizingFunctionsForItems. This also removes some existing code duplication.

        Refactoring covered by existing tests.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
        Updated after distributeSpaceToTracks new arguments. Copying the tracks to a Vector<GridTrack*> is
        now done here.

        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
        Removed code duplication and switched to using distributeSpaceToTracks.

        (WebCore::RenderGrid::distributeSpaceToTracks):
        Refactored distributeSpaceToTracks to implement the distribution of any extra space above max breadth
        as it was required to pass the tests (required to properly handling min-content > max). Also changed
        the arguments of the function to better match the intent of the function.

        * rendering/RenderGrid.h: Updated distributeSpaceToTracks's arguments.

2013-01-29  Elliott Sprehn  <esprehn@chromium.org>

        Remove all ShadowRoots during ElementShadow destruction
        https://bugs.webkit.org/show_bug.cgi?id=108207

        Reviewed by Dimitri Glazkov.

        There's no reason to expose removeAllShadowRoots since the only legitimate
        place to call it is right as we're destroying the ElementShadow.

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::~Element): Remove call to removeAllShadowRoots()
        * dom/ElementShadow.h:
        (WebCore::ElementShadow::~ElementShadow): Call removeAllShadowRoots().
        (ElementShadow): Make removeAllShadowRoots() private.

2013-01-29  Justin Novosad  <junov@google.com>

        REGRESSION (r135628-135632): Double box shadow failure to render
        https://bugs.webkit.org/show_bug.cgi?id=107833

        Reviewed by Simon Fraser.

        Regression caused by http://trac.webkit.org/changeset/135629
        The regression was due to faulty occlusion logic that was assuming
        that drawing the background color of a render box background layer
        could be skipped when the same layer also has an opaque image attached.
        In the case where the background color is drawn for the purpose of
        rendering a box shadow, the shadow is typically not
        completely occluded by the background image because of the shadow
        blur and/or offset.  This patch fixes the problem by not culling a
        background draw if it is used to draw a box shadow.

        Test: fast/backgrounds/gradient-background-shadow.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        Changing occlusion culling test to never cull background color
        draw if it is used to draw a box shadow. This is because box shadows
        can draw outside the border fill region.

2013-01-29  Ian Vollick  <vollick@chromium.org>

        Add RenderLayer::enclosingStackingContainer
        https://bugs.webkit.org/show_bug.cgi?id=108211

        Reviewed by Simon Fraser.

        No new tests, no change in functionality.

        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::enclosingStackingContainer):
          This function is similar to RenderLayer::stackingContainer, but may return the
          layer itself if it's a stacking container.

2013-01-29  Patrick Gansterer  <paroga@webkit.org>

        Rename TextBreakIteratorWinCE to TextBreakIteratorWchar
        https://bugs.webkit.org/show_bug.cgi?id=108094

        Reviewed by Ryosuke Niwa.

        TextBreakIteratorWinCE does not contain any Windows CE specific code.
        Rename it to TextBreakIteratorWchar to match the name in wtf/unicode.

        * platform/text/wchar/TextBreakIteratorWchar.cpp: Renamed from Source/WebCore/platform/text/wince/TextBreakIteratorWinCE.cpp.

2013-01-29  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: A MediaStreamComponent should be able to return the MediaStreamDescriptor it belongs to
        https://bugs.webkit.org/show_bug.cgi?id=108173

        Reviewed by Adam Barth.

        To be able to return the MediaStreamDescriptor a MediaStreamComponent belongs to the "ownership"
        of the MediaStreamDescriptor needed to move from a MediaStreamTrack to the MediaStreamComponent.
        This is also better from an architectonic view as well.

        Patch covered by existing tests.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::MediaStream):
        (WebCore::MediaStream::addTrack):
        (WebCore::MediaStream::addRemoteTrack):
        * Modules/mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::create):
        (WebCore::MediaStreamTrack::MediaStreamTrack):
        (WebCore::MediaStreamTrack::setEnabled):
        * Modules/mediastream/MediaStreamTrack.h:
        (MediaStreamTrack):
        * Modules/mediastream/RTCStatsRequestImpl.cpp:
        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
        * platform/chromium/support/WebMediaStreamComponent.cpp:
        (WebKit::WebMediaStreamComponent::stream):
        (WebKit):
        * platform/mediastream/MediaStreamComponent.h:
        (WebCore):
        (WebCore::MediaStreamComponent::create):
        (MediaStreamComponent):
        (WebCore::MediaStreamComponent::stream):
        (WebCore::MediaStreamComponent::setStream):
        (WebCore::MediaStreamComponent::MediaStreamComponent):
        * platform/mediastream/MediaStreamDescriptor.h:
        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):

2013-01-29  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
        https://bugs.webkit.org/show_bug.cgi?id=103920

        Reviewed by Dimitri Glazkov.

        Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
        pass through a metadata parameter. While there, remove the unused
        IDBTransactionBackendInterface parameter to onUpgradeNeeded.

        As this is another step in the IDB refactor, I've simplified future cleanup
        work by making the WebKit API code still use the old API. This
        will make it possible to outright remove code on the chromium side rather
        than another three-step checkin.

        No new tests, as this is more refactoring.

        * Modules/indexeddb/IDBCallbacks.h:
        (WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
        (WebCore::IDBCallbacks::onSuccess): new method signature.
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
        (WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):

2013-01-29  Dirk Schulze  <dschulze@adobe.com>

        Canvas support for isPointInStroke
        https://bugs.webkit.org/show_bug.cgi?id=108185

        Reviewed by Dean Jackson.

        isPointInStroke(x,y) returns true if a point hits the stroke
        with applied stroke styles like dashArray, lineCap, lineJoin, lineWidth.
        The syntax is similar to isPointInPath, which returns true if a point hits
        the fill area of a path.
        Firefox implemented isPointInStroke originally and unprefixed it recently:

        https://bugzilla.mozilla.org/show_bug.cgi?id=803124

        Test: fast/canvas/canvas-isPointInStroke.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasStrokeStyleApplier::strokeStyle): Take dashArray and lineDashOffset into account.
        (WebCore):
        (WebCore::CanvasRenderingContext2D::isPointInStroke): The implementation of the function.
        * html/canvas/CanvasRenderingContext2D.h:
        (CanvasRenderingContext2D):
        * html/canvas/CanvasRenderingContext2D.idl: Added operation to interface.

2013-01-29  Nate Chapin  <japhet@chromium.org>

        Enable reuse of cached main resources
        https://bugs.webkit.org/show_bug.cgi?id=105667

        Reviewed by Adam Barth.

        Test: http/tests/cache/cached-main-resource.html

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
        (WebCore):
        * dom/Document.h:
        (Document):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
            MainResourceLoader will take care of it.
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
        (WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
        (WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
            ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
        (WebCore::MainResourceLoader::identifier):
        * loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
            to better describe when it is used.
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
        (WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
        (WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
        * loader/cache/CachedRawResource.h:
        (CachedRawResource):
        (RedirectPair):
        (WebCore::CachedRawResource::RedirectPair::RedirectPair):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addClientToSet): Don't return cached data for a main resource synchronously
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::canReuse):
        (CachedResource):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource): Leave cahce reuse of main resources off for chromium for now.
        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
        * testing/Internals.cpp:
        (WebCore::Internals::isPreloaded):
        (WebCore):
        (WebCore::Internals::isLoadingFromMemoryCache):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-01-29  Min Qin  <qinmin@chromium.org>

        Fix a problem that deferred image decoding is enabled for multiframe images
        https://bugs.webkit.org/show_bug.cgi?id=108152

        Reviewed by Stephen White.

        Deferred image decoding should only work for single frame images now.
        However, using ImageDecoder::repetitionCount() does not capture all the cases.
        Enforce the rule using ImageDecoder::frameCount()==1.
        Fixing a failing layout test: platform/chromium/virtual/deferred/fast/images/icon-0colors.html

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):

2013-01-29  Elliott Sprehn  <esprehn@chromium.org>

        Move ElementShadow creation to ElementRareData
        https://bugs.webkit.org/show_bug.cgi?id=108195

        Reviewed by Dimitri Glazkov.

        Move the creation of ElementShadow to ElementRareData
        for better encapsulation, and get rid of ElementRareData::setShadow.

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::~Element): Use clearShadow() instead of setShadow which is removed.
        (WebCore::Element::shadow):
        (WebCore::Element::ensureShadow): Use ElementRareData::ensureShadow().
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::clearShadow): Added.
        (WebCore::ElementRareData::ensureShadow): Added.

2013-01-29  Alpha Lam  <hclam@chromium.org>

        [chromium] Unreviewed build fix.

        Revert my revert at 141033 which can cause deadlock.

        * platform/graphics/chromium/DiscardablePixelRef.cpp:
        (WebCore::DiscardablePixelRefAllocator::allocPixelRef):
        (WebCore::DiscardablePixelRef::DiscardablePixelRef):
        * platform/graphics/chromium/DiscardablePixelRef.h:
        (DiscardablePixelRef):

2013-01-29  Joshua Bell  <jsbell@chromium.org>

        [Chromium] IndexedDB: Let callers specify reason (error) for aborting transaction
        https://bugs.webkit.org/show_bug.cgi?id=107851

        Reviewed by Tony Chang.

        Internal to the back-end, callers are able to abort transactions and specify a reason
        as an IDBDatabaseError, e.g. ConstraintError. Expose this to the WebKit/chromium/public
        API so that intermediate layers can specify reasons as well, e.g. QuotaExceededError.

        Test will land in Chromium as fix for crbug.com/113118

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::abort): Added overload that takes error.
        * Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
        * Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.

2013-01-29  Victor Carbune  <vcarbune@chromium.org>

        Heap-use-after-free in WebCore::RenderTextTrackCue::layout
        https://bugs.webkit.org/show_bug.cgi?id=108197

        Reviewed by Eric Carlson.

        Test: media/track/track-cue-rendering-tree-is-removed-properly.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTrackRemoveCue): Ensure the display tree
        is removed when the cue is removed from the list of cues.
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::~TextTrackCue): Enfore display tree removal.

2013-01-29  Eli Fidler  <efidler@rim.com>

        On HarfbuzzNG ports, Arabic TATWEEL is not joined.
        https://bugs.webkit.org/show_bug.cgi?id=108037

        Reviewed by Tony Chang.

        The tatweel (U+0640) is being split into a separate run, because its script is USCRIPT_COMMON.
        It has script extensions for USCRIPT_ARABIC, so I think it shouldn't trigger a new run.

        Test: fast/text/international/arabic-tatweel-join.html

        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):

2013-01-29  Martin Robinson  <mrobinson@igalia.com>

        [Freetype] Cannot use characters outside the BMP
        https://bugs.webkit.org/show_bug.cgi?id=108102

        Reviewed by Carlos Garcia Campos.

        Test: platform/gtk/fonts/non-bmp-characters.html

        Instead of never handling surrogate pairs when dealing with UChar arrays,
        abstract way the logic for this into UTF16UChar32Iterator and use it
        everywhere in Freetype. This allows the Freetype backend to render
        non-BMP characters which are always represented as surrogate pairs in
        UTF-16.

        * GNUmakefile.list.am: Added UTF16UChar32Iterator to the source list.
        * platform/graphics/freetype/FontCacheFreeType.cpp:
        (WebCore::createFontConfigPatternForCharacters): Use the new iterator.
        (WebCore::FontCache::getFontDataForCharacters): Ditto.
        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
        (WebCore::GlyphPage::fill): Ditto. Remove the early return when dealing
        with non-BMP data.
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore::SimpleFontData::containsCharacters): Use the new iterator.
        * platform/graphics/freetype/UTF16UChar32Iterator.h: Added. An iterator that
        extracts UChar32 from UTF-16 UChar arrays.

        * GNUmakefile.list.am:
        * platform/graphics/freetype/FontCacheFreeType.cpp:
        (WebCore::createFontConfigPatternForCharacters):
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore::SimpleFontData::containsCharacters):
        * platform/graphics/freetype/UTF16UChar32Iterator.h: Added.
        (WebCore):
        (UTF16UChar32Iterator):
        (WebCore::UTF16UChar32Iterator::UTF16UChar32Iterator):
        (WebCore::UTF16UChar32Iterator::end):
        (WebCore::UTF16UChar32Iterator::next):

        * GNUmakefile.list.am:
        * platform/graphics/freetype/FontCacheFreeType.cpp:
        (WebCore::createFontConfigPatternForCharacters):
        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore::SimpleFontData::containsCharacters):
        * platform/graphics/freetype/UTF16UChar32Iterator.h: Added.
        (WebCore):
        (UTF16UChar32Iterator):
        (WebCore::UTF16UChar32Iterator::UTF16UChar32Iterator):
        (WebCore::UTF16UChar32Iterator::end):
        (WebCore::UTF16UChar32Iterator::next):

2013-01-29  Glenn Hartmann  <hartmanng@chromium.org>

        Don't overlap test for composited scroll DIVs after scroll
        https://bugs.webkit.org/show_bug.cgi?id=107471

        Reviewed by Simon Fraser.

        We don't need to test for overlap after scroll when both
        usesCompositedScrolling and !hasOutOfFlowPositionedDescendant
        because:

        a) Since we're using composited-scrolling, the composited region
        presented by the composited-scrolling element to other non-descendant
        layers doesn't change during composited scrolling (it's always the
        entire scroll layer), and

        b) Since we have no out of flow positioned descendants, the scrolling
        descendants all move together, so their overlap with respect to each
        other cannot change.

        So no descendants nor any non-descendants can have their overlap
        affected, so it's safe to skip testing.

        No new tests (no change in behaviour).

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingLayers):
        * rendering/RenderLayerCompositor.h:

2013-01-29  Alexis Menard  <alexis@webkit.org>

        Implement pseudoElement attribute on transition DOM events.
        https://bugs.webkit.org/show_bug.cgi?id=107986

        Reviewed by Julien Chaffraix.

        Implement the pseudoElement attribute documented here :
        http://dev.w3.org/csswg/css3-transitions/#transition-events.
        This add a new attribute to the transition DOM event useful when
        animating pseudo elements. As they are not accessible in JS, it's
        very useful to get on which pseudo element the transition just ended.
        This patch adds the new attribute on the IDLs of DOM transition events as well
        as adding it to the C++ classes representing them. The event
        dispatching code have been patched to change the target of the event
        (we can't send the current target as it is the actual DOM
        representation of the pseudo element).

        Test: fast/css-generated-content/pseudo-transition-event.html

        * dom/EventDispatcher.cpp:
        (WebCore::eventTargetRespectingTargetRules): Change the target of the
        event in the case of a pseudo element. We can't expose them through the
        public interface so the target is the node they belong to.
        (WebCore::EventDispatcher::ensureEventAncestors):
        (WebCore::EventDispatcher::dispatchScopedEvent):
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventDispatcher::dispatchEventPostProcess):
        * dom/EventTarget.cpp:
        (WebCore::createMatchingPrefixedEvent):
        * dom/PseudoElement.cpp:
        (WebCore::PseudoElement::pseudoElementNameForEvents):
        (WebCore):
        * dom/PseudoElement.h:
        * dom/TransitionEvent.cpp:
        (WebCore::TransitionEventInit::TransitionEventInit):
        (WebCore::TransitionEvent::TransitionEvent):
        (WebCore::TransitionEvent::pseudoElement):
        (WebCore):
        * dom/TransitionEvent.h:
        (TransitionEventInit):
        (WebCore::TransitionEvent::create):
        (TransitionEvent):
        * dom/TransitionEvent.idl:
        * dom/WebKitTransitionEvent.cpp:
        (WebCore::WebKitTransitionEventInit::WebKitTransitionEventInit):
        (WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
        (WebCore::WebKitTransitionEvent::pseudoElement):
        (WebCore):
        * dom/WebKitTransitionEvent.h:
        (WebKitTransitionEventInit):
        (WebCore::WebKitTransitionEvent::create):
        (WebKitTransitionEvent):
        * dom/WebKitTransitionEvent.idl:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): Pass
        the pseudo element name when creating the Event objects. If the element
        is not a pseudo element then the name will be empty which is what the
        spec is telling to do. If the element is a pseudo element then the name
        will be the pseudo element's name with "::" as a prefix.

2013-01-29  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Implement GCActivityCallback
        https://bugs.webkit.org/show_bug.cgi?id=103998

        Reviewed by Simon Hausmann.

        Implements the activity triggered garbage collector,
        and disables the timer based fallback.

        * bindings/js/GCController.cpp:
        (WebCore::GCController::GCController):
        (WebCore::GCController::garbageCollectSoon):
        * bindings/js/GCController.h:
        (GCController):

2013-01-29  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix bottom span in token highlight in DTE
        https://bugs.webkit.org/show_bug.cgi?id=108194

        Reviewed by Pavel Feldman.

        Change css style for token highlight from "border" to "outline" to
        avoid border included in box dimensions.

        No new tests: no change in behaviour.

        * inspector/front-end/textEditor.css:
        (.text-editor-token-highlight):

2013-01-29  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: introduce HighlightDescriptor interface in DTE.
        https://bugs.webkit.org/show_bug.cgi?id=108161

        Reviewed by Pavel Feldman.

        Introduce new HighlightDescriptor interface and its
        RegexHighlightDescriptor implementation and use it in DTE to
        support overlay highlight.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.highlightRegex):
        (WebInspector.DefaultTextEditor.prototype.removeRegexHighlight):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
        (WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
        (WebInspector.TextEditorMainPanel.prototype._paintLines):
        (WebInspector.TextEditorMainPanel.prototype._measureHighlightDescriptor):
        (WebInspector.TextEditorMainPanel.HighlightDescriptor): Added.
        (WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.affectsLine):
        (WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.rangesForLine):
        (WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.cssClass):
        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor): Added.
        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.affectsLine):
        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.rangesForLine):
        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.cssClass):
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._highlight):
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
        * inspector/front-end/TextEditor.js:
        (WebInspector.TextEditor.prototype.removeRegexHighlight):

2013-01-29  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Unified text checker implementation.
        https://bugs.webkit.org/show_bug.cgi?id=107682

        Reviewed by Anders Carlsson.

        No new tests, covered by editing/spelling tests.

        * platform/text/TextChecking.h:
        (WebCore):
        Enabling unified text checker feature for WebKit-EFL.

2013-01-29  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Wrong indent in Styles sidebar pane
        https://bugs.webkit.org/show_bug.cgi?id=108186

        Reviewed by Alexander Pavlov.

        Added an extra selector to prevent a conflict with a rule in elementsPanel.css.

        No new tests.

        * inspector/front-end/inspector.css:
        (.pane.expanded .section .properties, .event-bar .event-properties):

2013-01-29  Florin Malita  <fmalita@chromium.org>

        [Chromium] Unreviewed gardening.

        Update bindings-tests results after http://trac.webkit.org/changeset/141034.

        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8Float64Array::createWrapper):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestActiveDOMObject::createWrapper):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestCustomNamedGetter::createWrapper):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestEventConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestEventTarget::createWrapper):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestException::createWrapper):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestMediaQueryListListener::createWrapper):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestNamedConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestNode::createWrapper):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestObj::createWrapper):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestOverloadedConstructors::createWrapper):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore):
        (WebCore::checkTypeOrDieTrying):
        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):

2013-01-29  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] support instrumenting canvases in iframes (backend side)
        https://bugs.webkit.org/show_bug.cgi?id=107951

        Reviewed by Pavel Feldman.

        Accept optional FrameId argument for captureFrame and startCapturing commands.
        Add event to the protocol to inform about instrumented canvas context creation.

        * inspector/Inspector.json:
        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
        (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
        (WebCore::InspectorCanvasAgent::captureFrame):
        (WebCore::InspectorCanvasAgent::startCapturing):
        (WebCore::InspectorCanvasAgent::getTraceLog):
        (WebCore::InspectorCanvasAgent::replayTraceLog):
        (WebCore::InspectorCanvasAgent::getResourceInfo):
        (WebCore::InspectorCanvasAgent::getResourceState):
        (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
        (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
        (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
        (WebCore):
        (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
        (WebCore::InspectorCanvasAgent::frameNavigated):
        (WebCore::InspectorCanvasAgent::frameDetached):
        * inspector/InspectorCanvasAgent.h:
        (WebCore):
        (WebCore::InspectorCanvasAgent::create):
        (InspectorCanvasAgent):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):

2013-01-29  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [CPU Profile] Taking profile crashes renderer.
        https://bugs.webkit.org/show_bug.cgi?id=108072

        Reviewed by Yury Semikhatsky.

        Test: inspector/profiler/cpu-profiler-agent-crash-on-start.html

        Fixed null-pointer access.

        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::start): Fixed null-pointer access.
        (WebCore::ScriptProfiler::stop): Ditto.

2013-01-29  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        REGRESSION: ChildrenAffectedBy flags lost between siblings which have child elements sharing style
        https://bugs.webkit.org/show_bug.cgi?id=105672

        Reviewed by Andreas Kling.

        Change in how childrenAffectedBy bits were stored made it easier to trigger an issue where childrenAffectedBy bits
        were not set due to sharing of styles between cousin elements.

        This patch fixes the issue by not sharing styles from children with parents who prevent sharing.

        Tests: fast/selectors/cousin-stylesharing-adjacent-selector.html
               fast/selectors/cousin-stylesharing-last-child-selector.html

        * css/StyleResolver.cpp:
        (WebCore::parentElementPreventsSharing):
        (WebCore::StyleResolver::locateCousinList):
        * dom/Element.cpp:
        (WebCore::Element::hasFlagsSetDuringStylingOfChildren):
        * dom/Element.h:
        (Element):

2013-01-29  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Search across all sources is broken.
        https://bugs.webkit.org/show_bug.cgi?id=108157

        Reviewed by Pavel Feldman.

        Test: http/tests/inspector/search/scripts-search-scope.html

        * inspector/front-end/ScriptsSearchScope.js:
        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):

2013-01-29  Mike West  <mkwst@chromium.org>

        IDBFactory::webkitGetDatabaseNames should raise DOMExceptions.
        https://bugs.webkit.org/show_bug.cgi?id=108154

        Reviewed by Jochen Eisinger.

        In order to properly support blocking third-party IndexedDB usage,
        open(), getDatabaseNames(), and deleteDatabase() should all throw
        SECURITY_ERR when used in a blocked third-party context. That's possible
        now for open() and deleteDatabase(), but getDatabaseNames() can't
        currently raise exceptions.

        This patch adjusts the IDL file and implementation. No exceptions are
        currently thrown, but that will change as soon as wkbug.com/94171 lands.

        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::getDatabaseNames):
        * Modules/indexeddb/IDBFactory.h:
        (IDBFactory):
        * Modules/indexeddb/IDBFactory.idl:
            Add "raises (DOMException)" to getDatabaseNames, and adjust the
            implementation to match.
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
            Pass in an ExceptionCode when calling getDatabaseNames, and handle
            possible exceptions.

2013-01-29  Hayato Ito  <hayato@chromium.org>

        Revert an accidentally changed line of EventHander::handleMousePressEvent(PlatformMouseEvent&) in r135650.
        https://bugs.webkit.org/show_bug.cgi?id=108165

        Reviewed by Hajime Morita.

        No new tests.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):

2013-01-29  Kent Tamura  <tkent@chromium.org>

        FeatureObserver: Input types are counted unexpectedly in a page with Modernizr
        https://bugs.webkit.org/show_bug.cgi?id=108141

        Reviewed by Kentaro Hara.

        We don't want to record input type instantiation by Modernizr. Modernizr
        creates input elements with these types, append it to document.body, and
        render it with visibility:hidden. So, we record input types only when
        they are attached without visibility:hidden.

        No new tests. FeatureObserver is not testable by layout test.

        * html/InputType.cpp:
        (WebCore::InputType::create): Remove FeatureObserver::observe
        callsites. They are moved to TextInputType::attach.
        (WebCore::InputType::observeFeatureIfVisible):
        Added. A helper for attach().
        * html/InputType.h:
        (InputType): Add observeFeatureIfVisible.

        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::create):
        Remove a FeatureObserver::observe callsite.
        (WebCore::ColorInputType::attach):
        Calls FetureObserver through InputType::observeFeatureIfVisible.
        * html/ColorInputType.h:
        (ColorInputType): Declare attach.
        * html/DateInputType.cpp: Ditto.
        * html/DateInputType.h: Ditto.
        * html/DateTimeInputType.cpp: Ditto.
        * html/DateTimeInputType.h: Ditto.
        * html/DateTimeLocalInputType.cpp: Ditto.
        * html/DateTimeLocalInputType.h: Ditto.
        * html/MonthInputType.cpp: Ditto.
        * html/MonthInputType.h: Ditto.
        * html/RangeInputType.cpp: Ditt
        * html/RangeInputType.h: Ditto.
        * html/TimeInputType.cpp: Ditto.
        * html/TimeInputType.h: Ditto.
        * html/WeekInputType.cpp: Ditto.
        * html/WeekInputType.h: Ditto.

        * html/TextFieldInputType.h:
        (TextFieldInputType):
        Make attach protected in order that sub classes can call it.
        * html/EmailInputType.cpp:
        (WebCore::EmailInputType::create):
        Remove a FeatureObserver::observe callsite.
        (WebCore::EmailInputType::attach): Calls FetureObserver through
        InputType::observeFeatureIfVisible after TextFieldInptuType::attach.
        * html/EmailInputType.h:
        (EmailInputType):Declare attach.
        * html/NumberInputType.cpp: Ditto.
        * html/NumberInputType.h: Ditto.
        * html/SearchInputType.cpp: Ditto.
        * html/SearchInputType.h: Ditto.
        * html/TelephoneInputType.cpp: Ditto.
        * html/TelephoneInputType.h: Ditto.
        * html/URLInputType.cpp: Ditto.
        * html/URLInputType.h: Ditto.

        * html/TextInputType.cpp:
        (WebCore::TextInputType::attach):
        Move the code for type fallback from InputType::create.
        * html/TextInputType.h:
        (TextInputType): Declare attach.

2013-01-29  Michael Brüning  <michael.bruning@digia.com>

        [Qt][WK1] Reflect recursion limit and loop checks also for list conversions.
        https://bugs.webkit.org/show_bug.cgi?id=107950

        Reviewed by Allan Sandfeld Jensen.

        No new tests, bugfix, no behavioral change.

        Make conversions from Javascript values to QLists take the maximum
        recursion depth into consideration and check for objects that were
        already visited. Otherwise, the conversion may recurse until the
        stack is full and then cause a segmentation fault.

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::convertToList):
        (JSC::Bindings::convertValueToQVariant):

2013-01-29  Elliott Sprehn  <esprehn@chromium.org>

        Clean up interface to ElementShadow
        https://bugs.webkit.org/show_bug.cgi?id=108158

        Reviewed by Hajime Morita.

        Lots of general clean up to ElementShadow removing unused headers,
        adding a create() method that returns a PassOwnPtr, adding missing const,
        and moving short inline methods into the class definition so it's easier
        to understand what methods do what.

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::ensureShadow):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::childNeedsStyleRecalc):
        (WebCore::ElementShadow::needsStyleRecalc):
        * dom/ElementShadow.h:
        (WebCore::ElementShadow::create):
        (ElementShadow):
        (WebCore::ElementShadow::~ElementShadow):
        (WebCore::ElementShadow::youngestShadowRoot):
        (WebCore::ElementShadow::oldestShadowRoot):
        (WebCore::ElementShadow::distributor):
        (WebCore::ElementShadow::ElementShadow):
        (WebCore::ElementShadow::containingShadow):

2013-01-29  Elliott Sprehn  <esprehn@chromium.org>

        Store ShadowRootType inside the bitfield
        https://bugs.webkit.org/show_bug.cgi?id=108147

        Reviewed by Dimitri Glazkov.

        We can simplify the interface to ShadowRoot by storing the enum value of
        ShadowRootType inside the bitfield like we do in the rest of WebCore.

        No new tests, just refactoring.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::create):
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::type):
        (ShadowRoot):

2013-01-29  Jochen Eisinger  <jochen@chromium.org>

        REGRESSION(r141070): Broke debug build
        https://bugs.webkit.org/show_bug.cgi?id=108159

        Unreviewed build fix.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::pumpTokenizer):

2013-01-28  Adam Barth  <abarth@webkit.org>

        HTMLDocumentParser should hold the HTMLToken using an OwnPtr
        https://bugs.webkit.org/show_bug.cgi?id=107762

        Reviewed by Eric Seidel.

        Using an OwnPtr will let us detach the HTMLToken from the
        HTMLDocumentParser and send it to the BackgroundHTMLParser for further
        processing.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        * html/parser/BackgroundHTMLParser.h:
        (BackgroundHTMLParser):
        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        * html/parser/CompactHTMLToken.h:
        (CompactHTMLToken):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):

2013-01-28  Huang Dongsung  <luxtella@company100.net>

        [Texmap] Refactor code related to debug border and repaint count.
        https://bugs.webkit.org/show_bug.cgi?id=105787

        Reviewed by Noam Rosenthal.

        It is a follow-up patch not to change layout test results.

        The previous patch sets GraphicsLayer::m_usingTiledLayer to true when using a
        backing store. When the variable is true, dumpLayer() adds (usingTiledLayer 1),
        but most of ports don't set m_usingTiledLayer to true. So we don't use
        m_usingTiledLayer to match the test results of other ports.

        After this patch, Texture Mapper draws debug visuals for a tiled backing
        with different color from safari.

        No new tests. Debug feature, not covered in tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCountIfNeeded):

2013-01-28  Elliott Sprehn  <esprehn@chromium.org>

        Handle createShadowSubtree inside of ensureUserAgentShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=108116

        Reviewed by Dimitri Glazkov.

        Instead of making everyone create the UserAgentShadowRoot manually all
        over, centralize it in ensureUserAgentShadowRoot() and add a notification
        Element::didAddUserAgentShadowRoot that lets elements fill in the subtree.
        This lets us get rid of lots of code duplication.

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::ensureUserAgentShadowRoot):
        * dom/Element.h:
        (WebCore::Element::didAddUserAgentShadowRoot):
        (Element):
        * html/HTMLDetailsElement.cpp:
        (WebCore::DetailsSummaryElement::create):
        (WebCore::HTMLDetailsElement::create):
        (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
        * html/HTMLDetailsElement.h:
        (HTMLDetailsElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::create):
        (WebCore::HTMLInputElement::didAddUserAgentShadowRoot):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
        (WebCore::HTMLMediaElement::createMediaControls):
        * html/HTMLMediaElement.h:
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::create):
        (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
        * html/HTMLMeterElement.h:
        (HTMLMeterElement):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::create):
        (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
        * html/HTMLProgressElement.h:
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::create):
        (WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot):
        * html/HTMLSummaryElement.h:
        (HTMLSummaryElement):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::create):
        (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot):
        * html/HTMLTextAreaElement.h:
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelMuteButtonElement::create):
        (WebCore::MediaControlVolumeSliderMuteButtonElement::create):
        (WebCore::MediaControlPlayButtonElement::create):
        (WebCore::MediaControlOverlayPlayButtonElement::create):
        (WebCore::MediaControlSeekForwardButtonElement::create):
        (WebCore::MediaControlSeekBackButtonElement::create):
        (WebCore::MediaControlRewindButtonElement::create):
        (WebCore::MediaControlReturnToRealtimeButtonElement::create):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
        (WebCore::MediaControlTimelineElement::create):
        (WebCore::MediaControlPanelVolumeSliderElement::create):
        (WebCore::MediaControlFullscreenVolumeSliderElement::create):
        (WebCore::MediaControlFullscreenButtonElement::create):
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
        * html/shadow/MediaControlsBlackBerry.cpp:
        (WebCore::MediaControlFullscreenPlayButtonElement::create):
        (WebCore::MediaControlFullscreenFullscreenButtonElement::create):
        (WebCore::MediaControlFullscreenTimelineElement::create):
        (WebCore::MediaControlAudioMuteButtonElement::create):
        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::create):
        * svg/SVGTRefElement.h:
        (SVGTRefElement):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::create):
        * svg/SVGUseElement.h:
        (SVGUseElement):

2013-01-28   Vineet Chaudhary  <rgf748@motorola.com>

        HTMLOutputElement::htmlFor should be readonly
        https://bugs.webkit.org/show_bug.cgi?id=101898

        Reviewed by Kentaro Hara.

        The spec says htmlFor should be readonly, but WebKit implements it as no-readonly.
        Spec: http://dev.w3.org/html5/spec-preview/the-output-element.html

        No new tests. Modified existing test fast/dom/HTMLOutputElement/dom-settable-token-list.html
        to work as expected.

        * GNUmakefile.list.am: Removed JSHTMLOutputElementCustom.cpp
        * Target.pri: Ditto
        * UseJSC.cmake: Ditto
        * UseV8.cmake: Removed V8HTMLOutputElementCustom.cpp
        * WebCore.gypi: Removed V8HTMLOutputElementCustom.cpp
        * WebCore.vcproj/WebCore.vcproj: Removed JSHTMLOutputElementCustom.cpp
        * WebCore.vcxproj/WebCore.vcxproj: Ditto
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
        * WebCore.xcodeproj/project.pbxproj: Ditto
        * bindings/js/JSBindingsAllInOne.cpp: Ditto
        * bindings/js/JSHTMLOutputElementCustom.cpp: Removed.
        * bindings/v8/custom/V8HTMLOutputElementCustom.cpp: Removed.
        * html/HTMLOutputElement.idl: Made htmlFor attribute readonly.

2013-01-28  Tien-Ren Chen  <trchen@chromium.org>

        Fix disambiguation popup for new-style page scale
        https://bugs.webkit.org/show_bug.cgi?id=107391

        Reviewed by Adam Barth.

        This patch corrects various coordinate conversion for disambiguation
        popup for the new-style page scale mode.

        New unit test: WebFrameTest.DisambiguationPopupPageScale

        * page/TouchDisambiguation.cpp:
        (WebCore::findGoodTouchTargets):
        * page/TouchDisambiguation.h:
        (WebCore):

2013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r141049.
        http://trac.webkit.org/changeset/141049
        https://bugs.webkit.org/show_bug.cgi?id=108151

        Caused some indexed tests to crash. (Requested by keishi on
        #webkit).

        * Modules/indexeddb/IDBCallbacks.h:
        (WebCore::IDBCallbacks::onUpgradeNeeded):
        (WebCore::IDBCallbacks::onSuccess):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        (WebCore::IDBOpenDBRequest::onSuccess):
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):

2013-01-28  Adam Barth  <abarth@webkit.org>

        Layout Test http/tests/workers/terminate-during-sync-operation.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=79013

        Reviewed by David Levin.

        We need to use an isolated copy because we're going to use it on a
        different thread.

        * Modules/webdatabase/AbstractDatabase.cpp:
        (WebCore::AbstractDatabase::AbstractDatabase):

2013-01-28  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Gesture event is not fired in ShadowDOM
        https://bugs.webkit.org/show_bug.cgi?id=107797

        Reviewed by Dimitri Glazkov.

        Gesture event (e.g. touchstart) is not fired in ShadowDOM.

        We have to run event retargetting algorithm to retarget touchTarget, however it is not implemented yet (Bug 107800).
        Until it's implemented, we use the shadow ancestor node of touchTarget in Document treescope as touchTarget
        for backward compatibility. If a touch event is fired in nested ShadowDOM, touchTarget will be always element in
        document tree, so an event listener in ShadowDOM will get a wrong touchTarget. However we prioritized
        the correctness of document tree.

        Test: fast/dom/shadow/touch-event.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleTouchEvent): Allows us to take elements in ShadowDOM.

2013-01-28  Alexandre Elias  <aelias@chromium.org>

        Make page scale shrink FrameView in applyPageScaleInCompositor mode
        https://bugs.webkit.org/show_bug.cgi?id=107424

        Reviewed by Levi Weintraub.

        If applyPageScaleFactorInCompositor is enabled (Chromium-only setting),
        instead of the entire document expanding as the user pinch zooms, the
        viewport shrinks instead. This patch applies the pageScaleFactor to
        visibleContentRect to get this behavior, and simplifies Chromium's
        resize logic to stop hiding the true viewport size from WebCore.

        I verified that the scaling makes sense for all the callers of
        visibleContentRect. The exceptions are clip-layer size,
        layout size in non-fixed-layout mode, and text autosizing, which need
        the original unscaled size. Therefore I added a new method
        unscaledVisibleContentSize() to ScrollView/FrameView.

        This patch also modifies Page::setPageScaleFactor to perform no
        invalidates or layout when applyPageScaleFactorInCompositor is true,
        and also writes pageScaleFactor into HistoryItems instead of using
        frameScaleFactor.

        Since all behavior changes are tied to applyPageScaleFactorInCompositor,
        this patch should be a no-op for non-Chromium ports.

        New unit tests in WebFrameTest.cpp.

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
        Use pageScaleFactor here because frameScaleFactor always returns 1
        with our setting.
        * page/FrameView.cpp:
        (WebCore::FrameView::visibleContentScaleFactor):
        (WebCore):
        * page/FrameView.h:
        (FrameView):
        * page/Page.cpp:
        (WebCore::Page::setPageScaleFactor): Make setPageScaleFactor stop
        invalidating/layouting as this is handled by our compositor.
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::unscaledVisibleContentSize): This new method
        just returns the original visible rect without pageScaleFactor being
        applied.
        (WebCore):
        (WebCore::ScrollView::visibleContentRect): This now is divided by
        pageScaleFactor if our setting is active.
        (WebCore::ScrollView::layoutSize):
        * platform/ScrollView.h:
        (WebCore::ScrollView::visibleContentScaleFactor): Returns
        pageScaleFactor if the visible rect is scaled, 1 normally.
        (ScrollView):
        (WebCore::ScrollView::layoutWidth):
        (WebCore::ScrollView::layoutHeight):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        (WebCore::RenderLayerCompositor::updateRootLayerPosition): Clip layer
        should use unscaled size, because it's above the root scroll layer
        on the layer tree (i.e. page scale isn't applied on it).
        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::processSubtree): Text autosizer should use
        unscaled size, because it cares about physical screen size.

2013-01-28  Geoffrey Garen  <ggaren@apple.com>

        Static size inference for JavaScript objects
        https://bugs.webkit.org/show_bug.cgi?id=108093

        Reviewed by Phil Pizlo.

        * ForwardingHeaders/runtime/ObjectConstructor.h: Added.

        * bindings/js/JSInjectedScriptHostCustom.cpp:
        * bindings/js/JSSQLResultSetRowListCustom.cpp: Include ObjectConstructor.h because
        that's where createEmptyObject() is located now.

        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneDeserializer::deserialize): Updated for interface change.

2013-01-28  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
        https://bugs.webkit.org/show_bug.cgi?id=103920

        Reviewed by Dimitri Glazkov.

        Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
        pass through a metadata parameter. While there, remove the unused
        IDBTransactionBackendInterface parameter to onUpgradeNeeded.

        As this is another step in the IDB refactor, I've simplified future cleanup
        work by making the WebKit API code still use the old API. This
        will make it possible to outright remove code on the chromium side rather
        than another three-step checkin.

        No new tests, as this is more refactoring.

        * Modules/indexeddb/IDBCallbacks.h:
        (WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
        (WebCore::IDBCallbacks::onSuccess): new method signature.
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
        (WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):

2013-01-28  Simon Fraser  <simon.fraser@apple.com>

        position:fixed that doesn't render any content should not force compositing
        https://bugs.webkit.org/show_bug.cgi?id=108112

        Reviewed by Beth Dakin.
        
        It's not uncommon for pages to have position:fixed elements with no content.
        When these are behind other elements, they can cause those other elements
        to become composited, using lots of backing store memory.
        
        Optimize for the case where the position:fixed element has no rendered
        content and no children by not making it composited in that case.

        Test: compositing/layer-creation/fixed-position-no-content.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasNonEmptyChildRenderers): Moved from RenderLayerBacking.cpp.
        (WebCore::hasBoxDecorations): Ditto.
        (WebCore::RenderLayer::hasBoxDecorationsOrBackground): Ditto.
        (WebCore::RenderLayer::hasVisibleBoxDecorations): Check for visibility:visible, box decorations and
        overflow controls.
        (WebCore::RenderLayer::isVisuallyNonEmpty): Returns true if this layer has some visible
        representation.
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Need to call updateDescendantDependentFlags()
        to ensure that the visibility flags are up to date.
        (WebCore::RenderLayerBacking::updateDrawsContent): Call RenderLayer::hasBoxDecorationsOrBackground() now.
        (WebCore::RenderLayerBacking::paintsBoxDecorations): Call RenderLayer::hasVisibleBoxDecorations() now.
        (WebCore::RenderLayerBacking::paintsChildren): Call RenderLayer::hasNonEmptyChildRenderers().
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Whitespace.
        (WebCore::RenderLayerBacking::containsPaintedContent): Call RenderLayer::hasBoxDecorationsOrBackground().
        (WebCore::RenderLayerBacking::isDirectlyCompositedImage): Ditto.
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition): If the layer has no content to paint,
        or visible descendant layers, then don't make it composited.

2013-01-28  Simon Fraser  <simon.fraser@apple.com>

        Avoid doing work at 60fps for tiled layers when not necessary
        https://bugs.webkit.org/show_bug.cgi?id=108135

        Reviewed by Dean Jackson.

        When there were any tiled layers on the page, we would run a CVDisplayLink
        to cause GraphicsLayerCA to flush, in order to update tiled layer visible rects.
        This is overkill; we should only do this if the tiled layer is affected by
        an accelerated animation.
        
        Fix by tracking whether an ancestor has a running animation when committing
        GraphicsLayerCAs.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::flushCompositingState): Start with an empty CommitState.
        (WebCore::GraphicsLayerCA::recursiveCommitChanges): Push CommitState for
        each layer, which tracks whether an ancestor has a running transform animation.
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): updateLayerAnimations() renamed.
        (WebCore::GraphicsLayerCA::updateAnimations): Renamed from updateLayerAnimations().
        (WebCore::GraphicsLayerCA::isRunningTransformAnimation): Look in the map of running
        animations for one affecting transform. This list is normally small (one item).
        * platform/graphics/ca/GraphicsLayerCA.h:
        (WebCore::GraphicsLayerCA::CommitState::CommitState):

2013-01-28  Simon Fraser  <simon.fraser@apple.com>

        compositing/reflections/become-simple-composited-reflection.html pixel result shows bug
        https://bugs.webkit.org/show_bug.cgi?id=107174

        Reviewed by Dean Jackson.
        
        When we have a content layer for solid color, we need to update reflection
        clones when that color changes.

        Tested by the pixel test for compositing/reflections/become-simple-composited-reflection.html.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateContentsColorLayer):

2013-01-28  Tom Sepez  <tsepez@chromium.org>

        [v8] Security feature: JavaScript Bindings hardening
        https://bugs.webkit.org/show_bug.cgi?id=106608

        The patch adds a check at wrapper creation time to enuse that the
        object being wrapped is not already free, to the extent that we know
        the information about the type of the object as provided in the IDL.

        Reviewed by Adam Barth.

        Patch is correct if existing tests pass without new crashes.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementation):
        (GenerateToV8Converters):
        (GetNativeTypeForConversions):
        (GetGnuVTableRefForInterface):
        (GetGnuVTableNameForInterface):
        (GetGnuMangledNameForInterface):
        (GetGnuVTableOffsetForType):
        (GetWinVTableRefForInterface):
        (GetWinVTableNameForInterface):
        (GetWinMangledNameForInterface):
        (GetNamespaceForInterface):
        (GetImplementationLacksVTableForInterface):
        (GetV8SkipVTableValidationForInterface):
        Update code generation to add object validity tests under the control
        of the ENABLE_BINDING_INTEGRITY option.
        
        * Modules/filesystem/DirectoryReader.idl:
        * Modules/filesystem/DirectoryReaderSync.idl:
        * Modules/filesystem/EntryArray.idl:
        * Modules/filesystem/EntryArraySync.idl:
        * Modules/filesystem/Metadata.idl:
        * Modules/gamepad/Gamepad.idl:
        * Modules/gamepad/GamepadList.idl:
        * Modules/geolocation/Geoposition.idl:
        * Modules/geolocation/PositionError.idl:
        * Modules/indexeddb/IDBFactory.idl:
        * Modules/indexeddb/IDBIndex.idl:
        * Modules/indexeddb/IDBKeyRange.idl:
        * Modules/indexeddb/IDBObjectStore.idl:
        * Modules/mediastream/RTCStatsElement.idl:
        * Modules/mediastream/RTCStatsReport.idl:
        * Modules/quota/StorageInfo.idl:
        * Modules/speech/SpeechGrammar.idl:
        * Modules/speech/SpeechGrammarList.idl:
        * Modules/speech/SpeechRecognitionAlternative.idl:
        * Modules/speech/SpeechRecognitionResult.idl:
        * Modules/speech/SpeechRecognitionResultList.idl:
        * Modules/webaudio/AudioBuffer.idl:
        * Modules/webaudio/AudioDestinationNode.idl:
        * Modules/webaudio/AudioListener.idl:
        * Modules/webaudio/AudioSourceNode.idl:
        * Modules/webaudio/WaveTable.idl:
        * Modules/webdatabase/SQLError.idl:
        * Modules/webdatabase/SQLException.idl:
        * Modules/webdatabase/SQLResultSet.idl:
        * Modules/webdatabase/SQLResultSetRowList.idl:
        * Modules/webdatabase/SQLTransaction.idl:
        * Modules/webdatabase/SQLTransactionSync.idl:
        * bindings/scripts/IDLAttributes.txt:
        * css/CSSPrimitiveValue.idl:
        * css/CSSRule.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSValue.idl:
        * css/CSSValueList.idl:
        * css/Counter.idl:
        * css/MediaList.idl:
        * css/MediaQueryList.idl:
        * css/RGBColor.idl:
        * css/Rect.idl:
        * css/StyleSheetList.idl:
        * css/WebKitCSSFilterValue.idl:
        * css/WebKitCSSMixFunctionValue.idl:
        * css/WebKitCSSTransformValue.idl:
        * dom/ClientRect.idl:
        * dom/ClientRectList.idl:
        * dom/Clipboard.idl:
        * dom/DOMCoreException.idl:
        * dom/DOMError.idl:
        * dom/DOMImplementation.idl:
        * dom/DOMNamedFlowCollection.idl:
        * dom/DOMStringList.idl:
        * dom/DOMStringMap.idl:
        * dom/DataTransferItem.idl:
        * dom/DataTransferItemList.idl:
        * dom/DocumentFragment.idl:
        * dom/Element.idl:
        * dom/Entity.idl:
        * dom/Event.idl:
        * dom/EventException.idl:
        * dom/MessageChannel.idl:
        * dom/MouseEvent.idl:
        * dom/MutationObserver.idl:
        * dom/MutationRecord.idl:
        * dom/NamedNodeMap.idl:
        * dom/NodeFilter.idl:
        * dom/NodeIterator.idl:
        * dom/NodeList.idl:
        * dom/Range.idl:
        * dom/RangeException.idl:
        * dom/Touch.idl:
        * dom/TouchList.idl:
        * dom/TreeWalker.idl:
        * fileapi/FileError.idl:
        * fileapi/FileException.idl:
        * fileapi/FileList.idl:
        * html/DOMFormData.idl:
        * html/DOMTokenList.idl:
        * html/DOMURL.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLCollection.idl:
        * html/HTMLDialogElement.idl:
        * html/HTMLDivElement.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLImageElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLSpanElement.idl:
        * html/HTMLUnknownElement.idl:
        * html/ImageData.idl:
        * html/MediaError.idl:
        * html/MediaKeyError.idl:
        * html/TimeRanges.idl:
        * html/ValidityState.idl:
        * html/canvas/ArrayBuffer.idl:
        * html/canvas/ArrayBufferView.idl:
        * html/canvas/CanvasGradient.idl:
        * html/canvas/CanvasPattern.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * html/canvas/WebGLActiveInfo.idl:
        * html/canvas/WebGLShaderPrecisionFormat.idl:
        * html/track/TextTrack.idl:
        * html/track/TextTrackCue.idl:
        * html/track/TextTrackCueList.idl:
        * inspector/InjectedScriptHost.idl:
        * inspector/InspectorFrontendHost.idl:
        * inspector/JavaScriptCallFrame.idl:
        * page/Coordinates.idl:
        * page/Crypto.idl:
        * page/MemoryInfo.idl:
        * page/PagePopupController.idl:
        * page/PerformanceEntryList.idl:
        * page/SpeechInputResult.idl:
        * page/SpeechInputResultList.idl:
        * page/WebKitPoint.idl:
        * svg/SVGAnimatedAngle.idl:
        * svg/SVGAnimatedBoolean.idl:
        * svg/SVGAnimatedEnumeration.idl:
        * svg/SVGAnimatedInteger.idl:
        * svg/SVGAnimatedLength.idl:
        * svg/SVGAnimatedLengthList.idl:
        * svg/SVGAnimatedNumber.idl:
        * svg/SVGAnimatedNumberList.idl:
        * svg/SVGAnimatedPreserveAspectRatio.idl:
        * svg/SVGAnimatedRect.idl:
        * svg/SVGAnimatedString.idl:
        * svg/SVGAnimatedTransformList.idl:
        * svg/SVGColor.idl:
        * svg/SVGException.idl:
        * svg/SVGPaint.idl:
        * svg/SVGPathSeg.idl:
        * svg/SVGRenderingIntent.idl:
        * svg/SVGUnitTypes.idl:
        * svg/SVGZoomAndPan.idl:
        * testing/MallocStatistics.idl:
        * testing/TypeConversions.idl:
        * workers/WorkerLocation.idl:
        * xml/DOMParser.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XMLSerializer.idl:
        * xml/XPathEvaluator.idl:
        * xml/XPathException.idl:
        * xml/XPathExpression.idl:
        * xml/XPathNSResolver.idl:
        * xml/XPathResult.idl:
        * xml/XSLTProcessor.idl:
        Add exceptions to binding integrity checks to IDL.
        
2013-01-28  Alpha Lam  <hclam@chromium.org>

        [chromium] Build fix.

        Unreviewed build fix. Remove the use of SkMutex from DiscardablePixelRef.

        * platform/graphics/chromium/DiscardablePixelRef.cpp:
        (WebCore::DiscardablePixelRefAllocator::allocPixelRef):
        (WebCore::DiscardablePixelRef::DiscardablePixelRef):
        * platform/graphics/chromium/DiscardablePixelRef.h:
        (DiscardablePixelRef):

2013-01-28  Benjamin Poulain  <benjamin@webkit.org>

        String constructed from Literals should be non-empty
        https://bugs.webkit.org/show_bug.cgi?id=108103

        Reviewed by Eric Carlson.

        Strings from literal should not be constructed from empty strings. Use emptyString()
        instead.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::canPlayType):

2013-01-27  Kentaro Hara  <haraken@chromium.org>

        Implement CompositionEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=107919

        Reviewed by Sam Weinig.

        This patch implements a CompositionEvent constructor under
        a DOM4_EVENTS_CONSTRUCTOR flag.

        Spec: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm

        Test: fast/events/constructors/composition-event-constructor.html

        * dom/CompositionEvent.cpp:
        (WebCore::CompositionEventInit::CompositionEventInit):
        (WebCore):
        (WebCore::CompositionEvent::CompositionEvent):
        * dom/CompositionEvent.h:
        (CompositionEventInit):
        (WebCore):
        (CompositionEvent):
        (WebCore::CompositionEvent::create):
        (WebCore::CompositionEvent::data):
        * dom/CompositionEvent.idl:

2013-01-28  Pratik Solanki  <psolanki@apple.com>

        PLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED
        https://bugs.webkit.org/show_bug.cgi?id=108101

        Reviewed by Benjamin Poulain.

        Since iOS does not define __MAC_OS_X_VERSION_MIN_REQUIRED, any usage of
        __MAC_OS_X_VERSION_MIN_REQUIRED should be after a PLATFORM(IOS) check.

        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2013-01-28  Kalev Lember  <kalevlember@gmail.com>

        [GTK] Pass ICU cppflags to libWebCoreSVG.la build
        https://bugs.webkit.org/show_bug.cgi?id=108032

        Reviewed by Martin Robinson.

        Fixes a linking error with new libicu 50 on Fedora rawhide.

        * GNUmakefile.am:

2013-01-28  Min Qin  <qinmin@chromium.org>

        adding support for DiscardablePixelRef for caching lazily decoded images
        https://bugs.webkit.org/show_bug.cgi?id=106842

        Reviewed by Stephen White.

        This change allows using discardable memory in the deferred image decoding path.
        Fully decoded images are unpinned and stored in ImageDecodingStore.
        Partially decoded images are pinned and stored in ImageDecodingStore.
        Discardable memory allocation could fail. Fall back to heap allocation in that case.
        There is a separate size limit for heap entries and no limit on discardable entries.
        New tests are added to ImageDecodingStoreTests

        * WebCore.gypi:
        * platform/graphics/chromium/DiscardablePixelRef.cpp: Added.
          Added implementation of the DiscardablePixelRef object that is backed by discardable memory.
          Memory allocated to the DiscardablePixelRef can be purged when it is unlocked.
        (WebCore::DiscardablePixelRefAllocator::allocPixelRef):
        (WebCore):
        (WebCore::DiscardablePixelRef::DiscardablePixelRef):
        (WebCore::DiscardablePixelRef::~DiscardablePixelRef):
        (WebCore::DiscardablePixelRef::allocAndLockDiscardableMemory):
        (WebCore::DiscardablePixelRef::onLockPixels):
        (WebCore::DiscardablePixelRef::onUnlockPixels):
        (WebCore::DiscardablePixelRef::isDiscardable):
        * platform/graphics/chromium/DiscardablePixelRef.h: Added.
          Added class definition of the DiscardablePixelRef.
        (WebCore):
        (DiscardablePixelRefAllocator):
        (DiscardablePixelRef):
        * platform/graphics/chromium/ImageDecodingStore.cpp:
          Added new cache replacement strategy for DiscardablePixelRef.
        (WebCore::ImageDecodingStore::lockCache):
        (WebCore::ImageDecodingStore::overwriteAndLockCache):
        (WebCore::ImageDecodingStore::prune):
        (WebCore::ImageDecodingStore::insertCacheInternal):
        (WebCore::ImageDecodingStore::removeFromCacheInternal):
        * platform/graphics/chromium/ImageDecodingStore.h:
          Added isDiscardable() calls to check if a cache entry is discardable.
        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
        (WebCore::ImageDecodingStore::CacheEntry::isDiscardable):
        (CacheEntry):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
          Added some code to pass DiscardableMemoryAllocator to the image decoder.
        (WebCore::ImageFrameGenerator::tryToScale):
        (WebCore::ImageFrameGenerator::decode):
        * platform/graphics/chromium/ImageFrameGenerator.h:
          Added a new member variable of type DiscardableMemoryAllocator.
        (ImageFrameGenerator):
        * platform/image-decoders/ImageDecoder.h:
          Added methods to pass Allocator to ImageFrame.
        (ImageFrame):
        (WebCore::ImageFrame::setMemoryAllocator):
        (WebCore::ImageFrame::allocator):
        (ImageDecoder):
        (WebCore::ImageDecoder::setMemoryAllocator):
        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
          Added code to allocate pixel memory using the allocator passed from the caller.
        (WebCore::ImageFrame::ImageFrame):
        (WebCore::ImageFrame::operator=):
        (WebCore::ImageFrame::setSize):

2013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140869.
        http://trac.webkit.org/changeset/140869
        https://bugs.webkit.org/show_bug.cgi?id=108120

        "Crashes on http://en.wikipedia.org/wiki/Wikipedia" (Requested
        by tonyg-cr on #webkit).

        * page/FrameView.cpp:
        (WebCore::FrameView::visibleContentsResized):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::setFixedLayoutSize):
        (WebCore::ScrollView::setUseFixedLayout):

2013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140934, r140935, and r140937.
        http://trac.webkit.org/changeset/140934
        http://trac.webkit.org/changeset/140935
        http://trac.webkit.org/changeset/140937
        https://bugs.webkit.org/show_bug.cgi?id=108117

        Re-land some speculative rollouts - see wkbug.com/108048 for
        context (Requested by jsbell on #webkit).

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBCallbacks.h:
        (IDBCallbacks):
        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::create):
        (IDBCursorBackendImpl):
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::onVersionChange):
        * Modules/indexeddb/IDBDatabase.h:
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
        (WebCore::OpenCursorOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::openInternal):
        (WebCore::IDBFactory::deleteDatabase):
        * Modules/indexeddb/IDBFactory.h:
        (WebCore):
        (IDBFactory):
        * Modules/indexeddb/IDBFactory.idl:
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::openCursor):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::openCursor):
        (IDBObjectStore):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::create):
        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
        (WebCore::IDBOpenDBRequest::onBlocked):
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        (WebCore::IDBOpenDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        (WebCore::IDBRequest::IDBRequest):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        (WebCore::IDBRequest::taskType):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:
        * Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Removed.
        * Modules/indexeddb/IDBUpgradeNeededEvent.h: Removed.
        * Modules/indexeddb/IDBUpgradeNeededEvent.idl: Removed.
        * Modules/indexeddb/IDBVersionChangeEvent.cpp:
        (WebCore::IDBVersionChangeEvent::create):
        (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
        * Modules/indexeddb/IDBVersionChangeEvent.h:
        (IDBVersionChangeEvent):
        (WebCore::IDBVersionChangeEvent::oldVersion):
        (WebCore::IDBVersionChangeEvent::newVersion):
        * Modules/indexeddb/IDBVersionChangeEvent.idl:
        * Modules/indexeddb/IDBVersionChangeRequest.cpp: Removed.
        * Modules/indexeddb/IDBVersionChangeRequest.h: Removed.
        * Modules/indexeddb/IDBVersionChangeRequest.idl: Removed.
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/EventNames.in:
        * dom/EventTarget.h:
        (WebCore):
        * dom/EventTargetFactory.in:

2013-01-28  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed Mac build fix. Add an export for a function that may be
        accessed outside of WebCore (RenderLayer::needsCompositedScrolling).

        * WebCore.exp.in:

2013-01-28  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash inside RenderBlock::layoutRunsAndFloatsInRange in the widow code
        https://bugs.webkit.org/show_bug.cgi?id=108084

        Reviewed by Dean Jackson.

        This is a blind fix based on the code and Chromium's stack-traces.

        Unfortunately no new test as I couldn't get a local reproduction.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
        Added a missing NULL-check: the previous 'while' finish if |lineBox|
        is NULL and we don't want to crash in this case.

2013-01-28  Tony Chang  <tony@chromium.org>

        "clang: warning: not using the clang compiler for C++ inputs" due to hard-coding of /usr/bin/clang in WebCore.gyp
        https://bugs.webkit.org/show_bug.cgi?id=108089

        Reviewed by Ojan Vafai.

        Use gcc since older versions of clang (with Xcode 3.2) warn that they are going to use gcc anyway.
        These warnings are showing up on the main Chromium waterfall too:
        http://build.chromium.org/p/chromium/builders/Mac/builds/19113/steps/compile/logs/stdio

        No new tests, this is a build change.

        * WebCore.gyp/WebCore.gyp:

2013-01-28  Elliott Sprehn  <esprehn@chromium.org>

        Move hasAuthorShadowRoot to Element
        https://bugs.webkit.org/show_bug.cgi?id=108071

        Reviewed by Dimitri Glazkov.

        Move hasAuthorShadowRoot to Element and get rid of unneccesary booleans
        in HTMLProgressElement and HTMLMeterElement. Also get rid of
        ShadowRoot::isAccessible since it obfuscates what's actually happening
        inside of Element::shadowRoot().

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::shadowRoot):
        (WebCore::Element::hasAuthorShadowRoot):
        * dom/Element.h:
        (Element):
        * dom/ShadowRoot.h:
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::HTMLMeterElement):
        * html/HTMLMeterElement.h:
        (HTMLMeterElement):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::HTMLProgressElement):
        * html/HTMLProgressElement.h:
        (HTMLProgressElement):

2013-01-28  Elliott Sprehn  <esprehn@chromium.org>

        Move ensureUserAgentShadowRoot to Element
        https://bugs.webkit.org/show_bug.cgi?id=108070

        Reviewed by Dimitri Glazkov.

        Move ensureUserAgentShadowRoot to Element where the other
        methods related to shadow roots are and get rid of the
        unnecessarily specific cast to HTMLElement.

        No new tests, just refactoring.

        * dom/Element.cpp:
        (WebCore::Element::ensureUserAgentShadowRoot): Moved from FormAssociatedElement.
        * dom/Element.h:
        (Element):
        * html/FormAssociatedElement.cpp:
        * html/FormAssociatedElement.h:
        (FormAssociatedElement):

2013-01-28  Ian Vollick  <vollick@chromium.org>

        Promote composited-scrolling layers to stacking containers.
        https://bugs.webkit.org/show_bug.cgi?id=106142

        Reviewed by Simon Fraser.

        With this patch, RenderLayers that use composited scrolling are
        treated as stacking contexts. Since isStackingContainer now depends on
        the value of m_needsCompositedScrolling, special care needed to be
        taken to ensure that the value of isStackingContainer is not used when
        updating m_needsCompositedScrolling. In particular, the code for
        rebuilding the layer lists needed to be generalized so that we could
        build the layer lists using the value of isStackingContext rather than
        isStackingContainer when building the layer lists used to determine if
        the descendants are contiguous in stacking order. Also, updating
        m_needsCompositedScrolling can now affect stacking container status
        and can therefore dirty layer lists.

        Test: compositing/overflow/composited-scrolling-creates-a-stacking-container.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
          Modified to use layer lists built based on isStackingContext rather
          than isStackingContainer.
        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
          This function can now affect stacking container status and layer
          lists.
        (WebCore::RenderLayer::rebuildZOrderLists):
          Refactored to generalize layer list building.
        (WebCore::RenderLayer::collectLayers):
          This function can now stop at either stacking containers or
          contexts.
        (WebCore::RenderLayer::updateLayerListsIfNeeded):
          Layer lists may need to be built a 2nd time if we opt into
          composited scrolling.
        * rendering/RenderLayer.h:
        (RenderLayer):
        (WebCore::RenderLayer::isStackingContainer):
          Returns true if we use composited scrolling.

2013-01-28  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Parse @-webkit-filter
        https://bugs.webkit.org/show_bug.cgi?id=106837

        Reviewed by Dean Jackson.

        The new CSS Custom Filters syntax includes an @filter rule:
        @filter IDENT { <custom-filter-description> }

        IDENT is the filter name. For example:
        @filter my-filter { ... }

        <custom-filter-description> is a set of CSS properties, which are still under discussion in
        the CSSWG.

        This patch adds parsing and JS bindings for the prefixed at-rule. It does not add parsing
        for any of the at-rule's internal properties.

        Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#the-atfilter-rule

        Tests: css3/filters/custom/custom-filter-parsing-at-rule-invalid.html
               css3/filters/custom/custom-filter-parsing-at-rule-valid.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/objc/DOMCSS.mm:
        (kitClass):
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::wrap):
        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createFilterRule):
        (WebCore::CSSParser::detectAtToken):
        * css/CSSParser.h:
        * css/CSSPropertySourceData.h:
        * css/CSSRule.h:
        * css/CSSRule.idl:
            Only contains a CSSStyleDeclaration "style" property, like the other at-rules that are
            supposed to contain properties (e.g. CSSStyleRule, CSSFontFaceRule, CSSPageRule).
            Eventually, when it's specified, we should expose the filter name as well.
            Other at-rules IDL Spec: http://www.w3.org/TR/DOM-Level-2-Style/idl-definitions.html
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        (WebCore::StyleRuleFilter::StyleRuleFilter):
        (WebCore::StyleRuleFilter::~StyleRuleFilter):
        (WebCore::StyleRuleFilter::mutableProperties):
        (WebCore::StyleRuleFilter::setProperties):
        (WebCore::StyleRuleFilter::reportDescendantMemoryUsage):
        * css/StyleRule.h:
        (StyleRuleBase):
        (WebCore::StyleRuleBase::isFilterRule):
        (StyleRuleFilter):
        (WebCore::StyleRuleFilter::create):
        (WebCore::StyleRuleFilter::filterName):
        (WebCore::StyleRuleFilter::properties):
        (WebCore::StyleRuleFilter::copy):
        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):
        * css/WebKitCSSFilterRule.cpp: Added.
            WebKitCSSFilterRule is implemented similar to CSSFontFaceRule.
        (WebCore::WebKitCSSFilterRule::WebKitCSSFilterRule):
        (WebCore::WebKitCSSFilterRule::~WebKitCSSFilterRule):
        (WebCore::WebKitCSSFilterRule::style):
        (WebCore::WebKitCSSFilterRule::cssText):
            The CSS text implementation for WebKitCSSFilterRule is almost the same as
            CSSFontFaceRule. WebKitCSSFilterRule additionally needs to output the filter name in its
            syntax (e.g. @-webkit-filter my-filter { }).
        (WebCore::WebKitCSSFilterRule::reattach):
        (WebCore::WebKitCSSFilterRule::reportMemoryUsage):
        * css/WebKitCSSFilterRule.h: Added.
        (WebKitCSSFilterRule):
        (WebCore::WebKitCSSFilterRule::create):
        * css/WebKitCSSFilterRule.idl: Added.

2013-01-28  Anders Carlsson  <andersca@apple.com>

        Add StorageStrategy member functions to WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=108105

        Reviewed by Tim Horton.

        StorageStrategy::sessionStorageNamespace should be virtual, not static...

        * WebCore.exp.in:
        * storage/StorageStrategy.h:
        (StorageStrategy):

2013-01-28  Uday Kiran  <udaykiran@motorola.com>

        getComputedStyle returns "left" instead of "none" for "float" on abspos elements
        https://bugs.webkit.org/show_bug.cgi?id=105836

        Reviewed by Tony Chang.

        If 'position' has the value absolute, page or fixed, and the value of float is
        left or right, the box is absolutely positioned and the computed value of float is none.
        http://www.w3.org/TR/css3-positioning/#dis-pos-flo
        This matches behavior of Firefox 18, Opera 12 and IE9.

        Test: fast/css/position-absolute-float.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2013-01-28  Tony Gentilcore  <tonyg@chromium.org>

        Don't use threaded HTML parser for data: URLs
        https://bugs.webkit.org/show_bug.cgi?id=108096

        Reviewed by Eric Seidel.

        data: URLs are currently loaded synchronously. Using the main thread parser for them preserves this behavior.
        This fixes fast/dom/HTMLDocument/document-open-return-value.html and probably others.

        No new tests because covered by existing tests.

        * html/parser/HTMLParserOptions.cpp:
        (WebCore::HTMLParserOptions::HTMLParserOptions):

2013-01-28  Tony Gentilcore  <tonyg@chromium.org>

        Don't use the threaded HTML parser for javascript: URLs
        https://bugs.webkit.org/show_bug.cgi?id=107975

        Reviewed by Adam Barth.

        Several layout tests depend on javascript: URL iframes loading synchronously including fast/loader/javascript-url-encoding.html.
        This patch avoids using the threaded parser for those URLs so they will continue to be synchronous.

        No new tests because covered by existing tests.

        * html/parser/HTMLParserOptions.cpp:
        (WebCore::HTMLParserOptions::HTMLParserOptions):

2013-01-27  Sam Weinig  <sam@webkit.org>

        SVGPathStringSource should not up-convert 8-bit strings to UTF-16
        https://bugs.webkit.org/show_bug.cgi?id=108050

        Reviewed by Anders Carlsson.

        Should save around ~400k on Membuster3.

        * svg/SVGParserUtilities.cpp:
        (WebCore::parseNumber):
        (WebCore::genericParseArcFlag):
        (WebCore::parseArcFlag):
        * svg/SVGParserUtilities.h:
        Add LChar variants of parseNumber and parseArcFlag.

        * svg/SVGPathSource.h:
        (WebCore):
        Move forward declaration of FloatPoint here, where it belongs.

        * svg/SVGPathStringSource.cpp:
        (WebCore::parseFloatPoint):
        (WebCore::parseFloatPoint2):
        (WebCore::parseFloatPoint3):
        Add helpers for parsing float points.

        (WebCore::SVGPathStringSource::SVGPathStringSource):
        (WebCore::SVGPathStringSource::hasMoreData):
        (WebCore::SVGPathStringSource::moveToNextToken):
        (WebCore::parseSVGSegmentTypeHelper):
        (WebCore::SVGPathStringSource::parseSVGSegmentType):
        (WebCore::nextCommandHelper):
        (WebCore::SVGPathStringSource::nextCommand):
        (WebCore::SVGPathStringSource::parseMoveToSegment):
        (WebCore::SVGPathStringSource::parseLineToSegment):
        (WebCore::SVGPathStringSource::parseLineToHorizontalSegment):
        (WebCore::SVGPathStringSource::parseLineToVerticalSegment):
        (WebCore::SVGPathStringSource::parseCurveToCubicSegment):
        (WebCore::SVGPathStringSource::parseCurveToCubicSmoothSegment):
        (WebCore::SVGPathStringSource::parseCurveToQuadraticSegment):
        (WebCore::SVGPathStringSource::parseCurveToQuadraticSmoothSegment):
        (WebCore::parseArcToSegmentHelper):
        (WebCore::SVGPathStringSource::parseArcToSegment):
        * svg/SVGPathStringSource.h:
        (SVGPathStringSource):
        Make 8-bit aware.

2013-01-28  Simon Fraser  <simon.fraser@apple.com>

        Repaint issues in background tabs after r138858
        https://bugs.webkit.org/show_bug.cgi?id=108092
        <rdar://problem/13076430>

        Reviewed by Tim Horton.

        In r138858, we unparented all tiles in the tile caches of background tabs.
        That broke repaints in background tabs; when bringing that tab back to the
        foreground, we would call -setNeedsDisplayInRect:, and then reparent the tiles
        on a zero-delay timer. Those repaints would then be flipped (possibly because
        CA can't look up the layer tree to check for flipped geometry).
        
        Fix by revalidating tiles (which reparents the tiles) at the time we're told
        we're moving into the window, which happens before repaints are flushed.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setIsInWindow):

2013-01-28  Adam Barth  <abarth@webkit.org>

        Remove webkitNotifications.createHTMLNotification
        https://bugs.webkit.org/show_bug.cgi?id=107598

        Reviewed by Benjamin Poulain.

        As discussed in http://lists.webkit.org/pipermail/webkit-dev/2012-February/019354.html,
        we've been slowly deprecating HTML notificiations for about a year.
        FeatureObserver says that HTML notifications are used by 0.0008% of web
        pages, which means we should be able to remove them without causing too
        much trouble.

        * Configurations/FeatureDefines.xcconfig:
        * Modules/notifications/Notification.cpp:
        (WebCore):
        (WebCore::Notification::Notification):
        * Modules/notifications/Notification.h:
        (Notification):
        * Modules/notifications/NotificationCenter.h:
        (NotificationCenter):
        * Modules/notifications/NotificationCenter.idl:

2013-01-28  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] Refactor ExclusionShapeInsideInfo to more general ExclusionShapeInfo
        https://bugs.webkit.org/show_bug.cgi?id=100766

        Reviewed by Dirk Schulze.

        Refactoring, covered by existing tests.

        Factoring out code common to ExclusionShapeInsideInfo and ExclusionShapeOutsideInfo
        into common classes in ExclusionShapeInfo.h. Since the ExclusionShapeInsideInfo and
        ExclusionShapeOutsideInfo share almost all of their code, save the RenderObject type
        they work with and the specific shapeInside/Outside methods they call on RenderStyle
        and ExclusionShape, the code has been templated. The code responsible for maintaining
        global maps has also been factored out into a MappedInfo class.

        * CMakeLists.txt: Adding ExclusionShapeInfo files.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * rendering/ExclusionShapeInfo.cpp: Added.
        (WebCore::::computedShape): Determine the shape based on the current logical
        dimensions. Call this method rather than accessing m_shape directly.
        * rendering/ExclusionShapeInfo.h: Added.
        (MappedInfo): Helper class that maintains a global info map.
        (WebCore::MappedInfo::ensureInfo): Look up the info for a key and add it if not present.
        (WebCore::MappedInfo::removeInfo): Remove the info associated with a key.
        (WebCore::MappedInfo::info): Look up the info associated with a key.
        (WebCore::MappedInfo::infoMap): The map used to store key/info pairs.
        (ExclusionShapeInfo): A common parent class for ExclusionShapeInside/OutsideInfos.
        The methods were factored out of the code common to ExclusionShapeInside/OutsideInfo.
        (WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Destructor.
        (WebCore::ExclusionShapeInfo::setShapeSize): Sets the shape's logical size.
        (WebCore::ExclusionShapeInfo::shapeLogicalTop/Bottom/Left/Right/Width/Height):
        Returns the shape's logical dimensions.
        (WebCore::ExclusionShapeInfo::dirtyShapeSize): Mark the shape for recomputation.
        (WebCore::ExclusionShapeInfo::owner): The renderer to which this info belongs.
        (WebCore::ExclusionShapeInfo::ExclusionShapeInfo): Constructor.
        (WebCore::ExclusionShapeInfo::floatLogicalTopToLayoutUnit/floatLogicalBottomToLayoutUnit):
        Helper methods that round float units from ExclusionShapes to LayoutUnits for layout.
        * rendering/ExclusionShapeInsideInfo.cpp:
        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Modified to use
        computedShape() rather than m_shape.
        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Ditto.
        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::createInfo): Renamed to match MappedInfo.
        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Renamed to match shorter naming.
        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Modified to use
        computedShape().
        * rendering/ExclusionShapeOutsideInfo.cpp:
        (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Renamed to match shorter naming.
        * rendering/ExclusionShapeOutsideInfo.h:
        (WebCore::ExclusionShapeOutsideInfo::createInfo): Renamed to match MappedInfo.
        (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo): Constructor.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::willBeDestroyed): Use shortened MappedInfo names for looking
        up infos.
        (WebCore::RenderBlock::exclusionShapeInsideInfo): Ditto.
        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Ditto.
        (WebCore::RenderBlock::computeExclusionShapeSize): Ditto.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::willBeDestroyed): Ditto.
        (WebCore::RenderBox::updateExclusionShapeOutsideInfoAfterStyleChange): Ditto.
        * rendering/RenderBox.h:
        (WebCore):
        (WebCore::RenderBox::exclusionShapeOutsideInfo): Ditto.

2013-01-28  Stephen Chenney  <schenney@chromium.org>

        SVGViewSpec fails when corresponding element has been removed
        https://bugs.webkit.org/show_bug.cgi?id=106957

        Reviewed by Dirk Schulze.

        When JS holds an SVGViewSpec object while deleting the object that
        defines the spec (an SVGSVGElement, or one of a few others) the
        pointer to the target is cleared in the SVGViewSpec but the methods
        that serve JS queries do not check and try to access the now null
        target. This patch fixes the prooblem, returning null when the
        corresponding object has been deleted.

        Also removing SVGViewSpec::setPreserveAspectRatioString, which is no
        longer used by any callers.

        Test: svg/dom/SVGViewSpec-invalid-ref-crash.html

        * svg/SVGViewSpec.cpp:
        (WebCore):
        (WebCore::SVGViewSpec::viewTarget): Check for null target and return null.
        (WebCore::SVGViewSpec::transform): Check for null target and return null..
        (WebCore::SVGViewSpec::viewBoxAnimated): Check for null target and return null.
        (WebCore::SVGViewSpec::preserveAspectRatioAnimated): Check for null target and return null.
        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): ASSERT non-null target.
        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): ASSERT non-null target.
        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): ASSERT non-null target.
        * svg/SVGViewSpec.h:
        (SVGViewSpec): Move some methods out of the header and into the implementation file.

        * svg/SVGViewSpec.cpp:
        (WebCore):
        (WebCore::SVGViewSpec::transform):
        (WebCore::SVGViewSpec::viewBoxAnimated):
        (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
        * svg/SVGViewSpec.h:
        (SVGViewSpec):

2013-01-28  James Craig  <james@cookiecrook.com>

        HTML5 promotes DL from specific 'definition list' to superset 'description list'; accessibility strings and accessors should be updated to match.
        https://bugs.webkit.org/show_bug.cgi?id=107650

        Reviewed by Chris Fleizach.

        Updating accessibility strings and accessors for DL/DT/DD; new one for [role="definition"] (previously it reused the role/desc for DD).

        Test: platform/mac/accessibility/definition-list-term.html:
        Test: accessibility/lists.html

        * English.lproj/Localizable.strings:
        * accessibility/AccessibilityList.cpp:
        (WebCore::AccessibilityList::isDescriptionList):
        * accessibility/AccessibilityList.h:
        (AccessibilityList):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::createARIARoleMap):
        * accessibility/AccessibilityObject.h:
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (createAccessibilityRoleMap):
        (-[WebAccessibilityObjectWrapper subrole]):
        (-[WebAccessibilityObjectWrapper roleDescription]):
        * platform/LocalizedStrings.cpp:
        (WebCore::AXDefinitionText):
        (WebCore::AXDescriptionListTermText):
        (WebCore):
        (WebCore::AXDescriptionListDetailText):
        * platform/LocalizedStrings.h:
        (WebCore):
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        (WebCore::AXDefinitionText):
        (WebCore::AXDescriptionListDetailText):
        (WebCore):
        (WebCore::AXDescriptionListTermText):
        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::AXDefinitionText):
        (WebCore):
        (WebCore::AXDescriptionListTermText):
        (WebCore::AXDescriptionListDetailText):
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::AXDefinitionText):
        (WebCore):
        (WebCore::AXDescriptionListTermText):
        (WebCore::AXDescriptionListDetailText):
        * platform/qt/LocalizedStringsQt.cpp:
        (WebCore::AXDefinitionText):
        (WebCore::AXDescriptionListTermText):
        (WebCore):
        (WebCore::AXDescriptionListDetailText):

2013-01-28  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Inherit SidebarPane from View.
        https://bugs.webkit.org/show_bug.cgi?id=108075

        Reviewed by Pavel Feldman.

        Inherited WebInspector.SidebarPane from WebInspector.View to streamlines the code and
        simplify further enhancements to sidebar panes. Got rid of obsolete onattach calls.

        No new tests.

        * inspector/front-end/AuditResultView.js:
        (WebInspector.AuditResultView):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype.wasShown):
        (WebInspector.ElementsPanel.prototype.willHide):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype.wasShown):
        * inspector/front-end/SidebarPane.js:
        (WebInspector.SidebarPane):
        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionsSidebarPane.prototype._refreshExpressionsIfNeeded):

2013-01-28  Martin Robinson  <mrobinson@igalia.com>

        [Freetype] Synthetic bold not applied to fallback fonts properly
        https://bugs.webkit.org/show_bug.cgi?id=107733

        Reviewed by Gustavo Noronha Silva.

        No new tests. This is covered by existing pixel tests.

        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        (WebCore::FontPlatformData::FontPlatformData): When we detect a situation in which
        we are a bold font, but the Fontconfig pattern does not describe the font as
        bold, we should activate synthetic bolding.

2013-01-28  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Search all sources should not search across service projects.
        https://bugs.webkit.org/show_bug.cgi?id=108068

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsSearchScope.js:
        (WebInspector.ScriptsSearchScope):
        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):

2013-01-28  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: SourceURL and SourceMappingURL together in evalled code
        https://bugs.webkit.org/show_bug.cgi?id=107939

        Reviewed by Vsevolod Vlasov.

        Resolve map's sources URLs wrt script URL in case sourceMap is defined as data:.

        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
        * inspector/front-end/ParsedURL.js:
        (WebInspector.ParsedURL.completeURL):
        * inspector/front-end/SourceMap.js:
        (WebInspector.SourceMap.prototype._parseMap):

2013-01-28  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] refactoring in CanvasAgent to reduce code dups
        https://bugs.webkit.org/show_bug.cgi?id=108064

        Reviewed by Pavel Feldman.

        Introduce private methods injectedScriptCanvasModule() in InspectorCanvasAgent to reduce much of code duplication.
        Drive-by: in InspectorPageAgent.assertFrame convert "String" argument to "const String&".

        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::dropTraceLog):
        (WebCore::InspectorCanvasAgent::captureFrame):
        (WebCore::InspectorCanvasAgent::startCapturing):
        (WebCore::InspectorCanvasAgent::stopCapturing):
        (WebCore::InspectorCanvasAgent::getTraceLog):
        (WebCore::InspectorCanvasAgent::replayTraceLog):
        (WebCore::InspectorCanvasAgent::getResourceInfo):
        (WebCore::InspectorCanvasAgent::getResourceState):
        (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
        (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
        (WebCore::InspectorCanvasAgent::injectedScriptCanvasModule):
        (WebCore):
        (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
        * inspector/InspectorCanvasAgent.h:
        (InspectorCanvasAgent):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::assertFrame):
        (WebCore::InspectorPageAgent::assertDocumentLoader):
        * inspector/InspectorPageAgent.h:
        (InspectorPageAgent):

2013-01-28  Kihong Kwon  <kihong.kwon@samsung.com>

        Replace the type of Proximity's supplementName for char*
        https://bugs.webkit.org/show_bug.cgi?id=108049

        Reviewed by Benjamin Poulain.

        There are some changes for supplementName by Bug 107535.
        It makes build break when PROXIMITY_EVENT feature is enabled.
        Therefore ProximityController need to change the type of supplementName for char* also.

        No new tests. Functionality is not changed.

        * Modules/proximity/DeviceProximityController.cpp:
        (WebCore::DeviceProximityController::supplementName):
        * Modules/proximity/DeviceProximityController.h:
        (DeviceProximityController):

2013-01-28  Keishi Hattori  <keishi@webkit.org>

        [REGRESSION] Calendar Picker focus ring is gone
        https://bugs.webkit.org/show_bug.cgi?id=108055

        Reviewed by Kent Tamura.

        The focus ring wasn't visible because -webkit-focus-ring-color value
        only works for outline property in strict mode. Using fixed color
        instead.

        No new tests. Can't reproduce in layout test because mock popup writes a
        script tag in front of the doctype.

        * Resources/pagepopups/chromium/calendarPickerChromium.css:
        (.days-area-container:focus):
        * Resources/pagepopups/chromium/pickerCommonChromium.css:
        (:enabled:focus:-webkit-any(button, input[type='button'])):

2013-01-25  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: remove unused isElement and similar methods from HeapProfiler
        https://bugs.webkit.org/show_bug.cgi?id=107940

        Reviewed by Vsevolod Vlasov.

        - Removed some unused methods.
        - Moved JS specific edge filters to JSHeapSnapshot.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
        (WebInspector.HeapSnapshot.prototype.createEdgesProviderForTest):
        (WebInspector.HeapSnapshot.prototype.retainingEdgesFilter):
        (WebInspector.HeapSnapshot.prototype.containmentEdgesFilter):
        (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
        (WebInspector.HeapSnapshot.prototype.classNodesFilter):
        (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
        * inspector/front-end/HeapSnapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode):
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
        (WebInspector.HeapSnapshotProxy.prototype.createRetainingEdgesProvider):
        * inspector/front-end/JSHeapSnapshot.js:
        (WebInspector.JSHeapSnapshot.prototype.classNodesFilter):
        (WebInspector.JSHeapSnapshot.prototype._markDetachedDOMTreeNodes):
        * inspector/front-end/NativeHeapSnapshot.js:

2013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140554.
        http://trac.webkit.org/changeset/140554
        https://bugs.webkit.org/show_bug.cgi?id=108057

        Caused tables/table-section-overflow-clip-crash.html and
        bug2479-5.html to crash. (Requested by keishi on #webkit).

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::minPreferredLogicalWidth):
        (WebCore::RenderBox::maxPreferredLogicalWidth):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):

2013-01-24  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: each node in a detached DOM tree is shown in its own "detached DOM tree" entry in heap profiler
        https://bugs.webkit.org/show_bug.cgi?id=107819

        Reviewed by Adam Barth.

        Provide single RetainedDOMInfo for each group of DOM Node wrappers reported to GC.
        Otherwise we have unequal RetainedDOMInfo groups for each wrapped node.

        * bindings/v8/V8GCController.cpp:
        (WebCore::ImplicitConnection::ImplicitConnection):
        (WebCore::ImplicitConnection::retainedObjectInfo):
        (ImplicitConnection):
        (WebCore::WrapperGrouper::addObjectToGroup):
        (WrapperGrouper):
        (WebCore::WrapperGrouper::addNodeToGroup):
        (WebCore::WrapperGrouper::apply):
        (WebCore::V8GCController::opaqueRootForGC):
        * bindings/v8/V8GCController.h:
        (V8GCController):

2013-01-27  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] RenderFlowThread should keep a count of auto height regions
        https://bugs.webkit.org/show_bug.cgi?id=105185

        Reviewed by Julien Chaffraix.

        Keep the count of auto height regions on the flow thread instead of flow thread controller.
        This way, we can streamline the operations associated with the two-pass layout only to those
        flow threads that have auto height regions associated.
        The flow thread controller will keep a count of flow thread with auto height regions instead.
        This is a performance refactoring without an expected change in behavior, therefore no new tests were added.

        * rendering/FlowThreadController.cpp: Keep a count of flow threads with auto logical height regions.
        (WebCore::FlowThreadController::FlowThreadController):
        (WebCore::FlowThreadController::layoutRenderNamedFlowThreads): Check the count of auto height regions for all the flow threads.
        (WebCore::FlowThreadController::isAutoLogicalHeightRegionsCountConsistent):
        Make sure that we call these methods only when we have auto logical height regions.
        (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
        (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
        * rendering/FlowThreadController.h:
        (WebCore::FlowThreadController::hasFlowThreadsWithAutoLogicalHeightRegions):
        (WebCore::FlowThreadController::incrementFlowThreadsWithAutoLogicalHeightRegions):
        (WebCore::FlowThreadController::decrementFlowThreadsWithAutoLogicalHeightRegions):
        * rendering/RenderFlowThread.cpp: Keep a count of auto logical height regions.
        (WebCore::RenderFlowThread::RenderFlowThread):
        (WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight): Iterate the region chain only if the region chain has auto height regions.
        (WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight): Ditto.
        (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout): Ditto.
        (WebCore::RenderFlowThread::incrementAutoLogicalHeightRegions):
        (WebCore::RenderFlowThread::decrementAutoLogicalHeightRegions):
        * rendering/RenderFlowThread.h:
        * rendering/RenderRegion.cpp: Add increment/decrementAutoLogicalHeightCount to increase/decrease
        the counter inside the flow thread and use them throughout the code as needed.
        (WebCore::RenderRegion::incrementAutoLogicalHeightCount):
        (WebCore::RenderRegion::decrementAutoLogicalHeightCount):
        (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
        (WebCore::RenderRegion::attachRegion):
        (WebCore::RenderRegion::detachRegion):
        * rendering/RenderRegion.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::checkTwoPassLayoutForAutoHeightRegions): Use the count of flow threads with auto height regions
        instead of the count of auto height regions when deciding whether we should attempt the 2 pass layout for auto height regions.

2013-01-27  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow DOM] Selecting a node to another node in ShadowDOM fires 'click' event unexpectedly
        https://bugs.webkit.org/show_bug.cgi?id=107233

        Reviewed by Dimitri Glazkov.

        When selecting from a node to another node in ShadowDOM, 'click' event is unexpectedly fired.

        The root cause of the bug is using shadow ancestor nodes for checking the node mouse is pressed on
        and the node mouse is released on is the same. This was introduced to fire a click event for a slider
        in <input> or etc.

        However, we don't need to check shadow ancestor if we're in Author ShadowDOM.

        Test: fast/dom/shadow/selecting-anchor.html

        * page/EventHandler.cpp:
        (WebCore::mouseIsReleasedOnPressedElement):
        (WebCore):
        (WebCore::EventHandler::handleMouseReleaseEvent):

2013-01-27  Kentaro Hara  <haraken@chromium.org>

        An [ActiveDOMObject] IDL attribute should be inherited
        https://bugs.webkit.org/show_bug.cgi?id=107877

        Reviewed by Adam Barth.

        Now we support IDL attribute inheritance. We can remove
        [ActiveDOMObject] from subclasses.

        No tests. No change in behavior.

        * Modules/indexeddb/IDBOpenDBRequest.idl:
        * Modules/webaudio/OfflineAudioContext.idl:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        * workers/SharedWorker.idl:
        * workers/Worker.idl:

2013-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140602.
        http://trac.webkit.org/changeset/140602
        https://bugs.webkit.org/show_bug.cgi?id=108045

        Caused 8 indexed tests to crash. (Requested by keishi on
        #webkit).

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBCallbacks.h:
        (WebCore::IDBCallbacks::onBlocked):
        * Modules/indexeddb/IDBDatabase.cpp:
        * Modules/indexeddb/IDBDatabase.h:
        (WebCore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::openInternal):
        (WebCore::IDBFactory::deleteDatabase):
        * Modules/indexeddb/IDBFactory.h:
        (WebCore):
        (IDBFactory):
        * Modules/indexeddb/IDBFactory.idl:
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::create):
        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
        (WebCore::IDBOpenDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):
        * Modules/indexeddb/IDBVersionChangeRequest.cpp: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
        (WebCore):
        (WebCore::IDBVersionChangeRequest::create):
        (WebCore::IDBVersionChangeRequest::IDBVersionChangeRequest):
        (WebCore::IDBVersionChangeRequest::~IDBVersionChangeRequest):
        (WebCore::IDBVersionChangeRequest::interfaceName):
        (WebCore::IDBVersionChangeRequest::onBlocked):
        * Modules/indexeddb/IDBVersionChangeRequest.h: Copied from Source/WebCore/Modules/indexeddb/IDBFactory.idl.
        (WebCore):
        (IDBVersionChangeRequest):
        * Modules/indexeddb/IDBVersionChangeRequest.idl: Copied from Source/WebCore/Modules/indexeddb/IDBFactory.idl.
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/EventTarget.h:
        (WebCore):
        * dom/EventTargetFactory.in:

2013-01-27  Shinya Kawanaka  <shinyak@chromium.org>

        Disabled input/textarea doesn't trigger selection change
        https://bugs.webkit.org/show_bug.cgi?id=85244

        Reviewed by Ryosuke Niwa.

        Only rootEditableNode is there in <input> or <textarea>, 'select' event is fired.
        Since readonly or disabled input/textarea element does not have editable element,
        'select' event was not fired.

        We don't need the check.

        Test: fast/forms/input-readonly-select.html

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::notifyRendererOfSelectionChange):

2013-01-27  Keishi Hattori  <keishi@webkit.org>

        Unreviewed, rolling out r140850.
        http://trac.webkit.org/changeset/140850
        https://bugs.webkit.org/show_bug.cgi?id=107960

        r14602 caused 8 indexed tests to crash.

        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::create):
        (IDBCursorBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
        (WebCore::OpenCursorOperation::perform):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::openCursor):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::openCursor):
        (IDBObjectStore):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        (WebCore::IDBRequest::IDBRequest):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        (WebCore::IDBRequest::taskType):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:
        (IDBTransactionBackendInterface):

2013-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140741.
        http://trac.webkit.org/changeset/140741
        https://bugs.webkit.org/show_bug.cgi?id=108044

        Caused 8 indexed tests to fail on Mac and Win. (Requested by
        keishi on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::onVersionChange):
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::deleteDatabase):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onBlocked):
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        * Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp.
        (WebCore):
        (WebCore::IDBUpgradeNeededEvent::create):
        (WebCore::IDBUpgradeNeededEvent::IDBUpgradeNeededEvent):
        (WebCore::IDBUpgradeNeededEvent::~IDBUpgradeNeededEvent):
        (WebCore::IDBUpgradeNeededEvent::oldVersion):
        (WebCore::IDBUpgradeNeededEvent::newVersion):
        (WebCore::IDBUpgradeNeededEvent::interfaceName):
        * Modules/indexeddb/IDBUpgradeNeededEvent.h: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h.
        (WebCore):
        (IDBUpgradeNeededEvent):
        * Modules/indexeddb/IDBUpgradeNeededEvent.idl: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.idl.
        * Modules/indexeddb/IDBVersionChangeEvent.cpp:
        (WebCore::IDBVersionChangeEvent::create):
        (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
        (WebCore::IDBVersionChangeEvent::version):
        (WebCore):
        * Modules/indexeddb/IDBVersionChangeEvent.h:
        (WebCore):
        (IDBVersionChangeEvent):
        * Modules/indexeddb/IDBVersionChangeEvent.idl:
        * WebCore.gypi:
        * dom/EventNames.in:

2013-01-27  Matt Falkenhagen  <falken@chromium.org>

        Elements must be reattached when inserted/removed from top layer
        https://bugs.webkit.org/show_bug.cgi?id=105489

        Relanding r139402 as the apparent perf regression has been explained as not real (bug 106726).

        Reviewed by Julien Chaffraix.

        Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
        as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.

        We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
        only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
        followed immediately by show() results in no style change.

        Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
               fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html

        * dom/Element.cpp:
        (WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
        removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
        (WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.

2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
        https://bugs.webkit.org/show_bug.cgi?id=106740

        Reviewed by Benjamin Poulain.

        * WebCorePrefix.h:
        * config.h:

2013-01-27  Jochen Eisinger  <jochen@chromium.org>

        Check notification permissions in the show() method
        https://bugs.webkit.org/show_bug.cgi?id=108009

        Reviewed by Adam Barth.

        Tests: fast/notifications/notifications-constructor-with-permission.html
               fast/notifications/notifications-constructor-without-permission.html

        * Modules/notifications/Notification.cpp:
        (WebCore::Notification::show):
        (WebCore::Notification::taskTimerFired):

2013-01-26  Tony Chang  <tony@chromium.org>

        [chromium] Don't use goma to preprocess bindings idl files
        https://bugs.webkit.org/show_bug.cgi?id=107984

        Reviewed by Adam Barth.

        On Linux and Mac, use a local gcc or clang to preprocess the bindings idl files.
        On my machine, this drops the bindings generation from 137s to 24s when
        using goma and -j400.

        No new tests, this is a build change.

        * WebCore.gyp/WebCore.gyp: Force the use of the local gcc or clang for preprocessing.

2013-01-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140880.
        http://trac.webkit.org/changeset/140880
        https://bugs.webkit.org/show_bug.cgi?id=108023

        Caused mathml/presentation and tests to crash and fail
        (Requested by keishi on #webkit).

        * mathml/MathMLTextElement.cpp:
        * mathml/MathMLTextElement.h:
        (MathMLTextElement):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        (WebCore::RenderMathMLBlock::computePreferredLogicalWidths):
        (WebCore):
        (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
        (WebCore::RenderMathMLBlock::preferredLogicalHeightAfterSizing):
        * rendering/mathml/RenderMathMLBlock.h:
        (RenderMathMLBlock):
        (WebCore::RenderMathMLBlock::isPreferredLogicalHeightDirty):
        (WebCore::RenderMathMLBlock::preferredLogicalHeight):
        (WebCore::RenderMathMLBlock::setPreferredLogicalHeight):
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::makeFences):
        (WebCore::RenderMathMLFenced::styleDidChange):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        (WebCore):
        (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::createGlyph):
        (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
        * rendering/mathml/RenderMathMLOperator.h:
        (RenderMathMLOperator):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::index):
        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
        (WebCore):
        (WebCore::RenderMathMLRoot::layout):
        * rendering/mathml/RenderMathMLRoot.h:
        (RenderMathMLRoot):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):
        (WebCore::RenderMathMLRow::layout):
        * rendering/mathml/RenderMathMLRow.h:
        (RenderMathMLRow):

2013-01-26  Alexey Proskuryakov  <ap@apple.com>

        Remove code for handling NetworkProcess authentication challenges in WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=108003

        Reviewed by Sam Weinig.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
        Once again, there can be no authentication without an in-process network request.

        * WebCore.exp.in:
        * platform/network/AuthenticationChallengeBase.cpp:
        (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
        * platform/network/AuthenticationChallengeBase.h:
        (AuthenticationChallengeBase):
        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/cf/AuthenticationChallenge.h:
        (AuthenticationChallenge):
        * platform/network/curl/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/mac/AuthenticationMac.mm:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/qt/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/soup/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/win/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        Removed everything related to AuthenticationChallengeBase::m_identifier.
        The identifier is now tracked for IPC only, which is the right thing, because
        nothing can guarantee identifier uniqueness across processes.

2013-01-26  Laszlo Gombos  <l.gombos@samsung.com>

        Fix the test for CHANNEL_MESSAGING in idl files
        https://bugs.webkit.org/show_bug.cgi?id=108006

        Reviewed by Alexey Proskuryakov.

        No new tests, this is a build fix.

        * workers/WorkerContext.idl: Make sure ENABLE_CHANNEL_MESSAGING is
        defined before using it to be consitent with other guards inside idl
        files.

2013-01-26  Tim Volodine  <timvolodine@chromium.org>

        Text Autosizing: simplify and clean-up preOrderTraversal skipping containers
        https://bugs.webkit.org/show_bug.cgi?id=107446

        Reviewed by Julien Chaffraix.

        Simplify nextInPreOrderSkippingDescendantsOfContainers implementation
        using RenderObject tree traversal methods.

        No new tests because functionality is unchanged.

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::nextInPreOrderSkippingDescendantsOfContainers):

2013-01-26  Dan Carney  <dcarney@google.com>

        [v8] prepare SerializedScriptValue for transition to Latin-1
        https://bugs.webkit.org/show_bug.cgi?id=107655

        Reviewed by Kentaro Hara.

        No new tests. Covered by existing tests.

        * bindings/v8/SerializedScriptValue.cpp:

2013-01-26  Justin Schuh  <jschuh@chromium.org>

        [CHROMIUM] Suppress more c4267 build warnings for Win64 targets
        https://bugs.webkit.org/show_bug.cgi?id=107993

        No new tests. No behavior change.

        Reviewed by Abhishek Arya.

        * WebCore.gyp/WebCore.gyp:

2013-01-24  Patrick Gansterer  <paroga@webkit.org>

        Build fix for USE(JSC) && !ENABLE(WORKERS) after r136686.

        * bindings/js/DOMRequestState.h:
        (WebCore::DOMRequestState::DOMRequestState):

2013-01-26  Robert Hogan  <robert@webkit.org>

        REGRESSION(r120616): Cell's logical height wrongly computed with vertical-align: baseline and rowspan
        https://bugs.webkit.org/show_bug.cgi?id=106571

        Reviewed by Julien Chaffraix.

        When a cell spans multiple rows, its baseline is set on the first row it spans. r120616 contained a
        couple of errors in its attempt to ensure the row height calculated in such cases was correct. When it
        calculated the baseline on the first row in the span, it didn't ensure that the row height was increased
        if necessary. It also suffered from allowing the baseline descent calculated on a rowspan to affect the
        height of the other cells in the first row of the span.

        Fix both of these errors in calcRowLogicalHeight() and refactor the calculation of the baseline and baseline
        descent so that it is freestanding (rather than depending on the height of the section so far). 

        Tests: fast/css/vertical-align-baseline-rowspan-010.html
               fast/css/vertical-align-baseline-rowspan-011.html

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::calcRowLogicalHeight):

2013-01-26  James Simonsen  <simonjam@chromium.org>

        [chromium] Export ResourceRequest's priority through WebURLRequest
        https://bugs.webkit.org/show_bug.cgi?id=107985

        Reviewed by Adam Barth.

        No new tests.

        * platform/chromium/support/WebURLRequest.cpp:
        (WebKit::WebURLRequest::priority):
        (WebKit):

2013-01-25  Roger Fong  <roger_fong@apple.com>

        Unreviewed Windows build fix. All it wanted was one more line.

        * css/plugIns.css:

2013-01-25  Joone Hur  <joone.hur@intel.com>

        [GTK][AC] Use new Clutter APIs instead of deprecated APIs
        https://bugs.webkit.org/show_bug.cgi?id=105736

        Reviewed by Gustavo Noronha Silva.

        ClutterCairoTexture class and several APIs have been deprecated since version 1.10, 
        so ClutterCanvas and ClutterContent should be used instead of ClutterCairoTexture.
        clutter_actor_add_child should be used instead of clutter_actor_set_parent and clutter_container_add_clutter.

        * platform/graphics/clutter/GraphicsLayerActor.cpp:
        (_GraphicsLayerActorPrivate):
        (graphics_layer_actor_init):
        (graphicsLayerActorDispose):
        (graphicsLayerActorAllocate):
        (graphicsLayerActorPaint):
        (graphicsLayerActorDraw):
        (graphicsLayerActorUpdateTexture):
        (graphicsLayerActorNew):
        (graphicsLayerActorRemoveAll):
        (graphicsLayerActorInvalidateRectangle):
        (graphicsLayerActorInsertSublayer):
        (graphicsLayerActorSetSublayers):

2013-01-25  Roger Fong  <roger_fong@apple.com>

        Unreviewed build fix for Windows.

        * css/plugIns.css:
        (p):

2013-01-25  Julien Chaffraix  <jchaffraix@webkit.org>

        Share code between the different min-content / max-content code paths
        https://bugs.webkit.org/show_bug.cgi?id=107740

        Reviewed by Tony Chang.

        This change enables sharing between the different content based computations
        by using function pointers to specialize the behavior as needed.

        Refactoring, covered by existing tests.

        * rendering/RenderGrid.cpp:
        (WebCore::GridTrack::growUsedBreadth):
        (WebCore::GridTrack::usedBreadth):
        (WebCore::GridTrack::growMaxBreadth):
        Added the previous getters / setters that will be passed to resolveContentBasedTrackSizingFunctionsForItems.

        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        Updated to reuse resolveContentBasedTrackSizingFunctionsForItems instead of duplicating code.
        One change is that now, we properly apply the min on all branches, which was an oversight of
        the previous patches.

        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
        Added this function as the core content-sized resolution function. For now, we pass the
        current track by direction & index to be able to filter grid items.

        * rendering/RenderGrid.h:
        Added resolveContentBasedTrackSizingFunctionsForItems and the function pointers typedef's.

2013-01-25  Kentaro Hara  <haraken@chromium.org>

        Remove InjectedScript::wrapSerializedObject()
        https://bugs.webkit.org/show_bug.cgi?id=107906

        Reviewed by Abhishek Arya.

        InjectedScript::wrapSerializedObject() is unused.
        (This is one of steps to remove raw pointers of SerializedScriptValue*,
        which can be a security concern.)

        * inspector/InjectedScript.cpp:
        * inspector/InjectedScript.h:
        (InjectedScript):

2013-01-25  Kentaro Hara  <haraken@chromium.org>

        Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() in code generators
        https://bugs.webkit.org/show_bug.cgi?id=107902

        Reviewed by Abhishek Arya.

        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
        it can potentially cause a use-after-free. This is because serialize()/
        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
        depending on data that is serialized/deserialized. So we should keep a
        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)

        No tests. This is just a just-in-case fix.

        * Modules/intents/Intent.h:
        (WebCore::Intent::data):
        * Modules/intents/IntentRequest.cpp:
        (WebCore::IntentRequest::postResult):
        (WebCore::IntentRequest::postFailure):
        * Modules/intents/IntentRequest.h:
        (IntentRequest):
        * Modules/intents/IntentResultCallback.h:
        (IntentResultCallback):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GetNativeTypeForCallbacks):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GetNativeTypeForCallbacks):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
        * dom/MessagePortChannel.h:
        (WebCore::MessagePortChannel::EventData::message):

2013-01-25  Kentaro Hara  <haraken@chromium.org>

        Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() for MessageEvent
        https://bugs.webkit.org/show_bug.cgi?id=107900

        Reviewed by Abhishek Arya.

        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
        it can potentially cause a use-after-free. This is because serialize()/
        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
        depending on data that is serialized/deserialized. So we should keep a
        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)

        No tests. This is just a just-in-case fix. I couldn't find any bug
        even in an ASAN build.

        * bindings/js/JSMessageEventCustom.cpp:
        (WebCore::JSMessageEvent::data):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAccessorGetter):
        * dom/MessageEvent.h:
        (WebCore::MessageEvent::dataAsSerializedScriptValue):

2013-01-25  Kentaro Hara  <haraken@chromium.org>

        [V8] Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() (part 1)
        https://bugs.webkit.org/show_bug.cgi?id=107891

        Reviewed by Abhishek Arya.

        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
        it can potentially cause a use-after-free. This is because serialize()/
        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
        depending on data that is serialized/deserialized. So we should keep a
        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)

        No tests. This is just a just-in-case fix. I couldn't find any bug
        even in an ASAN build.

        * bindings/v8/custom/V8CustomEventCustom.cpp:
        (WebCore::V8CustomEvent::detailAccessorGetter):

2013-01-25  Kentaro Hara  <haraken@chromium.org>

        Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() in PopStateEvent
        https://bugs.webkit.org/show_bug.cgi?id=107904

        Reviewed by Abhishek Arya.

        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
        it can potentially cause a use-after-free. This is because serialize()/
        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
        depending on data that is serialized/deserialized. So we should keep a
        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)

        No tests. This is just a just-in-case fix.

        * dom/PopStateEvent.h:
        (WebCore::PopStateEvent::serializedState):
        * page/History.cpp:
        (WebCore::History::isSameAsCurrentState):
        * page/History.h:
        (History):

2013-01-25  Kentaro Hara  <haraken@chromium.org>

        Rename CodeGenerator::IsSubType() to CodeGenerator::InheritsInterface()
        https://bugs.webkit.org/show_bug.cgi?id=107874

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (InheritsInterface):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GetInternalFields):
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateFunctionCallback):
        (GenerateImplementationIndexer):
        (GenerateToV8Converters):

2013-01-25  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to GetRawTemplate()
        https://bugs.webkit.org/show_bug.cgi?id=107927

        Reviewed by Adam Barth.

        This is one of steps to kill an optional Isolate parameter of GetRawTemplate().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateDomainSafeFunctionGetter):
        (GenerateImplementation):
        (CreateCustomSignature):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::ConfigureV8Float64ArrayTemplate):
        (WebCore::V8Float64Array::GetTemplate):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
        (WebCore::V8TestActiveDOMObject::GetTemplate):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
        (WebCore::V8TestCustomNamedGetter::GetTemplate):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::ConfigureV8TestEventConstructorTemplate):
        (WebCore::V8TestEventConstructor::GetTemplate):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::ConfigureV8TestEventTargetTemplate):
        (WebCore::V8TestEventTarget::GetTemplate):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::ConfigureV8TestExceptionTemplate):
        (WebCore::V8TestException::GetTemplate):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::ConfigureV8TestInterfaceTemplate):
        (WebCore::V8TestInterface::GetTemplate):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
        (WebCore::V8TestMediaQueryListListener::GetTemplate):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::ConfigureV8TestNamedConstructorTemplate):
        (WebCore::V8TestNamedConstructor::GetTemplate):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::ConfigureV8TestNodeTemplate):
        (WebCore::V8TestNode::GetTemplate):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::ConfigureV8TestObjTemplate):
        (WebCore::V8TestObj::GetTemplate):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
        (WebCore::V8TestOverloadedConstructors::GetTemplate):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::createContext):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::V8Location::reloadAccessorGetter):
        (WebCore::V8Location::replaceAccessorGetter):
        (WebCore::V8Location::assignAccessorGetter):

2013-01-25  Pan Deng  <pan.deng@intel.com>

        [User Timing]Change class name that presented in Javascript for user timing entry.
        https://bugs.webkit.org/show_bug.cgi?id=107925.

        Reviewed by Tony Gentilcore.

        In current implementation, class type of user timing entries are PerformanceEntry, according
        to W3C spec, they should be PerformanceMark and PerformanceMeasure.

        Test: http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html

        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
        (WebCore::wrap):
        * page/PerformanceEntry.h:
        (WebCore::PerformanceEntry::isMark):
        (WebCore::PerformanceEntry::isMeasure):
        * page/PerformanceMark.h:
        (WebCore::PerformanceMark::isMark):
        (PerformanceMark):
        * page/PerformanceMeasure.h:
        (WebCore::PerformanceMeasure::isMeasure):
        (PerformanceMeasure):

2013-01-24  Roger Fong  <roger_fong@apple.com>

        Updated WebCore property sheets and added a WebCore solution file.
        https://bugs.webkit.org/show_bug.cgi?id=106988.

        Rubberstamped by Brent Fulgham.

        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters:
        * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
        * WebCore.vcxproj/WebCore.sln: Added.
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.vcxproj/WebCoreDebug.props:

2013-01-24  Ojan Vafai  <ojan@chromium.org>

        MathML preferred widths should not depend on layout information
        https://bugs.webkit.org/show_bug.cgi?id=107353

        Reviewed by Levi Weintraub.

        * mathml/MathMLTextElement.cpp:
        (WebCore::MathMLTextElement::attach):
        (WebCore::MathMLTextElement::childrenChanged):
        * mathml/MathMLTextElement.h:
        Need to update the render tree when the text of a <mo> changes.

        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::makeFences):
        (WebCore::RenderMathMLFenced::styleDidChange):
        Need to update the rendertree to apply operator stretching.

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
        (WebCore::RenderMathMLOperator::widthForCharacter):
        (WebCore::RenderMathMLOperator::computeIntrinsicLogicalWidths):
        (WebCore::RenderMathMLOperator::stretchDisabledByMarkup):
        (WebCore::RenderMathMLOperator::firstTextCharacter):
        (WebCore::RenderMathMLOperator::stretchyCharacterIndex):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
        -Make the preferred widths of operators the max of all possible
        characters to be used in the operator and center the operator in that width.
        -For stretching where we don't use multiple glyphs, use transforms
        instead of font-size. This both looks better and avoids affecting the width.
        -Now that preferred widths don't depends on height, we don't need to
        override computePreferredLogicalWidths at all in MathML code.

        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::index):
        Tighten up the type.

        (WebCore::RenderMathMLRoot::layout):
        Move the laying out of children to the layout method.

        * rendering/mathml/RenderMathMLRoot.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::logicalHeightExcludingOperators):
        (WebCore::RenderMathMLRow::stretchOperatorsAndLayout):
        (WebCore::RenderMathMLRow::layout):
        Move the laying out of children and the subsequent setting of stretchHeight
        to the layout method.

        * rendering/mathml/RenderMathMLRow.h:

2013-01-25  Raymond Toy  <rtoy@google.com>

        Don't subtract too much from nonSilentFramesToProcess
        https://bugs.webkit.org/show_bug.cgi?id=107966

        Reviewed by Kenneth Russell.

        No new tests.

        * Modules/webaudio/AudioScheduledSourceNode.cpp:
        (WebCore::AudioScheduledSourceNode::updateSchedulingInfo):

2013-01-25  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Windows build fix by Dean.

        * css/plugIns.css:
        (object):

2013-01-25  Dima Gorbik  <dgorbik@apple.com>

        Support language WebVTT Nodes
        https://bugs.webkit.org/show_bug.cgi?id=107907

        Reviewed by Eric Carlson.

        Language stack and WebVTT language nodes are added as 
        required by specs.

        Test: media/track/track-css-matching-lang.html

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): WebVTT language nodes should be
        spans in DOM and the lang attribute should be set for all nodes if applicable.
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::langElementTagName):
        (TextTrackCue):
        (WebCore::TextTrackCue::langAttributeName):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::createDocumentFragmentFromCueText): clear the language stack in case
        we use the same parser object for multiple cues that have incorrect syntax.
        (WebCore::isLangToken):
        (WebCore):
        (WebCore::WebVTTParser::constructTreeFromToken): parse lang WebVTT objects.
        * html/track/WebVTTParser.h:
        (WebVTTParser):

2013-01-25  Andy Estes  <aestes@apple.com>

        Wrap content filtering code in an object
        https://bugs.webkit.org/show_bug.cgi?id=107914

        Reviewed by Alexey Proskuryakov.

        Content filtering code currently requires explicit and somewhat complex
        lifetime management of the WebFilterEvaluator object for correct
        behavior. Simplify this by wrapping WebFilterEvaluator in an object and
        have MainResourceLoader implicitly manage its lifetime by holding it in
        an OwnPtr.

        This change has benefits other than the simplified lifetime management.
        It removes direct calls into WebKitSystemInterface from the loader, and
        it allows us to keep a strong reference to the replacement data
        returned from wkFilterAddData() and wkFilterDataComplete() rather than
        relying on it being autoreleased.

        * WebCore.exp.in: Updated to match changes in WebCoreSystemInterface.
        * WebCore.xcodeproj/project.pbxproj: Added new files.
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader): Removed unneeded initialization.
        (WebCore::MainResourceLoader::~MainResourceLoader): Removed an unneeded ASSERT().
        (WebCore::MainResourceLoader::cancel): Removed unneeded wkFilterRelease().
        (WebCore::MainResourceLoader::responseReceived): Created a
        ContentFilter object rather than calling wkFilterCreateInstance().
        (WebCore::MainResourceLoader::dataReceived): Rewrote content filtering
        logic in terms of the wrapper object. Removed any explicit lifetime
        management.
        (WebCore::MainResourceLoader::didFinishLoading): Ditto.
        (WebCore::MainResourceLoader::notifyFinished): Removed unneeded wkFilterRelease().
        * loader/MainResourceLoader.h:
        * platform/ContentFilter.h: Added.
        * platform/mac/ContentFilterMac.mm: Added.
        (WebCore::ContentFilter::create):
        (WebCore::ContentFilter::ContentFilter):
        (WebCore::ContentFilter::isEnabled): Returned the result of wkFilterIsManagedSession().
        (WebCore::ContentFilter::addData): Called wkFilterAddData() and stored
        the resulting NSData in m_replacementData.
        (WebCore::ContentFilter::finishedAddingData): Called wkFilterDataComplete()
        and stored the resulting NSData in m_replacementData.
        (WebCore::ContentFilter::needsMoreData): Returned the result of wkFilterIsBuffering().
        (WebCore::ContentFilter::didBlockData): Returned the result of wkFilterWasBlocked().
        (WebCore::ContentFilter::getReplacementData): Returned the data stored in m_replacementData.
        * platform/mac/WebCoreSystemInterface.h: Updated to reflect changes in WKSI.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::~MainResourceLoader):
        (WebCore::MainResourceLoader::cancel):
        (WebCore::MainResourceLoader::responseReceived):
        (WebCore::MainResourceLoader::dataReceived):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::notifyFinished):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):
        * platform/ContentFilter.h: Added.
        (WebCore):
        (ContentFilter):
        * platform/mac/ContentFilterMac.mm: Added.
        (WebCore):
        (WebCore::ContentFilter::create):
        (WebCore::ContentFilter::ContentFilter):
        (WebCore::ContentFilter::isEnabled):
        (WebCore::ContentFilter::addData):
        (WebCore::ContentFilter::finishedAddingData):
        (WebCore::ContentFilter::needsMoreData):
        (WebCore::ContentFilter::didBlockData):
        (WebCore::ContentFilter::getReplacementData):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2013-01-25  Simon Fraser  <simon.fraser@apple.com>

        When the FrameView has a non-opaque background color, make sure the TileCache tiles are not opaque
        https://bugs.webkit.org/show_bug.cgi?id=107989

        Reviewed by Dean Jackson.

        If a WKView was told to draw a transparent background, make sure that we
        set the TileCache tiles to be non-opaque.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateRootLayerConfiguration):

2013-01-25  Alexandre Elias  <aelias@chromium.org>

        Call FrameView::contentsResized() when setting fixed layout size
        https://bugs.webkit.org/show_bug.cgi?id=107922

        Reviewed by James Robinson.

        In fixed layout mode, we should be calling contentsResized() when the
        fixed layout size is changed; on the other hand, we don't need to layout
        when the visible contents size changes.

        This fixes test WebFrameTest::FixedLayoutInitializeAtMinimumPageScale.

        * page/FrameView.cpp:
        (WebCore::FrameView::visibleContentsResized):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::setFixedLayoutSize):
        (WebCore::ScrollView::setUseFixedLayout):

2013-01-25  Tony Gentilcore  <tonyg@chromium.org>

        Fix an ASSERT in BackgroundHTMLParser::appendPartial
        https://bugs.webkit.org/show_bug.cgi?id=107983

        Reviewed by Eric Seidel.

        The complier may create a temporary for the isolatedCopy of the source string. This could cause the refCount of the
        StringImpl to be greater than one when appendPartial is invoked on the background thread.
        This patch ensures the temporary is gone by that time which fixes the ASSERT in numerous layout tests.

        No new tests because covered by existing tests.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::append):

2013-01-25  Dean Jackson  <dino@apple.com>

        Add a user agent stylesheet for plugins
        https://bugs.webkit.org/show_bug.cgi?id=107890

        Reviewed by Alexey Proskuryakov.

        As a step along the way to providing a Shadow DOM for plug-in elements, add a
        User Agent stylesheet that is loaded when an embed or object element is
        in the document. At the moment the stylesheet is empty.

        The stylesheet can be overridden by the RenderTheme or the ChromeClient, allowing
        ports to provide a custom appearance. This involved hooking up some virtual methods
        on ChromeClient, the stubs of which are already implemented in WK2.
        As a drive-by, since snapshotted plugins will need some localization I've also
        exposed the ChromeClient methods to get text labels.

        * CMakeLists.txt: Add plugIns.css.
        * DerivedSources.make: Ditto.
        * DerivedSources.pri: Ditto.
        * GNUmakefile.am: Ditto.
        * WebCore.gyp/WebCore.gyp: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditoo.
        * css/StyleResolver.cpp:
        (WebCore::ensureDefaultStyleSheetsForElement): Load and inject new plugInsStyleSheet if there is an object or embed element.
        * css/plugIns.css: Added. Empty for now.
        * page/ChromeClient.h: New methods for querying the client.
        (WebCore::ChromeClient::plugInStartLabelTitle):
        (WebCore::ChromeClient::plugInStartLabelSubtitle):
        (WebCore::ChromeClient::plugInExtraStyleSheet):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::extraPlugInsStyleSheet): Allow the theme to provide an extra stylesheet.

2013-01-25  Eric Carlson  <eric.carlson@apple.com>

        Adding a text track should not make controls visible
        https://bugs.webkit.org/show_bug.cgi?id=107956

        Reviewed by Dean Jackson.

        Test: media/media-captions-no-controls.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Call updateTextTrackDisplay.
        (WebCore::HTMLMediaElement::updateTextTrackDisplay): New, call mediaControls->updateTextTrackDisplay()
            if we have controls.
        (WebCore::HTMLMediaElement::setClosedCaptionsVisible):  Call updateTextTrackDisplay.
        (WebCore::HTMLMediaElement::createMediaControls): Hide controls if they should not be 
            visible. Minor drive by cleanup.
        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Drive by cleanup, pull the three lines
            from updateClosedCaptionsControls inline and delete it because this was the only caller.
        * html/HTMLMediaElement.h:

2013-01-25  Elliott Sprehn  <esprehn@chromium.org>

        Consider all ancestors not just parentElement when disconnecting frames
        https://bugs.webkit.org/show_bug.cgi?id=107769

        Reviewed by Eric Seidel.

        Previous we only used the parentElement of the frame owner to decide if
        we should disconnect the frame, but this means if you reparent a subtree
        that contains multiple frames from inside an unload handler we'll disconnect
        the subframes even though they're now in a different part of the document.

        We can fix this by using containsIncludingShadowDOM, and also simplify the
        code by removing ChildFrameDisconnector::Target.

        Test: fast/frames/unload-reparent-sibling-frame.html

        * dom/ContainerNodeAlgorithms.cpp:
        * dom/ContainerNodeAlgorithms.h:
        (ChildFrameDisconnector):
        (ChildFrameDisconnector::Target): Removed.
        (WebCore::ChildFrameDisconnector::collectFrameOwners):
        (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):

2013-01-25  Tony Chang  <tony@chromium.org>

        Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
        https://bugs.webkit.org/show_bug.cgi?id=104997

        Reviewed by Ojan Vafai.

        Original patch by Kent Tamura:
        When padding or border is updated for a parent block with
        box-sizing:border-box and width, the width of its child block was not
        updated.

        The change is to look at border width specifically, not all changes to the border style
        since changes to border color should not trigger a relayout.

        Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
               fast/forms/border-color-relayout.html
               fast/forms/text/text-padding-dynamic-change.html

        * rendering/RenderBox.cpp:
        (WebCore::borderWidthChanged): Helper method to compare border widths.
        (WebCore::RenderBox::styleDidChange):
        If box-sizing of the old style and/or the new style is border-box and
        padding or border is changed, apply setChildNeedsLayout(true) for child
        boxes.

2013-01-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        Move WebGLErrorsToConsole page setting to window.internals.settings
        https://bugs.webkit.org/show_bug.cgi?id=107218

        Reviewed by Kenneth Russell.

        Define webGLErrorsToConsoleEnabled as true by default. Also,
        WebGLRenderingContext::m_synthesizedErrorsToConsole is true by default
        and can be disabled by settings.

        Add a ConsoleDisplayPreference parameter to synthesizeGLError
        (defaults to DisplayInConsole). When called with DontDisplayInConsole,
        an error message will not be displayed (even if
        m_synthesizedErrorsToConsole is true).

        Call synthesizeGLError with DontDisplayInConsole in case of synthetic
        context lost.

        No new tests: covered by existing tests.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
        (WebCore::WebGLRenderingContext::setupFlags):
        (WebCore::WebGLRenderingContext::validateRenderingState):
        (WebCore::WebGLRenderingContext::loseContextImpl):
        (WebCore::WebGLRenderingContext::synthesizeGLError):
        * html/canvas/WebGLRenderingContext.h:
        * page/Settings.in:

2013-01-25  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Move TaskType enum to IDBDatabaseBackendInterface
        https://bugs.webkit.org/show_bug.cgi?id=107960

        Reviewed by Tony Chang.

        The IDBTransactionBackendInterface class is going away,
        this is an easy search-and-replace patch to keep these
        changes out of more complex patches.

        No new tests, just part of a refactor.

        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::create):
        (IDBCursorBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
        (WebCore::OpenCursorOperation::perform):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::openCursor):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::openCursor):
        (IDBObjectStore):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        (WebCore::IDBRequest::IDBRequest):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        (WebCore::IDBRequest::taskType):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:

2013-01-25  Abhishek Arya  <inferno@chromium.org>

        Regression(r139836): Crash in WTF::equalIgnoringCase
        https://bugs.webkit.org/show_bug.cgi?id=107703

        Reviewed by Eric Seidel.

        Check |a| is a CSS_IDENT before considering it a string and
        calling equalIgnoringCase on it. To avoid future mistakes like
        this, add a function override for equalIgnoringCase that takes
        CSSParserValue as a parameter and ASSERTs if that CSSParserValue
        is not a CSS_STRING/CSS_IDENT.       

        Test: fast/gradients/parse-radial-gradient-crash.html

        * css/CSSParser.cpp:
        (WebCore):
        (WebCore::equalIgnoringCase):
        (WebCore::CSSParser::parseAnimationName):
        (WebCore::CSSParser::parseAnimationProperty):
        (WebCore::CSSParser::parseDashboardRegions):
        (WebCore::parseDeprecatedGradientPoint):
        (WebCore::CSSParser::parseDeprecatedGradient):
        (WebCore::CSSParser::parseLinearGradient):
        (WebCore::CSSParser::parseRadialGradient):

2013-01-25  Chang Shu  <cshu@webkit.org>

        Build broken when svg is disabled.
        https://bugs.webkit.org/show_bug.cgi?id=92393.

        Unreviewed build fix.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::buildReferenceFilter):

2013-01-25  Tony Gentilcore  <tonyg@chromium.org>

        Abort parsing when pending location change for threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=107876

        Reviewed by Eric Seidel.

        The main thread parser does this in canTakeNextToken. Adding this check to the threaded parser causes us to pass
        fast/loader/location-change-aborts-parsing.html.

        No new tests because covered by existing tests.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):

2013-01-25  Mike West  <mkwst@chromium.org>

        ScriptController::executeIfJavaScriptURL incorrectly checks viewsource mode.
        incorrectly blocks execution based on the frame's viewsource state.
        https://bugs.webkit.org/show_bug.cgi?id=101683

        Reviewed by Adam Barth.

        ScriptController::executeIfJavaScriptURL currently checks whether the
        frame in which a 'javascript:' URL might be executed is in viewsource
        mode. This incorrectly handles the case where the viewsource attribute
        is added after a document loads: the _frame_ is in viewsource mode, the
        _document_ is not. The latter should control execution, not the former.

        This patch drops the inViewSourceMode check from executeIfJavaScriptURL
        entirely, as the document's viewsource state is checked in
        canExecuteScripts, which is already called when the 'javascript:' URL is
        passed to executeScript. The checks should remain centralized there.

        Test: http/tests/security/view-source-javascript-url-in-document.html

        * bindings/ScriptControllerBase.cpp:
        (WebCore::ScriptController::executeIfJavaScriptURL):
            Drop the incorrect check against the Frame's viewsource mode. The
            correct check against the Document's viewsource mode is performed
            in canExecuteScripts (which is called via executeScript).

2013-01-25  Gustavo Noronha Silva  <gns@gnome.org>

        [Soup] Streamline cancellation and client checks
        https://bugs.webkit.org/show_bug.cgi?id=107808

        Reviewed by Martin Robinson.

        Covered by existing tests.

        * platform/network/ResourceHandle.h:
        (ResourceHandle):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::cancelledOrClientless): new method to check for cancellation and lack of client.
        (WebCore):
        (WebCore::gotHeadersCallback): use the new method.
        (WebCore::restartedCallback): ditto.
        (WebCore::redirectCloseCallback): ditto.
        (WebCore::redirectSkipCallback): ditto.
        (WebCore::wroteBodyDataCallback): ditto.
        (WebCore::nextMultipartResponsePartCallback): ditto.
        (WebCore::sendRequestCallback): ditto.
        (WebCore::networkEventCallback): ditto.
        (WebCore::ResourceHandle::platformSetDefersLoading): ditto.
        (WebCore::readCallback): ditto.

2013-01-25  Victor Carbune  <vcarbune@chromium.org>

        Heap-use-after-free in WebCore::TextTrackCue::isActive
        https://bugs.webkit.org/show_bug.cgi?id=104594

        Reviewed by Eric Carlson.

        Test: media/track/track-remove-active-cue-crash.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
        (WebCore::HTMLMediaElement::textTrackAddCue):
        (WebCore::HTMLMediaElement::textTrackRemoveCue): Remove the cue
        from the active cue set as well.
        * html/HTMLMediaElement.h:
        (WebCore):

2013-01-25  Mike West  <mkwst@chromium.org>

        Web Inspector: Cleanup console.* API MessageSource/Levels.
        https://bugs.webkit.org/show_bug.cgi?id=107946

        Reviewed by Pavel Feldman.

        This patch does some light cleanup on sources and levels of console.*
        messages as part of a broader effort to offer better filtering options
        in the console. Specifically:

        -   console.timeEnd and console.count now come from
            ConsoleAPIMessageSource.
        -   console.count is now DebugMessageLevel (to match console.timeEnd).
        -   console.profile and console.profileEnd now comr from
            ConsoleAPIMessageSource, and are DebugMessageLevel.

        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::stopTiming):
        (WebCore::InspectorConsoleAgent::count):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
        (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):

2013-01-25  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: highlight occurences of word in DefaultTextEditor
        https://bugs.webkit.org/show_bug.cgi?id=105523

        Reviewed by Pavel Feldman.

        Highlight occurrences of selected word in DefaultTextEditor by the means of new highlight regex API.

        Test: inspector/editor/text-editor-highlight-token.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
        (WebInspector.TextEditorMainPanel.TokenHighlighter): Added.
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype.handleSelectionChange):
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._regexString):
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._highlight):
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
        * inspector/front-end/textEditor.css:
        (.text-editor-token-highlight):

2013-01-25  Alexander Paschenko  <alexander.pashenko@lge.com>

        [TexMap] Flickering after transitions on Apple HTML5 demo
        https://bugs.webkit.org/show_bug.cgi?id=102501

        Reviewed by Noam Rosenthal.

        The problem is caused by inconsistent state of TextureMapperLayer's transformation matrix
        and opacity data during and after the end of animation.
        This patch solves the problem by introducing three additional private flags
        to TextureMapperLayer:
        m_shouldUpdateCurrentTransformFromGraphicsLayer,
        m_shouldUpdateCurrentOpacityFromGraphicsLayer, and
        m_shouldUpdateCurrentFiltersFromGraphicsLayer.
        The latter has been introduced in order to avoid similar future problems
        with m_currentFilters.
        On these flags' basis, TextureMapperLayer is able to decide whether to update
        its inner state or not.
        These flags themselves are set based on GraphicsLayerTextureMapper's changeMask
        which indicates what details of the state have been changed since the last sync.

        No new tests - this doesn't expose any testable surface.
        Eyes-only check has been made to ensure that the problem is gone now.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::setAnimatedTransform):
        sets m_shouldUpdateCurrentTransformFromGraphicsLayer to false and
        updates m_currentTransform based on the updated state from GraphicsLayerAnimation.
        (WebCore):
        (WebCore::TextureMapperLayer::setAnimatedOpacity):
        sets m_shouldUpdateCurrentOpacityFromGraphicsLayer to false and
        updates m_currentOpacity based on the updated state from GraphicsLayerAnimation.
        (WebCore::TextureMapperLayer::setAnimatedFilters):
        sets m_shouldUpdateCurrentFiltersFromGraphicsLayer to false and
        updates m_currentFilters based on the updated state from GraphicsLayerAnimation.
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
        sets m_shouldUpdateCurrent* flags based on GLTM's changeMask. Also illegal modification
        of m_currentTransform that caused flickering has been removed from this method.
        (WebCore::TextureMapperLayer::syncAnimations): updates m_currentTransform and/or
        m_currentOpacity and/or m_currentFilters if corresponding flags allow to do so.
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore::TextureMapperLayer::TextureMapperLayer): aforementioned flags
        get initialized in ctor.
        (TextureMapperLayer): aforementioned flags are declared in the class.


2013-01-25  Marja Hölttä  <marja@chromium.org>

        Refactor InspectorMemoryAgent: memory data as a map.

        https://bugs.webkit.org/show_bug.cgi?id=107938

        Reviewed by Yury Semikhatsky.

        No new tests (no functional changes, only refactoring).

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::getProcessMemoryDistribution):
        (WebCore):
        * inspector/InspectorController.h:
        (WebCore):
        (InspectorController):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::addPlatformComponentsInfo):
        (WebCore):
        (WebCore::addMemoryInstrumentationDebugData):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionAsMap):
        * inspector/InspectorMemoryAgent.h:
        (InspectorMemoryAgent):

2013-01-25  Huang Dongsung  <luxtella@company100.net>

        [Texmap] Refactor code related to debug border and repaint count.
        https://bugs.webkit.org/show_bug.cgi?id=105787

        Reviewed by Noam Rosenthal.

        Currently, TextureMapperBackingStore, CoordinatedBackingStore and
        GraphicsLayerTextureMapper have duplicated code to draw debug border or
        repaint count. This patch refactors that all platform layers draw debug
        border and repaint count in the consistent way:
        TextureMapper::drawBorder() and TextureMapper::drawRepaintCounter().

        There are three big changes:
        1. TextureMapperLayer has the debug visuals like GraphicsLayer.
        Both debug border and repaint count are called as the debug visuals.
        2. We use the same color and width to Mac port because we get that info using
        GraphicsLayer::updateDebugIndicators().
        3. Draw borders for background color, backing store and contents layer,
        while drawing repaint count only for backing store.

        No new tests. This functionality is for debugging, so we cannot test using DRT.

        * platform/graphics/cairo/GraphicsContext3DPrivate.h:
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setShowDebugBorder):
        (WebCore):
        (WebCore::GraphicsLayerTextureMapper::setShowRepaintCounter):
        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCountIfNeeded):
        (WebCore::GraphicsLayerTextureMapper::setDebugBorder):
        (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
        (WebCore::GraphicsLayerTextureMapper::setRepaintCount):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::debugBorderColor):
        (WebCore::GraphicsLayerTextureMapper::debugBorderWidth):
        * platform/graphics/texmap/TextureMapper.h:
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperTiledBackingStore::adjustedTransformForRect):
        (WebCore):
        (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
        (WebCore::TextureMapperTiledBackingStore::drawBorder):
            Override TextureMapperPlatformLayer::drawBorder() to draw the border
            for each tile.
        (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (WebCore::TextureMapperBackingStore::drawRepaintCounter):
        (TextureMapperBackingStore):
        (TextureMapperTiledBackingStore):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawRepaintCounter):
        * platform/graphics/texmap/TextureMapperGL.h:
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::TextureMapperImageBuffer::drawBorder):
        (WebCore):
        (WebCore::TextureMapperImageBuffer::drawRepaintCounter):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        (TextureMapperImageBuffer):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::paintSelf):
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (State):
        (WebCore::TextureMapperLayer::State::State):
        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
        (WebCore::TextureMapperPlatformLayer::drawBorder):

2013-01-24  Patrick Gansterer  <paroga@webkit.org>

        Build fix for !ENABLE(DRAG_SUPPORT) after r140286.

        * page/AutoscrollController.cpp:
        (WebCore::AutoscrollController::autoscrollTimerFired):

2013-01-25  Ken Kania  <kkania@chromium.org>

        Web Inspector: Move dispatchMouseEvent optional params after x,y
        https://bugs.webkit.org/show_bug.cgi?id=107828

        Reviewed by Pavel Feldman.

        No new tests, as this just rearranges the order of arguments to make
        JSCompiler happy. The params were rearranged in r140649 to match
        dispatchKeyEvent's params.

        * inspector/Inspector.json:
        * inspector/InspectorInputAgent.cpp:
        (WebCore::InspectorInputAgent::dispatchMouseEvent):
        * inspector/InspectorInputAgent.h:
        (InspectorInputAgent):

2013-01-25  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Editing a property value containing a trimmed data: URL breaks the style
        https://bugs.webkit.org/show_bug.cgi?id=107936

        Reviewed by Yury Semikhatsky.

        Restore the original CSS property value before editing.

        Test: inspector/styles/edit-value-with-trimmed-url.html

        * inspector/front-end/StylesSidebarPane.js:

2013-01-25  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Use DataGrid column alignment instead of custom styling.
        https://bugs.webkit.org/show_bug.cgi?id=107935

        Reviewed by Pavel Feldman.

        On Network Panel column alignment is specified both in
        column descriptors and in CSS stylesheet.

        Only one alignment specifier should last.

        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGridNode.prototype.createTD): Extracted common code.
        (WebInspector.DataGridNode.prototype.createCell): Use "createTD". 
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkDataGridNode.prototype._createDivInTD): Ditto.
        * inspector/front-end/networkLogView.css: Remove exheberant rules.
        * inspector/front-end/networkPanel.css: Fix whitespaces.

2013-01-25  Sergey Ryazanov  <serya@chromium.org>

        Web Inspector: Add explanation for Console object expansion behaviour
        https://bugs.webkit.org/show_bug.cgi?id=107793

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArrayOrObject):
        * inspector/front-end/inspector.css:
        (.object-info-state-note):
        (.object-info-state-note::before):
        (.object-info-state-note:hover):
        (.section.expanded .object-info-state-note):
        (.section.expanded .properties, .event-bar.expanded .event-properties):
        (.pane.expanded .properties, .event-bar .event-properties):

2013-01-25  Claudio Saavedra  <csaavedra@igalia.com>

        Missing files in GNUmakefile.list.am for Notifications support
        https://bugs.webkit.org/show_bug.cgi?id=107934

        Reviewed by Philippe Normand.

        * GNUmakefile.list.am: Add DOMWindowNotifications.idl and
        WorkerContextNotifications.idl to dom_binding_idls and
        JSNotificationCustom.{cpp,h} to webcore_sources, since without
        this the Notifications will be broken.

2013-01-25  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: implement search for workspace sources
        https://bugs.webkit.org/show_bug.cgi?id=107814

        Reviewed by Pavel Feldman.

        Implement generic WebInspector.ContentProvider.performSearchInContent method and use it in both
        StaticContentProvider and fileSystemWorkspaceProvider.

        No new tests.

        * inspector/front-end/ContentProvider.js:
        (WebInspector.ContentProvider.performSearchInContent): Added.
        * inspector/front-end/ContentProviders.js:
        (WebInspector.StaticContentProvider.prototype.):
        (WebInspector.StaticContentProvider.prototype.searchInContent):
        * inspector/front-end/FileSystemWorkspaceProvider.js:
        (WebInspector.FileSystemWorkspaceProvider.prototype.contentCallback):
        (WebInspector.FileSystemWorkspaceProvider.prototype.searchInFileContent):

2013-01-25  Elliott Sprehn  <esprehn@gmail.com>

        Assert the connectedSubframeCount is consistent and fix over counting
        https://bugs.webkit.org/show_bug.cgi?id=107302

        Reviewed by Alexey Proskuryakov.

        Add a debug assertion that walks the subtree during frame disconnection
        and manually counts the number of connected subframes to assert that the
        value from Node::connectedSubframeCount() is the same as if we traversed
        through the tree.

        In fixing the places where this assertion failed I made document destruction
        faster by not walking the entire document looking for frames if the entire
        frame tree has been destroyed by way of FrameLoader::detachChildren().
        I had inadvertently introduced this improvement in r133933, but then I
        regressed it in r140090 when we switched to counting because I didn't
        realize we destroy the frame tree separate of frame disconnection on
        document unload so all frames could have been destroyed but the counts
        left on the ancestors.

        I also fixed another overcounting case where the adoption agency algorithm
        may call ContainerNode::takeAllChildrenFrom() which in turn calls
        ContainerNode::removeAllChildren() and could have left a connected subframe
        count on the node even though all the frames had been removed.

        This assertion did not uncover any cases of undercounting the number of
        frames.

        This also fixes a rare edge case where removeChild of an iframe that
        was already being unloaded would not unload the frame until the top level
        unload was done, and a reparenting of the iframe would not cause it to load.

        Test: fast/frames/reparent-in-unload-contentdocument.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeAllChildren):
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserRemoveChild):
        (WebCore::ContainerNode::parserAppendChild):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore):
        (WebCore::assertConnectedSubframeCountIsConsistent):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore):
        (WebCore::ChildFrameDisconnector::disconnect):
        * dom/Node.cpp:
        (WebCore::Node::updateAncestorConnectedSubframeCountForRemoval):
        (WebCore):
        (WebCore::Node::updateAncestorConnectedSubframeCountForInsertion):
        * dom/Node.h:
        (Node):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::clearContentFrame):
        (WebCore):
        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
        * html/HTMLFrameOwnerElement.h:
        (HTMLFrameOwnerElement):

2013-01-25  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: inspector slows down pages with many anonymous scripts.
        https://bugs.webkit.org/show_bug.cgi?id=107928

        Reviewed by Alexander Pavlov.

        The problem was that workspace code introduced n^2 complexity for unique URI calculation.

        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.prototype.uniqueURI):

2013-01-25  Jussi Kukkonen  <jussi.kukkonen@intel.com>

        [CMake][EFL] Build ThirdParty/leveldb when IndexedDB is enabled
        https://bugs.webkit.org/show_bug.cgi?id=106443

        Reviewed by Laszlo Gombos.

        LevelDB is now included in ThirdParty. Use it when IndexDB is
        enabled for EFL.

        * CMakeLists.txt:
        Build ThirdParty/leveldb when WTF_USE_LEVELDB is set

2013-01-25  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Inconsistent value of aria-valuetext attribute
        https://bugs.webkit.org/show_bug.cgi?id=107897

        Reviewed by Kentaro Hara.

        aria-valuetext and aria-valuenow attributes had inconsistent values in
        a case of initial empty state and a case that a user clears a field.

        - aria-valuetext attribute should have "blank" message in the initial
          empty state.
        - aria-valuenow attribute should be removed in the cleared empty state.

        Also, we have a bug that aira-valuenow had a symbolic value such as "AM"
        "January". It should always have a numeric value according to the
        specification.
        http://www.w3.org/TR/wai-aria/states_and_properties#aria-valuenow

        No new tests. Updates fast/forms/*-multiple-fields/*-multiple-fields-ax-aria-attributes.html.

        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::DateTimeFieldElement):
        Set "blank" message to aria-valuetext attribute.
        (WebCore::DateTimeFieldElement::updateVisibleValue):
        aria-valuenow attribute should be a numeric value. Apply String::number
        to the return value of valueForARIAValueNow.
        Remove aria-valuenow attribute if nothing is selected.
        (WebCore::DateTimeFieldElement::valueForARIAValueNow):
        Added.
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement): Declare valueForARIAValueNow.

        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::valueForARIAValueNow):
        Added. Returns 1 + internal selection index.
        For example, the function returns 1 for January.
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement): Declare valueForARIAValueNow.

2013-01-24  Hans Wennborg  <hans@chromium.org>

        Disable Clang's -Wreturn-type-c-linkage for Source/WebCore/bindings/v8/
        https://bugs.webkit.org/show_bug.cgi?id=107845

        Reviewed by Adam Barth.

        A recent version of Clang started warning about code in
        Source/WebCore/bindings/v8/npruntime.cpp.

        In this case it is warning about an 'extern "c"' function returning a
        non-POD type. But because the function has internal linkage, the
        warning doesn't really apply.

        This change suppresses the warning in the meantime.

        Tested by building with Clang r172454.

        * WebCore.gyp/WebCore.gyp:

2013-01-25  Eberhard Graether  <egraether@google.com>

        Web Inspector: add checkbox for continuous painting to the inspector's settings
        https://bugs.webkit.org/show_bug.cgi?id=107352

        Reviewed by Pavel Feldman.

        This change adds a checkbox to activate continuous painting to the WebInspector's
        rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The
        setting is visible if InspectorClient::canContinuouslyPaint() returns true.

        No new tests.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::canContinuouslyPaint):
        (WebCore::InspectorClient::setContinuousPaintingEnabled):
        (InspectorClient):
        * inspector/InspectorPageAgent.cpp:
        (PageAgentState):
        (WebCore::InspectorPageAgent::restore):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::canContinuouslyPaint):
        (WebCore):
        (WebCore::InspectorPageAgent::setContinuousPaintingEnabled):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):
        (WebInspector.GenericSettingsTab.prototype.get _continuousPaintingChanged):
        * inspector/front-end/inspector.js:
        (WebInspector.doLoadedDone):

2013-01-25  Dominic Mazzoni  <dmazzoni@google.com>

        REGRESSION (r140658): Multiple accessibility failures on GTK
        https://bugs.webkit.org/show_bug.cgi?id=107832

        Reviewed by Chris Fleizach.

        In the ATK accessibility implementation, attachWrapper
        might create a different object depending on the role of
        the WebCore AccessibilityObject, whereas on other platforms
        attachWrapper doesn't care. Calling init before attachWrapper
        solves the problem.

        Re-enables 7 skipped tests.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):

2013-01-24  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Refactoring: Remove confusing minimum() and maximum() of DateTimeSymbolicFieldElement
        https://bugs.webkit.org/show_bug.cgi?id=107918

        Reviewed by Kentaro Hara.

        DateTimeSymbolicFieldElement::minimum() and maximum() are very
        confusing. They don't return minimum/maximum value of 0-based symbol
        index though valueAsInteger is 0-based. These functions are used only
        for ARIA attributes in DateTimeFieldElement::initialize().

        - Remove DateTimeFieldElement::minimum() and maximum(), and pass
        minimum/maximum values for ARIA attributes as function arguments.
        - DateTimeNumericFieldElement::maximum() is now non-virtual.
          It is called by subclasses.

        No new tests. This should not change any behavior.

        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::initialize):
        Add axMimimum/axMaximum arguments. Don't use minimum() and maximum().
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement): Ditto.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::initialize):
        Pass m_range.minimum and maximum to DateTimeFieldElement::initialize().
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement):
        - Add initialize()
        - Make maximum() non-virtual
        - Remove minimum().
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::initialize):
        Pass m_minimumIndex + 1 and m_maximumIndex + 1 to
        DateTimeFieldElement::initialize().
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement):
        Add initialize() and remove minimum() and maximum().

2013-01-24  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Refactoring: Remove unused DateTimeHourFieldElement::valueAsInteger
        https://bugs.webkit.org/show_bug.cgi?id=107915

        Reviewed by Kentaro Hara.

        DateTimeHourFieldElement::valueAsInteger is never called. Remove it and
        make valueAsInteger non-public.

        No new tests. This shouldn't change any behavior.

        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement): Make valueAsInteger protected.
        * html/shadow/DateTimeFieldElements.cpp:
        Remove DateTimeHourFieldElement::valueAsInteger.
        (WebCore::DateTimeHourFieldElement::populateDateTimeFieldsState):
        Remove unnecessary DateTimeNumericFieldElement:: prefix.
        * html/shadow/DateTimeFieldElements.h:
        (DateTimeHourFieldElement): Remove valueAsInteger.
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement):
        Make valueAsInteger FINAL.

2013-01-24  Hajime Morrita  <morrita@google.com>

        Refactoring: The name ContainerNode::removeChildren and ContainerNde::removeAllChilren() is confusing
        https://bugs.webkit.org/show_bug.cgi?id=107640

        Reviewed by Eric Seidel.

        This change renames unsafe removeAllChilren() function to
        removeDetachedChildren() and move it to protected visibility.

        In theory, the removed nodes should be detached() before. But some
        tests violates that assumption. It should be fixed.

        No new tests. No behavior change.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeDetachedChildren):
        (WebCore::ContainerNode::takeAllChildrenFrom):
        (WebCore::ContainerNode::~ContainerNode):
        * dom/ContainerNode.h:
        (ContainerNode):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore::removeDetachedChildrenInContainer):
        (WebCore):
        * dom/Document.cpp:
        (WebCore::Document::removedLastRef):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::~ShadowRoot):
        * svg/SVGElementInstance.cpp:
        (WebCore::SVGElementInstance::detach):
        * svg/SVGElementInstance.h:
        (SVGElementInstance):

2013-01-24  Keishi Hattori  <keishi@webkit.org>

        Adjust design of the Calendar Picker
        https://bugs.webkit.org/show_bug.cgi?id=107507

        Reviewed by Kent Tamura.

        Covered by existing calendar picker appearance tests.

        * Resources/pagepopups/calendarPicker.css:
        (body): Use bigger font.
        (.calendar-picker):
        (.month-selector):
        (.month-selector svg):
        (.month-selector-popup-contents):
        (.year-month-button-left .year-month-button):
        (.year-month-button-right .year-month-button):
        (.days-area-container):
        (.days-area):
        (.day-label):
        (.day):
        (.available):
        (.month-mode .day):
        (.today-clear-area .today-button):
        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker.prototype.fixWindowSize): Calculate the width of today-clear-area too.
        (YearMonthController.prototype.attachTo):
        (YearMonthController.prototype._attachLeftButtonsTo): Use svg icons inside buttons.
        (YearMonthController.prototype._attachRightButtonsTo): Use svg icons inside buttons.
        (YearMonthController.prototype.setMonth):
        (YearMonthController.prototype._handleButtonClick):
        * Resources/pagepopups/calendarPickerMac.css: Removed.
        * Resources/pagepopups/chromium/calendarPickerChromium.css: Added.
        (.year-month-button):
        (.days-area-container:focus):
        * Resources/pagepopups/chromium/pickerCommonChromium.css: Added. Use Chrome-style buttons.
        (button):
        (:enabled:hover:-webkit-any(button, input[type='button'])):
        (:enabled:active:-webkit-any(button, input[type='button'])):
        (:disabled:-webkit-any(button, input[type='button'])):
        (:enabled:focus:-webkit-any(button, input[type='button'])):
        * WebCore.gyp/WebCore.gyp: Include pickerCommonChromium.css and calendarPickerChromium.css.
        * rendering/RenderTheme.cpp: Remove extraCalendarPickerStyleSheet
        * rendering/RenderTheme.h: Ditto.
        * rendering/RenderThemeChromiumMac.h: Ditto.
        * rendering/RenderThemeChromiumMac.mm: Ditto.
        (WebCore):

2013-01-24  Kentaro Hara  <haraken@chromium.org>

        Unreviewed build fix.

        * page/History.h:
        (WebCore):

2013-01-24  Beth Dakin  <bdakin@apple.com>

        Fixed elements sometimes marked out-of-view if you have rubber-banded too far, 
        affects flickr.com
        https://bugs.webkit.org/show_bug.cgi?id=107882
        -and corresponding-
        <rdar://problem/13065897>

        Reviewed by Simon Fraser.

        It is possible to rubber band so far that our fixed object appears to be outside 
        of the visibleContentArea(). We should use the 
        viewportConstrainedVisibleContentRect() since that is what fixed objects are 
        positioned based on anyway. 

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2013-01-24  Kentaro Hara  <haraken@chromium.org>

        Unreviewed build fix.

        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::state):

2013-01-24  Julien Brianceau  <jbrianceau@nds.com>

        NPN_InitializeVariantWithStringCopy is wrong for platforms returning NULL from malloc(0)
        https://bugs.webkit.org/show_bug.cgi?id=96272

        Reviewed by Alexey Proskuryakov.

        No new tests. This is platform dependent.

        * bridge/npruntime.cpp:
        (NPN_InitializeVariantWithStringCopy):

2013-01-24  Christian Biesinger  <cbiesinger@chromium.org>

        resize property doesn't work on iframes
        https://bugs.webkit.org/show_bug.cgi?id=9221

        Reviewed by Eric Seidel.

        Test: fast/css/resize-corner-tracking-transformed-iframe.html
        and fast/css/resize-corner-tracking.html

        * rendering/RenderIFrame.cpp:
        (WebCore::RenderIFrame::requiresLayer):
        (WebCore):
        * rendering/RenderIFrame.h:
        <iframe>s need a layer to be resizable, so make requiresLayer return
        true if the css property is set.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::canResize):
        (WebCore):
        (WebCore::RenderLayer::resize):
        (WebCore::RenderLayer::positionOverflowControls):
        (WebCore::RenderLayer::isPointInResizeControl):
        (WebCore::RenderLayer::hitTestOverflowControls):
        (WebCore::RenderLayer::hitTestLayer):
        * rendering/RenderLayer.h:
        (RenderLayer):
        Add a new canResize() function and use it instead of hasOverflowClip()
        to check whether resizing should be allowed (there's still the
        additional check of style()->resize() != RESIZE_NONE, of course)

        Make hitTestLayer return |this| when the point is inside the
        resizer rectangle.

        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint):
        Call layer()->paintResizer() to actually paint the resizer.

2013-01-24  Kentaro Hara  <haraken@chromium.org>

        Regression(r107058): Use-after-free in SerializedScriptValue::deserialize
        https://bugs.webkit.org/show_bug.cgi?id=107792

        Reviewed by Abhishek Arya.

        Imagine the following call path:

        (1) history.state is accessed.
        (2) V8History::stateAccessorGetter() calls History::state(), which calls
        HistoryItem::stateObject().
        (3) HistoryItem holds m_stateObject as RefPtr<SerializedScriptValue>,
        but HistoryItem::stateObject() returns SerializedScriptValue*.
        (4) V8History::stateAccessorGetter calls SerializedScriptValue::deserialize()
        for the SerializedScriptValue* obtained in (3).
        (5) SerializedScriptValue::deserialize() can call history.replaceState()
        in its deserialization process (See the test case in the Chromium bug).
        (6) history.replaceState() replaces HistoryItem::m_stateObject.
        This replacement destructs the original HistoryItem::m_stateObject.
        (7) The current deserialization process can crash due to the premature destruction.

        To avoid the problem, we have to pass PassRefPtr<SerializedScriptValue> around
        instead of SerializedScriptValue*.

        Test: fast/history/replacestate-nocrash.html

        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::stateAccessorGetter):
        * history/HistoryItem.h:
        (WebCore):
        (WebCore::HistoryItem::stateObject):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadInSameDocument):
        * loader/FrameLoader.h:
        * page/History.cpp:
        (WebCore::History::state):
        (WebCore::History::stateInternal):
        * page/History.h:
        (History):

2013-01-24  Beth Dakin  <bdakin@apple.com>

        Some formerly-fixed objects scroll as if they are still fixed
        https://bugs.webkit.org/show_bug.cgi?id=107869

        Reviewed by Simon Fraser.

        Removing nodes need to mark m_hasChangedProperties on the state tree, otherwise 
        they will not be committed to the scrolling tree until something else changes, 
        which could actually take a while. During the delay, the scrolling tree will 
        continue to move around the formerly-fixed object as long as it still has a layer.
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::didRemoveNode):

2013-01-24  Arko Saha  <arko@motorola.com>

        Microdata: itemtype attribute must update correctly on adding or removing tokens
        https://bugs.webkit.org/show_bug.cgi?id=106616

        Reviewed by Ryosuke Niwa.

        Added a new class MicroDataAttributeTokenList, it overrides setValue() method of
        DOMSettableTokenList. setValue() is responsible to set the new attribute value for
        a given element.

        Tests: fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
               fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
               fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Node.cpp:
        (WebCore::Node::itemProp):
        (WebCore::Node::setItemProp):
        (WebCore::Node::itemRef):
        (WebCore::Node::setItemRef):
        (WebCore::Node::itemType):
        (WebCore::Node::setItemType):
        * dom/NodeRareData.h:
        (WebCore::NodeMicroDataTokenLists::itemProp):
        (WebCore::NodeMicroDataTokenLists::itemRef):
        (WebCore::NodeMicroDataTokenLists::itemType):
        (NodeMicroDataTokenLists):
        * html/DOMSettableTokenList.h: Made the constructor as protected, so that we can
        override setValue() method.
        (DOMSettableTokenList):
        * html/MicroDataAttributeTokenList.cpp: Added.
        (WebCore):
        (WebCore::MicroDataAttributeTokenList::MicroDataAttributeTokenList):
        (WebCore::MicroDataAttributeTokenList::setValueInternal):
        (WebCore::MicroDataAttributeTokenList::setValue): It calls
        DOMSettableTokenList::setValue to set internal tokens and value.
        * html/MicroDataAttributeTokenList.h: Added.
        (WebCore):
        (MicroDataAttributeTokenList):
        (WebCore::MicroDataAttributeTokenList::create):

2013-01-24  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove IDBUpgradeNeededEvent, merge with IDBVersionChangeEvent
        https://bugs.webkit.org/show_bug.cgi?id=107754

        Reviewed by Tony Chang.

        The IndexedDB spec calls deleteDatabase() to fire a "blocked" event with the
        IDBVersionChangeEvent interface which we were doing, but with an older interface - just
        a "version" property. We were already firing an event on "versionchange" with the new
        "oldVersion" and "newVersion" properties, but with an IDBUpgradeNeededEvent interface that
        doesn't exist in the spec. This patch merges the event types to match the spec, including
        that the newVersion property is null when deleting.

        Test: storage/indexeddb/events.html
              storage/indexeddb/deletedatabase-*.html

        * CMakeLists.txt: Remove references to deleted files.
        * GNUmakefile.list.am: Ditto.
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::onVersionChange): Generate IDBVersionChangeEvent.
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onBlocked): Ditto.
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): Ditto.
        * Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Removed.
        * Modules/indexeddb/IDBUpgradeNeededEvent.h: Removed.
        * Modules/indexeddb/IDBUpgradeNeededEvent.idl: Removed.
        * Modules/indexeddb/IDBVersionChangeEvent.cpp:
        (WebCore::IDBVersionChangeEvent::create): Take IDBAny's as old/new versions
        may be integers, strings (for legacy databases), or null (when deleting).
        (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
        * Modules/indexeddb/IDBVersionChangeEvent.h:
        (IDBVersionChangeEvent): Remove version property.
        (WebCore::IDBVersionChangeEvent::oldVersion): Added new property.
        (WebCore::IDBVersionChangeEvent::newVersion): Added new property.
        * Modules/indexeddb/IDBVersionChangeEvent.idl: Updated properties.
        * WebCore.gypi: Remove references to deleted files.
        * dom/EventNames.in: Ditto.

2013-01-24  Pratik Solanki  <psolanki@apple.com>

        CertificateChain functions in ResourceResponse should be inside proper ifdefs
        https://bugs.webkit.org/show_bug.cgi?id=107865

        Reviewed by Brady Eidson.

        Move ResourceResponse::setCertificateChain() and ResourceResponse::certificateChain()
        be under the same ifdefs that they are declared in.

        No new tests because no change in functionality.

        * platform/network/mac/ResourceResponseMac.mm:

2013-01-24  Leo Yang  <leoyang@rim.com>

        [BlackBerry] Display HTML5 Appcache manifest
        https://bugs.webkit.org/show_bug.cgi?id=107858

        Reviewed by Yong Li.
        Reviewed internally by Jeff Rogers.

        MIME alias no new tests.

        * platform/MIMETypeRegistry.cpp:
        (WebCore::mimeTypeAssociationMap):

2013-01-24  Mike West  <mkwst@chromium.org>

        Web Inspector: "XHR loaded!" messages should be DebugMessageLevel.
        https://bugs.webkit.org/show_bug.cgi?id=107817

        Reviewed by Pavel Feldman.

        The 'XHR finished loading:' message is currently sent at
        LogMessageLevel. Upon reflection, the only messages that should be
        sent at that level are messages the developer generates herself via
        'console.*' calls. This message is better categorized as 'debug'.

        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
            Change the message to DebugMessageLevel.

2013-01-24  James Robinson  <jamesr@chromium.org>

        REGRESSION(140571): Crash in ScrollingCoordinator::mainThreadScrollingReasons during Frame::createView
        https://bugs.webkit.org/show_bug.cgi?id=107868

        Reviewed by Beth Dakin.

        When using fixed layout mode, it's possible to update the scrollbar state of the main FrameView before
        it's set on the main frame, which can lead to calling in to ScrollingCoordinator to compute main thread
        scrolling regions when m_page->mainFrame()->view() is 0. In this case, we don't have any main
        thread scrolling reasons and should just return 0.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):

2013-01-24  Martin Robinson  <mrobinson@igalia.com>

        Abstract the logic for appending a UChar32 onto StringBuilder
        https://bugs.webkit.org/show_bug.cgi?id=107505

        Reviewed by Darin Adler.

        * css/CSSOMUtils.cpp:
        (WebCore::serializeCharacter): Use the new StringBuilder append.
        (WebCore::serializeIdentifier): Ditto.
        (WebCore::serializeString): Ditto.
        * html/parser/HTMLEntityParser.cpp:
        (WebCore::HTMLEntityParser::consumeNamedEntity): Ditto.
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::createStringWithMirroredCharacters): Ditto.
        * xml/parser/CharacterReferenceParserInlines.h:
        (WebCore::consumeCharacterReference): Ditto.
        * xml/parser/XMLCharacterReferenceParser.cpp: Remove an older helper
        superseded by StringBuilder::append.

2013-01-24  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to GetTemplate() in v8/*.cpp
        https://bugs.webkit.org/show_bug.cgi?id=107789

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):
        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::retrieveFrameWithGlobalObjectCheck):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toDOMWindow):
        (WebCore::toScriptExecutionContext):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::clearForNavigation):
        * bindings/v8/V8Initializer.cpp:
        (WebCore::findFrame):
        (WebCore::failedAccessCheckCallbackInMainThread):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::controllerForContext):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::eventAccessorGetter):
        (WebCore::V8DOMWindow::eventAccessorSetter):
        (WebCore::V8DOMWindow::toStringCallback):
        (WebCore::toV8):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::createInjectedScriptHostV8Wrapper):
        (WebCore::InjectedScriptManager::createInjectedScript):
        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::V8Location::reloadAccessorGetter):
        (WebCore::V8Location::replaceAccessorGetter):
        (WebCore::V8Location::assignAccessorGetter):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::initMessageEventCallback):

2013-01-24  Emil A Eklund  <eae@chromium.org>

        [svg] Remove unnecessary rounding in SVGRootInlineBox::layoutRootBox
        https://bugs.webkit.org/show_bug.cgi?id=107771

        Reviewed by Levi Weintraub.
        
        SVGRootInlineBox::layoutRootBox rounds the location and size of
        the container to the nearest enclosing integer values. Now that
        layout uses subpixel positioning this is no longer needed and
        results in undesirable rounding. For high-dpi screens in
        particular this is especially noticeable as it is rounded to
        "pixels" which can map to two our more device pixels.

        Test: svg/text/text-rect-precision.html

        * rendering/svg/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBox::layoutRootBox):
        Change from enclosingIntRect to enclosingLayoutRect to align to
        the closest containing LayoutRect now that layout is done using
        subpixel precision.

2013-01-24  Philip Rogers  <pdr@google.com>

        Preserve container size requests across image loads
        https://bugs.webkit.org/show_bug.cgi?id=106733

        Reviewed by Tim Horton.

        Some images, such as SVG with relative dimensions, depend on the renderer's container size.
        r137981 introduced the ability to store pending container size requests that are made
        after the image element lays out but before the image loads. Before this patch, cached
        images could discard these pending container size requests during cache revalidation.

        During a cached image load, two CachedImages exist: the image in cache and a new CachedImage
        that will be used if the cache is stale. Pending container size requests are stored
        on the second cached image which is discarded if a 304 not modified response is received.

        This patch modifies the switchClientsToRevalidatedResource logic to maintain pending
        container size requests. This fixes a bug where cached SVG images would be sized
        incorrectly.

        Test: http/tests/svg/cached-image-sizing.html

        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::switchClientsToRevalidatedResource):

            In this virtual call we special-case images with pending size requests and
            transfer these requests to the revalidating resource. Note that all container size
            requests received before revalidation will be pending because the image has not loaded.
            Therefore, there is no risk of discarding non-pending container size requests.

        (WebCore):
        * loader/cache/CachedImage.h:
        (CachedImage):
        * loader/cache/CachedResource.h:
        (CachedResource):

2013-01-24  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140296.
        http://trac.webkit.org/changeset/140296
        https://bugs.webkit.org/show_bug.cgi?id=107857

        Cause several regresssions (Requested by smfr on #webkit).

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):

2013-01-24  Mark Hahnenberg  <mhahnenberg@apple.com>

        Objective-C API: Rename JSValue.h/APIJSValue.h to JSCJSValue.h/JSValue.h
        https://bugs.webkit.org/show_bug.cgi?id=107327

        Reviewed by Filip Pizlo.

        No new tests.

        We're renaming these two files, so we have to replace the names everywhere.

        * ForwardingHeaders/runtime/JSCJSValue.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSValue.h.
        * ForwardingHeaders/runtime/JSValue.h: Removed.
        * WebCore.vcproj/WebCore.vcproj:
        * bindings/js/JSArrayBufferViewHelper.h:
        * bindings/js/JSCustomXPathNSResolver.h:
        * bindings/js/JSHTMLAllCollectionCustom.cpp:
        * bindings/js/JSIntentConstructor.cpp:
        * bindings/js/JSMessagePortCustom.h:
        * bindings/js/JSNodeFilterCondition.h:
        * bindings/js/JavaScriptCallFrame.cpp:
        * bindings/js/ScriptCallStackFactory.cpp:
        * bindings/js/ScriptValue.h:
        * bindings/js/SerializedScriptValue.h:
        * bindings/objc/WebScriptObjectPrivate.h:
        * bridge/c/c_utility.h:
        * bridge/testbindings.cpp:
        * bridge/testbindings.mm:
        * bridge/testqtbindings.cpp:
        * plugins/PluginView.cpp:
        * plugins/blackberry/PluginViewBlackBerry.cpp:
        * plugins/gtk/PluginViewGtk.cpp:
        * plugins/mac/PluginViewMac.mm:
        * plugins/qt/PluginViewQt.cpp:
        * plugins/win/PluginViewWin.cpp:

2013-01-24  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix for Mac/Lion.

        Protect Lion from the absence of VideoToolbox.h by wrapping in #if
        guards.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

2013-01-24  Anders Carlsson  <andersca@apple.com>

        Add stubbed out StorageNamespaceProxy class
        https://bugs.webkit.org/show_bug.cgi?id=107846

        Reviewed by Sam Weinig.

        Make StorageNamespace.h and StorageArea.h private headers.

        * WebCore.xcodeproj/project.pbxproj:

2013-01-24  Tony Chang  <tony@chromium.org>

        Remove document as a parameter from a few internals methods
        https://bugs.webkit.org/show_bug.cgi?id=107757

        Reviewed by Hajime Morita.

        Remove document as a parameter since there's already one associated with internals.

        No new tests, this refactors some testing code and is covered by
        exisiting tests.

        * testing/Internals.cpp:
        (WebCore::Internals::isPreloaded):
        (WebCore::Internals::createContentElement):
        (WebCore::Internals::absoluteCaretBounds):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-01-24  Mike West  <mkwst@chromium.org>

        Web Inspector: 'console.debug' should generate messages at DebugMessageLevel.
        https://bugs.webkit.org/show_bug.cgi?id=107816

        Reviewed by Pavel Feldman.

        'console.debug' is currently aliased to 'console.log'. Since we now
        render debug-level messages differently to log messages, we should use
        the proper message level for 'console.debug'.

        * page/Console.cpp:
        (WebCore::Console::debug):
            Replace the alias to 'console.log' with message creation at
            DebugMessageLevel.

2013-01-24  Dima Gorbik  <dgorbik@apple.com>

        Implement :past pseudo class for the WebVTT ::cue pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=105482

        Reviewed by Eric Carlson.

        It is good to have a designated pseudo class for this, though same could
        be achieved by using a combination of ::cue and ::cue(:future).
        Tests also check that nested timestamps work properly.

        Test: media/track/track-css-matching-timestamps.html

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::pseudoId):
        (WebCore::nameToPseudoTypeMap):
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):

2013-01-23  Jer Noble  <jer.noble@apple.com>

        Mac: Avoid using k32BGRAPixelFormat on certain platforms.
        https://bugs.webkit.org/show_bug.cgi?id=107732

        Reviewed by Eric Carlson.

        Using a AVPlayerItemVideoOutput to generate ARGB pixel buffers is a potential performance
        hit, as the AVPlayerItemVideoOutput will send YUV buffers through a VTPixeBufferTransferSession
        to convert them to ARGB regardless of whether or not a given buffer will be used. Instead,
        ask the AVPlayerItemVideoOutput for pixel buffers in the decoder's native pixel format and use
        the VTPixelBufferTransferSession to convert to ARGB only those pixel buffers which were actually
        requested.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Ask for the decoder's native
            pixel format.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer): Lazily create a VTPixelTransferSession
            and convert output pixel buffers to k32BGRAPixelFormat.

2013-01-24  Christian Biesinger  <cbiesinger@chromium.org>

        Convert RenderFullScreen to use the non-deprecated flexbox
        https://bugs.webkit.org/show_bug.cgi?id=107746

        Reviewed by Ojan Vafai.

        Tests: covered by existing tests in fullscreen/.

        * rendering/RenderFullScreen.h:
        * rendering/RenderFullScreen.cpp:
        (RenderFullScreen::RenderFullScreen):
        (RenderFullScreen::willBeDestroyed):
        Inherit from RenderFlexibleBox

        (createFullScreenStyle):
        Use the new-style CSS properties (justify-content, etc)

        * css/fullscreen.css:
        (video:-webkit-full-screen, audio:-webkit-full-screen):
        * css/fullscreenQuickTime.css:
        (video:-webkit-full-screen::-webkit-media-controls-panel):
        (video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
        (video:-webkit-full-screen::-webkit-media-controls-return-to-realtime-button):
        (video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
        * css/mediaControlsBlackBerryFullscreen.css:
        (video:-webkit-full-screen::-webkit-media-controls-panel):
        (video:-webkit-full-screen::-webkit-media-controls-button-group-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-play-button):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-fullscreen-button):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-divider):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container):
        (video:-webkit-full-screen::-webkit-media-controls-play-button-container):
        (video:-webkit-full-screen::-webkit-media-controls-placeholder):
        * css/mediaControlsQtFullscreen.css:
        (video::-webkit-media-controls-panel):
        (video::-webkit-media-controls-play-button):
        Update fullscreen-related CSS to use the new flexbox

2013-01-23  Jer Noble  <jer.noble@apple.com>

        Mac: Video appears in wrong place during pinch operations
        https://bugs.webkit.org/show_bug.cgi?id=107730

        Reviewed by Eric Carlson.

        Send the correct input and output rects, post translation and scaling,
        to the CIContext for drawing.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):

2013-01-24  Max Vujovic  <mvujovic@adobe.com>

        [CSS Filters] CSS opacity property clips filter outsets
        https://bugs.webkit.org/show_bug.cgi?id=106549

        Reviewed by Dirk Schulze.

        Expand the transparencyClipBox for filter outsets and pass the filter output rect instead of
        the input rect to beginTransparencyLayers for clipping. Details below.

        Test: css3/filters/css-opacity-with-drop-shadow.html

        * rendering/RenderLayer.cpp:
        (WebCore):
        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
            Replace filter outset calcuation with a call to expandRectForFilterOutsets.
        (WebCore::expandRectForFilterOutsets):
            New method to factor out repeated filter outset calculation code.
        (WebCore::transparencyClipBox):
            After expanding the clip rect for descendants and reflection, expand it for filter
            outsets, so they don't get clipped when we begin a transparency layer.
        (WebCore::RenderLayer::paintLayerContents):
            Pass paintingInfo.paintDirtyRect instead of localPaintingInfo.paintDirtyRect to
            beginTransparencyLayers for clipping. localPaintingInfo.paintDirtyRect (aka the filter
            input rect) does not contain filter outsets, so they would get clipped. Now, we pass
            paintingInfo.paintDirtyRect (the filter output rect), which includes the filter outsets.
        (WebCore::RenderLayer::calculateLayerBounds):
            Replace filter outset calcuation with a call to expandRectForFilterOutsets.
        * rendering/RenderLayer.h:
        (RenderLayer):

2013-01-24  Ryosuke Niwa  <rniwa@webkit.org>

        Fix a typo after r139838.

        * dom/NodeRareData.h:
        (NodeRareData):

2013-01-24  Ryosuke Niwa  <rniwa@webkit.org>

        Abandoned Memory: SVGFontElement and Corresponding SVGDocument Never Deconstructed
        https://bugs.webkit.org/show_bug.cgi?id=66438

        Reviewed by Dirk Schulze.

        The memory leak was caused by SVGFontFaceElement storing its own parent in a RefPtr.

        Fixed the bug by storing a raw pointer instead, and clearing the pointer in removedFrom
        when the node detached from the document. Also added several sanity check assertions.

        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):
        (WebCore::SVGFontFaceElement::associatedFontElement):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        (WebCore::SVGFontFaceElement::insertedInto):
        (WebCore::SVGFontFaceElement::removedFrom):
        * svg/SVGFontFaceElement.h:
        (SVGFontFaceElement):

2013-01-22  Robert Hogan  <robert@webkit.org>

        Inline Containing Only Collapsed Whitespace Not Getting a Linebox
        https://bugs.webkit.org/show_bug.cgi?id=31397

        Reviewed by David Hyatt.

        Treat inlines containing only collapsed whitespace as empty. This allows them
        to get a linebox.

        Test: fast/inline/inline-containing-collapsed-whitespace-treated-as-empty.html

        * dom/Position.cpp:
        (WebCore::boundingBoxLogicalHeight):
        (WebCore):
        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
        * rendering/InlineIterator.h:
        (WebCore::isEmptyInline):
        (WebCore):
        (WebCore::bidiNextShared):
        (WebCore::bidiFirstSkippingEmptyInlines):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::alwaysRequiresLineBox):
        (WebCore::requiresLineBox):
        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
        * rendering/RenderText.cpp:
        * rendering/RenderText.h:
        (RenderText):

2013-01-24  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: expand more chunks in DTE
        https://bugs.webkit.org/show_bug.cgi?id=107698

        Reviewed by Pavel Feldman.

        Mock DefaultTextEditor visible area as if it is slightly larger than real one and
        do all chunk expandings and repaints based on this new area.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorChunkedPanel.prototype.findVisibleChunks):

2013-01-24  Victor Jaquez  <vjaquez@igalia.com>

        [GStreamer] Implement setPreservesPitch()
        https://bugs.webkit.org/show_bug.cgi?id=31155

        Enables audio pitch preservation by using the scaletempo GStreamer
        element when required by the MediaPlayer.

        Reviewed by Philippe Normand.

        No new tests, but a layout test shall be implemented at some point
        using WebAudio API.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::setPreservesPitch):
        (WebCore):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):

2013-01-24  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        Removing deleted files from WebCore/Target.pri after r140399.
        https://bugs.webkit.org/show_bug.cgi?id=107815

        Reviewed by Csaba Osztrogonác.

        * Target.pri:

2013-01-24  Martin Robinson  <mrobinson@igalia.com>

        Try to fix the Qt Windows build

        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::decodeNamedEntity): Use a reinterpret_cast to const QChar* like StringQt.cpp.

2013-01-24  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] REGRESSION: stack traces in the replay log are gone
        https://bugs.webkit.org/show_bug.cgi?id=107805

        Reviewed by Pavel Feldman.

        The V8's Error.prepareStackTrace is now called from the Error.captureStackTrace
        function instead of the "stack" getter function.

        Test: inspector/profiler/canvas2d/canvas-stack-trace.html

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2013-01-23  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] UI: add a selector to capture a single canvas frame vs consecutive frames
        https://bugs.webkit.org/show_bug.cgi?id=107688

        Reviewed by Pavel Feldman.

        Allow capturing several canvas frames in a row.

        * English.lproj/localizedStrings.js:
        * inspector/InjectedScriptCanvasModule.cpp:
        (WebCore::InjectedScriptCanvasModule::traceLog):
        * inspector/InjectedScriptCanvasModule.h:
        (InjectedScriptCanvasModule):
        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::getTraceLog):
        * inspector/InspectorCanvasAgent.h:
        (InspectorCanvasAgent):
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
        (WebInspector.CanvasProfileView.prototype._requestTraceLog):
        (WebInspector.CanvasProfileType):
        (WebInspector.CanvasProfileType.prototype.get statusBarItems):
        (WebInspector.CanvasProfileType.prototype.get buttonTooltip):
        (WebInspector.CanvasProfileType.prototype.buttonClicked):
        (WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
        (WebInspector.CanvasProfileType.prototype._startFrameCapturing):
        (WebInspector.CanvasProfileType.prototype._stopFrameCapturing.didStopCapturing):
        (WebInspector.CanvasProfileType.prototype._stopFrameCapturing):
        (WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
        (WebInspector.CanvasProfileType.prototype.setRecordingProfile):
        (WebInspector.CanvasProfileType.prototype._isSingleFrameMode):
        (WebInspector.CanvasProfileHeader):
        (WebInspector.CanvasProfileHeader.prototype._updateCapturingStatus):
        (WebInspector.CanvasProfileHeader.prototype._requestCapturingStatus):
        * inspector/front-end/ProfileLauncherView.js:
        (WebInspector.ProfileLauncherView):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfileType.prototype.get statusBarItems):
        (WebInspector.ProfilesPanel):
        (WebInspector.ProfilesPanel.prototype.get statusBarItems):
        (WebInspector.ProfilesPanel.prototype._onProfileTypeSelected):
        (WebInspector.ProfilesPanel.prototype._reset):
        (WebInspector.ProfilesPanel.prototype._showLauncherView):
        (WebInspector.ProfilesPanel.prototype.showProfile):
        (WebInspector.ProfilesPanel.prototype._updateInterface):
        (WebInspector.ProfilesPanel.prototype._resize):

2013-01-24  Andreas Kling  <akling@apple.com>

        Add CSSSelectorList::isValid().
        <http://webkit.org/b/107809>

        Reviewed by Antti Koivisto.

        Add an isValid() method to CSSSelectorList and use that where applicable instead of checking
        if first() is a null pointer.

        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::setSelectorText):
        * css/CSSSelectorList.cpp:
        * css/CSSSelectorList.h:
        (WebCore::CSSSelectorList::isValid):
        (WebCore::CSSSelectorList::first):
        (CSSSelectorList):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::validateSelect):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::checkStyleRuleSelector):

2013-01-24  Kai Koehne  <kai.koehne@digia.com>

        [Qt] Webkit debug build links against release binaries of ANGLE libEGL, libGLESv2
        https://bugs.webkit.org/show_bug.cgi?id=106217

        Reviewed by Jocelyn Turcotte.

        Use libEGLd, libEGLSv2d if qtbase was compiled with ANGLE.

        * WebCore.pri: Mirror logic of qtbase\mkspecs\features\win32\opengl.prf

2013-01-24  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Unreviewed build fix.

        Do not include the header file WebKitDOMPerformanceEntryList.h in
        the build sources because we do not want the DOM bindings
        generator to include it in webkitdomdefes.h twice.

        * bindings/gobject/GNUmakefile.am:

2013-01-24  Julien BRIANCEAU   <jbrianceau@nds.com>

        Fix Qt build (KO since r140610), typo error for QString::fromUtf16 function.
        https://bugs.webkit.org/show_bug.cgi?id=107803

        Reviewed by Andreas Kling.

        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::decodeNamedEntity):

2013-01-24  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: breakpoints are not restored upon reload for scripts with script mapping.
        https://bugs.webkit.org/show_bug.cgi?id=107799

        The problem is that source mapping is set after UISourceCode gets into the workspace.
        Breakpoint manager will now only restore breakpoints upon setting the source maps.

        Reviewed by Alexander Pavlov.

        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeMappingChanged):
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
        (WebInspector.CompilerScriptMapping.prototype.get addScript):

2013-01-24  Kent Tamura  <tkent@chromium.org>

        Refactoring: Use AtomicString for an InputType::create argument
        https://bugs.webkit.org/show_bug.cgi?id=107791

        Reviewed by Kentaro Hara.

        A string passed to InputType::create is a 'type' attribute value, which
        is an AtomicString. Also, InputTypeFactoryMap is created with members of
        InputTypeName, which are AtomicStrings. We had better use AtomicStrings
        for them.

        No new tests. This is just a refactoring.

        * html/InputType.cpp:
        Change the key type of InputTypeFactoryMap from String to AtomicString.
        (WebCore::InputType::create):
        Change an argument type from const String& to const AtomicString&.
        * html/InputType.h:
        (InputType): Ditto.

2013-01-24  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Build fix.

        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::isDOMWrapper):

2013-01-24  Andreas Kling  <akling@apple.com>

        AX: Fix the debug build after r140658. (Constructor initializer order.)

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):

2013-01-24  Hajime Morrita  <morrita@google.com>

        There are a few of wrong removeAllChildren() call
        https://bugs.webkit.org/show_bug.cgi?id=107790

        Reviewed by Ryosuke Niwa.

        removeAllChildren() is designed for trashing deleting children out.
        It doesn't detach() children and could have possible leak.
        This change replaces such removeAllChildren() usage with safer removeChildren().

        No new tests. Covered by existing tests.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseAttribute):
        * html/InputType.cpp:
        (WebCore::InputType::destroyShadowSubtree):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processEndTag):

2013-01-24  Dominic Mazzoni  <dmazzoni@google.com>

        AX: should init an AXObject only after AXObjectCache has added it
        https://bugs.webkit.org/show_bug.cgi?id=107533

        Reviewed by Chris Fleizach.

        Initialize each AXObject after the AXObjectCache has
        finished adding it to its hash maps, so that it's
        impossible for initialization of an AXObject to result in
        exploring the tree and creating another AXObject instance
        that points to the same renderer / node.

        Test: accessibility/duplicate-axrenderobject-crash.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        * accessibility/AccessibilityARIAGrid.cpp:
        (WebCore::AccessibilityARIAGrid::create):
        * accessibility/AccessibilityARIAGridCell.cpp:
        (WebCore::AccessibilityARIAGridCell::create):
        * accessibility/AccessibilityARIAGridRow.cpp:
        (WebCore::AccessibilityARIAGridRow::create):
        * accessibility/AccessibilityList.cpp:
        (WebCore::AccessibilityList::create):
        * accessibility/AccessibilityListBox.cpp:
        (WebCore::AccessibilityListBox::create):
        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaControl::create):
        (WebCore::AccessibilityMediaControlsContainer::create):
        (WebCore::AccessibilityMediaTimeline::create):
        (WebCore::AccessibilityMediaTimeDisplay::create):
        * accessibility/AccessibilityMenuList.cpp:
        (WebCore::AccessibilityMenuList::create):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::create):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::init):
        (AccessibilityObject):
        * accessibility/AccessibilityProgressIndicator.cpp:
        (WebCore::AccessibilityProgressIndicator::create):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::create):
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
            assert that the object has been initialized
        * accessibility/AccessibilitySVGRoot.cpp:
        (WebCore::AccessibilitySVGRoot::create):
        * accessibility/AccessibilitySlider.cpp:
        (WebCore::AccessibilitySlider::create):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::create):
        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::create):
        * accessibility/AccessibilityTableRow.cpp:
        (WebCore::AccessibilityTableRow::create):

2013-01-23  Kentaro Hara  <haraken@chromium.org>

        Implement MouseEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=107630

        Reviewed by Adam Barth.

        Spec: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm

        The MouseEvent constructor should be implemented under a DOM4_EVENTS_CONSTRUCTOR flag.
        This significantly simplifies JavaScript code to construct a MouseEvent.

        Before:
          event = document.createEvent("MouseEvents");
          event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

        After:
          event = new MouseEvent("click");

        Test: fast/events/constructors/mouse-event-constructor.html

        * bindings/scripts/CodeGenerator.pm:
        (IsSubType):
        (IsInheritExtendedAttribute):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore):
        (WebCore::V8Float64Array::createWrapper):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore):
        (WebCore::V8TestActiveDOMObject::createWrapper):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore):
        (WebCore::V8TestCustomNamedGetter::createWrapper):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore):
        (WebCore::V8TestEventConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore):
        (WebCore::V8TestEventTarget::toEventTarget):
        (WebCore::V8TestEventTarget::createWrapper):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (V8TestEventTarget):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore):
        (WebCore::V8TestException::createWrapper):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore):
        (WebCore::V8TestInterface::toActiveDOMObject):
        (WebCore::V8TestInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore):
        (WebCore::V8TestMediaQueryListListener::createWrapper):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore):
        (WebCore::V8TestNamedConstructor::toActiveDOMObject):
        (WebCore::V8TestNamedConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore):
        (WebCore::V8TestNode::toEventTarget):
        (WebCore::V8TestNode::createWrapper):
        * bindings/scripts/test/V8/V8TestNode.h:
        (V8TestNode):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore):
        (WebCore::V8TestObj::createWrapper):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore):
        (WebCore::V8TestOverloadedConstructors::createWrapper):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore):
        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):
        (WebCore):
        * bindings/v8/Dictionary.h:
        (Dictionary):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::npObjectTypeInfo):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::isDOMWrapper):
        (WebCore):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::toEventTarget):
        (WrapperTypeInfo):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventInit::MouseEventInit):
        (WebCore):
        (WebCore::MouseEvent::create):
        (WebCore::MouseEvent::MouseEvent):
        * dom/MouseEvent.h:
        (MouseEventInit):
        (WebCore):
        (MouseEvent):
        (WebCore::MouseEvent::create):
        (WebCore::MouseEvent::button):
        (WebCore::MouseEvent::buttonDown):
        (WebCore::MouseEvent::relatedTarget):
        (WebCore::MouseEvent::setRelatedTarget):
        (WebCore::MouseEvent::clipboard):
        (WebCore::MouseEvent::dataTransfer):
        * dom/MouseEvent.idl:

2013-01-23  Kent Tamura  <tkent@chromium.org>

        Add form-related instrumentations, and support 33+ features in FeatureObserver
        https://bugs.webkit.org/show_bug.cgi?id=107770

        Reviewed by Kentaro Hara.

        No new tests. This doesn't make behavior changes.

        * page/FeatureObserver.h:
        - Add form-related features.
        - Add a Document* version of observe().
        - Use BitVector to represent features to support 33+ features.
        (WebCore::FeatureObserver::didObserve):
        (FeatureObserver):
        * page/FeatureObserver.cpp:
        (WebCore::FeatureObserver::FeatureObserver):
        (WebCore::FeatureObserver::~FeatureObserver):
        (WebCore::FeatureObserver::observe):

        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::create): Calls FeatureObserver::observe.
        * html/DateInputType.cpp:
        (WebCore::DateInputType::create): Ditto.
        * html/DateTimeInputType.cpp:
        (WebCore::DateTimeInputType::create): Ditto.
        * html/DateTimeLocalInputType.cpp:
        (WebCore::DateTimeLocalInputType::create): Ditto.
        * html/EmailInputType.cpp:
        (WebCore::EmailInputType::create): Ditto.
        * html/HTMLDataListElement.cpp:
        (WebCore::HTMLDataListElement::create): Ditto.
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::parseAttribute): Ditto.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseAttribute): Ditto.
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::parseAttribute): Ditto.
        * html/InputType.cpp:
        (WebCore::InputType::create):
        Record type=datetime and type=week even if these types are not enabled.
        * html/MonthInputType.cpp:
        (WebCore::MonthInputType::create): Calls FeatureObserver::observe.
        * html/NumberInputType.cpp:
        (WebCore::NumberInputType::create): Ditto.
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::create): Ditto.
        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::create): Ditto.
        * html/TelephoneInputType.cpp:
        (WebCore::TelephoneInputType::create): Ditto.
        * html/TimeInputType.cpp:
        (WebCore::TimeInputType::create): Ditto.
        * html/URLInputType.cpp:
        (WebCore::URLInputType::create): Ditto.
        * html/WeekInputType.cpp:
        (WebCore::WeekInputType::create): Ditto.

2013-01-23  Ken Kania  <kkania@chromium.org>

        [Inspector] Add events for tracking page loads and scheduled navigations.
        https://bugs.webkit.org/show_bug.cgi?id=104168

        Reviewed by Pavel Feldman.

        These events are needed for clients who need to be aware of when a page is
        navigating or about to navigate. Some clients may wish to prevent interaction
        with the page during this time. Two of the new events track loading start and
        stop, as measured by the ProgressTracker. The other two events track when a
        page has a new scheduled navigation and when it no longer has a scheduled
        navigation. These latter two events won't allow the client to determine if
        a load is going to happen in all circumstances, but is sufficient for many cases.
        Make sure we hold a reference to the frame in NavigationScheduler::timerFired
        in case the redirect causes the frame to be detached.

        Also, minor update to InspectorInputAgent::dispatchMouseEvent to reorder params
        to match dispatchKeyEvent.

        Tests: inspector-protocol/page/frameScheduledNavigation.html
               inspector-protocol/page/frameStartedLoading.html

        * inspector/Inspector.json:
        * inspector/InspectorInputAgent.cpp:
        (WebCore::InspectorInputAgent::dispatchMouseEvent):
        * inspector/InspectorInputAgent.h:
        (InspectorInputAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
        (WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
        (WebCore::InspectorInstrumentation::frameScheduledNavigationImpl):
        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigationImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::frameStartedLoading):
        (WebCore):
        (WebCore::InspectorInstrumentation::frameStoppedLoading):
        (WebCore::InspectorInstrumentation::frameScheduledNavigation):
        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::frameStartedLoading):
        (WebCore):
        (WebCore::InspectorPageAgent::frameStoppedLoading):
        (WebCore::InspectorPageAgent::frameScheduledNavigation):
        (WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.PageDispatcher.prototype.frameDetached):
        (WebInspector.PageDispatcher.prototype.frameStartedLoading):
        (WebInspector.PageDispatcher.prototype.frameStoppedLoading):
        (WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
        (WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
        * loader/NavigationScheduler.cpp:
        (WebCore::NavigationScheduler::clear):
        (WebCore::NavigationScheduler::timerFired):
        (WebCore::NavigationScheduler::startTimer):
        (WebCore::NavigationScheduler::cancel):
        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::progressStarted):
        (WebCore::ProgressTracker::finalProgressComplete):

2013-01-23  Simon Fraser  <simon.fraser@apple.com>

        Avoid creating background layers on pages with a fixed background, but no image
        https://bugs.webkit.org/show_bug.cgi?id=107783
        <rdar://problem/13074450>

        Reviewed by Beth Dakin.
        
        http://www.nme.com has background-attachment: fixed on the <body>, but
        not background image. In that case there's no point making a layer
        for the fixed root background.

        Test: platform/mac/tiled-drawing/fixed-background/fixed-background-no-image.html

        * rendering/style/RenderStyle.cpp:
        (WebCore::allLayersAreFixed): Check to see if we have an image, as well
        as fixed attachment.

2013-01-23  Wei Jia  <wjia@chromium.org>

        Enable autoplay when <video>'s src is from media stream
        https://bugs.webkit.org/show_bug.cgi?id=105224

        Reviewed by Eric Carlson.

        Enable autoplay when <video>'s src is from media stream. This would avoid requesting multiple gestures when <video> is used for WebRTC.
        The test is done by modifying platform/chromium/media/video-capture-preview.html.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadResource):

2013-01-23  Roger Fong  <roger_fong@apple.com>

        Remove ForwardingHeaders/wtf from WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=107723

        The folders are empty, nothings actually being copied over anymore from the ForwardingHeaders/wtf folder.

        Reviewed by Benjamin Poulain.

        * ForwardingHeaders/wtf: Removed.
        * ForwardingHeaders/wtf/dtoa: Removed.
        * ForwardingHeaders/wtf/text: Removed.
        * ForwardingHeaders/wtf/unicode: Removed.
        * ForwardingHeaders/wtf/unicode/icu: Removed.
        * ForwardingHeaders/wtf/unicode/wince: Removed.
        * ForwardingHeaders/wtf/url: Removed.
        * WebCore.vcproj/copyForwardingHeaders.cmd:

2013-01-23  Hayato Ito  <hayato@chromium.org>

        Group parameters (firstRuleIndex and lastRuleIndex) into a parameter object, RuleRange.
        https://bugs.webkit.org/show_bug.cgi?id=107095

        Reviewed by Darin Adler.

        This is a continued effort after r139817.

        Factoring, no change in behavior.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::collectMatchingRulesForRegion):
        (WebCore::StyleResolver::matchScopedAuthorRules):
        (WebCore::StyleResolver::matchHostRules):
        (WebCore::StyleResolver::matchAuthorRules):
        (WebCore::StyleResolver::matchUserRules):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::RuleRange::RuleRange):
        (RuleRange): Newly introduced to group parameters.
        (StyleResolver):
        (WebCore::StyleResolver::MatchRanges::UARuleRange):
        (WebCore::StyleResolver::MatchRanges::authorRuleRange):
        (WebCore::StyleResolver::MatchRanges::userRuleRange):

2013-01-23  Luke Macpherson   <macpherson@chromium.org>

        Support variables inside -webkit-box-reflect CSS property.
        https://bugs.webkit.org/show_bug.cgi?id=106856

        Reviewed by Tony Chang.

        The primary change is to make the direction parameter a CSSPrimitiveValue style ident,
        so that it can also be a variable reference.

        Covered by existing LayoutTests/compositing/reflections/ tests.
        Added Test: fast/css/variables/var-inside-box-reflect.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForReflection):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseReflect):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore):
        (WebCore::CSSPrimitiveValue::operator CSSReflectionDirection):
        (WebCore::CSSPrimitiveValue::convertToLength):
        * css/CSSReflectValue.cpp:
        (WebCore::CSSReflectValue::customCssText):
        Use String addition operator instead of StringBuilder.
        (WebCore):
        (WebCore::CSSReflectValue::customSerializeResolvingVariables):
        Use String addition operator instead of StringBuilder.
        * css/CSSReflectValue.h:
        (WebCore::CSSReflectValue::create):
        (WebCore::CSSReflectValue::direction):
        (CSSReflectValue):
        (WebCore::CSSReflectValue::CSSReflectValue):
        * css/CSSValue.cpp:
        (WebCore::CSSValue::serializeResolvingVariables):
        * css/StyleResolver.cpp:
        (WebCore::hasVariableReference):
        (WebCore::StyleResolver::applyProperty):

2013-01-23  Abhishek Arya  <inferno@chromium.org>

        Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad casts in rendering
        https://bugs.webkit.org/show_bug.cgi?id=107743

        Reviewed by Eric Seidel.

        * rendering/InlineFlowBox.h:
        (WebCore::toInlineFlowBox):
        * rendering/RenderBR.h:
        (WebCore::toRenderBR):
        * rendering/RenderBlock.h:
        (WebCore::toRenderBlock):
        * rendering/RenderBox.h:
        (WebCore::toRenderBox):
        * rendering/RenderBoxModelObject.h:
        (WebCore::toRenderBoxModelObject):
        * rendering/RenderButton.h:
        (WebCore::toRenderButton):
        * rendering/RenderCombineText.h:
        (WebCore::toRenderCombineText):
        * rendering/RenderCounter.h:
        (WebCore::toRenderCounter):
        * rendering/RenderDetailsMarker.h:
        (WebCore::toRenderDetailsMarker):
        * rendering/RenderEmbeddedObject.h:
        (WebCore::toRenderEmbeddedObject):
        * rendering/RenderFieldset.h:
        (WebCore::toRenderFieldset):
        * rendering/RenderFileUploadControl.h:
        (WebCore::toRenderFileUploadControl):
        * rendering/RenderFlowThread.h:
        (WebCore::toRenderFlowThread):
        * rendering/RenderFrame.h:
        (WebCore::toRenderFrame):
        * rendering/RenderFrameSet.h:
        (WebCore::toRenderFrameSet):
        * rendering/RenderFullScreen.h:
        (WebCore::toRenderFullScreen):
        * rendering/RenderIFrame.h:
        (WebCore::toRenderIFrame):
        * rendering/RenderImage.h:
        (WebCore::toRenderImage):
        * rendering/RenderInline.h:
        (WebCore::toRenderInline):
        * rendering/RenderLayerModelObject.h:
        (WebCore::toRenderLayerModelObject):
        * rendering/RenderListBox.h:
        (WebCore::toRenderListBox):
        * rendering/RenderListItem.h:
        (WebCore::toRenderListItem):
        * rendering/RenderListMarker.h:
        (WebCore::toRenderListMarker):
        * rendering/RenderMedia.h:
        (WebCore::toRenderMedia):
        * rendering/RenderMenuList.h:
        (WebCore::toRenderMenuList):
        * rendering/RenderMeter.h:
        (WebCore::toRenderMeter):
        * rendering/RenderMultiColumnBlock.h:
        (WebCore::toRenderMultiColumnBlock):
        * rendering/RenderMultiColumnSet.h:
        (WebCore::toRenderMultiColumnSet):
        * rendering/RenderNamedFlowThread.h:
        (WebCore::toRenderNamedFlowThread):
        * rendering/RenderPart.h:
        (WebCore::toRenderPart):
        * rendering/RenderProgress.h:
        (WebCore::toRenderProgress):
        * rendering/RenderQuote.h:
        (WebCore::toRenderQuote):
        * rendering/RenderRegion.h:
        (WebCore::toRenderRegion):
        * rendering/RenderRubyRun.h:
        (WebCore::toRenderRubyRun):
        * rendering/RenderScrollbarPart.h:
        (WebCore::toRenderScrollbarPart):
        * rendering/RenderSearchField.h:
        (WebCore::toRenderSearchField):
        * rendering/RenderSlider.h:
        (WebCore::toRenderSlider):
        * rendering/RenderSnapshottedPlugIn.h:
        (WebCore::toRenderSnapshottedPlugIn):
        * rendering/RenderTable.h:
        (WebCore::toRenderTable):
        * rendering/RenderTableCaption.h:
        (WebCore::toRenderTableCaption):
        * rendering/RenderTableCell.h:
        (WebCore::toRenderTableCell):
        * rendering/RenderTableCol.h:
        (WebCore::toRenderTableCol):
        * rendering/RenderTableRow.h:
        (WebCore::toRenderTableRow):
        * rendering/RenderTableSection.h:
        (WebCore::toRenderTableSection):
        * rendering/RenderText.h:
        (WebCore::toRenderText):
        * rendering/RenderTextControl.h:
        (WebCore::toRenderTextControl):
        * rendering/RenderTextControlMultiLine.h:
        (WebCore::toRenderTextControlMultiLine):
        * rendering/RenderTextControlSingleLine.h:
        (WebCore::toRenderTextControlSingleLine):
        * rendering/RenderVideo.h:
        (WebCore::toRenderVideo):
        * rendering/RenderView.h:
        (WebCore::toRenderView):
        * rendering/RenderWidget.h:
        (WebCore::toRenderWidget):
        * rendering/mathml/RenderMathMLBlock.h:
        (WebCore::toRenderMathMLBlock):
        * rendering/svg/RenderSVGContainer.h:
        (WebCore::toRenderSVGContainer):
        * rendering/svg/RenderSVGGradientStop.h:
        (WebCore::toRenderSVGGradientStop):
        * rendering/svg/RenderSVGImage.h:
        (WebCore::toRenderSVGImage):
        * rendering/svg/RenderSVGInlineText.h:
        (WebCore::toRenderSVGInlineText):
        * rendering/svg/RenderSVGRoot.h:
        (WebCore::toRenderSVGRoot):
        * rendering/svg/RenderSVGShape.h:
        (WebCore::toRenderSVGShape):
        * rendering/svg/RenderSVGText.h:
        (WebCore::toRenderSVGText):

2013-01-23  Elliott Sprehn  <esprehn@gmail.com>

        Don't allocate rare data on every Element on removal
        https://bugs.webkit.org/show_bug.cgi?id=107756

        Reviewed by Eric Seidel.

        We should not allocate an ElementRareData for every element
        in Element::removedFrom. Previously calls to setIsInTopLayer
        would unconditionally call ensureElementRareData(), and this was
        called from Element::removedFrom meaning removing an element
        made the entire subtree suddenly balloon to huge in size as each
        one got an ElementRareData.

        This is a regression from my patch on Bug 103912 where I removed a check
        that avoided this allocation.

        No new tests needed, covered by existing tests.

        * dom/Element.cpp:
        (WebCore::Element::setIsInTopLayer):

2013-01-23  Adam Barth  <abarth@webkit.org>

        BackgroundHTMLParser should use more const references to avoid copy constructors
        https://bugs.webkit.org/show_bug.cgi?id=107763

        Reviewed by Tony Gentilcore.

        I doubt this optimization is visible anywhere, but it's just a nit.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::createPartial):
        * html/parser/BackgroundHTMLParser.h:
        (WebCore::BackgroundHTMLParser::create):
        (BackgroundHTMLParser):

2013-01-23  Abhishek Arya  <inferno@chromium.org>

        Add support for ASSERT_WITH_SECURITY_IMPLICATION.
        https://bugs.webkit.org/show_bug.cgi?id=107699

        Reviewed by Eric Seidel.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserInsertBefore): Use ASSERT_WITH_SECURITY_IMPLICATION
        for document confusion ASSERT(document() == newChild->document())
        (WebCore::ContainerNode::parserAppendChild): same.

2013-01-23  Ian Vollick  <vollick@chromium.org>

        Unreviewed build fix.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::rebuildZOrderLists):

2013-01-23  Rafael Weinstein  <rafaelw@chromium.org>

        Template element should parse in XHTML just as it does in HTML
        https://bugs.webkit.org/show_bug.cgi?id=106491

        Reviewed by Ryosuke Niwa.

        https://dvcs.w3.org/hg/webcomponents/raw-file/f33622c39c5e/spec/templates/index.html#parsing-xhtml-documents.
        https://dvcs.w3.org/hg/webcomponents/raw-file/f33622c39c5e/spec/templates/index.html#serializing-xhtml-documents.

        This patch modifies the XML parser in two ways: (1) when nodes are created, their owner document is
        the owner document of the current node, rather than the containing document, and (2) when an HTMLTemplateElement
        is encountered, its content document fragment is pushed onto the stack, rather than the element itself, so that children
        are appended to the template content. Also, because XSLT operates on the serialized input document, transforms consider
        template contents to be descendants.

        Tests: fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization.xml
               fast/xpath/xpath-template-element.html
               fast/xsl/xslt-processor-template.html
               fast/xsl/xslt-xhtml-template.xml

        * xml/parser/XMLDocumentParser.cpp:
        (WebCore::XMLDocumentParser::enterText):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::startElementNs):
        (WebCore::XMLDocumentParser::processingInstruction):
        (WebCore::XMLDocumentParser::cdataBlock):
        (WebCore::XMLDocumentParser::comment):

2013-01-23  Tony Gentilcore  <tonyg@chromium.org>

        Teach threaded HTML parser to update InspectorInstrumentation when writing HTML
        https://bugs.webkit.org/show_bug.cgi?id=107755

        Reviewed by Eric Seidel.

        The current length is unused, so it doesn't cause any noticeable behavior difference to not pass it here.

        No new tests because covered by existing tests.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):

2013-01-23  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in NativeToJS()
        https://bugs.webkit.org/show_bug.cgi?id=107663

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallbackImplementation):
        (NativeToJSValue):
        * bindings/scripts/test/V8/V8TestCallback.cpp:
        (WebCore::V8TestCallback::callbackWithClass1Param):
        (WebCore::V8TestCallback::callbackWithClass2Param):
        (WebCore::V8TestCallback::callbackWithStringList):
        (WebCore::V8TestCallback::callbackWithBoolean):
        (WebCore::V8TestCallback::callbackRequiresThisToPass):

2013-01-23  Stephanie Lewis  <slewis@apple.com>

        Add ordering for WebCore __DATA.
        https://bugs.webkit.org/show_bug.cgi?id=107765
        <rdar://problem/13019603>

        Rubber stamped by Oliver Hunt.

        No Change in functionality.

        * WebCore.order:

2013-01-23  Benjamin Poulain  <bpoulain@apple.com>

        RenderProgress does not repaint on value change
        https://bugs.webkit.org/show_bug.cgi?id=106977

        Reviewed by Joseph Pecoraro.

        No test because the ouput depends on the code of RenderTheme, and
        we use the platform theme for testing.

        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgress::updateFromElement):
        (WebCore::RenderProgress::updateAnimationState):
        Previously, repaint() was only called on two occasions:
        -On animationTimerFired().
        -In response to updateFromElement() if and only if the RenderTheme start/stop an
         animation previously stopped/running.

        When changing the value of HTMLProgressElement, no repaint was called until
        the next timer fired for the animation.
        This is a problem if:
        -The animation of RenderTheme is slow.
        -If there is no animation (the element is never updated in that case).

2013-01-23  Ian Vollick  <vollick@chromium.org>

        Introduce the "stacking container" concept.
        https://bugs.webkit.org/show_bug.cgi?id=107734

        Reviewed by Simon Fraser.

        A stacking container is treated just like a stacking context. That
        is, it has z-order lists, it and its descendants are stacked as a
        unit, and when the RenderLayerCompositor does its overlap testing,
        the composited regions for all layer lists take effect only once the
        stacking container is done being processed.

        This patch also adds the function RenderLayer::isStackingContainer().
        Currently, this is equivalent to RenderLayer::isStackingContext(),
        but in future, the definition of stacking container will be broadened
        to encompass more than just stacking contexts.

        Other than the addition of this extra function, the patch is mostly
        comprised of name changes. Any code that used to refer to the
        stacking context concept, but didn't necessarily require a stacking
        context in the strict, CSS-sense, was switched to refer to stacking
        container. No functionality was changed.

        No new tests, no change in functionality.

        * inspector/InspectorLayerTreeAgent.cpp:
        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore):
        (WebCore::RenderLayer::updatePagination):
        (WebCore::RenderLayer::canBeStackingContainer):
        (WebCore::RenderLayer::setHasVisibleContent):
        (WebCore::RenderLayer::dirty3DTransformedDescendantStatus):
        (WebCore::RenderLayer::stackingContainer):
        (WebCore::compositingContainer):
        (WebCore::expandClipRectForDescendantsAndReflection):
        (WebCore::RenderLayer::addChild):
        (WebCore::RenderLayer::removeChild):
        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
        (WebCore::RenderLayer::paintPaginatedChildLayer):
        (WebCore::RenderLayer::hitTestPaginatedChildLayer):
        (WebCore::RenderLayer::calculateLayerBounds):
        (WebCore::RenderLayer::dirtyZOrderLists):
        (WebCore::RenderLayer::dirtyStackingContainerZOrderLists):
        (WebCore::RenderLayer::collectLayers):
        (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
        (WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
        (WebCore::RenderLayer::styleChanged):
        * rendering/RenderLayer.h:
        (RenderLayer):
        (WebCore::RenderLayer::isStackingContainer):
        (WebCore::RenderLayer::posZOrderList):
        (WebCore::RenderLayer::negZOrderList):
        (WebCore::RenderLayer::isDirtyStackingContainer):
        (WebCore::RenderLayer::clearZOrderLists):
        (WebCore::RenderLayer::updateZOrderLists):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::compositingOpacity):
        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer):
        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        (WebCore::RenderLayerCompositor::layerHas3DContent):
        (WebCore::isRootmostFixedOrStickyLayer):

2013-01-23  Simon Fraser  <simon.fraser@apple.com>

        Have scrollperf logging log information about wheel event handlers
        https://bugs.webkit.org/show_bug.cgi?id=107761
        <rdar://problem/12281015>

        Reviewed by Tim Horton.

        Log when the wheel event handler count of a ScrollingTreeScrollingNodeMac changes.

        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::update):
        (WebCore::logWheelEventHandlerCountChanged):

2013-01-23  Kentaro Hara  <haraken@chromium.org>

        [V8] Add an optional Isolate parameter to GetTemplate() and GetRawTemplate()
        https://bugs.webkit.org/show_bug.cgi?id=107679

        Reviewed by Adam Barth.

        It is important to pass an Isolate to GetTemplate() and GetRawTemplate().
        To proceed the work incrementally, this patch adds an optional Isolate parameter
        to GetTemplate() and GetRawTemplate(). Once all call sites are updated, the
        Isolate parameter will be made mandatory.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::GetRawTemplate):
        (WebCore::V8Float64Array::GetTemplate):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (V8Float64Array):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
        (WebCore::V8TestActiveDOMObject::GetTemplate):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (V8TestActiveDOMObject):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
        (WebCore::V8TestCustomNamedGetter::GetTemplate):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (V8TestCustomNamedGetter):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::GetRawTemplate):
        (WebCore::V8TestEventConstructor::GetTemplate):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (V8TestEventConstructor):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::GetRawTemplate):
        (WebCore::V8TestEventTarget::GetTemplate):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (V8TestEventTarget):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::GetRawTemplate):
        (WebCore::V8TestException::GetTemplate):
        * bindings/scripts/test/V8/V8TestException.h:
        (V8TestException):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::GetRawTemplate):
        (WebCore::V8TestInterface::GetTemplate):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
        (WebCore::V8TestMediaQueryListListener::GetTemplate):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (V8TestMediaQueryListListener):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
        (WebCore::V8TestNamedConstructor::GetRawTemplate):
        (WebCore::V8TestNamedConstructor::GetTemplate):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (V8TestNamedConstructorConstructor):
        (V8TestNamedConstructor):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::GetRawTemplate):
        (WebCore::V8TestNode::GetTemplate):
        * bindings/scripts/test/V8/V8TestNode.h:
        (V8TestNode):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::GetRawTemplate):
        (WebCore::V8TestObj::GetTemplate):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
        (WebCore::V8TestOverloadedConstructors::GetTemplate):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (V8TestOverloadedConstructors):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (V8TestSerializedScriptValueInterface):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::getTemplate):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
        * bindings/v8/custom/V8HTMLImageElementConstructor.h:
        (V8HTMLImageElementConstructor):

2013-01-23  Kentaro Hara  <haraken@chromium.org>

        [V8] Move V8DOMWrapper::getEventListener() to V8EventListerList
        https://bugs.webkit.org/show_bug.cgi?id=107683

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrSetter):
        (GenerateEventListenerCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::addEventListenerCallback):
        (WebCore::TestObjV8Internal::removeEventListenerCallback):
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        * bindings/v8/V8EventListenerList.cpp:
        (WebCore::V8EventListenerList::getEventListener):
        (WebCore):
        * bindings/v8/V8EventListenerList.h:
        (WebCore):
        (V8EventListenerList):
        (WebCore::V8EventListenerList::findWrapper):
        (WebCore::V8EventListenerList::clearWrapper):
        (WebCore::V8EventListenerList::doFindWrapper):
        (WebCore::V8EventListenerList::getHiddenProperty):
        (WebCore::V8EventListenerList::findOrCreateWrapper):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::addEventListenerCallback):
        (WebCore::V8DOMWindow::removeEventListenerCallback):

2013-01-23  Dominic Mazzoni  <dmazzoni@google.com>

        AX: AXObjectCache should be initialized with topDocument
        https://bugs.webkit.org/show_bug.cgi?id=107638

        Reviewed by Chris Fleizach.

        Initialize AXObjectCache with the top document, not the
        document that axObjectCache happened to be called on, which
        could be an iframe. Having an AXObjectCache with the wrong
        document could cause a heap-use-after-free in
        notificationPostTimerFired if the inner document was deleted
        while notifications were pending.

        * dom/Document.cpp:
        (WebCore::Document::axObjectCache):

2012-12-12  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: WebKit does not render selection in non-first ruby text nodes.
        https://bugs.webkit.org/show_bug.cgi?id=92818

        Reviewed by Levi Weintraub.

        The patch is based on the one submitted by Sukolsak Sakshuwong.

        The bug was caused by the fact isSelectionRoot was returning false on RenderRubyRun even though
        it doesn't lay down its children in block direction.

        The selection painting code assumes that all blocks in each selection root are laid down in
        the containing block direction. In particular, InlineTextBox::paintSelection calls
        RootInlineBox::selectionTopAdjustedForPrecedingBlock in order to determine the end of the previous
        line, which in turn calls blockBeforeWithinSelectionRoot. blockBeforeWithinSelectionRoot goes
        through block nodes that appears before "this" block, and selectionTopAdjustedForPrecedingBlock
        assumes that to compute the end of the previous line.

        Now suppose we have markup such as <ruby>Ichi<rt>One</rt></ruby><ruby>Ni<rt>Two</rt></ruby>. When
        selectionTopAdjustedForPrecedingBlock is called on the line box generated for "Two", it tries to
        determine the bottom of the inline box above that of "Two", which blockBeforeWithinSelectionRoot
        determines to be that of "One". At this point, everything goes wrong and the selection height is
        computed to be 0.

        The fix to this problem is to allow RenderRubyRun to be a selection root. Since RenderRubyRun is
        already an inline-block, it suffices to bypass the !nonPseudoNode() check. In fact, there is no
        need to check this condition anymore as far as I can tell. The check was added in
        http://trac.webkit.org/changeset/12986 but all tests added by this change set as well as the rest
        of layout tests pass without this condition.

        Test: fast/ruby/select-ruby.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):

2013-01-23  Kentaro Hara  <haraken@chromium.org>

        [V8] Reduce usage of deprecatedV8String() and deprecatedV8Integer()
        https://bugs.webkit.org/show_bug.cgi?id=107674

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::evaluate):
        * bindings/v8/NPV8Object.cpp:
        (_NPN_Enumerate):
        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::bindToWindowObject):
        (WebCore::ScriptController::disableEval):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::setBreakpoint):
        (WebCore::ScriptDebugServer::removeBreakpoint):
        (WebCore::ScriptDebugServer::setScriptSource):
        (WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
        (WebCore::ScriptDebugServer::compileScript):
        * bindings/v8/ScriptFunctionCall.cpp:
        (WebCore::ScriptCallArgumentHandler::appendArgument):
        (WebCore::ScriptFunctionCall::call):
        (WebCore::ScriptFunctionCall::construct):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::start):
        (WebCore::ScriptProfiler::stop):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        (WebCore::V8DOMWindowShell::namedItemAdded):
        (WebCore::V8DOMWindowShell::namedItemRemoved):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8MutationCallback.cpp:
        (WebCore::V8MutationCallback::handleEvent):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bindings/v8/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::addListener):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::InjectedScriptManager::createInjectedScript):

2013-01-23  Martin Robinson  <mrobinson@igalia.com>

        WebKit should support decoding multi-byte entities in XML content
        https://bugs.webkit.org/show_bug.cgi?id=107459

        Reviewed by Adam Barth.

        Test: fast/parser/entities-in-xhtml.xhtml

        * html/parser/HTMLEntityParser.cpp:
        (WebCore::appendUChar32ToUCharArray): Added this helper function. Later patches
        may try to move this code to somewhere that it can be shared more easily.
        (WebCore::decodeNamedEntityToUCharArray): Modify this function to work on a UChar
        array four elements long, so that multi-byte and multi-character entities can be resolved.
        * html/parser/HTMLEntityParser.h: Updated function declaratoin.
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore): Modify the statically allocated entity string memory area to accommodate
        up to two UTF-8 characters. Each UTF-8 character can be 4 bytes, so this brings the
        total size to 9 bytes.
        (WebCore::getXHTMLEntity): Use the new entity decoding API.
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::EntityResolver::resolveUndeclaredEntity): Ditto.
        (WebCore::XMLDocumentParser::parse): Ditto.

2013-01-23  Eric Seidel  <eric@webkit.org>

        Stop the background-parser during HTMLDocumentParser::detatch to prevent crashes/asserts
        https://bugs.webkit.org/show_bug.cgi?id=107751

        Reviewed by Tony Gentilcore.

        This appears to fix the 2 intermitent crashers we were seeing while
        running fast/parser.  And definitely fixes 8 ASSERTs seen using a Debug build.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::detach):

2013-01-23  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Add support for computing first included interval position for polygons
        https://bugs.webkit.org/show_bug.cgi?id=103429

        Reviewed by Dirk Schulze.

        Added support for computing the "first fit" location, i.e. the logical shape-inside
        location where a line's layout begins. The algorithm for doing so is described here:
        http://hansmuller-webkit.blogspot.com/2012/08/revised-algorithm-for-finding-first.html.

        Tests: fast/exclusions/shape-inside/shape-inside-first-fit-001.html
               fast/exclusions/shape-inside/shape-inside-first-fit-002.html
               fast/exclusions/shape-inside/shape-inside-first-fit-003.html

        * platform/graphics/FloatSize.h:
        (WebCore::operator*): Scale a FloatSize. This simplified the final expression in VertexPair::intersection().
        * rendering/ExclusionPolygon.cpp:
        (WebCore::isPointOnLineSegment): Returns true if the specified point is collinear and within the line segement's bounds.
        (WebCore::leftSide): Return a value > 0 if point is on the left side of the line segment, < 0 if it's on the right, 0 if it's collinear.
        (WebCore::ExclusionPolygon::contains): Return true if the point is within the polygon or on an edge.
        (WebCore::VertexPair::overlapsRect): Returns true if the line segment from vertex1 to vertex2 overlaps the specified FloatRect.
        (WebCore::VertexPair::intersection): Finds the intersection of a pair of line segments defined by VertexPairs.
        (WebCore::ExclusionPolygon::firstFitRectInPolygon): Returns true if none of the polygon's edges, except the two used
            to define by the offset edges, overlap the FloatRect.
        (WebCore::aboveOrToTheLeft): Defines the top/left preference for "first fit" locations.
        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Replaced the stub implementation of this method.
        * rendering/ExclusionPolygon.h:
        (ExclusionPolygon): Added declarations noted above.
        (VertexPair): Abstract class that defines a pair of FloatPoints.
        (OffsetPolygonEdge): Represents an edge that's horizontally offset from a polygon edge.
        (WebCore::OffsetPolygonEdge::edgeIndex): The ExclusionPolygon edge index used to define this OffsetEdge.

2013-01-23  Dirk Schulze  <dschulze@adobe.com>

        Implement Canvas Path object
        https://bugs.webkit.org/show_bug.cgi?id=97333

        Reviewed by Dean Jackson.

        The Canvas part of the WHATWG specification defines a Path object. This Path object
        shares several path segment functions (path methods) with the CanvasRenderingContext2D
        interface. This patch introduces the Path object and shares the path segment functions
        in the class CanvasPathMethods.
        This patch does just implement the basic path functions that have a general agreement on
        the WHAT WG and W3C mailing lists.
        This feature is behind a flag and won't be activated by default.

        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path-objects

        Test: fast/canvas/canvas-path-object.html

        * CMakeLists.txt: Add DOMPath and CanvasPathMedthods to build system.
        * DerivedSources.cpp: Ditto.
        * DerivedSources.make: Ditto.
        * DerivedSources.pri: Ditto.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * html/canvas/CanvasPathMethods.cpp: Added.
        (WebCore): This class shares the path segment functions (moveTo, lineTo, ...) between
            DOMPath (the Path object) and CanvasRenderingContext2D.
        (WebCore::CanvasPathMethods::closePath):
        (WebCore::CanvasPathMethods::moveTo):
        (WebCore::CanvasPathMethods::lineTo):
        (WebCore::CanvasPathMethods::quadraticCurveTo):
        (WebCore::CanvasPathMethods::bezierCurveTo):
        (WebCore::CanvasPathMethods::arcTo):
        (WebCore::CanvasPathMethods::arc):
        (WebCore::CanvasPathMethods::rect):
        * html/canvas/CanvasPathMethods.h: Added.
        (WebCore):
        (CanvasPathMethods):
        (WebCore::CanvasPathMethods::~CanvasPathMethods):
        (WebCore::CanvasPathMethods::transformIsInvertible):
        (WebCore::CanvasPathMethods::CanvasPathMethods):
        * html/canvas/CanvasRenderingContext2D.cpp:
        * html/canvas/CanvasRenderingContext2D.h: Remove the path segment functions here.
        (CanvasRenderingContext2D):
        (WebCore::CanvasRenderingContext2D::transformIsInvertible): This checks if the CTM
            of the context is still invertible. Drawing should stop if it is not.
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/DOMPath.h: Added.
        (WebCore):
        (DOMPath):
        (WebCore::DOMPath::create):
        (WebCore::DOMPath::~DOMPath):
        (WebCore::DOMPath::DOMPath):
        * html/canvas/DOMPath.idl: Added.
        * page/DOMWindow.idl: Added CTOR for Path.

2013-01-23  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove IDBVersionChangeRequest
        https://bugs.webkit.org/show_bug.cgi?id=107711

        Reviewed by Tony Chang.

        When the setVersion() API was removed from the Indexed DB spec the IDBVersionChangeRequest
        interface was replaced with IDBOpenDBRequest. We switched over for open(), this completes
        the work by switching over for deleteDatabase() and removing the old code. (On the Event
        side we still need to combine IDBVersionChangeEvent and IDBUpgradeNeededEvent.)

        Test: storage/indexeddb/intversion-long-queue.html
              storage/indexeddb/intversion-upgrades.html

        * CMakeLists.txt: Remove references to deleted code.
        * DerivedSources.make: Ditto.
        * GNUmakefile.list.am: Ditto.
        * Modules/indexeddb/IDBCallbacks.h: Remove unused onBlocked() overload.
        * Modules/indexeddb/IDBDatabase.cpp: Remove references to deleted code.
        * Modules/indexeddb/IDBDatabase.h: Ditto.
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Fire onBlocked with current version.
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::openInternal): Don't need to specify source.
        (WebCore::IDBFactory::deleteDatabase): Use an IDBOpenDBRequest.
        * Modules/indexeddb/IDBFactory.h: Change return type of deleteDatabase()
        * Modules/indexeddb/IDBFactory.idl: Ditto.
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::create): Always use a null source.
        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest): Pass null source to base class.
        (WebCore::IDBOpenDBRequest::dispatchEvent): Don't assume result is a database in existing
        special case.
        * Modules/indexeddb/IDBOpenDBRequest.h: Don't need a source argument (always null).
        * Modules/indexeddb/IDBVersionChangeRequest.cpp: Removed.
        * Modules/indexeddb/IDBVersionChangeRequest.h: Removed.
        * Modules/indexeddb/IDBVersionChangeRequest.idl: Removed.
        * WebCore.gypi: Remove references to deleted code.
        * WebCore.xcodeproj/project.pbxproj: Remove references to deleted code.
        * dom/EventTarget.h: Remove references to deleted code.
        * dom/EventTargetFactory.in: Ditto.

2013-01-23  Scott Graham  <scottmg@chromium.org>

        [Chromium] Fix inclusion of pch .cpp in webcore_platform and webcore_rendering
        https://bugs.webkit.org/show_bug.cgi?id=107700

        Reviewed by Dirk Pranke.

        No new tests, Chromium should link on VS 2012.

        * WebCore.gyp/WebCore.gyp:

2013-01-23  Jun Jiang  <jun.a.jiang@intel.com>

        Avoid unnecessary format conversion for tex{Sub}Image2D() for ImageData of WebGL
        https://bugs.webkit.org/show_bug.cgi?id=107532

        Reviewed by Kenneth Russell.

        This patch removes the unnecessary format conversion in tex{Sub}Image2D() for ImageData in WebGL to improve performance.

        Already covered by current tests.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::texImage2D):
        (WebCore::WebGLRenderingContext::texSubImage2D):

2013-01-23  Xianzhu Wang  <wangxianzhu@chromium.org>

        Should update compositing state when an out-of-view fixed position element becomes in-view
        https://bugs.webkit.org/show_bug.cgi?id=107410

        Reviewed by Simon Fraser.

        When a non-compositing page contains some not-composited fixed position element because of bounds out-of-view, when the element changes position and RenderLayerCompositor::updateCompositingLayers() is called, the function may return early because of "if (!m_reevaluateCompositingAfterLayout && !m_compositing)" without updating the compositing layers.

        Set m_reevaluateCompositingAfterLayout when a fixed position element is not composited because of bounds out-of-view.

        Test: compositing/layer-creation/fixed-position-change-out-of-view-in-view.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2013-01-23  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style to CRLF on Windows .sln files.

        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.

2013-01-23  Adam Barth  <abarth@webkit.org>

        BackgroundHTMLParser::sendTokensToMainThread should use bind
        https://bugs.webkit.org/show_bug.cgi?id=107637

        Reviewed by Eric Seidel.

        This patch replaces our hand-written implementation of bind for
        didReceiveTokensFromBackgroundParser with bind from Functional.h. To
        use the generic version of bind, we need to switch to using WeakPtr to
        hold a reference to the main thread parser in the BackgroundHTMLParser.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
        (WebCore::BackgroundHTMLParser::createPartial):
        * html/parser/BackgroundHTMLParser.h:
        (WebCore::BackgroundHTMLParser::create):
        (BackgroundHTMLParser):
        (ParserMap):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::startBackgroundParser):
        (WebCore::HTMLDocumentParser::stopBackgroundParser):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):

2013-01-23  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Cleanup VS2010 WebCore project. 
        Lots of files that no longer exist in solution.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:

2013-01-23  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Add support for max-content
        https://bugs.webkit.org/show_bug.cgi?id=107604

        Reviewed by Tony Chang.

        Tests: fast/css-grid-layout/minmax-max-content-resolution-columns.html
               fast/css-grid-layout/minmax-max-content-resolution-rows.html

        This change implements max-content on top of the infrastructure introduced as part
        of implementing min-content (bug 106474). No effort was made to share code, which
        is what was done for min-content. The sharing will occur in follow-up refactoring(s)
        to benefit from the extra testing but also the extra code to make the direction more
        obvious.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::maxContentForChild):
        Added this helper, similar to minContentForChild.

        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        Patched the function to handle max-content per the specification's algorithm.

        * rendering/RenderGrid.h:
        Added maxContentForChild.

2013-01-23  Mark Lam  <mark.lam@apple.com>

        Assert that Supplementable objects is only used in their creator thread.
        https://bugs.webkit.org/show_bug.cgi?id=107717.

        Reviewed by Adam Barth.

        No new tests.

        * platform/Supplementable.h:
        (WebCore):
        (WebCore::Supplementable::provideSupplement):
        (WebCore::Supplementable::removeSupplement):
        (WebCore::Supplementable::requireSupplement):
        (Supplementable):
        (WebCore::Supplementable::Supplementable):

2013-01-23  Tony Chang  <tony@chromium.org>

        Incorrect scrollable height during simplified layout
        https://bugs.webkit.org/show_bug.cgi?id=107193

        Reviewed by David Hyatt.

        When computing overflow we need the height of the block before
        it was clamped (i.e., before updateLogicalHeight() has been called).

        During simplified layout, we don't have this information and we were
        using the clamped height by mistake. To fix this, we now store the
        pre-clamped height on RenderOverflow so we can properly compute
        overflow.

        Test: fast/overflow/height-during-simplified-layout.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeOverflow): Save the height if we have overflow.
        (WebCore::RenderBlock::simplifiedLayout): If we have overflow, use the height that we saved
        in computeOverflow.
        * rendering/RenderOverflow.h:
        (WebCore::RenderOverflow::layoutClientAfterEdge):
        (WebCore::RenderOverflow::setLayoutClientAfterEdge):
        (RenderOverflow): Add a member variable to save the height.

2013-01-23  Tom Sepez  <tsepez@chromium.org>

        [chromium] harden ScriptWrappable::m_wrapper against tampering
        https://bugs.webkit.org/show_bug.cgi?id=107318

        Reviewed by Adam Barth.

        Patch is correct if existing tests past without crashing.

        * bindings/v8/ScriptWrappable.h:
        (WebCore::ScriptWrappable::ScriptWrappable):
        (WebCore::ScriptWrappable::wrapper):
        (WebCore::ScriptWrappable::setWrapper):
        (WebCore::ScriptWrappable::clearWrapper):
        (WebCore::ScriptWrappable::disposeWrapper):
        (WebCore::ScriptWrappable::reportMemoryUsage):
        (ScriptWrappable):
        (WebCore::ScriptWrappable::maskOrUnmaskPointer):

2013-01-22  Roger Fong  <roger_fong@apple.com>

        WebCore property sheets, modified build scripts, and project files for compiling in VS2010.
        https://bugs.webkit.org/show_bug.cgi?id=106988

        Reviewed by Brent Fulgham.

        * WebCore.vcproj/WebCore.sln:
        * WebCore.vcxproj: Added.
        * WebCore.vcxproj/MigrateScripts: Added.
        * WebCore.vcxproj/QTMovieWin: Added.
        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Added.
        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters: Added.
        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.user: Added.
        * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props: Added.
        * WebCore.vcxproj/QTMovieWin/QTMovieWinDebug.props: Added.
        * WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props: Added.
        * WebCore.vcxproj/WebCore.vcxproj: Added.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Added.
        * WebCore.vcxproj/WebCore.vcxproj.user: Added.
        * WebCore.vcxproj/WebCoreCFNetwork.props: Added.
        * WebCore.vcxproj/WebCoreCG.props: Added.
        * WebCore.vcxproj/WebCoreCommon.props: Added.
        * WebCore.vcxproj/WebCoreDebug.props: Added.
        * WebCore.vcxproj/WebCoreGenerated.make: Added.
        * WebCore.vcxproj/WebCoreGenerated.vcxproj: Added.
        * WebCore.vcxproj/WebCoreGenerated.vcxproj.filters: Added.
        * WebCore.vcxproj/WebCoreGenerated.vcxproj.user: Added.
        * WebCore.vcxproj/WebCoreGeneratedCommon.props: Added.
        * WebCore.vcxproj/WebCoreGeneratedDebug.props: Added.
        * WebCore.vcxproj/WebCoreGeneratedRelease.props: Added.
        * WebCore.vcxproj/WebCoreMediaQT.props: Added.
        * WebCore.vcxproj/WebCorePostBuild.cmd: Added.
        * WebCore.vcxproj/WebCorePreBuild.cmd: Added.
        * WebCore.vcxproj/WebCorePreLink.cmd: Added.
        * WebCore.vcxproj/WebCorePthreads.props: Added.
        * WebCore.vcxproj/WebCoreQuartzCore.props: Added.
        * WebCore.vcxproj/WebCoreRelease.props: Added.
        * WebCore.vcxproj/build-generated-files.sh: Added.
        * WebCore.vcxproj/copyForwardingHeaders.cmd: Added.
        * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Added.
        * WebCore.vcxproj/migrate-scripts.sh: Added.
        * WebCore.vcxproj/xcopy.excludes: Added.
        * WebCorePrefix.h:
        * config.h:

2013-01-23  Eric Seidel  <eric@webkit.org>

        HTMLCompactToken needs to include the forceQuirks bool from HTMLToken
        https://bugs.webkit.org/show_bug.cgi?id=107713

        Reviewed by Tony Gentilcore.

        Before we were only getting "quirks mode" when the system/public identifiers
        were known quirks identifiers.  Now we'll correctly get quirks mode for any
        parse error during DOCTYPE parsing.
        This passes a bunch more tests.

        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        * html/parser/CompactHTMLToken.h:
        (WebCore::CompactHTMLToken::doctypeForcesQuirks):
        (CompactHTMLToken):
        * html/parser/HTMLToken.h:
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):

2013-01-23  Brady Eidson  <beidson@apple.com>

        Recursion handling cancelled authentication challenges in NetworkProcess
        <rdar://problem/13024541> and https://bugs.webkit.org/show_bug.cgi?id=107702

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in:

2013-01-23  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=107628
        Sometimes scroll position is jerky during rubber-band, affects nytimes.com
        -and corresponding-
        <rdar://problem/12679549>

        Reviewed by Simon Fraser.

        The basic problem here is that isRubberBandInProgress() was only implemented for 
        main thread scrolling. So when we were actually scrolling on the scrolling thread, 
        that function would always return false regardless.

        New ScrollableArea virtual function isRubberBandInProgress() will allow us to ask 
        the ScrollingCoordinator when the scrolling thread is scrolling, or the 
        ScrollAnimator otherwise.
        * page/FrameView.cpp:
        (WebCore::FrameView::isRubberBandInProgress):
        * page/FrameView.h:
        (FrameView):
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::isRubberBandInProgress):

        New ScrollingCoordinator function isRubberBandInProgress() always returns false 
        for non-Mac ports, and is overridden in ScrollingCoordinatorMac to consult the 
        ScrollingTree.
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::isRubberBandInProgress):
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::isRubberBandInProgress):

        New variable m_mainFrameIsRubberBanding keeps track of whether there is currently 
        a rubber-band happening on the scrolling thread.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):
        (WebCore::ScrollingTree::isRubberBandInProgress):
        (WebCore::ScrollingTree::setMainFrameIsRubberBanding):
        * page/scrolling/ScrollingTree.h:
        (ScrollingTree):
        (WebCore::ScrollingTree::rootNode):

        Call setMainFrameIsRubberBanding() whenever the stretchAmount is calculated and 
        whenever we stop the rubber-band timer.
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
        (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):

        Consult FrameView for isRubberBandInProgress().
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):

2013-01-23  Robert Hogan  <robert@webkit.org>

        Abspos Inline block not positioned correctly in text-aligned container
        https://bugs.webkit.org/show_bug.cgi?id=105695

        Reviewed by Ojan Vafai.

        Inline positioned elements should still obey the text-alignment of their container
        even when we don't do a line layout.

        Test: fast/text/container-align-with-inlines.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::adjustPositionedBlock):
        (WebCore::RenderBlock::updateStaticInlinePositionForChild):
        (WebCore):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::setStaticPositions):

2013-01-23  Eric Seidel  <eric@webkit.org>

        Remove DocType support from MarkupTokenBase now that NEW_XML is gone
        https://bugs.webkit.org/show_bug.cgi?id=107709

        Reviewed by Adam Barth.

        Just moving code out of MarkupTokenBase and into HTMLToken.
        The test for this change is if it compiles. :)  Which it does.

        * html/parser/HTMLToken.h:
        (DoctypeData):
        (WebCore::DoctypeData::DoctypeData):
        (WebCore):
        (WebCore::HTMLToken::appendToName):
        (WebCore::HTMLToken::name):
        (HTMLToken):
        (WebCore::HTMLToken::beginDOCTYPE):
        (WebCore::HTMLToken::publicIdentifier):
        (WebCore::HTMLToken::systemIdentifier):
        (WebCore::HTMLToken::setPublicIdentifierToEmptyString):
        (WebCore::HTMLToken::setSystemIdentifierToEmptyString):
        (WebCore::HTMLToken::appendToPublicIdentifier):
        (WebCore::HTMLToken::appendToSystemIdentifier):
        (WebCore::HTMLToken::releaseDoctypeData):
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        (AtomicHTMLToken):
        * html/parser/HTMLTokenTypes.h:
        * xml/parser/MarkupTokenBase.h:
        (WebCore):
        (MarkupTokenBase):

2013-01-23  Alexis Menard  <alexis@webkit.org>

        transition-property accepts incorrect "all, none" as value
        https://bugs.webkit.org/show_bug.cgi?id=105428

        Reviewed by Dean Jackson.

        http://www.w3.org/TR/css3-transitions/#transition-property-property
        disallows any value like none, all or all, none as it doesn't make
        sense. This patch fixes the problem by rejecting the value if set by
        the user.

        Test: transitions/transitions-parsing.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseAnimationProperty):
        * css/CSSParser.h:

2013-01-23  Eric Seidel  <eric@webkit.org>

        Clarify some usage of shouldUseThreading vs m_haveBackgroundParser, fixing about:blank parsing
        https://bugs.webkit.org/show_bug.cgi?id=107664

        Reviewed by Adam Barth.

        The HTMLDocumentParser can be "supposed" to use a background parser
        but not end up ever doing so for blank documents.  It's important
        that we spin the forground parser at least once, so we end up
        actually creating the about:blank document.

        shouldUseThreading() means that threading is enabled and we should use it if we can.
        m_haveBackgroundParser means that we actually are already using threading.
        When we add full document.write support this will get a bit trickier still as
        we'll need to be using both the foreground and background parsers.

        This fixes about 20 tests in fast/frames and many others outside of fast/frames. :)

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::prepareToStopParsing):
        (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
        (WebCore::HTMLDocumentParser::finish):
        (WebCore::HTMLDocumentParser::lineNumber):
        (WebCore::HTMLDocumentParser::textPosition):

2013-01-17  Roger Fong  <roger_fong@apple.com>

        [Win] Remove dependence on Microsoft Embedded OpenType Font Engine (T2EMBED.DLL)  from FontCustomPlatformData.cpp.
        https://bugs.webkit.org/show_bug.cgi?id=107153

        Reviewed by Dan Bernstein.

        * platform/graphics/win/FontCustomPlatformData.cpp:
        (WebCore):
        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
        (WebCore::FontCustomPlatformData::fontPlatformData):
        (WebCore::createFontCustomPlatformData):

2013-01-23  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: speedup highlight regex API in DefaultTextEditor
        https://bugs.webkit.org/show_bug.cgi?id=107238

        Reviewed by Pavel Feldman.

        Move overlay highlight measurement (highlight regex API) from DefaultTextEditor._paintLine
        method to the DefaultTextEditor._paintLines method which allows to relayout dom only
        once. This is a significant improvement to the current state of the
        art which does relayout on each regex occurence.
        In addition, use "left" css attribute instead of "margin-left": this
        way it will be possible to avoid an unnecessary relayouting during
        appending overlay highlight.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
        (WebInspector.TextEditorMainPanel.prototype._paintLines):
        (WebInspector.TextEditorMainPanel.prototype._measureRegexHighlight):
        (WebInspector.TextEditorMainPanel.prototype._measureSpans):
        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        (WebInspector.TextEditorMainPanel.ElementMetrics):
        (WebInspector.TextEditorMainPanel.LineOverlayHighlight):
        (WebInspector.TextEditorMainChunk.prototype.expand):

2013-01-23  Ojan Vafai  <ojan@chromium.org>

        Assert that computePreferredLogicalWidths never calls setNeedsLayout
        https://bugs.webkit.org/show_bug.cgi?id=107613

        Reviewed by Eric Seidel.

        computePreferredLogicalWidths should only set m_minPreferredLogicalWidth
        and m_maxPreferredLogicalWidth. It shouldn't have other side-effects.
        The mathml bits can be removed once https://bugs.webkit.org/show_bug.cgi?id=107353
        is resolved.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::minPreferredLogicalWidth):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):

2013-01-23  Noam Rosenthal  <noam@webkit.org>

        REGRESSION(r140518): Broke Chromium Win build (gyp file not updated) (Requested by arv on #webkit).
        https://bugs.webkit.org/show_bug.cgi?id=107691

        Unreviewed build fix. Removed TextureMapperShaderManager.* from WebCore.gypi.

        * WebCore.gypi:

2013-01-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140307, r140411, and r140512.
        http://trac.webkit.org/changeset/140307
        http://trac.webkit.org/changeset/140411
        http://trac.webkit.org/changeset/140512
        https://bugs.webkit.org/show_bug.cgi?id=107689

        Perf regression on DOMDivWalk (bug 106726) (Requested by
        falken on #webkit).

        * dom/Element.cpp:
        (WebCore::Element::removedFrom):
        (WebCore):
        (WebCore::Element::isInTopLayer):
        (WebCore::Element::setIsInTopLayer):
        * dom/Element.h:
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::isInTopLayer):
        (WebCore::ElementRareData::setIsInTopLayer):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        * dom/Node.h:
        (Node):
        * dom/NodeRenderingContext.cpp:
        (WebCore::isRendererReparented):
        (WebCore::NodeRenderingContext::previousRenderer):
        (WebCore::NodeRenderingContext::parentRenderer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::isInTopLayer):
        (WebCore::RenderLayer::rebuildZOrderLists):

2013-01-23  Dmitry Gozman  <dgozman@chromium.org>

        Web Inspector: allow user to resize inspector window by dragging the toolbar
        https://bugs.webkit.org/show_bug.cgi?id=107648

        Reviewed by Pavel Feldman.

        This did not work before you click dock button once.
        Also, last drag position was not respected.

        No new tests, because of pure inspector UI change.

        * inspector/front-end/DockController.js:
        (WebInspector.DockController.prototype.isDockedToBottom):
        * inspector/front-end/Toolbar.js:
        (WebInspector.Toolbar.prototype._isDockedToBottom):
        (WebInspector.Toolbar.prototype._toolbarDragStart):
        (WebInspector.Toolbar.prototype._toolbarDragEnd):
        (WebInspector.Toolbar.prototype._toolbarDrag):

2013-01-23  Shinya Kawanaka  <shinyak@chromium.org>

        shadowAncestorNode() should be renamed to deprecatedShadowAncestorNode()
        https://bugs.webkit.org/show_bug.cgi?id=107624

        Reviewed by Dimitri Glazkov.

        Since Node::shadowAncestorNode() is deprecated, we would like to rename it to prevent from further use.

        No new tests, simple refactoring.

        * WebCore.order:
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
        * dom/Document.cpp:
        (WebCore::Document::handleZeroPadding):
        * dom/Node.cpp:
        (WebCore::Node::deprecatedShadowAncestorNode):
        * dom/Node.h:
        (Node):
        * editing/Editor.cpp:
        (WebCore::Editor::rangeOfString):
        (WebCore::Editor::countMatchesForText):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::ReplacementFragment):
        * page/DragController.cpp:
        (WebCore::elementUnderMouse):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
        * page/FocusController.cpp:
        (WebCore::clearSelectionIfNeeded):
        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::paintSearchFieldCancelButton):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::setToNonShadowAncestor):
        (WebCore::HitTestResult::addNodeToRectBasedTestResult):

2013-01-22  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: only allow evaluateForTestInFrontend for front-ends under test.
        https://bugs.webkit.org/show_bug.cgi?id=107523

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::isUnderTest):
        (WebCore):
        (WebCore::InspectorController::evaluateForTestInFrontend):
        * inspector/InspectorController.h:
        (InspectorController):
        * inspector/InspectorFrontendClient.h:
        (InspectorFrontendClient):
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::canAttachWindow):
        (WebCore::InspectorFrontendClientLocal::isUnderTest):
        (WebCore):
        * inspector/InspectorFrontendClientLocal.h:
        (InspectorFrontendClientLocal):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::isUnderTest):
        (WebCore):
        * inspector/InspectorFrontendHost.h:
        (InspectorFrontendHost):
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/DOMExtension.js:
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.canInspectWorkers):
        (.WebInspector.InspectorFrontendHostStub.prototype.isUnderTest):
        * inspector/front-end/TestController.js:
        (.invokeMethod):
        (WebInspector.evaluateForTestInFrontend):
        * inspector/front-end/externs.js:

2013-01-23  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: remove invisibleLineRow code from paintLines DTE method
        https://bugs.webkit.org/show_bug.cgi?id=107649

        Reviewed by Pavel Feldman.

        Remove invisibleLineRow logic from TextEditorMainPanel._paintLines method.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._paintLines):

2013-01-23  Rafael Weinstein  <rafaelw@chromium.org>

        REGRESSION(r140101): caused debug asserts in fast/forms/associated-element-crash.html and html5lib/run-template.html
        https://bugs.webkit.org/show_bug.cgi?id=107237

        Reviewed by Adam Barth.

        No new tests needed.

        When the parser foster-parent's a node out of a table context and the foster parent is a template element, set the Task.parent
        to be the template element's content, rather than the element itself. This ensures the foster-parented node isn't errorenously
        reparented.

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::findFosterSite):

2013-01-23  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: heap profiler shows nodes with distance 0
        https://bugs.webkit.org/show_bug.cgi?id=107425

        Reviewed by Pavel Feldman.

        "Document DOM tree" entities now have distance 1. So if there is a DOM
        wrapper that is not referenced from javascript it will anyways be shown
        in the heap snapshot and will have distance 2. Also such DOM wrappers
        are considered to be reachable from user roots (e.g. global Window objects)
        otherwice they are not event shown in the heap snapshots.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype.distanceForUserRoot):
        (WebInspector.HeapSnapshot.prototype._calculateDistances):
        * inspector/front-end/JSHeapSnapshot.js:
        (WebInspector.JSHeapSnapshot.prototype.distanceForUserRoot): distance for 
        "(Document DOM trees)" is set to 0 to make sure distance of "Ddocument DOM tree" is 1.
        (WebInspector.JSHeapSnapshot.prototype._markPageOwnedNodes):
        (WebInspector.JSHeapSnapshotNode.prototype.isDocumentDOMTreesRoot):

2013-01-23  Adrian Perez de Castro  <aperez@igalia.com>

        [GStreamer] Add Opus MIME type to the list of supported ones
        https://bugs.webkit.org/show_bug.cgi?id=98759

        Reviewed by Philippe Normand.

        GStreamer has support for the Opus codec (http://opus-codec.org) by
        using a plugin present in the "gst-plugins-bad" repository. Opus
        streams may be embedded in a Ogg container, or standalone. The case
        of the Ogg container is already covered by the "*/ogg" MIME types
        declared as supported by the GStreamer media playing code, but for
        standalone streams to work, "audio/opus" has to be added.

        With this, and the needed GStreamer plugin installed, the GTK+
        launcher is able to correctly play the example streams from
        http://opus-codec.org/examples

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

2013-01-23  Takashi Sakamoto  <tasak@google.com>

        [Refactoring] Remove elementParentStyle from SelectorCheckerContext
        https://bugs.webkit.org/show_bug.cgi?id=107496

        Reviewed by Darin Adler.

        Since childrenAffectedBy bits were moved from RenderStyle to element,
        now elementParentStyle is not used in SelectorChecker and
        StyleResolver. We should remove the member varaiable from
        SelectorCheckerContext.

        No new tests, because just refactoring.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::match):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        (SelectorCheckingContext):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::ruleMatches):
        Removed elementParentStyle.

2013-01-23  Andreas Kling  <akling@apple.com>

        Pass CSSSelector pointers around as const after parsing stage.
        <http://webkit.org/b/107645>

        Reviewed by Antti Koivisto.

        Have CSSSelectorList vend const CSSSelector* and make the style resolution code
        operate on const pointers instead.

        This gives us some compile-time confidence that nobody is changing the selectors
        after we've parsed them.

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::operator==):
        (WebCore::CSSSelector::selectorText):
        (WebCore::CSSSelector::parseNth):
        (WebCore::CSSSelector::matchNth):
        * css/CSSSelector.h:
        (CSSSelector):
        (WebCore::CSSSelector::tagHistory):
        (WebCore::CSSSelector::selectorList):
        * css/CSSSelectorList.cpp:
        (WebCore::CSSSelectorList::selectorsText):
        (WebCore::forEachTagSelector):
        (WebCore::forEachSelector):
        (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
        (WebCore::SelectorHasInvalidSelectorFunctor::operator()):
        * css/CSSSelectorList.h:
        (WebCore::CSSSelectorList::first):
        (CSSSelectorList):
        (WebCore::CSSSelectorList::selectorAt):
        (WebCore::CSSSelectorList::indexOfNextSelectorAfter):
        (WebCore::CSSSelectorList::next):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::generateSelectorText):
        * css/RuleSet.cpp:
        (WebCore::selectorListContainsUncommonAttributeSelector):
        (WebCore::collectFeaturesFromRuleData):
        * css/RuleSet.h:
        (WebCore::RuleData::selector):
        (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
        (RuleSetSelectorPair):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matches):
        (WebCore::SelectorChecker::match):
        (WebCore::SelectorChecker::checkOne):
        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
        (WebCore::SelectorChecker::determineLinkMatchType):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        (SelectorCheckingContext):
        (SelectorChecker):
        * css/StyleInvalidationAnalysis.cpp:
        (WebCore::determineSelectorScopes):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRulesForRegion):
        (WebCore::StyleResolver::checkRegionSelector):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::initialize):
        (WebCore::SelectorDataList::execute):
        * dom/SelectorQuery.h:
        (WebCore::SelectorDataList::SelectorData::SelectorData):
        (SelectorData):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::collectSelectFeatureSetFrom):
        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorChecker::checkContentSelector):
        (WebCore::ContentSelectorDataList::initialize):
        * html/shadow/ContentSelectorQuery.h:
        (ContentSelectorChecker):
        (ContentSelectorDataList):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::validateSubSelector):
        (WebCore::validateSelector):
        (WebCore::HTMLContentElement::validateSelect):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):

2013-01-23  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Unreviewed build fix after r140518.

        * GNUmakefile.list.am: rename TextureMapperShaderManager to
        TextureMapperShaderProgram.

2013-01-23  Yoshifumi Inoue  <yosin@chromium.org>

        REGRESSION(r139044): Pan icon remains on screen on Chromium-WinXP
        https://bugs.webkit.org/show_bug.cgi?id=107623

        Reviewed by Hajime Morita.

        The issue is caused by AutoscrollController::stopAutoscrollTimer()
        doesn't call View::removePanScrollIcon() because m_autoscrollType
        is reset before checking it.

        This patch changes to reset m_autoscrollType after all references.

        Test: platform/chromium-win/fast/events/panScroll-panIcon.html

        * page/AutoscrollController.cpp:
        (WebCore::AutoscrollController::stopAutoscrollTimer):

2013-01-23  Sergio Villar Senin  <svillar@igalia.com>

        REGRESSION(r140338): WebKitGtk+ trying to allocate a buffer too big
        https://bugs.webkit.org/show_bug.cgi?id=107646

        Reviewed by Carlos Garcia Campos.

        g_input_stream_skip_async() was replaced in r140338 by
        g_input_stream_read_async() to workaround a glib buffer. The former
        was using G_MAXSSIZE to skip the whole redirect message but we
        cannot use it for the latter because it will try to
        allocate a buffer of that size. Replaced it by READ_BUFFER_SIZE. No
        new tests required, functionality already covered by network tests..

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::redirectSkipCallback):
        (WebCore::sendRequestCallback):

2013-01-23  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: use inspectedWindow.document instead of document in InjectedScript
        https://bugs.webkit.org/show_bug.cgi?id=107642

        Reviewed by Pavel Feldman.

        * inspector/InjectedScriptSource.js:
        (.):

2013-01-23  Vivek Galatage  <vivek.vg@samsung.com>

        xml-stylesheet XSL is not requested with JavaScript disabled
        https://bugs.webkit.org/show_bug.cgi?id=103902

        Reviewed by Adam Barth.

        Currently CachedResourceLoader::canRequest() calls allowScriptFromSource() on
        ContentSecurityPolicy and FrameLoaderClient for the given XSLStyleSheet. This
        should be restricted to only calling allowScriptFromSource() for the
        ContentSecurityPolicy.

        Test: http/tests/xsl/xslt-transform-with-javascript-disabled.html

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::canRequest):

2013-01-23  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove if(isolate) checks from v8String() and v8Integer()
        https://bugs.webkit.org/show_bug.cgi?id=107540

        Reviewed by Adam Barth.

        Now there is no optional Isolate parameter in the code base
        (except for throwError()). We can safely remove if(isolate) checks
        from v8String() and v8Integer().

        div.id:       17.8 ns => 17.8 ns (no performance change)
        div.nodeType:  9.7 ns =>  8.9 ns (+8.9% performance improvement)

        No tests. No change in behavior.

        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::handleV8DebugEvent):
        * bindings/v8/V8Binding.h:
        (WebCore::v8String):
        (WebCore::v8Integer):
        * bindings/v8/V8WindowErrorHandler.cpp:
        (WebCore::V8WindowErrorHandler::callListenerFunction):
        * bindings/v8/V8WorkerContextErrorHandler.cpp:
        (WebCore::V8WorkerContextErrorHandler::callListenerFunction):

2013-01-23  Hajime Morrita  <morrita@google.com>

        Invalidated SVG shadow tree should be always detached.
        https://bugs.webkit.org/show_bug.cgi?id=107634

        Reviewed by Ryosuke Niwa.

        SVGUseElement::clearResourceReferences() uses removeAllChildren() for
        clearing its shadow DOM, but this is wrong.
        removeAllChildren() is designed for removing children of an out-of-document Node.
        For efficiency, it skips a series of cleanup sequences like detach().

        For removing SVG shadow tree which is in Document, removeChildren() should be used.
        It does proper cleanup for the chilren.

        Test: svg/custom/use-invalidate-click-crash.xhtml

        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::clearResourceReferences):

2013-01-23  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Don't call GraphicsLayer::setNeedsDisplay() from TextureMapperLayer.
        https://bugs.webkit.org/show_bug.cgi?id=107629

        Reviewed by Noam Rosenthal.

        We are removing the dependency on GraphicsLayer from TextureMapperLayer.

        This is in preparation for refactoring TextureMapper to work in an actor
        model (http://webkit.org/b/103854).

        No new tests, refactoring only.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):

2013-01-23  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Rename TextureMapperShaderManager.* TextureMapperShaderProgram.*
        https://bugs.webkit.org/show_bug.cgi?id=105847

        TextureMapperShaderManager contains very little "manager" code.
        Moved the map of shaders to TextureMapperGL, and renamed the files containing
        the shader implementation TextureMapperShaderProgram.cpp|h.

        Reviewed by Kenneth Rohde Christiansen.

        No new tests - renames/refactors only.

        * GNUmakefile.list.am:
        * PlatformEfl.cmake:
        * Target.pri:
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGLData::SharedGLData::getShaderProgram):
                This function is copied from TextureMapperShaderManager.
        (SharedGLData):
        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
        (WebCore::TextureMapperGL::drawBorder):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore::optionsForFilterType):
        (WebCore::TextureMapperGL::drawFiltered):
        (WebCore::TextureMapperGL::beginClip):
        * platform/graphics/texmap/TextureMapperShaderProgram.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp.
        (WebCore):
        (WebCore::compositingLogEnabled):
        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
        (WebCore::TextureMapperShaderProgram::setMatrix):
        (WebCore::TextureMapperShaderProgram::getLocation):
        (WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
        (WebCore::TextureMapperShaderProgram::create):
        * platform/graphics/texmap/TextureMapperShaderProgram.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.h.
        (WebCore):
        (TextureMapperShaderProgram):
        (WebCore::TextureMapperShaderProgram::programID):
        (WebCore::TextureMapperShaderProgram::context):

2013-01-23  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in throwError()
        https://bugs.webkit.org/show_bug.cgi?id=107636

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/NPV8Object.cpp:
        (_NPN_SetException):
        * bindings/v8/V8Binding.cpp:
        (WebCore::handleMaxRecursionDepthExceeded):
        * bindings/v8/V8Binding.h:
        (WebCore):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        (WebCore::WorkerScriptController::setException):

2013-01-22  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in throwTypeError()
        https://bugs.webkit.org/show_bug.cgi?id=107632

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        (GenerateConstructorHeader):
        (JSValueToNative):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::constructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
        (WebCore::V8TestObj::constructorCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructorCallback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::toRefPtrNativeArray):
        (WebCore::toV8Sequence):
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8Utilities.cpp:
        (WebCore::extractTransferables):
        (WebCore::getMessagePortArray):

2013-01-22  Matt Falkenhagen  <falken@chromium.org>

        20% regression on dom_perf/DomDivWalk
        https://bugs.webkit.org/show_bug.cgi?id=106726

        Reviewed by Hajime Morita.

        This patch moves the checks in Element::removedFrom for Fullscreen and top layer flags
        into a slow path. The idea is for the two checks for Fullscreen and top layer
        to be replaced by one faster check in the fast path.

        The plan is to migrate the Fullscreen implementation to use top layer, so this is just a
        short-term fix for the perf regression.

        No new tests: no functionality change

        * dom/Element.cpp:
        (WebCore::Element::removedFrom): Create a slow path to move the Fullscreen and top layer checks into.
        * dom/Node.cpp:
        (WebCore::Node::setIsInTopLayer): To allow for cleaner code in Element::removedFrom, define
        setIsInTopLayer and isInTopLayer even when the feature flag is off.
        * dom/Node.h:
        (WebCore::Node::isInTopLayer): Ditto.
        (Node):

2013-01-22  Mark Lam  <mark.lam@apple.com>

        Change the Supplementable class to not use AtomicString.
        https://bugs.webkit.org/show_bug.cgi?id=107535.

        Reviewed by Adam Barth.

        Replaced the use of AtomicString keys with literal const char* keys.
        This simplifies the SupplementMap and makes it slightly leaner and faster.

        No new tests.

        * Modules/battery/BatteryController.cpp:
        (WebCore::BatteryController::supplementName):
        * Modules/battery/BatteryController.h:
        (BatteryController):
        * Modules/battery/NavigatorBattery.cpp:
        (WebCore::NavigatorBattery::supplementName):
        (WebCore):
        (WebCore::NavigatorBattery::from):
        * Modules/battery/NavigatorBattery.h:
        (NavigatorBattery):
        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
        (WebCore::DraggedIsolatedFileSystem::supplementName):
        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.h:
        (DraggedIsolatedFileSystem):
        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::supplementName):
        (WebCore):
        (WebCore::NavigatorGamepad::from):
        * Modules/gamepad/NavigatorGamepad.h:
        (NavigatorGamepad):
        * Modules/geolocation/GeolocationController.cpp:
        (WebCore::GeolocationController::supplementName):
        * Modules/geolocation/GeolocationController.h:
        (GeolocationController):
        * Modules/geolocation/NavigatorGeolocation.cpp:
        (WebCore::NavigatorGeolocation::supplementName):
        (WebCore):
        (WebCore::NavigatorGeolocation::from):
        * Modules/geolocation/NavigatorGeolocation.h:
        (NavigatorGeolocation):
        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
        (WebCore::DOMWindowIndexedDatabase::supplementName):
        (WebCore):
        (WebCore::DOMWindowIndexedDatabase::from):
        * Modules/indexeddb/DOMWindowIndexedDatabase.h:
        (DOMWindowIndexedDatabase):
        * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
        (WebCore::PageGroupIndexedDatabase::supplementName):
        (WebCore):
        (WebCore::PageGroupIndexedDatabase::from):
        * Modules/indexeddb/PageGroupIndexedDatabase.h:
        (PageGroupIndexedDatabase):
        * Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
        (WebCore::WorkerContextIndexedDatabase::supplementName):
        (WebCore):
        (WebCore::WorkerContextIndexedDatabase::from):
        * Modules/indexeddb/WorkerContextIndexedDatabase.h:
        (WorkerContextIndexedDatabase):
        * Modules/intents/DOMWindowIntents.cpp:
        (WebCore::DOMWindowIntents::supplementName):
        (WebCore):
        (WebCore::DOMWindowIntents::from):
        * Modules/intents/DOMWindowIntents.h:
        (DOMWindowIntents):
        * Modules/mediastream/UserMediaController.cpp:
        (WebCore::UserMediaController::supplementName):
        * Modules/mediastream/UserMediaController.h:
        (UserMediaController):
        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::NavigatorContentUtils::supplementName):
        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
        (NavigatorContentUtils):
        * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
        (WebCore::NavigatorNetworkInfoConnection::supplementName):
        (WebCore):
        (WebCore::NavigatorNetworkInfoConnection::from):
        * Modules/networkinfo/NavigatorNetworkInfoConnection.h:
        (NavigatorNetworkInfoConnection):
        * Modules/networkinfo/NetworkInfoController.cpp:
        (WebCore::NetworkInfoController::supplementName):
        * Modules/networkinfo/NetworkInfoController.h:
        (NetworkInfoController):
        * Modules/notifications/DOMWindowNotifications.cpp:
        (WebCore::DOMWindowNotifications::supplementName):
        (WebCore):
        (WebCore::DOMWindowNotifications::from):
        * Modules/notifications/DOMWindowNotifications.h:
        (DOMWindowNotifications):
        * Modules/notifications/NotificationController.cpp:
        (WebCore::NotificationController::supplementName):
        * Modules/notifications/NotificationController.h:
        (NotificationController):
        * Modules/notifications/WorkerContextNotifications.cpp:
        (WebCore::WorkerContextNotifications::supplementName):
        (WebCore):
        (WebCore::WorkerContextNotifications::from):
        * Modules/notifications/WorkerContextNotifications.h:
        (WorkerContextNotifications):
        * Modules/quota/DOMWindowQuota.cpp:
        (WebCore::DOMWindowQuota::supplementName):
        (WebCore):
        (WebCore::DOMWindowQuota::from):
        * Modules/quota/DOMWindowQuota.h:
        (DOMWindowQuota):
        * Modules/speech/DOMWindowSpeechSynthesis.cpp:
        (WebCore::DOMWindowSpeechSynthesis::supplementName):
        (WebCore):
        (WebCore::DOMWindowSpeechSynthesis::from):
        * Modules/speech/DOMWindowSpeechSynthesis.h:
        (DOMWindowSpeechSynthesis):
        * Modules/speech/SpeechRecognitionController.cpp:
        (WebCore::SpeechRecognitionController::supplementName):
        * Modules/speech/SpeechRecognitionController.h:
        (SpeechRecognitionController):
        * Modules/vibration/Vibration.cpp:
        (WebCore::Vibration::supplementName):
        * Modules/vibration/Vibration.h:
        (Vibration):
        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::supplementName):
        (WebCore):
        (WebCore::DatabaseContext::existingDatabaseContextFrom):
        (WebCore::DatabaseContext::from):
        * Modules/webdatabase/DatabaseContext.h:
        (DatabaseContext):
        * dom/ContextFeatures.cpp:
        (WebCore::ContextFeatures::supplementName):
        * dom/ContextFeatures.h:
        * dom/DeviceMotionController.cpp:
        (WebCore::DeviceMotionController::supplementName):
        * dom/DeviceMotionController.h:
        (DeviceMotionController):
        * dom/DeviceOrientationController.cpp:
        (WebCore::DeviceOrientationController::supplementName):
        * dom/DeviceOrientationController.h:
        (DeviceOrientationController):
        * loader/PrerendererClient.cpp:
        (WebCore::PrerendererClient::supplementName):
        * loader/PrerendererClient.h:
        (PrerendererClient):
        * page/DOMWindowPagePopup.cpp:
        (WebCore::DOMWindowPagePopup::supplementName):
        * page/DOMWindowPagePopup.h:
        (DOMWindowPagePopup):
        * page/SpeechInput.cpp:
        (WebCore::SpeechInput::supplementName):
        * page/SpeechInput.h:
        (SpeechInput):
        * platform/RefCountedSupplement.h:
        (WebCore::RefCountedSupplement::provideTo):
        (WebCore::RefCountedSupplement::from):
        * platform/Supplementable.h:
        (WebCore):
        (WebCore::Supplement::provideTo):
        (WebCore::Supplement::from):
        (WebCore::Supplementable::provideSupplement):
        (WebCore::Supplementable::removeSupplement):
        (WebCore::Supplementable::requireSupplement):
        (Supplementable):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::supplementName):
        (WebCore):
        (WebCore::InternalSettings::from):
        * testing/InternalSettings.h:
        (InternalSettings):

2013-01-22  Hajime Morrita  <morrita@google.com>

        non-ENABLE(DETAILS_ELEMENT) build fails.
        https://bugs.webkit.org/show_bug.cgi?id=107626

        Reviewed by Kent Tamura.

        No new tests, build configuration change.

        * rendering/RenderObject.h:
        (RenderObject): Added a missing condition.

2013-01-22  Dima Gorbik  <dgorbik@apple.com>

        Whitelist should also work for the WebVTT ::cue element without an argument
        https://bugs.webkit.org/show_bug.cgi?id=107488

        Reviewed by Andreas Kling.
        
        Apply filtering if the cue shadow pseudoId is set on the selector.

        Existing tests were modified to cover this case.

        * css/RuleSet.cpp:
        (WebCore::determinePropertyWhitelistType):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::createSubtrees):
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::cueShadowPseudoId):

2013-01-22  Hayato Ito  <hayato@chromium.org>

        Make MediaQueryEvaluator(bool) constructor explicit.
        https://bugs.webkit.org/show_bug.cgi?id=107620

        Reviewed by Hajime Morita.

        No new tests: no change in behavior.

        * css/MediaQueryEvaluator.h:
        (MediaQueryEvaluator):

2013-01-22  Anders Carlsson  <andersca@apple.com>

        Use a platform strategy for local storage
        https://bugs.webkit.org/show_bug.cgi?id=107600

        Reviewed by Andreas Kling.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Add new files.

        * platform/PlatformStrategies.h:
        Add a way to create/get the storage strategy.

        * storage/StorageNamespace.cpp:
        (WebCore::StorageNamespace::localStorageNamespace):
        (WebCore::StorageNamespace::sessionStorageNamespace):
        Call the storage strategy.

        * storage/StorageNamespace.h:
        * storage/StorageStrategy.cpp: Added.
        (WebCore::StorageStrategy::localStorageNamespace):
        (WebCore::StorageStrategy::sessionStorageNamespace):
        Call through to StorageNamespaceImpl.

        * storage/StorageStrategy.h: Added.

2013-01-22  Jun Jiang  <jun.a.jiang@intel.com>

        Optimize the texture packing for texImage2D() and texSubImage2D() in WebGL
        https://bugs.webkit.org/show_bug.cgi?id=105821

        Reviewed by Kenneth Russell.

        The original texture packing code uses function pointers to denote each unpack and pack operations for different combination of Source formats,
        Destination formats and Alpha Operations. It could be made cleaner and simpler. In this patch, template functions are used and try best to avoid
        generating useless code for unreachable path to avoid code bloat. Moreover, the flipY operation is moved into the pack operation instead of
        operating in a standalone method to improve performance.

        Already covered by current test.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::texImage2DImpl):
        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore::GraphicsContext3D::packImageData):
        (WebCore::GraphicsContext3D::extractImageData):
        (WebCore::GraphicsContext3D::extractTextureData):
        (WebCore):
        (WebCore::GraphicsContext3D::packPixels):
        * platform/graphics/GraphicsContext3D.h:
        (WebCore::GraphicsContext3D::srcFormatComeFromDOMElementOrImageData):
        (GraphicsContext3D):
        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceFormat):
        (ImageExtractor):
        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::getSourceDataFormat):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):

2013-01-21  Kentaro Hara  <haraken@chromium.org>

        Implement UIEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=107430

        Reviewed by Adam Barth.

        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm

        UIEvent constructor is implemented under a DOM4_EVENTS_CONSTRUCTOR flag,
        which is enabled on Safari and Chromium for now.

        Test: fast/events/constructors/ui-event-constructor.html

        * Configurations/FeatureDefines.xcconfig:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):
        * dom/UIEvent.cpp:
        (WebCore::UIEventInit::UIEventInit):
        (WebCore):
        (WebCore::UIEvent::UIEvent):
        * dom/UIEvent.h:
        (WebCore):
        (UIEventInit):
        (UIEvent):
        (WebCore::UIEvent::create):
        (WebCore::UIEvent::view):
        (WebCore::UIEvent::detail):
        (FocusInEventDispatchMediator):
        (FocusOutEventDispatchMediator):
        * dom/UIEvent.idl:

2013-01-22  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove IDBKey from WebKitIDL
        https://bugs.webkit.org/show_bug.cgi?id=97375

        Reviewed by Kentaro Hara.

        Now that references to the artificial IDBKey type have been removed from all IDLs, remove
        the support code, and move the conversion code into the IDBBindingUtilities. Removes
        references to the autogenerated {V8,JS}IDBKey{Custom,}.{cpp,h} from the project files.

        No new tests - just code moves/removing unused code. Updated binding reference test results.

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBKey.idl: Removed.
        * Target.pri:
        * UseJSC.cmake:
        * UseV8.cmake:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/IDBBindingUtilities.cpp:
        (WebCore::toJS): Moved here from JSIDBKeyCustom.cpp
        (WebCore):
        * bindings/js/JSIDBKeyCustom.cpp: Removed.
        * bindings/scripts/CodeGeneratorJS.pm:
        (JSValueToNative):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallString):
        (GetNativeType):
        (JSValueToNative):
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/TestObj.idl: Removed IDBKey-specific test.
        * bindings/scripts/test/V8/V8TestObj.cpp:
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::toV8): Moved here from V8IDBKeyCustom.cpp
        (WebCore):
        * bindings/v8/custom/V8IDBKeyCustom.cpp: Removed.

2013-01-22  Tony Gentilcore  <tonyg@chromium.org>

        Fix assertions in make8BitFrom16BitSource() with threaded parser
        https://bugs.webkit.org/show_bug.cgi?id=107596

        Reviewed by Adam Barth.

        This fixes an assertion in several fast/parser tests. We need to keep track of whether the data is all 8bit.
        Luckily this doesn't cost us any size on CompactHTMLToken because the bitfields are collapsed (verified by COMPILE_ASSERT).

        No new tests because covered by existing fast/parser tests.

        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        * html/parser/CompactHTMLToken.h:
        (WebCore::CompactHTMLToken::isAll8BitData):
        (CompactHTMLToken):
        * html/parser/HTMLToken.h:
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):

2013-01-22  Tony Gentilcore  <tonyg@chromium.org>

        Fix ASSERT(!hasInsertionPoint()) in threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=107593

        Reviewed by Adam Barth.

        Prior to this patch, several fast/parser tests hit ASSERT(!hasInsertionPoint()) in prepareToStopParsing().
        That was because hasInsertionPoint() checks m_input.haveSeenEndOfFile() which was skipped for the threaded
        parser case. This patch causes us to call markEndOfFile().

        No new tests because covered by existing fast/parser tests.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser): This FIXME was done in a previous patch.
        (WebCore::HTMLDocumentParser::finish):

2013-01-22  Joshua Bell  <jsbell@chromium.org>

        Prevent race condition during Worker shutdown
        https://bugs.webkit.org/show_bug.cgi?id=107577

        Reviewed by Dmitry Titov.

        During worker shutdown, from the main thread a cleanup task is posted followed by
        terminating the message queue, which prevents further tasks from being processed. It was
        possible for another task be posted by another thread between the main thread calls
        to postTask and terminate(), which would cause that task to run after cleanup. Expose
        a new WTF::MessageQueue::appendAndKill() method which keeps a mutex around the two steps,
        and use that during worker shutdown.

        No reliable tests for the race - problem identified by inspection of user crash stacks.

        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::postTaskAndTerminate): New method, uses MessageQueue::appendAndKill()
        * workers/WorkerRunLoop.h:
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::stop): Uses postTaskAndTerminate() to avoid race.

2013-01-22  Tony Chang  <tony@chromium.org>

        Unreviewed, rolling out r140171.
        http://trac.webkit.org/changeset/140171
        https://bugs.webkit.org/show_bug.cgi?id=107193

        Regressed scrollable region size in other cases.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::simplifiedLayout):

2013-01-22  Alexey Proskuryakov  <ap@apple.com>

        [WK2] WebProcessService is not terminated when page is closed
        https://bugs.webkit.org/show_bug.cgi?id=107595

        Reviewed by Anders Carlsson.

        * platform/mac/RunLoopMac.mm: (WebCore::RunLoop::stop): Allow stopping XPC service
        run loop. Also, harmonized NSApp vs. [NSApplication sharedApplication] usage.

2013-01-22  Ojan Vafai  <ojan@chromium.org>

        REGRESION(r130774): preferred width of tables does not take max-width into account
        https://bugs.webkit.org/show_bug.cgi?id=107576

        Reviewed by Tony Chang.

        Constrain preferred widths by min/max the way we do in other
        RenderBlock subclasses. Eventually, we'll shared the code with
        RenderBlock, but this is an incremental step in that direction
        that we can safely merge into release branches.

        Test: fast/table/min-max-width-preferred-size.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::computePreferredLogicalWidths):

2013-01-22  Adam Barth  <abarth@webkit.org>

        The BackgroundHTMLParser shouldn't pause when waiting for scripts
        https://bugs.webkit.org/show_bug.cgi?id=107584

        Reviewed by Eric Seidel.

        Previously, the BackgroundHTMLParser would pause itself when it
        encountered a scrip tag and wait for a signal from the main thread to
        continue. After this patch, the BackgroundHTMLParser continues ahead
        and the main thread keeps a queue of pending tokens.

        This patch brings us closer to speculative parsing because when the
        BackgroundHTMLParser is continuing ahead, it is speculating that it is
        in the correct state. A future patch will let us abort incorret
        speculations and resume from an eariler point in the input stream.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::checkThatTokensAreSafeToSendToAnotherThread):
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        (WebCore::TokenDelivery::TokenDelivery):
        (TokenDelivery):
        (WebCore::TokenDelivery::execute):
        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
        * html/parser/BackgroundHTMLParser.h:
        (BackgroundHTMLParser):
        * html/parser/CompactHTMLToken.h:
        (WebCore):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
        (WebCore):
        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):

2013-01-22  Simon Fraser  <simon.fraser@apple.com>

        Fix scrollperf logging
        https://bugs.webkit.org/show_bug.cgi?id=107589

        Reviewed by Tim Horton.

        The scrollperf logging had two issues:

        1. It relied on a paint logging a "filled" event, but it's possible
        for existing tiles to be moved into the viewport and filling it, so
        we need to log from the scrolling thread both when we have unfilled pixels,
        and when the last scroll revealed unfilled pixels.
        
        2. On some pages, z-index:-1 elements behind the body cause the root
        TileCache to have drawsContent set to false, so none of its tiles paint. In
        that case, the check for a non-zero paintCount in TileCache::blankPixelCountForTiles()
        was wrong; we don't think there's a way to have an unpainted tile in the tree.
        
        Also fix the signature of blankPixelCountForTiles() to take references.

        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        (ScrollingTreeScrollingNodeMac):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::blankPixelCountForTiles):

2013-01-22  Eric Seidel  <eric@webkit.org>

        Make CompactHTMLToken a little more compact
        https://bugs.webkit.org/show_bug.cgi?id=107317

        Reviewed by Adam Barth.

        The windows builders got sad because MSVC won't combine
        adjacent bit-fields with different types.  Changing
        bool to unsigned should fix the problem.

        * html/parser/CompactHTMLToken.h:
        (CompactHTMLToken):

2013-01-22  Anthony Scian  <ascian@rim.com>

        [Blackberry] Static code analysis warning fixes
        https://bugs.webkit.org/show_bug.cgi?id=107464

        Reviewed by Rob Buis.

        Klocwork issues: 1367, 2367
        - add NULL pointer checks detected by static code analysis

        * platform/blackberry/WidgetBlackBerry.cpp:
        (WebCore::Widget::setCursor):
        * plugins/blackberry/PluginViewBlackBerry.cpp:
        (WebCore::PluginView::updatePluginWidget):

2013-01-22  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] Enable Page Visibility (PAGE_VISIBILITY_API)
        https://bugs.webkit.org/show_bug.cgi?id=107230

        Reviewed by David Kilzer.

        No new tests. Covered by existing tests which are now unskipped.

        * Configurations/FeatureDefines.xcconfig:

2013-01-22  Tony Gentilcore  <tonyg@chromium.org>

        Make BackgroundHTMLParser track line/column numbers
        https://bugs.webkit.org/show_bug.cgi?id=107561

        Reviewed by Adam Barth.

        No new tests because covered by existing fast/parser tests.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        * html/parser/CompactHTMLToken.cpp:
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        * html/parser/CompactHTMLToken.h:
        (CompactHTMLToken):
        (WebCore::CompactHTMLToken::textPosition):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
        (WebCore::HTMLDocumentParser::lineNumber):
        (WebCore::HTMLDocumentParser::textPosition):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):

2013-01-22  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Don't assert when deprecated setCallbacks is called
        https://bugs.webkit.org/show_bug.cgi?id=107580

        Reviewed by Tony Chang.

        Remove an assert for IDBTransactionBackendImpl that was deprecated
        in a previous commit, but is still called by old chromium code.
        After the chromium code is removed, this method will be removed
        entirely.

        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::setCallbacks):

2013-01-22  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Disable CSS Regions in release builds
        https://bugs.webkit.org/show_bug.cgi?id=106541

        Reviewed by Martin Robinson.

        The CSS Regions feature is not yet deemed stable enough to be enabled
        in release builds, so disable it. It's still enabled for development
        builds, via FeatureList.pm.

        No new tests - no testable changes.

        * GNUmakefile.features.am.in:

2013-01-22  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Enable the <template> element support in development builds
        https://bugs.webkit.org/show_bug.cgi?id=106575

        Reviewed by Martin Robinson.

        Add a missing build target that contains the custom JS bindings.

        No new tests - the related tests are being unskipped and mostly pass.

        * GNUmakefile.list.am:

2013-01-22  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove dependency on IDBKey type from IDLs
        https://bugs.webkit.org/show_bug.cgi?id=106912

        Reviewed by Kentaro Hara.

        This is a preamble to wkbug.com/97375 "Remove IDBKey from WebKitIDL"; IDBKey is
        not a concept from the Indexed DB spec but a convenient internal type. It was
        exposed in the IDL with custom binding code and special cases in the generator
        to map from script values to the WebCore type. To remove those special cases
        and match the WebIDL in the spec, the IDLs are changed to use "any" and the
        implementations now take ScriptValues. This does mean that each call site must
        call into IDBBindingUtilities to map from ScriptValue to IDBKey.

        No new tests - just a refactor.

        * Modules/indexeddb/IDBAny.cpp: Remove IDBKey as a variant type - just use ScriptValue.
        * Modules/indexeddb/IDBAny.h:
        (WebCore):
        (IDBAny):
        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::continueFunction): Now takes any/ScriptValue.
        (WebCore):
        * Modules/indexeddb/IDBCursor.h:
        (WebCore::IDBCursor::continueFunction):
        (IDBCursor):
        * Modules/indexeddb/IDBCursor.idl:
        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::deleteFunction):
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::cmp): Now takes any/ScriptValue.
        * Modules/indexeddb/IDBFactory.h:
        (IDBFactory):
        * Modules/indexeddb/IDBFactory.idl:
        * Modules/indexeddb/IDBIndex.cpp:
        (WebCore::IDBIndex::openCursor): Now takes any/ScriptValue.
        (WebCore::IDBIndex::count): Now takes any/ScriptValue.
        (WebCore::IDBIndex::openKeyCursor): Now takes any/ScriptValue.
        (WebCore::IDBIndex::get): Now takes any/ScriptValue.
        (WebCore::IDBIndex::getKey): Now takes any/ScriptValue.
        * Modules/indexeddb/IDBIndex.h:
        (WebCore::IDBIndex::openCursor):
        (IDBIndex):
        (WebCore::IDBIndex::openKeyCursor):
        * Modules/indexeddb/IDBIndex.idl:
        * Modules/indexeddb/IDBKeyRange.cpp:
        (WebCore::IDBKeyRange::create): Add helper for back-end creation of single-key ranges.
        (WebCore):
        (WebCore::IDBKeyRange::lowerValue): Impl. of new "any" type accessor exposed to script.
        (WebCore::IDBKeyRange::upperValue): Ditto.
        (WebCore::IDBKeyRange::only): Now takes any/ScriptValue.
        (WebCore::IDBKeyRange::lowerBound): Now takes any/ScriptValue.
        (WebCore::IDBKeyRange::upperBound): Now takes any/ScriptValue.
        (WebCore::IDBKeyRange::bound): Now takes any/ScriptValue.
        * Modules/indexeddb/IDBKeyRange.h:
        (IDBKeyRange):
        (WebCore::IDBKeyRange::lowerBound):
        (WebCore::IDBKeyRange::upperBound):
        (WebCore::IDBKeyRange::bound):
        * Modules/indexeddb/IDBKeyRange.idl:
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::get): Now takes any/ScriptValue.
        (WebCore::IDBObjectStore::add): Now takes any/ScriptValue.
        (WebCore):
        (WebCore::IDBObjectStore::put): Now takes any/ScriptValue.
        (WebCore::IDBObjectStore::deleteFunction): Now takes any/ScriptValue.
        (WebCore::IDBObjectStore::openCursor): Now takes any/ScriptValue.
        (WebCore::IDBObjectStore::count): Now takes any/ScriptValue.
        * Modules/indexeddb/IDBObjectStore.h:
        (IDBObjectStore):
        (WebCore::IDBObjectStore::openCursor):
        * Modules/indexeddb/IDBObjectStore.idl:
        * Modules/indexeddb/IDBRequest.cpp: Result IDBAny type is now ScriptValue.
        (WebCore::IDBRequest::onSuccess):
        * bindings/js/IDBBindingUtilities.cpp:
        (WebCore::scriptValueToIDBKey): The inverse of idbKeyToScriptValue().
        (WebCore):
        * bindings/js/IDBBindingUtilities.h:
        (WebCore):
        * bindings/js/JSIDBAnyCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::scriptValueToIDBKey): Ditto.
        (WebCore):
        * bindings/v8/IDBBindingUtilities.h:
        (WebCore):
        * bindings/v8/custom/V8IDBAnyCustom.cpp:
        (WebCore::toV8): Remove IDBKey variant type.

2013-01-22  Justin Schuh  <jschuh@chromium.org>

        TRANSFORMATION_MATRIX_USE_X86_64_SSE2 broken for 64-bit Windows builds
        https://bugs.webkit.org/show_bug.cgi?id=107498

        Reviewed by James Robinson.
        
        Enable TRANSFORMATION_MATRIX_USE_X86_64_SSE2 for 64-bit Windows.

        No new tests. Covered by existing tests.

        * platform/graphics/transforms/TransformationMatrix.h:
        (WebCore):
        (TransformationMatrix):

2013-01-22  Min Qin  <qinmin@chromium.org>

        Fix a race condition on SkBitmap::lockPixels()/unlockPixels() for lazy image decoding
        https://bugs.webkit.org/show_bug.cgi?id=107404

        Reviewed by Stephen White.

        Skbitmap::lockPixels()/unlockPixels() are not threadsafe.
        unlike SkPixelRef, these 2 calls are not protected by an internal mutex.
        Bugfix, no behaviral change and hard to test as tests will be flaky.

        * platform/graphics/chromium/ImageDecodingStore.cpp:
        (WebCore::ImageDecodingStore::lockCache):
        (WebCore::ImageDecodingStore::unlockCache):
        (WebCore::ImageDecodingStore::insertAndLockCache):
        (WebCore::ImageDecodingStore::overwriteAndLockCache):
        * platform/graphics/chromium/ImageDecodingStore.h:
        (ImageDecodingStore):

2013-01-22  Eric Seidel  <eric@webkit.org>

        Make CompactHTMLToken a little more compact
        https://bugs.webkit.org/show_bug.cgi?id=107317

        Reviewed by Darin Adler.

        Reduce the size of CompactHTMLToken by two pointers.
        The abuse of the attribute vector to store the DOCTYPE strings
        is kinda lame, but makes a lot of sense given how rare DOCTYPE tokens are.

        The resulting CompactHTMLToken vector should be a smaller malloc and thus faster.
        However I saw no perf change on html-parser-srcdoc.html.

        * html/parser/CompactHTMLToken.cpp:
        (SameSizeAsCompactHTMLToken):
        (WebCore):
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
        * html/parser/CompactHTMLToken.h:
        (WebCore::CompactHTMLToken::type):
        (CompactHTMLToken):
        (WebCore::CompactHTMLToken::publicIdentifier):
        (WebCore::CompactHTMLToken::systemIdentifier):

2013-01-22  Elliott Sprehn  <esprehn@chromium.org>

        Assertion parent->inDocument() failed in WebCore::PseudoElement::PseudoElement
        https://bugs.webkit.org/show_bug.cgi?id=106224

        Reviewed by Ojan Vafai.

        Appending a node that contains a <style> and also elements that should have
        generated content can cause us to create PseudoElements in nodes that are not
        yet inDocument because we may recalcStyle in HTMLStyleElement::insertedInto
        triggering a reattach() which could then traverse into the siblings of the
        <style> attaching them even though they are not yet inDocument.

        This means that we should not assert about the parent of a PseudoElement
        being inDocument as this is not always the case.

        Instead forward Node::insertedInto and removedFrom notifications to
        PseudoElements so they will correctly get their inDocument bit set. Nothing
        in the code appears to depend on them being inDocument we just make sure to
        set it so they're consistent with the rest of the document.

        No new tests, there's no way to test that PseudoElements are really inDocument.

        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        * dom/PseudoElement.cpp:
        (WebCore::PseudoElement::PseudoElement):

2013-01-22  Alexis Menard  <alexis@webkit.org>

        Allow construction of unprefixed transition DOM events.
        https://bugs.webkit.org/show_bug.cgi?id=107319

        Reviewed by Dean Jackson.

        Make possible to construct unprefixed DOM events for transitions.
        Unfortunately I have to duplicate the C++ implementation class of the
        events (TransitionEvent.h and TransitionEvent.cpp). I can't find a
        better way to re-use the WebKitTransitionEvent class to back the
        TransitionEvent.idl as our code generators don't allow to have a
        different name for the C++ class used in the generated file than the
        interface name specified in the IDL file. Unfortunately
        https://trac.webkit.org/wiki/WebKitIDL#InterfaceName doesn't help as
        it's only a way to unlink the interface name specified in the IDL with
        the one exposed in JavaScript. I don't think we should support such a
        feature in our code generators as WebKitTransitionEvent class and more
        exactly prefixed DOM events for transitions will be removed one day so
        this use case will become obselete.

        Test: fast/events/constructors/transition-event-constructor.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/EventNames.in:
        * dom/TransitionEvent.cpp: Added.
        (WebCore):
        (WebCore::TransitionEventInit::TransitionEventInit):
        (WebCore::TransitionEvent::TransitionEvent):
        (WebCore::TransitionEvent::~TransitionEvent):
        (WebCore::TransitionEvent::propertyName):
        (WebCore::TransitionEvent::elapsedTime):
        (WebCore::TransitionEvent::interfaceName):
        * dom/TransitionEvent.h: Added.
        (WebCore):
        (TransitionEventInit):
        (TransitionEvent):
        (WebCore::TransitionEvent::create):
        * dom/TransitionEvent.idl: Added.
        * page/DOMWindow.idl:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): always
        create a TransitionEvent now. EventTarget will be responsible to create
        a WebKitTransitionEvent if necessary.

2013-01-22  Adam Barth  <abarth@webkit.org>

        Wean BackgroundHTMLParser off HTMLInputStream
        https://bugs.webkit.org/show_bug.cgi?id=107575

        Reviewed by Eric Seidel.

        The BackgroundHTMLParser doesn't need to use HTMLInputStream because it
        doesn't need to handle nested calls to document.write. Instead, we can
        just use a SegmentedString directly, which will let us checkpoint
        m_input for speculation.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::append):
        (WebCore::BackgroundHTMLParser::finish):
        (WebCore::BackgroundHTMLParser::markEndOfFile):
        (WebCore):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        * html/parser/BackgroundHTMLParser.h:
        (BackgroundHTMLParser):

2013-01-22  Sergio Villar Senin  <svillar@igalia.com>

        [Soup] Random thread crashes
        https://bugs.webkit.org/show_bug.cgi?id=107439

        Reviewed by Martin Robinson.

        Process all pending requests in the inner GMainContext created to
        perform synchronous requests before restoring the thread default. No
        new tests required, already covered by network tests.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):

2013-01-22  Christophe Dumez  <christophe.dumez@intel.com>

        [gstreamer] GstBus signal watch should be removed on clean up
        https://bugs.webkit.org/show_bug.cgi?id=107544

        Reviewed by Philippe Normand.

        Our gstreamer backend code currently calls gst_bus_add_signal_watch()
        on GstBus to add a signal watch. As per the gstreamer  documentation,
        "To clean up, the caller is responsible for calling
        gst_bus_remove_signal_watch() as many times as this function is
        called". This is because gst_bus_add_signal_watch() causes the GstBus
        object to be ref'd and gst_bus_remove_signal_watch() needs to be
        called to properly unref it.

        This patch makes sure that gst_bus_remove_signal_watch() is called
        on the GstBus object when cleaning up. This patch also uses smart
        pointers for GstBus objects for consistency.

        No new tests, no behavior change for layout tests.

        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
        (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (WebCore::AudioFileReader::~AudioFileReader):
        (WebCore::AudioFileReader::decodeAudioForBusCreation):
        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
        (WebCore::GStreamerGWorld::GStreamerGWorld):
        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (webkitGstPipelineGetBus):
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):

2013-01-22  Adam Barth  <abarth@webkit.org>

        BackgroundHTMLParser should simulate tree building in a separate function
        https://bugs.webkit.org/show_bug.cgi?id=107569

        Reviewed by Eric Seidel.

        This patch cleans up BackgroundHTMLParser::pumpTokenizer to prepare for
        implementing speculative parsing.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
        (WebCore):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        * html/parser/BackgroundHTMLParser.h:
        (BackgroundHTMLParser):
        * page/Settings.in:

2013-01-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140435.
        http://trac.webkit.org/changeset/140435
        https://bugs.webkit.org/show_bug.cgi?id=107565

        Crashes on ClusterFuzz due to float not removed (Requested by
        inferno-sec on #webkit).

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):

2013-01-22  Robert Hogan  <robert@webkit.org>

        When we do setAttribute("border", null) on a table we should create a border like every other browser
        https://bugs.webkit.org/show_bug.cgi?id=102112

        Reviewed by Ryosuke Niwa.

        http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#tables says:
        "If the [table's border] attribute is present but parsing the attribute's value using the rules for parsing 
        non-negative integers generates an error, a default value of 1px is expected to be used for that property instead."

        Match the spec and bring us into line with other browsers by observing the 'parsing non-negative integers' algorithm.

        Tests: fast/dom/HTMLTableElement/table-with-invalid-border.html
               fast/table/table-with-borderattr-null.html
               fast/table/table-with-borderattr-set-to-null.html

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseBorderWidthAttribute):
        (WebCore::HTMLElement::applyBorderAttributeToStyle):
        * html/HTMLElement.h:
        (HTMLElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
        (WebCore::HTMLTableElement::parseAttribute):

2013-01-22  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::RenderObject::isDescendantOf
        https://bugs.webkit.org/show_bug.cgi?id=107226

        Reviewed by Emil A Eklund.

        Test: fast/block/float/overhanging-float-not-removed-crash.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
        Skip anonymous blocks in the chain to get the enclosing block and
        be able to correctly mark the overhanging floats in the next siblings.

2013-01-22  Justin Schuh  <jschuh@chromium.org>

        Silence MSVC 64-bit build warning c4309 for FrameTree::invalidCount
        https://bugs.webkit.org/show_bug.cgi?id=107439

        Reviewed by Dimitri Glazkov.
        
        MSVC detects that the constant notFound is truncated on assignment to
        invalidCount. Since we never compare them (as it would always fail on
        64-bit anyway), just initialize invalidCount directly to -1.

        No new tests. No behavior changed.

        * page/FrameTree.h:
        (FrameTree):

2013-01-22  Zan Dobersek  <zdobersek@igalia.com>

        [Autotools] Remove the Canvas Path configuration option
        https://bugs.webkit.org/show_bug.cgi?id=107537

        Reviewed by Martin Robinson.

        No new tests - no new testable functionality.

        * GNUmakefile.am: Remove the Automake conditional analysis, the related
        configuration option is being removed as well.
        * GNUmakefile.features.am.in: Add the ENABLE_CANVAS_PATH feature define,
        defaulting to 0 in release builds (but is disabled in development builds
        of the GTK port as well at the moment).

2013-01-18  Stephen Chenney  <schenney@chromium.org>

        Asserts when textPath is used with no path
        https://bugs.webkit.org/show_bug.cgi?id=107324

        Reviewed by Eric Seidel.

        We assert when there is no path associated with an SVG text path
        element. Instead, this patch detects the condition and stops trying to
        layout text for that textPath  element.

        Test: svg/text/tpath-without-path.svg

        * rendering/svg/SVGTextLayoutEngine.cpp:
        (WebCore::SVGTextLayoutEngine::beginTextPathLayout):
        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):

2013-01-22  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] jump to prev/next drawing call in the replay
        https://bugs.webkit.org/show_bug.cgi?id=107551

        Reviewed by Pavel Feldman.

        Implement jumping to the next(previous) drawing call in the WebGL and canvas 2D replay.

        * English.lproj/localizedStrings.js:
        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype.dispose):
        (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
        * inspector/front-end/canvasProfiler.css:
        (.canvas-replay-prev-draw img):
        (.canvas-replay-next-draw img):

2013-01-22  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: remove asynchronous behavior from DTE paintLines method
        https://bugs.webkit.org/show_bug.cgi?id=107550

        Reviewed by Pavel Feldman.

        Remove paintLinesOperationCredit and all asynchronous behaviour from paintLines method;
        also, remove paintLineChunks method.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype.expandChunks):
        (WebInspector.TextEditorMainPanel.prototype._highlightDataReady):
        (WebInspector.TextEditorMainPanel.prototype._paintLines):
        (WebInspector.TextEditorMainPanel.prototype._renderRanges):
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):

2013-01-22  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] "Secure" cookies can not be deleted.
        https://bugs.webkit.org/show_bug.cgi?id=107543

        Reviewed by Pavel Feldman.

        To delete secure cookie URL schema need to be "https" instead of "http".

        * inspector/front-end/CookieItemsView.js:
        (WebInspector.CookieItemsView.prototype._deleteCookie):
        Take care of secure cookies.

2013-01-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140420.
        http://trac.webkit.org/changeset/140420
        https://bugs.webkit.org/show_bug.cgi?id=107557

        Still causes crashes (EFL this time) (Requested by kov on
        #webkit).

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (StreamingClient):
        (_WebKitWebSrcPrivate):
        (webKitWebSrcFinalize):
        (webKitWebSrcStop):
        (StreamingClient::didReceiveData):
        * platform/network/ResourceHandleClient.h:
        (ResourceHandleClient):
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (ResourceHandleInternal):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::cleanupSoupRequestOperation):
        (WebCore::nextMultipartResponsePartCallback):
        (WebCore::sendRequestCallback):
        (WebCore::readCallback):

2013-01-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Crash in PasteboardQt.cpp Pasteboard::writeSelection
        https://bugs.webkit.org/show_bug.cgi?id=102192

        Patch by Fabien Valée
        Reviewed by Jocelyn Turcotte.

        QClipboard::setMimeData transfers ownership of QMimeData to the clipboard,
        so we should not access it afterwards.

        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::writeSelection):
        (WebCore::Pasteboard::writePlainText):

2013-01-22  Christophe Dumez  <christophe.dumez@intel.com>

        Regression(r140414): It is causing crashes with gstreamer 0.10
        https://bugs.webkit.org/show_bug.cgi?id=107554

        Reviewed by Philippe Normand.

        gstreamer 0.10 doc led me to believe that gst_element_factory_make()
        was not returning a floating reference. However, based on testing
        (and results on Qt port) it does so we should NOT adopt the
        returned GstElement object.

        No new tests, already covered by existing tests.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

2013-01-22  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: do not highlight really long lines in DTE.
        https://bugs.webkit.org/show_bug.cgi?id=107531

        Reviewed by Pavel Feldman.

        Improve TextEditorHighlighter.orderedRangesPerLine method to return
        only ranges that start before particular column.

        Test: inspector/editor/text-editor-long-line.html

        * inspector/front-end/TextEditorHighlighter.js:
        (WebInspector.TextEditorHighlighter):
        (WebInspector.TextEditorHighlighter.prototype.setHighlightLineLimit):
        (WebInspector.TextEditorHighlighter.prototype.orderedRangesPerLine.comparator):
        (WebInspector.TextEditorHighlighter.prototype.orderedRangesPerLine):

2013-01-22  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
        https://bugs.webkit.org/show_bug.cgi?id=105552

        Reviewed by Philippe Normand.

        Makes it possible for the GStreamer media backend to provide the buffer to which
        the Soup networking backend will use to download data to. This makes copying
        memory unnecessary when ResourceHandle hands data over to the media player's
        StreamingClient. Thanks to Dan Winship for help designing the interface.

        No behaviour change, covered by existing tests.

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (createGstBufferForData): New helper to create a GstBuffer when
        we have a data pointer and a length.
        (getGstBufferSize): Abstract obtaining the size of the buffer, so the code
        is cleaner while still working for both GST 0.10 and 1.0.
        (setGstBufferSize): Ditto, but for setting the size.
        (getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
        (mapGstBuffer): Convenience method to take care of mapping the buffer so that
        we can provide the data pointer to ResourceHandle.
        (unmapGstBuffer): Convenience method which takes care of unmapping the buffer
        and properly freeing the GstMapInfo.
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (StreamingClient): New methods.
        (_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
        so we can later unmap it and push it to the pipeline.
        (webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
        destroyed.
        (webKitWebSrcStop): Also clear the GstBuffer in this case.
        (StreamingClient::didReceiveData): Handle the hand-over of the buffer.
        (StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
        * platform/network/ResourceHandleClient.h:
        (ResourceHandleClient):
        (WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
        member variable to 0.
        (WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
        has been allocated.
        (WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
        newly allocated char pointer.
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
        buffer is handled by the ResourceHandleClient.
        (WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
        (WebCore::sendRequestCallback): Ditto.
        (WebCore::readCallback): Ditto.

2013-01-22  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL] Fix context menu localized string
        https://bugs.webkit.org/show_bug.cgi?id=107536

        One of localized string has a marker. Since EFL port does not support them
        it has to be removed, so the string will be displayed properly.

        Reviewed by Laszlo Gombos.

        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::contextMenuItemTagCheckSpellingWhileTyping)

2013-01-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140412.
        http://trac.webkit.org/changeset/140412
        https://bugs.webkit.org/show_bug.cgi?id=107549

        Broke rendering of buttons on gmail (Requested by carewolf on
        #webkit).

        * platform/graphics/qt/TransparencyLayer.h:
        (WebCore::TransparencyLayer::TransparencyLayer):

2013-01-22  Christophe Dumez  <christophe.dumez@intel.com>

        [gstreamer] MediaPlayerPrivateGStreamer should take ownership of the playbin
        https://bugs.webkit.org/show_bug.cgi?id=107445

        Reviewed by Philippe Normand.

        In gstreamer 1.0, gst_element_factory_make() now returns a floating reference.
        MediaPlayerPrivateGStreamer calls gst_element_factory_make() to create the
        playbin object but does not take ownership of the object. As a consequence,
        the object keeps floating until it is unref'd in the
        MediaPlayerPrivateGStreamer destructor.

        This patch uses a GRefPtr<GstElement> to store the playbin object and only
        adopt the object returned by gst_element_factory_make() if gstreamer 0.10
        is used. When gstreamer 1.0 is used, the returned object will not be adopted,
        which will remove the floating reference. This way, we ensure that the
        playbin object is owned by MediaPlayerPrivateGStreamer.

        No new tests, no behavior change for layout tests.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::load):
        (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
        (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
        (WebCore::MediaPlayerPrivateGStreamer::duration):
        (WebCore::MediaPlayerPrivateGStreamer::seek):
        (WebCore::MediaPlayerPrivateGStreamer::paused):
        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
        (WebCore::MediaPlayerPrivateGStreamer::setVolume):
        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange):
        (WebCore::MediaPlayerPrivateGStreamer::setRate):
        (WebCore::MediaPlayerPrivateGStreamer::buffered):
        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
        (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):

2013-01-22  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Fix closure compiler warning in inspector front-end after r140390.

        * inspector/front-end/HeapSnapshotView.js:

2013-01-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Box shadows on a transparency layer is very slow
        https://bugs.webkit.org/show_bug.cgi?id=107547

        Reviewed by Noam Rosenthal.

        Set an initial clip on the transparency layer, so that the clipping
        bounds will never end up larger than the layer.

        * platform/graphics/qt/TransparencyLayer.h:
        (WebCore::TransparencyLayer::TransparencyLayer):

2013-01-22  Matt Falkenhagen  <falken@chromium.org>

        Move top layer flag from ElementRareData to NodeFlags
        https://bugs.webkit.org/show_bug.cgi?id=107542

        Reviewed by Hajime Morita.

        This is a speculative fix for a perf regression (https://bugs.webkit.org/show_bug.cgi?id=106726)
        likely due to checking the top layer flag in Element::removedFrom. It
        also simplifies code dealing with top layer and makes it no longer
        necessary to allocate rare data for top layer.

        * dom/Element.cpp:
        (WebCore::Element::removedFrom): Check isInTopLayer first in case it helps fix the perf regression.
        (WebCore):
        * dom/Element.h: Move top layer functions from Element to Node.
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData): Remove top layer flag from ElementRareData.
        * dom/Node.cpp: Move top layer functions from Element to Node.  
        (WebCore):
        (WebCore::Node::setIsInTopLayer):
        * dom/Node.h:
        (Node):
        (WebCore::Node::isInTopLayer):
        * dom/NodeRenderingContext.cpp: Remove unnecessary casts to Element for isInTopLayer().
        (WebCore::isRendererReparented):
        (WebCore::NodeRenderingContext::previousRenderer):
        (WebCore::NodeRenderingContext::parentRenderer):
        * rendering/RenderLayer.cpp: Ditto.
        (WebCore::RenderLayer::isInTopLayer):
        (WebCore::RenderLayer::rebuildZOrderLists):

2013-01-22  Mark Lam  <mark.lam@apple.com>

        Fix broken mac builds due to <http://trac.webkit.org/changeset/140399>.
        https://bugs.webkit.org/show_bug.cgi?id=100710.

        Not reviewed.

        No new tests.

        * WebCore.xcodeproj/project.pbxproj:

2013-01-22  Dan Carney  <dcarney@google.com>

        [v8] Convert string conversion calls to one byte versions
        https://bugs.webkit.org/show_bug.cgi?id=107524

        Reviewed by Kentaro Hara.

        No new tests. No change in functionality.

        * bindings/v8/SerializedScriptValue.cpp:
        * bindings/v8/V8StringResource.cpp:
        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
        (StringTraits):
        (WebCore::true):
        (WebCore::v8StringToWebCoreString):

2013-01-22  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] CookiesTable refactoring.
        https://bugs.webkit.org/show_bug.cgi?id=107511

        Reviewed by Pavel Feldman.

        CookiesTable uses integer indexes as column identifiers.
        This leads to cryptic code.

        Descriptive column identifiers will make code clearer.
        Also "addCookiesFolder" replaced with "setCookieFolders" to avoid
        repetitive "_rebuildTable" invocation.

        * inspector/front-end/CookiesTable.js:
        (WebInspector.CookiesTable): Use descriptive column identifiers.
        (WebInspector.CookiesTable.prototype.setCookieFolders):
        Accept multiple folders.
        (WebInspector.CookiesTable.prototype._rebuildTable):
        Use descriptive column identifiers.
        (WebInspector.CookiesTable.prototype._sortCookies):
        Ditto.
        (WebInspector.CookiesTable.prototype._createGridNode):
        Ditto.
        * inspector/front-end/RequestCookiesView.js:
        (WebInspector.RequestCookiesView.prototype._buildCookiesTable):
        Use "setCookieFolders".

2013-01-22  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Disable support for unprefixed CSS animations, transitions, transforms in release builds
        https://bugs.webkit.org/show_bug.cgi?id=107436

        Reviewed by Alexis Menard.

        Disable the unprefixed CSS animations, transitions and transforms support
        in the release builds for now. The work in this area is not yet complete
        and should not ship in such state.

        No new tests - no new functionality.

        * GNUmakefile.features.am.in:

2013-01-22  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [REGRESSION] SASSSourceMapping broken: _bindUISourceCode method is absent
        https://bugs.webkit.org/show_bug.cgi?id=107529

        Reviewed by Pavel Feldman.

        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping.prototype._fileSaveFinished):

2013-01-22  Adam Barth  <abarth@webkit.org>

        AtomicMarkupTokenBase must die
        https://bugs.webkit.org/show_bug.cgi?id=107513

        Reviewed by Eric Seidel.

        Now that NEW_XML has been removed from the tree, there is no reason to
        have AtomicMarkupTokenBase exist as a templated base class for
        AtomicHTMLToken. This patch just merges the code back into
        AtomicHTMLToken.

        * html/parser/HTMLToken.h:
        (AtomicHTMLToken):
        (WebCore::AtomicHTMLToken::type):
        (WebCore::AtomicHTMLToken::name):
        (WebCore::AtomicHTMLToken::setName):
        (WebCore::AtomicHTMLToken::selfClosing):
        (WebCore::AtomicHTMLToken::getAttributeItem):
        (WebCore::AtomicHTMLToken::attributes):
        (WebCore::AtomicHTMLToken::characters):
        (WebCore::AtomicHTMLToken::charactersLength):
        (WebCore::AtomicHTMLToken::isAll8BitData):
        (WebCore::AtomicHTMLToken::comment):
        (WebCore::AtomicHTMLToken::publicIdentifier):
        (WebCore::AtomicHTMLToken::systemIdentifier):
        (WebCore::AtomicHTMLToken::clearExternalCharacters):
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        (WebCore::AtomicMarkupTokenBase::initializeAttributes):
        (WebCore):
        * xml/parser/MarkupTokenBase.h:

2013-01-22  Eric Seidel  <eric@webkit.org>

        Turn on ENABLE_THREADED_HTML_PARSER for Chromium (it's still disabled at runtime)
        https://bugs.webkit.org/show_bug.cgi?id=107519

        Reviewed by Adam Barth.

        Add some ASSERTs to be double-dog-sure that we're never using
        any of the threading code when threading is not enabled.

        I also removed an if-branch in the !ENABLE_THREADED_HTML_PARSER case
        as it's not needed.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::prepareToStopParsing):
        (WebCore::HTMLDocumentParser::startBackgroundParser):
        (WebCore::HTMLDocumentParser::stopBackgroundParser):

2013-01-22  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in toV8()
        https://bugs.webkit.org/show_bug.cgi?id=107520

        Reviewed by Adam Barth.

        Now it's safe to remove an optional Isolate parameter.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::toV8):
        * css/MediaQueryListListener.cpp:
        (WebCore::MediaQueryListListener::queryChanged):
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::injectInternalsObject):

2013-01-22  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions] min-max height will not trigger a relayout when set on a region with auto-height
        https://bugs.webkit.org/show_bug.cgi?id=103738

        Reviewed by David Hyatt.

        When the style of an auto-height region changes with different min/max-height, we have to make sure
        that the 2-pass layout algorithm is run so that the region height is properly computed. When doing a 2-pass layout 
        for auto-height regions, we have to make sure that in the first pass, all auto-height regions start without a previously
        computed overrideLogicalContentHeight, otherwise we may end-up with incorrect results, illustrated by tests
        autoheight-two-pass-layout-complex-001.html and autoheight-two-pass-layout-complex-002.html.

        If we do not have auto height regions, a single pass layout in enough to correctly flow content inside regions.
        When we have auto height regions, the algorithm to lay out content should be:
        1. If the flow thread content does not need lay out, we do a single pass layout.
        If during the layout, an auto-height region needs layout or a normal (not auto height) region changes its box dimensions,
        we need to perform a new 2-pass layout after this layout completes. If not, we bail out and skip step 2.
        2. Do a full two pass layout and make sure that all auto height regions start the 2-pass layout without a previously computed
        override logical content height.

        Tests: fast/regions/autoheight-region-decrease-maxheight.html
               fast/regions/autoheight-region-decrease-minheight.html
               fast/regions/autoheight-region-decrease-width.html
               fast/regions/autoheight-region-increase-maxheight.html
               fast/regions/autoheight-region-increase-minheight.html
               fast/regions/autoheight-region-increase-width.html
               fast/regions/autoheight-region-new-maxheight-vrl.html
               fast/regions/autoheight-region-new-maxheight.html
               fast/regions/autoheight-region-new-minheight-vlr.html
               fast/regions/autoheight-region-new-minheight.html
               fast/regions/autoheight-region-remove-maxheight.html
               fast/regions/autoheight-region-remove-minheight.html
               fast/regions/autoheight-two-pass-layout-complex-001.html
               fast/regions/autoheight-two-pass-layout-complex-002.html
               fast/regions/region-height-auto-to-defined.html
               fast/regions/region-height-defined-to-auto.html

        * rendering/FlowThreadController.cpp: Added a flag that is needed to mark whether we need a full 2-pass layout.
        (WebCore::FlowThreadController::FlowThreadController):
        * rendering/FlowThreadController.h:
        (WebCore::FlowThreadController::needsTwoPassLayoutForAutoHeightRegions):
        (WebCore::FlowThreadController::setNeedsTwoPassLayoutForAutoHeightRegions):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight): Use invalidateRegions because we need also to mark the flow thread as needing layout.
        (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::layout): Make sure we do a 2-pass layout if needed.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::layoutContentInAutoLogicalHeightRegions): Added a new function that models the layout algorithm for the case when we have auto height regions
        and flow threads.
        (WebCore::RenderView::layout):
        (WebCore::RenderView::checkTwoPassLayoutForAutoHeightRegions):
        * rendering/RenderView.h:

2013-01-22  Adam Barth  <abarth@webkit.org>

        ENABLE(NEW_XML) isn't used by anyone and no one is actively working on it
        https://bugs.webkit.org/show_bug.cgi?id=100710

        Reviewed by Eric Seidel.

        As discussed on webkit-dev
        <http://lists.webkit.org/pipermail/webkit-dev/2012-August/022103.html>,
        ENABLE(NEW_XML) isn't used by anyone and no one is actively working on
        it. We should remove it from the code base for the time being. If folks
        want to work on it again, we can restore it from SVN history.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Document.cpp:
        (WebCore::Document::createParser):
        * dom/DocumentFragment.cpp:
        (WebCore::DocumentFragment::parseXML):
        * xml/parser/NewXMLDocumentParser.cpp: Removed.
        * xml/parser/NewXMLDocumentParser.h: Removed.
        * xml/parser/XMLCharacterReferenceParser.cpp: Removed.
        * xml/parser/XMLCharacterReferenceParser.h: Removed.
        * xml/parser/XMLToken.h: Removed.
        * xml/parser/XMLTokenizer.cpp: Removed.
        * xml/parser/XMLTokenizer.h: Removed.
        * xml/parser/XMLTreeBuilder.cpp: Removed.
        * xml/parser/XMLTreeBuilder.h: Removed.

2013-01-22  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to toV8() of event listeners
        https://bugs.webkit.org/show_bug.cgi?id=107517

        Reviewed by Adam Barth.

        By using Context::GetIsolate(), this patch passes an Isolate to toV8().
        I think this would be the last patch to pass an Isolate to toV8().
        In the next patch, I will make an Isolate parameter mandatory for toV8().

        No tests. No change in behavior.

        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::getReceiverObject):
        * bindings/v8/V8AbstractEventListener.h:
        (V8AbstractEventListener):
        * bindings/v8/V8EventListener.cpp:
        (WebCore::V8EventListener::callListenerFunction):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::toObjectWrapper):
        (WebCore::V8LazyEventListener::callListenerFunction):
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8WorkerContextEventListener.cpp:
        (WebCore::V8WorkerContextEventListener::getReceiverObject):

2013-01-22  Tim Horton  <timothy_horton@apple.com>

        PDFPlugin: Build PDFPlugin everywhere, enable at runtime
        https://bugs.webkit.org/show_bug.cgi?id=107117

        Reviewed by Alexey Proskuryakov.

        Since PDFLayerController SPI is all forward-declared, the plugin should build
        on all Mac platforms, and can be enabled at runtime.

        * Configurations/FeatureDefines.xcconfig:

2013-01-22  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Should assert if we try to create two AXObjects that point to the same renderer or node
        https://bugs.webkit.org/show_bug.cgi?id=107504

        Reviewed by Chris Fleizach.

        If two accessibility objects get created that point to the
        same widget, renderer, or node, that can lead to crashes or
        memory corruption later; make it assert instead of crashing.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):

2013-01-22  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to toV8()
        https://bugs.webkit.org/show_bug.cgi?id=107512

        Reviewed by Adam Barth.

        By using Context::GetIsolate(), this patch passes an Isolate to toV8().

        No tests. No change in behavior.

        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::injectIDBKeyIntoScriptValue):
        (WebCore::idbKeyToScriptValue):
        * bindings/v8/ScriptController.cpp:
        (WebCore::createScriptObject):
        (WebCore::ScriptController::createScriptObjectForPluginElement):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::currentCallFrame):
        * bindings/v8/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::set):
        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::handleEvent):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::updateDocumentProperty):
        * bindings/v8/V8MutationCallback.cpp:
        (WebCore::V8MutationCallback::handleEvent):
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8WorkerContextEventListener.cpp:
        (WebCore::V8WorkerContextEventListener::handleEvent):
        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
        (WebCore::V8SQLStatementErrorCallback::handleEvent):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::InjectedScriptHost::nodeAsScriptValue):

2013-01-22  Sergey Ryazanov  <serya@chromium.org>

        Web Inspector: Show requests in `curl` syntax in DevTools → Network → Headers
        https://bugs.webkit.org/show_bug.cgi?id=107276

        Reviewed by Pavel Feldman.

        Test: inspector/curl-command.html

        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._generateCurlCommand):

2013-01-22  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: reuse JS heap profiler UI for native heap graph representaion
        https://bugs.webkit.org/show_bug.cgi?id=107452

        Reviewed by Pavel Feldman.

        NativeHeapSnapshot is introduced to leverage JS heap snapshot processing algorithms
        for native heap graph. New snapshot type ("Native Heap Snapshot") is added to the
        profiles panel. It will represent native heap snapshots using the same UI as we use
        for JS heap snapshots.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot):
        (WebInspector.HeapSnapshot.prototype._init):
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotWorker):
        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapProfileHeader.prototype.load):
        (WebInspector.HeapProfileHeader.prototype.startSnapshotTransfer): extracted a few methods
        to support overrides for native heap snapshots.
        (WebInspector.HeapProfileHeader.prototype.snapshotConstructorName):
        (WebInspector.HeapProfileHeader.prototype._setupWorker):
        * inspector/front-end/NativeHeapSnapshot.js: Added.
        (WebInspector.NativeHeapSnapshot):
        (WebInspector.NativeHeapSnapshot.prototype.createNode):
        (WebInspector.NativeHeapSnapshot.prototype.createEdge):
        (WebInspector.NativeHeapSnapshot.prototype.createRetainingEdge):
        (WebInspector.NativeHeapSnapshot.prototype._markInvisibleEdges):
        (WebInspector.NativeHeapSnapshot.prototype._calculateFlags):
        (WebInspector.NativeHeapSnapshot.prototype.canHaveDistanceOne):
        (WebInspector.NativeHeapSnapshot.prototype.userObjectsMapAndFlag):
        (WebInspector.NativeHeapSnapshotNode):
        (WebInspector.NativeHeapSnapshotNode.prototype.canBeQueried):
        (WebInspector.NativeHeapSnapshotNode.prototype.isUserObject):
        (WebInspector.NativeHeapSnapshotNode.prototype.className):
        (WebInspector.NativeHeapSnapshotNode.prototype.classIndex):
        (WebInspector.NativeHeapSnapshotNode.prototype.id):
        (WebInspector.NativeHeapSnapshotNode.prototype.name):
        (WebInspector.NativeHeapSnapshotNode.prototype.isHidden):
        (WebInspector.NativeHeapSnapshotNode.prototype.isSynthetic):
        (WebInspector.NativeHeapSnapshotNode.prototype.isWindow):
        (WebInspector.NativeHeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
        (WebInspector.NativeHeapSnapshotNode.prototype.isDetachedDOMTree):
        (WebInspector.NativeHeapSnapshotEdge):
        (WebInspector.NativeHeapSnapshotEdge.prototype.clone):
        (WebInspector.NativeHeapSnapshotEdge.prototype.hasStringName):
        (WebInspector.NativeHeapSnapshotEdge.prototype.isElement):
        (WebInspector.NativeHeapSnapshotEdge.prototype.isHidden):
        (WebInspector.NativeHeapSnapshotEdge.prototype.isWeak):
        (WebInspector.NativeHeapSnapshotEdge.prototype.isInternal):
        (WebInspector.NativeHeapSnapshotEdge.prototype.isInvisible):
        (WebInspector.NativeHeapSnapshotEdge.prototype.isShortcut):
        (WebInspector.NativeHeapSnapshotEdge.prototype.name):
        (WebInspector.NativeHeapSnapshotEdge.prototype.toString):
        (WebInspector.NativeHeapSnapshotEdge.prototype._nameOrIndex):
        (WebInspector.NativeHeapSnapshotRetainerEdge):
        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.clone):
        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isElement):
        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isHidden):
        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isInternal):
        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isInvisible):
        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isShortcut):
        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isWeak):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotProfileType):
        (WebInspector.NativeSnapshotProfileType.prototype.get buttonTooltip):
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
        (WebInspector.NativeSnapshotProfileType.prototype.get treeItemTitle):
        (WebInspector.NativeSnapshotProfileType.prototype.get description):
        (WebInspector.NativeSnapshotProfileType.prototype.createTemporaryProfile):
        (WebInspector.NativeSnapshotProfileType.prototype.createProfile):
        (WebInspector.NativeSnapshotProfileHeader):
        (WebInspector.NativeSnapshotProfileHeader.prototype.createView):
        (WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
        (WebInspector.NativeSnapshotProfileHeader.prototype.snapshotConstructorName):
        (WebInspector.NativeSnapshotProfileHeader.prototype._takeNativeSnapshot): build a datastructure
        resembling one used for JS heap snapshots but populated with the data from the native snaphot.
        (WebInspector.NativeHeapSnapshotView):
        (WebInspector.NativeHeapSnapshotView.prototype.get profile):
        (WebInspector.NativeMemoryProfileType):
        (WebInspector.NativeMemoryProfileType.prototype.get buttonTooltip):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel):
        * inspector/front-end/WebKit.qrc:

2013-01-21  Kentaro Hara  <haraken@chromium.org>

        [V8] ScriptState::isolate() should use Context::GetIsolate()
        https://bugs.webkit.org/show_bug.cgi?id=107490

        Reviewed by Adam Barth.

        Now V8 provides Context::GetIsolate(). We should use it
        in ScriptState::isolate().

        * bindings/v8/ScriptState.h:
        (WebCore::ScriptState::isolate):
        (ScriptState):

2013-01-21  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL] Missing context menus strings
        https://bugs.webkit.org/show_bug.cgi?id=107104

        Reviewed by Kenneth Rohde Christiansen.

        Add 5 missing localization strings for text direction context menus.

        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::contextMenuItemTagRightToLeft):
        (WebCore::contextMenuItemTagLeftToRight):
        (WebCore::contextMenuItemTagWritingDirectionMenu):
        (WebCore::contextMenuItemTagTextDirectionMenu):
        (WebCore::contextMenuItemTagDefaultDirection):

2013-01-21  Kent Tamura  <tkent@chromium.org>

        Date selection from calendar picker should dispatch 'input' event in addition to 'change' event
        https://bugs.webkit.org/show_bug.cgi?id=107427

        Reviewed by Kentaro Hara.

        According to the specification and Opera's behavior, we should dispatch
        not only 'change' event but also 'input' event when a user chooses a
        date from the calender picker.

        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#common-event-behaviors
        > When the user agent changes the element's value on behalf of the user
        > (e.g. as part of a form prefilling feature), the user agent must follow
        > these steps:
        > 1. If the input event applies, queue a task to fire a simple event
        > that bubbles named input at the input element.
        > 2. If the change event applies, queue a task to fire a simple event
        > that bubbles named change at the input element.

        Tests: platform/chromium/fast/forms/calendar-picker/date-picker-events.html
               platform/chromium/fast/forms/calendar-picker/datetimelocal-picker-events.html

        * html/InputType.cpp:
        (WebCore::InputType::setValue): Add DispatchInputAndChangeEvent support.
        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
        Use DispatchInputAndChangeEvent, not DispatchChangeEvent.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
        Ditto.

2013-01-21  Justin Schuh  <jschuh@chromium.org>

        [CHROMIUM] Suppress c4267 build warnings for Win64 targets
        https://bugs.webkit.org/show_bug.cgi?id=107499

        Reviewed by Abhishek Arya.

        No new tests. No code changes.

        * WebCore.gyp/WebCore.gyp:

2013-01-21  Andreas Kling  <akling@apple.com>

        CSSSelector::value() should assert that m_match != Tag.
        <http://webkit.org/b/107500>

        Reviewed by Anders Carlsson.

        Add an assertion to catch anyone trying to extract a value() from a Tag selector.

        * css/CSSSelector.h:
        (CSSSelector):
        (WebCore::CSSSelector::value):

2013-01-21  Dimitri Glazkov  <dglazkov@chromium.org>

        Move HTML Attribute case-sensitivity logic out of SelectorChecker to HTMLDocument.
        https://bugs.webkit.org/show_bug.cgi?id=107460

        The case-sensitivity of HTML attributes is defined in HTML spec and is only applicable in HTML documents,
        so having this logic in HTMLDocument seems like a good thing.

        Reviewed by Eric Seidel.

        Refactoring, covered by existing tests.

        * css/SelectorChecker.cpp:
        (WebCore): Moved code out of here.
        (WebCore::isFastCheckableMatch): Changed the callsite to use new location.
        (WebCore::SelectorChecker::checkOne): Ditto.
        * html/HTMLDocument.cpp:
        (WebCore::addLocalNameToSet): Moved the code into here.
        (WebCore): Ditto.
        (WebCore::createHtmlCaseInsensitiveAttributesSet): Ditto.
        (WebCore::HTMLDocument::isCaseSensitiveAttribute): Ditto.
        * html/HTMLDocument.h:
        (HTMLDocument): Added decl for the newly moved function.

2013-01-21  Shinya Kawanaka  <shinyak@chromium.org>

        FrameSelection should use shadowHost instead of shadowAncestorNode
        https://bugs.webkit.org/show_bug.cgi?id=107220

        Reviewed by Kent Tamura.

        shadowAncestorNode() is deprecated and we want to use shadowHost.
        Here, all objects calling shadowAncestorNode() is in ShadowDOM, we can safely convert
        the call to shadowHost().

        No new tests, simple refactoring.

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::selectAll):

2013-01-21  Dirk Schulze  <dschulze@adobe.com>

        Add build flag for Canvas's Path object (disabled by default)
        https://bugs.webkit.org/show_bug.cgi?id=107473

        Reviewed by Dean Jackson.

        Add CANVAS_PATH build flag to build systems.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:

2013-01-21  Andreas Kling  <akling@apple.com>

        CSS: Make tag sub-selectors standalone CSSSelectors.
        <http://webkit.org/b/107111>

        Reviewed by Antti Koivisto.

        TL;DR: Instead of storing a QualifiedName with every CSSSelector, special-case tag selectors
               by promoting them to stand-alone CSSSelectors.
               33% reduction in CSS selector memory usage, 4.77 MB progression on Membuster3.
               Fixed some bugs in Shadow DOM that were exposed by these changes.

        A selector like this:

            div.tripp.trapp#trull { }

        Would previously be represented by a chain of 3 CSSSelector objects like so:

            [ Tag: "div",  Type: Class,  Value: "tripp" ]
            [ Tag:     *,  Type: Class,  Value: "trapp" ]
            [ Tag:     *,  Type: ID,     Value: "trull" ]

        After this change, the memory layout becomes:

            [ Type: Tag,    Value: "div"   ]
            [ Type: Class,  Value: "tripp" ]
            [ Type: Class,  Value: "trapp" ]
            [ Type: ID,     Value: "trull" ]

        This is a huge net memory win since the majority of selectors don't even have a tag name
        and those that do now have a flat cost of one more CSSSelector.
        Traversal is also slightly cleaner since any tag name will now be in a predictable place.

        * css/SelectorChecker.cpp:
        (WebCore::isFastCheckableMatch):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::validateSubSelector):

            Renamed CSSSelector::None to CSSSelector::Tag.

        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::tagMatches):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::ruleMatches):

            Changed SelectorChecker::tagMatches() to take a QualifiedName instead of a CSSSelector.

        * dom/QualifiedName.cpp:
        (WebCore::QualifiedName::deref):
        (WebCore::QualifiedName::QualifiedNameImpl::~QualifiedNameImpl):
        * dom/QualifiedName.h:
        (QualifiedNameImpl):

            Give QualifiedNameImpl a destructor so it can remove itself from the global cache instead of
            having QualifiedName do it. This makes it possible to participate in ownership of QualifiedNames
            via a QualifiedNameImpl pointer, as used by the union member in CSSSelector.

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createFloatingSelectorWithTagName):
        (WebCore::CSSParser::updateSpecifiersWithNamespaceIfNeeded):
        (WebCore::CSSParser::updateSpecifiersWithElementName):
        * css/CSSParser.h:
        * css/CSSParserValues.h:
        (CSSParserSelector):
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::CSSParserSelector):
        (WebCore::CSSParserSelector::prependTagSelector):

            Make the CSS parser slap a CSSSelector with m_match=Tag at the head of all selectors that match
            one or more of these criteria:

            - The selector starts with a tag, e.g "div.foo" or just plain "span"
            - There is a @namespace rule in effect, and the override namespace needs to be stored with the selector.
              These will have CSSSelectors::m_isTagForNamespaceRule set, this is only so that selector serialization
              can avoid outputting a '*' tag where we previously didn't.

        (WebCore::CSSParserSelector::isSimple):

            Merged the CSSSelector::isSimple() logic into CSSParserSelector, since it's only needed during parsing
            to figure out if a selector is allowed within :not().

        * css/CSSSelector.h:
        (CSSSelector):
        (WebCore::CSSSelector::setValue):
        (WebCore::CSSSelector::CSSSelector):
        (WebCore::CSSSelector::~CSSSelector):
        (WebCore::CSSSelector::tagQName):
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::createRareData):
        (WebCore::CSSSelector::operator==):

            Add a QualifiedNameImpl* m_tagQName member to the CSSSelector data union. This union pointer is used
            if m_match == Tag. tagQName() is used to retrieve the tag (renamed from tag().) 

        (WebCore::CSSSelector::selectorText):

            Only serialize Tag selector components that aren't namespace placeholders. This behavior is web-facing
            so we make an effort to stay consistent.

        (WebCore::CSSSelector::specificityForOneSelector):
        (WebCore::CSSSelector::specificityForPage):
        * css/CSSSelectorList.cpp:
        (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
        * css/RuleSet.cpp:
        (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
        * css/SelectorFilter.cpp:
        (WebCore::collectDescendantSelectorIdentifierHashes):
        (WebCore::SelectorFilter::collectIdentifierHashes):

            Adapt algorithms to having Tag selectors.

        (WebCore::selectorListContainsUncommonAttributeSelector):

            Loop through all selector components when looking for uncommon attributes.

        (WebCore::determinePropertyWhitelistType):

            Loop through all selector components when looking for ::cue().

        (WebCore::RuleSet::addRule):
        (WebCore::RuleSet::findBestRuleSetAndAdd):

            Break addRule into two methods to be able to peek ahead if the first selector is a Tag.
            Otherwise we'd end up sticking most selectors in m_tagRules, breaking the class/ID/etc optimizations.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::fastCheck):
        (WebCore::SelectorChecker::fastCheckSingleSelector):

            It's no longer necessary to check the tagQName for every selector component, so don't.
            Also simplified the signature of the template argument function.

        (WebCore::SelectorChecker::fastCheckRightmostSelector):

            Updated for Tag selectors.

        (WebCore::SelectorChecker::checkOne):
        (WebCore::SelectorChecker::matches):
        (WebCore::SelectorChecker::match):

            Have match() take a SiblingTraversalStrategy so it can forward that to checkOne().
            This is necessary for shadow DOM code that was incorrectly calling checkOne() instead of match().

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::ruleMatches):

            The meaning of "single-part selector" changes a bit with this patch, and no longer includes "div.foo"
            as that is now a Tag, followed by a Class. Given that, we can't assume the tag check is unnecessary
            just because the rightmost descendant was found in one of the hashes.

        (WebCore::StyleResolver::matchPageRulesForList):

            Loop through all selector components when matching @page since pseudo types may not always be in
            the first subselector now.

        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::collectSelectFeatureSetFrom):

            Collect feature information from subselectors to make sure nothing is missed. (This bug was exposed
            by offsetting the subselectors.)

        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorChecker::checkContentSelector):

            Call SelectorChecker::match() instead of checkOne() to make subselector traversal work properly.

2013-01-21  Levi Weintraub  <leviw@chromium.org>

        Event target rects on the top level document shouldn't be clipped.
        https://bugs.webkit.org/show_bug.cgi?id=107339

        Reviewed by James Robinson.

        clippedOverflowRectForRepaint clips the top-level RenderView to the viewport, which
        is wrong for generating event target rects, as the result will not extend to the bounds
        of the document on pages that scroll. Changing the top-level view to use documentRect
        instead.

        Tests updated to cover bug: platform/chromium/fast/events/touch/touch-hit-rects-in-iframe.html
                                    platform/chromium/fast/events/touch/compositor-touch-hit-rects.html

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::accumulateRendererTouchEventTargetRects): Use converToRootView instead of
        a loop around convertToContaining view. This is not a change in behavior.
        (WebCore::accumulateDocumentEventTargetRects): Switch to use documentRect instead of
        clippedOverflowRectForRepaint for the top-level Document, and use converToRootView
        to put rects in the coordinates of the top-level document.

2013-01-17  Andy Estes  <aestes@apple.com>

        Add a USE() macro for content filtering code
        https://bugs.webkit.org/show_bug.cgi?id=107098

        Reviewed by Mark Rowe.

        * WebCore.exp.in: Use USE(CONTENT_FILTERING).
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader): Ditto.
        (WebCore::MainResourceLoader::~MainResourceLoader): Ditto.
        (WebCore::MainResourceLoader::cancel): Ditto.
        (WebCore::MainResourceLoader::responseReceived): Ditto.
        (WebCore::MainResourceLoader::dataReceived): Ditto.
        (WebCore::MainResourceLoader::didFinishLoading): Ditto.
        (WebCore::MainResourceLoader::notifyFinished): Ditto.
        * loader/MainResourceLoader.h:
        (MainResourceLoader): Ditto.
        * platform/mac/WebCoreSystemInterface.h: Ditto.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2013-01-21  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Exclusions] shape-outside on floats for rectangle shapes positioning
        https://bugs.webkit.org/show_bug.cgi?id=100399

        Reviewed by David Hyatt.

        When a float has a shape-outside with non-zero x or y, the float's
        exclusion behavior can happen at a completely different location than
        where the float's content is painted. This patch brings initial
        support for this behavior.

        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-positioning.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::flipFloatForWritingModeForChild): If called
            during painting, make sure to pass that state down to the float
            positioning so that it can use the proper position.
        (WebCore::RenderBlock::paintFloats): Since this is concerned with
            painting, use the position of the float, not the shape.
        (WebCore::RenderBlock::positionNewFloats): Set the correct location
            for the float, relative to the location of the shape.
        (WebCore::RenderBlock::addOverhangingFloats): Add FIXME.
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::xPositionForFloatIncludingMargin): 
        (WebCore::RenderBlock::yPositionForFloatIncludingMargin): Since the 
            position of the shape (FloatingObject) can be different from the
            position of the float's box (RenderBox), the position needs to be
            computed differently for painting than for determining layout.
        (WebCore::RenderBlock::flipFloatForWritingModeForChild): Change
            signature to take painting flag.

2013-01-21  Eric Carlson  <eric.carlson@apple.com>

        Support non-WebVTT cues from in-band text tracks
        https://bugs.webkit.org/show_bug.cgi?id=107046

        Reviewed by Sam Weinig.

        * CMakeLists.txt: Add new files.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Pass video size to getDisplayTree.

        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::addGenericCue): New, create a generic cue if it doesn't already exist.
        (WebCore::InbandTextTrack::addWebVTTCue): Renamed from addCue.
        * html/track/InbandTextTrack.h:

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::hasCue): Moved from InbandTextTrack.cpp, use operator == instead of inline
            comparison so derived TextTrackCues can be compared.
        * html/track/TextTrack.h:

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCueBox::applyCSSProperties): Interface change.
        (WebCore::TextTrackCue::TextTrackCue): Don't create the display tree in the constructor, it may
            never be needed.
        (WebCore::TextTrackCue::createDisplayTree): New, create the display tree.
        (WebCore::TextTrackCue::displayTreeInternal): Display tree accessor, allows it to be created lazily.
        (WebCore::TextTrackCue::setAlign): Alignment -> CueAlignment.
        (WebCore::TextTrackCue::setIsActive): Use displayTreeInternal().
        (WebCore::TextTrackCue::getDisplayTree): Use displayTreeInternal(), pass video size to applyCSSProperties.
        (WebCore::TextTrackCue::removeDisplayTree): Use displayTreeInternal().
        (WebCore::TextTrackCue::operator==): New.
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::getAlignment): Alignment -> CueAlignment.
        (WebCore::TextTrackCue::operator!=): New.
        (WebCore::TextTrackCue::cueType): New, cue type identified needed by operator==.
        (WebCore::TextTrackCue::ownerDocument): New.

        * html/track/TextTrackCueGeneric.cpp: Added.
        (WebCore::TextTrackCueGenericBox::create):
        (WebCore::TextTrackCueGenericBox::TextTrackCueGenericBox):
        (WebCore::TextTrackCueGenericBox::applyCSSProperties):
        (WebCore:::TextTrackCue):
        (WebCore::TextTrackCueGeneric::createDisplayTree):
        (WebCore::TextTrackCueGeneric::operator==):
        * html/track/TextTrackCueGeneric.h: Added.
        (WebCore::TextTrackCueGeneric::create):
        (WebCore::TextTrackCueGeneric::~TextTrackCueGeneric):
        (WebCore::TextTrackCueGeneric::baseFontSizeRelativeToVideoHeight):
        (WebCore::TextTrackCueGeneric::setBaseFontSizeRelativeToVideoHeight):
        (WebCore::TextTrackCueGeneric::fontSizeMultiplier):
        (WebCore::TextTrackCueGeneric::setFontSizeMultiplier):
        (WebCore::TextTrackCueGeneric::fontName):
        (WebCore::TextTrackCueGeneric::setFontName):
        (WebCore::TextTrackCueGeneric::operator!=):
        (WebCore::TextTrackCueGeneric::cueType):

        * platform/graphics/InbandTextTrackPrivateClient.h:
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Copy cue attributes into GenericCueData
            struct instead of trying to convert to WebVTT settings string. Process font size,font base
            size, font name, and vertical layout attributes,
        (WebCore::InbandTextTrackPrivateAVF::processCue): Create separate cues for each attributed
            string in the array because each one can be at a different screen location.
        (WebCore::InbandTextTrackPrivateAVF::resetCueValues):
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
        (InbandTextTrackPrivateAVF):

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Reset any partially accumulated cues
            delivered since the seek was started.
        (WebCore::MediaPlayerPrivateAVFoundation::addGenericCue): Renamed from flushCurrentCue.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Whitespace cleanup.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Tell legible output to deliver cues
            without any additional styling needed by the internal renderer.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Do nothing if asked to change
            to the track that is already current.
        (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
            Check to make sure that the client callback isn't NULL.

2013-01-21  Robert Hogan  <robert@webkit.org>

        Misaligned logo on www.nzherald.co.nz possibly due to negative margin-top
        https://bugs.webkit.org/show_bug.cgi?id=14664

        Reviewed by David Hyatt.

        Test: fast/block/float/clear-negative-margin-top.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::collapseMargins): If a negative margin pulls a block up so that floats from
        siblings overhang, then ensure addOverHangingFloats() uses the revised logical top position when
        deciding whether a float does indeed overhang into the block after margin-collapsing.
        (WebCore::RenderBlock::clearFloatsIfNeeded):

2013-01-21  Rik Cabanier  <cabanier@adobe.com>

        Proposal: Add support for even-odd fill and clip to Canvas
        https://bugs.webkit.org/show_bug.cgi?id=106188

        Reviewed by Dirk Schulze.

        This patch adds support for an optional winding rule to fill, clip
        and isPointInPath in canvas 2d. By default, the fill is non-zero but
        you can now pass in an optional winding rule string ("nonzero" or "evenodd")
        to make an explicit choice.

        Tests: fast/canvas/canvas-clip-rule.html
               fast/canvas/canvas-fill-rule.html
               fast/canvas/canvas-isPointInPath-winding.html

        * html/canvas/CanvasRenderingContext2D.cpp: Change implementation so it sets the windig rule in the context.
        (WebCore::parseWinding):
        (WebCore):
        (WebCore::CanvasRenderingContext2D::fill):
        (WebCore::CanvasRenderingContext2D::clip):
        (WebCore::CanvasRenderingContext2D::isPointInPath):
        * html/canvas/CanvasRenderingContext2D.h: 
        (CanvasRenderingContext2D):
        * html/canvas/CanvasRenderingContext2D.idl: Change the idl so the new API is exposed to JavaScript.
        * platform/graphics/cg/GraphicsContextCG.cpp: Fixes a bug where the wrong winding rule was set for clipping in Core Graphics.
        (WebCore::GraphicsContext::clip):

2013-01-21  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] setOpacity doesn't work for GraphicsLayerClutter
        https://bugs.webkit.org/show_bug.cgi?id=105436

        Reviewed by Gustavo Noronha Silva.

        Implement GraphicsLayerClutter::setOpacity based on Mac's GraphicsLayer implementation.

        No new tests since this patch can be covered by already existing gtk ac tests.

        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::GraphicsLayerClutter::setOpacity):
        (WebCore):
        (WebCore::GraphicsLayerClutter::updateOpacityOnLayer):
        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
        * platform/graphics/clutter/GraphicsLayerClutter.h:

2013-01-21  ChangSeok Oh  <shivamidow@gmail.com>

        [Texmap][GTK] The poster-circle doesn't appear.
        https://bugs.webkit.org/show_bug.cgi?id=106672

        Reviewed by Noam Rosenthal.

        We need to call setNeedsDisplay to redraw GraphicsLayer after we set drawsContent
        a new value for the layer. Otherwise we can't get a chance for first drawing the layer.

        Test: compositing/visibility/visibility-composited-animation.html

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):

2013-01-21  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [EFL][Qt][WebGl] Random crash in GraphicsContext3D::drawArrays
        https://bugs.webkit.org/show_bug.cgi?id=107178

        Reviewed by Noam Rosenthal.

        Workaround for the problem in mesa when internal llvm pipe object is deleted
        later than the screen object. Screen object is deleted because the corresponding 
        X server display connection closed.
        Keep X server display connection open until program shutdown. 
        OffScreenRootWindow::display is now static, so there is no need to create
        OffScreenRootWindow object on client side.

        Fixes crash that appears during run of fast/canavs/webgl tests.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::DisplayConnection::DisplayConnection):
        (DisplayConnection):
        (WebCore::OffScreenRootWindow::DisplayConnection::~DisplayConnection):
        (WebCore::OffScreenRootWindow::DisplayConnection::display):
        (WebCore::OffScreenRootWindow::display):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurfacePrivate::display):
        (WebCore::GraphicsSurfacePrivate::size):
        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
        (WebCore::GraphicsSurfacePrivate::clear):
        (GraphicsSurfacePrivate):

2013-01-21  Michael[tm] Smith  <mike@w3.org>

        Implement the HTML <main> element.
        https://bugs.webkit.org/show_bug.cgi?id=103172

        Reviewed by Chris Fleizach.

        Authored by Steve Faulkner <faulkner.steve@gmail.com>

        <main> should behave the same as <nav>, <section>, and <article>, and <aside>.
        <main> should expose AXLandmarkMain correctly on each platform.

        Tests: fast/html/main-element.html
               platform/chromium/accessibility/main-element.html
               platform/mac/accessibility/main-element.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        * css/html.css:
        (article, aside, footer, header, hgroup, main, nav, section):
        * editing/FormatBlockCommand.cpp:
        (WebCore::isElementForFormatBlock):
        * html/HTMLTagNames.in:
        * html/parser/HTMLStackItem.h:
        (WebCore::HTMLStackItem::isSpecialNode):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processEndTagForInBody):

2013-01-21  Joanmarie Diggs  <jdiggs@igalia.com>

        Crash in AccessibilityTableCell::parentTable()
        https://bugs.webkit.org/show_bug.cgi?id=107261

        Reviewed by Chris Fleizach.

        Test: accessibility/table-destroyed-crash.html

        Getting the parent table in order to get the role value should not be
        done when objects are being destroyed. Also, it does not seem safe to
        assume we have an AXObjectCache.

        Moving the logic from roleValue() to determineAccessibilityRole() has
        the side effect of not being able to verify the cell is in an AXTable
        when that AXTable has not yet been created. Therefore isTableCell()
        should look to see if it is the descendant of an AXRow.

        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::parentTable):
        (WebCore::AccessibilityTableCell::isTableCell):
        (WebCore::AccessibilityTableCell::determineAccessibilityRole):
        * accessibility/AccessibilityTableCell.h:
        (AccessibilityTableCell):

2013-01-21  Halton Huo  <halton.huo@intel.com>

        [GTK] Volume button should not be shown for videos without audio
        https://bugs.webkit.org/show_bug.cgi?id=106436

        Reviewed by Philippe Normand.

        The volume control is no longer shown for videos with no audio.

        No new tests, tested by media/video-no-audio.html.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::hasOwnDisabledStateHandlingFor):
        (WebCore):
        * platform/gtk/RenderThemeGtk.h:

2013-01-21  Dan Winship  <danw@gnome.org>

        [Soup] Work around a glib bug
        https://bugs.webkit.org/show_bug.cgi?id=106789

        Reviewed by Martin Robinson.

        In glib <= 2.35.4, g_input_stream_skip_async() applied to a
        libsoup response stream will do a synchronous skip() in another
        thread, which libsoup isn't expecting and doesn't have proper
        locking for. Work around this until the next time we bump the glib
        requirement by using read_async() (and throwing away the result)
        instead of skip_async().

        No new tests; fixes a race condition in existing tests with older
        glib

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::redirectSkipCallback):
        (WebCore::sendRequestCallback):

2013-01-18  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: data grid resize is slow
        https://bugs.webkit.org/show_bug.cgi?id=107291

        Reviewed by Pavel Feldman.

        - avoid (most of) unnecessary relayouts and style recalculation when dragging data grid resizer.

        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype._positionResizers):
        (WebInspector.DataGrid.prototype._resizerDragging):

2013-01-21  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        [Inspector] Layout Elements panel in a single column when docked right.
        https://bugs.webkit.org/show_bug.cgi?id=107129

        Reviewed by Pavel Feldman.

        If the Inspector is docked right, the style panes in the Elements panel
        are put below the DOM tree pane, not to the right. This behavior
        is experimental (hidden behind a new flag "elementsPanelSingleColumn").

        No new tests.

        * inspector/front-end/DockController.js:
        (WebInspector.DockController.prototype.dockSide):
        (WebInspector.DockController.prototype._updateUI):
        (WebInspector.DockController.prototype._toggleDockState):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype.onResize):
        (WebInspector.ElementsPanel.prototype._onDockStateChanged):
        (WebInspector.ElementsPanel.prototype._sidebarPosition):
        * inspector/front-end/Panel.js:
        (WebInspector.Panel.prototype.createSidebarView):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SidebarView.js:
        (WebInspector.SidebarView):
        (WebInspector.SidebarView.prototype.get mainElement):
        (WebInspector.SidebarView.prototype.get sidebarElement):
        (WebInspector.SidebarView.prototype._setSidebarElementStyle):
        (WebInspector.SidebarView.prototype.setSidebarPosition):
        (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
        (WebInspector.SidebarView.prototype.setMinimumSidebarHeight):
        (WebInspector.SidebarView.prototype.setMinimumMainHeightPercent):
        (WebInspector.SidebarView.prototype.applyConstraints):
        (WebInspector.SidebarView.prototype.hideMainElement):
        (WebInspector.SidebarView.prototype.hideSidebarElement):
        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView):
        * inspector/front-end/splitView.css:
        (.split-view-sidebar-top):
        (.split-view-sidebar-top.maximized):
        (.split-view-sidebar-bottom):
        (.split-view-sidebar-bottom.maximized):

2013-01-21  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: do not serialize native heap graph when collecting information about memory distribution
        https://bugs.webkit.org/show_bug.cgi?id=107450

        Reviewed by Pavel Feldman.

        Native heap graph is not reported when we need to show only high-level memory distribution.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeMemorySnapshotView):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):

2013-01-21  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [REGRESSION] Forced :visited pseudoclass has no effect on A elements
        https://bugs.webkit.org/show_bug.cgi?id=107448

        Reviewed by Antti Koivisto.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::sortAndTransferMatchedRules): Remove totally bad code.
        (WebCore::StyleResolver::styleForElement):
          Use InsideVisitedLink if PseudoVisited has been forced by Inspector.

2013-01-18  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: modify generate_protocol_externs.py to generate JSON typedef's for @constructors
        https://bugs.webkit.org/show_bug.cgi?id=107287

        Reviewed by Pavel Feldman.

        Modify generate_protocol_externs.py to generate @typedefs instead of @constructors,

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/InjectedScriptSource.js:
        * inspector/compile-front-end.py:
        * inspector/generate_protocol_externs.py:
        (param_type):

2013-01-21  Oleg Smirnov  <oleg.smirnov@lge.com>

        [Gtk] [Cairo] Memory leak when is WebView destroy.
        https://bugs.webkit.org/show_bug.cgi?id=107112

        Reviewed by Martin Robinson.

        Make createSurfaceForBackingStore return a smart pointer in all supported
        build configurations to avoid a memory leak.
        
        No new tests. There is memory leak only.

        * platform/cairo/WidgetBackingStoreCairo.cpp:
        (WebCore::createSurfaceForBackingStore):

2013-01-21  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: should not dispatch 'input' events if the element value is not updated
        https://bugs.webkit.org/show_bug.cgi?id=107429

        Reviewed by Kentaro Hara.

        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#common-event-behaviors
        > any time the user causes the element's value to change, the user agent
        > must queue a task to fire a simple event that bubbles named input at the
        > input element.

        Tests:
        fast/forms/time-multiple-fields/time-multiple-fields-keyboard-event.html
        is updated to cover this change.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
        If the new value is equivalent to the old value, don't dispatch events.
        However we should recalculate validity and call notifyFormStateChanged
        because input.validity.badInput state might be changed.

2013-01-21  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Do not dispatch mousemove when emulating touch event and no touch is active
        https://bugs.webkit.org/show_bug.cgi?id=107419

        Reviewed by Pavel Feldman.

        mousemove event should not be dispatched when emulating touch events and mouse button is not pressed

        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

2013-01-21  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix highlight bug in DTE.
        https://bugs.webkit.org/show_bug.cgi?id=107433

        Reviewed by Pavel Feldman.

        Do not re-create |state.ranges| array when it already contains highlight.

        Test: inpector/editor/highlighter-chunk-limit.txt

        * inspector/front-end/TextEditorHighlighter.js:
        (WebInspector.TextEditorHighlighter.prototype._highlightLines):

2013-01-21  Takashi Sakamoto  <tasak@google.com>

        [Refactoring] rename StyleRuleBlock -> StyleRuleGroup
        https://bugs.webkit.org/show_bug.cgi?id=107415

        Reviewed by Antti Koivisto.

        StyleRuleBlock should be renamed StyleRuleGroup, because
        CSSGroupingRule (not CSSBlockRule) is an interface for an at-rule that
        contains other rules nested inside itself:
        http://www.w3.org/TR/2012/WD-css3-conditional-20121213/#the-cssgroupingrule-interface
        To match the name: CSSGroupingRule, StyleRuleGroup looks better.

        No new tests, because just refactoring.

        * css/CSSGroupingRule.cpp:
        (WebCore::CSSGroupingRule::CSSGroupingRule):
        (WebCore::CSSGroupingRule::reattach):
        * css/CSSGroupingRule.h:
        (CSSGroupingRule):
        * css/StyleRule.cpp:
        (WebCore::StyleRuleGroup::StyleRuleGroup):
        (WebCore::StyleRuleGroup::wrapperInsertRule):
        (WebCore::StyleRuleGroup::wrapperRemoveRule):
        (WebCore::StyleRuleGroup::reportDescendantMemoryUsage):
        (WebCore::StyleRuleMedia::StyleRuleMedia):
        (WebCore::StyleRuleSupports::StyleRuleSupports):
        (WebCore::StyleRuleRegion::StyleRuleRegion):
        * css/StyleRule.h:
        (StyleRuleGroup):
        (WebCore::StyleRuleHost::StyleRuleHost):
        (WebCore::toStyleRuleMedia):
        (WebCore::toStyleRuleSupports):
        (WebCore::toStyleRuleRegion):
        Just replaced StyleRuleBlock with StyleRuleGroup.

2013-01-21  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: refactoring to use string as argument for highlightRegex API
        https://bugs.webkit.org/show_bug.cgi?id=107243

        Reviewed by Pavel Feldman.

        Use string as argument for highlightRegex API instead of using regex object.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
        * inspector/front-end/TextEditor.js:

2013-01-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140311.
        http://trac.webkit.org/changeset/140311
        https://bugs.webkit.org/show_bug.cgi?id=107431

        Broke selection-related tests (Requested by apavlov on
        #webkit).

        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

2013-01-21  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Build fix.

        * bindings/v8/V8NPObject.cpp:
        (WebCore::createV8ObjectForNPObject):

2013-01-20  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Do not dispatch mousemove when emulating touch event and no touch is active
        https://bugs.webkit.org/show_bug.cgi?id=107419

        Reviewed by Pavel Feldman.

        mousemove event should not be dispatched when emulating touch events and mouse button is not pressed

        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

2013-01-21  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update the RTCPeerConnection states to match the latest specification
        https://bugs.webkit.org/show_bug.cgi?id=107120

        Reviewed by Adam Barth.

        http://dev.w3.org/2011/webrtc/editor/webrtc.html#interface-definition

        RTCPeerConnection::readyState and iceState are history and instead signalingState,
        iceConnectionState and iceGatheringState have been introduced.

        Existing tests updated to cover this patch.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::createOffer):
        (WebCore::RTCPeerConnection::createAnswer):
        (WebCore::RTCPeerConnection::setLocalDescription):
        (WebCore::RTCPeerConnection::localDescription):
        (WebCore::RTCPeerConnection::setRemoteDescription):
        (WebCore::RTCPeerConnection::remoteDescription):
        (WebCore::RTCPeerConnection::updateIce):
        (WebCore::RTCPeerConnection::addIceCandidate):
        (WebCore::RTCPeerConnection::readyState):
        (WebCore):
        (WebCore::RTCPeerConnection::signalingState):
        (WebCore::RTCPeerConnection::iceConnectionState):
        (WebCore::RTCPeerConnection::addStream):
        (WebCore::RTCPeerConnection::removeStream):
        (WebCore::RTCPeerConnection::createDataChannel):
        (WebCore::RTCPeerConnection::close):
        (WebCore::RTCPeerConnection::didChangeSignalingState):
        (WebCore::RTCPeerConnection::didChangeIceGatheringState):
        (WebCore::RTCPeerConnection::didChangeIceConnectionState):
        (WebCore::RTCPeerConnection::didAddRemoteStream):
        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
        (WebCore::RTCPeerConnection::stop):
        (WebCore::RTCPeerConnection::changeSignalingState):
        (WebCore::RTCPeerConnection::changeIceGatheringState):
        (WebCore::RTCPeerConnection::changeIceConnectionState):
        * Modules/mediastream/RTCPeerConnection.h:
        (RTCPeerConnection):
        * Modules/mediastream/RTCPeerConnection.idl:
        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
        (RTCPeerConnectionHandlerClient):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::didChangeSignalingState):
        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEConnectionState):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (RTCPeerConnectionHandlerChromium):

2013-01-21  Kent Tamura  <tkent@chromium.org>

        Use ISO8601 date/time formats as fallbacks for date/time input types
        https://bugs.webkit.org/show_bug.cgi?id=107418

        Reviewed by Kentaro Hara.

        We obtain date/time formats from OSes to build date/time input type
        UIs. If something wrong happens in the code, fallback formats are
        used. Such fallback formats should not be English formats in order that
        we can find defects easily.

        No new tests. These formats should not be used unless the current code
        has defects.

        * html/DateTimeInputType.cpp:
        (WebCore::DateTimeInputType::setupLayoutParameters):
        Use an ISO8601 format which is same as a format used in HTML5.
        * html/DateTimeLocalInputType.cpp:
        (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
        * html/MonthInputType.cpp:
        (WebCore::MonthInputType::setupLayoutParameters): Ditto.
        * html/WeekInputType.cpp:
        (WebCore::WeekInputType::setupLayoutParameters): Ditto.
        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::dateFormat): Ditto.
        * platform/text/LocaleNone.cpp:
        (WebCore::LocaleNone::dateFormat): Ditto.
        (WebCore::LocaleNone::dateTimeFormatWithSeconds): Ditto.
        (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Ditto.

2013-01-20  Matt Falkenhagen  <falken@chromium.org>

        Elements must be reattached when inserted/removed from top layer
        https://bugs.webkit.org/show_bug.cgi?id=105489

        Relanding r139402 as rollout due to suspected perf regression did not help (bug 106726).

        Reviewed by Julien Chaffraix.

        Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
        as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.

        We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
        only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
        followed immediately by show() results in no style change.

        Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
               fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html

        * dom/Element.cpp:
        (WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
        removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
        (WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.

2013-01-20  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: change HeapSnapshotLoader to allow loading native heap snapshots
        https://bugs.webkit.org/show_bug.cgi?id=107282

        Reviewed by Pavel Feldman.

        Conctete heap snapshot constructor name is passed as a parameter to HeapSnapshotLoaderProxy and
        propagated to HeapSnapshotLoader.buildSnapshot to support different types of heap snapshots.

        * inspector/front-end/HeapSnapshotLoader.js:
        (WebInspector.HeapSnapshotLoader.prototype.buildSnapshot):
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotWorker.prototype.createLoader):
        (WebInspector.HeapSnapshotLoaderProxy):
        (WebInspector.HeapSnapshotLoaderProxy.prototype.close):
        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapProfileHeader.prototype._setupWorker):

2013-01-20  Kentaro Hara  <haraken@chromium.org>

        Implement MediaStreamEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=107411

        Reviewed by Adam Barth.

        Spec: http://www.w3.org/TR/webrtc/#mediastreamevent

        Test: fast/events/constructors/media-stream-event-constructor.html

        * Modules/mediastream/MediaStreamEvent.cpp:
        (WebCore::MediaStreamEventInit::MediaStreamEventInit):
        (WebCore):
        (WebCore::MediaStreamEvent::create):
        (WebCore::MediaStreamEvent::MediaStreamEvent):
        * Modules/mediastream/MediaStreamEvent.h:
        (MediaStreamEventInit):
        (WebCore):
        (MediaStreamEvent):
        * Modules/mediastream/MediaStreamEvent.idl:
        * bindings/js/JSDictionary.cpp:
        (WebCore):
        (WebCore::JSDictionary::convertValue):
        * bindings/js/JSDictionary.h:
        (WebCore):
        * bindings/v8/Dictionary.cpp:
        (WebCore):
        (WebCore::Dictionary::get):
        * bindings/v8/Dictionary.h:
        (Dictionary):

2013-01-20  Vladislav Kaznacheev  <kaznacheev@chromium.org>

        Web Inspector: Allow SplitView to change orientation after the construction.
        https://bugs.webkit.org/show_bug.cgi?id=107263

        Added SplitView.prototype.setIsVertical to change the orientation on the fly.
        Instead of passing default sidebar size to the constructor the client
        may now pass separate defaults for the sidebar width and height. Passing
        just one default works as before.

        Reviewed by Pavel Feldman.

        No new tests.

        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView):
        (WebInspector.SplitView.prototype.isVertical):
        (WebInspector.SplitView.prototype.setIsVertical):
        (WebInspector.SplitView.prototype._innerSetIsVertical):
        (WebInspector.SplitView.prototype._updateLayout):
        (WebInspector.SplitView.prototype.isSidebarSecond):
        (WebInspector.SplitView.prototype.showBoth):
        (WebInspector.SplitView.prototype._updateTotalSize):
        (WebInspector.SplitView.prototype._innerSetSidebarSize):
        (WebInspector.SplitView.prototype.wasShown):
        (WebInspector.SplitView.prototype.onResize):
        (WebInspector.SplitView.prototype.installResizer):
        (WebInspector.SplitView.prototype._onDragStart):
        (WebInspector.SplitView.prototype._sizeSetting):
        (WebInspector.SplitView.prototype._lastSidebarSize):
        (WebInspector.SplitView.prototype.get _saveSidebarSize):

2013-01-20  Kentaro Hara  <haraken@chromium.org>

        Add a [ConstructorConditional] IDL attribute
        https://bugs.webkit.org/show_bug.cgi?id=107407

        Reviewed by Adam Barth.

        Per discussion in webkit-dev, we need to implement DOM4 event constructors
        under a enable flag. For that purpose, we implement a [ConstructorConditional]
        IDL attribute.

        Test: bindings/scripts/test/TestInterface.idl

        * bindings/scripts/CodeGenerator.pm:
        (GenerateConstructorConditionalString):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorDeclaration):
        (GenerateConstructorHelperMethods):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/IDLAttributes.txt:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (JSTestInterfaceConstructor):
        * bindings/scripts/test/TestInterface.idl:
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::ConfigureV8TestInterfaceTemplate):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):

2013-01-18  Kentaro Hara  <haraken@chromium.org>

        [V8] We should set a class id for a NPObject wrapper
        https://bugs.webkit.org/show_bug.cgi?id=107249

        Reviewed by Adam Barth.

        This is one of steps to avoid hitting an ASSERT()
        that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .

        No tests. No change in behavior.

        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::setWrapperClass):
        (WebCore):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::createV8ObjectForNPObject):

2013-01-20  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc: unprefix implementation
        https://bugs.webkit.org/show_bug.cgi?id=91951

        Reviewed by Ojan Vafai.

        Add support for the unprefixed 'calc()' function, while retaining support for the prefixed version.

        Test: css3/calc/simple-calcs-prefixed.html

        * css/CSSCalculationValue.cpp:
        (WebCore::buildCssText):
        (WebCore::CSSCalcValue::create):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::isCalculation):
        (WebCore::CSSParser::detectFunctionTypeToken):

2013-01-20  Shinya Kawanaka  <shinyak@chromium.org>

        Distribution state becomes inconsistent with content/shadow reprojection
        https://bugs.webkit.org/show_bug.cgi?id=106634

        Reviewed by Hajime Morita.

        Distribution should be resolved from shallower ShadowDOM to deeper Shadow DOM. However, in the current implementation,
        there is a case that distribution for deeper ShadowDOM happens to be resolved before distribution
        for shallower ShadowDOM is resolved.

        Here, we have 2 problems about distribution.
        1) Invalidation state is not propagated to nested (= deeper) ShadowDOM.
            - This causes deeper ShadowDOM looks having a valid distribution though it should be invalid.
        2) We are not resolving shallower ShadowDOM when deeper ShadowDOM's distribution is needed.
            - Because of (1), we have to check all the ancestor ShadowDOM.

        For (1), we change invalidate() to invalidate nested ShadowDOM's distribution as well.
        For (2), when resolving distribution, we will check the ancestor ShadowDOM's distribution state. If the ancestor's
        distribution is not valid, we resolve it first.

        For optimization of (1), actually we can skip invalidating distribution of some ShadowDOMs.
        If ShadowRoot of deeper ShadowDOM does not have an InsertionPoint as children, we can skip invalidating
        its distribution, because only children can be distributed to InsertionPoint.

        Tests: fast/dom/shadow/distribution-crash.html
               fast/dom/shadow/nested-reprojection-inconsistent.html

        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::attach): Should resolve distribution from ancestor.
        * dom/ElementShadow.h:
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::distribute): Added ASSERT that the parent ShadowRoot's distribution is resolved.
        (WebCore::ContentDistributor::invalidate): For each InsertionPoint, we have to invalidate
        its parent element's distribution (if it has ElementShadow).
        (WebCore::ContentDistributor::ensureDistribution):
        * html/shadow/ContentDistributor.h:
        (WebCore::ContentDistributor::isValid):
        * html/shadow/HTMLShadowElement.cpp:
        (WebCore::HTMLShadowElement::olderShadowRoot): Should resolve distribution from ancestor.
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::attach): ditto.
        (WebCore::InsertionPoint::detach): ditto.
        (WebCore::InsertionPoint::getDistributedNodes): ditto.
        (WebCore::resolveReprojection): ditto.

2013-01-20  Dominic Mazzoni  <dmazzoni@google.com>

        Make SpeechSynthesis compile in the Chromium port
        https://bugs.webkit.org/show_bug.cgi?id=107382

        Reviewed by Adam Barth.

        Add stubs for the Chromium implementation of speech synthesis,
        and add all source and header files to WebCore.gypi. Everything
        is behind the ENABLE_SPEECH_SYNTHESIS flag.

        * Modules/speech/chromium/SpeechSynthesisChromium.cpp: Added.
        (WebCore):
        (WebCore::SpeechSynthesis::initializeVoiceList):
        (WebCore::SpeechSynthesis::pending):
        (WebCore::SpeechSynthesis::speaking):
        (WebCore::SpeechSynthesis::paused):
        (WebCore::SpeechSynthesis::speak):
        (WebCore::SpeechSynthesis::cancel):
        (WebCore::SpeechSynthesis::pause):
        (WebCore::SpeechSynthesis::resume):
        * WebCore.gypi:

2013-01-20  Kent Tamura  <tkent@chromium.org>

        Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
        https://bugs.webkit.org/show_bug.cgi?id=104997

        Reviewed by Tony Chang.

        When padding or border is updated for a parent block with
        box-sizing:border-box and width, the width of its child block was not
        updated.

        Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
               fast/forms/text/text-padding-dynamic-change.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):
        If box-sizing of the old style and/or the new style is border-box and
        padding or border is changed, apply setChildNeedsLayout(true) for child
        boxes.

2013-01-20  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove custom V8ScriptProfileCustom::toV8()
        https://bugs.webkit.org/show_bug.cgi?id=107246

        Reviewed by Adam Barth.

        V8ScriptProfileCustom::toV8() needs not to be custom.
        Furthermore, the current custom toV8() is wrong in that
        it doesn't use a creationContext and it doesn't set a
        wrapper class id. This is one of steps to avoiding
        ASSERT()s that will be added in
        https://bugs.webkit.org/show_bug.cgi?id=107137 .

        No tests. No change in behavior.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/custom/V8ScriptProfileCustom.cpp: Removed.
        * inspector/ScriptProfile.idl:

2013-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140290.
        http://trac.webkit.org/changeset/140290
        https://bugs.webkit.org/show_bug.cgi?id=107412

        Broke tests of inspector and calendar picker in debug build
        (Requested by tkent on #webkit).

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):

2013-01-20  Yongsheng Zhu  <yongsheng.zhu@intel.com>

        Dispatch LongPress to inner frames
        https://bugs.webkit.org/show_bug.cgi?id=106874

        Reviewed by Antonio Gomes.

        Do check whether a LongPress gesture event should be passed
        to inner frames. If needed, dispatch it.

        Tests: fast/events/touch/gesture/long-press-on-draggable-element-in-iframe-triggers-drag.html
               fast/events/touch/gesture/long-press-on-draggable-element-in-nested-iframes-triggers-drag.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureLongPress):

2013-01-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Clean up missing *explicit* keyword in ctors of WebCore/rendering.
        https://bugs.webkit.org/show_bug.cgi?id=107373

        Reviewed by Darin Adler.

        Need to add *explicit* keyword to avoid implicit type conversion.

        * rendering/RenderApplet.h:
        (RenderApplet):
        * rendering/RenderArena.h:
        (RenderArena):
        * rendering/RenderBR.h:
        (RenderBR):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderDetailsMarker.h:
        (RenderDetailsMarker):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):
        * rendering/RenderFlowThread.h:
        * rendering/RenderFullScreen.h:
        (RenderFullScreen):
        * rendering/RenderGeometryMap.h:
        (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
        * rendering/RenderGrid.h:
        (RenderGrid):
        * rendering/RenderImage.h:
        (RenderImage):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):
        * rendering/RenderLayerModelObject.h:
        (RenderLayerModelObject):
        * rendering/RenderListBox.h:
        (RenderListBox):
        * rendering/RenderListMarker.h:
        (RenderListMarker):
        * rendering/RenderMedia.h:
        (RenderMedia):
        * rendering/RenderMeter.h:
        (RenderMeter):
        * rendering/RenderMultiColumnBlock.h:
        (RenderMultiColumnBlock):
        * rendering/RenderMultiColumnFlowThread.h:
        (RenderMultiColumnFlowThread):
        * rendering/RenderObject.h:
        (RenderObject):
        * rendering/RenderPart.h:
        (RenderPart):
        * rendering/RenderProgress.h:
        (RenderProgress):
        * rendering/RenderReplaced.h:
        (RenderReplaced):
        * rendering/RenderReplica.h:
        (RenderReplica):
        * rendering/RenderRuby.h:
        (RenderRubyAsInline):
        * rendering/RenderRubyBase.h:
        (RenderRubyBase):
        * rendering/RenderRubyRun.h:
        (RenderRubyRun):
        * rendering/RenderRubyText.h:
        (RenderRubyText):
        * rendering/RenderSearchField.h:
        (RenderSearchField):
        * rendering/RenderSlider.h:
        (RenderSlider):
        * rendering/RenderSnapshottedPlugIn.h:
        (RenderSnapshottedPlugIn):
        * rendering/RenderTextControlMultiLine.h:
        (RenderTextControlMultiLine):
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):
        * rendering/RenderView.h:
        (RenderView):
        * rendering/RenderWidgetProtector.h:
        (WebCore::RenderWidgetProtector::RenderWidgetProtector):
        * rendering/RootInlineBox.h:
        (RootInlineBox): Remove meaningless parameter name.
        * rendering/TableLayout.h:
        (WebCore::TableLayout::TableLayout):

2013-01-20  Kent Tamura  <tkent@chromium.org>

        Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
        https://bugs.webkit.org/show_bug.cgi?id=104997

        Reviewed by Tony Chang.

        When padding or border is updated for a parent block with
        box-sizing:border-box and width, the width of its child block was not
        updated.

        Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
               fast/forms/text/text-padding-dynamic-change.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):
        If box-sizing of the old style and/or the new style is border-box and
        padding or border is changed, apply setChildNeedsLayout(true) for child
        boxes.

2013-01-20  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r140270.
        http://trac.webkit.org/changeset/140270
        https://bugs.webkit.org/show_bug.cgi?id=107253

        Hit asserts in a debug build

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::installDOMWindow):

2013-01-20  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow DOM] Specifying scrollbar style of an element having RenderLayer in ShadowDOM does not work.
        https://bugs.webkit.org/show_bug.cgi?id=107222

        Reviewed by Simon Fraser.

        When specifying scrollbar style in ShadowDOM, it's not used. If the host element of ShadowDOM has scrollbar style,
        it's used instead.

        The root cause of this bug is that RenderLayer always see shadowAncestorNode's style. Some elements having
        UserAgent ShadowDOM (e.g. <textarea>) should see host's style, but most of elements should see its style.

        Test: fast/dom/shadow/scrollbar.html

        * rendering/RenderLayer.cpp:
        (WebCore::rendererForScrollbar):
        (WebCore):
        (WebCore::RenderLayer::createScrollbar):
        (WebCore::RenderLayer::updateScrollCornerStyle):
        (WebCore::RenderLayer::updateResizerStyle):

2013-01-20  Yoshifumi Inoue  <yosin@chromium.org>

        Dragging over an element with scrollbars should scroll the element when dragging near edges
        https://bugs.webkit.org/show_bug.cgi?id=39725

        Reviewed by Hajime Morita.

        This patch introduces auto scrolling functionality during drag-and-drop
        when drop source is near edge of scrollable element.

        When drop source is inside 20px of scrollable element more than 200ms,
        scrollable element is automatically scrolled every 50ms toward drop
        source position, e.g. vertically scroll up when drop source is in top
        edge.

        Test: fast/events/drag-and-drop-autoscroll.html

        * page/AutoscrollController.cpp:
        (WebCore::AutoscrollController::AutoscrollController): Changed to initialize m_dragAndDropAutoscrollStartTime.
        (WebCore::AutoscrollController::updateDragAndDrop): Added for start/stop autoscroll during drag-and-drop.
        (WebCore::AutoscrollController::autoscrollTimerFired): Changed to add autoscroll for drag-and-drop, and to pass last know position to RenderBox::autoscroll().
        * page/AutoscrollController.h:
        (AutoscrollController): Changed to add updateDragAndDrop() and m_dragAndDropAutoscrollReferencePosition and m_dragAndDropAutoscrollStartTime.
        * page/ChromeClient.h:
        (WebCore::ChromeClient): Changed to add new function shouldAutoscrollForDragAndDrop().
        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateDragAndDrop): Changed to call AutoscrollController::updateDragAndDrop().
        (WebCore::EventHandler::clearDragState): Changed to call stopAutoscrollTimer().
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::autoscroll): Changed for new parameter position.
        (WebCore::RenderBox::calculateAutoscrollDirection): Added for autoscroll.
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::autoscroll):  Changed for new parameter position and move updateSelectionForMouseDrag() to AutoscrollController.
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::autoscroll):  Changed for new parameter position.
        * rendering/RenderListBox.h:
        (RenderListBox):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::autoscroll):  Changed for new parameter position.
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):

2013-01-20  Laszlo Gombos  <l.gombos@samsung.com>

        Simplify a list of negative PLATFORM() tests
        https://bugs.webkit.org/show_bug.cgi?id=107365

        Reviewed by Eric Seidel.

        Simplify a list of negative PLATFORM() tests into a simpler list
        of positive tests for better readability and maintenance.

        No new tests as there is no new functionality.

        * config.h:

2013-01-20  Simon Fraser  <simon.fraser@apple.com>

        Avoid filling a rounded rect when radii are zero
        https://bugs.webkit.org/show_bug.cgi?id=107402
        <rdar://problem/12793315>

        Reviewed by Sam Weinig.

        It's more efficient to clip and fill rects than rounded rects,
        so optimize for the case where rounded rect radii are zero.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::clipRoundedRect):
        (WebCore::GraphicsContext::clipOutRoundedRect):
        (WebCore::GraphicsContext::fillRoundedRect):

2013-01-20  Alexey Proskuryakov  <ap@apple.com>

        Remove obsolete plug-in sandboxing code.
        https://bugs.webkit.org/show_bug.cgi?id=107362

        Reviewed by Darin Adler.

        * WebCore.xcodeproj/project.pbxproj:
        * plugins/npapi-sandbox.h: Removed.

2013-01-20  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: Make V8 LiveEdit API disabled by default
        https://bugs.webkit.org/show_bug.cgi?id=106668

        Reviewed by Yury Semikhatsky.

        Initialize method is patched accordingly.

        * bindings/v8/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::restart): missing enable/disable calls added for restart
        * bindings/v8/V8Initializer.cpp:
        (WebCore::initializeV8Common): initializer method patched

2013-01-20  Christophe Dumez  <christophe.dumez@intel.com>

        [gstreamer]  assertion in g_object_unref from _WebKitWebAudioSourcePrivate destructor
        https://bugs.webkit.org/show_bug.cgi?id=107374

        Reviewed by Philippe Normand.

        WebKitWebAudioSrc object gets unrefed one time too many in
        _WebKitWebAudioSourcePrivate destructor, causing an assertion
        in g_object_unref. This patch passes NULL instead of
        g_object_unref to gst_task_new() so that the WebKitWebAudioSrc
        object does not get unrefed when the GstTask is destroyed.

        No new tests, already covered by webaudio tests.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (webkit_web_audio_src_init):

2013-01-20  Kentaro Hara  <haraken@chromium.org>

        [V8] Create a persistent wrapper for Window.prototype and innerGlobalObject
        https://bugs.webkit.org/show_bug.cgi?id=107253

        Reviewed by Adam Barth.

        This is one of steps to avoid hitting an ASSERT()
        that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .
        We should have a persistent wrapper for all DOM objects
        and set a class id on the wrapper.

        No tests. No change in behavior.

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::installDOMWindow):

2013-01-19  Philip Rogers  <pdr@google.com>

        Refactor SVGSVGElement to inherit from SVGStyledTransformableElement
        https://bugs.webkit.org/show_bug.cgi?id=107393

        Reviewed by Dirk Schulze.

        This patch refactors SVGSVGElement to inherit from SVGStyledTransformableElement instead
        of SVGStyledLocatableElement. In a followup patch, SVGStyledTransformableElement will
        be refactored into SVGGraphicsElement which will match the spec:
        https://svgwg.org/svg2-draft/single-page.html#struct-InterfaceSVGSVGElement

        Tests: svg/transforms/svgsvgelement-transform-expected.svg
               svg/transforms/svgsvgelement-transform.svg

        * svg/SVGSVGElement.cpp:
        (WebCore):
        (WebCore::SVGSVGElement::SVGSVGElement):
        (WebCore::SVGSVGElement::didMoveToNewDocument):
        (WebCore::SVGSVGElement::parseAttribute):
        (WebCore::SVGSVGElement::insertedInto):
        (WebCore::SVGSVGElement::removedFrom):
        * svg/SVGSVGElement.h:
        (SVGSVGElement):
        * svg/SVGSVGElement.idl:

2013-01-19  Philip Rogers  <pdr@google.com>

        Merge SVGStylable into SVGStyledElement
        https://bugs.webkit.org/show_bug.cgi?id=106877

        Reviewed by Dirk Schulze.

        SVG2 changes element inheritance so all SVGElements are stylable. As a first-step towards a
        cleaner class hierarchy, this patch moves SVGStylable into SVGStyledElement.

        No new tests as this is just a refactoring.

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/objc/DOMSVG.h:
        * bindings/scripts/CodeGeneratorObjC.pm:
        * page/DOMWindow.idl:
        * svg/SVGAElement.idl:
        * svg/SVGAllInOne.cpp:
        * svg/SVGCircleElement.idl:
        * svg/SVGClipPathElement.idl:
        * svg/SVGDefsElement.idl:
        * svg/SVGDescElement.idl:
        * svg/SVGEllipseElement.idl:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFEComponentTransferElement.idl:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEConvolveMatrixElement.idl:
        * svg/SVGFEDiffuseLightingElement.idl:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEDropShadowElement.idl:
        * svg/SVGFEFloodElement.idl:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEImageElement.idl:
        * svg/SVGFEMergeElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFEOffsetElement.idl:
        * svg/SVGFESpecularLightingElement.idl:
        * svg/SVGFETileElement.idl:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGFilterElement.idl:
        * svg/SVGFilterPrimitiveStandardAttributes.idl:
        * svg/SVGForeignObjectElement.idl:
        * svg/SVGGElement.idl:
        * svg/SVGGlyphRefElement.idl:
        * svg/SVGGradientElement.idl:
        * svg/SVGImageElement.idl:
        * svg/SVGLineElement.idl:
        * svg/SVGMarkerElement.idl:
        * svg/SVGMaskElement.idl:
        * svg/SVGMissingGlyphElement.idl:
        * svg/SVGPathElement.idl:
        * svg/SVGPatternElement.idl:
        * svg/SVGPolygonElement.idl:
        * svg/SVGPolylineElement.idl:
        * svg/SVGRectElement.idl:
        * svg/SVGSVGElement.idl:
        * svg/SVGStopElement.idl:
        * svg/SVGStylable.cpp: Removed.
        * svg/SVGStylable.h: Removed.
        * svg/SVGStylable.idl: Removed.
        * svg/SVGStyledElement.h:
        (WebCore):
        * svg/SVGStyledElement.idl: Added.
        * svg/SVGSwitchElement.idl:
        * svg/SVGSymbolElement.idl:
        * svg/SVGTextContentElement.idl:
        * svg/SVGTitleElement.idl:
        * svg/SVGUseElement.idl:

2013-01-19  Tim Horton  <timothy_horton@apple.com>

        CanvasRenderingContext2D::drawTextInternal should create a mask buffer compatible with that of the canvas
        https://bugs.webkit.org/show_bug.cgi?id=107372

        Reviewed by Simon Fraser.

        No new tests, just matching acceleration modes.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawTextInternal): Create a buffer with the same acceleration mode as the canvas
        instead of forcing the use of an accelerated buffer if we support acceleration; the canvas could be unaccelerated
        even if USE(IOSURFACE_CANVAS_BACKING_STORE) is on.

2013-01-19  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        Delegated scrolling: Assertion on attempt to show a CSS sticky element
        https://bugs.webkit.org/show_bug.cgi?id=106890

        Reviewed by Kenneth Rohde Christiansen.

        The problem was that frame view (when delegated scrolling enabled) calculated the positions of sticky elements for
        a scroll event before sending scroll request. In case of multiple scroll events that caused assertion as the response
        for previous scroll request was received after the expected sticky elements positions had been already updated for the following
        scroll request.

        No new tests. Covered by existing 'fast/css/sticky' tests.

        * page/FrameView.cpp:
        (WebCore::FrameView::setFixedVisibleContentRect):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::scrollTo):

2013-01-19  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Regression: WebGL Content is not drawn after resizing the canvas.
        https://bugs.webkit.org/show_bug.cgi?id=107366

        Reviewed by Kenneth Rohde Christiansen.

        Window is shared between GraphicsSurface and its client.
        Client doesn't own the Window. This patch ensures that client
        doesn't delete the shared Window handle.

        Covered by existing WebGL tests.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::clear):

2013-01-18  Antti Koivisto  <antti@apple.com>

        Make renderer constructors take Element where possible
        https://bugs.webkit.org/show_bug.cgi?id=107138

        Reviewed by David Hyatt.
        
        Tighter typing prevents bugs and enables optimizations.

        The patch changes how anonymous rendererer are constructed. Previously Document* as the node parameter
        indicated that the renderer was anonymous. This forced the code to operate on ContainerNodes (Document
        is not an Element). Now anonymous renderers are constructed by passing null and the document is set by
        separate setDocumentForAnonymous() call. The patch uses RenderFoo::createAnonymous() pattern consistently.

        Most constructors are switched to take Element. RenderBlock still takes ContainerNode due to a few subclasses
        (RenderView and RenderFlowThread) that pass in a Document.

        * page/FrameView.cpp:
        (WebCore::FrameView::updateScrollCorner):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::createAnonymous):
        (WebCore::RenderBlock::createReplacementRunIn):
        (WebCore::RenderBlock::updateFirstLetterStyle):
        (WebCore::RenderBlock::createFirstLetterRenderer):
        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
        * rendering/RenderBlock.h:
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
        (WebCore::RenderDeprecatedFlexibleBox::createAnonymous):
        * rendering/RenderDeprecatedFlexibleBox.h:
        (RenderDeprecatedFlexibleBox):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
        * rendering/RenderDetailsMarker.h:
        (RenderDetailsMarker):
        * rendering/RenderDialog.h:
        (WebCore::RenderDialog::RenderDialog):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::RenderFieldset):
        * rendering/RenderFieldset.h:
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        * rendering/RenderFlowThread.h:
        * rendering/RenderFullScreen.cpp:
        (RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
        (RenderFullScreen::RenderFullScreen):
        (RenderFullScreen::createAnonymous):
        (RenderFullScreen::wrapRenderer):
        * rendering/RenderFullScreen.h:
        (RenderFullScreen):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::RenderGrid):
        * rendering/RenderGrid.h:
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        (WebCore::RenderImage::createAnonymous):
        * rendering/RenderImage.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::RenderInline):
        (WebCore::RenderInline::createAnonymous):
        (WebCore::RenderInline::addChildIgnoringContinuation):
        * rendering/RenderInline.h:
        (RenderInline):
        (WebCore::RenderInline::node):
        
            Add version with covariant Element return type.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollCornerStyle):
        (WebCore::RenderLayer::updateResizerStyle):
        (WebCore::RenderLayer::createReflection):
        (WebCore::RenderListItem::RenderListItem):
        (WebCore::RenderListItem::styleDidChange):
        * rendering/RenderListItem.h:
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::RenderListMarker):
        (WebCore::RenderListMarker::createAnonymous):
        * rendering/RenderListMarker.h:
        * rendering/RenderMediaControlElements.cpp:
        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
        * rendering/RenderMediaControlElements.h:
        (RenderMediaVolumeSliderContainer):
        (RenderMediaControlTimeDisplay):
        (RenderTextTrackContainerElement):
        * rendering/RenderMultiColumnBlock.cpp:
        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
        * rendering/RenderMultiColumnBlock.h:
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
        * rendering/RenderMultiColumnFlowThread.h:
        (RenderMultiColumnFlowThread):
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        (WebCore::RenderMultiColumnSet::createAnonymous):
        * rendering/RenderMultiColumnSet.h:
        (RenderMultiColumnSet):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
        * rendering/RenderNamedFlowThread.h:
        (RenderNamedFlowThread):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::RenderObject):
        * rendering/RenderObject.h:
        
             Passed in null node indicates that the renderer is anonymous. Remove now unnecessary setIsAnonymous() function.

        (WebCore::RenderObject::isAnonymous):
        (WebCore::RenderObject::setDocumentForAnonymous):
        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        * rendering/RenderRegion.h:
        * rendering/RenderRegionSet.cpp:
        (WebCore::RenderRegionSet::RenderRegionSet):
        * rendering/RenderRegionSet.h:
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::RenderReplaced):
        * rendering/RenderReplaced.h:
        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::RenderReplica):
        (WebCore::RenderReplica::createAnonymous):
        * rendering/RenderReplica.h:
        (RenderReplica):
        * rendering/RenderRuby.cpp:
        (WebCore::createAnonymousRubyInlineBlock):
        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
        * rendering/RenderRuby.h:
        (RenderRubyAsInline):
        (RenderRubyAsBlock):
        * rendering/RenderRubyBase.cpp:
        (WebCore::RenderRubyBase::RenderRubyBase):
        (WebCore::RenderRubyBase::createAnonymous):
        * rendering/RenderRubyBase.h:
        (RenderRubyBase):
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::RenderRubyRun):
        (WebCore::RenderRubyRun::createRubyBase):
        (WebCore::RenderRubyRun::staticCreateRubyRun):
        * rendering/RenderRubyRun.h:
        * rendering/RenderRubyText.cpp:
        (WebCore::RenderRubyText::RenderRubyText):
        * rendering/RenderRubyText.h:
        * rendering/RenderScrollbar.cpp:
        (WebCore::RenderScrollbar::updateScrollbarPart):
        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
        (WebCore::RenderScrollbarPart::createAnonymous):
        * rendering/RenderScrollbarPart.h:
        (RenderScrollbarPart):
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::RenderSearchField):
        * rendering/RenderSearchField.h:
        (RenderSearchField):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::createAnonymousWithParentRenderer):
        * rendering/RenderTable.h:
        * rendering/RenderTableCaption.cpp:
        (WebCore::RenderTableCaption::RenderTableCaption):
        * rendering/RenderTableCaption.h:
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::RenderTableCell):
        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
        * rendering/RenderTableCell.h:
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::RenderTableCol):
        * rendering/RenderTableCol.h:
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::RenderTableRow):
        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
        * rendering/RenderTableRow.h:
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::RenderTableSection):
        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
        * rendering/RenderTableSection.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::RenderText):
        
            Pass null and use setDocumentForAnonymous() if a RenderText is created with the Document as renderer
            to keep them working. Text renderers should be factored similarly to the rest.

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::RenderTextControl):
        * rendering/RenderTextControl.h:
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
        * rendering/RenderTextControlMultiLine.h:
        (RenderTextControlMultiLine):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):
        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
        * rendering/RenderTextTrackCue.cpp:
        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::RenderWidget):
        * rendering/RenderWidget.h:
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        (WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::createMathMLOperator):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::createGlyph):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::RenderMathMLRow):
        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
        * rendering/mathml/RenderMathMLRow.h:
        * rendering/style/ContentData.cpp:
        (WebCore::ImageContentData::createRenderer):
        * rendering/svg/RenderSVGBlock.cpp:
        (WebCore::RenderSVGBlock::RenderSVGBlock):
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::RenderSVGInline):
        * rendering/svg/RenderSVGInline.h:
        * rendering/svg/RenderSVGTSpan.cpp:
        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
        * rendering/svg/RenderSVGTSpan.h:
        * rendering/svg/RenderSVGTextPath.cpp:
        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
        * rendering/svg/RenderSVGTextPath.h:

2013-01-19  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK build fix.

        Add the build targets introduced in r140231 to the list.

        * GNUmakefile.list.am:

2013-01-18  Huang Dongsung  <luxtella@company100.net>

        [Mac] Remove unused pageScaleFactor and positionRelativeToBase arguments in GraphicsLayerCA.
        https://bugs.webkit.org/show_bug.cgi?id=107357

        Reviewed by Ryosuke Niwa.

        Several methods in GraphicsLayerCA receive a pageScaleFactor or a
        positionRelativeToBase argument but don't use the arguments, so this patch
        removes them.

        No new tests. This is just a refactoring of the existing code.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateGeometry):
        (WebCore::GraphicsLayerCA::updateStructuralLayer):
        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
        (WebCore::GraphicsLayerCA::updateContentsScale):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):

2013-01-18  Dimitri Glazkov  <dglazkov@chromium.org>

        Move attributeNameMatches from SelectorChecker to its proper place on Attribute.
        https://bugs.webkit.org/show_bug.cgi?id=107358

        Reviewed by Andreas Kling.

        Refactoring, covered by existing tests.

        * css/SelectorChecker.cpp:
        (WebCore::anyAttributeMatches): Changed to use the new name.
        * css/SelectorChecker.h:
        (SelectorChecker): Moved attributeNameMatches out of here.
        (WebCore::SelectorChecker::checkExactAttribute): Changed to use the new name.
        * dom/Attribute.h:
        (WebCore::Attribute::matches): Moved attributeNameMatches to here.

2013-01-18  Simon Fraser  <simon.fraser@apple.com>

        Fix bug that caused pages with fixed backgrounds to not be fast scrollable
        https://bugs.webkit.org/show_bug.cgi?id=107354

        Reviewed by Sam Weinig.

        Correct the change to RenderObject::styleWillChange() made in r140223. This
        condition is checking that we're painting the root background, so it checks if
        the renderer is the root, or if it's the body, and the document element's renderer
        has no background (which means that the body's background propagates to the root).

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleWillChange):

2013-01-18  Dima Gorbik  <dgorbik@apple.com>

        Remove a TextTrack.h include from the Element.h and move WebVTT related stuff outside the Element
        https://bugs.webkit.org/show_bug.cgi?id=107080

        Reviewed by Sam Weinig.

        WebVTT objects are now subclasses of the Element. This allows us to remove major WebVTT chunks of code from
        Element.h and NodeRareData. WebVTTElement is deriving from HTMLElement and not Element to prevent possible
        problems that could happen because we reuse qTags that are being used in HTML like <b>, <i> and <u>.

        No new tests. This is just a refactoring of the existing code.

        * CMakeLists.txt:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::canShareStyleWithElement):
        * dom/Element.cpp:
        * dom/Element.h:
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.h:
        (WebCore::Node::isWebVTTElement):
        * html/track/TextTrack.h:
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree):
        (WebCore::TextTrackCue::markFutureAndPastNodes):
        * html/track/WebVTTElement.cpp: Added.
        (WebCore::WebVTTElement::create):
        (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
        * html/track/WebVTTElement.h: Added.
        (WebCore::WebVTTElement::setWebVTTNodeType):
        (WebCore::WebVTTElement::webVTTNodeType):
        (WebCore::WebVTTElement::WebVTTElement):
        (WebCore::toWebVTTElement):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken):

2013-01-18  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=106946
        Sticky-position elements can jump around/hide on rubber-banding

        Reviewed by Simon Fraser.

        This patch adds a new function called viewportConstrainedVisibleContentRect() 
        since there are a number of places where we need a visibleContectRect() that does 
        not allow scroll offsets that indicate the rubber-banding that is happening. And 
        this patch fixes the bug for sticky by calling this function in two new places.

        * page/FrameView.cpp:
        (WebCore::FrameView::viewportConstrainedVisibleContentRect):
        (WebCore):
        * page/FrameView.h:
        (FrameView):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::stickyPositionOffset):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):

2013-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140206.
        http://trac.webkit.org/changeset/140206
        https://bugs.webkit.org/show_bug.cgi?id=107346

        Caused crash on wordpress.com (Requested by smfr on #webkit).

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):

2013-01-18  Simon Fraser  <simon.fraser@apple.com>

        Allow fixed background layers to be moved by the ScrollingCoordinator
        https://bugs.webkit.org/show_bug.cgi?id=107213

        Reviewed by Tim Horton.
        
        Start using the RenderView's RenderLayerBacking's background layer for
        fixed root backgrounds (those which have background images all of which have
        background-attachment: fixed).
        
        The background-layer is contained in the RenderLayer's RenderLayerBacking's
        containment view, so it gets page scale applied to it, but scrolling happens
        above this layer, so the background has to be counter-scrolled. We plumb
        this layer through to the ScrollingCoordinator so that this counter-scrolling
        can be done on the scrolling thread.
        
        Test: platform/mac/tiled-drawing/fixed-background/fixed-body-background-positioned.html

        * WebCore.xcodeproj/project.pbxproj: Add ScrollingStateScrollingNodeMac.mm
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::counterScrollingLayerForFrameView): New function to get
        the counter-scrolling layer.
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition): Sync or set the position of the
        counter-scrolling layer just like we do for the main scrolling layer.
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::updateScrollingNode):
        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::ScrollingStateNode): setScrollLayer() renamed to setScrollPlatformLayer(),
        and added a FIXME comment because this code is confusing and possibly wrong.
        * page/scrolling/ScrollingStateNode.h: Renamed setScrollLayer() to setScrollPlatformLayer().
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (ScrollingStateScrollingNode): Track the counter-scrolling layer.
        (WebCore::ScrollingStateScrollingNode::counterScrollingLayer):
        (WebCore::ScrollingStateScrollingNode::counterScrollingLayerDidChange):
        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayerDidChange):
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac): Add updateScrollingNode() which is less expensive than frameViewRootLayerDidChange()
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange): Fetch the counter-scrolling layer if we have one.
        (WebCore::ScrollingCoordinatorMac::setCounterScrollingLayerForNode):
        (WebCore::ScrollingCoordinatorMac::updateScrollingNode):
        * page/scrolling/mac/ScrollingStateNodeMac.mm:
        (WebCore::ScrollingStateNode::setScrollPlatformLayer):
        * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm: New file for implementation of setCounterScrollingLayer().
        (WebCore::ScrollingStateScrollingNode::counterScrollingPlatformLayer):
        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        (ScrollingTreeScrollingNodeMac):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::update):
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::fixedBackgroundPaintsInLocalCoordinates):
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): If we're painting into the fixed root layer,
        we want to always paint with the top,left at 0,0.
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): In the fixed root background case,
        we can make the background layer viewport-sized, and we have to set its counter-scrolled position.
        (WebCore::RenderLayerBacking::updateBackgroundLayer): If the background layer was created or destroyed,
        we have to tell the ScrollingCoordinator.
        (WebCore::RenderLayerBacking::didCommitChangesForLayer): Send the GraphicsLayer down.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::didFlushChangesForLayer): If the background layer changed (e.g. it became
        tiled) we need to tell the ScrollingCoordinator.
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): We failed to update the borders on new
        layers sometimes; this fixes that.
        (WebCore::RenderLayerCompositor::frameViewDidScroll): In the non-threaded scrolling case, if we have
        a fixed background layer, we need to update its position.
        (WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged): Feed the newly created/destroyed layer
        down to the ScrollingCoordinator.
        (WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
        (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
        * rendering/RenderLayerCompositor.h:
        * rendering/RenderObject.cpp:
        (WebCore::rendererHasBackground):
        (WebCore::RenderObject::styleWillChange): If the compositor supports fixed root backgrounds, we no longer
        treat these as slow repaint objects.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::rootBackgroundIsEntirelyFixed): Helper function called by RLC.
        * rendering/RenderView.h:

2013-01-18  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Switch to new createTransaction call
        https://bugs.webkit.org/show_bug.cgi?id=107311

        Reviewed by Tony Chang.

        Convert frontend callers to use the new backend createTransaction
        call which is the final divorce between the frontend and backend
        transaction objects. This allows an asynchronous call in Chromium
        and allows the front and backend to have their own lifecycle,
        allowing the backend to be cleaned up as soon as a transaction is complete,
        rather than waiting for the JS object to get cleaned up.

        No new tests, this is a refactor covered by existing tests.

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::commit):
        (WebCore::IDBDatabaseBackendImpl::abort):
        (WebCore::IDBDatabaseBackendImpl::createTransaction):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
        (WebCore::IDBDatabaseCallbacksImpl::onAbort):
        (WebCore::IDBDatabaseCallbacksImpl::onComplete):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        (WebCore::IDBTransaction::IDBTransaction):
        (WebCore::IDBTransaction::setActive):
        (WebCore::IDBTransaction::abort):
        * Modules/indexeddb/IDBTransaction.h:
        (WebCore):
        (IDBTransaction):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::create):
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::setCallbacks):

2013-01-18  Brady Eidson  <beidson@apple.com>

        Rework NetworkProcess resource load identifiers.
        <rdar://problem/12934449> and https://bugs.webkit.org/show_bug.cgi?id=107192

        Reviewed by Alexey Proskuryakov.

        No new tests (No effect in tested configs).

        * WebCore.exp.in:

        Include an identifier argument for synchronous loads:
        * loader/LoaderStrategy.cpp:
        (WebCore::LoaderStrategy::loadResourceSynchronously):
        * loader/LoaderStrategy.h:

        Pass along a unique identifier to the synchronous load:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadResourceSynchronously):

        Remove the "setIdentifier" method:
        * loader/ResourceLoader.cpp:
        * loader/ResourceLoader.h:

2013-01-18  Shinya Kawanaka  <shinyak@chromium.org>

        Introduce isHTMLTextFormControlElement and toHTMLTextFormControlElement instead of toTextFormControl
        https://bugs.webkit.org/show_bug.cgi?id=107089

        Reviewed by Kent Tamura.

        toTextFormControl(node) returns 0 if node is not HTMLTextFormControl. In recent coding convention,
        we only have ASSERT and statc_cast in this kind of conversion function. So this code looks like
        having a bad cast, though it does not.

        In this patch, we convert toTextFromControl to isHTMLTextFormControlElement and toHTMLFormControlElement,
        which aligns our coding convention.

        No new tests, simple refactoring.

        * editing/Editor.cpp:
        (WebCore::Editor::selectionForCommand):
        (WebCore::Editor::setBaseWritingDirection):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::directionality):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::enclosingTextFormControl):
        * html/HTMLTextFormControlElement.h:
        (WebCore::isHTMLTextFormControlElement):
        (WebCore):
        (WebCore::toHTMLTextFormControlElement):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::RenderTextControl):
        (WebCore::RenderTextControl::layoutSpecialExcludedChild):
        * testing/Internals.cpp:
        (WebCore::Internals::visiblePlaceholder):

2013-01-18  Emil A Eklund  <eae@chromium.org>

        Change RenderStyle::getRoundedInnerBorderFor to take ints for border widths
        https://bugs.webkit.org/show_bug.cgi?id=107331

        Reviewed by Levi Weintraub.
        
        Borders are always represented as ints yet RenderStyle::
        getRoundedInnerBorderFor upcasts from int to LayoutUnit when
        calling getRoundedInnerBorderFor.

        No new tests, no change in functionality.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::getRoundedInnerBorderFor):
        * rendering/style/RenderStyle.h:
        Change getRoundedInnerBorderFor to use ints for border widths.

2013-01-18  Adam Barth  <abarth@webkit.org>

        BackgroundHTMLParser shouldn't create AtomicStrings
        https://bugs.webkit.org/show_bug.cgi?id=107150

        Reviewed by Tony Gentilcore.

        Previously, we were creating an AtomicString from the HTMLToken for
        every start and end tag. This caused us to have a static dependency on
        the parser thread's atomic string table. We want to avoid static
        dependencies because we want to eventually run the background parser
        using a library like libdispatch that will let us run many version in
        parallel.

        This patch uses a different approach whereby we use the tag name from
        the CompactHTMLToken. In order to avoid calling strcmp excessively, we
        use StringImpl::hash to quickly reject matches with some common tag
        names. As a side effect, the hash value will be cached in the
        StringImpl, speeding up atomization once these StringImpls arrive on
        the main thread.

        This patch also improves the performance on html-parser-srcdoc.html.
        With the patch in bug 107236 applied (which focuses the benchmark more
        tightly on the parser), we spend 2.3% less time on the main thread
        (likely due to pre-caching the hash values) and 11.5% less time on the
        parser thread.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore):
        (WebCore::threadSafeEqual):
        (WebCore::threadSafeMatch):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):

2013-01-18  Tony Gentilcore  <tonyg@chromium.org>

        Run defer scripts in the threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=107320

        Reviewed by Eric Seidel.

        No new tests because covered by http/tests/misc/script-defer.html.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::prepareToStopParsing):
        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):

2013-01-18  Robert Hogan  <robert@webkit.org>

        fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor.html is crashing after r140024
        https://bugs.webkit.org/show_bug.cgi?id=107209

        Reviewed by David Hyatt.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutPositionedObjects): r140024 forgot to layout the fixedpos object after
        marking it.

2013-01-18  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::RenderObject::isDescendantOf
        https://bugs.webkit.org/show_bug.cgi?id=107226

        Reviewed by David Hyatt.

        Test: fast/block/float/overhanging-float-not-removed-crash.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
        Skip anonymous blocks in the chain to get the enclosing block and
        be able to correctly mark the overhanging floats in the next siblings.

2013-01-18  Chris Hopman  <cjhopman@google.com>

        Fix scrollRectToVisible in the presence of transforms
        https://bugs.webkit.org/show_bug.cgi?id=105574

        Reviewed by Simon Fraser.

        When scrolling to reveal an overflow layer, the required scroll was
        being calculated in absolute coordinates. To properly account for
        transforms, this calculation should be done in the local coordinates
        of the renderBox.

        Tests: editing/input/reveal-selection-transformed-overflow-parent.html
               editing/input/reveal-selection-transformed-textarea.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):
        When scrolling to reveal an overflow layer, calculate the required
        scroll in the local coordinates of the RenderBox.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::absoluteToLocalQuad):
        (WebCore):
        * rendering/RenderObject.h:
        (RenderObject):
        Add function to convert an absolute quad to a local quad.

2013-01-18  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Add support for min-content
        https://bugs.webkit.org/show_bug.cgi?id=106474

        Reviewed by Ojan Vafai.

        Tests: fast/css-grid-layout/minmax-min-content-column-resolution-columns.html
               fast/css-grid-layout/minmax-min-content-column-resolution-rows.html

        This change adds support to properly size min-content as long as the grid items and the grid element
        don't have orthogonal writing-modes. Orthogonal writing modes will be handled in a follow-up bug
        to keep the patch small-ish.

        This change implements a subset of the specification's algorithm, taking some shortcuts where the
        extra complexity wasn't a clear win for now: e.g. the specification relies on behavior customization
        through functors to share code among more complex cases - like spanning columns / rows. These shortcuts
        have been marked as FIXME / comments in the code so that they can be evaluated and fixed as we implement
        more of the complexity.

        * platform/Length.h:
        (WebCore::Length::isMinContent):
        (WebCore::Length::isMaxContent):
        Helper functions.

        * rendering/RenderGrid.cpp:
        (WebCore::GridTrack::maxBreadthIfNotInfinite):
        Helper function that returns the max breadth if finite and the used breadth otherwise.

        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
        Updated to call resolveContentBasedTrackSizingFunctions.

        (WebCore::RenderGrid::computeUsedBreadthOfMinLength):
        (WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
        (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
        Split computeUsedBreadthOfLength into min and max side so that we can return the default values accordingly.
        computeUsedBreadthOfSpecifiedLength shares the common code. Also made these functions 'const'.

        (WebCore::RenderGrid::minContentForChild):
        This function returns the 'min-content' value based on layout / compute preferred logical widths information.

        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        This is the core function that implements the sizing. It currently doesn't share much code between the branches,
        which will be done as we implement more of the algorithm.

        (WebCore::RenderGrid::distributeSpaceToTracks):
        Clamped the growthShare to positive value only. This is required to handle cases where min-content is bigger
        than max track breadth. Added a comment about this deviation from the specification.

        (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
        Debug only method. It is a sanity check as our algorithm should *never* shrink the used breadth to a value
        smaller than the computed min track breadth.

        (WebCore::RenderGrid::layoutGridItems):
        Added 2 ASSERT using tracksAreWiderThanMinTrackBreadth.

        (WebCore::RenderGrid::resolveGridPosition):
        Helper overriden instance.
        * rendering/RenderGrid.h:
        Added the new functions. Also made more core functions take both grid tracks.

2013-01-18  Geoffrey Garen  <ggaren@apple.com>

        Weak GC maps should be easier to use
        https://bugs.webkit.org/show_bug.cgi?id=107312

        Reviewed by Sam Weinig.

        Since weak GC maps are so easy to use now, let's use them for the DOM
        string cache.

        * WebCore.exp.in:
        * bindings/js/DOMWrapperWorld.cpp:
        (WebCore):
        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
        * bindings/js/DOMWrapperWorld.h:
        (WebCore):
        (WebCore::DOMWrapperWorld::globalData):
        (DOMWrapperWorld):
        * bindings/js/JSDOMBinding.cpp:
        (WebCore):
        * bindings/js/JSDOMBinding.h:
        (WebCore):
        (WebCore::jsStringWithCache):

2013-01-18  Tim Volodine  <timvolodine@chromium.org>

        Text Autosizing: don't autosize headers with multiple inline links.
        https://bugs.webkit.org/show_bug.cgi?id=106792

        Reviewed by Kenneth Rohde Christiansen.

        This patch includes code for detecting rows of links typically seen
        in headers or footers of webpages. Such rows of links should not be
        autosized.

        The heuristics to detect such rows of links are based on the appearance
        of headers in most websites: i.e. links are inline, there are at least three
        of them, they should have the same font size with possibly only short textual
        separators between them (max 3 characters) and there should be no line breaks
        (i.e. <br> elements) between them.

        Tests: fast/text-autosizing/header-li-links-autosizing.html
               fast/text-autosizing/header-links-autosizing-different-fontsize.html
               fast/text-autosizing/header-links-autosizing.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::containerShouldBeAutosized):
        (WebCore::TextAutosizer::containerIsRowOfLinks):
        (WebCore):
        * rendering/TextAutosizer.h:

2013-01-18  Levi Weintraub  <leviw@chromium.org>

        LayoutUnit should round half consistently, not away from zero
        https://bugs.webkit.org/show_bug.cgi?id=107208

        Reviewed by Eric Seidel.

        The current implementation of LayoutUnit::round() always rounds half away from zero. This can result in
        a shift of 1 pixel moving an element aligned at a half-pixel by 2. This problem is particularly common with
        RenderLayers, which pass the sub-pixel accumulation into their renderers after translating the graphics
        context passed in by their rounded location. This changes round() to always round 0.5 up.

        Test: fast/sub-pixel/sub-pixel-root-layer.html

        * platform/LayoutUnit.h:
        (WebCore::LayoutUnit::round): Always round 0.5 up.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents): We no longer need to prevent rootLayers from passing in a
        sub-pixel offset. This eliminates the shifting of elements when applying translateZ(0) or similar.

2013-01-18  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove custom V8ScriptProfileNodeCustom::toV8()
        https://bugs.webkit.org/show_bug.cgi?id=107245

        Reviewed by Adam Barth.

        V8ScriptProfileNodeCustom::toV8() needs not to be custom.
        Furthermore, the current custom toV8() is wrong in that
        it doesn't use a creationContext and it doesn't set a wrapper
        class id. This is one of steps to avoiding ASSERT()s
        that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .

        No tests. No change in behavior.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed.
        * inspector/ScriptProfileNode.idl:

2013-01-18  Ali Juma  <ajuma@chromium.org>

        [chromium] Convert WebTransformOperations into pure virtual
        https://bugs.webkit.org/show_bug.cgi?id=105553

        Reviewed by James Robinson.

        This removes the implementation of WebTransformOperations and updates
        users to construct instances using a factory function. This also adds
        the implementation of WebTransformKeyFrame.

        No new tests, no change in functionality.

        * WebCore.gypi:
        * platform/chromium/support/WebTransformKeyframe.cpp: Copied from Source/Platform/chromium/public/WebTransformKeyframe.h.
        (WebKit):
        (WebKit::WebTransformKeyframe::WebTransformKeyframe):
        (WebKit::WebTransformKeyframe::~WebTransformKeyframe):
        (WebKit::WebTransformKeyframe::time):
        (WebKit::WebTransformKeyframe::value):
        * platform/chromium/support/WebTransformOperations.cpp: Removed.
        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
        (WebCore::toWebTransformOperations):
        (WebCore::WebTransformAnimationCurve):

2013-01-18  Arko Saha  <arko@motorola.com>

        PropertyCollection test fails on JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=106997

        Reviewed by Kentaro Hara.

        Made changes in CodeGeneratorJS.pm so that it can use
        toJS(JSC::ExecState*, JSDOMGlobalObject*, PropertyNodeList*)
        to wrap the object and return PropertyNodeList instead of NodeList.

        Test: fast/dom/MicroData/propertiescollection-crash.html
              fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

2013-01-18  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Improve table-guessing heuristics
        https://bugs.webkit.org/show_bug.cgi?id=107042

        Reviewed by Chris Fleizach.

        Adds some more rules so that tables with cell borders, empty-cells,
        col, colgroup, or >= 20 rows are all considered data tables, not
        layout tables.

        Test: accessibility/table-detection.html (modified)

        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::isDataTable):

2013-01-18  Terry Anderson  <tdanderson@chromium.org>

        Scroll gestures should not create wheel events
        https://bugs.webkit.org/show_bug.cgi?id=103952

        Reviewed by James Robinson.

        Tests: fast/events/touch/gesture/touch-gesture-scroll-div-propagated.html
               fast/events/touch/gesture/touch-gesture-scroll-div-twice-propagated.html
               fast/events/touch/gesture/touch-gesture-scroll-iframe-editable.html
               fast/events/touch/gesture/touch-gesture-scroll-iframe-propagated.html
               fast/events/touch/gesture/touch-gesture-scroll-page-propagated.html

        In EventHandler::handleGestureEvent(), scroll gestures should not be handled by synthesizing
        and dispatching wheel events; we should instead scroll the relevant layer directly.

        Note that this patch should be landed together with the patch for
        https://bugs.webkit.org/show_bug.cgi?id=106589.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler):
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::passGestureEventToWidget):
        (WebCore::EventHandler::passGestureEventToWidgetIfPossible):
        (WebCore):
        (WebCore::closestScrollableNodeInDocumentIfPossibleOrSelfIfNotScrollable):
        (WebCore::EventHandler::handleGestureScrollBegin):
        (WebCore::EventHandler::handleGestureScrollUpdate):
        (WebCore::EventHandler::isScrollbarHandlingGestures):
        * page/EventHandler.h:
        (EventHandler):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollByRecursively):
        * rendering/RenderLayer.h:

2013-01-18  Nate Chapin  <japhet@chromium.org>

        Cannot abort multiple XHR POSTs made to same url
        https://bugs.webkit.org/show_bug.cgi?id=106937

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/cache/cancel-multiple-post-xhrs.html

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::removeClient): Call allClientsRemoved() regardless
            of whether this resource is inCache(). Otherwise, CachedRawResources will
            not have the opportunity to cancel as expected. However, don't cancel
            if the last client was removed because we're in the middle of switching
            the clients over to a successfully revalidated resource.

2013-01-18  Dima Gorbik  <dgorbik@apple.com>

        Implement ::cue() pseudo element property whitelist
        https://bugs.webkit.org/show_bug.cgi?id=105477

        Reviewed by Antti Koivisto.

        Only allowed by specs properties are applied to WebVTT nodes. We used whitelists before for the region
        style rule so this refactors the code a little bit to pass bitfields that contain the information on which 
        whitelists should be used.

        Test: media/track/track-css-property-whitelist.html

        * css/RuleSet.cpp: 
        (WebCore::RuleData::RuleData): set a region bit when creating a RuleData.
        (WebCore::RuleSet::addRule): set a cue bit when PseudoCue type is set for a selector.
        * css/RuleSet.h: add the new bitfield as an ivar and setters/getters to access it.
        (WebCore::RuleData::isInRegionRule):
        (WebCore::RuleData::whitelistType):
        (WebCore::RuleData::isInCueRule):
        (WebCore::RuleData::setIsInCueRule):
        * css/StyleResolver.cpp: refactor the code to pass a bitfield instead of single bits.
        (WebCore::StyleResolver::addMatchedProperties):
        (WebCore::StyleResolver::sortAndTransferMatchedRules):
        (WebCore::StyleResolver::applyProperties):
        (WebCore::StyleResolver::applyMatchedProperties):
        (WebCore::StyleResolver::isValidCueStyleProperty): 
        * css/StyleResolver.h:

2013-01-18  Tony Chang  <tony@chromium.org>

        Incorrect scrollable height during simplified layout
        https://bugs.webkit.org/show_bug.cgi?id=107193

        Reviewed by Ojan Vafai.

        Test: fast/overflow/height-during-simplified-layout.html

        When computing overflow, we use the height of the block before it was clamped
        (i.e., before updateLogicalHeight() has been called).

        During simplfied layout, we use the previous sizes rather than doing a full
        layout. We still compute overflow, but we were using the clamped height rather
        than the full height.

        This caused us to incorrectly compute the overflow by the vertical padding.
        Since we were passing in the already clamped clientHeight to RenderBlock::computeOverflow,
        we would only include the overflow from our children sizes and not include the overflow
        from ourselves caused by padding + content.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::simplifiedLayout): Use the scrollable height rather than the
        already clamped height.

2013-01-18  Joe Mason  <jmason@rim.com>

        [BlackBerry] fix compile warnings in NetworkJob
        https://bugs.webkit.org/show_bug.cgi?id=107293

        Reviewed by Yong Li.

        Internal PR: 283096

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore):
        (WebCore::isAppendableHeader):

2013-01-18  Dominic Mazzoni  <dmazzoni@google.com>

        REGRESSION (r132699): Crashes in WebCore::TextIterator::handleTextNodeFirstLetter
        https://bugs.webkit.org/show_bug.cgi?id=100688

        Reviewed by Martin Robinson.

        Prevent crashes when accessibilityObjectIsIgnored calls textUnderElement
        while a subtree is being destroyed.

        Covered by existing tests.

        * accessibility/atk/AccessibilityObjectAtk.cpp:
        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

2013-01-18  Joe Mason  <jmason@rim.com>

        [BlackBerry] Only clear credentials when purgeCredentials is called
        https://bugs.webkit.org/show_bug.cgi?id=107124

        Reviewed by Yong Li.

        Stop clearing credentials when sending out a request just in case they're wrong. That's stupid and
        has race conditions. Only clear them when we know they're wrong.

        Internal PR: 231158
        Internal Reviewer: George Staikos

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::sendRequestWithCredentials):
        (WebCore::NetworkJob::purgeCredentials):

2013-01-18  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] UI: add a context selector to show screenshot of any canvas in the log
        https://bugs.webkit.org/show_bug.cgi?id=107274

        Reviewed by Pavel Feldman.

        Adding a canvas context selector to display in the replay image screenshot.
        Drive-by: Reuse common CSS class "status-bar-item" to remove a lot of CSS duplication.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype._createControlButton):
        (WebInspector.CanvasProfileView.prototype._onReplayContextChanged):
        (WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
        (WebInspector.CanvasProfileView.prototype._requestReplayContextInfo.didReceiveResourceInfo):
        (WebInspector.CanvasProfileView.prototype._requestReplayContextInfo):
        * inspector/front-end/canvasProfiler.css:
        * inspector/front-end/inspector.css:
        (.status-bar button.status-bar-item img):

2013-01-18  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] add getResourceInfo and getResourceState methods to the protocol
        https://bugs.webkit.org/show_bug.cgi?id=107280

        Reviewed by Pavel Feldman.

        We need to expose replayable resource info and replay state via the protocol.
        The ResourceInfo describes a replayable resource, i.e. the info about a resource that was stored to replay it later.
        The ResourceState describes a current state of a resource being replayed on the back-end.

        * inspector/CodeGeneratorInspector.py:
        * inspector/InjectedScriptCanvasModule.cpp:
        (WebCore::InjectedScriptCanvasModule::replayTraceLog):
        (WebCore):
        (WebCore::InjectedScriptCanvasModule::resourceInfo):
        (WebCore::InjectedScriptCanvasModule::resourceState):
        * inspector/InjectedScriptCanvasModule.h:
        (InjectedScriptCanvasModule):
        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::replayTraceLog):
        (WebCore):
        (WebCore::InspectorCanvasAgent::getResourceInfo):
        (WebCore::InspectorCanvasAgent::getResourceState):
        * inspector/InspectorCanvasAgent.h:
        (InspectorCanvasAgent):
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog):

2013-01-18  Sergio Villar Senin  <svillar@igalia.com>

        [Soup] Frequent crashes on redirections
        https://bugs.webkit.org/show_bug.cgi?id=107240

        Reviewed by Martin Robinson.

        We must ensure that the ResourceHandle has not being cancelled
        before performing a redirect. This could happen while we close the
        stream used to read the redirect response because it is done
        asynchronously.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::redirectCloseCallback): also renamed res to result.

2013-01-18  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: array grouping does not work big sparse arrays
        https://bugs.webkit.org/show_bug.cgi?id=106897

        Reviewed by Pavel Feldman.

        Now we will choose between array index iteration and object properties iteration for sparse arrays.

        * inspector/front-end/ObjectPropertiesSection.js:
        (.doLoop):
        (.countIterationCallback):
        (.loopIterationCallback):

2013-01-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Fix Memory leaks in EGL and GLX surface.
        https://bugs.webkit.org/show_bug.cgi?id=107100

        Reviewed by Laszlo Gombos.

        GLX and EGL surface don't release GL resources created by them.
        This patch ensures that the leaks are fixed and
        native display is not closed before releasing the current
        context and surface.

        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::releaseResources):
        * platform/graphics/surfaces/egl/EGLSurface.cpp:
        (WebCore::EGLWindowTransportSurface::destroy): Call base class to free any allocated GL resources.
        * platform/graphics/surfaces/glx/GLXContext.cpp:
        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
        (WebCore::GLXOffScreenContext::freeResources): Don't reset the display to null.
        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore::GLXTransportSurface::destroy): Call base class to free any allocated GL resources.
        (WebCore::GLXPBuffer::freeResources): Call base class to free any allocated GL resources.

2013-01-18  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] introduce Resource.toDataURL
        https://bugs.webkit.org/show_bug.cgi?id=107019

        Reviewed by Pavel Feldman.

        Resource.toDataURL will return string data url representation of a resource, if applicable.
        For example, for a rendering context resource (2D or WebGL) it will return canvas.toDataURL().

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2013-01-18  Csaba Osztrogonác  <ossy@webkit.org>

        One more unreviewed Windows buildfix after r140097.

        * html/HTMLPlugInElement.h: Remove non-existent include.

2013-01-18  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed Windows buildfix after r140097.

        * html/HTMLPlugInElement.h:

2013-01-18  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: remove dead code from heap profiler front-end
        https://bugs.webkit.org/show_bug.cgi?id=107265

        Reviewed by Pavel Feldman.

        * inspector/front-end/HeapSnapshotView.js: removed unused methods.

2013-01-18  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Fix Qt minimal compilation after r140127

        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentationCookie):

2013-01-18  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: make sure InspectorInstrumentationCookie is invalidated if inspected page was destroyed
        https://bugs.webkit.org/show_bug.cgi?id=107232

        Reviewed by Pavel Feldman.

        Made InstrumentingAgents reference counted to make sure it is not deleted while there is
        InspectorInstrumentationCookie with reference to it.

        Introduced InstrumentingAgents::reset that is called from inspector controller destructor
        to double check that references to all deleted agents are cleared.

        InspectorInstrumentationCookie turned from std::pair into a custom class so that
        we can avoid inclusion of InstrumentingAgents.h into InspectorInstrumentation.h

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::~InspectorController):
        * inspector/InspectorController.h:
        (InspectorController):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentationCookie::InspectorInstrumentationCookie):
        (WebCore::InspectorInstrumentationCookie::operator=):
        (WebCore::InspectorInstrumentationCookie::~InspectorInstrumentationCookie):
        (WebCore::InspectorInstrumentation::didHandleEventImpl):
        (WebCore::InspectorInstrumentation::didFireTimerImpl):
        (WebCore::InspectorInstrumentation::didLayoutImpl):
        (WebCore::InspectorInstrumentation::didPaintImpl):
        (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
        (WebCore::InspectorInstrumentation::didMatchRuleImpl):
        (WebCore::InspectorInstrumentation::didProcessRuleImpl):
        (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
        (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentationCookie):
        (WebCore::InspectorInstrumentation::didCallFunction):
        (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
        (WebCore::InspectorInstrumentation::didDispatchEvent):
        (WebCore::InspectorInstrumentation::didHandleEvent):
        (WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
        (WebCore::InspectorInstrumentation::didEvaluateScript):
        (WebCore::InspectorInstrumentation::didFireTimer):
        (WebCore::InspectorInstrumentation::didLayout):
        (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
        (WebCore::InspectorInstrumentation::didPaint):
        (WebCore::InspectorInstrumentation::didRecalculateStyle):
        (WebCore::InspectorInstrumentation::didMatchRule):
        (WebCore::InspectorInstrumentation::didProcessRule):
        (WebCore::InspectorInstrumentation::didReceiveResourceData):
        (WebCore::InspectorInstrumentation::didWriteHTML):
        (WebCore::InspectorInstrumentation::didFireAnimationFrame):
        * inspector/InstrumentingAgents.cpp:
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore):
        (WebCore::InstrumentingAgents::reset):
        * inspector/InstrumentingAgents.h:
        (WebCore::InstrumentingAgents::create):
        (InstrumentingAgents):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        (WebCore::WorkerInspectorController::~WorkerInspectorController):
        * inspector/WorkerInspectorController.h:
        (WorkerInspectorController):

2013-01-18  Jussi Kukkonen  <jussi.kukkonen@intel.com>

        [CMake] Fix indexeddb module build
        https://bugs.webkit.org/show_bug.cgi?id=107247

        Reviewed by Kentaro Hara.

        Add missing files to WebCore_SOURCES so the indexeddb module
        can be built.

        * CMakeLists.txt:

2013-01-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Add early version of file system mappings editor to settings.
        https://bugs.webkit.org/show_bug.cgi?id=107136

        Reviewed by Pavel Feldman.

        FileMapping simplified to use only one type of entries.
        Added start/stopBatchUpdates to FileSystemWorkspaceProvider for better TabbedPane performance.
        Added fileSystemProject experiment for file system support and (early and ugly) file system mappings editor behind this experiment.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * inspector/front-end/FileMapping.js:
        (WebInspector.FileMapping):
        (WebInspector.FileMapping.prototype._entryMatchesURL):
        (WebInspector.FileMapping.prototype._entryURIPrefix):
        (WebInspector.FileMapping.prototype.hasMappingForURL):
        (WebInspector.FileMapping.prototype._innerURIForURL):
        (WebInspector.FileMapping.prototype.uriForURL):
        (WebInspector.FileMapping.prototype.urlForURI):
        (WebInspector.FileMapping.prototype.mappingEntries):
        (WebInspector.FileMapping.prototype.setMappingEntries):
        (WebInspector.FileMapping.prototype.set _loadFromSettings.get this):
        (WebInspector.FileMapping.prototype.set _loadFromSettings):
        (WebInspector.FileMapping.Entry):
        * inspector/front-end/FileSystemWorkspaceProvider.js:
        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
        * inspector/front-end/IsolatedFileSystemModel.js:
        (WebInspector.IsolatedFileSystemModel.prototype._fileSystemAdded):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.WorkspaceSettingsTab):
        (WebInspector.WorkspaceSettingsTab.prototype._createFileSystemsEditor):
        (WebInspector.WorkspaceSettingsTab.prototype._createShowTextInput):
        (WebInspector.WorkspaceSettingsTab.prototype._createEditTextInput):
        (WebInspector.WorkspaceSettingsTab.prototype._createRemoveButton):
        (WebInspector.WorkspaceSettingsTab.prototype._createAddButton):
        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.removeFileSystemClicked):
        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.fileSystemRemoved):
        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow):
        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemClicked):
        (WebInspector.WorkspaceSettingsTab.prototype._fileSystemAdded):
        (WebInspector.WorkspaceSettingsTab.prototype._createFileMappingEditor):
        (WebInspector.WorkspaceSettingsTab.prototype._addMappingRow.removeMappingClicked):
        (WebInspector.WorkspaceSettingsTab.prototype._addMappingRow):
        (WebInspector.WorkspaceSettingsTab.prototype._addFileMappingClicked):
        * inspector/front-end/helpScreen.css:
        (.settings-tab .file-systems-editor input.file-system-path):
        (.settings-tab .file-mappings-editor .workspace-settings-row input):
        (.settings-tab .file-mappings-editor .workspace-settings-row input.file-mapping-url):
        (#workspace-tab-content .button:hover):
        (#workspace-tab-content .workspace-settings-row:hover .button):
        (#workspace-tab-content .workspace-settings-row .button):
        (#workspace-tab-content .workspace-settings-row .remove-button):
        (#workspace-tab-content .workspace-settings-row .add-button):
        (#workspace-tab-content .workspace-settings-row .file-system-add-button):
        (#workspace-tab-content .workspace-settings-row .file-system-add-button:hover):
        * inspector/front-end/addIcon.png: Added.

2013-01-18  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: nest time/timeEnd records when possible (in glue-mode)
        https://bugs.webkit.org/show_bug.cgi?id=100114

        Reviewed by Pavel Feldman.

        Nesting time/timeEnd intervals will provide a better overview on
        what is happening.

        * inspector/front-end/TimelinePresentationModel.js: Added logic that
        reparents "time" record when "timeEnd" arrives.

2013-01-18  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: do not use localeCompare unless necessary
        https://bugs.webkit.org/show_bug.cgi?id=107242

        Reviewed by Vsevolod Vlasov.

        Saving on performance here.

        * inspector/front-end/CSSSelectorProfileView.js:
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.selectorComparator):
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.sourceComparator):
        * inspector/front-end/CookiesTable.js:
        (WebInspector.CookiesTable.prototype._sortCookies.compareTo):
        (WebInspector.CookiesTable.prototype._sortCookies):
        * inspector/front-end/DirectoryContentView.js:
        (.nameCompare):
        (.typeCompare):
        * inspector/front-end/FileSystemModel.js:
        (WebInspector.FileSystemModel.Entry.compare):
        * inspector/front-end/FileSystemView.js:
        (WebInspector.FileSystemView.EntryTreeElement.prototype._directoryContentReceived):
        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.OpenResourceDialog.compareFunction):
        (WebInspector.OpenResourceDialog):
        * inspector/front-end/NetworkRequest.js:
        * inspector/front-end/ScriptsSearchScope.js:
        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes.comparator):
        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
        * inspector/front-end/utilities.js:

2013-01-18  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix Closure r2388 warnings
        https://bugs.webkit.org/show_bug.cgi?id=107252

        Reviewed by Pavel Feldman.

        Surround all casts with brackets to avoid Closure warnings.

        No new tests: no change in behaviour.

        * inspector/front-end/BottomUpProfileDataGridTree.js:
        (WebInspector.BottomUpProfileDataGridTree):
        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
        (WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
        (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype.pushNodeToFrontend):
        (WebInspector.DOMAgent.prototype.pushNodeByPathToFrontend):
        (WebInspector.DOMAgent.prototype.querySelector):
        (WebInspector.DOMAgent.prototype.querySelectorAll):
        * inspector/front-end/DefaultScriptMapping.js:
        (WebInspector.DefaultScriptMapping.prototype._scriptEdited):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
        * inspector/front-end/TopDownProfileDataGridTree.js:
        (WebInspector.TopDownProfileDataGridTree):
        (WebInspector.TopDownProfileDataGridTree.prototype.exclude):

2013-01-18  Takashi Sakamoto  <tasak@google.com>

        Implement CSSHostRule for @host @-rules.
        https://bugs.webkit.org/show_bug.cgi?id=102344

        Reviewed by Dimitri Glazkov.

        CSSHostRule is defined in Shadow DOM spec:
        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface
        To see or to modify @host @-rules by using inspector, we need to
        implement CSSHostRule interface.

        Test: fast/dom/shadow/css-hostrule-api.html

        * DerivedSources.cpp:
        Modified to include JSCSSHostRule.cpp.
        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Added CSSHostRule.cpp, CSSHostRule.h, and CSSHostRule.idl.
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        Add a new case that the given rule is @host @-rules to support @host
        @-rules.
        * bindings/objc/DOMCSS.mm:
        (kitClass):
        Add a new case that the given rule is @host @-rules to support @host
        @-rules.
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::wrap):
        * css/CSSAllInOne.cpp:
        * css/CSSHostRule.cpp: Added.
        (WebCore):
        (WebCore::CSSHostRule::CSSHostRule):
        (WebCore::CSSHostRule::cssText):
        * css/CSSHostRule.h: Added.
        (WebCore):
        (CSSHostRule):
        (WebCore::CSSHostRule::create):
        Implemented class CSSHostRule which inherits CSSGroupingRule.
        Since CSSHostRule has the same interface as CSSGroupingRule, it is
        required to implement its constructor and to override only type
        method and cssText method.
        * css/CSSHostRule.idl: Added.
        * css/CSSRule.h:
        * css/CSSRule.idl:
        Added internal HOST_RULE type number.
        * css/StyleResolver.cpp:
        (WebCore::collectCSSOMWrappers):
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        Modified to handle StyleRuleHost.
        * css/StyleRule.h:
        (WebCore::StyleRuleBase::isHostRule):
        (WebCore::StyleRuleHost::StyleRuleHost):
        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):
        * page/DOMWindow.idl:
        Added CSSHostRule constructor.

2013-01-18  John J. Barton  <johnjbarton@chromium.org>

        Web Inspector: inspectedWindow.eval("IamUndefined.prop", callback) fails to give exception text
        https://bugs.webkit.org/show_bug.cgi?id=106926

        Reviewed by Pavel Feldman.

        Return .description from exceptions rather than .value (which is undefined)

        New test added to extensions/extensions-eval.html

        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype.):
        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):

2013-01-14  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL] Update freetype in jhbuild to 2.4.11 and activate subpixel layout
        https://bugs.webkit.org/show_bug.cgi?id=106774

        In order to fix a long standing linespacing/font ascent & descent issue
        we found that FreeType commit b0962ac34e660 solves that problem.
        Let's update FreeType accordingly, but bump it to 2.4.11 due to the
        maintainer recommending several security updates after that said commit.

        Also, in order to avoid extra rebaselining, let's activate subpixel
        layout at the same time. With subpixel layout I propose to remove
        rounding of the linespacing value in order to not introduce rounding
        inaccuracies at the SimpleFontData level. Other platforms don't do that
        anymore, furthermore the linegap value is not rounded either.

        Reviewed by Martin Robinson.

        No new tests, affects a large number of tests that will require rebaselining.

        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore::SimpleFontData::platformInit): Remove rounding when setting linespacing.

2013-01-18  Vivek Galatage  <vivek.vg@samsung.com>

        Web Inspector: Search shortcut clears the current search box contents
        https://bugs.webkit.org/show_bug.cgi?id=107109

        Reviewed by Pavel Feldman.

        The search box contents should be changed only when the current focus element is
        different than the _searchInputElement.

        * inspector/front-end/SearchController.js:
        (WebInspector.SearchController.prototype.showSearchField):

2013-01-18  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Fix JSDocs and deduplicate code.
        https://bugs.webkit.org/show_bug.cgi?id=107116

        Reviewed by Pavel Feldman.

        Add / fix JSDocs to see possible type mismatches.
        Deduplicate code for styling network log items.

        * inspector/front-end/NetworkPanel.js: Fix JSDocs.
        (WebInspector.NetworkDataGridNode.prototype._updateElementStyleClasses):
        Extract common code.
        * inspector/front-end/NetworkRequest.js: Fix JSDocs.

2013-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140005.
        http://trac.webkit.org/changeset/140005
        https://bugs.webkit.org/show_bug.cgi?id=107235

        broke downstream Chromium interactive_ui_tests (Requested by
        dominicc on #webkit).

        * WebCore.exp.in:
        * dom/Document.cpp:
        * dom/Document.h:
        (WebCore::Document::documentElement):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::responseReceived):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::load):
        (WebCore::MainResourceLoader::identifier):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::didAddClient):
        (WebCore::CachedRawResource::willSendRequest):
        (WebCore::CachedRawResource::canReuse):
        * loader/cache/CachedRawResource.h:
        (CachedRawResource):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addClientToSet):
        * loader/cache/CachedResource.h:
        (CachedResource):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
        * testing/Internals.cpp:
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-01-18  Yoshifumi Inoue  <yosin@chromium.org>

        REGRESSION(r137726): Spring Loaded Pan Scrolling doesn't stop
        https://bugs.webkit.org/show_bug.cgi?id=107205

        Reviewed by Hajime Morita.

        The bug is caused by forgetting to set true m_panScrollButtonPressed
        in AutoscrollController::startPanScroll().

        This patch changes state management during pan scroll by replacing
        m_panScrollButtonPressed and m_springLoadedPanScrollInProgress by
        m_autoscrollType with introducing new AutoscrollController state
        AutoscrollForPanCanStop.

        Tests: platform/chromium-win/fast/events/panScroll-click.html
               platform/chromium-win/fast/events/panScroll-drag.html

        * page/AutoscrollController.cpp:
        (WebCore::AutoscrollController::AutoscrollController): Changed to remove initialization of m_panScrollButtonPressed and m_springLoadedPanScrollInProgress.
        (WebCore::AutoscrollController::stopAutoscrollTimer): Changed to remove resetting m_panScrollButtonPressed and m_springLoadedPanScrollInProgress.
        (WebCore::AutoscrollController::handleMouseReleaseEvent): Changed to handle AutoscrollForPan and AutoscrollForPanCanStop.
        (WebCore::AutoscrollController::panScrollInProgress): Changed to check AutoscrollForPanCanStop too.
        (WebCore::AutoscrollController::startPanScrolling): Changed to remove setting of m_springLoadedPanScrollInProgress.
        (WebCore::AutoscrollController::autoscrollTimerFired): Changed to add case for AutoscrollForPanCanStop.
        (WebCore::AutoscrollController::updatePanScrollState): Chagned to use AutoscrollForPan and AutoscrollForPanCanStop.
        * page/AutoscrollController.h:
        (AutoscrollController): Changed to add AutoscrollForPanCanStop to AutoscrollType.

2013-01-17  Takashi Sakamoto  <tasak@google.com>

        Heap-use-after-free in WebCore::LiveNodeListBase::invalidateCache
        https://bugs.webkit.org/show_bug.cgi?id=106958

        Reviewed by Ryosuke Niwa.

        Need to update node lists that nodes in shadow dom trees have
        when document is changed.

        No new tests; it is difficult to reproduce crash by using
        DumpRenderTree. Manually tested by using attached repro.html.

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::adoptTreeScope):
        Added to adopt node lists when tree scope is changed.
        (WebCore::NodeListsNodeData::adoptDocument):
        Renamed the original adoptTreeScope to adoptDocument.
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        If document scope is not changed, modify to invoke adoptTreeScope.
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
        Modify to invoked adoptDocument.

2013-01-17  Sankeerth V S  <sankeerth.vs@samsung.com>

        Search for a selected word should trigger _performSearch to populate
        search results
        https://bugs.webkit.org/show_bug.cgi?id=106423

        Reviewed by Pavel Feldman.

        No new tests as this is a UI related change.

        * inspector/front-end/SearchController.js:
        (WebInspector.SearchController.prototype.showSearchField):

2013-01-17  Rafael Weinstein  <rafaelw@chromium.org>

        Ensure the parser adopts foster-parented children into the document of their parent.
        https://bugs.webkit.org/show_bug.cgi?id=107023

        Reviewed by Adam Barth.

        Tests: fast/parser/foster-parent-adopted.html
               fast/parser/foster-parent-adopted2.html

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::fosterParent):

2013-01-17  Martin Robinson  <mrobinson@igalia.com>

        2013-01-17  Martin Robinson  <mrobinson@igalia.com>

        IndexedDB: Conditionalize usage of env_idb.h to fix build for non-Chromium ports
        https://bugs.webkit.org/show_bug.cgi?id=107182

        No new tests. This is a build fix.

        * platform/leveldb/LevelDBDatabase.cpp: Use the default environment for non-Chromium
        ports instead of the Chromium-specific one provided by env_idb.h.

2013-01-17  Rik Cabanier  <cabanier@adobe.com>

        Update GraphicsContext to support winding rule in clip operator for Chromium
        https://bugs.webkit.org/show_bug.cgi?id=106872

        Reviewed by Dirk Schulze.

        Added support for winding to clip() and canvasClip() functions.

        No new tests, no change in behavior.

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::clip): Call clipPath() instead with winding rule.
        (WebCore::GraphicsContext::canvasClip): Honor the winding rule.

2013-01-17  Shinya Kawanaka  <shinyak@chromium.org>

        Revert r122824 for a while
        https://bugs.webkit.org/show_bug.cgi?id=97867

        Reviewed by Hajime Morita.

        In r122824, we have introduced ImageInnerElement for making an image element ShadowDOM-available.
        However, it turned out that making a replaced-element ShadowDOM-available has a lot of difficulty.
        So we would like to postpone it for a while.

        Since that patch makes an image element really complicated, we would like to revert it.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/html.css:
        * html/HTMLImageElement.cpp:
        (WebCore):
        (WebCore::HTMLImageElement::parseAttribute):
        (WebCore::HTMLImageElement::createRenderer):
        (WebCore::HTMLImageElement::attach):
        * html/HTMLImageElement.h:
        (WebCore):
        (HTMLImageElement):
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::HTMLImageLoader):
        (WebCore::HTMLImageLoader::dispatchLoadEvent):
        (WebCore::HTMLImageLoader::sourceURI):
        (WebCore::HTMLImageLoader::notifyFinished):
        * html/HTMLImageLoader.h:
        (HTMLImageLoader):
        * html/HTMLInputElement.h:
        * html/HTMLObjectElement.h:
        * html/HTMLPlugInElement.h:
        (WebCore):
        * html/HTMLPlugInImageElement.h:
        * html/HTMLTagNames.in:
        * html/HTMLVideoElement.h:
        * html/shadow/ImageInnerElement.cpp: Removed.
        * html/shadow/ImageInnerElement.h: Removed.
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::ImageLoader):
        (WebCore::ImageLoader::~ImageLoader):
        (WebCore::ImageLoader::updateFromElement):
        (WebCore::ImageLoader::notifyFinished):
        (WebCore::ImageLoader::renderImageResource):
        (WebCore::ImageLoader::updatedHasPendingEvent):
        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
        (WebCore::ImageLoader::dispatchPendingLoadEvent):
        (WebCore::ImageLoader::dispatchPendingErrorEvent):
        * loader/ImageLoader.h:
        (WebCore):
        (ImageLoader):
        (WebCore::ImageLoader::element):
        * loader/ImageLoaderClient.h: Removed.
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintIntoRect):
        (WebCore::RenderImage::imageMap):
        (WebCore::RenderImage::updateAltText):
        * rendering/RenderImage.h:
        (WebCore):
        (RenderImage):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shouldRespectImageOrientation):
        * svg/SVGImageElement.h:
        (SVGImageElement):
        * svg/SVGImageLoader.cpp:
        (WebCore::SVGImageLoader::SVGImageLoader):
        (WebCore::SVGImageLoader::dispatchLoadEvent):
        (WebCore::SVGImageLoader::sourceURI):
        * svg/SVGImageLoader.h:
        (SVGImageLoader):

2013-01-17  Joanmarie Diggs  <jdiggs@igalia.com>

        REGRESSION (r139444): Crashes in three accessibility tests on GTK
        https://bugs.webkit.org/show_bug.cgi?id=106922

        Reviewed by Chris Fleizach.

        r139444 exposed an infinite loop that was just waiting to happen.
        Currently, getting the role value of an ARIA table row involves
        getting the parent table via parentObjectUnignored() which in turn
        can lead to the role value of the table row being checked. Moving
        the roleValue() logic to determineAccessibilityRole() avoids this.

        This fix, however, introduced a regression when an accessible row
        was examined without having first examined the parent table for
        non-ARIA tables. Now that it is safe to call parentObjectUnignored(),
        the parentTable() method used for ARIA table rows can also be used
        by non-ARIA table rows.

        No new tests; instead unskipped the three crashing tests.

        * accessibility/AccessibilityTableRow.cpp:
        (WebCore::AccessibilityTableRow::determineAccessibilityRole):
        * accessibility/AccessibilityTableRow.h:
        (AccessibilityTableRow):

2013-01-17  Rik Cabanier  <cabanier@adobe.com>

        Update GraphicsContext to support winding rule in clip operator for QT
        https://bugs.webkit.org/show_bug.cgi?id=106873

        Reviewed by Dirk Schulze.

        Added support for winding to clip() and canvasClip() functions.

        No new tests, no change in behavior.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::clip): Use passed in winding rule.
        (WebCore::GraphicsContext::canvasClip): Rename variable.

2013-01-17  Rik Cabanier  <cabanier@adobe.com>

        Update GraphicsContext to support winding rule in clip operator for Cairo
        https://bugs.webkit.org/show_bug.cgi?id=107065

        Reviewed by Dirk Schulze.

        Added support for winding to clip() and canvasClip() functions.

        No new tests, no change in behavior.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::clip): Use passed in winding rule.
        (WebCore::GraphicsContext::canvasClip): Rename variable.

2013-01-17  Elliott Sprehn  <esprehn@chromium.org>

        Track subframe count to avoid traversing the tree when there's no subframes
        https://bugs.webkit.org/show_bug.cgi?id=101821

        Reviewed by Ojan Vafai.

        Make removeChild 9-14% faster by not walking the descendants looking for
        frames when there's known to be no frames.

        This is a more generalized version of the fix in Bug 101619 that only
        avoided this walk when the whole document had no frames. This patch extends
        it to skip traversing subtrees that have no frames by tracking the number of
        frames in subtrees and then only walking those subtrees that are known to
        contain frames in removeChild.

        Test: fast/frames/parser-append-subframe-count.html

        * dom/ContainerNode.cpp:
        (WebCore::willRemoveChildren):
        (WebCore::parserAppendChild):
        (WebCore::parserRemoveChild):
        (WebCore::parserInsertBefore):
            The parser may move nodes without doing frame disconnection so we
            must maintain the connected subframe count manually during these
            mutations.
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildFrameDisconnector::collectFrameOwners):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
        (ChildFrameDisconnector):
        (WebCore::ChildFrameDisconnector::collectFrameOwners):
          Renamed from collectDescendant() to better reflect what it really does.
        (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
          Renamed from disconnect() to better reflect what it really does.
        (WebCore::ChildFrameDisconnector::disconnect):
          New method that does the collection of frame owners on either the root
          or only it's descendants.
        * dom/Node.cpp:
        (WebCore::Node::connectedSubframeCount):
        (WebCore::Node::incrementConnectedSubframeCount):
        (WebCore::Node::decrementConnectedSubframeCount):
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::connectedSubframeCount):
        (WebCore::NodeRareData::incrementConnectedSubframeCount):
        (WebCore::NodeRareData::decrementConnectedSubframeCount):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::setContentFrame):
        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):

2013-01-17  Tim Horton  <timothy_horton@apple.com>

        [WK2] Minimum layout width auto-sizing should use FrameView::enableAutoSizeMode so that it can shrink the viewport
        https://bugs.webkit.org/show_bug.cgi?id=107200
        <rdar://problem/12849029>

        Reviewed by Simon Fraser.

        * WebCore.exp.in: Export FrameView::enableAutoSize(...).

2013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r139402.
        http://trac.webkit.org/changeset/139402
        https://bugs.webkit.org/show_bug.cgi?id=107212

        Perf regression on DOMDivWalk (Requested by falken_ on
        #webkit).

        * dom/Element.cpp:
        (WebCore::Element::removedFrom):
        (WebCore::Element::setIsInTopLayer):

2013-01-17  Adam Barth  <abarth@webkit.org>

        BackgroundHTMLParser should go 18% faster on html-parser-srcdoc benchmark
        https://bugs.webkit.org/show_bug.cgi?id=107201

        Reviewed by Tony Gentilcore.

        Prior to this patch, we would tokenize all the input before delivering
        any tokens to the main thread. Effectively, that prevented the
        background parser from running in parallel with the main thread.

        This patch causes us to send tokens to the main thread periodically.
        The constant in this patch is somewhat arbitrary. We'll need to tune it
        later with more realistic workloads.

        This patch improves the performance of the html-parser-srcdoc benchmark
        by 18%. (This patch is based on Eric's work in
        https://github.com/tonygentilcore/webkit/commit/072331194520c7770b5e34baefbbbba948834971.)

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):

2013-01-17  Matt Falkenhagen  <falken@chromium.org>

        Top layer fails for inline elements
        https://bugs.webkit.org/show_bug.cgi?id=106538

        Reviewed by Hajime Morita.

        This patch makes position 'static' and 'relative' compute to
        'absolute' for elements in the top layer, as mandated by the
        Fullscreen spec.[1] By doing so, we also fix a crash that occurred in
        RenderLayer::rebuildZOrderLists when an inline element wrapped in an
        anonymous block was added to the top layer.

        [1]: http://fullscreen.spec.whatwg.org/#new-stacking-layer

        Tests: fast/dom/HTMLDialogElement/element-removed-from-top-layer-has-original-position.html
               fast/dom/HTMLDialogElement/top-layer-position-relative.html
               fast/dom/HTMLDialogElement/top-layer-position-static.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle): Set position 'absolute'
        for an element in the top layer. Typically, absolutely positioned
        elements also automatically get display 'block', but it seems we must do
        that manually here. We require display 'block' to ensure the renderer is not
        considered inline and consequently wrapped in an anonymous block.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::rebuildZOrderLists): Check node() so we don't
        crash on, e.g., an anonymous block. We don't expect top layer
        renderers to have anonymous blocks anymore, but we nevertheless
        shouldn't crash if some other renderer is parented by RenderView.

2013-01-17  Simon Fraser  <simon.fraser@apple.com>

        Fix crash accessing RenderView's layer's backing when not composited
        https://bugs.webkit.org/show_bug.cgi?id=107203

        Reviewed by Benjamin Poulain.

        The RenderView isn't always layer-backed in WebKit1, so null-check the backing.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):

2013-01-16  Ryosuke Niwa  <rniwa@webkit.org>

        Remove NodeListsNodeData when it's no longer needed
        https://bugs.webkit.org/show_bug.cgi?id=107074

        Reviewed by Darin Adler.

        Remove NodeListsNodeData when the last node list is removed from it.

        If we detect that we have only one node list left in the data structure,
        we'll simply destroy the entire "this" object to free up the memory space.

        This reduced the memory usage of the micro benchmark by roughly 3%.

        Performance Tests: DOM/TraverseChildNodes.html

        * dom/Node.cpp:
        (WebCore::Node::clearNodeLists): Added.
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::removeChildNodeList):
        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
        (WebCore::NodeListsNodeData::removeCacheWithName):
        (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
        (WebCore::NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList): Added.
        Removes "this" NodeListsNodeData if there is only one node list left.

2013-01-17  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::RenderBlock::checkFloatsInCleanLine
        https://bugs.webkit.org/show_bug.cgi?id=90802

        Reviewed by Julien Chaffraix.

        Test: fast/multicol/float-not-removed-crash.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::moveChildrenTo):
        1. When fullRemoveInsert is True, make sure to clear the
        floating objects from our list (similar to positioned objects).
        Our children are getting moved to another block and we won't
        get notified when they are going away.
        2. Remove the redundant hasPositionedObjects check since it
        is already done inside removePositionedObjects.

2013-01-17  Simon Fraser  <simon.fraser@apple.com>

        Make it possible for the root background to be painted into its own GraphicsLayer
        https://bugs.webkit.org/show_bug.cgi?id=107177

        Reviewed by Dave Hyatt.
        
        Make it possible to paint the root background into its own GraphicsLayer, and enable
        this when the root background has background-images that are all background-attachment: fixed.
        
        This is a step towards optimizing scrolling on pages with fixed root backgrounds.        

        Tests: platform/mac/tiled-drawing/fixed-background/fixed-body-background-body-layer.html
               platform/mac/tiled-drawing/fixed-background/fixed-body-background-opacity-html.html
               platform/mac/tiled-drawing/fixed-background/fixed-body-background-transformed-html.html
               platform/mac/tiled-drawing/fixed-background/fixed-body-background-zoomed.html
               platform/mac/tiled-drawing/fixed-background/fixed-body-background.html
               platform/mac/tiled-drawing/fixed-background/fixed-html-background.html
               platform/mac/tiled-drawing/fixed-background/fixed-non-propagated-body-background.html

        * rendering/PaintInfo.h:
        (WebCore::PaintInfo::skipRootBackground): Utility function to check the paintBehavior flag.
        (WebCore::PaintInfo::paintRootBackgroundOnly): Ditto.
        * rendering/PaintPhase.h: New paint behavior flags to indicate that we should skip painting
        the root background, and only paint the root background.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paint): When we're only painting the root background, avoid painting column
        rules, and bail early.
        (WebCore::RenderBlock::paintObject): Don't paint children if we're just painting the root background.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleWillChange): If this box can paint the root background, tell the compositor
        when the fixedness of those backgrounds changes.
        (WebCore::RenderBox::paintRootBoxFillLayers): If the paintBehavior flag is set to skip painting the root
        background, bail. This will be true for the non-background GraphicsLayers which are painting the root.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents): We can bail early if we're not a root-like renderer and the
        flag is set to paint the root background only. This avoids walking the whole layer tree when just painting
        into the root background GraphicsLayer.
        Migrate layer paint flags into PaintBehavior flags, and use them.
        * rendering/RenderLayer.h: Layer painting flags that replicate the paintBehavior flags.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking): Init the m_backgroundLayerPaintsFixedRootBackground bit.
        (WebCore::RenderLayerBacking::~RenderLayerBacking): Clear the background layer.
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): No need to handle the transparent background
        stuff here. We'll do it later in updateRootLayerConfiguration().
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Actually make a background layer now
        if the compositor says we should.
        Call updateRootLayerConfiguration() to adjust the background color and opaqueness of the background/primary layers.
        (WebCore::RenderLayerBacking::updateInternalHierarchy): Parent the m_backgroundLayer in the containment layer,
        not m_graphicsLayer (this is a bug fix).
        (WebCore::RenderLayerBacking::updateDrawsContent):
        (WebCore::RenderLayerBacking::setBackgroundLayerPaintsFixedRootBackground):
        (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer):
        (WebCore::RenderLayerBacking::updateBackgroundColor): This no longer needs to update the tile cache
        background color; updateRootLayerConfiguration() does this now.
        (WebCore::RenderLayerBacking::updateRootLayerConfiguration): Update the opaqueness and background color
        of the background and/or main graphics layers.
        (WebCore::RenderLayerBacking::setContentsNeedDisplay): Invalidate the background layer if we have one.
        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): Invalidate the background layer if we have one.
        This will be optimized to only repaint the background if it was the background that changed.
        (WebCore::RenderLayerBacking::paintIntoLayer): Take a GraphicsLayer, not a RenderLayer argument.
        Adjust the paintFlags if we're being asked to paint the background layer, or if we have one, but are painting the foreground.
        (WebCore::RenderLayerBacking::paintContents):
        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
        (WebCore::RenderLayerBacking::reportMemoryUsage):
        * rendering/RenderLayerBacking.h:
        (WebCore::RenderLayerBacking::backgroundLayer):
        (WebCore::RenderLayerBacking::backgroundLayerPaintsFixedRootBackground):
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged): If we're told that the fixed-ness of
        the root background changed and we're using a TileCache, we need to re-evaluate compositing (this could be
        optimized to only update the root layer).
        (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer): For the root (RenderView's) layer,
        check whether the renderer that will paint the root (taking background propagation into account) has
        background images that are all fixed.
        (WebCore::RenderLayerCompositor::fixedRootBackgroundLayer): Accessor for the GraphicsLayer that paints
        the root background (will be used later).
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::hasEntirelyFixedBackground): Returns true there are background images
        and all are fixed.
        * rendering/RenderObject.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::paintBoxDecorations): This function paints a solid color if we know that the root
        isn't going to fill the viewport; we want to avoid this painting if we're not painting the root background
        in this pass.
        * rendering/style/RenderStyle.cpp:
        (WebCore::allLayersAreFixed):
        (WebCore::RenderStyle::hasEntirelyFixedBackground): New helper function.
        * rendering/style/RenderStyle.h:

2013-01-17  Rafael Weinstein  <rafaelw@chromium.org>

        [Template] Avoid reading beyond the end of the buffer in preload scanner when check for </template>
        https://bugs.webkit.org/show_bug.cgi?id=107143

        Reviewed by Adam Barth.

        This patch corrects to use AtomicString constructor which takes an explicit size. Additionally, the logic
        for exiting early is slightly improved.

        No new tests.

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::PreloadTask):
        (WebCore::HTMLPreloadScanner::processToken):

2013-01-17  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Match initializing members in GraphicsLayerTransform to initializing members in GraphicsLayer.
        https://bugs.webkit.org/show_bug.cgi?id=107090

        Reviewed by Noam Rosenthal.

        GraphicsLayer initializes m_anchorPoint to FloatPoint3D(0.5, 0.5, 0) and
        m_preserves3D to false, while GraphicsLayerTransform initializes m_anchorPoint
        to FloatPoint3D(0, 0, 0) and m_flattening (= !m_preserves3D) to false. It is a
        potential bug. This patch corrects initialization of GraphicsLayerTransform.

        Covered by existing compositing pixel tests.

        * platform/graphics/GraphicsLayerTransform.cpp:
        (WebCore::GraphicsLayerTransform::GraphicsLayerTransform):

2013-01-17  Filip Pizlo  <fpizlo@apple.com>

        ScriptDebugServer::didExecuteProgram should not try to pop stack if there is no stack to pop
        https://bugs.webkit.org/show_bug.cgi?id=107186

        Reviewed by Geoffrey Garen.

        No new tests, because I'm not sure how to test this. I can repro it on a gnarly web site,
        but I don't know how to create a reduced case that triggers it.

        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::didExecuteProgram):

2013-01-17  Michael Pruett  <michael@68k.org>

        [GTK] IndexedDB: Add LevelDB headers to include path if IndexedDB is enabled
        https://bugs.webkit.org/show_bug.cgi?id=107181

        Reviewed by Martin Robinson.

        No new tests as this is just a build change.

        * GNUmakefile.am:

2013-01-17  Eric Seidel  <eric@webkit.org>

        The threaded html parser hangs when parsing empty documents (and about:blank)
        https://bugs.webkit.org/show_bug.cgi?id=107160

        Reviewed by Tony Gentilcore.

        This is covered by many existing tests including the html5lib suite.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::finish):

2013-01-17  Alexis Hetu  <sugoi@chromium.org>

        imageSmoothingEnabled frequent, unpredictable crashes
        https://bugs.webkit.org/show_bug.cgi?id=107161

        Reviewed by Stephen White.

        Added a NULL pointer check to fix a crash.

        Test: fast/canvas/canvas-imageSmoothingEnabled-zero-size.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setWebkitImageSmoothingEnabled):

2013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140049.
        http://trac.webkit.org/changeset/140049
        https://bugs.webkit.org/show_bug.cgi?id=107187

        Breaks lots of stuff (Requested by schenney on #webkit).

        * svg/SVGViewSpec.cpp:
        (WebCore::SVGViewSpec::setPreserveAspectRatioString):
        (WebCore):
        (WebCore::SVGViewSpec::viewTarget):
        (WebCore::SVGViewSpec::transform):
        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
        * svg/SVGViewSpec.h:
        (SVGViewSpec):
        (WebCore::SVGViewSpec::viewBoxAnimated):
        (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
        * svg/SVGViewSpec.idl:

2013-01-17  Eric Seidel  <eric@webkit.org>

        Threaded parser hangs when encountering an unmatched </script> tag
        https://bugs.webkit.org/show_bug.cgi?id=107170

        Reviewed by Adam Barth.

        The bug was that the BackgroundHTMLParser naively yields to the
        main thread every time it encounters a </script>
        (as we may have to run script on the main thread).  However, not every
        </script> results in script execution, so the main thread needs to know
        how to tell the BackgroundHTMLParser to continue in cases where no
        script execution is needed.

        This whole infrastructure will be replaced when we let the BackgroundHTMLParser
        continue speculatively tokenizing after yielding.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::TokenDelivery::TokenDelivery):
        (TokenDelivery):
        (WebCore::TokenDelivery::execute):
        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):

2013-01-17  Eric Seidel  <eric@webkit.org>

        Stop the background parser when canceling parsing to avoid crashing on many layout tests
        https://bugs.webkit.org/show_bug.cgi?id=107159

        Reviewed by Adam Barth.

        Covered by many existing tests.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::stopParsing):

2013-01-17  Stephen Chenney  <schenney@chromium.org>

        SVGViewSpec fails when corresponding element has been removed
        https://bugs.webkit.org/show_bug.cgi?id=106957

        Reviewed by Dirk Schulze.

        When JS holds an SVGViewSpec object while deleting the object that
        defines the spec (an SVGSVGElement, or one of a few others) the
        pointer to the target is cleared in the SVGViewSpec but the methods
        that serve JS queries do not check and try to access the now null
        target. This atch fixes the prooblem, throwing JS exceptions where
        possible and returning null where necessary.

        Test: svg/dom/SVGViewSpec-invalid-ref-crash.html

        * svg/SVGViewSpec.cpp:
        (WebCore):
        (WebCore::SVGViewSpec::viewTarget): Check for null target and throw an exception.
        (WebCore::SVGViewSpec::transform): Check for null target and return
        null. It is not possible to throw an exception here because it leads
        to an invalid cast in the code generated from IDLs.
        (WebCore::SVGViewSpec::viewBoxAnimated): Check for null target and throw an exception.
        (WebCore::SVGViewSpec::preserveAspectRatioAnimated): Check for null target and throw an exception.
        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): ASSERT non-null target
        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): ASSERT non-null target
        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): ASSERT non-null target
        * svg/SVGViewSpec.h:
        (SVGViewSpec): Add Exception arguments to getter methods.
        * svg/SVGViewSpec.idl: Mark attributes as throwing exceptions.

2013-01-17  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Remove unnecessary call to IDBDatabaseBackendInterface::metadata()
        https://bugs.webkit.org/show_bug.cgi?id=107142

        Reviewed by Kentaro Hara.

        This call isn't necessary, and probably slipped through an earlier review
        because of the mention of 'm_metadata'.

        No new tests, as this code has no side effects and all tests sill pass.

        * Modules/indexeddb/IDBIndex.cpp:
        (WebCore::IDBIndex::count):

2013-01-17  Ojan Vafai  <ojan@chromium.org>

        Table layout does not need to explicitly call computePreferredLogicalWidths
        https://bugs.webkit.org/show_bug.cgi?id=106931

        Reviewed by Julien Chaffraix.

        Code shouldn't need to explicitly call computePreferredLogicalWidths.
        It should only get called as a by-product of calling minPreferredLogicalWidth
        or maxPreferredLogicalWidth.

        Instead, make it clear that the calling code is just trying to clear
        preferred width dirty bits.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        The computePreferredLogicalWidths call on the table cell is redundant
        with the minPreferredLogicalWidth call on the next line.

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray):
        We only need to clear the dirty bit here. Table cells don't use
        their preferred widths in fixed table layout calculations.

        * rendering/RenderTableCell.h:
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::clearPreferredLogicalWidthsDirtyBits):
        * rendering/RenderTableCol.h:

2013-01-17  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Updating -webkit-grid-rows or -webkit-grid-columns doesn't work as expected
        https://bugs.webkit.org/show_bug.cgi?id=107062

        Reviewed by Tony Chang.

        Tests: fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update.html
               fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update.html

        This change makes -webkit-grid-rows and -webkit-grid-columns dynamic change properly
        relayout their children, thus making them work!

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::layoutGridItems):
        Fixed the logic to force a grid item relayout if the grid area size changes. This is the
        safest approach as margins or paddings can also be a percent of the grid area's size.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        Fixed a dumb mistake.

2013-01-17  Timothy Hatcher  <timothy@apple.com>

        Make logging console messages to STDOUT work in WebKit2 via a new setting.

        https://bugs.webkit.org/show_bug.cgi?id=107157

        Reviewed by Joseph Pecoraro.

        * page/Console.cpp:
        (WebCore::Console::addMessage): Check logsPageMessagesToSystemConsoleEnabled(). 
        (WebCore::internalAddMessage): Ditto. Refactored to return early and drop printExceptions argument.
        (WebCore::Console::error): Removed call to shouldPrintExceptions().
        (WebCore::Console::log): Ditto.
        (WebCore::Console::warn): Ditto.
        (WebCore::Console::dir): Ditto.
        (WebCore::Console::dirxml): Ditto.
        (WebCore::Console::clear): Ditto.
        (WebCore::Console::trace): Ditto.
        (WebCore::Console::assertCondition): Ditto.
        * page/Settings.in: Added logsPageMessagesToSystemConsoleEnabled.

2013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r140023.
        http://trac.webkit.org/changeset/140023
        https://bugs.webkit.org/show_bug.cgi?id=107176

        Broke some tests (Requested by anttik on #webkit).

        * page/FrameView.cpp:
        (WebCore::FrameView::updateScrollCorner):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::createReplacementRunIn):
        (WebCore::RenderBlock::updateFirstLetterStyle):
        (WebCore::RenderBlock::createFirstLetterRenderer):
        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
        * rendering/RenderDeprecatedFlexibleBox.h:
        (RenderDeprecatedFlexibleBox):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
        * rendering/RenderDetailsMarker.h:
        (RenderDetailsMarker):
        * rendering/RenderDialog.h:
        (WebCore::RenderDialog::RenderDialog):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::RenderFieldset):
        * rendering/RenderFieldset.h:
        (RenderFieldset):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        * rendering/RenderFlowThread.h:
        * rendering/RenderFullScreen.cpp:
        (RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
        (RenderFullScreen::RenderFullScreen):
        (RenderFullScreen::wrapRenderer):
        * rendering/RenderFullScreen.h:
        (RenderFullScreen):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::RenderGrid):
        * rendering/RenderGrid.h:
        (RenderGrid):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        * rendering/RenderImage.h:
        (RenderImage):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::RenderInline):
        (WebCore::RenderInline::addChildIgnoringContinuation):
        * rendering/RenderInline.h:
        (RenderInline):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollCornerStyle):
        (WebCore::RenderLayer::updateResizerStyle):
        (WebCore::RenderLayer::createReflection):
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::RenderListItem):
        (WebCore::RenderListItem::styleDidChange):
        * rendering/RenderListItem.h:
        (RenderListItem):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::RenderListMarker):
        * rendering/RenderListMarker.h:
        (RenderListMarker):
        * rendering/RenderMediaControlElements.cpp:
        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
        * rendering/RenderMediaControlElements.h:
        (RenderMediaVolumeSliderContainer):
        (RenderMediaControlTimeDisplay):
        (RenderTextTrackContainerElement):
        * rendering/RenderMultiColumnBlock.cpp:
        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
        * rendering/RenderMultiColumnBlock.h:
        (RenderMultiColumnBlock):
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
        * rendering/RenderMultiColumnFlowThread.h:
        (RenderMultiColumnFlowThread):
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        * rendering/RenderMultiColumnSet.h:
        (RenderMultiColumnSet):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
        * rendering/RenderNamedFlowThread.h:
        (RenderNamedFlowThread):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::RenderObject):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::setIsAnonymous):
        (RenderObject):
        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        * rendering/RenderRegion.h:
        (RenderRegion):
        * rendering/RenderRegionSet.cpp:
        (WebCore::RenderRegionSet::RenderRegionSet):
        * rendering/RenderRegionSet.h:
        (RenderRegionSet):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::RenderReplaced):
        * rendering/RenderReplaced.h:
        (RenderReplaced):
        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::RenderReplica):
        * rendering/RenderReplica.h:
        (RenderReplica):
        * rendering/RenderRuby.cpp:
        (WebCore::createAnonymousRubyInlineBlock):
        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
        (WebCore):
        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
        * rendering/RenderRuby.h:
        (RenderRubyAsInline):
        (RenderRubyAsBlock):
        * rendering/RenderRubyBase.cpp:
        (WebCore::RenderRubyBase::RenderRubyBase):
        * rendering/RenderRubyBase.h:
        (RenderRubyBase):
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::RenderRubyRun):
        (WebCore::RenderRubyRun::createRubyBase):
        (WebCore::RenderRubyRun::staticCreateRubyRun):
        * rendering/RenderRubyRun.h:
        (RenderRubyRun):
        * rendering/RenderRubyText.cpp:
        (WebCore::RenderRubyText::RenderRubyText):
        * rendering/RenderRubyText.h:
        (RenderRubyText):
        * rendering/RenderScrollbar.cpp:
        (WebCore::RenderScrollbar::updateScrollbarPart):
        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
        * rendering/RenderScrollbarPart.h:
        (RenderScrollbarPart):
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::RenderSearchField):
        * rendering/RenderSearchField.h:
        (RenderSearchField):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::createAnonymousWithParentRenderer):
        * rendering/RenderTable.h:
        (RenderTable):
        * rendering/RenderTableCaption.cpp:
        (WebCore::RenderTableCaption::RenderTableCaption):
        * rendering/RenderTableCaption.h:
        (RenderTableCaption):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::RenderTableCell):
        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
        * rendering/RenderTableCell.h:
        (RenderTableCell):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::RenderTableCol):
        * rendering/RenderTableCol.h:
        (RenderTableCol):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::RenderTableRow):
        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
        * rendering/RenderTableRow.h:
        (RenderTableRow):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::RenderTableSection):
        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
        * rendering/RenderTableSection.h:
        (RenderTableSection):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::RenderTextControl):
        * rendering/RenderTextControl.h:
        (RenderTextControl):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
        * rendering/RenderTextControlMultiLine.h:
        (RenderTextControlMultiLine):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):
        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
        * rendering/RenderTextTrackCue.cpp:
        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::RenderWidget):
        * rendering/RenderWidget.h:
        (RenderWidget):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        (WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        (RenderMathMLBlock):
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::createMathMLOperator):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::createGlyph):
        * rendering/mathml/RenderMathMLOperator.h:
        (RenderMathMLOperator):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::RenderMathMLRow):
        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
        * rendering/mathml/RenderMathMLRow.h:
        (RenderMathMLRow):
        * rendering/style/ContentData.cpp:
        (WebCore::ImageContentData::createRenderer):
        * rendering/svg/RenderSVGBlock.cpp:
        (WebCore::RenderSVGBlock::RenderSVGBlock):
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::RenderSVGInline):
        * rendering/svg/RenderSVGInline.h:
        (RenderSVGInline):
        * rendering/svg/RenderSVGTSpan.cpp:
        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
        * rendering/svg/RenderSVGTSpan.h:
        (RenderSVGTSpan):
        * rendering/svg/RenderSVGTextPath.cpp:
        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
        * rendering/svg/RenderSVGTextPath.h:
        (RenderSVGTextPath):

2013-01-17  Alexey Proskuryakov  <ap@apple.com>

        Fix a logic error in AuthenticationChallengeMac
        https://bugs.webkit.org/show_bug.cgi?id=107164

        Reviewed by Brady Eidson.

        No new tests, as this is not currently observable.

        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::createCF): Added a FIXME about making this more like Mac counterpart.

        * platform/network/cf/AuthenticationChallenge.h:
        (AuthenticationChallenge): Corrected an slightly misleading explanation.

        * platform/network/mac/AuthenticationMac.mm:
        (WebCore::AuthenticationChallenge::setAuthenticationClient): Don't create a dummy
        m_nsChallenge object in place of a nil one.

2013-01-17  Tony Gentilcore  <tonyg@chromium.org>

        Remove unused finishWasCalled() method
        https://bugs.webkit.org/show_bug.cgi?id=107148

        Reviewed by Eric Seidel.

        Based on patch by Eric Seidel.

        No new tests because no new functionality.

        * dom/DocumentParser.h:
        (DocumentParser):
        * dom/RawDataDocumentParser.h:
        (WebCore::RawDataDocumentParser::append):
        * html/parser/HTMLDocumentParser.cpp:
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):
        * html/parser/HTMLViewSourceParser.cpp:
        * html/parser/HTMLViewSourceParser.h:
        (HTMLViewSourceParser):
        * xml/parser/NewXMLDocumentParser.cpp:
        (WebCore::NewXMLDocumentParser::NewXMLDocumentParser):
        (WebCore::NewXMLDocumentParser::finish):
        * xml/parser/NewXMLDocumentParser.h:
        (NewXMLDocumentParser):
        * xml/parser/XMLDocumentParser.cpp:
        * xml/parser/XMLDocumentParser.h:
        (XMLDocumentParser):

2013-01-17  Ojan Vafai  <ojan@chromium.org>

        MathML padding overrides only need to be on RenderMathMLRoot
        https://bugs.webkit.org/show_bug.cgi?id=107151

        Reviewed by Tony Chang.

        RenderMathMLRoot is the only class that uses these.
        No need for them to be on the generic MathML superclass.

        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::RenderMathMLRoot):
        (WebCore::RenderMathMLRoot::paddingTop):
        (WebCore::RenderMathMLRoot::paddingBottom):
        (WebCore::RenderMathMLRoot::paddingLeft):
        (WebCore::RenderMathMLRoot::paddingRight):
        (WebCore::RenderMathMLRoot::paddingBefore):
        (WebCore::RenderMathMLRoot::paddingAfter):
        (WebCore::RenderMathMLRoot::paddingStart):
        (WebCore::RenderMathMLRoot::paddingEnd):
        * rendering/mathml/RenderMathMLRoot.h:

2013-01-17  Poul Sysolyatin  <psytonx@gmail.com>

        32-bit build for Qt5 on Mac OS fails.
        https://bugs.webkit.org/show_bug.cgi?id=107094

        We need to define NS_BUILD_32_LIKE_64 for 32-bit build for Mac OS.
        Fixed 32-bit build detection for support Qt5.

        Reviewed by Benjamin Poulain.
 
        * Target.pri:

2013-01-17  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Prevent crash dereferencing null if script context has stopped
        https://bugs.webkit.org/show_bug.cgi?id=107146

        Reviewed by Tony Chang.

        We have crash reports from Chromium users (but no local repro) for a crash coming
        from IDBRequest::dispatchEvent() that looks like it's calling toV8Context() after
        the script execution context has stopped. The dispatch shouldn't be occurring
        and we ASSERT as such, but something weird is going on during Worker tear down.
        If this patch prevents the crash it would indicate that stop() is called before
        dispatchEvent() which shouldn't be happening, and would let us continue chasing
        the issue.

        No new tests - this shouldn't be happening.

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::dispatchEvent):

2013-01-17  Robert Hogan  <robert@webkit.org>

        Nested fixed position element not staying with parent
        https://bugs.webkit.org/show_bug.cgi?id=65477

        Reviewed by David Hyatt.

        Tests: fast/inline/fixed-pos-moves-with-abspos-inline-parent.html
               fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor.html
               fast/inline/fixed-pos-moves-with-abspos-parent.html
               fast/inline/fixed-pos-with-transform-container-moves-with-abspos-parent.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::simplifiedLayout):
        If an absolute position element inside a relative positioned container moves, and the absolute element has a fixed position
        child, neither the container nor the fixed element learn of the movement since posChildNeedsLayout() is only marked as far as the 
        relative positioned container. So if our positioned objects list can contain fixed position elements perform the
        checks in markFixedPositionObjectForLayoutIfNeeded for each fixed pos object in the container's positioned object list. 
        (WebCore::RenderBlock::markFixedPositionObjectForLayoutIfNeeded):
        For a fixed position element in the positioned objects list that has a static x or y position check for an absolute positioned ancestor
        and if we find one, see if the static x or y position of the fixed pos element has changed. If it has, mark it for layout.
        (WebCore):
        (WebCore::RenderBlock::layoutPositionedObjects):
        A fixed position element with an absolute position ancestor has no way of learning if the latter has changed position. So perform the
        checks in markFixedPositionObjectForLayoutIfNeeded for each fixed pos object in the container's positioned object list. 
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containingBlock): Use new helper function canContainFixedPositionObjects().
        * rendering/RenderObject.h:
        (WebCore::RenderObject::canContainFixedPositionObjects):
        (RenderObject):

2013-01-17  Antti Koivisto  <antti@apple.com>

        Make renderer constructors take Element where possible
        https://bugs.webkit.org/show_bug.cgi?id=107138

        Reviewed by David Hyatt.
        
        Tighter typing prevents bugs and enables optimizations.

        The patch changes how anonymous rendererer are constructed. Previously Document* as the node parameter
        indicated that the renderer was anonymous. This forced the code to operate on ContainerNodes (Document
        is not an Element). Now anonymous renderers are constructed by passing null and the document is set by
        separate setDocumentForAnonymous() call. The patch uses RenderFoo::createAnonymous() pattern consistently.

        Most constructors are switched to take Element. RenderBlock still takes ContainerNode due to a few subclasses
        (RenderView and RenderFlowThread) that pass in a Document.

        * page/FrameView.cpp:
        (WebCore::FrameView::updateScrollCorner):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::createAnonymous):
        (WebCore):
        (WebCore::RenderBlock::createReplacementRunIn):
        (WebCore::RenderBlock::updateFirstLetterStyle):
        (WebCore::RenderBlock::createFirstLetterRenderer):
        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
        (WebCore::RenderDeprecatedFlexibleBox::createAnonymous):
        (WebCore):
        * rendering/RenderDeprecatedFlexibleBox.h:
        (RenderDeprecatedFlexibleBox):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
        * rendering/RenderDetailsMarker.h:
        (RenderDetailsMarker):
        * rendering/RenderDialog.h:
        (WebCore::RenderDialog::RenderDialog):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::RenderFieldset):
        * rendering/RenderFieldset.h:
        (RenderFieldset):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):
        * rendering/RenderFlowThread.cpp:
        (WebCore):
        (WebCore::RenderFlowThread::RenderFlowThread):
        * rendering/RenderFlowThread.h:
        * rendering/RenderFullScreen.cpp:
        (RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
        (RenderFullScreen::RenderFullScreen):
        (RenderFullScreen::createAnonymous):
        (RenderFullScreen::wrapRenderer):
        * rendering/RenderFullScreen.h:
        (RenderFullScreen):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::RenderGrid):
        * rendering/RenderGrid.h:
        (RenderGrid):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        (WebCore::RenderImage::createAnonymous):
        (WebCore):
        * rendering/RenderImage.h:
        (RenderImage):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::RenderInline):
        (WebCore::RenderInline::createAnonymous):
        (WebCore):
        (WebCore::RenderInline::addChildIgnoringContinuation):
        * rendering/RenderInline.h:
        (RenderInline):
        (WebCore::RenderInline::node):
        
            Add version with covariant Element return type.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollCornerStyle):
        (WebCore::RenderLayer::updateResizerStyle):
        (WebCore::RenderLayer::createReflection):
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::RenderListItem):
        (WebCore::RenderListItem::styleDidChange):
        * rendering/RenderListItem.h:
        (RenderListItem):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::RenderListMarker):
        (WebCore::RenderListMarker::createAnonymous):
        (WebCore):
        * rendering/RenderListMarker.h:
        (RenderListMarker):
        * rendering/RenderMediaControlElements.cpp:
        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
        * rendering/RenderMediaControlElements.h:
        (RenderMediaVolumeSliderContainer):
        (RenderMediaControlTimeDisplay):
        (RenderTextTrackContainerElement):
        * rendering/RenderMultiColumnBlock.cpp:
        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
        * rendering/RenderMultiColumnBlock.h:
        (RenderMultiColumnBlock):
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
        * rendering/RenderMultiColumnFlowThread.h:
        (RenderMultiColumnFlowThread):
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        (WebCore::RenderMultiColumnSet::createAnonymous):
        (WebCore):
        * rendering/RenderMultiColumnSet.h:
        (RenderMultiColumnSet):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
        * rendering/RenderNamedFlowThread.h:
        (RenderNamedFlowThread):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::RenderObject):
        * rendering/RenderObject.h:
        
             Passed in null node indicates that the renderer is anonymous. Remove now unnecessary setIsAnonymous() function.

        (WebCore::RenderObject::isAnonymous):
        (WebCore::RenderObject::setDocumentForAnonymous):
        (RenderObject):
        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        * rendering/RenderRegion.h:
        (RenderRegion):
        * rendering/RenderRegionSet.cpp:
        (WebCore::RenderRegionSet::RenderRegionSet):
        * rendering/RenderRegionSet.h:
        (RenderRegionSet):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::RenderReplaced):
        * rendering/RenderReplaced.h:
        (RenderReplaced):
        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::RenderReplica):
        (WebCore::RenderReplica::createAnonymous):
        (WebCore):
        * rendering/RenderReplica.h:
        (RenderReplica):
        * rendering/RenderRuby.cpp:
        (WebCore::createAnonymousRubyInlineBlock):
        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
        (WebCore):
        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
        * rendering/RenderRuby.h:
        (RenderRubyAsInline):
        (RenderRubyAsBlock):
        * rendering/RenderRubyBase.cpp:
        (WebCore::RenderRubyBase::RenderRubyBase):
        (WebCore::RenderRubyBase::createAnonymous):
        (WebCore):
        * rendering/RenderRubyBase.h:
        (RenderRubyBase):
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::RenderRubyRun):
        (WebCore::RenderRubyRun::createRubyBase):
        (WebCore::RenderRubyRun::staticCreateRubyRun):
        * rendering/RenderRubyRun.h:
        (RenderRubyRun):
        * rendering/RenderRubyText.cpp:
        (WebCore::RenderRubyText::RenderRubyText):
        * rendering/RenderRubyText.h:
        (RenderRubyText):
        * rendering/RenderScrollbar.cpp:
        (WebCore::RenderScrollbar::updateScrollbarPart):
        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
        (WebCore::RenderScrollbarPart::createAnonymous):
        (WebCore):
        * rendering/RenderScrollbarPart.h:
        (RenderScrollbarPart):
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::RenderSearchField):
        * rendering/RenderSearchField.h:
        (RenderSearchField):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::createAnonymousWithParentRenderer):
        * rendering/RenderTable.h:
        (RenderTable):
        * rendering/RenderTableCaption.cpp:
        (WebCore::RenderTableCaption::RenderTableCaption):
        * rendering/RenderTableCaption.h:
        (RenderTableCaption):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::RenderTableCell):
        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
        * rendering/RenderTableCell.h:
        (RenderTableCell):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::RenderTableCol):
        * rendering/RenderTableCol.h:
        (RenderTableCol):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::RenderTableRow):
        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
        * rendering/RenderTableRow.h:
        (RenderTableRow):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::RenderTableSection):
        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
        * rendering/RenderTableSection.h:
        (RenderTableSection):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::RenderTextControl):
        * rendering/RenderTextControl.h:
        (RenderTextControl):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
        * rendering/RenderTextControlMultiLine.h:
        (RenderTextControlMultiLine):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):
        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
        * rendering/RenderTextTrackCue.cpp:
        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::RenderWidget):
        * rendering/RenderWidget.h:
        (RenderWidget):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        (WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        (RenderMathMLBlock):
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::createMathMLOperator):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::createGlyph):
        * rendering/mathml/RenderMathMLOperator.h:
        (RenderMathMLOperator):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::RenderMathMLRow):
        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
        * rendering/mathml/RenderMathMLRow.h:
        (RenderMathMLRow):
        * rendering/style/ContentData.cpp:
        (WebCore::ImageContentData::createRenderer):
        * rendering/svg/RenderSVGBlock.cpp:
        (WebCore::RenderSVGBlock::RenderSVGBlock):
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::RenderSVGInline):
        * rendering/svg/RenderSVGInline.h:
        (RenderSVGInline):
        * rendering/svg/RenderSVGTSpan.cpp:
        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
        * rendering/svg/RenderSVGTSpan.h:
        (RenderSVGTSpan):
        * rendering/svg/RenderSVGTextPath.cpp:
        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
        * rendering/svg/RenderSVGTextPath.h:
        (RenderSVGTextPath):

2013-01-17  Leo Yang  <leoyang@rim.com>

        [BlackBerry] Update Authentication Type and Scheme implementation
        https://bugs.webkit.org/show_bug.cgi?id=107045
        PR #281292

        Reviewed by Yong Li.

        Reviewed internally by Joe Mason. A typo is also fixed by Joe Mason.

        The BlackBerry platform layer has defined both authentication type and authentication scheme.
        This patch is adapting the porting layer to the platform layer change.

        No functionalities changed no new tests.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyAuthReceived):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::NetworkManager::startJob):

2013-01-17  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Build with LevelDB when IndexedDB is enabled
        https://bugs.webkit.org/show_bug.cgi?id=103220

        Reviewed by Gustavo Noronha Silva.

        No new tests. This is just a build change. IndexedDatabase support
        is already covered by the suite of storage layout tests.

        * GNUmakefile.am: Add the leveldb convenience library.
        * GNUmakefile.list.am: Add the list of sources.

2013-01-17  Tony Gentilcore  <tonyg@chromium.org>

        Wire BackgroundHTMLParser to HTMLDocumentParser
        https://bugs.webkit.org/show_bug.cgi?id=107140

        Reviewed by Adam Barth.

        With this patch, we now pass the majority of html5lib and fast/parser tests with threaded HTML parsing enabled.

        No new tests because covered by existing fast/parser tests.

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::TokenDelivery::execute):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::~HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::processingData):
        (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
        (WebCore::HTMLDocumentParser::canTakeNextToken):
        (WebCore::HTMLDocumentParser::feedTokens):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore):
        (WebCore::HTMLDocumentParser::startBackgroundParser):
        (WebCore::HTMLDocumentParser::stopBackgroundParser):
        (WebCore::HTMLDocumentParser::append):
        (WebCore::HTMLDocumentParser::end):
        (WebCore::HTMLDocumentParser::finish):
        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
        * html/parser/HTMLDocumentParser.h:
        (WebCore):
        (HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::hasPreloadScanner):
        (WebCore::HTMLDocumentParser::shouldUseThreading):

2013-01-17  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Move all ExtraDataContainers into anonymous namespaces
        https://bugs.webkit.org/show_bug.cgi?id=107128

        Reviewed by Kentaro Hara.

        Tests not needed.

        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
        * platform/chromium/support/WebMediaStreamSource.cpp:
        * platform/chromium/support/WebRTCSessionDescriptionRequest.cpp:
        * platform/chromium/support/WebRTCVoidRequest.cpp:

2013-01-17  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: InstrumentingAgents should be registered in InspectorInstrumentation only when there is a front-end
        https://bugs.webkit.org/show_bug.cgi?id=107127

        Reviewed by Vsevolod Vlasov.

        InspectorInstrumentation::registerInstrumentingAgents is called when front-end
        is connected to corresponding InspectorController. When the front-end disconnects
        InspectorInstrumentation::unregisterInstrumentingAgents is called.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::inspectedPageDestroyed):
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::disconnectFrontend):

2013-01-17  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Content flows incorrectly in autoheight regions with min/max-height set
        https://bugs.webkit.org/show_bug.cgi?id=102099

        Reviewed by David Hyatt.

        The current layout algorithm for auto-height regions is gives wrong results when the max-height property is set on them. The reason is we
        consider the max-height restriction too late in the layout, when applying a forced break. This is what happens when content is laid out
        in an auto-height region.
        1. The content flows without a limit until a forced break appears. If there's no forced break in the content, one is forced anyway at the end
        of the layout.
        2. The region where the forced break is placed is not always the one where content is laid out because of max-height restrictions.
        3. All the regions with max-height are iterated and their height accumulated until the break offset is reached and the region at that point is ended.
        This gives wrong results because the forced break position in the content was computed assuming there's only one region where the content is laid out.
        The regions with max-height could have generated unforced breaks at their height and the forced break actually should have a different position.

        This patch changes the algorithm in this way:
        1. From the flow thread perspective all the regions start with a height: max-height for auto-height regions (or LayoutSize.max()/2 if not defined)
        or the fixed height value when specified.
        2. When the content is laid out, if there's no forced break, the height of the content is correctly estimated because the layout sees unforced breaks
        at the max-height values.
        3. If a forced break appears, the affected region can be obtained only by looking at the break offset in the region chain. If the region has auto-height,
        its height is updated by the forced break.
        4. At the end of the layout, there's the additional task to clear the height of all the regions that didn't receive content. This can be done optimally
        without adding a new iteration through the regions by attaching to the RegionOverset computation loop.

        Tests:  fast/regions/autoheight-maxheight-mixed-break.html
                fast/regions/autoheight-maxheight-simple-break.html
                fast/regions/autoheight-maxheight-simple-nobreak.html
                fast/regions/autoheight-minmaxheight-mixed-break-hbt.html
                fast/regions/autoheight-minmaxheight-mixed-break-vlr.html
                fast/regions/autoheight-minmaxheight-mixed-break-vrl.html
                fast/regions/autoheight-minmaxheight-mixed-break.html
                fast/regions/autoheight-minmaxheight-simple-break.html
                fast/regions/autoheight-minmaxheight-simple-nobreak.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::computeLogicalHeight):
        (WebCore::RenderFlowThread::regionAtBlockOffset):
        (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
        (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
        (WebCore::RenderFlowThread::computeOverflowStateForRegions): Attach to the loop in this function to clear the overrideLogicalHeight on empty regions.
        (WebCore):
        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect): Add an ASSERT that a region always has overrideLogicalHeight or a fixed height.
        (WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight): A new function that updates the region chain height to use the max-height value
        for auto-height regions.
        (WebCore::RenderFlowThread::addForcedRegionBreak):
        * rendering/RenderFlowThread.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::pageLogicalHeight): the decorations size is incorrectly considered in the page height.
        (WebCore):
        (WebCore::RenderRegion::maxPageLogicalHeight): new function that returns the max page size for a region. It shouldn't be called too often
        or the returned value can be cached
        (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent): the decorations size is incorrectly considered in the logical height of
        the flow thread content.
        * rendering/RenderRegion.h:
        (RenderRegion):


2013-01-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Open resource dialog has poor performance.
        https://bugs.webkit.org/show_bug.cgi?id=107122

        Reviewed by Pavel Feldman.

        Open resource dialog does not make linear number of relayouts on highlight anymore.
        Replaced localeCompare with string compare since it is significantly faster.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog.prototype._highlightItems):
        (WebInspector.OpenResourceDialog.compareFunction):
        (WebInspector.OpenResourceDialog):

2013-01-17  Alexis Menard  <alexis@webkit.org>

        Add ontransitionend attribute on HTML elements.
        https://bugs.webkit.org/show_bug.cgi?id=107134

        Reviewed by Simon Fraser.

        Add ontransitionend attribute on HTML elements to match the prefixed
        attribute onwebkittransitionend. As it uses the same plumbing as a
        regular event listener, it behaves the same which means that if
        ontransitionend only is defined then only the code attached to this
        attribute will be called, if only onwebkittransitionend is defined then
        only the code attached to this attribute will be called and finally if
        both attributes are defined then only the code attached to the
        unprefixed attribute will be called.

        Tests: transitions/transition-end-event-unprefixed-03.html
               transitions/transition-end-event-unprefixed-04.html

        * html/HTMLAttributeNames.in:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseAttribute):
        * page/DOMWindow.h:
        (DOMWindow):
        * page/DOMWindow.idl: only define the property if the unprefixing is
        turn on.

2013-01-17  Andrei Bucur  <abucur@adobe.com>

        Widows and orphans test4 fails if isolated
        https://bugs.webkit.org/show_bug.cgi?id=106006

        Reviewed by Dean Jackson.

        To determine if the orphans condition is not respected, every time a fragmentation break is encountered adjustLinePositionForPagination() is called for the current line.
        If the index on the line in the block is smaller than the number of orphans specified in the style object, the block is shifted in the next fragmentainer. The index of
        the line is obtained by calling RenderBlock::lineCount. However, this only works in a full layout when lineCount() will coincidentally return the index of the line.
        In subsequent layouts, during the determineStartPosition() phase, lineCount() returns all the lines in the block so the orphans condition is never triggered.
        The patch modifies the lineCount() function to have two optional parameters. The first parameter is the line where lineCount should stop counting lines. The second
        is an output boolean parameter indicating if the line was found or not. This change makes the lineCount() more flexible and allows retreiving the index of a
        specific line (e.g. the index of the current line inside adjustLinePositionForPagination()).

        Tests: fast/multicol/orphans-relayout.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::lineCount): See the detailed description.
        (WebCore::RenderBlock::adjustLinePositionForPagination): Make use of the modified lineCount() function.
        * rendering/RenderBlock.h:
        (RenderBlock):

2013-01-17  Martin Robinson  <mrobinson@igalia.com>

        REGRESSION (r137487): Crashes in editing/execCommand/indent-paragraphs.html on GTK, EFL
        https://bugs.webkit.org/show_bug.cgi?id=105042

        Reviewed by Gustavo Noronha Silva.

        Explicitly handle the situation where the creation of a SoupURI fails. This
        can happen if the URI is invalid. In that case the constructor returns null.

        No new tests. This patch unskips a failing test.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::createSoupRequestAndMessageForHandle): Handle a null Soup URI.

2013-01-17  Nate Chapin  <japhet@chromium.org>

        Enable reuse of cached main resources
        https://bugs.webkit.org/show_bug.cgi?id=105667

        Reviewed by Antti Koivisto.

        Test: http/tests/cache/cached-main-resource.html

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
        * dom/Document.h:
        (Document):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
            MainResourceLoader will take care of it.
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
        (WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
        (WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
            ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
        (WebCore::MainResourceLoader::identifier):
        * loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
            to better describe when it is used.
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
        (WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
        (WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
        * loader/cache/CachedRawResource.h:
        (CachedRawResource):
        (RedirectPair):
        (WebCore::CachedRawResource::RedirectPair::RedirectPair):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addClientToSet):: Don't return cached data for a main resource synchronously
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::canReuse):
        (CachedResource):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
        * testing/Internals.cpp:
        (WebCore::Internals::isLoadingFromMemoryCache):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Remove boilerplate CSS selectors.
        https://bugs.webkit.org/show_bug.cgi?id=107121

        Reviewed by Vsevolod Vlasov.

        There are rules that are used for filtration and styling
        whose selectors should be autogenerated.

        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkPanel.prototype._injectStyles):
        * inspector/front-end/networkLogView.css:

2013-01-17  Tim Horton  <timothy_horton@apple.com>

        Fix the Mac build sans ENABLE(CSS_FILTERS)

        Reviewed by Darin Adler.

        Move an export from a USE(ACCELERATED_COMPOSITING) block to a ENABLE(CSS_FILTERS)
        block, to match the code that backs it.

        * WebCore.exp.in:

2013-01-17  Shinya Kawanaka  <shinyak@chromium.org>

        [Mac] svg/custom/text-use-click-crash.xhtml added by r139029 hits assertion in enclosingTextFormControl
        https://bugs.webkit.org/show_bug.cgi?id=106361

        Reviewed by Darin Adler.

        When ASSERT hit in enclosingTextFormControl(Position), position.anchorNode() was /use/shadow-root/text,
        and position.anchorType() was PositionIsBeforeAnchor. In this case, position.containerNode() should be
        ShadowRoot if SHADOW_DOM flag is enabled. However, SHADOW_DOM flag is not enabled in mac port,
        position.containerNode() returns 0. This hits ASSERT.

        We have two options to solve this problem. (1) is to allow Position to have ShadowRoot as a container node,
        but this will affect a lot of code. (2) is to loosen ASSERT condition.

        I've chosen (2) option in this patch.

        Test: svg/custom/text-use-click-crash.xhtml should cover this.

        * html/HTMLTextFormControlElement.cpp:
        (WebCore::enclosingTextFormControl):

2013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Profiler: split "getProfile" to "getCPUProfile" and "loadHeapSnapshot"
        https://bugs.webkit.org/show_bug.cgi?id=104545

        Reviewed by Yury Semikhatsky.

        This change will allow stronger typing of profiler output.

        * inspector/Inspector.json:
        Split "getProfile" to "getCPUProfile" and "getHeapSnapshot".
        * inspector/InspectorProfilerAgent.cpp: Ditto.
        * inspector/InspectorProfilerAgent.h: Ditto.
        * inspector/front-end/CPUProfileView.js: Adopd changes.
        * inspector/front-end/HeapSnapshotView.js: Ditto.

2013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Memory leaks when user walks between requests.
        https://bugs.webkit.org/show_bug.cgi?id=107114

        Reviewed by Vsevolod Vlasov.

        Unregister event listeners when view is detached.

        * inspector/front-end/RequestCookiesView.js: Fixed memory leak.
        * inspector/front-end/RequestHeadersView.js: Ditto.
        * inspector/front-end/RequestTimingView.js: Ditto.

2013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Timeline] REGRESSION: Sidebar shrinks when user switches to memory statistics mode.
        https://bugs.webkit.org/show_bug.cgi?id=105857

        Reviewed by Pavel Feldman.

        Fix: do not apply constraints to sidebar width while view is offscreen;
        constraint check will be applied when view goes visible.

        * inspector/front-end/SidebarView.js:
        (WebInspector.SidebarView.prototype.applyConstraints): Check if view is
        offscreen.

2013-01-17  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Spectrum] Color picker in CSS editor does not update textual color value
        https://bugs.webkit.org/show_bug.cgi?id=107110

        Reviewed by Vsevolod Vlasov.

        The Spectrum picker was never told to update the textual color upon user-initiated color changes.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):

2013-01-17  Jae Hyun Park  <jae.park@company100.net>

        Remove unnecessary public method TiledBackingStore::supportsAlpha()
        https://bugs.webkit.org/show_bug.cgi?id=107067

        Reviewed by Kentaro Hara.

        This patch removes unnecessary public method TiledBackingStore::supportsAlpha()
        because supportsAlpha() is never called from other classes.

        No new tests, no change in behavior.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::setSupportsAlpha):
        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):

2013-01-17  Peter Rybin  <peter.rybin@gmail.com>

        [V8] Remove a --es5_readonly flag from V8 initialization and address duplicated code
        https://bugs.webkit.org/show_bug.cgi?id=106790

        Reviewed by Kentaro Hara.

        Couple of statements are moved to a newly created method. Old V8 flag setter is removed
        according to FIXME and per V8 change http://code.google.com/p/v8/source/detail?r=12415

        * bindings/v8/V8Initializer.cpp:
        (WebCore::initializeV8Common): newly created method
        (WebCore):
        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
        (WebCore::V8Initializer::initializeWorker):

2013-01-17  John Bauman  <jbauman@chromium.org>

        Fix texImage2D from a WebGL canvas.
        https://bugs.webkit.org/show_bug.cgi?id=106941

        Reviewed by Kenneth Russell.

        Clear the copied image whenever the canvas is modified, even if using
        accelerated compositing.

        Test: fast/canvas/webgl/tex-image-webgl.html

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::markContextChanged):

2013-01-17  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>

        [AC] Memory leak in GLXConfigSelector::createConfig()
        https://bugs.webkit.org/show_bug.cgi?id=106657

        Reviewed by Laszlo Gombos.

        Free the memory returned by glXGetVisualFromFBConfig() using
        XFree to avoid a memory leak.

        No new tests. No change in behavior.

        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
        (WebCore::GLXConfigSelector::createConfig):

2013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r139929.
        http://trac.webkit.org/changeset/139929
        https://bugs.webkit.org/show_bug.cgi?id=107141

        Speculative fix didn't work (Requested by jsbell on #webkit).

        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):

2013-01-16  Alexey Proskuryakov  <ap@apple.com>

        Don't use NSApplication run loop in NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=107061

        Reviewed by Anders Carlsson.

        Added a way to tell RunLoop whether it should use NSApplication run loop
        (defaulting to not using it, as this should be an exception for child processes).

        * WebCore.exp.in:
        * platform/RunLoop.cpp:
        (WebCore::RunLoop::setUseApplicationRunLoopOnMainRunLoop):
        * platform/RunLoop.h:
        * platform/mac/RunLoopMac.mm:
        (WebCore::RunLoop::setUseApplicationRunLoopOnMainRunLoop):
        (WebCore::RunLoop::run):
        (WebCore::RunLoop::stop):

2013-01-17  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix DefaultTextEditor's broken backspace
        https://bugs.webkit.org/show_bug.cgi?id=107130

        Reviewed by Pavel Feldman.

        Remove css "position: relative;" style from "webkit-line-content" class, which
        somehow brakes editing experience. Remove "height: 100%" from text-editor-overlay-highlight
        class and cast necessary height via inserting "&nbsp;" into overlay span elements.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
        * inspector/front-end/textEditor.css:
        (.text-editor-overlay-highlight):

2013-01-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce FileSystemWorkspaceProvider to allow showing files from file system in workspace.
        https://bugs.webkit.org/show_bug.cgi?id=107021

        Reviewed by Pavel Feldman.

        Added FileSystemWorkspaceProvider that populates workspace with files
        loaded from file systems registered in FileSystemMapping and listens
        for FileSystemAdded / FileSystemRemoved events to update workspace.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/FileMapping.js:
        (WebInspector.FileMapping.prototype.urlForURI):
        (WebInspector.FileMapping.MappingEntry.prototype.urlForURI):
        * inspector/front-end/FileSystemMapping.js:
        (WebInspector.FileSystemMapping.prototype.uriForPath):
        (WebInspector.FileSystemMapping.prototype.addEventListener):
        (WebInspector.FileSystemMapping.prototype.removeEventListener):
        (WebInspector.FileSystemMappingImpl):
        (get WebInspector.FileSystemMappingImpl.prototype.uriForPath):
        * inspector/front-end/FileSystemWorkspaceProvider.js: Added.
        * inspector/front-end/IsolatedFileSystemModel.js:
        (WebInspector.IsolatedFileSystemModel):
        (WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/Workspace.js:
        * inspector/front-end/externs.js:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:
        * inspector/front-end/navigatorView.css:
        (.navigator-other-tree-item .icon):

2013-01-17  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: add createOption method to WebInspector.StatusBarComboBox
        https://bugs.webkit.org/show_bug.cgi?id=107102

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/CPUProfileView.js:
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._addFrame):
        (WebInspector.ConsoleView.prototype._appendContextOption):
        * inspector/front-end/StatusBarButton.js:
        (WebInspector.StatusBarButton.prototype.set state):
        (WebInspector.StatusBarButton.prototype.set visible):
        (WebInspector.StatusBarComboBox.prototype.createOption):

2013-01-16  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL][GTK] checkSpellingOfString treats the multiple words as spelled correctly
        https://bugs.webkit.org/show_bug.cgi?id=106662

        Reviewed by Antonio Gomes.

        No new tests, covered by spelling-backspace-between-lines.html.

        TextCheckerEnchant::checkSpellingOfString() method, treats the multiple words
        as spelled correctly if one of them is ok. For example, string such as
        "OK zz OK" is spelled correctly!

        The method at the beginning assumes that the given string is spelled correctly,
        then it iterates over the words to find out the misspelled location and length
        in the whole string. In checkSpellingOfWord, if the word is ok, we mark
        it as spelled correctly and we do return to check the next words. In the fact,
        the location and length of the previously misspelled words are overwritten.

        * platform/text/enchant/TextCheckerEnchant.cpp:
        (WebCore::TextCheckerEnchant::checkSpellingOfWord):
        Update of the word's misspeling location and length was moved out the loop.

        (WebCore::TextCheckerEnchant::checkSpellingOfString):
        Stop checking the next words If the current word is misspelled, to do not overwrite
        its misspelled location and length.

2013-01-17  Chris Fleizach  <cfleizach@apple.com>

        WebSpeech: implement voices list
        https://bugs.webkit.org/show_bug.cgi?id=107014

        Reviewed by Adam Barth.

        Add in the Mac side code to return a list of voices. 
        Adds a layout test, which is skipped for now, until the feature is enabled.

        Test: platform/mac/fast/speechsynthesis/speech-synthesis-voices.html

        * Modules/speech/SpeechSynthesis.cpp:
        (WebCore::SpeechSynthesis::SpeechSynthesis):
        * Modules/speech/SpeechSynthesis.h:
        (SpeechSynthesis):
        * Modules/speech/mac/SpeechSynthesisMac.mm:
        (WebCore::SpeechSynthesis::initializeVoiceList):

2013-01-16  Rik Cabanier  <cabanier@adobe.com>

        Update GraphicsContext to support winding rule in clip operator for Core Graphics
        https://bugs.webkit.org/show_bug.cgi?id=106871

        Reviewed by Dirk Schulze.

        Changed the interface to GraphicsContext so it's possible to pass the winding
        rule to canvasClip() and clip().

        No new tests, no change in functionality.

        * WebCore.exp.in: Change signature of canvasClip function.
        * platform/graphics/GraphicsContext.h: Change canvasClip and clip signature with default winding rule.
        * platform/graphics/cairo/GraphicsContextCairo.cpp: Update interface with new signature so it still compiles.
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::canvasClip):
        * platform/graphics/cg/GraphicsContextCG.cpp: Update interface with new signature and implement winding rules.
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::canvasClip):
        * platform/graphics/openvg/GraphicsContextOpenVG.cpp: Update interface with new signature so it still compiles.
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::canvasClip):
        * platform/graphics/qt/GraphicsContextQt.cpp: Update interface with new signature so it still compiles.
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::canvasClip):
        * platform/graphics/skia/GraphicsContextSkia.cpp: Update interface with new signature so it still compiles.
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::canvasClip):
        * platform/graphics/wince/GraphicsContextWinCE.cpp: Update interface with new signature so it still compiles.
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::canvasClip):
        * platform/graphics/wx/GraphicsContextWx.cpp: Update interface with new signature so it still compiles.
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::canvasClip):

2013-01-16  Hajime Morrita  <morrita@google.com>

        NoEventDispatchAssertion in ContainerNode::removeChildren is too strict
        https://bugs.webkit.org/show_bug.cgi?id=106985

        Reviewed by Ryosuke Niwa.

        This change narrowed the lifetime of NoEventDispatchAssertion in removeChildren().
        It is as safe as other mutation method even after this change: childrenChanged() and
        ChildNodeRemovalNotifier are used outside the assertion scope.

        Test: svg/custom/use-mutation-crash.xhtml

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChildren):

2013-01-16  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] HTMLTextFormControlElement should use shadowHost instead of shadowAncestorNode
        https://bugs.webkit.org/show_bug.cgi?id=106533

        Reviewed by Kent Tamura.

        Since Node::shadowAncestorNode() is deprecated, we would like to use Node::shadowHost().

        No new tests, simple refactoring.

        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::setSelectionRange): Here, startPosition and endPosition is in ShadowDOM,
        converting shadowAncestorNode to shadowHost is safe.
        (WebCore::enclosingTextFormControl): Actually ASSERT in this method is wrong since shadowAncestorNode() does not
        return NULL. This should be shadowHost().

2013-01-16  Tony Gentilcore  <tonyg@chromium.org>

        Disable an ASSERT for the threaded parser
        https://bugs.webkit.org/show_bug.cgi?id=107087

        Reviewed by Adam Barth.

        Since tokenizing happens on the background thread, when the tree builder runs there isn't a valid tokenizer for which to check the state.
        The background parser has minimal code to update its tokenizer's state properly.

        No new tests because covered by existing fast/parser tests.

        * html/parser/HTMLParserOptions.cpp:
        (WebCore::HTMLParserOptions::HTMLParserOptions):
        * html/parser/HTMLParserOptions.h:
        (HTMLParserOptions):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processEndTag):

2013-01-16  MORITA Hajime  <morrita@google.com>

        Attr.ownerDocument should change if its parent's owner did
        https://bugs.webkit.org/show_bug.cgi?id=97644

        Reviewed by Darin Adler.

        moveTreeToNewScope() didn't traverse its Attr instances. But it should.

        Test: fast/dom/Attr/parent-adopt-node.html

        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::getExistingAttrs):
        (WebCore):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):

2013-01-16  Adam Barth  <abarth@webkit.org>

        Address tonyg's feedback on BackgroundHTMLParser
        https://bugs.webkit.org/show_bug.cgi?id=107086

        Reviewed by Tony Gentilcore.

        As requested in https://bugs.webkit.org/show_bug.cgi?id=107083#c5

        * html/parser/BackgroundHTMLParser.cpp:
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        (TokenDelivery):
        (WebCore::TokenDelivery::TokenDelivery):
        (WebCore::TokenDelivery::execute):

2013-01-16  Tony Gentilcore  <tonyg@chromium.org>

        Introduce a method to build the tree from a CompactHTMLToken
        https://bugs.webkit.org/show_bug.cgi?id=107082

        Reviewed by Adam Barth.

        No new tests because covered by existing fast/parser tests.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore):
        (WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
        * html/parser/HTMLDocumentParser.h:
        * html/parser/HTMLToken.h:
        (AtomicHTMLToken):
        (WebCore::AtomicHTMLToken::create):
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        * xml/parser/MarkupTokenBase.h:
        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
        (AtomicMarkupTokenBase):

2013-01-16  Roger Fong  <roger_fong@apple.com>

        Unreviewed build fix following r139918.
        Add speech synthesis to include path and WebCore vcproj file.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/WebCoreCommon.vsprops:

2013-01-16  Chris Rogers  <crogers@google.com>

        Switch AudioDestinationChromium over to new createAudioDevice() method
        https://bugs.webkit.org/show_bug.cgi?id=106816

        Reviewed by James Robinson.

        * platform/audio/chromium/AudioDestinationChromium.cpp:
        (WebCore::AudioDestinationChromium::AudioDestinationChromium):

2013-01-16  Adam Barth  <abarth@webkit.org>

        Introduce BackgroundHTMLParser for parsing HTML on a background thread
        https://bugs.webkit.org/show_bug.cgi?id=107083

        Reviewed by Eric Seidel.

        This patch contains a basic version of an HTML parser that runs on a
        background thread. The parser passes the majority of the tests in
        fast/parser and a large number of the subtests in html5lib.

        Notably absent from this early version of the parser is speculation
        (which will eventually replace preload scanning) and atomization (which
        we suspect will be important for performance). Our plan is to introduce
        those elements in subsequent patches.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/BackgroundHTMLParser.cpp: Added.
        (WebCore):
        (WebCore::checkThatTokensAreSafeToSendToAnotherThread):
        (WebCore::parserMap):
        (WebCore::ParserMap::backgroundParsers):
        (WebCore::ParserMap::mainThreadParsers):
        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::append):
        (WebCore::BackgroundHTMLParser::continueParsing):
        (WebCore::BackgroundHTMLParser::finish):
        (WebCore::BackgroundHTMLParser::pumpTokenizer):
        (TokenDelivery):
        (WebCore::TokenDelivery::execute):
        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
        (WebCore::BackgroundHTMLParser::createPartial):
        (WebCore::BackgroundHTMLParser::stopPartial):
        (WebCore::BackgroundHTMLParser::appendPartial):
        (WebCore::BackgroundHTMLParser::continuePartial):
        (WebCore::BackgroundHTMLParser::finishPartial):
        * html/parser/BackgroundHTMLParser.h: Added.
        (WebCore):
        (BackgroundHTMLParser):
        (WebCore::BackgroundHTMLParser::create):
        (ParserMap):
        (WebCore::ParserMap::identifierForParser):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore):
        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
        * html/parser/HTMLDocumentParser.h:
        (WebCore):
        (HTMLDocumentParser):

2013-01-16  Donghyun Kim  <dhkim715@hotmail.com>

        [soup] Fix build warning in ResourceHandleSoup.cpp
        https://bugs.webkit.org/show_bug.cgi?id=107063

        Reviewed by Martin Robinson.

        The restartedCallback has unused parameter 'message', 
        remove the parameter name to fix 'unused parameter' build warning.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::restartedCallback):

2013-01-16  Tony Gentilcore  <tonyg@chromium.org>

        Introduce a CompactHTMLToken for the threaded HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=107069

        Reviewed by Adam Barth.

        This class is used for transporting tokens from the parser thread to the main thread where they are fed to the tree builder.

        No new tests because covered by existing fast/parser tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/CompactHTMLToken.cpp: Added.
        (WebCore):
        (WebCore::CompactHTMLToken::CompactHTMLToken):
        (WebCore::isStringSafeToSendToAnotherThread):
        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
        * html/parser/CompactHTMLToken.h: Added.
        (WebCore):
        (CompactAttribute):
        (WebCore::CompactAttribute::CompactAttribute):
        (WebCore::CompactAttribute::name):
        (WebCore::CompactAttribute::value):
        (CompactHTMLToken):
        (WebCore::CompactHTMLToken::type):
        (WebCore::CompactHTMLToken::data):
        (WebCore::CompactHTMLToken::selfClosing):
        (WebCore::CompactHTMLToken::attributes):
        (WebCore::CompactHTMLToken::publicIdentifier):
        (WebCore::CompactHTMLToken::systemIdentifier):
        * xml/parser/MarkupTokenBase.h:
        (WebCore::MarkupTokenBase::data):
        (MarkupTokenBase):

2013-01-16  Adam Barth  <abarth@webkit.org>

        Introduce HTMLParserThread to be able to parse on a background thread
        https://bugs.webkit.org/show_bug.cgi?id=107071

        Reviewed by Tony Gentilcore.

        This patch introduces a simple thread class that we can use to parse
        HTML. This patch is unlikely to be the final design because we'll
        likely want to use libdispatch or some other platform-specific thread
        pool. However, this implementation is enough to let us work on the
        parser-specific aspects of this feature.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/HTMLParserThread.cpp: Added.
        (WebCore):
        (WebCore::HTMLParserThread::HTMLParserThread):
        (WebCore::HTMLParserThread::~HTMLParserThread):
        (WebCore::HTMLParserThread::start):
        (WebCore::HTMLParserThread::stop):
        (WebCore::HTMLParserThread::shared):
        (WebCore::HTMLParserThread::postTask):
        (WebCore::HTMLParserThread::threadStart):
        (WebCore::HTMLParserThread::runLoop):
        * html/parser/HTMLParserThread.h: Added.
        (WebCore):
        (HTMLParserThread):
        (WebCore::HTMLParserThread::create):
        (WebCore::HTMLParserThread::threadId):

2013-01-16  MORITA Hajime  <morrita@google.com>

        WebCore::ScriptRunner::timerFired() is reported to crash.
        https://bugs.webkit.org/show_bug.cgi?id=92211

        Reviewed by Darin Adler.

        This is a speculative fix to address some crash reports.
        Here is my rough guess.

        The crash report says there is a PendingScript instance whose m_element is null.
        - It happens only if the instance is created through the default constructor,
        - that could happen if m_pendingAsyncScripts doesn't contains matched PendingScript in ScriptRunner::notifyScriptReady(),
        - that could happen when notifyScriptReady() is called more than once.
        - It turns out that the call site, ScriptElement::notifyFinished(), could be called multiple times since
          it doesn't remove itself from the CachedResource, which is done separately in ScriptElement::execute().
        - So if notifyFinished() is called before execute(), it could happen

        This change added a guard to prevent notifyFinished() from being invoked multiple times.
        We should watch if these crash reports disappear.

        No new tests. I couldn't create any repro for this.

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::notifyFinished):

2013-01-16  Pablo Flouret  <pablof@motorola.com>

        Fix mac build system warnings introduced by r139866
        https://bugs.webkit.org/show_bug.cgi?id=107056

        Reviewed by Benjamin Poulain.

        warning: no rule to process file '$(PROJECT_DIR)/css/CSSSupportsRule.h' of type sourcecode.c.h for architecture x86_64
        warning: no rule to process file '$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSSupportsRule.h' of type sourcecode.c.h for architecture x86_64

        {JS,}CSSSupportsRule.h somehow ended up marked as sources in the XCode
        project. 

        No new tests. Build warning fix.

        * WebCore.xcodeproj/project.pbxproj:

2013-01-16  Elliott Sprehn  <esprehn@chromium.org>

        Merge RenderObjectChildList::appendChildNode and insertChildNode
        https://bugs.webkit.org/show_bug.cgi?id=106392

        Reviewed by Eric Seidel.

        insertChildNode and appendChildNode are nearly identical methods and
        we can combine them into insertChildNode and handle cases where the
        renderer to insert before is null as if it was an append.

        No new tests, just refactoring.

        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::insertChildNode):
        * rendering/RenderObjectChildList.h:
        (RenderObjectChildList):
        (WebCore::RenderObjectChildList::appendChildNode):
            Now inline and delegates to insertChildNode.

2013-01-16  Elliott Sprehn  <esprehn@chromium.org>

        Cursor stops blinking after clicking on scrollbar
        https://bugs.webkit.org/show_bug.cgi?id=106470

        Reviewed by Ojan Vafai.

        Restore the caret blinking when doing a mouseup on a
        scrollbar so scrolling a textarea doesn't cause the
        caret to freeze.

        No new tests, there doesn't seem to be any way to test
        cursor blinking.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::handleMouseDoubleClickEvent):

2013-01-16  Adam Barth  <abarth@webkit.org>

        Teach HTMLParserOptions about Settings::threadedHTMLParser
        https://bugs.webkit.org/show_bug.cgi?id=107068

        Reviewed by Tony Gentilcore.

        We use this option to enable the threaded HTML parser at runtime.

        * html/parser/HTMLParserOptions.cpp:
        (WebCore::HTMLParserOptions::HTMLParserOptions):
        * html/parser/HTMLParserOptions.h:
        (HTMLParserOptions):

2013-01-16  Brady Eidson  <beidson@apple.com>

        Synchronous XMLHTTPRequests need to go to the NetworkProcess.
        <rdar://problem/12951765> and https://bugs.webkit.org/show_bug.cgi?id=106826

        Reviewed by Sam Weinig and Alexey Proskuryakov.

        No new tests (No changes to any config that is currently tested)

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadResourceSynchronously): Consult the LoaderStrategy when strategies are
          being used.

        * loader/LoaderStrategy.cpp:
        (WebCore::LoaderStrategy::loadResourceSynchronously): Defaults to using ResourceHandle directly.
        * loader/LoaderStrategy.h:

        Break out the StoredCredentials enum to a new header:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleTypes.h:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2013-01-16  Robert Iannucci  <iannucci@chromium.org>

        Explicitly set msvs_cygwin_shell to true for bison rule
        https://bugs.webkit.org/show_bug.cgi?id=107058

        Reviewed by Tony Chang.

        Currently, msvs_cygwin_shell is set to 1 by default. This patch
        explicitly sets it on the actions which will break if msvs_cygwin_shell
        were set to 0. This is in preparation for changing the default value of
        msvs_cygwin_shell, which in turn is in preparation of the removal of
        cygwin as a buld-system requirement.

        Since this change will have no semantic effect, no new tests are
        required.

        A previous instance of this bug is here:
        https://bugs.webkit.org/show_bug.cgi?id=106706

        * WebCore.gyp/WebCore.gyp:

2013-01-16  Benjamin Poulain  <bpoulain@apple.com>

        Fix the warning for the exported Objective-C binding of DOMCSSSupportsRule

        Rubber-stamped by Simon Fraser.

        * WebCore.exp.in: r139866 exported the Objective-C class DOMCSSSupportsRule
        without #ifdefing the symbol between its feature flag.

2013-01-16  Victor Carbune  <vcarbune@chromium.org>

        Cues not rendered when they should be
        https://bugs.webkit.org/show_bug.cgi?id=106943

        Reviewed by Eric Carlson.

        Forced rendering update, even if the active set of cues didn't change.

        Test: media/track/track-cue-rendering-mode-changed.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): If exiting early,
        update the cues rendered by the text track container.
        (WebCore::HTMLMediaElement::textTrackModeChanged): Trigger update of the
        re-checking the active cues and render the ones not yet on screen.

2013-01-16  Benjamin Poulain  <bpoulain@apple.com>

        Force a rebuild of RenderObject

        Unreviewed. One bot is using old object file. Change RenderObject.cpp to force it
        to build the file again.

        * rendering/RenderObject.cpp:
        (WebCore::addLayers):
        (WebCore::RenderObject::findNextLayer):

2013-01-16  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Possible null ScriptExecutionContext passed to callbacks during frame destruction
        https://bugs.webkit.org/show_bug.cgi?id=107050

        Reviewed by Tony Chang.

        Temporary code to defend against null contexts. Will either refute a hypothesis, or we'll
        need to make a more systemic fix elsewhere. Either way it will be removed in a few days.
        We're unable to repro, but watching crash reports from users. One possible source is
        that during page tear-down WorkerScriptController::controllerForContext() returns null
        (there's a comment about that case) leading to a null context.

        No new tests - this shouldn't be happening.

        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):

2013-01-16  Kenneth Russell  <kbr@google.com>

        Simplify validation and data copying in WebGLBuffer
        https://bugs.webkit.org/show_bug.cgi?id=106975

        Reviewed by Dean Jackson.

        Re-landing after testing locally; was not able to reproduce the
        crash seen once with the earlier patch.

        No new tests; covered by existing tests. Ran WebGL layout tests and conformance tests.

        * html/canvas/WebGLBuffer.cpp:
        (WebCore::WebGLBuffer::associateBufferDataImpl):
            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
        (WebCore::WebGLBuffer::associateBufferData):
            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
        (WebCore::WebGLBuffer::associateBufferSubData):
            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
        * html/canvas/WebGLBuffer.h:
        (WebGLBuffer):
            Change signatures of associateBufferDataImpl and associateBufferSubDataImpl.

2013-01-16  Timothy Hatcher  <timothy@apple.com>

        Fix a crash when printing console messages to STDOUT.

        https://bugs.webkit.org/show_bug.cgi?id=107039

        Reviewed by Joseph Pecoraro.

        * page/Console.cpp:
        (WebCore::internalAddMessage): Don't release the RefPtr early. Also log the line number
        and convert non-string arguments to strings when printing them.

2013-01-16  Kenneth Russell  <kbr@google.com>

        Unreviewed, rolling out r139914.
        http://trac.webkit.org/changeset/139914
        https://bugs.webkit.org/show_bug.cgi?id=106975

        Caused crashes in compositing/visibility/visibility-simple-
        webgl-layer.html

        * html/canvas/WebGLBuffer.cpp:
        (WebCore::WebGLBuffer::associateBufferDataImpl):
        (WebCore::WebGLBuffer::associateBufferData):
        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
        (WebCore::WebGLBuffer::associateBufferSubData):
        * html/canvas/WebGLBuffer.h:
        (WebGLBuffer):

2013-01-16  Alexis Menard  <alexis@webkit.org>

        Monitor usage of unprefixed and prefixed DOM events for CSS Transitions.
        https://bugs.webkit.org/show_bug.cgi?id=107004

        Reviewed by Adam Barth.

        Monitor the usage of transitionEnd events as well as
        webkitTransitionEnd events so we can know in the future how much the
        prefixed version is used to remove it becomes irrelevant.

        No new tests : no behavior changes, we're just adding monitoring.

        * dom/EventTarget.cpp:
        (WebCore):
        (WebCore::EventTarget::fireEventListeners):
        * page/FeatureObserver.h:

2013-01-16  Antti Koivisto  <antti@apple.com>

        Tighten RenderLayerModelObject subclass constructors to operate on ContainerNodes.
        https://bugs.webkit.org/show_bug.cgi?id=107041

        Reviewed by Simon Fraser.

        In rendering code only Nodes that are not ContainerNodes are used by RenderText. Tighter typing is better in general. 
        It also enables better code generation (especially with Document* moving from Node to ContainerNode).

        This patch tightens constuctors for better static type checking. It also overrides node() with a covariant ContainerNode* return type
        version in RenderLayerModelObject. RenderObject::createObject() is tightened to take Element*.
        
        This patch does not change Node* usage in non-construction code (expect for the node() override).
        
        With some further work it should be possible to tighten most of the rendering tree to operate on Elements for even less branchiness.

        * dom/Document.cpp:
        (WebCore::Document::attach):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderThumb::RenderSliderThumb):
        (WebCore::RenderSliderContainer::RenderSliderContainer):
        * html/shadow/SliderThumbElement.h:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::RenderBlock):
        * rendering/RenderBlock.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::RenderBox):
        * rendering/RenderBox.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::RenderBoxModelObject):
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::RenderButton):
        * rendering/RenderButton.h:
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
        * rendering/RenderDeprecatedFlexibleBox.h:
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
        * rendering/RenderDetailsMarker.h:
        * rendering/RenderDialog.h:
        (WebCore::RenderDialog::RenderDialog):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::RenderFieldset):
        * rendering/RenderFieldset.h:
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
        * rendering/RenderFlexibleBox.h:
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        * rendering/RenderFlowThread.h:
        * rendering/RenderFullScreen.cpp:
        (RenderFullScreen::RenderFullScreen):
        * rendering/RenderFullScreen.h:
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::RenderGrid):
        * rendering/RenderGrid.h:
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        * rendering/RenderImage.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::RenderInline):
        * rendering/RenderInline.h:
        * rendering/RenderLayerModelObject.cpp:
        (WebCore::RenderLayerModelObject::RenderLayerModelObject):
        * rendering/RenderLayerModelObject.h:
        (WebCore::RenderLayerModelObject::node):
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::RenderListItem):
        * rendering/RenderListItem.h:
        * rendering/RenderMediaControlElements.cpp:
        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
        * rendering/RenderMediaControlElements.h:
        * rendering/RenderMultiColumnBlock.cpp:
        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
        * rendering/RenderMultiColumnBlock.h:
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
        * rendering/RenderMultiColumnFlowThread.h:
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        * rendering/RenderMultiColumnSet.h:
        (RenderMultiColumnSet):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
        * rendering/RenderNamedFlowThread.h:
        (RenderNamedFlowThread):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        * rendering/RenderObject.h:
        (RenderObject):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        * rendering/RenderRegion.h:
        (RenderRegion):
        * rendering/RenderRegionSet.cpp:
        (WebCore::RenderRegionSet::RenderRegionSet):
        * rendering/RenderRegionSet.h:
        (RenderRegionSet):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::RenderReplaced):
        * rendering/RenderReplaced.h:
        (RenderReplaced):
        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::RenderReplica):
        (WebCore::RenderReplica::~RenderReplica):
        * rendering/RenderReplica.h:
        * rendering/RenderRuby.cpp:
        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
        * rendering/RenderRuby.h:
        * rendering/RenderRubyBase.cpp:
        (WebCore::RenderRubyBase::RenderRubyBase):
        * rendering/RenderRubyBase.h:
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::RenderRubyRun):
        * rendering/RenderRubyRun.h:
        (RenderRubyRun):
        * rendering/RenderRubyText.cpp:
        (WebCore::RenderRubyText::RenderRubyText):
        * rendering/RenderRubyText.h:
        (RenderRubyText):
        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
        * rendering/RenderScrollbarPart.h:
        (RenderScrollbarPart):
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::RenderSearchField):
        * rendering/RenderSearchField.h:
        (RenderSearchField):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        * rendering/RenderTable.h:
        (RenderTable):
        * rendering/RenderTableCaption.cpp:
        (WebCore::RenderTableCaption::RenderTableCaption):
        * rendering/RenderTableCaption.h:
        (RenderTableCaption):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::RenderTableCell):
        * rendering/RenderTableCell.h:
        (RenderTableCell):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::RenderTableCol):
        * rendering/RenderTableCol.h:
        (RenderTableCol):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::RenderTableRow):
        * rendering/RenderTableRow.h:
        (RenderTableRow):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::RenderTableSection):
        * rendering/RenderTableSection.h:
        (RenderTableSection):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::RenderTextControl):
        * rendering/RenderTextControl.h:
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
        * rendering/RenderTextControlMultiLine.h:
        (RenderTextControlMultiLine):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):
        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
        * rendering/RenderTextTrackCue.cpp:
        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderView.h:
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::RenderWidget):
        * rendering/RenderWidget.h:
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        (WebCore::RenderMathMLTable::RenderMathMLTable):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::RenderMathMLRow):
        * rendering/mathml/RenderMathMLRow.h:
        (RenderMathMLRow):
        (WebCore::RenderSVGInline::RenderSVGInline):
        * rendering/svg/RenderSVGInline.h:
        * rendering/svg/RenderSVGTSpan.cpp:
        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
        * rendering/svg/RenderSVGTSpan.h:
        * rendering/svg/RenderSVGTextPath.cpp:
        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
        * rendering/svg/RenderSVGTextPath.h:

2013-01-16  Chris Fleizach  <cfleizach@apple.com>

        Stub out WebSpeech synthesis
        https://bugs.webkit.org/show_bug.cgi?id=106847

        Reviewed by Adam Barth.

        This adds in the necessary IDLs and stubs out the code for the WebSpeech
        synthesis specification.
        It does not turn on the feature in any platform, but it can be enabled
        and built for Mac.

        The feature flag is SPEECH_SYNTHESIS.

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * Modules/speech/DOMWindowSpeechSynthesis.cpp: Added.
        (WebCore::DOMWindowSpeechSynthesis::DOMWindowSpeechSynthesis):
        (WebCore::DOMWindowSpeechSynthesis::~DOMWindowSpeechSynthesis):
        (WebCore::DOMWindowSpeechSynthesis::from):
        (WebCore::DOMWindowSpeechSynthesis::speechSynthesis):
        * Modules/speech/DOMWindowSpeechSynthesis.h: Added.
        * Modules/speech/DOMWindowSpeechSynthesis.idl: Added.
        * Modules/speech/SpeechSynthesis.cpp: Added.
        (WebCore::SpeechSynthesis::create):
        (WebCore::SpeechSynthesis::SpeechSynthesis):
        * Modules/speech/SpeechSynthesis.h: Added.
        (SpeechSynthesis):
        (WebCore::SpeechSynthesis::getVoices):
        * Modules/speech/SpeechSynthesis.idl: Added.
        * Modules/speech/SpeechSynthesisEvent.cpp: Added.
        (WebCore::SpeechSynthesisEvent::create):
        (WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
        * Modules/speech/SpeechSynthesisEvent.h: Added.
        (SpeechSynthesisEvent):
        (WebCore::SpeechSynthesisEvent::charIndex):
        (WebCore::SpeechSynthesisEvent::elapsedTime):
        (WebCore::SpeechSynthesisEvent::name):
        * Modules/speech/SpeechSynthesisEvent.idl: Added.
        * Modules/speech/SpeechSynthesisUtterance.cpp: Added.
        (WebCore::SpeechSynthesisUtterance::create):
        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
        (WebCore::SpeechSynthesisUtterance::scriptExecutionContext):
        (WebCore::SpeechSynthesisUtterance::interfaceName):
        * Modules/speech/SpeechSynthesisUtterance.h: Added.
        (SpeechSynthesisUtterance):
        (WebCore::SpeechSynthesisUtterance::text):
        (WebCore::SpeechSynthesisUtterance::setText):
        (WebCore::SpeechSynthesisUtterance::lang):
        (WebCore::SpeechSynthesisUtterance::setLang):
        (WebCore::SpeechSynthesisUtterance::voiceURI):
        (WebCore::SpeechSynthesisUtterance::setVoiceURI):
        (WebCore::SpeechSynthesisUtterance::volume):
        (WebCore::SpeechSynthesisUtterance::setVolume):
        (WebCore::SpeechSynthesisUtterance::rate):
        (WebCore::SpeechSynthesisUtterance::setRate):
        (WebCore::SpeechSynthesisUtterance::pitch):
        (WebCore::SpeechSynthesisUtterance::setPitch):
        * Modules/speech/SpeechSynthesisUtterance.idl: Added.
        * Modules/speech/SpeechSynthesisVoice.cpp: Added.
        (WebCore::SpeechSynthesisVoice::create):
        (WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
        * Modules/speech/SpeechSynthesisVoice.h: Added.
        (SpeechSynthesisVoice):
        (WebCore::SpeechSynthesisVoice::voiceURI):
        (WebCore::SpeechSynthesisVoice::name):
        (WebCore::SpeechSynthesisVoice::lang):
        (WebCore::SpeechSynthesisVoice::localService):
        (WebCore::SpeechSynthesisVoice::isDefault):
        * Modules/speech/SpeechSynthesisVoice.idl: Added.
        * Modules/speech/mac: Added.
        * Modules/speech/mac/SpeechSynthesisMac.mm: Added.
        (WebCore::SpeechSynthesis::pending):
        (WebCore::SpeechSynthesis::speaking):
        (WebCore::SpeechSynthesis::paused):
        (WebCore::SpeechSynthesis::speak):
        (WebCore::SpeechSynthesis::cancel):
        (WebCore::SpeechSynthesis::pause):
        (WebCore::SpeechSynthesis::resume):
        * WebCore.xcodeproj/project.pbxproj:
        * dom/EventNames.h:
        * dom/EventNames.in:
        * dom/EventTargetFactory.in:

2013-01-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r139853.
        http://trac.webkit.org/changeset/139853
        https://bugs.webkit.org/show_bug.cgi?id=107049

        Broke the ChromeOS ppapi_unittests (Requested by leviw on
        #webkit).

        * inspector/Inspector.json:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * inspector/InspectorPageAgent.cpp:
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.PageDispatcher.prototype.frameDetached):
        * loader/NavigationScheduler.cpp:
        (WebCore::NavigationScheduler::clear):
        (WebCore::NavigationScheduler::timerFired):
        (WebCore::NavigationScheduler::startTimer):
        (WebCore::NavigationScheduler::cancel):
        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::progressStarted):
        (WebCore::ProgressTracker::finalProgressComplete):

2013-01-16  Kenneth Russell  <kbr@google.com>

        Simplify validation and data copying in WebGLBuffer
        https://bugs.webkit.org/show_bug.cgi?id=106975

        Reviewed by Dean Jackson.

        No new tests; covered by existing tests. Ran WebGL layout tests and conformance tests.

        * html/canvas/WebGLBuffer.cpp:
        (WebCore::WebGLBuffer::associateBufferDataImpl):
            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
        (WebCore::WebGLBuffer::associateBufferData):
            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
        (WebCore::WebGLBuffer::associateBufferSubData):
            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
        * html/canvas/WebGLBuffer.h:
        (WebGLBuffer):
            Change signatures of associateBufferDataImpl and associateBufferSubDataImpl.

2013-01-16  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        inconsistency in drawImage with target rect negative dimensions.
        https://bugs.webkit.org/show_bug.cgi?id=100026

        Reviewed by Dean Jackson.

        Remove -1, -1 special case in drawImage and drawImageBuffer. Replace
        all -1 -1 arguments calls to with the correct rectangle dimensions.

        Remove FloatRect(0, 0, -1, -1) default argument for srcRect, and
        instead, add new overloaded functions to create a FloatRect from image
        size.

        Replace -1 -1 arguments calls in FEComposite::platformApplySoftware
        with correct rectangle dimensions.

        Replace ImageGStreamer rect method (which may return -1 -1 rectangle)
        with cropRect method, and make caller check for rectangle emptiness.

        * fast/canvas/drawImage-with-negative-source-destination-expected.txt:
        * fast/canvas/drawImage-with-negative-source-destination.js:

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore):
        (WebCore::GraphicsContext::drawImageBuffer):
        * platform/graphics/GraphicsContext.h:
        (GraphicsContext):
        * platform/graphics/filters/FEComposite.cpp:
        (WebCore::FEComposite::platformApplySoftware):
        * platform/graphics/gstreamer/ImageGStreamer.h:
        (WebCore::ImageGStreamer::rect):

2013-01-16  Simon Fraser  <simon.fraser@apple.com>

        Allow PaintInfo to carry all PaintBehavior flags
        https://bugs.webkit.org/show_bug.cgi?id=106980

        Reviewed by Beth Dakin.

        In r139908 I missed one instance of the PaintInfo constructor that should take PaintBehaviorNormal
        instead of "false".

        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::paintIntoRect):

2013-01-16  Simon Fraser  <simon.fraser@apple.com>

        Allow PaintInfo to carry all PaintBehavior flags
        https://bugs.webkit.org/show_bug.cgi?id=106980

        Reviewed by Sam Weinig.
        
        PaintInfo has a single boolean for forceBlackText, but I'll be adding additional
        paint behaviors that I'd like to access from PaintInfo, so it makes sense for
        PaintInfo to just include the set of PaintBehavior flags.
        
        Also add default values in the constructor arguments for rarely used parameters.

        No behavior change, no tests.

        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::paint): Use the forceBlackText() function.
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint): Call forceBlackText().
        * rendering/PaintInfo.h:
        (WebCore::PaintInfo::PaintInfo): Pass PaintBehavior rather than a forceBlackText boolean.
        (WebCore::PaintInfo::forceBlackText): Return true if the behavior flags contain PaintBehaviorForceBlackText.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Pass PaintBehaviorForceBlackText instead of 'true'
        when painting for background-clip: text.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents): Pass PaintBehaviorNormal where we used to pass 'false',
        and omit default 0 parameters.
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): PaintBehaviorNormal and remove default params.

2013-01-16  Tim Horton  <timothy_horton@apple.com>

        Add a missing #if to fix the Mac build sans ENABLE_CSS_FILTERS.

        Rubber-stamped by Simon Fraser.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::cloneLayer):

2013-01-16  Kentaro Hara  <haraken@chromium.org>

        [V8] Make a creationContext parameter of toV8() mandatory
        https://bugs.webkit.org/show_bug.cgi?id=107020

        Reviewed by Adam Barth.

        Currently a creationContext parameter of toV8() is optional:

          Handle<Value> toV8(..., Handle<Object> creationContext = Handle<Object>(), ...) {
            ...;
          }

        On the other hand, looking at the implementation of
        V8WrapperInstantiationScope:

            explicit V8WrapperInstantiationScope(v8::Handle<v8::Object> creationContext)
                : m_didEnterContext(false)
                , m_context(v8::Context::GetCurrent())
            {
                if (creationContext.IsEmpty()) // We do nothing for this case!
                    return;
                v8::Handle<v8::Context> contextForWrapper = creationContext->CreationContext();
                if (contextForWrapper == m_context)
                    return;
                m_context = v8::Local<v8::Context>::New(contextForWrapper);
                m_didEnterContext = true;
                m_context->Enter();
            }

        we're assuming that a creationContext parameter is passed
        to toV8() when a creationContext exists. In other words,
        if we forget to pass a creationContext parameter, we will
        end up with creating an object on the current context, which
        is wrong. To avoid the mistake, we should make the
        creationContext parameter mandatory. When we really do not
        have a creationContext, we can pass Handle<Object>() explicitly.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::toV8):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::injectIDBKeyIntoScriptValue):
        (WebCore::idbKeyToScriptValue):
        * bindings/v8/ScriptController.cpp:
        (WebCore::createScriptObject):
        (WebCore::ScriptController::createScriptObjectForPluginElement):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::currentCallFrame):
        * bindings/v8/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::set):
        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::handleEvent):
        (WebCore::V8AbstractEventListener::getReceiverObject):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::updateDocumentProperty):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::toObjectWrapper):
        * bindings/v8/V8MutationCallback.cpp:
        (WebCore::V8MutationCallback::handleEvent):
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8WorkerContextEventListener.cpp:
        (WebCore::V8WorkerContextEventListener::handleEvent):
        (WebCore::V8WorkerContextEventListener::getReceiverObject):
        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
        (WebCore::V8SQLStatementErrorCallback::handleEvent):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::InjectedScriptHost::nodeAsScriptValue):
        * css/MediaQueryListListener.cpp:
        (WebCore::MediaQueryListListener::queryChanged):
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::injectInternalsObject):

2013-01-15  Jer Noble  <jer.noble@apple.com>

        Add a Setting to disable QTKit media engine.
        https://bugs.webkit.org/show_bug.cgi?id=106972

        Reviewed by Eric Carlson.

        Allow the MediaPlayerPrivateQTKit engine to be disabled by adding a
        runtime setting to Settings. Make the setting 'live' by requerying the
        installed media engines when the setting changes.

        * WebCore.exp.in: Add new symbols to export list.
        * page/Settings.cpp: Add new gQTKitEnabled global.
        (WebCore::Settings::setAVFoundationEnabled): Requery media engines.
        (WebCore::Settings::setQTKitEnabled): Ditto. Setter for global setting variable.
        * page/Settings.h:
        (WebCore::Settings::isQTKitEnabled): Getter for same.
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::installedMediaEngines): Check isQTKitEnabled() before adding
            MediaPlayerPrivateQTKit engine.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::requeryMediaEngines): Pass through to MediaPlayer.
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::installedMediaEngines): Take an optional requery options parameter.
        (WebCore::MediaPlayer::requeryMediaEngines): Pass through to installedMediaEngines().
        * platform/graphics/MediaPlayer.h:

2013-01-16  Christophe Dumez  <christophe.dumez@intel.com>

        [gstreamer] Some media tests occasionally crash with gstreamer 1.0 backend
        https://bugs.webkit.org/show_bug.cgi?id=106551

        Reviewed by Philippe Normand.

        ImageGStreamerCairo was passing mapped memory to
        cairo_image_surface_create_for_data() and then unmapping it straight
        away even though the cairo_surface_t is still used. The cairo
        documentation states:
        "The output buffer must be kept around until the cairo_surface_t is
        destroyed or cairo_surface_finish() is called on the surface."

        This patch keeps the GstBuffer memory mapped until the ImageGStreamer
        is destroyed so that the internal cairo_surface_t stays valid while
        avoiding copying the image data.

        No new tests, already covered by existing tests.

        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
        (WTF::adoptGRef):
        (WTF):
        (WTF::GstBuffer):
        * platform/graphics/gstreamer/GRefPtrGStreamer.h:
        (WTF): Add support for using GRefPtr with GstBuffer.
        * platform/graphics/gstreamer/ImageGStreamer.h:
        (ImageGStreamer):
        * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
        (ImageGStreamer::ImageGStreamer):
        (ImageGStreamer::~ImageGStreamer):

2013-01-16  Mike Reed  <reed@google.com>

        Use SkMatrix::I() when we need to pass identity, rather than constructing a new matrix.
        https://bugs.webkit.org/show_bug.cgi?id=107016

        Reviewed by James Robinson.

        No new tests. existing tests exercise this code.

        The default constructor is being deprecated, so this change is also part of that effort,
        though it is a perf-improvement regardless, since we avoid making a new (temp) matrix.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):

2013-01-16  Ojan Vafai  <ojan@chromium.org>

        RenderListMarker::computePreferredLogicalWidth should not be public
        https://bugs.webkit.org/show_bug.cgi?id=106956

        Reviewed by Tony Chang.

        RenderListItem was calling computePreferredLogicalWidths for the side
        effects of updating the marker content and margins. Instead, call
        updateMarginsAndContent directly.

        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::updateMarkerLocation):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::layout):
        The isImage() codepath never calls computePreferredLogicalWidths, so we need to make
        sure the content and margins are updated.

        (WebCore::RenderListMarker::updateContent):
        (WebCore::RenderListMarker::computePreferredLogicalWidths):
        (WebCore::RenderListMarker::updateMarginsAndContent):
        * rendering/RenderListMarker.h:

2013-01-16  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Safeguard against possible NULL-dereference
        https://bugs.webkit.org/show_bug.cgi?id=104931

        Reviewed by Martin Robinson.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetIndexInParent): Move the NULL-safeguard to a
        place where it actually makes sense.

2013-01-16  Avi Drissman  <avi@google.com>

        West-panning cursor does not match resize cursor, unlike all other directions
        https://bugs.webkit.org/show_bug.cgi?id=89405

        Reviewed by Alexey Proskuryakov.

        Existing manual tests.

        * platform/mac/CursorMac.mm:
        (WebCore::Cursor::ensurePlatformCursor):

2013-01-16  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: array grouping does not work for float number keys
        https://bugs.webkit.org/show_bug.cgi?id=106998

        Reviewed by Pavel Feldman.

        Now we do the array index check according to the ECMAScript 5, section 15.4:
        "A property name P (in the form of a String value) is an array index if and only if ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal to 2^32-1."

        * inspector/front-end/ObjectPropertiesSection.js:
        (.buildObjectFragment):

2013-01-16  Sergey Ryazanov  <serya@chromium.org>

        Web Inspector: Show formatted content of JSON request
        https://bugs.webkit.org/show_bug.cgi?id=106900

        Reviewed by Vsevolod Vlasov.

        "Request payload" section showed raw content for POST requests.
        This change show it in structured format if it's JSON parsable.
        Raw format is also available.

        * inspector/front-end/RequestHeadersView.js:
        (WebInspector.RequestHeadersView.prototype._refreshQueryString):
        (WebInspector.RequestHeadersView.prototype._refreshFormData):
        (WebInspector.RequestHeadersView.prototype.toggleViewSource):
        (WebInspector.RequestHeadersView.prototype._refreshParams):

2013-01-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: UISourceCode scriptFile / styleFile should be reset on navigation (debugger or css model reset).
        https://bugs.webkit.org/show_bug.cgi?id=107008

        Reviewed by Pavel Feldman.

        ScriptFiles and styleFiles are now reset and disposed on UISourceCodes on corresponding models reset.
        StyleSourceMapping now tries to setup mapping for newly added resource as well as for uiSourceCodes previously.

        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel):
        (WebInspector.CSSStyleModel.prototype._mainFrameCreatedOrNavigated):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping):
        (WebInspector.ResourceScriptMapping.prototype._unbindUISourceCodeFromScripts):
        (WebInspector.ResourceScriptMapping.prototype._initialize):
        (WebInspector.ResourceScriptMapping.prototype._debuggerReset):
        (WebInspector.ResourceScriptFile.prototype.dispose):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._addFrame):
        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel):
        (WebInspector.ScriptSnippetModel.prototype._debuggerReset):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping):
        (WebInspector.StylesSourceMapping.prototype._resourceAdded):
        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
        (WebInspector.StylesSourceMapping.prototype._bindUISourceCode):
        (WebInspector.StylesSourceMapping.prototype._projectWillReset):
        (WebInspector.StylesSourceMapping.prototype._initialize):
        (WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
        (WebInspector.StyleFile.prototype.dispose):

2013-01-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
        https://bugs.webkit.org/show_bug.cgi?id=105552

        Reverting 139877. It made a couple of API tests fail.

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (StreamingClient):
        (_WebKitWebSrcPrivate):
        (webKitWebSrcFinalize):
        (webKitWebSrcStop):
        (StreamingClient::didReceiveData):
        * platform/network/ResourceHandleClient.h:
        (ResourceHandleClient):
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (ResourceHandleInternal):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::cleanupSoupRequestOperation):
        (WebCore::nextMultipartResponsePartCallback):
        (WebCore::sendRequestCallback):
        (WebCore::readCallback):

2013-01-16  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: cookies with empty value are parsed incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=107012

        Reviewed by Pavel Feldman.

        Require cookie value to be a string, not a non-empty string, before
        employing legacy compatibility hack of treating bare token as value
        for the cookie with an empty name.

        * inspector/front-end/CookieParser.js:
        (WebInspector.CookieParser.prototype._addCookie):

2013-01-16  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        Unreviewed EFL build fix after r139877.

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (getGstBufferDataPointer): Add const modifier to webkitGstMapInfoQuarkString.

2013-01-16  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] remove inspectedWindow.onReset event
        https://bugs.webkit.org/show_bug.cgi?id=107009

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ExtensionAPI.js:
        (defineCommonExtensionSymbols):
        (injectedExtensionAPI.InspectorExtensionAPI):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype.initExtensions):

2013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix text-editor-highlight-regexp test
        https://bugs.webkit.org/show_bug.cgi?id=107006

        Reviewed by Vsevolod Vlasov.

        Use 'height: 100%' instead of pixel values on highlight spans to bring in some platform independency in test expectations.

        No new tests: no changes in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._measureRegex):
        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
        * inspector/front-end/textEditor.css:
        (.text-editor-overlay-highlight):
        (.webkit-line-content):

2013-01-16  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>

        [Qt] Use the shared HistoryItem serialization for QWebHistory
        https://bugs.webkit.org/show_bug.cgi?id=106671

        Reviewed by Allan Sandfeld Jensen.

        This allows a few things missing from the previous serialization code
        to function while using commonly maintained code:
        - The itemSequenceNumber and documentSequenceNumber that were needed
          to properly restore same-document navigations
        - The form data
        - The navigation hierarchy mapping the frame tree

        * history/HistoryItem.h:
        (HistoryItem):
        * history/qt/HistoryItemQt.cpp:
        (QDataStreamCoder):
        (WebCore):
        (WebCore::QDataStreamCoder::QDataStreamCoder):
        (WebCore::QDataStreamCoder::encodeBytes):
        (WebCore::QDataStreamCoder::encodeBool):
        (WebCore::QDataStreamCoder::encodeUInt32):
        (WebCore::QDataStreamCoder::encodeUInt64):
        (WebCore::QDataStreamCoder::encodeInt32):
        (WebCore::QDataStreamCoder::encodeInt64):
        (WebCore::QDataStreamCoder::encodeFloat):
        (WebCore::QDataStreamCoder::encodeDouble):
        (WebCore::QDataStreamCoder::encodeString):
        (WebCore::QDataStreamCoder::decodeBytes):
        (WebCore::QDataStreamCoder::decodeBool):
        (WebCore::QDataStreamCoder::decodeUInt32):
        (WebCore::QDataStreamCoder::decodeUInt64):
        (WebCore::QDataStreamCoder::decodeInt32):
        (WebCore::QDataStreamCoder::decodeInt64):
        (WebCore::QDataStreamCoder::decodeFloat):
        (WebCore::QDataStreamCoder::decodeDouble):
        (WebCore::QDataStreamCoder::decodeString):
        (WebCore::HistoryItem::restoreState):
        (WebCore::WebCore::HistoryItem::saveState):

2013-01-15  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
        https://bugs.webkit.org/show_bug.cgi?id=105552

        Reviewed by Philippe Normand.

        Makes it possible for the GStreamer media backend to provide the buffer to which
        the Soup networking backend will use to download data to. This makes copying
        memory unnecessary when ResourceHandle hands data over to the media player's
        StreamingClient. Thanks to Dan Winship for help designing the interface.

        No behaviour change, covered by existing tests.

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (getGstBufferSize): Abstract obtaining the size of the buffer, so the code
        is cleaner while still working for both GST 0.10 and 1.0.
        (setGstBufferSize): Ditto, but for setting the size.
        (getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
        (mapGstBuffer): Convenience method to take care of mapping the buffer so that
        we can provide the data pointer to ResourceHandle.
        (unmapGstBuffer): Convenience method which takes care of unmapping the buffer
        and properly freeing the GstMapInfo.
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (StreamingClient): New methods.
        (_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
        so we can later unmap it and push it to the pipeline.
        (webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
        destroyed.
        (webKitWebSrcStop): Also clear the GstBuffer in this case.
        (StreamingClient::didReceiveData): Handle the hand-over of the buffer.
        (StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
        * platform/network/ResourceHandleClient.h:
        (ResourceHandleClient):
        (WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
        member variable to 0.
        (WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
        has been allocated.
        (WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
        newly allocated char pointer.
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
        buffer is handled by the ResourceHandleClient.
        (WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
        (WebCore::sendRequestCallback): Ditto.
        (WebCore::readCallback): Ditto.

2013-01-16  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>

        [Qt] Crash in WebCore::CachedFrame::destroy
        https://bugs.webkit.org/show_bug.cgi?id=104525

        Reviewed by Adam Barth.

        Add an assert to increase the chances of catching this crash
        early on in the future.

        * dom/Document.cpp:
        (WebCore::Document::takeDOMWindowFrom):

2013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix Сlosure warnings in devTools front-end
        https://bugs.webkit.org/show_bug.cgi?id=106993

        Reviewed by Vsevolod Vlasov.

        Add missing annotations and rename Element.remove() method to avoid collision with HTMLSelectElement.remove() method.

        No new tests: no change in behaviour.

        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode.prototype.hasChildNodes):
        (WebInspector.DOMNode.prototype.getChildNodes):
        * inspector/front-end/DOMExtension.js:
        (Element.prototype.removeSelf):
        (removeSubsequentNodes):
        * inspector/front-end/DefaultTextEditor.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.OverridesSettingsTab):
        * inspector/front-end/SourceTokenizer.js:
        (WebInspector.SourceTokenizer):

2013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: fix backward compatibility issues with Element.remove() method
        https://bugs.webkit.org/show_bug.cgi?id=106996

        Reviewed by Vsevolod Vlasov.

        Add javascript implementations for CharacterData.prototype.remove and DocumentType.prototype.remove.

        No new tests: no change in behaviour.

        * inspector/front-end/DOMExtension.js:

2013-01-16  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurfaceGLX is leaking an XWindow
        https://bugs.webkit.org/show_bug.cgi?id=107002

        The XWindow created as a backing surface for
        the GraphicsSurfaceGLX needs to be destroyed
        together with the GraphicsSurface.

        Reviewed by Noam Rosenthal.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::clear):

2013-01-16  Pablo Flouret  <pablof@motorola.com>

        Implement CSSSupportsRule
        https://bugs.webkit.org/show_bug.cgi?id=104822

        Reviewed by Allan Sandfeld Jensen.

        http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface

        Right now, @supports is not implemented as a proper CSSRule. Apart from
        the CSSOM implications it gives wrong results when, for instance, an
        @supports rule is nested inside a @media rule.

        Test: css3/supports-cssom.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
            Add CSSSupportsRule.* and associated files.

        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/objc/DOMCSS.mm:
        (kitClass):
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::wrap):
            Create the correct wrappers for the rule.

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createSupportsRule):
        (WebCore::CSSParser::markSupportsRuleHeaderStart):
        (WebCore::CSSParser::markSupportsRuleHeaderEnd):
        * css/CSSParser.h:
            Create the supports rule when parsing and add it where it corresponds,
            instead of directly adding the child rules to the stylesheet.

        * css/CSSPropertySourceData.h:
        * css/CSSRule.h:
        * css/CSSRule.idl:
            Add SUPPORTS_RULE type to enums.

        * css/CSSSupportsRule.cpp: Added.
        (WebCore::CSSSupportsRule::CSSSupportsRule):
        (WebCore::CSSSupportsRule::~CSSSupportsRule):
        (WebCore::CSSSupportsRule::cssText):
        (WebCore::CSSSupportsRule::conditionText):
        * css/CSSSupportsRule.h: Added.
        (WebCore::CSSSupportsRule::create):
        * css/CSSSupportsRule.idl: Added.
            DOM interface.

        * css/RuleSet.cpp:
        (WebCore::RuleSet::addChildRules):
            Add rules included in the @supports rule.

        * css/StyleResolver.cpp:
        (WebCore::collectCSSOMWrappers):
            Collect CSSSupportsRule wrappers.

        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        (WebCore::StyleRuleSupports::StyleRuleSupports):
        * css/StyleRule.h:
        (StyleRuleBase):
        (WebCore::StyleRuleBase::isSupportsRule):
        (StyleRuleSupports):
        (WebCore::StyleRuleSupports::create):
        (WebCore::StyleRuleSupports::conditionText):
        (WebCore::StyleRuleSupports::conditionIsSupported):
        (WebCore::StyleRuleSupports::copy):
        (WebCore::toStyleRuleSupports):
            New subclass of StyleRuleBlock: StyleRuleSupports.

        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):
        * inspector/InspectorStyleSheet.cpp:
        (flattenSourceData):
        (WebCore::asCSSRuleList):
            Handle @supports rules where needed.

2013-01-16  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Unable to edit a time field with step=86400, and confusing appearance
        https://bugs.webkit.org/show_bug.cgi?id=106983

        Reviewed by Kentaro Hara.

        For example, we show a read-only hour field and a read-only minutes
        field for <input type=time min="17:00" step=86400> because the step
        value is 24 hours and the hour field can be only 17. However, we need to
        provide a way to clear the value of the time field in such case. We
        shouldn't make the hour field read-only if no other fields are editable.

        - We don't make hour fields read-only for input[type=time].

        - We make hour fields read-only for input[type=datetime-local] only if
          year, month, or day field is editable. e.g.
          <input type=datetime-local min=2013-01-16T17:00 step=86400>:
            The hour field is read-only, and year/month/day fields are editable.
          <input type=datetime-local min=2013-01-16T17:00 max=2013-01-16T18:00 step=86400>:
            The hour field is editable, and year/month/day fields are read-only.

        Test: fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html

        * html/shadow/DateTimeEditElement.cpp:
        (DateTimeEditBuilder): Declare new functions.
        (WebCore::DateTimeEditBuilder::getRangeOfDayOfMonthField):
        Added a function by extracting some code from visitField.
        (WebCore::DateTimeEditBuilder::visitField):
        (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldReadOnly):
        Added a function by extracting some code from visitField.
        (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
        If the type is "time", we don't make hour fields read-only.
        Otherwise, we don't make hour fields read-only if year/month/day fields
        are read-only. Note that we don't need to check read-only status of year
        and month fields explicitly here because a day field can be read-only
        only if the year field and the month field are read-only.

2013-01-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [TexMap] Composited CSS shaders crash when using non-GL TextureMapper
        https://bugs.webkit.org/show_bug.cgi?id=106796

        Reviewed by Noam Rosenthal.

        Fail gracefully when FilterEffectRenderer fails to build the filter effects.

        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::applyFilters):

2013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Store project UISourceCodes in a map with uri as a key for faster lookup.
        https://bugs.webkit.org/show_bug.cgi?id=106911

        Reviewed by Pavel Feldman.

        * inspector/front-end/Workspace.js:
        (WebInspector.Project):
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype._reset):
        (WebInspector.Project.prototype.uiSourceCodeForOriginURL):
        (WebInspector.Project.prototype.uiSourceCodeForURI):
        (WebInspector.Project.prototype.uiSourceCodes):

2013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce file mapping allowing to map network loaded scripts and stylesheets to file system files.
        https://bugs.webkit.org/show_bug.cgi?id=106795

        Reviewed by Pavel Feldman.

        Introduced file mapping for inspector.
        FileMapping is essentially an array of MappingEntries where each MappingEntry is a pair of urlPrefix and pathPrefix.
        When scripts and stylesheets are mapped to uiSourceCodes FileMapping methods are used to establish
        prefix based matching with file system uiSourceCodes if possible.

        Test: inspector/file-mapping.html

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping):
        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.CompilerScriptMapping.prototype.uiLocationToRawLocation):
        (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
        (WebInspector.CompilerScriptMapping.prototype.get addScript):
        (WebInspector.CompilerScriptMapping.prototype._bindUISourceCode):
        (WebInspector.CompilerScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
        * inspector/front-end/FileMapping.js: Added.
        (WebInspector.FileMapping):
        (WebInspector.FileMapping.prototype.hasMappingForURL):
        (WebInspector.FileMapping.prototype.uriForURL):
        (WebInspector.FileMapping.prototype.urlForURI):
        (WebInspector.FileMapping.prototype.setMappings):
        (WebInspector.FileMapping.prototype.mappings):
        (WebInspector.FileMapping.prototype._deserialize):
        (WebInspector.FileMapping.prototype._serialize):
        (WebInspector.FileMapping.MappingEntry):
        (WebInspector.FileMapping.MappingEntry.deserialize):
        (WebInspector.FileMapping.MappingEntry.prototype.matchesURL):
        (WebInspector.FileMapping.MappingEntry.prototype.matchesURI):
        (WebInspector.FileMapping.MappingEntry.prototype.uriForURL):
        (WebInspector.FileMapping.MappingEntry.prototype.urlForURI):
        (WebInspector.FileMapping.MappingEntry.prototype.serialize):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
        (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.displayNameForURL):
        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping):
        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
        (_addURLMapping):
        (rawLocationToUILocation):
        (_reset):
        (WebInspector.SASSSourceMapping.MappingEntry):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping):
        (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
        (WebInspector.StylesSourceMapping.prototype._projectWillReset):
        (WebInspector.StyleContentBinding.prototype.):
        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/Workspace.js:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce UISourceCode.originURL().
        https://bugs.webkit.org/show_bug.cgi?id=106909

        Reviewed by Pavel Feldman.

        Introduced originURL on UISourceCode showing where UISourceCode in workspace was loaded from.
        This is neeeded to distinguish it from network request url used by mappings.

        * inspector/front-end/AdvancedSearchController.js:
        (WebInspector.FileBasedSearchResultsPane.prototype._createAnchor):
        (WebInspector.FileBasedSearchResultsPane.prototype.addSearchResult):
        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compareBreakpoints):
        * inspector/front-end/CallStackSidebarPane.js:
        (WebInspector.CallStackSidebarPane.Placard.prototype._update):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._handleOpenURL):
        (WebInspector.ExtensionServer.prototype._onGetResourceContent):
        (WebInspector.ExtensionServer.prototype._onSetResourceContent):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
        * inspector/front-end/Linkifier.js:
        (WebInspector.Linkifier.prototype._updateAnchor):
        (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor):
        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorSourceTreeElement):
        * inspector/front-end/SASSSourceMapping.js:
        (uiLocationToRawLocation):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
        (WebInspector.ScriptsPanel.prototype._showSourceLine):
        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
        * inspector/front-end/ScriptsSearchScope.js:
        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes.comparator):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
        * inspector/front-end/StyleSheetOutlineDialog.js:
        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping.prototype.uiLocationToRawLocation):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.prototype._tooltipForFile):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):
        (WebInspector.UISourceCode.prototype.originURL):
        (WebInspector.UISourceCode.prototype.urlChanged):
        (WebInspector.UISourceCode.prototype.contentURL):
        (WebInspector.Revision.prototype.contentURL):
        * inspector/front-end/Workspace.js:
        (WebInspector.FileDescriptor):
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype.uiSourceCodeForOriginURL):
        (WebInspector.Workspace.prototype.uiSourceCodeForOriginURL):

2013-01-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Move 'DefaultTheme' folder to WebCore/platform/efl
        https://bugs.webkit.org/show_bug.cgi?id=106969

        Reviewed by Benjamin Poulain.

        DefaultTheme is used by both EFL WK1 and WK2 ports. So, WebCore/platform/efl is appropriate place for it.

        * platform/efl/DefaultTheme/CMakeLists.txt: Renamed from Source/WebKit/efl/DefaultTheme/CMakeLists.txt.
        * platform/efl/DefaultTheme/default.edc: Renamed from Source/WebKit/efl/DefaultTheme/default.edc.
        * platform/efl/DefaultTheme/widget/button/button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/button.edc.
        * platform/efl/DefaultTheme/widget/button/img_button_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_focus.png.
        * platform/efl/DefaultTheme/widget/button/img_button_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_hover.png.
        * platform/efl/DefaultTheme/widget/button/img_button_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_normal.png.
        * platform/efl/DefaultTheme/widget/button/img_button_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_press.png.
        * platform/efl/DefaultTheme/widget/check/check.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/check.edc.
        * platform/efl/DefaultTheme/widget/check/img_check_bg_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_bg_disabled.png.
        * platform/efl/DefaultTheme/widget/check/img_check_bg_enabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_bg_enabled.png.
        * platform/efl/DefaultTheme/widget/check/img_check_off.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off.png.
        * platform/efl/DefaultTheme/widget/check/img_check_off_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off_focus.png.
        * platform/efl/DefaultTheme/widget/check/img_check_off_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off_hover.png.
        * platform/efl/DefaultTheme/widget/check/img_check_on.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on.png.
        * platform/efl/DefaultTheme/widget/check/img_check_on_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on_focus.png.
        * platform/efl/DefaultTheme/widget/check/img_check_on_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on_hover.png.
        * platform/efl/DefaultTheme/widget/combo/combo.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo.edc.
        * platform/efl/DefaultTheme/widget/combo/combo_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_focus.png.
        * platform/efl/DefaultTheme/widget/combo/combo_focus_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_focus_button.png.
        * platform/efl/DefaultTheme/widget/combo/combo_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_hover.png.
        * platform/efl/DefaultTheme/widget/combo/combo_hover_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_hover_button.png.
        * platform/efl/DefaultTheme/widget/combo/combo_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_normal.png.
        * platform/efl/DefaultTheme/widget/combo/combo_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_normal_button.png.
        * platform/efl/DefaultTheme/widget/combo/combo_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_press.png.
        * platform/efl/DefaultTheme/widget/combo/combo_press_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_press_button.png.
        * platform/efl/DefaultTheme/widget/combo/icon.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/icon.png.
        * platform/efl/DefaultTheme/widget/entry/entry.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/entry.edc.
        * platform/efl/DefaultTheme/widget/entry/img_focused.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_focused.png.
        * platform/efl/DefaultTheme/widget/entry/img_hovered.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_hovered.png.
        * platform/efl/DefaultTheme/widget/entry/img_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_normal.png.
        * platform/efl/DefaultTheme/widget/file/file.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file.edc.
        * platform/efl/DefaultTheme/widget/file/file_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_focus.png.
        * platform/efl/DefaultTheme/widget/file/file_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_hover.png.
        * platform/efl/DefaultTheme/widget/file/file_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_normal.png.
        * platform/efl/DefaultTheme/widget/file/file_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_press.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc.
        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc.
        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png.
        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc.
        * platform/efl/DefaultTheme/widget/progressbar/bt_base.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/bt_base.png.
        * platform/efl/DefaultTheme/widget/progressbar/progressbar.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/progressbar.edc.
        * platform/efl/DefaultTheme/widget/progressbar/shelf_inset.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/shelf_inset.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_bg_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_bg_disabled.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_bg_enabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_bg_enabled.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_off.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_off_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off_focus.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_off_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off_hover.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_on.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_on_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on_focus.png.
        * platform/efl/DefaultTheme/widget/radio/img_radio_on_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on_hover.png.
        * platform/efl/DefaultTheme/widget/radio/radio.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/radio.edc.
        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc.
        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png.
        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png.
        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png.
        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png.
        * platform/efl/DefaultTheme/widget/search/cancel/cancel_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/cancel_normal_button.png.
        * platform/efl/DefaultTheme/widget/search/cancel/cancel_normal_button2.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/cancel_normal_button2.png.
        * platform/efl/DefaultTheme/widget/search/cancel/search_cancel.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/search_cancel.edc.
        * platform/efl/DefaultTheme/widget/search/decoration/decoration_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/decoration/decoration_normal_button.png.
        * platform/efl/DefaultTheme/widget/search/decoration/search_decoration.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/decoration/search_decoration.edc.
        * platform/efl/DefaultTheme/widget/search/field/field_focused.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_focused.png.
        * platform/efl/DefaultTheme/widget/search/field/field_hovered.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_hovered.png.
        * platform/efl/DefaultTheme/widget/search/field/field_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_normal.png.
        * platform/efl/DefaultTheme/widget/search/field/search_field.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/search_field.edc.
        * platform/efl/DefaultTheme/widget/slider/slider.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider.edc.
        * platform/efl/DefaultTheme/widget/slider/slider_fill_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_fill_h.png.
        * platform/efl/DefaultTheme/widget/slider/slider_fill_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_fill_v.png.
        * platform/efl/DefaultTheme/widget/slider/slider_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_h.png.
        * platform/efl/DefaultTheme/widget/slider/slider_thumb_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_h.png.
        * platform/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png.
        * platform/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png.
        * platform/efl/DefaultTheme/widget/slider/slider_thumb_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_v.png.
        * platform/efl/DefaultTheme/widget/slider/slider_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_v.png.
        * platform/efl/DefaultTheme/widget/spinner/sp_bg.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_bg.png.
        * platform/efl/DefaultTheme/widget/spinner/sp_down_default.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_default.png.
        * platform/efl/DefaultTheme/widget/spinner/sp_down_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_hover.png.
        * platform/efl/DefaultTheme/widget/spinner/sp_down_pressed.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_pressed.png.
        * platform/efl/DefaultTheme/widget/spinner/sp_up_default.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_default.png.
        * platform/efl/DefaultTheme/widget/spinner/sp_up_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_hover.png.
        * platform/efl/DefaultTheme/widget/spinner/sp_up_pressed.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_pressed.png.
        * platform/efl/DefaultTheme/widget/spinner/spinner.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/spinner.edc.

2013-01-16  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in SerializedScriptValue::deserialize()
        https://bugs.webkit.org/show_bug.cgi?id=106916

        Reviewed by Adam Barth.

        This is one of steps to remove optional Isolate parameters.

        No tests. No change in behavior.

        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::deserialize):
        (WebCore):
        (WebCore::SerializedScriptValue::deserializeForInspector):
        * bindings/v8/SerializedScriptValue.h:
        (SerializedScriptValue):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::stateAccessorGetter):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAccessorGetter):
        * bindings/v8/custom/V8PopStateEventCustom.cpp:
        (WebCore::V8PopStateEvent::stateAccessorGetter):

2013-01-16  Ken Kania  <kkania@chromium.org>

        [Inspector] Add events for tracking page loads and scheduled navigations.
        https://bugs.webkit.org/show_bug.cgi?id=104168

        Reviewed by Pavel Feldman.

        These events are needed for clients who need to be aware of when a page is
        navigating or about to navigate. Some clients may wish to prevent interaction
        with the page during this time. Two of the new events track loading start and
        stop, as measured by the ProgressTracker. The other two events track when a
        page has a new scheduled navigation and when it no longer has a scheduled
        navigation. These latter two events won't allow the client to determine if
        a load is going to happen in all circumstances, but is sufficient for many cases.

        Tests: inspector-protocol/page/frameScheduledNavigation.html
               inspector-protocol/page/frameStartedLoading.html

        * inspector/Inspector.json:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
        (WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
        (WebCore::InspectorInstrumentation::frameScheduledNavigationImpl):
        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigationImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::frameStartedLoading):
        (WebCore):
        (WebCore::InspectorInstrumentation::frameStoppedLoading):
        (WebCore::InspectorInstrumentation::frameScheduledNavigation):
        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::frameStartedLoading):
        (WebCore):
        (WebCore::InspectorPageAgent::frameStoppedLoading):
        (WebCore::InspectorPageAgent::frameScheduledNavigation):
        (WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.PageDispatcher.prototype.frameDetached):
        (WebInspector.PageDispatcher.prototype.frameStartedLoading):
        (WebInspector.PageDispatcher.prototype.frameStoppedLoading):
        (WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
        (WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
        * loader/NavigationScheduler.cpp:
        (WebCore::NavigationScheduler::clear):
        (WebCore::NavigationScheduler::timerFired):
        (WebCore::NavigationScheduler::startTimer):
        (WebCore::NavigationScheduler::cancel):
        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::progressStarted):
        (WebCore::ProgressTracker::finalProgressComplete):

2013-01-16  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update MediaStreamTrack::readyState to match specification
        https://bugs.webkit.org/show_bug.cgi?id=106781

        Reviewed by Kentaro Hara.

        MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.

        Existing tests expanded to cover patch.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::processTrack):
        * Modules/mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::readyState):
        (WebCore::MediaStreamTrack::ended):
        (WebCore):
        * Modules/mediastream/MediaStreamTrack.h:
        (MediaStreamTrack):
        * Modules/mediastream/MediaStreamTrack.idl:

2013-01-16  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: array grouping does not work for big and negative number keys
        https://bugs.webkit.org/show_bug.cgi?id=106891

        Reviewed by Pavel Feldman.

        Fixing array grouping for arrays that contain big or negative number representations as object keys.

        * inspector/front-end/ObjectPropertiesSection.js:
        (.buildObjectFragment):

2013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: highlight regexp API for DefaultTextEditor
        https://bugs.webkit.org/show_bug.cgi?id=106801

        Reviewed by Pavel Feldman.

        Add highlightRegexp and removeRegexpHighlight methods to DefaultTextEditor that highlight
        all occurrences of given regexp in text with given css class.
        Highlight is done via spans positioned absolutely over the regexp occurences in text.

        Test: inspector/editor/text-editor-highlight-regexp.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.highlightRegex):
        (WebInspector.DefaultTextEditor.prototype.removeRegexHighlight):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
        (WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
        (WebInspector.TextEditorMainPanel.prototype._repaintVisibleChunks):
        (WebInspector.TextEditorMainPanel.prototype._findRegexOccurrences):
        (WebInspector.TextEditorMainPanel.prototype._measureRegex):
        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        * inspector/front-end/TextEditor.js:
        (WebInspector.TextEditor.prototype.highlightRegex):
        (WebInspector.TextEditor.prototype.removeRegexHighlight):
        * inspector/front-end/textEditor.css:
        (.text-editor-overlay-highlight):
        (.debug-fadeout):

2013-01-16  Ryosuke Niwa  <rniwa@webkit.org>

        Get rid of Node::createRareData
        https://bugs.webkit.org/show_bug.cgi?id=106981

        Reviewed by Benjamin Poulain.

        Deleted Node::createRareData. Node::ensureRareData() instantiates NodeRareData
        or ElementRareData according to the node type. Also encapsulate new by create
        functions in NodeRareData and ElementRareData.

        * dom/Element.cpp:
        (WebCore):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::create):
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::ensureRareData):
        (WebCore):
        * dom/Node.h:
        (WebCore::NodeRareDataBase::NodeRareDataBase):
        * dom/NodeRareData.h:
        (NodeRareData):
        (WebCore::NodeRareData::create):
        (WebCore::NodeRareData::NodeRareData):

2013-01-15  Ryosuke Niwa  <rniwa@webkit.org>

        GTK+ and Qt build fix after r139833.
        Explicitly cast NodeRareDataBase to NodeRareData before deleting it.

        * dom/Node.cpp:
        (WebCore::Node::clearRareData):

2013-01-15  Qiankun Miao  <qiankun.miao@intel.com>

        Remove extra space in CustomFilterRenderer.h
        https://bugs.webkit.org/show_bug.cgi?id=105783

        Reviewed by Dean Jackson.

        * platform/graphics/filters/CustomFilterRenderer.h:
        (CustomFilterRenderer):

2013-01-15  Tab Atkins  <tabatkins@google.com>

        Update CSS3 gradient support to the latest spec version and unprefix.
        https://bugs.webkit.org/show_bug.cgi?id=67166

        Reviewed by Dean Jackson.

        Tests: fast/gradients/unprefixed-color-stop-units.html
               fast/gradients/unprefixed-color-stops.html
               fast/gradients/unprefixed-generated-gradients.html
               fast/gradients/unprefixed-gradient-parsing.html
               fast/gradients/unprefixed-linear-angle-gradients.html
               fast/gradients/unprefixed-linear-right-angle-gradients.html
               fast/gradients/unprefixed-list-item-gradient.html
               fast/gradients/unprefixed-radial-gradients.html
               fast/gradients/unprefixed-radial-gradients2.html
               fast/gradients/unprefixed-radial-gradients3.html
               fast/gradients/unprefixed-repeating-end-fill.html
               fast/gradients/unprefixed-repeating-linear-gradient.html
               fast/gradients/unprefixed-repeating-radial-gradients.html
               fast/gradients/unprefixed-zero-range-repeating-gradient-hang.html

        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::computeEndPoint): Rename parameters to make more sense.
        (WebCore::CSSLinearGradientValue::customCssText):
        (WebCore::CSSLinearGradientValue::createGradient):
        (WebCore::CSSRadialGradientValue::customCssText):
        (WebCore::CSSRadialGradientValue::createGradient):
        * css/CSSGradientValue.h:
        (CSSGradientValue):
        (CSSRadialGradientValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseLinearGradient):
        (WebCore::CSSParser::parseRadialGradient):
        (WebCore::CSSParser::isGeneratedImageValue):
        (WebCore::CSSParser::parseGeneratedImage):
        * css/CSSParser.h:

2013-01-15  Ryosuke Niwa  <rniwa@webkit.org>

        NodeRareData doesn't need to have a vtable pointer
        https://bugs.webkit.org/show_bug.cgi?id=106965

        Reviewed by Benjamin Poulain.

        Made the destructor and reportMemoryUsage of NodeRareDataBase and NodeRareData
        respectively and their subclasses non-virtual.

        * dom/ElementRareData.cpp:
        (SameSizeAsElementRareData): Added.
        (WebCore): Added a compile assertion for the size of ElementRareData.
        * dom/ElementRareData.h:
        (ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::clearRareData): Explicitely delete NodeRareData or ElementRareData.
        (WebCore::Node::reportMemoryUsage): Explicitely add NodeRareData or ElementRareData.
        * dom/Node.h:
        (NodeRareDataBase): Deleted the virtual destructor.
        * dom/NodeRareData.cpp:
        (SameSizeAsNodeRareData): Removed one pointer.
        * dom/NodeRareData.h:
        (NodeRareData): Removed the virtual destructor.
        (NodeRareData::reportMemoryUsage): Made non-virtual.

2013-01-15  Ian Vollick  <vollick@chromium.org>

        [chromium] Create GraphicsLayerChromiums using a factory
        https://bugs.webkit.org/show_bug.cgi?id=103635

        Reviewed by James Robinson.

        Refactor graphics layer creation for chromium to go through a factory.

        No new tests, no change in functionality.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayer::create):

2013-01-15  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry]  LayerRenderingResults doesn't need to maintain the hole punch rect
        https://bugs.webkit.org/show_bug.cgi?id=106896

        Reviewed by George Staikos.
        Internally reviewed by Arvid Nilsson and John Griggs.

        No new tests,clean up code which is not used anymore.

        * platform/graphics/blackberry/LayerRenderer.cpp:
        (WebCore::LayerRenderer::drawHolePunchRect):
        * platform/graphics/blackberry/LayerRenderer.h:
        (LayerRenderingResults):

2013-01-15  Charles Wei  <charles.wei@torchmobile.com.cn>

        Fullscreen element should not share styles with it's siblings.
        https://bugs.webkit.org/show_bug.cgi?id=106888

        Reviewed by George Staikos.

        Test: fullscreen/full-screen-no-style-sharing.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):

2013-01-15  Tim Horton  <timothy_horton@apple.com>

        Clamp TileCache visibleRect to WKView's visibleRect
        https://bugs.webkit.org/show_bug.cgi?id=106601
        <rdar://problem/12843164>

        Reviewed by Simon Fraser.

        * platform/graphics/TiledBacking.h:
        (TiledBacking): Add setExposedRect and setClipsToExposedRect.
        * platform/graphics/ca/mac/TileCache.h:
        (TileCache): Add setExposedRect, setClipsToExposedRect, and storage for their respective values.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache): Initialize m_clipsToExposedRect to false.
        (WebCore::TileCache::setExposedRect): Update exposedRect and revalidate tiles.
        (WebCore::TileCache::setClipsToExposedRect): Update clipsToExposedRect and revalidate tiles;
        if we're going from unclipped to clipped, we already have tiles, so we can skip tile revalidation.
        (WebCore::TileCache::computeTileCoverageRect): Intersect exisiting visible rect with
        exposed rect to get the visible rect we actually care about.
        (WebCore::TileCache::revalidateTiles): Ditto.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer): Don't create an overhang layer if the frame isn't scrollable.
        (WebCore::RenderLayerCompositor::requiresContentShadowLayer): Don't create a shadow layer if the frame isn't scrollable.

2013-01-15  Roger Fong  <roger_fong@apple.com>

        Get rid of a straggling dependency on SafariThemeConstants in RenderThemeWin.

        Rubberstamped by Timothy Horton.

        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::supportsClosedCaptioning):
        * rendering/RenderThemeWin.h:

2013-01-15  Hayato Ito  <hayato@chromium.org>

        Group all request parameters which are used to match CSS Rules into a parameter object.
        https://bugs.webkit.org/show_bug.cgi?id=106879

        Reviewed by Dimitri Glazkov.

        Introduces a MatchRequest which groups all request parameters to match CSS rules.

        Factoring, no change in behavior.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::collectMatchingRulesForRegion):
        (WebCore::StyleResolver::matchScopedAuthorRules):
        (WebCore::StyleResolver::matchHostRules):
        (WebCore::StyleResolver::matchAuthorRules):
        (WebCore::StyleResolver::matchUserRules):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::MatchRequest::MatchRequest):
        (MatchRequest):
        (StyleResolver):

2013-01-15  Simon Fraser  <simon.fraser@apple.com>

        Add the ability for a RenderLayerBacking to have a layer that renders backgrounds.
        https://bugs.webkit.org/show_bug.cgi?id=106961

        Reviewed by Dean Jackson.

        In some cases we need a compositing layer to render its background into
        a separate GraphicsLayer (e.g. for background-attachment: fixed in some scenarios).
        
        To support this, have RenderLayer optionally create a GraphicsLayer for the background.
        Currently nothing causes background layers to get created.
        
        Having a background layer requires that we add an additional containment layer
        which encloses the background, primary and foreground layers, since the 
        background layer has to be composited behind the primary content. This containment
        layer gets any transform, including page scale on the RenderView's layer.
        
        No new tests; there's no way to create a background layer yet. This was tested during
        development by forcing a background layer.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateDebugIndicators): Show borders on both new layers
        and repaint counters on the background layer.
        (WebCore::RenderLayerBacking::destroyGraphicsLayers): Clear the two new layers.
        (WebCore::RenderLayerBacking::updateTransform): If we have a containment layer, it
        takes the transform (and clear the transform on the primary layer).
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Make the background
        layer if we need one (currently never).
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Position and size
        the containment layer if we have one. If we do, then the m_graphicsLayer will
        be at 0,0 in that containment layer. The background layer is also sized similarly
        to the foreground layer.
        (WebCore::RenderLayerBacking::updateInternalHierarchy): Adapt to the new hierarchy
        with containment and background layers if we have them.
        (WebCore::RenderLayerBacking::updateBackgroundLayer): Here's where we create the background
        and containment layers.
        (WebCore::RenderLayerBacking::childForSuperlayers): If we have a containment layer, that's
        what gets attached to our parent.
        (WebCore::RenderLayerBacking::getCurrentTransform): The containment layer gets the transform
        if we have one, so check that here.
        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
        (WebCore::RenderLayerBacking::reportMemoryUsage):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::deviceOrPageScaleFactorChanged): We need to start notifying
        about page/device scale on the containment layer if there is one (since it takes page scale), so
        use childForSuperlayers() rather than just getting the primary layer.

2013-01-15  Pan Deng  <pan.deng@intel.com>

        Remove Key3 and Challenge Response fields from Websocket implementation and Web Inspector.
        https://bugs.webkit.org/show_bug.cgi?id=105738.

        Reviewed by Kent Tamura.

        Key3 and Challenge Response fields were obsoleted in IETF websocket spec, this patch removes related
        code in Websocket and Web Inspector

        No new tests as no new functionality added.

        * Modules/websockets/WebSocketHandshakeRequest.cpp: remove Key3 related code
        * Modules/websockets/WebSocketHandshakeRequest.h: 
        (WebSocketHandshakeRequest):
        * Modules/websockets/WebSocketHandshakeResponse.cpp: remove Challenge response related code
        * Modules/websockets/WebSocketHandshakeResponse.h: 
        (WebSocketHandshakeResponse):
        * inspector/Inspector.json: remove Key3 and Challenge response fields definition
        * inspector/InspectorResourceAgent.cpp: remove Key3 and Challenge response field from inspector agent
        (WebCore):
        (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
        (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
        * inspector/front-end/NetworkManager.js: 
        (WebInspector.NetworkDispatcher.prototype.webSocketWillSendHandshakeRequest): 
        (WebInspector.NetworkDispatcher.prototype.webSocketHandshakeResponseReceived): 
        * inspector/front-end/RequestHeadersView.js: remove Key3 and Challenge response item from front-end.
        (WebInspector.RequestHeadersView.prototype._refreshRequestHeaders):
        (WebInspector.RequestHeadersView.prototype._refreshResponseHeaders):
        (WebInspector.RequestHeadersView.prototype._refreshHeaders):

2013-01-15  Antti Koivisto  <antti@apple.com>

        ASSERT(!m_queue.killed() && m_threadID) hit in StorageThread::scheduleTask on low memory warning
        https://bugs.webkit.org/show_bug.cgi?id=106960

        Reviewed by Mark Rowe.

        We were scheduling a memory clearing task to terminated StorageThreads.
        
        Remove thread from the active thread list when terminate is scheduled. Add when thread is started.

        * storage/StorageThread.cpp:
        (WebCore::activeStorageThreads):
        (WebCore::StorageThread::StorageThread):
        (WebCore::StorageThread::~StorageThread):
        (WebCore::StorageThread::start):
        (WebCore::StorageThread::terminate):
        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):

2013-01-15  Luke Macpherson   <macpherson@chromium.org>

        Don't do indiscriminate cast & call in StylePropertySet::PropertyReference::cssName() on release builds.
        https://bugs.webkit.org/show_bug.cgi?id=106867

        Reviewed by Darin Adler.

        Check CSSValue::isVariableValue() before casting to CSSVariableValue.

        Covered by existing variables tests.

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::PropertyReference::cssName):

2013-01-15  Emil A Eklund  <eae@chromium.org>

        [Sub pixel layout] RTL cells with padding wraps
        https://bugs.webkit.org/show_bug.cgi?id=106843

        Reviewed by Levi Weintraub.
        
        At certain zoom levels table cells with padding wraps for rtl
        content.

        Test: fast/sub-pixel/table-rtl-padding.html

        * rendering/RenderTable.h: Override paddingStart/End to return
        integer values for padding as we do elsewhere in the table code.

2013-01-15  Dominic Mazzoni  <dmazzoni@google.com>

        Use-after-free in AXObjectCache::notificationPostTimerFired
        https://bugs.webkit.org/show_bug.cgi?id=106106

        Reviewed by Ryosuke Niwa.

        Fixes a crash that occurs when a Node is adopted by another document,
        in particular one that isn't part of the page, and then deleted,
        which wasn't triggering the code that removed the Node from
        AXObjectCache. Now, a Node is removed from the AXObjectCache whenever
        its Document changes.

        Test: accessibility/crash-adopt-node-from-new-document.html

        * dom/Node.cpp:
        (WebCore::Node::didMoveToNewDocument):

2013-01-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        Add Canvas blend modes to Cairo
        https://bugs.webkit.org/show_bug.cgi?id=105074

        Reviewed by Martin Robinson.

        Blend mode implementation for cairo. If BlendMode is normal, use
        CompositeOperator; otherwise, consider CompositeOperator is
        source-over.

        Add toCairoOperator(BlendMode) to translate BlendMode to matching
        cairo_operator_t. 

        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/cairo/CairoUtilities.cpp:
        (WebCore::toCairoOperator):
        * platform/graphics/cairo/CairoUtilities.h:
        (WebCore):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):

2013-01-15  Dima Gorbik  <dgorbik@apple.com>
        Implement matching by the voice attribute for WebVTT ::cue pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=106762

        Reviewed by Eric Carlson.

        Implemented matching cue WebVTT elements by a voice attribute by adding a WebVTT specific voice attribute.
        For DOM trees title attribute is used instead as this is required by specs.

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): set a title argument instead of a voice attribute for the DOM tree.
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::voiceAttributeName):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken):

2013-01-15  Simon Fraser  <simon.fraser@apple.com>

        Some ScrollingCoördinator-related cleanup in RenderLayerBacking
        https://bugs.webkit.org/show_bug.cgi?id=106950

        Reviewed by Beth Dakin.
        
        Wrap up code that gets the ScrollingCoordinator into a utility function.
        Pull code out of updateGraphicsLayerGeometry() that registers layers with
        the ScrollingCoordinator, for cleanliness.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::scrollingCoordinatorFromLayer):
        (WebCore::RenderLayerBacking::adjustTileCacheCoverage):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::registerScrollingLayers):
        (WebCore::RenderLayerBacking::attachToScrollingCoordinatorWithParent):
        (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):

2013-01-15  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=106940
        Suspend CSS animations for background tabs

        Reviewed by Simon Fraser.

        * page/Page.cpp:
        (WebCore::Page::setVisibilityState):

2013-01-15  Levi Weintraub  <leviw@chromium.org>

        Unreviewed, rolling out r139790.
        http://trac.webkit.org/changeset/139790
        https://bugs.webkit.org/show_bug.cgi?id=106948

        The patch is failing its own test.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserRemoveChild):
        (WebCore::ContainerNode::parserAppendChild):
        * html/parser/HTMLScriptRunner.cpp:
        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
        (WebCore::HTMLScriptRunner::execute):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
        (WebCore::HTMLScriptRunner::runScript):

2013-01-15  Emil A Eklund  <eae@chromium.org>

        REGRESSION (r121599): incorrect border scaling when zoomed
        https://bugs.webkit.org/show_bug.cgi?id=106944

        Reviewed by Levi Weintraub.
        
        Fix bug in ApplyPropertyComputeLength::applyValue where zooming
        of non-pixel values was incorrect.

        Test: fast/sub-pixel/zoomed-em-border.html

        * css/StyleBuilder.cpp:
        (WebCore::ApplyPropertyComputeLength::applyValue):

2013-01-15  Simon Fraser  <simon.fraser@apple.com>

        Rename RenderLayerBacking's m_containmentLayer to m_childContainmentLayer to better describe its purpose
        https://bugs.webkit.org/show_bug.cgi?id=106947

        Reviewed by Dean Jackson.
        
        Simple rename of m_containmentLayer to m_childContainmentLayer. I'll
        be adding another "container" layer for background layers shortly,
        and wanted to improve clarity.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        (WebCore::RenderLayerBacking::destroyGraphicsLayers):
        (WebCore::RenderLayerBacking::updateInternalHierarchy):
        (WebCore::RenderLayerBacking::updateClippingLayers):
        (WebCore::RenderLayerBacking::parentForSublayers):
        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
        (WebCore::RenderLayerBacking::reportMemoryUsage):
        * rendering/RenderLayerBacking.h:
        (WebCore::RenderLayerBacking::hasClippingLayer):
        (WebCore::RenderLayerBacking::clippingLayer):
        (WebCore::RenderLayerBacking::hasTileCacheFlatteningLayer):
        (WebCore::RenderLayerBacking::tileCacheFlatteningLayer):
        (RenderLayerBacking):

2013-01-15  Enrica Casucci  <enrica@apple.com>

        Add a new set of WebKit2 APIs for text search and
        search results management.
        https://bugs.webkit.org/show_bug.cgi?id=106834.
        <rdar://problem/12597159>

        Reviewed by Simon Fraser.
        
        Adding new API to perform text search in WebKit2 without using
        the stock UI. The new interface provides all the information
        necessary to write a custom UI for search.

        Added new TextWebKitAPI test.

        * WebCore.exp.in: Added new exported methods.
        * editing/Editor.cpp:
        (WebCore::Editor::countMatchesForText): Added new parameter to store
        all the ranges relative to the matches found.
        * editing/Editor.h: Modified the interface of countMatchesForText and removed
        the other definition of countMatchesForText with a different signature.
        * page/Page.cpp:
        (WebCore::Page::findStringMatchingRanges): Added.
        (WebCore::Page::markAllMatchesForText): Changed to use the new unified
        countMatchesForText.
        * page/Page.h:

2013-01-15  Alexandru Chiculita  <achicu@adobe.com>

        [Compositor] Do not disable overlap testing for layers in front of 3D transformed layers
        https://bugs.webkit.org/show_bug.cgi?id=106721

        Reviewed by Simon Fraser.

        RenderLayerCompositor is checking for overlapping layers and tries to figure out all the layers that need
        to be drawn using composited layers. It doesn't know anything about animations yet and it only works with "start"
        and "end" states. However, it knows that animations might happen, so in that cases it will avoid to do any optimizations,
        as layers might get moved.

        The overlapping layers optimization was also disabled for 3D layers. However, 3D layers can be computed in WebKit and 
        can be checked for overlap using just the "start"/"stop" states. In this patch I enable that optimization for 3D layers, too.
        The result is that more layers are drawn in software mode now, so I've updated a couple of test results.

        Tests: compositing/layer-creation/overlap-transformed-3d.html
               compositing/layer-creation/overlap-transformed-preserved-3d.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):

2013-01-15  Elliott Sprehn  <esprehn@gmail.com>

        HTML parser should queue MutationRecords for its operations
        https://bugs.webkit.org/show_bug.cgi?id=89351

        Reviewed by Eric Seidel.

        Generate mutation records inside the parser. This is done by using a
        ChildListMutationScope in the ContainerNode::parser* methods and then
        adding delivery before each <script> element would be processed by
        the parser.

        Test: fast/dom/MutationObserver/parser-mutations.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserRemoveChild):
        (WebCore::ContainerNode::parserAppendChild):
        * html/parser/HTMLScriptRunner.cpp:
        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
        (WebCore::HTMLScriptRunner::execute):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
        (WebCore::HTMLScriptRunner::runScript):

2013-01-15  Ojan Vafai  <ojan@chromium.org>

        Unreviewed, rolling out r139782.
        http://trac.webkit.org/changeset/139782
        https://bugs.webkit.org/show_bug.cgi?id=106939

        Broke preferred widths on list markers.

        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::layout):
        (WebCore::RenderListMarker::computePreferredLogicalWidths):

2013-01-15  Elliott Sprehn  <esprehn@chromium.org>

        Heap-use-after-free in WebCore::RenderObject::willBeRemovedFromTree
        https://bugs.webkit.org/show_bug.cgi?id=106384

        Reviewed by Abhishek Arya.

        Always walk up from beforeChild until the parent() is the owner of the
        child list, otherwise we can end up in situations where
        newChild->parent() == owner but newChild->nextSibling()->parent() != owner
        which is a recipe for security bugs. Previously we only walked up through
        anonymous blocks, but missed anonymous inline blocks like those generated
        by <ruby>.

        Test: fast/css-generated-content/bug-106384.html

        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::insertChildNode):

2013-01-15  Ojan Vafai  <ojan@chromium.org>

        Remove bogus assert added in http://trac.webkit.org/changeset/139772.
        * rendering/RenderBox.h:
        (WebCore::RenderBox::computePreferredLogicalWidths):

2013-01-15  Ojan Vafai  <ojan@chromium.org>

        Moving updating of margins from computePreferredLogicalWidths to layout
        https://bugs.webkit.org/show_bug.cgi?id=106939

        Reviewed by Levi Weintraub.

        The margins don't affect it's preferred width. We should update them
        during layout like we do in other classes (e.g. RenderBlock).

        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::layout):
        (WebCore::RenderListMarker::computePreferredLogicalWidths):

2013-01-15  Adam Barth  <abarth@webkit.org>

        Generalize DocumentWeakReference into WTF::WeakPtr
        https://bugs.webkit.org/show_bug.cgi?id=106854

        Reviewed by Darin Adler.

        This patch replaces DocumentWeakReference with WeakPtr. There should be
        no change in behavior.

        * dom/Document.cpp:
        (WebCore):
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        (WebCore::PerformTaskContext::PerformTaskContext):
        (PerformTaskContext):
        (WebCore::Document::didReceiveTask):
        (WebCore::Document::postTask):
        (WebCore::Document::reportMemoryUsage):
        * dom/Document.h:
        (WebCore):
        (Document):

2013-01-15  James Simonsen  <simonjam@chromium.org>

        [User Timing] INVALID_ACCESS_ERR should be thrown if measuring from a 0 Nav Timing value
        https://bugs.webkit.org/show_bug.cgi?id=106935

        Reviewed by Tony Gentilcore.

        Test: http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html

        * page/PerformanceUserTiming.cpp:
        (WebCore::UserTiming::findExistingMarkStartTime):

2013-01-15  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Rename the [add|remove]Track callbacks to [add|remove]RemoteTrack for clarity
        https://bugs.webkit.org/show_bug.cgi?id=106791

        Reviewed by Adam Barth.

        No tests needed.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::addRemoteTrack):
        (WebCore::MediaStream::removeRemoteTrack):
        * Modules/mediastream/MediaStream.h:
        * platform/mediastream/MediaStreamCenter.cpp:
        (WebCore::MediaStreamCenter::addMediaStreamTrack):
        (WebCore::MediaStreamCenter::removeMediaStreamTrack):
        * platform/mediastream/MediaStreamDescriptor.h:
        (MediaStreamDescriptorClient):

2013-01-15  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move SocketStreamHandle and SocketStreamHandleInternal to WebCore/platform
        https://bugs.webkit.org/show_bug.cgi?id=106899

        Reviewed by Adam Barth.

        Part of a larger refactoring series; see tracking bug 106829.

        * WebCore.gypi:
        * platform/network/chromium/SocketStreamHandle.cpp: Copied from Source/WebKit/chromium/src/SocketStreamHandle.cpp.
        (WebCore::SocketStreamHandleInternal::send):
        (WebCore::SocketStreamHandleInternal::didOpenStream):
        (WebCore::SocketStreamHandleInternal::didSendData):
        (WebCore::SocketStreamHandleInternal::didReceiveData):
        (WebCore::SocketStreamHandleInternal::didClose):
        (WebCore::SocketStreamHandleInternal::didFail):
        * platform/network/chromium/SocketStreamHandleInternal.h: Copied from Source/WebKit/chromium/src/SocketStreamHandleInternal.h.

2013-01-15  Ojan Vafai  <ojan@chromium.org>

        RenderText::computePreferredLogicalWidths does not need to be public
        https://bugs.webkit.org/show_bug.cgi?id=106934

        Reviewed by Levi Weintraub.

        * rendering/RenderCounter.h:
        Add OVERRIDE keyword.
        * rendering/RenderText.h:
        Make protected.

2013-01-15  Ojan Vafai  <ojan@chromium.org>

        Cleanup visibility of some computePreferredLogicalWidths calls
        https://bugs.webkit.org/show_bug.cgi?id=106933

        Reviewed by Levi Weintraub.

        No need for these to be public.

        * rendering/RenderBox.h:
        (WebCore::RenderBox::computePreferredLogicalWidths):
        This should never get called in practice. Add an assert to that effect.

        * rendering/RenderGrid.h:
        (RenderGrid):
        * rendering/RenderReplica.h:
        (RenderReplica):
        * rendering/RenderScrollbarPart.h:
        (RenderScrollbarPart):

2013-01-13  Dirk Schulze  <dschulze@adobe.com>

        [CSS Filters] brightness() function doesn't work as specified
        https://bugs.webkit.org/show_bug.cgi?id=106674

        Reviewed by Dean Jackson.

        The brightness filter implementation modified the intercept instead of the slope on
        the feComponentTransfer function. The passed amount acts as multiplier for each
        color chanel now.

        Existing tests cover the changes and were updated.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBuiltinFilterArguments):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::setFilters):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build):

2013-01-15  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Enable Performance Timeline, Resource Timing, Navigation Timing features
        https://bugs.webkit.org/show_bug.cgi?id=106197

        Reviewed by Martin Robinson.

        No new tests - existing layout tests are being unskipped, only a few fail
        (but their failures are of cross-platform nature).

        * GNUmakefile.features.am.in: Add feature defines for all three features.
        They are disabled by default for now.
        * GNUmakefile.list.am: Add missing build targets.
        * bindings/gobject/GNUmakefile.am: Ditto.
        * bindings/js/JSPerformanceEntryCustom.cpp: Added the necessary custom bindings.
        Mimics the custom V8 bindings.
        (WebCore):
        (WebCore::toJS):

2013-01-15  Alexis Menard  <alexis@webkit.org>

        Unprefixed transitionend event doesn't seem to be implemented, which breaks many sites
        https://bugs.webkit.org/show_bug.cgi?id=105647

        Reviewed by Julien Chaffraix.

        Add support for transitionend event delivery as part as the unprefixing
        work on CSS Transitions. This patch adds some code in EventTarget to
        figure out if the current event to dispatch has a prefixed version or
        not. Then from the list of listeners we deduce which event should be delivered
        (prefixed or unprefixed).

        In the case of the CSS Transitions, WebKit will now behave as follow :
        if an event listener is attached to the prefixed version of the
        transition end event then only the prefixed event will be send.
        If an event listener is attached to the unprefixed version
        of the transition end event then only the unprefixed event will be
        send. If there are event listeners on both unprefixed and prefixed
        events then only the unprefixed event will be send.

        The behavior was discussed here :
        http://lists.webkit.org/pipermail/webkit-dev/2013-January/023301.html.

        Tests: transitions/transition-end-event-unprefixed-01.html
               transitions/transition-end-event-unprefixed-02.html

        * dom/Document.cpp:
        (WebCore::Document::addListenerTypeIfNeeded): Register the prefixed
        listener too as transitionend listeners so that we properly dispatch
        events for them.
        * dom/EventNames.h:
        (WebCore): Add the new transitionend name.
        * dom/EventTarget.cpp:
        (WebCore::createMatchingPrefixedEvent):
        (WebCore::prefixedType):
        (WebCore::EventTarget::fireEventListeners): Find out if somebody is
        listening for unprefixed events, if so we always send the unprefixed
        event, if not then we create a prefixed event and send it.
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::sendTransitionEvent): Always create by
        default unprefixed events.

2013-01-15  Tony Gentilcore  <tonyg@chromium.org>

        Make AtomicMarkupTokenBase use a bare UChar* for external characters
        https://bugs.webkit.org/show_bug.cgi?id=106919

        Reviewed by Eric Seidel.

        This allows an arbitrary backing for external characters which is necessary for the threaded HTML parser.

        No new tests because no new functionality.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
        * xml/parser/MarkupTokenBase.h:
        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
        (WebCore::AtomicMarkupTokenBase::characters):
        (AtomicMarkupTokenBase):
        (WebCore::AtomicMarkupTokenBase::charactersLength):
        (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
        * xml/parser/XMLTreeBuilder.cpp:
        (WebCore::XMLTreeBuilder::processCharacter):

2013-01-15  Arko Saha  <arko@motorola.com>

        Microdata: propertiesCollection[name] should return undefined if item doesn't have a property named 'name'
        https://bugs.webkit.org/show_bug.cgi?id=106849

        Reviewed by Kentaro Hara.

        We should return undefined if hasNamedItem() is false.

        Test: fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html

        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::V8HTMLCollection::namedPropertyGetter):

2013-01-15  Michael Pruett  <michael@68k.org>

        [GTK] Fix build after r139665
        https://bugs.webkit.org/show_bug.cgi?id=106917

        Reviewed by Dean Jackson.

        * GNUmakefile.list.am:

2013-01-15  Antti Koivisto  <antti@apple.com>

        Move parent pointer from TreeShared to subclass
        https://bugs.webkit.org/show_bug.cgi?id=106910

        Reviewed by Darin Adler.

        This simplifies both TreeShared and clients, and makes code dealing with parents more understandable in general.

        * dom/Document.h:
        (WebCore::Node::Node):
        * dom/Node.cpp:
        (WebCore::Node::reportMemoryUsage):
        * dom/Node.h:
    
            Add m_parentOrHostNode variable (matching the accessor names).

        (Node):
        (WebCore::Node::hasTreeSharedParent):
        (WebCore::Node::parentNode):
        (WebCore::Node::setParentOrHostNode):
        (WebCore::Node::parentOrHostNode):
        * platform/TreeShared.h:
        (WebCore):
        (WebCore::TreeShared::TreeShared):
        (WebCore::TreeShared::deref):
        
            Call subclass hasTreeSharedParent() to figure out if it is time to delete.

        (TreeShared):

            Remove parent pointer and accessors.
            Remove ParentNodeType template parameter.
            Remove now unnecessay reportMemoryUsage().

        (WebCore::adopted):
        * svg/SVGElementInstance.cpp:
        (WebCore::SVGElementInstance::SVGElementInstance):
        * svg/SVGElementInstance.h:
        
            Add m_parentInstance variable.

        (WebCore::SVGElementInstance::setParentOrHostNode):
        (WebCore::SVGElementInstance::parentNode):
        (SVGElementInstance):
        (WebCore::SVGElementInstance::hasTreeSharedParent):

2013-01-15  Simon Fraser  <simon.fraser@apple.com>

        Allow tiled WKViews to have transparent backgrounds
        https://bugs.webkit.org/show_bug.cgi?id=106400

        Reviewed by Anders Carlsson.
        
        When WKViews were set to have transparent backgrounds, they still
        obscured content behind the view, for several reasons.
        
        First, when in tiled scrolling mode, WKView set the background
        of its layer to opaque white. Fix by using the clearColor (effectively
        removing the background color) if the view has a non-opaque background.
        
        Second, RenderLayerBacking just looked at FrameViews's isTransparent()
        when deciding to make TileCache tiles non-opaque, but it also needs to
        consider FrameViews with a non-opaque base background color. The
        same logic was necessary to avoid setting an opaque white background
        color on the TileCache layer.
        
        Finally, for views with non-opaque backgrounds, we don't want to display
        linen, so RenderLayerCompositor::requiresOverhangAreasLayer() was changed
        to return false in that case.
        
        View transparency is not testable in layout tests.

        * page/FrameView.cpp:
        (WebCore::FrameView::hasOpaqueBackground):
        * page/FrameView.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        (WebCore::RenderLayerBacking::updateBackgroundColor):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):

2013-01-15  Ojan Vafai  <ojan@chromium.org>

        RenderView does not need to override computePreferredLogicalWidth
        https://bugs.webkit.org/show_bug.cgi?id=106852

        Reviewed by Levi Weintraub.

        Calling minPreferredLogicalWidth calls computePreferredLogicalWidth,
        which happens a few lines later in layoutWithFlattening. No need
        to call it explicitly.

        * rendering/RenderFrameBase.cpp:
        (WebCore::RenderFrameBase::layoutWithFlattening):
        * rendering/RenderView.cpp:
        * rendering/RenderView.h:

2013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed, remove file that was accidentally added to the wrong patch.

        * inspector/front-end/FileSystemWorkspaceProvider.js: Removed.

2013-01-15  Florin Malita  <fmalita@chromium.org>

        [Chromium] Incorrect opaque region tracking for PlatformContextSkia::drawRRect
        https://bugs.webkit.org/show_bug.cgi?id=106898

        Reviewed by Stephen White.

        Since drawRRect() doesn't cover the whole bounding rect, it needs to pass a didDrawBounded
        notification down to the opaque region tracker (instead of didDrawRect as it currently
        does).

        Test: platform/chromium/compositing/rounded-corners.html

        * platform/graphics/skia/PlatformContextSkia.h:
        (WebCore::PlatformContextSkia::drawRRect):

2013-01-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] WebGL does not require accelerated compositing
        https://bugs.webkit.org/show_bug.cgi?id=106892

        Reviewed by Jocelyn Turcotte.

        Allow the creation of WebGL canvas even when accelerated compositing is not enabled.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::getContext):

2013-01-15  Andrey Lushnikov  <lushnikov@chromium.org>

        Web Inspector: refactor DefaultTextEditor's paintLine method
        https://bugs.webkit.org/show_bug.cgi?id=106893

        Reviewed by Pavel Feldman.

        Move render ranges functionality out of paintLine method into separate subroutine.

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._renderRanges): Added.
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):

2013-01-15  Elliott Sprehn  <esprehn@gmail.com>

        display:inline's hover behavior is not applied to ::before and ::after pseudo elements
        https://bugs.webkit.org/show_bug.cgi?id=91723

        Reviewed by Eric Seidel.

        When hovering over the anonymous text renderers inside :before and :after
        we would correctly detect a hit in InlineTextBox::nodeAtPoint, but would
        then fail to set the correct node for the hit test because in
        RenderObject::updateHitTestResult node() is null. Instead we should walk
        up the render tree to the PseudoElement and treat it as if we hit that.

        Test: fast/css-generated-content/hover-inline.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::updateHitTestResult):

2013-01-15  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurface: Canvas with WebGL content is painted off by one pixel
        https://bugs.webkit.org/show_bug.cgi?id=106446

        When painting to TextureMapper the provided targetRect is in contents
        coordinate system. This leads to an off by one pixel error when painting
        outlines of 1px.
        This needs to be taken into account in the transformation matrix
        and in the TextureMapperGL::drawTexture call.

        Test: fast/canvas/webgl/webgl-composite-modes.html

        Reviewed by Noam Rosenthal.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in SerializedScriptValue methods
        https://bugs.webkit.org/show_bug.cgi?id=106800

        Reviewed by Adam Barth.

        SerializedScriptValue methods are used by both V8 bindings
        and WebCore. So they should support both an Isolate-version
        method and an non-Isolate version method.

        There are two ways to accomplish that:

        [1] Use an optional Isolate parameter.

        [2] Implement two versions and delegate the non-Isolate
        version method to the Isolate version method.

        I would prefer the approach [2], because I'd like to statically
        make sure that we never pass a 0 Isolate. If we take the approach
        [1], we need to insert ASSERT(isolate) here and there.

        This patch implements the approach [2].

        No tests. No change in behavior.

        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::create):
        (WebCore):
        (WebCore::SerializedScriptValue::nullValue):
        (WebCore::SerializedScriptValue::undefinedValue):
        (WebCore::SerializedScriptValue::booleanValue):
        (WebCore::SerializedScriptValue::numberValue):
        (WebCore::SerializedScriptValue::SerializedScriptValue):
        * bindings/v8/SerializedScriptValue.h:
        (SerializedScriptValue):

2013-01-15  Dongwoo Joshua Im  <dw.im@samsung.com>

        [CSS] Rename the enum, from "ETextAlignLast" to "TextAlignLast"
        https://bugs.webkit.org/show_bug.cgi?id=106887

        Reviewed by Alexis Menard.

        No new tests are added since there is no behavior changes.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator TextAlignLast):
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData):

2013-01-15  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Fixing crashing bug in MediaStream
        https://bugs.webkit.org/show_bug.cgi?id=106886

        Reviewed by Eric Seidel.

        Fixing crashing bug during destruction.

        No new tests needed.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::contextDestroyed):

2013-01-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt][CSS Shaders] Make custom filter render in Wk1 mode
        https://bugs.webkit.org/show_bug.cgi?id=101532

        Reviewed by Noam Rosenthal.

        Handle ValidatedCustomFilterOperations which are used by WebKit1. To keep the cache of compiled programs working, 
        the cache has been updated to use CustomFilterProgramInfo as a hash key. CustomFilterProgramInfo is an existing
        class specifically designed for this purpose.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::getPassesRequiredForFilter):
        (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
        (WebCore::TextureMapperGL::drawUsingCustomFilter):
        (WebCore::BitmapTextureGL::applyFilters):
        * platform/graphics/texmap/TextureMapperGL.h:
        (TextureMapperGL):

2013-01-15  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] introduce CallArgument type into the protocol
        https://bugs.webkit.org/show_bug.cgi?id=106640

        Reviewed by Yury Semikhatsky.

        CallArgument type abstraction to describe arguments of a canvas context call.
        Drive-by: Introduce a CanvasContext to fix the wrong contextId value in the protocol.
        The contextId should point to the Resource that represents a context (2D or 3D canvas).

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/front-end/CanvasProfileView.js:

2012-12-28  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Support inspector file system access with isolated file system through InspectorFrontendHost.
        https://bugs.webkit.org/show_bug.cgi?id=105727

        Reviewed by Pavel Feldman.

        File system access through isolated file system is implemented in inspector.
        File system access requests are sent through InspectorFrontendHost.
        Introduced IsolatedFileSystemModel encapsulating file system access logic. 
        Introduced FileSystemMapping that provides mapping between workspace uris and file system pathes.
        DOMFileSystem.createIsolatedFileSystem modified to accept optional registeredName parameter.

        * Modules/filesystem/DOMFileSystem.cpp:
        (WebCore::DOMFileSystem::createIsolatedFileSystem):
        * Modules/filesystem/DOMFileSystem.h:
        (DOMFileSystem):
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/InspectorFrontendClient.h:
        (InspectorFrontendClient):
        * inspector/InspectorFrontendClientLocal.h:
        (WebCore::InspectorFrontendClientLocal::supportsFileSystems):
        (WebCore::InspectorFrontendClientLocal::requestFileSystems):
        (WebCore::InspectorFrontendClientLocal::addFileSystem):
        (WebCore::InspectorFrontendClientLocal::removeFileSystem):
        (InspectorFrontendClientLocal):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::supportsFileSystems):
        (WebCore):
        (WebCore::InspectorFrontendHost::requestFileSystems):
        (WebCore::InspectorFrontendHost::addFileSystem):
        (WebCore::InspectorFrontendHost::removeFileSystem):
        (WebCore::InspectorFrontendHost::isolatedFileSystem):
        * inspector/InspectorFrontendHost.h:
        (WebCore):
        (InspectorFrontendHost):
        * inspector/InspectorFrontendHost.idl:
        * inspector/compile-front-end.py:
        * inspector/front-end/FileSystemMapping.js: Added.
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.fileSystemsLoaded):
        (InspectorFrontendAPI.fileSystemRemoved):
        (InspectorFrontendAPI.fileSystemAdded):
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.supportsFileSystems):
        (.WebInspector.InspectorFrontendHostStub.prototype.requestFileSystems):
        (.WebInspector.InspectorFrontendHostStub.prototype.addFileSystem):
        (.WebInspector.InspectorFrontendHostStub.prototype.removeFileSystem):
        (.WebInspector.InspectorFrontendHostStub.prototype.isolatedFileSystem):
        * inspector/front-end/IsolatedFileSystemModel.js: Added.
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/externs.js:
        (DOMFileSystem):
        (InspectorFrontendHostAPI.prototype.supportsFileSystems):
        (InspectorFrontendHostAPI.prototype.requestFileSystems):
        (InspectorFrontendHostAPI.prototype.addFileSystem):
        (InspectorFrontendHostAPI.prototype.removeFileSystem):
        (InspectorFrontendHostAPI.prototype.isolatedFileSystem):
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2013-01-15  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Add error handling to carefully manage Window backing pixmaps.
        https://bugs.webkit.org/show_bug.cgi?id=106582

        Reviewed by Kenneth Rohde Christiansen.

        We use XCompositeNameWindowPixmap to create a pixmap that serves as a reference to
        the off-screen storage for a Window Handle. We expect the Window to be valid and
        the created glx pixmap to be a valid drawable. This may not be true always.
        This patch adds support for X Error checks and handles the generated errors.

        Covered by existing WebGL layout tests.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore):
        (WebCore::handleXPixmapCreationError):
        (ScopedXPixmapCreationErrorHandler):
        (WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
        (WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
        (WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
        Helper Class to catch XErrors.

        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createPixmap): Added support to check and handle generated XErrors.
        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
        (WebCore::GraphicsSurfacePrivate::clear): Destroys GL Resources.
        (GraphicsSurfacePrivate):

2013-01-15  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] [WebGL] Minor cleanup in PlatformContext.
        https://bugs.webkit.org/show_bug.cgi?id=106758

        Reviewed by Kenneth Rohde Christiansen.

        We currently have different implementations of CurrentContextWrapper for EGL and GLX.
        This patch cleans up the code to use same implementation for both the backends.

        * platform/graphics/opengl/GLPlatformContext.cpp:
        (GLCurrentContextWrapper):
        (WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
        (WebCore::GLCurrentContextWrapper::~GLCurrentContextWrapper):

        Common implementation for both EGL and GLX.
        (WebCore::createOffScreenContext):
        (WebCore::GLPlatformContext::createContext):
        * platform/graphics/surfaces/egl/EGLContext.cpp:
        * platform/graphics/surfaces/egl/EGLContext.h:
        * platform/graphics/surfaces/glx/GLXContext.h:

        Removed code related to CurrentContextWrapper.

2013-01-14  Ryosuke Niwa  <rniwa@webkit.org>

        platform/mac/accessibility/progressbar.html fails on Mac WK1 and WK2
        https://bugs.webkit.org/show_bug.cgi?id=106850

        Reviewed by Chris Fleizach.

        The bug was caused by some callers of supportsFocus directly calling that of Node.
        Fixed the bug by calling HTMLElement's so that the virtual function on Element gets
        called as needed.

        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::supportsFocus):
        * html/HTMLOutputElement.cpp:
        (WebCore::HTMLOutputElement::supportsFocus):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::supportsFocus):

2013-01-14  Dima Gorbik  <dgorbik@apple.com>

        Implement ID selector matching for the WebVTT ::cue pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=105481

        Reviewed by Eric Carlson.

        Implemented matching cue WebVTT elements by an identifier. Identifiers of all WebVTT nodes in the rendering tree for 
        a given cue are set to match the cue identifier.

        Existing tests were modified to cover this case.

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::markFutureAndPastNodes):

2013-01-14  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Use explicit WebKit prefixes in BlobRegistryProxy
        https://bugs.webkit.org/show_bug.cgi?id=106859

        Reviewed by Adam Barth.

        As requested in https://bugs.webkit.org/show_bug.cgi?id=106831#c2

        * platform/network/chromium/BlobRegistryProxy.cpp:
        (WebCore::BlobRegistryProxy::registerBlobURL):

2013-01-14  Max Vujovic  <mvujovic@adobe.com>

        [ANGLE] Update ANGLE in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=106274

        Unreviewed build fix for GTK after http://trac.webkit.org/changeset/139702

        * GNUmakefile.am:

2013-01-14  Dean Jackson  <dino@apple.com>

        Yet another unreviewed attempted QT build fix, this time because
        it's falling over on Filters.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore):
        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):

2013-01-14  Dean Jackson  <dino@apple.com>

        Unreviewed EFL build fix.

        * CMakeLists.txt:

2013-01-14  Dean Jackson  <dino@apple.com>

        Blur the label background of a snapshotted plugin
        https://bugs.webkit.org/show_bug.cgi?id=106630

        Reviewed by Simon Fraser.

        When we are showing a label indicating the plugin has been snapshotted,
        slightly blur the snapshot behind the label so that it is more clear. I expect
        that if/when other ports pick up this code, we'll need to separate the
        UI treatment somewhat, but this is ok for a first step.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (RenderSnapshottedPlugInBlurFilter): Private class to use FEGaussianBlur to blur an image.
        (WebCore::RenderSnapshottedPlugInBlurFilter::create):
        (WebCore::RenderSnapshottedPlugInBlurFilter::setSourceImageRect):
        (WebCore::RenderSnapshottedPlugInBlurFilter::sourceImageRect):
        (WebCore::RenderSnapshottedPlugInBlurFilter::filterRegion):
        (WebCore::RenderSnapshottedPlugInBlurFilter::output):
        (WebCore::RenderSnapshottedPlugInBlurFilter::RenderSnapshottedPlugInBlurFilter):
        (WebCore::RenderSnapshottedPlugInBlurFilter::apply):
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New member variable to hold a cached version of a preblurred snapshot.
        (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Remember to remove the preblurred image from the cache.
        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Zero the preblurred version if it exists.
        (WebCore::RenderSnapshottedPlugIn::paintReplaced): Either paint snapshot or blurred snapshot with label.
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): New method to paint a full sized snapshot.
        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
        (WebCore::snapshottedPluginImageForLabelDisplay): Static function to produce the blurred snapshot.
        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel): Calls paintSnapshot with the blurred snapshot on Mac.
        * rendering/RenderSnapshottedPlugIn.h:

2013-01-14  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move BlobRegistryProxy into WebCore
        https://bugs.webkit.org/show_bug.cgi?id=106831

        Reviewed by Adam Barth.

        Part of a larger refactoring series to remove layering violations
        in Chromium. See tracking bug 106829.

        * WebCore.gypi:
        * platform/network/chromium/BlobRegistryProxy.cpp: Added.
        (WebCore):
        (WebCore::blobRegistry):
        (WebCore::BlobRegistryProxy::BlobRegistryProxy):
        (WebCore::BlobRegistryProxy::registerBlobURL):
        (WebCore::BlobRegistryProxy::unregisterBlobURL):
        * platform/network/chromium/BlobRegistryProxy.h: Added.
        (WebCore):
        (BlobRegistryProxy):
        (WebCore::BlobRegistryProxy::loadResourceSynchronously):
        (WebCore::BlobRegistryProxy::~BlobRegistryProxy):

2013-01-14  Levi Weintraub  <leviw@chromium.org>

        Rolling out r139618. Appears to be causing sporadic crashes on Debug bots.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::processTrack):
        * Modules/mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::readyState):
        * Modules/mediastream/MediaStreamTrack.h:
        * Modules/mediastream/MediaStreamTrack.idl:

2013-01-14  Levi Weintraub  <leviw@chromium.org>

        Rolling out r139678. This triggered a number of WebAudio crashes on Debug bots.

        * platform/audio/chromium/AudioDestinationChromium.cpp:
        (WebCore::AudioDestinationChromium::AudioDestinationChromium):

2013-01-09  Levi Weintraub <leviw@chromium.org>

        Rolling out r139683. It broke a bunch of webkit_unit_tests.

2013-01-14  Ojan Vafai  <ojan@chromium.org>

        RenderListItem does not need to override computePreferredLogicalWidth
        https://bugs.webkit.org/show_bug.cgi?id=106839

        Reviewed by Levi Weintraub.

        Apparently there was a time when the list marker was considered part of
        the list item's preferred width, but that is no longer the case.
        This code was added in r3421. The code around preferred widths has change
        a lot since then.

        * rendering/RenderListItem.cpp:
        * rendering/RenderListItem.h:

2013-01-13  Dima Gorbik  <dgorbik@apple.com>

        Implement element type selectors for the WebVTT ::cue pseudo class
        https://bugs.webkit.org/show_bug.cgi?id=105480

        Reviewed by Antti Koivisto.

        Implemented tag matching for the WebVTT specific tags "c" and "v". All common html tags like "b" and "i" are 
        handled without any changes to the code. Creating a rendering tree and DOM tree now use different code paths. 
        They both are made by cloning and modifying the tree produced by the parser. Voice tags now use spans for both 
        rendering and DOM trees to conform to specs. Since this changes a lot of code little refactoring has been
        done. Removed m_hasInnerTimestamps since it is no longer needed, it doesn't affect anything. m_documentFragment 
        was renamed to m_webVTTNodeTree.

        Existing tests were modified to cover this case.

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::TextTrackCue):
        (WebCore::TextTrackCue::setText): rename m_documentFragment to m_webVTTNodeTree
        (WebCore::TextTrackCue::createWebVTTNodeTree): parse the cue if it hasn't been parsed before.
        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): clone and prepare a node for using in the DOM tree according to specs.
        (WebCore::TextTrackCue::getCueAsHTML): get a DOM tree for the cue.
        (WebCore::TextTrackCue::createCueRenderingTree): create a rendering tree (main tree is just being cloned for now).
        (WebCore::TextTrackCue::markFutureAndPastNodes): tightening the argument type.
        (WebCore::TextTrackCue::updateDisplayTree):
        (WebCore::TextTrackCue::getDisplayTree): code cleanup, removed m_hasInnerTimeStamps.
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::voiceElementTagName):
        (TextTrackCue):
        (WebCore::TextTrackCue::classElementTagName):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken): type of the newly created elements was changed to Element to avoid hitting 
        an assertion when cloning because a cloned element will not have HTMLElement type for elements with "v" and "c" tag.

2013-01-14  Xianzhu Wang  <wangxianzhu@chromium.org>

        Sometimes RenderLayer::updateNeedsCompositedScrolling is not called
        https://bugs.webkit.org/show_bug.cgi?id=106271

        Reviewed by Simon Fraser.

        1. If a layer has no out-of-flow descendant, m_hasOutOfFlowPositionedDescendant won't change and won't trigger updateNeedsCompositedScrolling in updateDescendantDependentFlags. Set m_hasOutOfFlowPositionedDescendantDirty to true and call updateNeedsCompositedScrolling when the dirty flag becomes false from true.
        2. When the content size changes causing change of scrollable status, updateNeedsCompositedScrolling should also be called.

        Test: compositing/overflow/dynamic-composited-scrolling-status.html

        * page/FrameView.cpp:
        (WebCore::FrameView::addScrollableArea): Returns whether the scrollable area has just been newly added.
        (WebCore::FrameView::removeScrollableArea): Returns whether the scrollable area has just been removed.
        * page/FrameView.h:
        (FrameView):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer): Changed the initial value of m_hasOutOfFlowPositionedDescendantDirty to true to make sure m_hasOutOfFlowPositionedDescendant will be updated initially.
        (WebCore::RenderLayer::updateDescendantDependentFlags): Call updateNeedsCompositedScrolling when m_hasOutOfFlowPositionedDescendantDirty is true.
        (RenderLayer::updateScrollableAreaSet): Calls updateNeedsCompositedScrolling() when scrollable status changes.
        * rendering/RenderLayer.h:
        (RenderLayer):

2013-01-14  Ryosuke Niwa  <rniwa@webkit.org>

        EFL build fix after r139681.

        * dom/NodeRareData.h:
        (WebCore::NodeMicroDataTokenLists::NodeMicroDataTokenLists):

2013-01-14  Tien-Ren Chen  <trchen@chromium.org>

        Correct FrameView::scrollableAreaBoundingBox() calculation in the presence of transforms
        https://bugs.webkit.org/show_bug.cgi?id=105075

        Reviewed by Simon Fraser.

        As mentioned by the FIXME comment, we need to ask the renderer for the
        absolute bounding box of a frame for correct transformation.
        This fixes the bug that iframe cannot be scrolled properly when it is
        transformed.

        Tests: scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html
               scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollableAreaBoundingBox):

2013-01-14  Nate Chapin  <japhet@chromium.org>

        Enable reuse of cached main resources
        https://bugs.webkit.org/show_bug.cgi?id=105667

        Reviewed by Antti Koivisto.

        Test: http/tests/cache/cached-main-resource.html

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
        * dom/Document.h:
        (Document):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
            MainResourceLoader will take care of it.
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
        (WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
        (WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
            ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
        (WebCore::MainResourceLoader::identifier):
        * loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
            to better describe when it is used.
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
        (WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
        (WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
        * loader/cache/CachedRawResource.h:
        (CachedRawResource):
        (RedirectPair):
        (WebCore::CachedRawResource::RedirectPair::RedirectPair):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addClientToSet):: Don't return cached data for a main resource synchronously
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::canReuse):
        (CachedResource):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
        * testing/Internals.cpp:
        (WebCore::Internals::isLoadingFromMemoryCache):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-01-11  Ryosuke Niwa  <rniwa@webkit.org>

        Move functions from NodeRareData to ElementRareData and other classes
        https://bugs.webkit.org/show_bug.cgi?id=106679

        Reviewed by Benjamin Poulain.

        Moved tab index related functions from NodeRareData to ElementRareData since only
        HTMLElement uses them, and moved related functions on Node to Element accordingly.

        Also replaced transientMutationObserverRegistry and ensureTransientMutationObserverRegistry
        by ensureMutationObserverData, and moved micro-data related member functions into
        NodeMicroDataTokenLists, and moved NodeMutationObserverData and NodeMicroDataTokenLists
        out of NodeRareData as they're used outside of NodeRareData now.

        The intention is to move more code into NodeMutationObserverData and NodeMicroDataTokenLists
        in the follow up patches so that they can detect the removability of NodeRareData.

        No new tests are added since there should be no behavior changes.

        * dom/Element.cpp:
        (WebCore::Element::clearTabIndexExplicitlyIfNeeded):
        (WebCore::Element::setTabIndexExplicitly):
        (WebCore::Element::tabIndex):
        (WebCore::Element::supportsFocus):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::tabIndex):
        (WebCore::ElementRareData::setTabIndexExplicitly):
        (WebCore::ElementRareData::tabIndexSetExplicitly):
        (WebCore::ElementRareData::clearTabIndexExplicitly):
        * dom/Node.cpp:
        (WebCore::Node::tabIndex):
        (WebCore::Node::supportsFocus):
        (WebCore::Node::mutationObserverRegistry):
        (WebCore::Node::transientMutationObserverRegistry):
        (WebCore::Node::registerMutationObserver):
        (WebCore::Node::registerTransientMutationObserver):
        (WebCore::Node::itemProp):
        (WebCore::Node::setItemProp):
        (WebCore::Node::itemRef):
        (WebCore::Node::setItemRef):
        (WebCore::Node::itemType):
        (WebCore::Node::setItemType):
        * dom/Node.h:
        (Node):
        * dom/NodeRareData.h:
        (NodeMutationObserverData):
        (WebCore::NodeMutationObserverData::create):
        (NodeMicroDataTokenLists):
        (WebCore::NodeMicroDataTokenLists::create):
        (WebCore::NodeMicroDataTokenLists::itemProp):
        (WebCore::NodeMicroDataTokenLists::itemRef):
        (WebCore::NodeMicroDataTokenLists::itemType):
        (NodeRareData):
        (WebCore::NodeRareData::mutationObserverData):
        (WebCore::NodeRareData::ensureMutationObserverData):
        (WebCore::NodeRareData::ensureMicroDataTokenLists):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseAttribute):

2013-01-14  Ojan Vafai  <ojan@chromium.org>

        Remove unnecessary setNeedsLayoutAndPrefWidthsRecalc from RenderTable
        https://bugs.webkit.org/show_bug.cgi?id=106832

        Reviewed by Levi Weintraub.

        These are both called from locations that either set these bits themselves
        or clearly don't need these bits set (e.g. computePreferredLogicalWidths).

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::splitColumn):
        (WebCore::RenderTable::appendColumn):

2013-01-14  Chris Rogers  <crogers@google.com>

        Switch AudioDestinationChromium over to new createAudioDevice() method
        https://bugs.webkit.org/show_bug.cgi?id=106816

        Reviewed by James Robinson.

        * platform/audio/chromium/AudioDestinationChromium.cpp:
        (WebCore::AudioDestinationChromium::AudioDestinationChromium):

2013-01-14  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Use a premuliplied color in TextureMapperGL.
        https://bugs.webkit.org/show_bug.cgi?id=105786

        Reviewed by Noam Rosenthal.

        TextureMapperGL always uses a premultiplied color, so we must convert
        an unmultiplied color to a premultiplied color before setting the uniform value of
        colorLocation.

        Test: compositing/background-color/background-color-alpha-with-opacity.html

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawBorder):
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore::prepareFilterProgram):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::blendWithOpacity):
        (WebCore):
        (WebCore::TextureMapperLayer::paintSelf):
            TextureMapperLayer must not convert solidColor to premultiplied
            color, because TextureMapperImageBuffer expects unmultiplied color.

2013-01-14  Arko Saha  <arko@motorola.com>

        Microdata: REGRESSION(r138725): Causes crash in chromium port
        https://bugs.webkit.org/show_bug.cgi?id=106828

        Reviewed by Ryosuke Niwa.

        We should hold PropertyNodeList in RefPtr<PropertyNodeList>.

        Test: fast/dom/MicroData/propertiescollection-crash.html

        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::V8HTMLCollection::namedPropertyGetter):

2013-01-14  Tien-Ren Chen  <trchen@chromium.org>

        Positioned children of an overflow:visible container should ignore scroll offset when updating layer position
        https://bugs.webkit.org/show_bug.cgi?id=106814

        Reviewed by Simon Fraser.

        This patch fixes a bug in RenderLayer::updateLayerPosition that
        scrollLeft / scrollTop of a block should only be effective when the
        block has overflow clipping. The bug results in rendering artifacts
        and triggers a RenderGeometryMap assertion falure.

        Fixes http://crbug.com/167985

        Test: fast/overflow/overflow-visible-should-ignore-scroll.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPosition):

2013-01-14  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Remove IDBObjectStore/IndexBackendImpl and support functions
        https://bugs.webkit.org/show_bug.cgi?id=106605

        Remove all uses of IDBObjectStoreBackendInterface and IDBIndexBackend*,
        as they are no longer used after recent refactoring.

        Reviewed by Darin Fisher.

        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBCallbacks.h:
        (WebCore):
        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::update):
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (WebCore):
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBFactoryBackendImpl.h:
        (IDBFactoryBackendImpl):
        * Modules/indexeddb/IDBFactoryBackendInterface.h:
        (IDBFactoryBackendInterface):
        * Modules/indexeddb/IDBIndex.cpp:
        * Modules/indexeddb/IDBIndexBackendInterface.h: Removed.
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::add):
        (WebCore::IDBObjectStore::put):
        * Modules/indexeddb/IDBObjectStore.h:
        (IDBObjectStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
        (IndexWriter):
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Removed.
        * Modules/indexeddb/IDBTransaction.cpp:
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:
        (WebCore):
        * Modules/indexeddb/IDBTransactionCoordinator.cpp:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2013-01-14  Max Vujovic  <mvujovic@adobe.com>

        [ANGLE] Update ANGLE in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=106274

        Reviewed by Dean Jackson.

        Update ANGLE to r1641.

        Update the files used in the EFL and GTK builds.

        No new tests. No change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:

2013-01-14  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
        https://bugs.webkit.org/show_bug.cgi?id=105861

        Reviewed by David Hyatt.

        Test: fast/repaint/overhanging-float-detach-repaint.html

        The issue comes from overhanging float not contributing to their containing block's
        overflow. This meant that repaint() would ignore them leading to an under-repaint.
        The fix is simple: force all the overhanging floats to repaint themselves.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):

2013-01-14  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Need to implement ColorWellRole
        https://bugs.webkit.org/show_bug.cgi?id=106756

        Reviewed by Chris Fleizach.

        Maps input type=color to the accessible role ColorWellRole.
        Adds a new accessor to AccessibilityObject to get the color
        value in a cross-platform way that doesn't require parsing.

        Test: accessibility/color-well.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
        (WebCore::AccessibilityNodeObject::colorValue):
        (WebCore):
        * accessibility/AccessibilityNodeObject.h:
        (AccessibilityNodeObject):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::isColorWell):
        (AccessibilityObject):
        (WebCore::AccessibilityObject::colorValue):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::stringValue):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
        * html/HTMLInputElement.cpp:
        (WebCore):
        (WebCore::HTMLInputElement::isColorControl):
        * html/HTMLInputElement.h:
        (HTMLInputElement):

2013-01-11  Emil A Eklund  <eae@chromium.org>

        offsetWidth/height incorrect for images when zoomed
        https://bugs.webkit.org/show_bug.cgi?id=106624

        Reviewed by Levi Weintraub.
        
        offsetWidth and height are incorrect for images at certain zoom
        levels due to flooring the values ones adjusted for zoom.
        By rounding the value instead we avoid the problem and return
        the right size.

        Test: fast/images/zoomed-offset-size.html

        * dom/Element.cpp:
        (WebCore::Element::offsetWidth):
        (WebCore::Element::offsetHeight):
        (WebCore::Element::clientWidth):
        (WebCore::Element::clientHeight):
        Change to round (as opposed to floor) the zoom adjusted value.
        
        * rendering/RenderObject.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):
        * rendering/style/RenderStyle.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):
        Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
        conversion.

2013-01-14  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move AudioDestinationChromium into WebCore
        https://bugs.webkit.org/show_bug.cgi?id=106803

        Reviewed by Adam Barth.

        This doesn't really belong in WebKit/chromium/src since it defines
        things directly in the WebCore namespace.

        * WebCore.gypi:
        * platform/audio/chromium/AudioDestinationChromium.cpp: Added.
        (WebCore):
        (WebCore::AudioDestination::create):
        (WebCore::AudioDestinationChromium::AudioDestinationChromium):
        (WebCore::AudioDestinationChromium::~AudioDestinationChromium):
        (WebCore::AudioDestinationChromium::start):
        (WebCore::AudioDestinationChromium::stop):
        (WebCore::AudioDestination::hardwareSampleRate):
        (WebCore::AudioDestinationChromium::render):
        (WebCore::AudioDestinationChromium::provideInput):
        * platform/audio/chromium/AudioDestinationChromium.h: Added.
        (WebCore):
        (AudioDestinationChromium):
        (WebCore::AudioDestinationChromium::isPlaying):
        (WebCore::AudioDestinationChromium::sampleRate):

2013-01-14  Adrian Perez de Castro  <aperez@igalia.com>

        [GTK] Fix indentation for GStreamer supported MIME types list
        https://bugs.webkit.org/show_bug.cgi?id=106812

        Reviewed by Philippe Normand.

        No tests. No change in behavior.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

2013-01-14  John Bauman  <jbauman@chromium.org>

        Use correct size for DrawingBuffer readback
        https://bugs.webkit.org/show_bug.cgi?id=106744

        Reviewed by Kenneth Russell.

        The value getInternalFramebufferSize is bogus if there's a
        DrawingBuffer, so use size() instead.

        * platform/graphics/chromium/DrawingBufferChromium.cpp:
        (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):

2013-01-14  Joshua Bell  <jsbell@chromium.org>

        Bindings: Remove special cases for DOMString[]
        https://bugs.webkit.org/show_bug.cgi?id=106506

        Remove special in binding code generators that map DOMString[] to DOMStringList.
        Array (T[]) and sequence (sequence<T>) are supported enough now that to be used
        for Internals, which is the only IDL that needed updating.

        Reviewed by Adam Barth.

        Tests: fast/forms/file/selected-files-from-history-state.html
               fast/forms/state-restore-broken-state.html
               fast/forms/state-restore-skip-stateless.html

        Bindings test results updated for JS/V8.

        * bindings/scripts/CodeGenerator.pm: Remove redundant IsArrayType (use GetArrayType instead)
        (IsRefPtrType): Array and Sequence types are not RefPtr types.
        * bindings/scripts/CodeGeneratorJS.pm:
        (IndexGetterReturnsStrings): Remove special case for DOMString[].
        (AddIncludesForType): Skip Array types, just like Sequence types. (Should probably recurse
        for the base type, but not needed for now.)
        (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
        (GetNativeType): Remove special case for DOMString[].
        (GetNativeTypeForCallbacks): Ditto.
        (JSValueToNative): Ditto.
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
        (GetNativeType): Remove special case for DOMString[].
        (JSValueToNative): Ditto.
        (GetV8HeaderName): Ditto.
        (IsWrapperType):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/TestObj.idl: Added explicit new cases for DOMStringList
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
        (TestObjV8Internal):
        (WebCore::TestObjV8Internal::domStringListFunctionCallback):
        (WebCore):
        (WebCore::ConfigureV8TestObjTemplate):
        * testing/Internals.cpp:
        (WebCore::Internals::formControlStateOfPreviousHistoryItem):
        (WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
        (WebCore::Internals::iconURLs):
        (WebCore::Internals::getReferencedFilePaths):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl: Produce DOMString[], consume sequence<DOMString> to match tests.

2013-01-14  Elliott Sprehn  <esprehn@chromium.org>

        Clean up WebVTTNodeType code
        https://bugs.webkit.org/show_bug.cgi?id=106714

        Reviewed by Tony Chang.

        There's no reason for so many methods just to compare some enums.
        The existing code can also be simplified quite a bit.

        No new tests, just refactoring.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRules):
        (WebCore::StyleResolver::canShareStyleWithElement):
        * dom/Element.cpp:
        (WebCore::Element::webVTTNodeType):
        (WebCore::Element::setWebVTTNodeType):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::setWebVTTNodeType):
        (WebCore::ElementRareData::webVTTNodeType):
        (ElementRareData):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        * html/track/TextTrack.h:
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::markFutureAndPastNodes):

2013-01-14  Antti Koivisto  <antti@apple.com>

        REGRESSION (r139218): Flaky assertion in WebCore::StorageTask::StorageTask releasing memory
        https://bugs.webkit.org/show_bug.cgi?id=106718

        Reviewed by Andreas Kling.

        Type assertion was missing a new type.

        * storage/StorageTask.cpp:
        (WebCore::StorageTask::StorageTask):

2013-01-14  Yury Semikhatsky  <yurys@chromium.org>

        [REGRESSION] Dev Tools popup for Workers forgets sizes/shows tiny in top left
        https://bugs.webkit.org/show_bug.cgi?id=106807

        Reviewed by Pavel Feldman.

        Open dedicated worker inspector 600x600 by default and remember its size
        after resizing.

        * inspector/front-end/Settings.js:
        * inspector/front-end/WorkerManager.js:

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in associateObjectWithWrapper()
        https://bugs.webkit.org/show_bug.cgi?id=106784

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in ScriptDebugServer::interruptAndRun()
        https://bugs.webkit.org/show_bug.cgi?id=106779

        Reviewed by Adam Barth.

        This is one of steps to make an Isolate parameter mandatory.

        No tests. No change in behavior.

        * bindings/v8/ScriptDebugServer.h:
        (ScriptDebugServer):

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in wrap()
        https://bugs.webkit.org/show_bug.cgi?id=106783

        Reviewed by Adam Barth.

        Now it's safe to make an Isolate parameter in wrap().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (WebCore::wrap):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::wrap):

2013-01-14  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update MediaStreamTrack::readyState to match specification
        https://bugs.webkit.org/show_bug.cgi?id=106781

        Reviewed by Adam Barth.

        MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.

        Existing tests expanded to cover patch.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::processTrack):
        * Modules/mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::readyState):
        (WebCore::MediaStreamTrack::ended):
        (WebCore):
        * Modules/mediastream/MediaStreamTrack.h:
        (MediaStreamTrack):
        * Modules/mediastream/MediaStreamTrack.idl:

2013-01-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Audit Tool's False Positive on Set-Cookie header
        https://bugs.webkit.org/show_bug.cgi?id=106794

        Reviewed by Pavel Feldman.

        Header value is now returned as undefined if there is no such header as it was before regression.

        Test: http/tests/inspector/audits/set-cookie-header-audit-no-false-positive.html

        * inspector/front-end/AuditRules.js:
        (WebInspector.AuditRules.CSSRuleBase.prototype.sheetsCallback): Drive-by fix, callback should be called even when there is no headers. 
        * inspector/front-end/NetworkRequest.js:
        (WebInspector.NetworkRequest.prototype._headerValue):

2013-01-14  Eric Carlson  <eric.carlson@apple.com>

        Do not pass nil when initializing legible output
        https://bugs.webkit.org/show_bug.cgi?id=106799

        Reviewed by Jessie Berlin.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): -[AVPlayerItemLegibleOutput initWithDependencyFactory:mediaSubtypesForNativeRepresentation:]
            wants an empty NSArray rather than nil.

2013-01-14  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] UI: add control buttons for doing the replay steps
        https://bugs.webkit.org/show_bug.cgi?id=106788

        Reviewed by Pavel Feldman.

        Adding UI control buttons for doing the Canvas replay steps.
        Drive-by: fixed a bug in DataGrid (found by the JSCompiler).

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype._createControlButton):
        (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
        (WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
        (WebInspector.CanvasProfileType.prototype._updateDecorationElement):
        * inspector/front-end/DOMExtension.js:
        (Element.prototype.enableStyleClass):
        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype.setRootNode):
        (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
        (WebInspector.DataGrid.prototype.moveToNextIfNeeded):
        (WebInspector.DataGrid.prototype._editingCommitted):
        (WebInspector.DataGridNode):
        * inspector/front-end/canvasProfiler.css:
        (.canvas-replay-image):
        (.canvas-replay-image.wait):
        (.canvas-replay-controls):
        (.canvas-replay-log):
        (.canvas-control-button):
        (.canvas-control-button:active):
        (.canvas-control-button:disabled):
        (.canvas-control-button img):
        (.canvas-replay-first-step img):
        (.canvas-replay-next-step img):
        (.canvas-replay-prev-step img):
        (.canvas-replay-last-step img):

2013-01-14  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update the track accessors on MediaStream to match the latest specification
        https://bugs.webkit.org/show_bug.cgi?id=106660

        Reviewed by Adam Barth.

        The spec has significantly changed how tracks are accessed from a MediaStream:
        http://dev.w3.org/2011/webrtc/editor/getusermedia.html

        In short: the attributes audioTrack/videoTrack that returned special MediaStreamTrackLists have been
        replaced by the functions getAudioTracks()/getVideoTracks that return standard sequences of
        MediaStreamTracks.

        Existing tests updated and expanded to cover patch.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::create):
        (WebCore::MediaStream::MediaStream):
        (WebCore::MediaStream::~MediaStream):
        (WebCore::MediaStream::readyState):
        (WebCore):
        (WebCore::MediaStream::addTrack):
        (WebCore::MediaStream::removeTrack):
        (WebCore::MediaStream::getTrackById):
        (WebCore::MediaStream::streamEnded):
        (WebCore::MediaStream::contextDestroyed):
        (WebCore::MediaStream::scheduleDispatchEvent):
        (WebCore::MediaStream::scheduledEventTimerFired):
        * Modules/mediastream/MediaStream.h:
        (MediaStream):
        (WebCore::MediaStream::getAudioTracks):
        (WebCore::MediaStream::getVideoTracks):
        * Modules/mediastream/MediaStream.idl:
        * Modules/mediastream/MediaStreamTrackList.cpp: Removed.
        * Modules/mediastream/MediaStreamTrackList.h: Removed.
        * Modules/mediastream/MediaStreamTrackList.idl: Removed.
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createMediaStreamSource):
        * WebCore.gypi:
        * dom/EventTargetFactory.in:
        * platform/mediastream/MediaStreamDescriptor.h:
        (WebCore::MediaStreamDescriptor::addAudioComponent):
        (WebCore::MediaStreamDescriptor::removeAudioComponent):
        (WebCore::MediaStreamDescriptor::addVideoComponent):
        (WebCore::MediaStreamDescriptor::removeVideoComponent):

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Add m_isolate to ScriptController, WorkerScriptController and V8DOMWindowShell
        https://bugs.webkit.org/show_bug.cgi?id=106771

        Reviewed by Adam Barth.

        This is one of the steps to pass an Isolate everywhere.

        No tests. No change in behavior.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::ScriptController):
        (WebCore::ScriptController::windowShell):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::create):
        (WebCore::V8DOMWindowShell::V8DOMWindowShell):
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        (WebCore::V8DOMWindowShell::installDOMWindow):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        * bindings/v8/V8Initializer.cpp:
        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
        (WebCore::V8Initializer::initializeWorker):
        * bindings/v8/V8Initializer.h:
        (V8Initializer):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::WorkerScriptController):
        (WebCore::WorkerScriptController::initializeContextIfNeeded):

2013-01-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Color names parsed inside "background-image" values
        https://bugs.webkit.org/show_bug.cgi?id=106770

        Reviewed by Pavel Feldman.

        Test: inspector/styles/url-color-swatch.html

        Spaces were not allowed in url(...) CSS property values.

        * inspector/front-end/StylesSidebarPane.js:

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass an Isolate to associateObjectWithWrapper()
        https://bugs.webkit.org/show_bug.cgi?id=106773

        Reviewed by Adam Barth.

        In preparation for making an Isolate parameter mandatory
        in associateObjectWithWrapper(), this patch passes an
        Isolate to associateObjectWithWrapper().

        No tests. No change in behavior.

        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::wrapArrayBufferView):
        (WebCore::constructWebGLArray):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallbackCustom):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::constructorCallbackCustom):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::constructorCallbackCustom):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8MessageChannelCustom.cpp:
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallbackCustom):
        * bindings/v8/custom/V8WebKitPointCustom.cpp:
        (WebCore::V8WebKitPoint::constructorCallbackCustom):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Call Isolate::GetCurrent() in a callback from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=106766

        Reviewed by Adam Barth.

        The objective is to pass an Isolate everywhere.
        Given that a callback from WebCore is an entry point to V8,
        we can call Isolate::GetCurrent() at the head of the callback
        and pass it to other places. (In practice, handleEvent() is
        the only callback used in the current WebKit.)

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallbackImplementation):
        (NativeToJSValue):
        * bindings/scripts/test/V8/V8TestCallback.cpp:
        (WebCore::V8TestCallback::callbackWithNoParam):
        (WebCore::V8TestCallback::callbackWithClass1Param):
        (WebCore::V8TestCallback::callbackWithClass2Param):
        (WebCore::V8TestCallback::callbackWithStringList):
        (WebCore::V8TestCallback::callbackWithBoolean):
        (WebCore::V8TestCallback::callbackRequiresThisToPass):

2013-01-14  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Change MediaStream::readyState to an boolean attribute called ended.
        https://bugs.webkit.org/show_bug.cgi?id=106568

        Reviewed by Adam Barth.

        See specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html

        Existings tests updated to cover patch.

        * Modules/mediastream/LocalMediaStream.cpp:
        (WebCore::LocalMediaStream::stop):
        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::ended):
        (WebCore::MediaStream::streamEnded):
        * Modules/mediastream/MediaStream.h:
        (MediaStream):
        (WebCore::MediaStream::isLocal):
        * Modules/mediastream/MediaStream.idl:
        * Modules/mediastream/MediaStreamTrackList.cpp:
        (WebCore::MediaStreamTrackList::add):
        (WebCore::MediaStreamTrackList::remove):

2013-01-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] HTML color names not converted to RGB/HEX/HSL when "Color format" feature used
        https://bugs.webkit.org/show_bug.cgi?id=106767

        Reviewed by Vsevolod Vlasov.

        We used to render named colors as names regardless of the selected color format option.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):

2013-01-14  Andrei Bucur  <abucur@adobe.com>

        Crash caused by incomplete cleanup of regions information for anonymous block
        https://bugs.webkit.org/show_bug.cgi?id=106191

        Reviewed by Abhishek Arya.

        When an anonymous block is no longer required it is removed from the render tree and deleted. For example, this can happen when an anonymous block children change
        from inlines to blocks. The patch updates the removeLeftoverAnonymousBlock function to delete the flow thread information attached to the obsolete anonymous block.
        The removeFromRenderFlowThread() function is recursive and it needs to be called after the anonymous block children were reparented and the child list cleared.
        I've also placed the children reset operation before clearing the parent because the latter also deletes the inRenderFlowThread flag from the object and it makes
        flow thread ownership detection impossible.

        Tests: fast/regions/remove-leftover-anon-block-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeLeftoverAnonymousBlock):

2013-01-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate parameter mandatory in v8DateOrNull()
        https://bugs.webkit.org/show_bug.cgi?id=106765

        Reviewed by Adam Barth.

        This is one of the efforts to kill all optional Isolate parameters.

        No tests. No change in behavior.

        * bindings/v8/V8Binding.h:
        (WebCore::v8DateOrNull):

2013-01-14  Pablo Flouret  <pablof@motorola.com>

        Allow nesting of at-rules
        https://bugs.webkit.org/show_bug.cgi?id=106696

        Reviewed by Allan Sandfeld Jensen.

        http://dev.w3.org/csswg/css3-conditional/ introduces the
        concept of grouping rules, and allows for them to be nested. In
        particular, this change affects @media (and is needed for @supports as
        well).

        Test: fast/css/nested-at-rules.html

        * css/CSSGrammar.y.in:
            Move media to the block_valid_rule list.

        * css/RuleSet.cpp:
        (WebCore::RuleSet::addRegionRule):
        (WebCore::RuleSet::addChildRules):
        (WebCore::RuleSet::addRulesFromSheet):
        * css/RuleSet.h:
            Rip out the rule-adding loop into a new method, for added
            cleanliness and recursing.

2013-01-14  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Add domain column
        https://bugs.webkit.org/show_bug.cgi?id=106757

        Reviewed by Pavel Feldman.

        Adding new column will ease domain tracking / sorting.

        * inspector/front-end/NetworkPanel.js: Added column.
        * inspector/front-end/NetworkRequest.js:
        (WebInspector.NetworkRequest.prototype.get domain): Added getter.

2013-01-14  Qiankun Miao  <qiankun.miao@intel.com>

        Fix a typo error in the comments in PlatformContextSkia.h
        https://bugs.webkit.org/show_bug.cgi?id=105612

        Reviewed by Stephen White.

        "If false we're rendering to a GraphicsContext for a web page, if false
        we're not (as is the case when rendering to a canvas object)." is
        self-contradictory. The second "flase" in the comments should be
        "true". If true, we're rendering to an ImageBuffer which has a canvas
        object.

        * platform/graphics/skia/PlatformContextSkia.h:
        (PlatformContextSkia):

2013-01-14  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 3/3
        https://bugs.webkit.org/show_bug.cgi?id=106764

        Reviewed by Vsevolod Vlasov.

        Last three classes with not instrumented members were fixed.

        * css/CSSGroupingRule.cpp:
        (WebCore::CSSGroupingRule::reportMemoryUsage):
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::reportMemoryUsage):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::reportMemoryUsage):

2013-01-10  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
        https://bugs.webkit.org/show_bug.cgi?id=106546

        Reviewed by Vsevolod Vlasov.

        Many nontrivial class members were added into reportMemoryUsage methods.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::reportMemoryUsage):
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::reportMemoryUsage):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::reportMemoryUsage):
        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::reportMemoryUsage):
        * css/MediaList.cpp:
        (WebCore::MediaList::reportMemoryUsage):
        * css/RuleSet.cpp:
        (WebCore::RuleData::reportMemoryUsage):
        (WebCore::RuleSet::reportMemoryUsage):
        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/StyleSheetContents.cpp:
        (WebCore::StyleSheetContents::reportMemoryUsage):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::reportMemoryUsage):
        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::reportMemoryUsage):
        * inspector/InspectorMemoryAgent.cpp:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::reportMemoryUsage):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::reportMemoryUsage):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::reportMemoryUsage):
        * loader/Prerenderer.cpp:
        (WebCore::Prerenderer::reportMemoryUsage):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::reportMemoryUsage):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::reportMemoryUsage):
        * page/Page.cpp:
        (WebCore::Page::reportMemoryUsage):

2013-01-13  Levi Weintraub  <leviw@chromium.org>

        Unreviewed gardening. Rolling out r139537. It broke platforms without sub-pixel layout.

        * dom/Element.cpp:
        (WebCore::Element::offsetWidth):
        (WebCore::Element::offsetHeight):
        (WebCore::Element::clientWidth):
        (WebCore::Element::clientHeight):
        * rendering/RenderObject.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):
        * rendering/style/RenderStyle.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):

2013-01-13  Dima Gorbik  <dgorbik@apple.com>

        Styling disappears from the cue that's being styled by ::cue pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=106723

        Reviewed by Antti Koivisto.

        Fixes a regression caused by r138966. Setting a pseudoId in TextTrackCue::updateDisplayTree for m_allDocumentNodes
        was triggering recalculating styles the next run loop. Now when this was removed we append the WebVTT tree after its children have
        been marked by markFutureAndPastNodes so that correct styles are set within this append call.

        Test: media/track/track-css-cue-lifetime.html

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::markFutureAndPastNodes): changing the type of the first argument because DocumentFragment is not a subclass
        of Element.
        (WebCore::TextTrackCue::updateDisplayTree): appending the WebVTT rendering tree after its children have been marked properly.
        * html/track/TextTrackCue.h:
        (TextTrackCue):

2013-01-12  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
        https://bugs.webkit.org/show_bug.cgi?id=106135

        Reviewed by Tony Chang.

        IDBEnv only changes the name of the histogram where errors are logged.

        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBDatabase::destroy):
        (WebCore::LevelDBDatabase::open):
        (WebCore::LevelDBDatabase::openInMemory):

2013-01-12  Gavin Peters  <gavinp@chromium.org>

        Regression(r119759): Heap-use-after-free in webkit_glue::WebURLLoaderImpl::Context::OnReceivedResponse
        https://bugs.webkit.org/show_bug.cgi?id=103563

        A subresource could receive a body on a 404 if its call to CachedResource::error() resulted in a nested message loop.
        That caused a crash when data was received, as the Subresource was in the Finished state already. Now when receiving
        data we ignore these bodies, avoiding the crash.

        Reviewed by Nate Chapin.

        No new tests in WebKit, since it required a nested message loop which isn't present in chromium DumpRender tree.
        There's a Chrome side browser test, see https://codereview.chromium.org/11778083/

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):

2013-01-12  Robert Hogan  <robert@webkit.org>

        Available height should respect min and max height
        https://bugs.webkit.org/show_bug.cgi?id=106479

        Reviewed by Ojan Vafai.
        
        When calculating a relative positioned block's offset as a percentage of its container, respect the min
        and max height set on the container

        Tests: fast/block/percent-top-respects-max-height.html
               fast/block/percent-top-respects-min-height.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::availableLogicalHeight):

2013-01-12  Victor Carbune  <victor@rosedu.org>

        CC Button doesn't always show up
        https://bugs.webkit.org/show_bug.cgi?id=106653

        Reviewed by Eric Carlson.

        Added extra checks to existing test.

        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::closedCaptionTracksChanged):
        Enforced visibility of captions button whenever the track list changes.
        (WebCore):
        * html/shadow/MediaControls.h:
        (MediaControls):

2013-01-11  Dan Beam  <dbeam@chromium.org>

        [clean up] Remove HTMLFormElement::AutocompleteResultError in favor of more specific Error reasons
        https://bugs.webkit.org/show_bug.cgi?id=106610

        Reviewed by Darin Fisher.

        No new tests (none needed).

        * html/HTMLFormElement.cpp: 
        (WebCore::HTMLFormElement::finishRequestAutocomplete): Removed handling of AutocompleteResultError.
        * html/HTMLFormElement.h: Removed HTMLFormElement::AutocompleteResultError in favor of more specific errors.

2013-01-10  Filip Pizlo  <fpizlo@apple.com>

        JITThunks should not compile only because of luck
        https://bugs.webkit.org/show_bug.cgi?id=105696

        Rubber stamped by Sam Weinig.

        All .cpp files that use the JSC internal API must now transitively include
        Operations.h, and none of the major JSC headers do it for you to avoid
        circularity. WebCore doesn't have to worry about circularity with JSC, so
        this changes all of the major WebCore JSC base headers to include
        Operations.h.

        * bindings/js/BindingState.h:
        * bindings/js/JSArrayBufferViewHelper.h:
        * bindings/js/JSCustomXPathNSResolver.h:
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDictionary.h:
        * bindings/js/JSMessagePortCustom.h:
        * bindings/js/JSNodeFilterCondition.h:
        * bindings/js/ScriptValue.h:
        * bindings/js/ScriptWrappable.h:
        * bindings/js/SerializedScriptValue.cpp:
        * bridge/c/c_utility.h:
        * bridge/jsc/BridgeJSC.h:
        * dom/Node.cpp:
        * html/HTMLCanvasElement.cpp:
        * html/HTMLImageLoader.cpp:
        * plugins/efl/PluginViewEfl.cpp:
        * xml/XMLHttpRequest.cpp:

2013-01-11  Emil A Eklund  <eae@chromium.org>

        offsetWidth/height incorrect for images when zoomed
        https://bugs.webkit.org/show_bug.cgi?id=106624

        Reviewed by Levi Weintraub.
        
        offsetWidth and height are incorrect for images at certain zoom
        levels due to flooring the values ones adjusted for zoom.
        By rounding the value instead we avoid the problem and return
        the right size.

        Test: fast/images/zoomed-offset-size.html

        * dom/Element.cpp:
        (WebCore::Element::offsetWidth):
        (WebCore::Element::offsetHeight):
        (WebCore::Element::clientWidth):
        (WebCore::Element::clientHeight):
        Change to round (as opposed to floor) the zoom adjusted value.
        
        * rendering/RenderObject.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):
        * rendering/style/RenderStyle.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):
        Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
        conversion.

2013-01-11  Ojan Vafai  <ojan@chromium.org>

        Fixed width overrides intrinsic min-width/max-width for text inputs and listboxes
        https://bugs.webkit.org/show_bug.cgi?id=106675

        Reviewed by Emil A Eklund.

        Implement computeIntrinsicLogicalWidths so that RenderBox::computeLogicalWidthInRegionUsing
        can get the correct intrinsic sizes instead of the preferred sizes.

        Test: fast/forms/select/listbox-intrinsic-min-width-applies-with-fixed-width.html

        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::computeIntrinsicLogicalWidths):
        (WebCore):
        (WebCore::RenderListBox::computePreferredLogicalWidths):
        * rendering/RenderListBox.h:
        (RenderListBox):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
        (WebCore):
        (WebCore::RenderTextControl::computePreferredLogicalWidths):
        * rendering/RenderTextControl.h:
        (RenderTextControl):

2013-01-10  Ojan Vafai  <ojan@chromium.org>

        Setting width overrides intrinsic min-width/max-width on flexboxes and their subclasses
        https://bugs.webkit.org/show_bug.cgi?id=106617

        Reviewed by Tony Chang.

        Override computeIntrinsicLogicalWidths for all RenderFlexibleBox and RenderDeprecatedFlexibleBox
        classes that override computePreferredLogicalWidths so that RenderBox can use
        computeIntrinsicLogicalWidths in order to get the correct intrinsic values.

        Tests: css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html
               fast/flexbox/intrinsic-min-width-applies-with-fixed-width.html
               fast/forms/select/intrinsic-min-width-applies-with-fixed-width.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
        fit-content needs to use the intrinsic sizes not the preferred sizes
        since a fixed width overrides the preferred size.
        As best I can tell, the sizesLogicalWidthToFitContent codepath can keep
        using preferred widths, which are considerably faster, since that's only used
        computing width values. Added a clause to that if-statement to make this more
        explicit.

        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths):
        (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
        * rendering/RenderDeprecatedFlexibleBox.h:
        (RenderDeprecatedFlexibleBox):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
        (WebCore):
        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
        * rendering/RenderFlexibleBox.h:
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::computeIntrinsicLogicalWidths):
        (WebCore):
        (WebCore::RenderMenuList::computePreferredLogicalWidths):
        * rendering/RenderMenuList.h:
        (RenderMenuList):
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::computeIntrinsicLogicalWidths):
        (WebCore):
        (WebCore::RenderSlider::computePreferredLogicalWidths):
        * rendering/RenderSlider.h:
        (RenderSlider):
        No logic changes in any of these computeIntrinsic methods. Just moving
        the code over from the computePreferred methods.

2013-01-11  Tony Gentilcore  <tonyg@chromium.org>

        Move HTMLTokenTypes to its own file
        https://bugs.webkit.org/show_bug.cgi?id=106722

        Reviewed by Levi Weintraub.

        Also mark AtomicHTMLToken ctor as explicit.

        No new tests because no new functionality.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/HTMLToken.h:
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        * html/parser/HTMLTokenTypes.h: Added.
        (WebCore):
        (HTMLTokenTypes):
        (DoctypeData):
        (WebCore::HTMLTokenTypes::DoctypeData::DoctypeData):

2013-01-11  Elliott Sprehn  <esprehn@chromium.org>

        No need to initialize RefPtrs to 0 in ElementRareData
        https://bugs.webkit.org/show_bug.cgi?id=106717

        Reviewed by Ryosuke Niwa.

        RefPtrs initialize themself to null, so there's no reason
        to do it manually. This was code leftover from when
        PseudoElements were stored in bare ptrs instead of in
        RefPtrs.

        No new tests, just refactoring.

        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):

2013-01-11  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Rename current[Transform|Opacity|Filters] in TextureMapperLayer.
        https://bugs.webkit.org/show_bug.cgi?id=105760

        Reviewed by Noam Rosenthal.

        TextureMapperLayer has two transform members: an original value and a
        changeable value. The changeable value would be changed by animations.
        This patch puts 'current' prefix on the changeable value to clarify
        its purpose. Opacity and filters ditto.

        No new tests. Refactoring only.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::computeTransformsRecursive):
        (WebCore::TextureMapperLayer::paintSelf):
        (WebCore::TextureMapperLayer::paintSelfAndChildren):
        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
        (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
        (WebCore::TextureMapperLayer::isVisible):
        (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
        (WebCore::TextureMapperLayer::paintRecursive):
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
        (WebCore::TextureMapperLayer::syncAnimations):
        (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore::TextureMapperLayer::TextureMapperLayer):
        (TextureMapperLayer):
        (WebCore::TextureMapperLayer::State::State):

2013-01-11  Tony Gentilcore  <tonyg@chromium.org>

        Move constructTreeFromHTMLToken into HTMLDocumentParser
        https://bugs.webkit.org/show_bug.cgi?id=106694

        Reviewed by Adam Barth.

        This way it will sit parallel to a new constructTreeFromCompactHTMLToken method.

        No new tests because no new functionality.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
        (WebCore):
        * html/parser/HTMLDocumentParser.h:
        * html/parser/HTMLTreeBuilder.cpp:
        * html/parser/HTMLTreeBuilder.h:
        (HTMLTreeBuilder):

2013-01-11  Robert Iannucci  <iannucci@chromium.org>

        Explicitly set msvs_cygwin_shell to true for actions in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=106706

        Reviewed by Tony Chang.

        Currently, msvs_cygwin_shell is set to 1 by default. This patch
        explicitly sets it on the actions which will break if msvs_cygwin_shell
        were set to 0. This is in preparation for changing the default value of
        msvs_cygwin_shell, which in turn is in preparation of the removal of
        cygwin as a buld-system requirement.

        Since this change will have no semantic effect, no new tests are
        required.

        * WebCore.gyp/WebCore.gyp:

2013-01-11  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: IDBTransaction should manage lifetime of IDBRequests
        https://bugs.webkit.org/show_bug.cgi?id=106678

        Reviewed by Tony Chang.

        Ensure reference count of IDBRequests don't bounce off zero if there are no script
        references are while the events are arriving.

        No new tests - no detectable behavior changes.

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::create): Register with transaction (which now takes a ref) here to...
        (WebCore::IDBRequest::IDBRequest): ...avoid having to relax adoption requirements here.
        * Modules/indexeddb/IDBTransaction.cpp: Keep RefPtr<>s to outstanding requests.
        (WebCore::IDBTransaction::~IDBTransaction):
        (WebCore::IDBTransaction::abort):
        (WebCore::IDBTransaction::onAbort):
        * Modules/indexeddb/IDBTransaction.h:

2013-01-11  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] XMLHttpRequests should have initiator type 'xmlhttprequest'
        https://bugs.webkit.org/show_bug.cgi?id=106409

        Reviewed by Nate Chapin.

        The initiator is passed through ThreadableLoaderOptions to the CachedResourceRequest. This is
        optional, so other users of ThreadableLoader will have the default initiator of 'request'. Note
        that synchronous XHRs don't show up in the Resource Timing buffer yet.

        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_initiator_types.html

        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::loadRequest):
        * loader/ThreadableLoader.h:
        (ThreadableLoaderOptions):
        * loader/cache/CachedResourceRequestInitiators.cpp:
        (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
        * loader/cache/CachedResourceRequestInitiators.h:
        (CachedResourceRequestInitiators):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::createRequest):

2013-01-11  James Simonsen  <simonjam@chromium.org>

        Restore old semantics to webkitRequestAnimationFrame callbacks
        https://bugs.webkit.org/show_bug.cgi?id=106697

        Reviewed by James Robinson.

        Sites that use GWT <= 2.4 are buggy and rely on Date.now()-like callback values.
        We'll restore that behavior to the prefixed version of webkitRequestAnimationFrame.
        requestAnimationFrame will continue to follow the spec.

        Test: fast/animation/request-animation-frame-prefix.html

        * dom/RequestAnimationFrameCallback.h:
        (RequestAnimationFrameCallback):
        * dom/ScriptedAnimationController.cpp:
        (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::requestAnimationFrame):
        (WebCore):
        (WebCore::DOMWindow::webkitRequestAnimationFrame):
        * page/DOMWindow.h:
        (DOMWindow):
        * page/DOMWindow.idl:

2013-01-11  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r139044.
        http://trac.webkit.org/changeset/139044
        https://bugs.webkit.org/show_bug.cgi?id=106702

        Caused various scrolling anomolies on Mac with drag and drop
        (Requested by smfr on #webkit).

        * page/AutoscrollController.cpp:
        (WebCore::AutoscrollController::AutoscrollController):
        (WebCore::AutoscrollController::autoscrollTimerFired):
        * page/AutoscrollController.h:
        (WebCore):
        (AutoscrollController):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateDragAndDrop):
        * rendering/RenderBox.cpp:
        (WebCore):
        (WebCore::RenderBox::autoscroll):
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::autoscroll):
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::autoscroll):
        * rendering/RenderListBox.h:
        (RenderListBox):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::autoscroll):
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):

2013-01-11  Rafael Weinstein  <rafaelw@chromium.org>

        Prevent HTMLPreloadScanner from fetching resources inside <template>
        https://bugs.webkit.org/show_bug.cgi?id=106687

        Reviewed by Adam Barth.

        This patch adds a simple counter to the preload scanner which increments on template start
        tag and decrements on template element. It only fetchs resources when the counter is at zero
        (i.e. for elements not contained by a template element).

        Test re-enabled within fast/dom/HTMLTemplateElement/inertContents.html

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
        (WebCore::HTMLPreloadScanner::processToken):
        * html/parser/HTMLPreloadScanner.h:
        (HTMLPreloadScanner):

2013-01-11  Tony Gentilcore  <tonyg@chromium.org>

        We should be able to checkpoint and restore the HTMLTokenizer across threads
        https://bugs.webkit.org/show_bug.cgi?id=106597

        Based on patch by Adam Barth.

        This has the ability to create a checkpoint any time the parser is blocked on a script.
        We clear m_appropriateEndTagName after each end tag is flushed so that the ASSERT in
        canCreateCheckpoint() will pass.

        Reviewed by Adam Barth.

        No new tests because no new functionality.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.h:
        (WebCore):
        (HTMLDocumentParser):
        * html/parser/HTMLTokenizer.cpp:
        (WebCore):
        (WebCore::HTMLTokenizer::canCreateCheckpoint):
        (WebCore::HTMLTokenizer::createCheckpoint):
        (WebCore::HTMLTokenizer::restoreFromCheckpoint):
        * html/parser/HTMLTokenizer.h:
        (HTMLTokenizer):
        (Checkpoint):
        (WebCore::HTMLTokenizer::Checkpoint::Checkpoint):
        * xml/parser/MarkupTokenizerBase.h:
        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::InputStreamPreprocessor):
        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::skipNextNewLine):
        (InputStreamPreprocessor):
        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::reset):

2013-01-11  Tony Chang  <tony@chromium.org>

        [chromium] Don't regenerate all bindings when any idl file changes
        https://bugs.webkit.org/show_bug.cgi?id=106604

        Reviewed by Kentaro Hara.

        Currently, every idl file is a dependency of generating the supplemental dependency map
        and generating bindings is a dependency of the map. This means that touching any idl file
        causes us to regenerate all the bindings.

        Change it so that generating bindings only depends on the idl files that have Supplemental= in them.
        We only have 24 idl files with Supplemental (3.7% of the 638 idl files in WebCore) so modifying
        any of those will cause all bindings to be regenerated.

        If you add or remove a new idl file, you have to rerun gyp which will fix up any dependencies.
        If you edit an existing file and add Supplemental= to it, you will now need to rerun gyp_{webkit,chromium}.
        I think that's a reasonable tradeoff since it seems highly unlikely that you would adding Supplemental=
        to an existing file without renaming it. The bots will always be fine because they always run
        gyp after updating.

        No new tests, this is a build only change.

        * WebCore.gyp/WebCore.gyp: Remove <(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp, which was causing
        the full rebuild. The step to generate this file is still a hard dependency so it will still be generated and
        used by generate-bindings.pl. Also remove <@(webcore_test_support_idl_files). This was saying we should regenerate
        all bindings if a test idl file changed. That doesn't make sense.
        * WebCore.gyp/scripts/supplemental_idl_files.py: Added.
        (DoMain):

2013-01-11  Alexandru Chiculita  <achicu@adobe.com>

        Element is displayed behind a composited layer when clipping is used on a previous element
        https://bugs.webkit.org/show_bug.cgi?id=104981

        Reviewed by Simon Fraser.

        RenderLayerCompositor::computeCompositingRequirements uses the local bounding box of the layers to optimize the number of composited 
        layers that are created. That's needed in order to make sure that composited layers that are displayed behind non-composited
        layers are correctly promoting the layers in front to be composited. Otherwise the non-composited layers are rendered
        in the parent composited layer, displaying behind the other composited layers. That might be wrong as the correct paint order might not be
        preserved.

        In order to make animations work, there's a flag that will disable that optimization. That's because the animations run in the platform
        layer and the platform layer doesn't know about the layers that are not promoted to composited layers. When the overlapping of the layers
        is computed it just uses the start or the stop state, but no intermediate states. For that reason, all the 'top' layers in front of animated 
        elements will become composited.

        When an animation has a clipping rectangle, then we know for sure that the animation is going to be contained inside the clip area, so WebKit 
        uses the bounding box of the clipping area to detect the overlapping layers, so there's no need to disable the optimization in that case.

        However, if there is a different animation displaying behind the clipping container, we cannot safely disable that optimization anymore. That's
        because we still don't know what are the intermediate states of that particular animated layer. The bug was that the optimization was re-enabled
        anyway, even in this particular case.

        In order to fix it, I changed the logic, so that instead of re-enabling the optimization after a clipping container, it will just avoid to propagate 
        the internal state to the following layers when there's no need to so.

        Note that 3D transforms behave like animations for now and disable the optimization. Because of that some of the existing tests ended up
        creating more layers than needed. That's because the tests had an overflow area that recreated the issue that this patch fixes, but with
        3D transforms instead of animations. 3D transforms will be treated in a separate patch.

        Tests: compositing/layer-creation/overlap-animation-clipping.html
               compositing/layer-creation/overlap-animation-container.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):

2013-01-11  Philip Rogers  <pdr@google.com>

        Skip CachedImage::CreateImage if we don't have image data
        https://bugs.webkit.org/show_bug.cgi?id=106156

        Reviewed by Nate Chapin.

        This patch skips image creation if we do not have image data. This can occur during
        cache revalidation when the revalidation request (304 not modified) comes back without
        any content. In this revalidation case, the http spec requires that a mimetype not be set
        on the response to prevent a cached resource from having a different mimetype
        from the revalidated resource. Because revalidation requests do not have a mimetype,
        CachedImage::CreateImage() will fail on SVG images. This patch prevents
        CachedImage::CreateImage() from being called during revalidation.

        No new tests as there are no observable changes from this patch.

        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::data):

2013-01-11  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
        (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::TestExceptionV8Internal::nameAttrGetter):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
        (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
        (WebCore::TestObjV8Internal::stringAttrAttrGetter):
        (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
        (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
        (WebCore::TestObjV8Internal::hashAttrGetter):
        (WebCore::TestObjV8Internal::conditionalMethod1Callback):

2013-01-11  Levi Weintraub  <leviw@chromium.org>

        RenderGeometryMap and TransformState disagree with sub-pixel layout and translations
        https://bugs.webkit.org/show_bug.cgi?id=106047

        Reviewed by Simon Fraser.

        Mirror RenderGeometryMap's optimization for integer-translated transforms in TransformState.
        This avoids the current behavior where the two can disagree on mappings, since RenderGeometryMap
        pixel-snapped later when a translation occurred between two sub-pixel containers.

        Test: fast/layers/geometry-map-transform-state-translation-mismatch.html

        * platform/graphics/transforms/TransformState.h:
        (WebCore::TransformState::setQuad): Clear accumulatedOffset when setting a new quad. Note: this
        implementation only works properly when only tracking a quad.
        * platform/graphics/transforms/TransformState.cpp:
        (WebCore::TransformState::applyTransform): apply integral translations to the accumulatedOffset
        for performance and consistency with RenderGeometryMap.

2013-01-11  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::RenderText::computePreferredLogicalWidths
        https://bugs.webkit.org/show_bug.cgi?id=95901

        Reviewed by Simon Fraser.

        Prevent re-entrancy of view layout. Loading of SVG document during font load
        causes it to re-enter layout and blowing the style away from underneath.
        
        Test: Go to http://www.speckproducts.com and make sure crash does not happen.

        * dom/Document.cpp:
        (WebCore::Document::updateLayout):

2013-01-11  Kentaro Hara  <haraken@chromium.org>

        [V8] Do not create a local handle for a cached v8 string that is returned to V8 immediately
        https://bugs.webkit.org/show_bug.cgi?id=106557

        Reviewed by Adam Barth.

        Currently we are always creating a local handle for a cached
        V8 string returned to V8:

          Handle<Value> v8String(StringImpl* impl, Isolate* isolate) {
            ...;
            return Local<String>::New(isolate, m_cachedString);
          }

        However, we don't need to create a local handle in a case
        where it is guaranteed that no V8 object allocation is conducted
        before a control flow returns back to V8. In particular, in a case
        where a cached V8 string is immediately returned to V8, we don't
        need to create a local handle:

          Handle<Value> xxxxAttrGetter() {
            ...;
            return v8String(imp->xxxx(), isolate);  // This can return a persistent handle safely.
          }

        This patch improves performance of div.id by 9.2%.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateCallbackImplementation):
        (GenerateFunctionCallString):
        (NativeToJSValue):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
        (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::TestExceptionV8Internal::nameAttrGetter):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
        (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
        (WebCore::TestObjV8Internal::stringAttrAttrGetter):
        (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
        (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
        (WebCore::TestObjV8Internal::hashAttrGetter):
        (WebCore::TestObjV8Internal::conditionalMethod1Callback):
        * bindings/v8/V8Binding.h:
        (WebCore::v8String):
        (WebCore::v8StringOrNull):
        (WebCore::v8StringOrUndefined):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::StringCache::v8ExternalStringSlow):
        * bindings/v8/V8ValueCache.h:
        (WebCore::StringCache::v8ExternalString):
        (StringCache):

2013-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.list.am: Add missing header files.

2013-01-11  Xianzhu Wang  <wangxianzhu@chromium.org>

        RenderLayerCompositor should let ScrollingCoordinator update main thread scrolling reasons after change of layers
        https://bugs.webkit.org/show_bug.cgi?id=105652

        Reviewed by Simon Fraser.

        Let ScrollingCoordinator know the change of ViewportConstrainedNotCompositedReason in time.
        By the way moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to RenderLayer::ViewportConstrainedNotCompositedReason.

        Tests: compositing/layer-creation/fixed-position-in-view-dynamic.html
               compositing/layer-creation/fixed-position-out-of-view-dynamic.html

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
        (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
        (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintViewportConstrainedObjects):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::logThreadedScrollingMode):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::paintLayer):
        * rendering/RenderLayer.h:
        (RenderLayer): Moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to here and renamed it to ViewportConstrainedNotCompositedReason.
        (WebCore::RenderLayer::setViewportConstrainedNotCompositedReason):
        (WebCore::RenderLayer::viewportConstrainedNotCompositedReason):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingLayers):
        (WebCore::RenderLayerCompositor::updateBacking): Now updates ViewportConstrainedNotCompositedReason here instead of in computeCompositingRequirements before so that the reason is updated in time.
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
        (WebCore::RenderLayerCompositor::needsToBeComposited):
        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
        (WebCore::RenderLayerCompositor::reasonForCompositing):
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        (WebCore::RenderLayerCompositor::reportMemoryUsage):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2013-01-11  Kenneth Russell  <kbr@google.com>

        [Chromium] WebGL typed array constructor crashes on exception
        https://bugs.webkit.org/show_bug.cgi?id=106308

        Reviewed by Kentaro Hara.

        Check for empty handles (indicating exception thrown) after calls
        into V8 VM.

        Added new case from Khronos typed array conformance tests to
        fast/canvas/webgl/array-unit-tests.html.

        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::constructWebGLArray):
            Check for empty handles after calls into V8 VM.

2013-01-11  Kentaro Hara  <haraken@chromium.org>

        [V8] Slightly optimize getWrapperFast()
        https://bugs.webkit.org/show_bug.cgi?id=106667

        Reviewed by Adam Barth.

        This patch improves an if condition in getWrapperFast(),
        as commented in DOMDataStore.h.

        This patch improves performance of div.firstChild from
        15.1 ns to 14.0 ns (+7.8%), although I couldn't observe
        performance improvement in Dromaeo/dom-traverse.

        No tests. No change in behavior.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::getWrapperFast):

2013-01-11  Florin Malita  <fmalita@chromium.org>

        [SVG] Suppress resource rebuilding for unattached and shadow elements
        https://bugs.webkit.org/show_bug.cgi?id=106664

        Reviewed by Dirk Schulze.

        SVGStyledElement::buildPendingResourcesIfNeeded() can be called while cloning a subtree
        (as nodes are inserted into the clone, while still detached) or when elements are inserted
        into the shadow tree. Both of these cases are problematic for SVGUseElement and can trigger
        indirect recursion in SVGUseElement::buildPendingResource.

        Since shadow and !inDocument() nodes are of no interest to ID dependents (they cannot be
        found by ID in the document), the patch short-circuits buildPendingResource() for these
        cases.

        Test: svg/custom/use-rebuild-resources-crash.svg

        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):

2013-01-11  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Computed hierarchical level is not consistent with aria-level
        https://bugs.webkit.org/show_bug.cgi?id=106638

        Reviewed by Chris Fleizach.

        Make hierarchicalLevel computation 1-based to match the aria-level spec.

        Extends an existing test: platform/mac/accessibility/aria-tree.html.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

2013-01-11  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Workspace should support several projects and should not have temporary UISourceCodes.
        https://bugs.webkit.org/show_bug.cgi?id=105856

        Reviewed by Pavel Feldman.

        Workspace now supports several projects with the networkProject being a main one.
        Replaced temporary UISourceCodes with specific projects (debugger and liveedit).
        The concept of workspace reset on navigation is now replaced with project reset concept instead.
        Introduced snippets project (that is not reset on navigation).
        Script mappings are now reset on GlobalObjectCleared event.

        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager):
        (WebInspector.BreakpointManager.prototype._innerSetBreakpoint):
        (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
        (WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
        (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
        (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
        (WebInspector.BreakpointManager.prototype._projectWillReset):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel):
        (WebInspector.CSSStyleModel.prototype._inspectedURLChanged):
        (WebInspector.CSSStyleModel.prototype._resetSourceMappings):
        (WebInspector.CSSStyleModelResourceBinding):
        (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
        (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping):
        (WebInspector.CompilerScriptMapping.prototype._debuggerReset):
        * inspector/front-end/DebuggerScriptMapping.js:
        * inspector/front-end/DefaultScriptMapping.js:
        (WebInspector.DefaultScriptMapping):
        (WebInspector.DefaultScriptMapping.prototype.addScript):
        (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onGetPageResources):
        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.OpenResourceDialog.show):
        * inspector/front-end/LiveEditSupport.js:
        (WebInspector.LiveEditSupport):
        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
        (WebInspector.LiveEditSupport.prototype._debuggerReset):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider):
        (WebInspector.NetworkUISourceCodeProvider.prototype._mainFrameNavigated):
        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
        (WebInspector.NetworkUISourceCodeProvider.prototype._reset):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping):
        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
        (WebInspector.ResourceScriptMapping.prototype._debuggerReset):
        * inspector/front-end/RevisionHistoryView.js:
        (WebInspector.RevisionHistoryView):
        (WebInspector.RevisionHistoryView.prototype._projectWillReset):
        * inspector/front-end/SASSSourceMapping.js:
        (_bindUISourceCode):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel):
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        (WebInspector.ScriptSnippetModel.prototype.reset):
        * inspector/front-end/ScriptsNavigator.js:
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
        (WebInspector.ScriptsPanel.prototype._removeUISourceCodes):
        (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
        (WebInspector.ScriptsPanel.prototype._debuggerReset):
        (WebInspector.ScriptsPanel.prototype._projectWillReset):
        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
        (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
        (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
        * inspector/front-end/SimpleWorkspaceProvider.js:
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping):
        (WebInspector.StylesSourceMapping.prototype._projectWillReset):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.prototype.reset):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.project):
        * inspector/front-end/Workspace.js:
        (WebInspector.WorkspaceController):
        (WebInspector.WorkspaceController.prototype._inspectedURLChanged):
        (WebInspector.Project):
        (WebInspector.Project.prototype.name):
        (WebInspector.Project.prototype.isServiceProject):
        (WebInspector.Project.prototype._reset):
        (WebInspector.Workspace):
        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
        (WebInspector.Workspace.prototype.uiSourceCodeForURI):
        (WebInspector.Workspace.prototype.addProject):
        (WebInspector.Workspace.prototype.project):
        (WebInspector.Workspace.prototype.projects):
        (WebInspector.Workspace.prototype.uiSourceCodes):
        (WebInspector.Workspace.prototype.projectForUISourceCode):
        (WebInspector.Workspace.prototype.requestFileContent):
        (WebInspector.Workspace.prototype.setFileContent):
        (WebInspector.Workspace.prototype.searchInFileContent):
        * inspector/front-end/inspector.js:
        * inspector/front-end/utilities.js:

2013-01-11  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Resources] Make grid columns set configurable.
        https://bugs.webkit.org/show_bug.cgi?id=105739

        Reviewed by Pavel Feldman.

        Added context menu on grid header to hide/show grid columns.
        Hidden columns set is persisted.

        * inspector/front-end/DataGrid.js:
        Fixed show/hide behavior, introduced weight control.
        * inspector/front-end/NetworkPanel.js:
        Added member to track visibility of columns in detailerd mode. Added
        context menu for grid header.

2013-01-11  Andras Becsi  <andras.becsi@digia.com>

        [Qt] Fix the build if libxslt is not available but libxml2 is
        https://bugs.webkit.org/show_bug.cgi?id=106661

        Reviewed by Simon Hausmann.

        On Linux building the xml parser sources fails if the needed libxslt
        dependencies are not installed but libxml2 is.

        * WebCore.pri: add libxml2 to pkg-config if not on mac.

2013-01-11  Stephen Chenney  <schenney@chromium.org>
        Objects can be re-added to the AXObjectCache during removal
        https://bugs.webkit.org/show_bug.cgi?id=104171

        The problem occurs when a label's corresponding element is a sibling
        that precedes it in the render tree, and the corresponding element is
        removed. The corresponding element's AX render object is removed, but
        then recreated when accessibilityIsIgnored() invokes correspondingControl()
        on the label. The corresponding renderer then has an AX render object
        that survives beyond the deleted renderer, leading to invalid memory
        accesses.

        The solution is to rearrange the calls to delete the renderer's AX
        render object only when we are sure it will no longer be required.

        Reviewed by Simon Fraser.

        Test: accessibility/corresponding-control-deleted-crash.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed): Move the call to remove the
        renderer from the AXCache to after the renderer is removed from the
        render tree. This means that the AXObject still exists during renderer
        removal, as we require.

2013-01-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt][WK1] Web Audio support
        https://bugs.webkit.org/show_bug.cgi?id=106651

        Reviewed by Jocelyn Turcotte.

        Convert JavaScript Uint8Array to QByteArray. This conversion is necessary to support testRunner.setAudioData().

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::isJSUint8Array):
        (Bindings):
        (JSC::Bindings::valueRealType):
        (JSC::Bindings::convertValueToQVariant):

2013-01-11  Anton Vayvod  <avayvod@chromium.org>

        Text Autosizing - elements much narrower than its parent autosizing clusters should be autosized separately.
        https://bugs.webkit.org/show_bug.cgi?id=105188

        Reviewed by Kenneth Rohde Christiansen.

        Some blocks of text might be narrower than their parent clusters and should be autosized separately.
        This helps with autosizing for the pages implementing the sidebars as a narrow blocks of text with wide margins and
        the main content being positioned atop this margin (or vice versa).

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::isContainerAutosizingCluster):

            Returns true if the container is more than 200 pixels narrower than its parent cluster's lowest common
            ancestor of all the text nodes.

2013-01-11  Andreas Kling  <akling@apple.com>

        Remove unused CSSSelector(QualifiedName) constructor.
        <http://webkit.org/b/106652>

        Reviewed by Antti Koivisto.

        * css/CSSSelector.h:
        (CSSSelector):

2013-01-11  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Disable the ENABLE_LEGACY_WEB_AUDIO feature define in release builds
        https://bugs.webkit.org/show_bug.cgi?id=106577

        Reviewed by Philippe Normand.

        The Web Audio feature is not enabled in the release builds, so there's
        no need to enable the legacy Web Audio API either.

        No new tests - no new functionality.

        * GNUmakefile.features.am.in:

2013-01-11  Antoine Quint  <graouts@apple.com>

        Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
        https://bugs.webkit.org/show_bug.cgi?id=66868

        Up to now, the TreeElement.prototype.expandRecursively() method would correctly
        expand children recursively based on the provided depth, but would not wait to
        perform this task until all child nodes had been populated, which means that this
        would only work incrementally with one additional level of child nodes being shown
        expanded in the DOM tree upon alt+clicking a given node with a deep hierarchy.
        
        In order to fix this, this patch adds a new optional argument to the DOMAgent's
        requestChildNodes() methods to provide the depth at which we want to retrieve children
        of a given node. The DOMAgent provides a new .getSubtree() method that calls
        requestChildNodes() with the provided depth.

        Then in ElementsTreeOutline, we subclass .expandRecursively() to first call DOMAgent's
        new .getSubtree() method and then call the default implementation when all nodes
        have been retrieved from the backend.

        Reviewed by Pavel Feldman.

        Tests: inspector-protocol/dom-request-child-nodes-depth.html
               inspector/elements/expand-recursively.html

        * inspector/Inspector.json: Add the new `depth` parameter to DOM.requestChildNodes().
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::pushChildNodesToFrontend): Add a new optional `depth` parameter
        which defaults to 1.
        (WebCore::InspectorDOMAgent::requestChildNodes): Add a new optional `depth` parameter
        which defaults to 1 and allows -1 as an unbound value.
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode.prototype.):
        (WebInspector.DOMNode.prototype.getSubtree): New method allowing to specify at what depth
        we want to retrieve children of a given node from the backend.
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype.expandRecursively): Override default implementation
        to first obtain the deepest subtree for the current node so that deep expansion happens as expected.

2013-01-11  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Elements] Search in the DOM tree does not scroll horizontally
        https://bugs.webkit.org/show_bug.cgi?id=106648

        Reviewed by Vsevolod Vlasov.

        Scroll into view the first match in every tree element, if needed.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._highlightCurrentSearchResult):

2013-01-11  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] a minor follow-up to r137262
        https://bugs.webkit.org/show_bug.cgi?id=106644

        Reviewed by Pavel Feldman.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2013-01-11  Kent Tamura  <tkent@chromium.org>

        BaseDateAndTimeInputType should not inherit from TextFieldInputType
        https://bugs.webkit.org/show_bug.cgi?id=106306

        Reviewed by Hajime Morita.

        Date/time input types don't need text-field features at all.

        No new tests. This should not make any behavior changes except reduction
        of memory usage.

        * html/BaseDateAndTimeInputType.h:
        Inherit InputType instead of TextFieldInputType.
        (WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):
        (BaseDateAndTimeInputType): Update function declarations.
        * html/BaseDateAndTimeInputType.cpp:
        Remove handleKeydownEvent and convertFromVisibleValue, which are for
        TextFieldInputType.
        (WebCore::BaseDateAndTimeInputType::shouldRespectListAttribute):
        Added. This is necessary for <datalist> support. TextFieldInputType has
        the same code.
        (WebCore::BaseDateAndTimeInputType::valueMissing):
        Added. This is necessary for validity.valueMissing. TextFieldInputType
        has the same code.

        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        Remove unnecessary functions which cancel TextFieldInputType behavior.
        * html/BaseChooserOnlyDateAndTimeInputType.h:
        (BaseChooserOnlyDateAndTimeInputType): Remove declarations for them.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        Remove unnecessary functions which cancel TextFieldInputType behavior.
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType):
        Add SpinButtonOwner interface. We didn't need it because
        TextFieldInputType implements it.

2013-01-11  Mary Wu  <mary.wu@torchmobile.com.cn>

        [BlackBerry] Enable concatenating headers with same field name
        https://bugs.webkit.org/show_bug.cgi?id=106625

        Reviewed by Rob Buis.

        RFC 2616 specifies that headers could concatenate with comma if they have
        same field name. We should enable this if the header allows multiple values.

        RIM PR# 275508, internally reviewed by Joe Mason

        (WebCore):
        (WebCore::isAppendableHeader):
        (WebCore::NetworkJob::handleNotifyHeaderReceived):

2013-01-11  Jochen Eisinger  <jochen@chromium.org>

        Connect UserGestureIndicator for mousedown and mouseup events
        https://bugs.webkit.org/show_bug.cgi?id=105138

        Reviewed by Adam Barth.

        Ports that consume user gestures to prevent certain types of pop-ups
        need to be able to connect mousedown and mouseup events, otherwise, a
        single mouse click will allow for opening multiple pop-ups.

        Note that a mousedown is not always followed by a mouseup and vice
        versa, e.g. when the mousedown results in a context menu being shown, or
        something is dragged into the page.

        Test: platform/chromium/fast/events/popup-allowed-from-gesture-only-once-two-events.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        * page/EventHandler.h:

2013-01-11  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Resources] "Delete" cookie deletes all cookies with matching name.
        https://bugs.webkit.org/show_bug.cgi?id=105633

        Reviewed by Pavel Feldman.

        "Delete" cookie deletes all cookies with matching name,
        ignoring domain and path.

        * inspector/Inspector.json: Change argument "domain" to "url"
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::deleteCookie): Use url to delte cookies.
        * inspector/InspectorPageAgent.h: Adopt new signature.
        * inspector/front-end/CookieItemsView.js:
        (WebInspector.CookieItemsView.prototype._deleteCookie): Ditto.

2013-01-11  KwangYong Choi  <ky0.choi@samsung.com>

        [EFL] Fix unused parameter build error
        https://bugs.webkit.org/show_bug.cgi?id=106639

        Reviewed by Kentaro Hara.

        Use UNUSED_PARAM macro to fix build error.

        No new tests, no behavior change.

        * platform/efl/EflScreenUtilities.cpp:
        (WebCore::isUsingEcoreX):
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::supportsDataListUI):

2013-01-11  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector [chromium]: Debugger.globalObjectCleared is not dispatched on reload after renderer swap
        https://bugs.webkit.org/show_bug.cgi?id=106555

        Reviewed by Vsevolod Vlasov.

        Wrong ::enable was made virtual in the InspectorDebuggerAgent.

        Test: inspector/debugger/debugger-scripts-reload.html

        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::enable):
        (WebCore::PageDebuggerAgent::disable):
        * inspector/PageDebuggerAgent.h:
        (PageDebuggerAgent):

2013-01-11  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Refactoring, move NetworkWorkspaceProvider to NetworkUISourceCodeProvider.js and rename its parent to SimpleWorkspaceProvider.
        https://bugs.webkit.org/show_bug.cgi?id=106635

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/DebuggerScriptMapping.js:
        (WebInspector.DebuggerScriptMapping):
        * inspector/front-end/DefaultScriptMapping.js:
        (WebInspector.DefaultScriptMapping):
        (WebInspector.DefaultScriptMapping.prototype.addScript):
        (WebInspector.DebuggerWorkspaceProvider):
        (WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
        * inspector/front-end/LiveEditSupport.js:
        (WebInspector.LiveEditSupport):
        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
        (WebInspector.LiveEditWorkspaceProvider):
        (WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkWorkspaceProvider):
        (WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
        * inspector/front-end/SimpleWorkspaceProvider.js: Renamed from Source/WebCore/inspector/front-end/NetworkWorkspaceProvider.js.
        (WebInspector.SimpleWorkspaceProvider):
        (WebInspector.SimpleWorkspaceProvider.uriForURL):
        (WebInspector.SimpleWorkspaceProvider.prototype.requestFileContent):
        (WebInspector.SimpleWorkspaceProvider.prototype.setFileContent):
        (WebInspector.SimpleWorkspaceProvider.prototype.searchInFileContent):
        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
        (WebInspector.SimpleWorkspaceProvider.prototype.uniqueURI):
        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2013-01-10  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        On Linux, should be able to get spelling suggestions without selecting the misspelled word
        https://bugs.webkit.org/show_bug.cgi?id=103520

        Reviewed by Ryosuke Niwa.

        Allow to get/insert spelling suggestions without selecting the misspelled word for
        Linux WebKit ports. WebCore assumes that the misspelled word has to be selected
        to get its suggestions.

        In compliance with native application behaviour a new editing policy is introduced,
        to do not highlight the misspelled word to just get its guesses.

        No new tests, covered by context-menu-suggestions.html.

        * WebCore.exp.in:
        Remove _ZN7WebCore6Editor21isSelectionMisspelledEv symbol as Mac port doesn't
        need it any longer.

        * editing/EditingBehavior.h:
        (EditingBehavior):
        (WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
        Add a new behavior for Linux, to allow spelling suggestions without selecting
        the misspelled word.

        * editing/Editor.cpp:
        (WebCore::Editor::isContinuousSpellCheckingEnabled):
        Add missing const modifier, to use this method in 'misspelledWordAtCaretOrRange() const'.

        (WebCore::Editor::misspelledWordAtCaretOrRange):
        Allow to check spelling under the caret or selected word.
        Does nothing for selection made on the multiple words.

        (WebCore::Editor::misspelledSelectionString):
        Return the misspelled selection.

        (WebCore::Editor::guessesForMisspelledWord):
        Remove 'Selection' from method name as it may return guesses without selection.

        (WebCore::Editor::guessesForMisspelledOrUngrammatical):
        Ditto.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected):
        Select the word under caret to meet the conditions from misspelledWordAtCaretOrRange.

        (WebCore::ContextMenuController::populate):
        Update guessesForMisspelledOrUngrammatical call.

2013-01-10  Hajime Morrita  <morrita@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=106283
        [Shadow DOM] HTMLContentElement and HTMLShadowElement should be behind SHADOW_DOM

        Reviewed by Kentaro Hara.

        No new tests. Covered by existing tests.

        This change moves <content> and <shadow> behind
        ENABLE(SHADOW_DOM). Note that empty stub definitions are remaining
        even after this change. They are for minimizing #if/#endif usage
        and won't hurt code size.

        * WebCore.exp.in:
        * html/InputType.cpp:
        (WebCore::InputType::destroyShadowSubtree):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::distribute):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore):
        (WebCore::HTMLContentElement::create):
        (WebCore::HTMLContentElement::HTMLContentElement):
        * html/shadow/HTMLContentElement.h:
        (WebCore):
        (HTMLContentElement):
        * html/shadow/HTMLShadowElement.cpp:
        * html/shadow/HTMLShadowElement.h:
        (WebCore):
        (WebCore::isHTMLShadowElement):
        (WebCore::toHTMLShadowElement):
        * html/shadow/TextFieldDecorationElement.cpp:
        (WebCore::TextFieldDecorationElement::decorate):
        * testing/Internals.cpp:
        (WebCore::Internals::createContentElement):
        (WebCore::Internals::isValidContentSelect):

2013-01-10  Takashi Sakamoto  <tasak@google.com>

        Implement CSSGroupingRule for @host @-rules and @supports.
        https://bugs.webkit.org/show_bug.cgi?id=106418

        Reviewed by Antti Koivisto.

        CSSGroupingRule is to share code between CSSMediaRule, CSSSupportsRule
        and CSSHostRule. @supports and @host @-rules are dervied from
        CSSGroupingRule:
        http://www.w3.org/TR/2012/WD-css3-conditional/#the-cssgroupingrule-interface
        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface
        Since @media is also derived from CSSGroupingRule and @region has the
        same interface as CSSGroupingRule, modify to use CSSGroupingRule:
        http://dev.w3.org/csswg/css3-regions/#the-at-region-style-rule

        No new tests, because no new feature is implemented.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Added CSSGroupingRule.h and CSSGroupingRule.cpp.
        * css/CSSAllInOne.cpp:
        Modified to include CSSGroupingRule.cpp.
        * css/CSSGroupingRule.cpp: Added.
        (WebCore):
        (WebCore::CSSGroupingRule::CSSGroupingRule):
        (WebCore::CSSGroupingRule::~CSSGroupingRule):
        (WebCore::CSSGroupingRule::insertRule):
        (WebCore::CSSGroupingRule::deleteRule):
        (WebCore::CSSGroupingRule::appendCssTextForItems):
        (WebCore::CSSGroupingRule::length):
        (WebCore::CSSGroupingRule::item):
        (WebCore::CSSGroupingRule::cssRules):
        (WebCore::CSSGroupingRule::reattach):
        (WebCore::CSSGroupingRule::reportMemoryUsage):
        These codes are moved from CSSMediaRule and WebKitCSSRegionRule.
        * css/CSSGroupingRule.h:
        (WebCore):
        (CSSGroupingRule):
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::CSSMediaRule):
        (WebCore::CSSMediaRule::~CSSMediaRule):
        Make CSSMediaRule inherit CSSGroupingRule.
        (WebCore::CSSMediaRule::media):
        (WebCore::CSSMediaRule::reattach):
        Keep the code for updating media queries' CSSOMWrapper.
        (WebCore::CSSMediaRule::reportMemoryUsage):
        We need to report media queries' CSSOMWrapper memory usage.
        (WebCore::CSSMediaRule::mediaQueries):
        (WebCore::CSSMediaRule::cssText):
        * css/CSSMediaRule.h:
        * css/WebKitCSSRegionRule.cpp:
        Make WebKitCSSRegionRule inherit CSSGroupingRule.
        (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
        (WebCore::WebKitCSSRegionRule::cssText):
        * css/WebKitCSSRegionRule.h:
        * css/StyleRule.h:
        Added inlined accessor to obtain StyleRuleMedia* and StyleRuleRegion*
        from StyleRuleBlock*.

2012-12-28  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] add an option to reload the page if there is an uninstrumented canvas
        https://bugs.webkit.org/show_bug.cgi?id=105822

        Reviewed by Pavel Feldman.

        Show in the front-end an option to reload the page if there is an uninstrumented canvas.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileType):
        (WebInspector.CanvasProfileType.prototype.decorationElement):
        (WebInspector.CanvasProfileType.prototype._updateDecorationElement):
        (WebInspector.CanvasProfileType.prototype._onReloadPageButtonClick):
        * inspector/front-end/ProfileLauncherView.js:
        (WebInspector.ProfileLauncherView.prototype.addProfileType):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfileType.prototype.decorationElement):

2013-01-10  Dimitri Glazkov  <dglazkov@chromium.org>

        The word "selector" is somewhat redundant redundantly used in SelectorChecker.
        https://bugs.webkit.org/show_bug.cgi?id=106413

        In https://bugs.webkit.org/show_bug.cgi?id=105864, Antti suggested reducing some of the redundant uses of the word
        "selector" in SelectorChecker. Here's a start.

        Reviewed by Antti Koivisto.

        Simple renames, no change in behavior.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::match): Renamed.
        (WebCore):
        (WebCore::SelectorChecker::fastCheck): Ditto,
        (WebCore::SelectorChecker::checkOne): Ditto.
        * css/SelectorChecker.h:
        (SelectorChecker):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use new name.
        (WebCore::StyleResolver::ruleMatches): Renamed from checkSelector to better match argument and return value.
        (WebCore::StyleResolver::checkRegionSelector): Changed to use new names.
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::matches): Ditto.
        (WebCore::SelectorDataList::execute): Ditto.
        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorChecker::checkContentSelector): Ditto.

2013-01-10  John J. Barton  <johnjbarton@chromium.org>

        Web Inspector: Pass the script url to the script-preprocessor script
        https://bugs.webkit.org/show_bug.cgi?id=104384

        Reviewed by Pavel Feldman.

        Add url argument to the script-preprocessor script in PageAgent.reload()

        Test: inspector/debugger/debugger-script-preprocessor.html

        * bindings/v8/DebuggerScript.js:
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
        (WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
        (WebCore::ScriptDebugServer::handleV8DebugEvent):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::InjectedScriptManager::createInjectedScript):

2013-01-10  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: DataGrid refactoring: make cell editing more generic.
        https://bugs.webkit.org/show_bug.cgi?id=105849

        Reviewed by Pavel Feldman.

        Editing feature has been added to DataGrid to edit localStorage.
        Column numbers (0 and 1) are hardcoded.

        This patch makes column editing feature more generic: remove hardcoded
        colums, take "editable" column property into account.

        This patch is a prerequisite for cookie editing.

        * inspector/front-end/DOMStorageItemsView.js:
        Use meaningful column names.
        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype._ondblclick): Check column editability.
        (WebInspector.DataGrid.prototype._contextMenuInDataTable): Ditto.
        (WebInspector.DataGridNode.prototype.createCell):
        Supply cell element with column id.
        (WebInspector.DataGrid.prototype.columnIdentifierFromNode):
        Added utility method.
        (WebInspector.DataGrid.prototype._nextEditableColumn): Ditto.
        (WebInspector.DataGrid.prototype._keyDown): Calculate editable column.
        (WebInspector.DataGrid.prototype._editingCommitted): Ditto.
        (WebInspector.DataGrid.prototype._startEditing): Ditto.
        (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
        Refined parameter type / name.
        (WebInspector.DataGrid.prototype._resizerDragging):
        Fix resizer index property names.
        (WebInspector.DataGrid.prototype._startResizerDragging): Ditto.
        (WebInspector.DataGrid.prototype._positionResizers): Ditto.
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._updateDividersIfNeeded): Ditto.

2013-01-10  Matt Falkenhagen  <falken@chromium.org>

        Elements must be reattached when inserted/removed from top layer
        https://bugs.webkit.org/show_bug.cgi?id=105489

        Reviewed by Julien Chaffraix.

        Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
        as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.

        We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
        only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
        followed immediately by show() results in no style change.

        Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
               fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html

        * dom/Element.cpp:
        (WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
        removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
        (WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.

2013-01-10  Shinya Kawanaka  <shinyak@chromium.org>

        When a selected node in nested ShadowDOM is deleted, selection have wrong range.
        https://bugs.webkit.org/show_bug.cgi?id=106526

        Reviewed by Ryosuke Niwa.

        Since FrameSelection and htmlediting did not consider nested Shadow DOM, the FrameSelection still selects
        removed elements if selected nodes in nested Shadow DOM are removed.

        We have to use containsIncludingShadowDOM to handle with nested Shadow DOM correctly.

        Test: fast/dom/shadow/selection-in-nested-shadow.html

        * editing/FrameSelection.cpp:
        (WebCore::removingNodeRemovesPosition):
        * editing/htmlediting.cpp:
        (WebCore::updatePositionForNodeRemoval):

2013-01-10  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Refactoring: InsertionPoint could simplify its subclass hooks
        https://bugs.webkit.org/show_bug.cgi?id=106614

        Reviewed by Dimitri Glazkov.

        This change simplifies InsertionPoint overrides and give some flexibility to it.

        The change

        - Removes InsertionPoint::isSelectValid(). now ContentSelectorQuery parses given selector anyway.
          Invalid select attribute is handled by newly introduced matchTypeFor() method.
        - Introduces InsertionPoint::matchTypeFor() to give a chance each InsertionPoint to decide whether it
          accepts the given node as its distribution. Then it lets DetailsSummaryElement adopt it.
        - Pulls some HTMLShadowElement overrides up to InsertionPoint so that other upcoming InsertionPoint
          subclasses don't need to override them.

        No new tests. Refactoring.

        * html/HTMLDetailsElement.cpp:
        (WebCore::DetailsSummaryElement::DetailsSummaryElement):
        - Implemented matchTypeFor() to get rid of HTMLContentElement machinery which is compiled out in the upcoming change.
        (DetailsSummaryElement):
        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorQuery::ContentSelectorQuery):
        (WebCore::ContentSelectorQuery::matches):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::matchTypeFor): Added.
        (WebCore):
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):
        (WebCore::isHTMLContentElement):
        * html/shadow/HTMLShadowElement.cpp:
        * html/shadow/HTMLShadowElement.h:
        (HTMLShadowElement):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::emptySelectorList): Moved from HTMLShadowElement.
        (WebCore):
        * html/shadow/InsertionPoint.h:
        (WebCore::InsertionPoint::matchTypeFor): Added.
        (WebCore::InsertionPoint::selectorList): Moved from HTMLShadowElement.
        (InsertionPoint):
        * testing/Internals.cpp:
        (WebCore::Internals::isValidContentSelect):

2013-01-10  Dean Jackson  <dino@apple.com>

        Plugin snapshot label should take device resolution and inset into account
        https://bugs.webkit.org/show_bug.cgi?id=106619

        Reviewed by Simon Fraser.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::paintLabel): Take into account the inset in the label image.
        (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Look at the page's device scale, and adjust the label image accordingly.

2013-01-10  James Robinson  <jamesr@chromium.org>

        [chromium] Store scrollable layer's contents size for coordinated scrollable layers
        https://bugs.webkit.org/show_bug.cgi?id=106518

        Reviewed by Adrienne Walker.

        This stores a scrollable layer's contentsSize in the scroll layer's bounds, which is otherwise not useful. This
        value is currently calculated based on fragile knowledge of the tree structure immediately beneath a scrollable
        layer.

        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):

2013-01-10  Dan Beam  <dbeam@chromium.org>

        Implement AutocompleteErrorEvent#reason
        https://bugs.webkit.org/show_bug.cgi?id=105568

        Reviewed by Adam Barth.

        Test: fast/events/constructors/autocomplete-error-event-constructor.html

        * WebCore.gypi: Added AutocompleteErrorEvent.idl and AutocompleteErrorEvent.h for chromium port's build.
        * dom/AutocompleteErrorEvent.h: Added.
        (WebCore): Added new type of error named AutocompleteErrorEvent.
        (AutocompleteErrorEventInit): Added init params for AutocompleteErrorEvents (so initEvent() can be used).
        (AutocompleteErrorEvent): Added a new error event that inherits from Event but also has a reason for failure.
        (WebCore::AutocompleteErrorEvent::create): Factory function to create AutocompleteErrorEvents.
        (WebCore::AutocompleteErrorEvent::reason): The reason why a requestAutocomplete() invocation failed. Can be
                                                   "disabled", "cancel", or "invalid".
        (WebCore::AutocompleteErrorEvent::interfaceName): The name of the event's interface (for event.toString()).
        (WebCore::AutocompleteErrorEvent::AutocompleteErrorEvent): Various ways of constructing the error event.
        * dom/AutocompleteErrorEvent.idl: Added.
        * dom/EventNames.in: Added AutocompleteError to this list, based on REQUEST_AUTOCOMPLETE conditional.
        * html/HTMLFormElement.cpp: Updated form elements to dispatch AutocompleteErrorEvents on errors and to give
                                    more details (event.reason) when the request fails.
        (WebCore::HTMLFormElement::requestAutocomplete): Changed to newly added failure type "disabled".
        (WebCore::HTMLFormElement::finishRequestAutocomplete): Changed
        * html/HTMLFormElement.h: Added new results (ErrorDisabled, ErrorCancel, ErrorInvalid).
        * page/DOMWindow.idl: Added global event constructor for new AutocompleteErrorEvent() style event creation.

2013-01-10  Yong Li  <yoli@rim.com>

        HTMLMediaElement::resume() should schedule a load rather than load immediately
        https://bugs.webkit.org/show_bug.cgi?id=106587

        Reviewed by Eric Carlson.

        It is not always safe to start the jobs at the time resume() is called. That is why the jobs are
        suspended. It can also be suspended again right after being resumed.

        No new tests as there is no visible functional change, also it is a theoretically good-to-have change
        that doesn't fix any known cross-platform issue.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::resume): Replace load() with scheduleLoad().

2013-01-10  Adam Barth  <abarth@webkit.org>

        Add an ENABLE macro and a WebCore::Setting for the threaded parser
        https://bugs.webkit.org/show_bug.cgi?id=106595

        Reviewed by Benjamin Poulain.

        This patch adds both a WebCore::Setting and an ENABLE macro for the
        threaded parser. We plan to keep the ENABLE macro off by default for a
        while. The runtime setting will let us more easily conduct A/B
        experiments when the time arises.

        * page/Settings.in:

2013-01-10  Xianzhu Wang  <wangxianzhu@chromium.org>

        Regression(r129944): Heap-use-after-free in WebCore::computeNonFastScrollableRegion
        https://bugs.webkit.org/show_bug.cgi?id=99515

        Reviewed by Simon Fraser.

        The object used-after-freed is a destructed FrameView that is still in the m_scrollableAreas set of the parent FrameView. Actually it has been removed from m_scrollableAreas when setParent(0), but then is added back in updateScrollableAreaSet() because its frameViewParent() is still not 0 (though parent() is already 0).

        No new tests. The heap-use-after-free doesn't always cause crash so it can't be stably tested with a test case. Memory analysis tools like asan discovered the heap-use-after-free and verified that the patch can fix the issue.

        * page/FrameView.cpp:
        (WebCore::FrameView::parentFrameView): Checks if the FrameView has been removed from the parent.

2013-01-10  John Mellor  <johnme@chromium.org>

        Fix scale of screen.width, window.outerWidth and @media device-width when page scale not applied in compositor.
        https://bugs.webkit.org/show_bug.cgi?id=106460

        Reviewed by Kenneth Rohde Christiansen.

        screen.width, window.outerWidth and @media device-width should be in
        density independent (UI) pixels, not physical screen pixels.

        This already works on most ports (including iOS). However Chrome for
        Android currently internally sizes its windows in physical screen pixels
        instead of density independent pixels, and this leaks through in the
        sizes provided to WebCore.

        This patch scales these sizes appropriately before they reach JavaScript,
        on platforms where the applyPageScaleFactorInCompositor setting is false
        (i.e. just Chrome for Android). Once Chrome for Android switches over to
        the same coordinate space, the applyPageScaleFactorInCompositor setting
        will be removed, along with any code (such as this) that depends on it.

        The effect of this patch on Chrome for Android when viewing a page with
        a width=device-width viewport on a Galaxy Nexus (720x1280 @ dPR 2) is:
            @media device-width      changes from 720 to 360
            screen.width             changes from 720 to 360
            screen.availWidth        changes from 720 to 360
            window.outerWidth        changes from 720 to 360
            window.innerWidth                    remains 360 (at overview zoom)
            @media width                         remains 360
            document.documentElement.clientWidth remains 360
            document.documentElement.offsetWidth remains 360
            document.documentElement.scrollWidth remains 360
            document.body.clientWidth            remains 360
            document.body.offsetWidth            remains 360
            document.body.scrollWidth            remains 360
        And similarly for heights (though they are slightly less than 640, since
        toolbars etc. get subtracted from the available height).

        No new tests, as applyDeviceScaleFactorInCompositor appears to always be
        true in DumpRenderTree, so this situation cannot occur there.

        * page/Settings.in:
            Added applyDeviceScaleFactorInCompositor setting, which allows
            detecting whether we need to normalize the scale.
        * platform/chromium/PlatformScreenChromium.cpp:
        (WebCore::toUserSpace):
            Static function for normalizing screen rect scale.
        (WebCore::screenRect):
            Uses toUserSpace.
        (WebCore::screenAvailableRect):
            Uses toUserSpace.
        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::processSubtree):
            Use applyDeviceScaleFactorInCompositor instead of
            applyPageScaleFactorInCompositor, to scale the window rect correctly
            on platforms other than Chrome for Android.

2013-01-10  Florin Malita  <fmalita@chromium.org>

        Rename GraphicsContext::addRoundedRectClip
        https://bugs.webkit.org/show_bug.cgi?id=106581

        Reviewed by Simon Fraser.

        This patch renames GraphicsContext::addRoundedRectClip to clipRoundedRect for consistency
        with the other GC clipping methods.

        No new tests: no functional changes.

        * WebCore.order:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::clipRoundedRect):
        * platform/graphics/GraphicsContext.h:
        (GraphicsContext):
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::clipRoundedRect):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        (WebCore::RenderBox::pushContentsClip):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
        (WebCore::RenderBoxModelObject::paintBorder):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::clipToRect):
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore):
        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
        * rendering/RenderThemeMacShared.mm:
        (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
        (WebCore::RenderThemeMacShared::paintSliderTrack):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
        (WebCore::RenderThemeSafari::paintSliderTrack):
        * rendering/RenderThemeWinCE.cpp:
        (WebCore::RenderThemeWinCE::paintSearchFieldCancelButton):

2013-01-10  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Adding the new id attribute to MediaStream and MediaStreamTrack
        https://bugs.webkit.org/show_bug.cgi?id=106564

        Reviewed by Adam Barth.

        Specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
        MediaStream looses its label attribute and instead gets an id attribute.
        MediaStreamTrack gets an id attribute.

        Not testable yet, will add tests in a followup patch.

        * Modules/mediastream/MediaStream.h:
        (WebCore::MediaStream::label):
        (MediaStream):
        (WebCore::MediaStream::id):
        * Modules/mediastream/MediaStream.idl:
        * Modules/mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::id):
        (WebCore):
        * Modules/mediastream/MediaStreamTrack.h:
        * Modules/mediastream/MediaStreamTrack.idl:
        * platform/chromium/support/WebMediaStreamComponent.cpp:
        (WebKit::WebMediaStreamComponent::initialize):
        (WebKit):
        (WebKit::WebMediaStreamComponent::isEnabled):
        (WebKit::WebMediaStreamComponent::id):
        (WebKit::WebMediaStreamComponent::source):
        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
        (WebKit::WebMediaStreamDescriptor::label):
        (WebKit):
        (WebKit::WebMediaStreamDescriptor::id):
        * platform/mediastream/MediaStreamComponent.h:
        (WebCore::MediaStreamComponent::id):
        (WebCore::MediaStreamComponent::MediaStreamComponent):
        (MediaStreamComponent):
        * platform/mediastream/MediaStreamDescriptor.h:
        (WebCore::MediaStreamDescriptor::create):
        (WebCore::MediaStreamDescriptor::id):
        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
        (MediaStreamDescriptor):

2013-01-10  Ojan Vafai  <ojan@chromium.org>

        Flexboxes incorrectly add the scrollbar width to the intrinsic width of fixed-width items
        https://bugs.webkit.org/show_bug.cgi?id=106591

        Reviewed by Levi Weintraub.

        The scrollbar width should only be added if the width of the flex item
        is not fixed.

        Test: fast/css/fixed-width-intrinsic-width-excludes-scrollbars.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computePreferredLogicalWidths):
        Use shared helper method. This also happens to fix the vertical
        writing-mode case.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::instrinsicScrollbarLogicalWidth):
        (WebCore):
        * rendering/RenderBox.h:
        (RenderBox):
        Add a method for determining the scrollbar's contribution to the boxes
        intrinsic width.

        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
        Use shared code for determining the scrollbar width and only add the
        width when computing the intrinsic widths.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computePreferredLogicalWidths):\
        Just adding a FIXME to account for scrollbar width.

2013-01-10  Nate Chapin  <japhet@chromium.org>

        Replace unnecessary null-checks with an assert in MainResourceLoader::continueAfterNavigationPolicy.
        https://bugs.webkit.org/show_bug.cgi?id=106476

        Reviewed by Alexey Proskuryakov.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy): Null-checks for resourceLoader were
            added in an abundance of caution in r139150. Given that we know the load hasn't been cancelled,
            resourceLoader can only be null if continueAfterNavigationPolicy() has already been called
            before when m_substituteData is valid. continueAfterNavigationPolicy() is only called for redirects,
            and SubstituteData doesn't support redirects, so it is correct to assert that resourceLoader is non-null.

2013-01-10  Levi Weintraub  <leviw@chromium.org>

        ScrollingCoordinator touch event hit rects aren't converted to proper coordinates when in nested views
        https://bugs.webkit.org/show_bug.cgi?id=106383

        Reviewed by James Robinson.

        ScrollingCoordinator uses clippedOverflowRectForRepaint(0) to generate the bounds for a renderer's hit
        testing rect. The rect this returns is in the coordinates of its document. This change converts the
        rect to the outermost view's coordinate system using convertToContainingView.

        Tests: platform/chromium/fast/events/touch/touch-hit-rects-in-iframe.html

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::accumulateRendererTouchEventTargetRects):

2013-01-10  Levi Weintraub  <leviw@chromium.org>

        Regression(r137939): Heap-use-after-free in WebCore::accumulateDocumentEventTargetRects
        https://bugs.webkit.org/show_bug.cgi?id=106454

        Reviewed by James Robinson.

        Correctly removing child Documents from their parent's tracked touch handler maps when detaching and
        when their last touch event handler is removed.

        Test: fast/events/touch/nested-document-with-touch-handler-detached-crash.html

        * dom/Document.cpp:
        (WebCore::Document::detach):
        (WebCore::Document::didRemoveEventTargetNode):

2013-01-10  Nate Chapin  <japhet@chromium.org>

        REGRESSION(r138222): WebDocumentLoaderMac-related leaks seen on Leaks bot
        https://bugs.webkit.org/show_bug.cgi?id=106137

        Reviewed by Brady Eidson.

        Tested manually by comparing before and after leaks output for WK1-mac.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::receivedError): Call dispatchDidFailLoading() if
            a SubstituteData load fails or is cancelled. Without this call, load counts
            are not balanced on WebDocumentLoaderMac and it is retained forever.
        (WebCore::MainResourceLoader::didFinishLoading):

2013-01-10  Robert Kroeger  <rjkroege@chromium.org>

        Manually revert http://trac.webkit.org/changeset/136012
        https://bugs.webkit.org/show_bug.cgi?id=106580

        Reviewed by Dimitri Glazkov.

        136012 broke touch-scrolling of an overflow div in an iframe. Revert manually
        to work around conflicts.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleWheelEvent):

2013-01-10  Robert Hogan  <robert@webkit.org>

        REGRESSION(r136967): margin-top + overflow:hidden causes incorrect layout for internal floated elements
        https://bugs.webkit.org/show_bug.cgi?id=106374

        Reviewed by David Hyatt.

        r136397 treated any self-collapsing block that had a clearance delta as though it was clearing a float, but
        blocks that avoid floats can get a clearance delta too. So just ensure there is clearance on the block when deciding
        whether we need to add the margin back in before placing the float.

        Test: fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-and-float-child.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):

2013-01-10  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Color picker in Styles pane shows wrong initial color
        https://bugs.webkit.org/show_bug.cgi?id=106567

        Reviewed by Pavel Feldman.

        The RGB's G value for "crimson" was wrong.

        * inspector/front-end/Color.js:

2013-01-10  Tony Chang  <tony@chromium.org>

        Speed up supplemental dependency computation
        https://bugs.webkit.org/show_bug.cgi?id=106503

        Reviewed by Adam Barth.

        On my machine, generating supplemental IDL dependencies was taking about 18s
        because it has to run the C preprocessor on each IDL file. Avoid this by using
        a regular expression to find the Supplemental= value in each IDL file rather than
        doing a full parse. Now generating supplemental IDL dependencies is less than a
        second.

        preprocess-idls.pl used to also check IDL attributes against IDLAttributes.txt.
        Move this code to run in generate-bindings.pl. This change revealed that
        TestRunner.idl uses PassContext so add that to IDLAttributes.txt.

        No new tests, this is a build refactor. EWS bots should be green.

        * DerivedSources.make: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
        * DerivedSources.pri: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
        * GNUmakefile.am: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
        * UseJSC.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
        * UseV8.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
        * WebCore.gyp/WebCore.gyp: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
        * bindings/scripts/IDLAttributes.txt: Add PassContext needed by TestRunner.idl.
        * bindings/scripts/generate-bindings.pl:
        (loadIDLAttributes): Moved from preprocess-idls.pl.
        (checkIDLAttributes): Moved from preprocess-idls.pl.
        (checkIfIDLAttributesExists): Moved from preprocess-idls.pl.
        * bindings/scripts/preprocess-idls.pl:
        (getSupplementalFromIDLFile): Helper method to get Supplemental=* quickly.

2013-01-10  Max Vujovic  <mvujovic@adobe.com>

        [CSS Filters] RenderLayerCompositor::addToOverlapMap should take into account the filters outsets (ie. blur and drop-shadow)
        https://bugs.webkit.org/show_bug.cgi?id=94022

        Reviewed by Simon Fraser.

        When a layer has a filter that moves pixels, we need to add its entire bounds, including its
        outsets and children, to the overlap map. The filter can move the children's pixels
        anywhere in the layer, so we can't rely on the children's bounds.

        Eventually, we should avoid adding children to the overlap map if the parent's bounds used
        for overlap testing already include the children. I've added a FIXME for this optimization.

        Tests: compositing/filters/sw-layer-overlaps-hw-shadow.html
               compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow.html
               compositing/filters/sw-shadow-overlaps-hw-layer.html
               compositing/filters/sw-shadow-overlaps-hw-shadow.html

        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::overlapBounds):
            If necessary, return the calculated layer bounds, including the children. Otherwise,
            return the localBoundingBox.
        (RenderLayer):
        (WebCore::RenderLayer::overlapBoundsIncludeChildren):
            If the layer has a filter that moves pixels, return true.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::addToOverlapMap):
            Add the overlapBounds instead of the localBoundingBox to the overlap map.
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
            Use the overlapBounds instead of the localBoundingBox for overlap testing.

2013-01-09  Ojan Vafai  <ojan@chromium.org>

        intrinsic min-widths don't override width for file upload controls
        https://bugs.webkit.org/show_bug.cgi?id=106517

        Reviewed by Tony Chang.

        Separate out computing intrinsic width from perferred width so that
        we can use the intrinsic width correctly when applying min-width/max-width.
        The preferred width is the width used in its container's computation
        of its intrinsic width.

        This is the first in a series of patches making this work across
        the render tree. 

        Test: fast/forms/file/intrinsic-min-width-overrides-width.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::minIntrinsicLogicalWidth):
        (WebCore):
        (WebCore::RenderBox::maxIntrinsicLogicalWidth):
        (WebCore::RenderBox::computeIntrinsicLogicalWidths):
        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
        (WebCore):
        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
        * rendering/RenderFileUploadControl.h:
        (RenderFileUploadControl):

2013-01-10  Victor Carbune  <victor@rosedu.org>

        media/video-controls-captions.html fails after fixing https://bugs.webkit.org/show_bug.cgi?id=105536
        https://bugs.webkit.org/show_bug.cgi?id=106230

        Reviewed by Eric Carlson.

        Until Chromium has proper controls for lists of text tracks, the caption button
        needs to preserve its functionality.

        Updated TestExpectations to reactivate test.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Added explicit call to updateTextTrackDisplay.
        This enables hiding the tracks immediately.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Added extra check before rendering
        that captions should actually be displayed.

2013-01-10  Hajime Morrita  <morrita@google.com>

        ComposedShadowTreeWalker shouldn't be exposed to non-ShadowDOM classes
        https://bugs.webkit.org/show_bug.cgi?id=106505

        Reviewed by Dimitri Glazkov.

        This change hides ComposedShadowTreeWalker from non-ShadowDOM classes by

        - introducing thin wrapper functions on NodeRenderingTraversal and relacing
          CSTW callsites with it,
        - replacing ComposedShadowTreeWalker usage with AncestorChainWalker if possible and
        - moving AncestorChainWalker to its own file and including it on files
          which needs only AncestorChainWalker. This eliminates ComposedShadowTreeWalker.h inclusions.

        No new tests. No behavior change.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/AncestorChainWalker.cpp: Added. Extracted from ComposedShadowTreeWalker.cpp
        (WebCore):
        (WebCore::AncestorChainWalker::AncestorChainWalker):
        (WebCore::AncestorChainWalker::parent):
        * dom/AncestorChainWalker.h: Added. Extracted from ComposedShadowTreeWalker.h
        (WebCore):
        (AncestorChainWalker):
        (WebCore::AncestorChainWalker::get):
        (WebCore::AncestorChainWalker::crossingInsertionPoint):
        * dom/ComposedShadowTreeWalker.cpp:
        * dom/ComposedShadowTreeWalker.h:
        * dom/DOMAllInOne.cpp:
        * dom/ElementShadow.h:
        (WebCore::shadowOfParent):
        (WebCore):
        * dom/EventDispatcher.cpp:
        * dom/Node.cpp:
        * dom/NodeRenderingTraversal.cpp:
        (WebCore::NodeRenderingTraversal::nextInScope):
        (NodeRenderingTraversal):
        (WebCore::NodeRenderingTraversal::previousInScope): Added.
        (WebCore::NodeRenderingTraversal::parentInScope): Added.
        (WebCore::NodeRenderingTraversal::lastChildInScope): Added.
        * dom/NodeRenderingTraversal.h:
        (NodeRenderingTraversal):
        * dom/TreeScope.cpp:
        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::attach):
        * page/EventHandler.cpp:
        * page/FocusController.cpp: Replacing CSTW with NRT
        (WebCore):
        (WebCore::FocusNavigationScope::focusNavigationScopeOf):
        (WebCore::FocusController::findNodeWithExactTabIndex):
        (WebCore::nextNodeWithGreaterTabIndex):
        (WebCore::previousNodeWithLowerTabIndex):
        (WebCore::FocusController::nextFocusableNode):
        (WebCore::FocusController::previousFocusableNode):

2013-01-10  Zan Dobersek  <zandobersek@gmail.com>

        Remove the ENABLE_ANIMATION_API feature define occurences
        https://bugs.webkit.org/show_bug.cgi?id=106544

        Reviewed by Simon Fraser.

        The Animation API code was removed in r137243. The ENABLE_ANIMATION_API
        feature define handling still lingers in various build systems and configurations
        but is of no use, so it should be removed.

        No new tests - no new functionality.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.features.am.in:

2013-01-10  Robert Phillips  <robertphillips@chromium.org>

        Serialization of Gradients fails when PlatformContextSkia is not bitmap backed
        https://bugs.webkit.org/show_bug.cgi?id=106559

        Reviewed by Stephen White.

        This patch switches over from having platform/Skia improperly
        crack open the device to find the bitmap configuration to just
        specifying it directly.

        No new tests. This bug is Chromium specific and only occurs in a
        debugging tool (when serializing to a Skia-specific file format).

        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::createCompatibleDevice):

2013-01-10  Alexander Pavlov  <apavlov@chromium.org>

        The "outline-offset" property is not found in the computed style property list
        https://bugs.webkit.org/show_bug.cgi?id=106561

        Reviewed by Alexis Menard.

        Listed CSSPropertyOutlineOffset in the CSSComputedStyleDeclaration's computedProperties[].

        Test: fast/css/getComputedStyle/getComputedStyle-outline-offset.html

        * css/CSSComputedStyleDeclaration.cpp:

2013-01-10  David Faure  <faure@kde.org>

        PluginPackage::freeLibraryTimerFired asserts if plugin got loaded again meanwhile
        https://bugs.webkit.org/show_bug.cgi?id=106463

        Reviewed by Simon Hausmann.

        No new tests, this code path will be tested by bug 106140.

        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::freeLibraryTimerFired): skip unloading if loaded again meanwhile.

2013-01-10  Alexander Pavlov  <apavlov@chromium.org>

        CSSParser does not allow the absence of whitespace between "and" and "expression"
        https://bugs.webkit.org/show_bug.cgi?id=106458

        Reviewed by Antti Koivisto.

        The issue was that a construct similar to "and(max-width: 480px)" looks like a function call (token type FUNCTION), even though
        it is actually a MEDIA_AND followed by a parenthesized expression.

        Test: fast/css/media-rule-no-whitespace.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectFunctionTypeToken): Return if the detection has been successful.
        (WebCore::CSSParser::realLex): Test for media query tokens if function type detection has failed.
        * css/CSSParser.h:

2013-01-10  Alexis Menard  <alexis@webkit.org>

        ASSERT_NOT_REACHED in StylePropertySet::fontValue when accessing font style property through JS after setting style font size.
        https://bugs.webkit.org/show_bug.cgi?id=88866

        Reviewed by Alexander Pavlov.

        StylePropertySet::fontValue always assumed that it was called using
        style.font after a subsequent call which set the shorthand font. The
        ASSERT_NOT_REACHED assumed that all longhands of the font shorthand not
        set by the shorthand itself were set to initial. While it's true when
        we set the font shorthand (i.e all longhands are set to implicit initial)
        it is not true when you set the longhands individually. For example setting
        font-size will not set other font properties to initial. It is the behavior of all
        other shorthands in WebKit. When reconstructing the shorthand other
        properties tests whether the value of each longhands is initial or not
        (if not then we omit the value, as we should always construct the
        shortest shorthand possible) or if the value is set or not (if set then
        we include it in the shorthand if not then we omit it). The comment
        removed was also talking about invalid font property potentially built
        by fontValue(). So far appendFontLonghandValueIfExplicit will always
        construct a valid value as it takes care of adding ' ' or '/' when
        needed, so the return value is parsable and correct.

        Test: fast/css/font-shorthand-from-longhands.html

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
        (WebCore::StylePropertySet::fontValue):
        * css/StylePropertySet.h:

2013-01-10  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r139306.
        http://trac.webkit.org/changeset/139306
        https://bugs.webkit.org/show_bug.cgi?id=106550

        it broke inspector-protocol/nmi-webaudio-leak-test.html
        (Requested by loislo on #webkit).

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::reportMemoryUsage):
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::reportMemoryUsage):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::reportMemoryUsage):
        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::reportMemoryUsage):
        * css/MediaList.cpp:
        (WebCore::MediaList::reportMemoryUsage):
        * css/RuleSet.cpp:
        (WebCore::RuleData::reportMemoryUsage):
        (WebCore::RuleSet::reportMemoryUsage):
        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/StyleSheetContents.cpp:
        (WebCore::StyleSheetContents::reportMemoryUsage):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::reportMemoryUsage):
        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::reportMemoryUsage):
        * inspector/InspectorMemoryAgent.cpp:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::reportMemoryUsage):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::reportMemoryUsage):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::reportMemoryUsage):
        * loader/Prerenderer.cpp:
        (WebCore::Prerenderer::reportMemoryUsage):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::reportMemoryUsage):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::reportMemoryUsage):
        * page/Page.cpp:
        (WebCore::Page::reportMemoryUsage):

2013-01-10  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
        https://bugs.webkit.org/show_bug.cgi?id=106546

        Reviewed by Vsevolod Vlasov.

        Many nontrivial class members were instrumented in reportMemoryUsage methods.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::reportMemoryUsage):
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::reportMemoryUsage):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::reportMemoryUsage):
        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::reportMemoryUsage):
        * css/MediaList.cpp:
        (WebCore::MediaList::reportMemoryUsage):
        * css/RuleSet.cpp:
        (WebCore::RuleData::reportMemoryUsage):
        (WebCore::RuleSet::reportMemoryUsage):
        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/StyleSheetContents.cpp:
        (WebCore::StyleSheetContents::reportMemoryUsage):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::reportMemoryUsage):
        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::reportMemoryUsage):
        * inspector/InspectorMemoryAgent.cpp:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::reportMemoryUsage):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::reportMemoryUsage):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::reportMemoryUsage):
        * loader/Prerenderer.cpp:
        (WebCore::Prerenderer::reportMemoryUsage):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::reportMemoryUsage):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::reportMemoryUsage):
        * page/Page.cpp:
        (WebCore::Page::reportMemoryUsage):

2013-01-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Add gstreamer 1.0.5 to jhbuild
        https://bugs.webkit.org/show_bug.cgi?id=106178

        Reviewed by Laszlo Gombos.

        Remove GSTREAMER_INTERFACES_LIBRARIES from EFL
        CMake configuration.

        No new tests, no behavior change for layout tests.

        * PlatformEfl.cmake:

2013-01-09  Christophe Dumez  <christophe.dumez@intel.com>

        Unreviewed build fix after r139266.

        r139266 broke the debug build of the gstreamer backend due
        to a missing header include.

        No new tests, no behavior change.

        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

2013-01-09  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Allow createIndex/createObjectStore to be asynchronous
        https://bugs.webkit.org/show_bug.cgi?id=106377

        Reviewed by Tony Chang.

        Migrate implementations of createIndex/deleteIndex,
        createObjectStore/deleteObjectStore over to IDBDatabaseBackendImpl,
        so that they can be asynchronous in multi-process ports.

        Has the side effect of removing the last consumers of
        IDBIndexBackendImpl and IDBObjectStoreBackendImpl. The former
        is removed complete and the latter becomes a temporary namespace
        pending a further more mechanical code shuffle.

        A key refactoring effect is that the IDBDatabaseBackendImpl
        now contains the authoritative IDBDatabaseMetadata hierarchy,
        and updates to it are consolidated in one place rather than
        scattered across a parallel object tree.

        No new tests as this is just refactoring.

        * Modules/indexeddb/IDBBackingStore.cpp: Simplify objectstore/index loading and propagate errors.
        (WebCore::IDBBackingStore::getObjectStores):
        (WebCore::IDBBackingStore::getIndexes):
        * Modules/indexeddb/IDBBackingStore.h:
        (IDBBackingStore):
        * Modules/indexeddb/IDBCursorBackendImpl.cpp: Dependency cleanup.
        * Modules/indexeddb/IDBCursorBackendImpl.h: Dependency cleanup.
        (WebCore):
        * Modules/indexeddb/IDBDatabase.cpp: Frontend IDBObjectStores no longer hold onto backend objects.
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Add all create/deleteIndex operations from IDBIndexBackendImpl.
        (WebCore::CreateObjectStoreOperation::create):
        (WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
        (CreateObjectStoreOperation):
        (WebCore::DeleteObjectStoreOperation::create):
        (WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
        (DeleteObjectStoreOperation):
        (WebCore::CreateObjectStoreAbortOperation::create):
        (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
        (CreateObjectStoreAbortOperation):
        (WebCore::DeleteObjectStoreAbortOperation::create):
        (WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
        (DeleteObjectStoreAbortOperation):
        (CreateIndexOperation):
        (WebCore::CreateIndexOperation::create):
        (WebCore::CreateIndexOperation::CreateIndexOperation):
        (WebCore):
        (DeleteIndexOperation):
        (WebCore::DeleteIndexOperation::create):
        (WebCore::DeleteIndexOperation::DeleteIndexOperation):
        (CreateIndexAbortOperation):
        (WebCore::CreateIndexAbortOperation::create):
        (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
        (DeleteIndexAbortOperation):
        (WebCore::DeleteIndexAbortOperation::create):
        (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
        (WebCore::GetOperation::GetOperation):
        (WebCore::IDBDatabaseBackendImpl::addObjectStore):
        (WebCore::IDBDatabaseBackendImpl::removeObjectStore):
        (WebCore::IDBDatabaseBackendImpl::addIndex):
        (WebCore::IDBDatabaseBackendImpl::removeIndex):
        (WebCore::IDBDatabaseBackendImpl::openInternal):
        (WebCore::IDBDatabaseBackendImpl::metadata):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::CreateObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::createIndex):
        (WebCore::CreateIndexOperation::perform):
        (WebCore::CreateIndexAbortOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
        (WebCore::DeleteIndexOperation::perform):
        (WebCore::DeleteIndexAbortOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::get):
        (WebCore::IDBDatabaseBackendImpl::put):
        (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
        (WebCore::IDBDatabaseBackendImpl::count):
        (WebCore::DeleteRangeOperation::perform):
        (WebCore::DeleteObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal):
        (WebCore::IDBDatabaseBackendImpl::loadObjectStores): Load directly into metadata from backing store.
        (WebCore::CreateObjectStoreAbortOperation::perform):
        (WebCore::DeleteObjectStoreAbortOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore):
        (IDBDatabaseBackendImpl):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp: Removed.
        * Modules/indexeddb/IDBIndexBackendImpl.h: Removed.
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::IDBObjectStore): Frontend IDBIndex objects no longer hold onto backend.
        (WebCore::IDBObjectStore::createIndex): 
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::create):
        (IDBObjectStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (WebCore):
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::objectStore):
        * Modules/indexeddb/IDBTransaction.h:
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::objectStore):
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2013-01-09  John J. Barton  <johnjbarton@chromium.org>

        Web Inspector: Don't throw exceptions when we don't have a callstack
        https://bugs.webkit.org/show_bug.cgi?id=104849

        Reviewed by Pavel Feldman.

        Check array details.callFrames.length before accessing array;

        No new tests, but this fix may help us find the cause of 'other' reasons.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._debuggerPaused):

2013-01-09  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Data grid header and content cells are misaligned.
        https://bugs.webkit.org/show_bug.cgi?id=105795

        Reviewed by Pavel Feldman.

        Header and content tables have different width -> same percent values
        turn to different cell widths.

        * inspector/front-end/DataGrid.js: Add "corner" cell to all rows.
        * inspector/front-end/dataGrid.css: Apply "corner" rules to "td" nodes.
        (.data-grid .data-container): Remove artificial padding.

2013-01-09  Tien-Ren Chen  <trchen@chromium.org>

        Make caret repainting container-aware
        https://bugs.webkit.org/show_bug.cgi?id=103955

        Reviewed by Simon Fraser.

        Only invalidate local rects on the caret's repaint container,
        instead of invalidating an absolute rect on the whole view.

        Test: fast/repaint/caret-with-transformation.html

        * editing/FrameSelection.cpp:
        (WebCore::caretRendersInsideNode):
        (WebCore::caretRenderer):
        (WebCore::FrameSelection::caretRenderer):
        (WebCore::DragCaretController::caretRenderer):
        (WebCore::repaintCaretForLocalRect):
        (WebCore::FrameSelection::recomputeCaretRect):
        (WebCore::CaretBase::invalidateCaretRect):
        (WebCore::FrameSelection::focusedOrActiveStateChanged):
        * editing/FrameSelection.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintSelection):
        * rendering/RenderView.h:

2013-01-09  Ryosuke Niwa  <rniwa@webkit.org>

        Rebaseline the binding test after r139278.

        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::JSTestEventTarget::getOwnPropertySlot):

2013-01-09  Ryosuke Niwa  <rniwa@webkit.org>

        [JSC] REGRESSION(r135093): A form control with name=length overrides length property on form.elements
        https://bugs.webkit.org/show_bug.cgi?id=105775

        Reviewed by Sam Weinig.

        Fixed the bug by respecting properties on ancestor classes.

        Test: fast/dom/collection-length-should-not-be-overridden.html

        * bindings/js/JSDOMBinding.h:
        (WebCore::getStaticValueSlotEntryWithoutCaching): Added.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody): Use getStaticValueSlotEntryWithoutCaching to climb up the class
        hierarchy.

2013-01-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] [WebGL] Remove GLX dependencies from X11WindowResources..
        https://bugs.webkit.org/show_bug.cgi?id=106319

        Reviewed by Kenneth Rohde Christiansen.

        This patch removes GLX specific calls from X11WindowResources.
        This class is shared by both GLX and EGL implementations.

        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore::GLXTransportSurface::setGeometry):
        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
        (WebCore::X11OffScreenWindow::reSizeWindow):

2013-01-09  Huang Dongsung  <luxtella@company100.net>

        Remove deviceScaleFactor argument in computeMinimumScaleFactorForContentContained().
        https://bugs.webkit.org/show_bug.cgi?id=106500

        Reviewed by Kenneth Rohde Christiansen.

        deviceScaleFactor argument is not used after r139189.

        No new tests. Refactoring only.

        * dom/ViewportArguments.cpp:
        (WebCore::computeMinimumScaleFactorForContentContained):
        * dom/ViewportArguments.h:
        (WebCore):

2013-01-09  Elliott Sprehn  <esprehn@gmail.com>

        Node::containingShadowRoot should be constant time
        https://bugs.webkit.org/show_bug.cgi?id=106494

        Reviewed by Dimitri Glazkov.

        There's no reason to traverse up the tree to find the containing
        ShadowRoot when we already know if we're in a ShadowRoot by looking at
        the treeScope().

        No new tests, just refactoring.

        * dom/Node.cpp:
        (WebCore::Node::containingShadowRoot):

2013-01-09  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Distribution related code on ElementShadow should be minimized.
        https://bugs.webkit.org/show_bug.cgi?id=106294

        Reviewed by Dimitri Glazkov.

        This change moves ElementShadow::m_selectFeatures,
        m_shouldCollectSelectFeatureSet and related methods to
        ContentDistributor.

        There are also some renaming and small refactorings for better fit
        on new place:

        - shouldCollectSelectFeatureSet is renamed needsSelectorRuleSet for conciseness.
        - setShouldCollectSelectFeatureSet() which used recursion morphed into
          iterative willAffectSelector().
        - ensureDistributionFromDocument() becomes a static method.

        No new tests. Refactoring.

        * WebCore.exp.in:
        * dom/Element.cpp:
        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::addShadowRoot):
        (WebCore::ElementShadow::removeAllShadowRoots):
        * dom/ElementShadow.h:
        (ElementShadow):
        (WebCore::ElementShadow::invalidateDistribution):
        (WebCore::ElementShadow::ensureDistribution):
        (WebCore::ElementShadow::didAffectSelector):
        (WebCore::ElementShadow::willAffectSelector):
        (WebCore::ElementShadow::containingShadow):
        (WebCore):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ScopeContentDistribution::registerInsertionPoint):
        (WebCore::ScopeContentDistribution::unregisterInsertionPoint):
        (WebCore::ContentDistributor::ContentDistributor):
        (WebCore::ContentDistributor::ensureDistribution):
        (WebCore):
        (WebCore::ContentDistributor::ensureDistributionFromDocument):
        (WebCore::ContentDistributor::invalidateDistribution):
        (WebCore::ContentDistributor::ensureSelectFeatureSet):
        (WebCore::ContentDistributor::collectSelectFeatureSetFrom):
        (WebCore::ContentDistributor::didAffectSelector):
        (WebCore::ContentDistributor::willAffectSelector):
        (WebCore::ContentDistributor::didShadowBoundaryChange):
        * html/shadow/ContentDistributor.h:
        (ScopeContentDistribution):
        (WebCore::ContentDistributor::needsSelectFeatureSet):
        (WebCore::ContentDistributor::setNeedsSelectFeatureSet):
        (ContentDistributor):
        (WebCore::ContentDistributor::setValidity):
        (WebCore::ContentDistributor::needsInvalidation):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::parseAttribute):
        * html/shadow/HTMLContentElement.h:
        * html/shadow/HTMLShadowElement.cpp:
        (WebCore::HTMLShadowElement::olderShadowRoot):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::getDistributedNodes):
        (WebCore::InsertionPoint::insertedInto):
        (WebCore::InsertionPoint::removedFrom):
        * html/shadow/InsertionPoint.h:
        (WebCore::InsertionPoint::canAffectSelector):
        * testing/Internals.cpp:
        (WebCore::Internals::hasSelectorForIdInShadow):
        (WebCore::Internals::hasSelectorForClassInShadow):
        (WebCore::Internals::hasSelectorForAttributeInShadow):
        (WebCore::Internals::hasSelectorForPseudoClassInShadow):

2013-01-09  Shinya Kawanaka  <shinyak@chromium.org>

        Assert triggered in SelectorChecker::checkOneSelector when scrollbar (e.g. :horizontal) selector is specified.
        https://bugs.webkit.org/show_bug.cgi?id=106414

        Reviewed by Dimitri Glazkov.

        In SelectorChecker::checkOneSelector, scrollbar related pseudoType (e.g. :horizontal) is not handled anywhere.
        This caused ASSERT triggered. We have to check them.

        Test: fast/css/scrollbar-crash.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):

2013-01-09  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, fix build after http://trac.webkit.org/changeset/139262

        * Modules/webaudio/DefaultAudioDestinationNode.cpp:

2013-01-09  Chris Rogers  <crogers@google.com>

        Allow live/local audio input to be enabled only when needed
        https://bugs.webkit.org/show_bug.cgi?id=106490

        Reviewed by Kenneth Russell.
        
        WebAudio can process live/local audio input using a MediaStreamAudioSourceNode.
        But currently the audio back-end is not able to know when/if audio input will be
        needed, so it needs to assume the worst and initialize the system to support potential
        audio input in all cases.  For some audio back-ends this can end up being less efficient
        than initializing for audio output only.  This patch adds the ability for the audio back-end
        to be able to initialize itself for audio input later on, only when/if it's needed.

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createMediaStreamSource):
        * Modules/webaudio/AudioDestinationNode.h:
        (AudioDestinationNode):
        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
        (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
        (WebCore::DefaultAudioDestinationNode::initialize):
        (WebCore::DefaultAudioDestinationNode::uninitialize):
        (WebCore::DefaultAudioDestinationNode::createDestination):
        (WebCore):
        (WebCore::DefaultAudioDestinationNode::enableInput):
        * Modules/webaudio/DefaultAudioDestinationNode.h:
        (DefaultAudioDestinationNode):
        * Modules/webaudio/OfflineAudioDestinationNode.h:
        (OfflineAudioDestinationNode):
        (WebCore::OfflineAudioDestinationNode::sampleRate):
        * platform/audio/AudioDestination.h:
        (AudioDestination):
        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::AudioDestination::create):
        * platform/audio/mac/AudioDestinationMac.cpp:
        (WebCore::AudioDestination::create):

2013-01-09  Tim Horton  <timothy_horton@apple.com>

        Don't drop to huge tile mode if we're only slow-scrolling because of a page overlay
        https://bugs.webkit.org/show_bug.cgi?id=106502
        <rdar://problem/12959143>

        Reviewed by Simon Fraser.

        We only use the MainThreadScrollingReason "ForcedOnMainThread" if WebKit2 installs
        a page overlay (TiledCoreAnimationDrawingArea::didInstallPageOverlay), which clients
        can cause arbitrarily.

        We probably should still use default-sized tiles in this case (this will also
        prevent us from falling into gigantic tiles for WebKit2 find-in-page, among other things).

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::adjustTileCacheCoverage):

2013-01-09  Takashi Sakamoto  <tasak@google.com>

        border-radius with box-shadow is not rendered correctly
        https://bugs.webkit.org/show_bug.cgi?id=106404

        Reviewed by Hajime Morita.

        RoundedRect::isRenderable is wrong. So RoundedRect::adjustRadii
        is invoked for renderable RoundedRects.

        Test: fast/borders/border-radius-with-box-shadow.html

        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::isRenderable):
        Have to compare topLeft's height plus bottomLeft's height with
        rect's height and to compare topRight's height plus bottomRight's
        height with rect's height.

2013-01-09  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] accessibility/aria-labelledby-overrides-label.html requires a proper baseline
        https://bugs.webkit.org/show_bug.cgi?id=105638

        Reviewed by Martin Robinson.

        The test was failing for two reasons:
        - AccessibilityRenderObject::correspondingLabelForControlElement() was
          not ignoring the ARIA labelled-by property
        - AccessibilityController::accessibleElementById() was not implemented

        Because getting an element by ID cannot be done in the UIProcess, the
        decision was made to expose the element's ID as an accessible attribute
        of the object.

        In addition, fixing the bug in AccessibilityRenderObject made it possible
        to eliminate the Gtk platform-specific expectations for another test.

        No new tests; instead, the failing test was unskipped and a proper baseline
        provided.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
        Return null for objects where hasTextAlternative() is true.
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetAttributes): Expose the element's ID as an accessible
        attribute.

2013-01-09  Tony Gentilcore  <tonyg@chromium.org>

        Remove unused includes from HTMLTreeBuilder
        https://bugs.webkit.org/show_bug.cgi?id=106496

        Reviewed by Levi Weintraub.

        Noticed these while searching HTMLTreeBuilder for non-thread friendly deps.

        No new tests because no new functionality.

        * html/parser/HTMLTreeBuilder.cpp:

2013-01-09  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Detached identifier after mesh box type is not applied
        https://bugs.webkit.org/show_bug.cgi?id=105321

        Reviewed by Dean Jackson.

        Before this patch, if a "detached" identifier followed a mesh box type identifier, the
        detached identifier was not applied. In other words, the mesh would still be attached.

        For example:
        -webkit-filter: custom(url(...) mix(url(...) normal source-atop), 1 1 border-box detached);

        Although the mesh box type is being removed from the Filter Effects spec, for now, we
        continue to accept the mesh box type in parsing because of existing content. Eventually,
        custom filters will transition to an at-rule syntax, once it is defined.

        Test: css3/filters/custom/custom-filter-detached-mesh-with-mesh-box-type.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCustomFilter):
            In CSSParser, do not add the mesh box type identifier to the list that will be passed to
            StyleResolver. StyleResolver is expecting a "detached" identifier in that position and
            does not interpret mesh box types.

2013-01-09  Dan Winship  <danw@gnome.org>

        [Soup] Handle redirection inside WebKit
        https://bugs.webkit.org/show_bug.cgi?id=61122
        https://bugs.webkit.org/show_bug.cgi?id=88961

        Reviewed by Martin Robinson.

        Rather than using libsoup's built-in redirection handling (which
        doesn't do everything exactly the way WebKit wants, and can't
        handle redirects to non-http URIs anyway), process redirections
        ourselves.

        No new tests; unskips a few existing tests.

        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        (ResourceHandleInternal):
        * platform/network/soup/ResourceError.h:
        (ResourceError):
        * platform/network/soup/ResourceErrorSoup.cpp:
        (WebCore::ResourceError::transportError):
        (WebCore):
        (WebCore::ResourceError::httpError):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore):
        (WebCore::gotHeadersCallback):
        (WebCore::restartedCallback):
        (WebCore::shouldRedirect):
        (WebCore::doRedirect):
        (WebCore::redirectCloseCallback):
        (WebCore::redirectSkipCallback):
        (WebCore::cleanupSoupRequestOperation):
        (WebCore::sendRequestCallback):
        (WebCore::createSoupMessageForHandleAndRequest):
        (WebCore::createSoupRequestAndMessageForHandle):
        (WebCore::ResourceHandle::start):

2013-01-09  Florin Malita  <fmalita@chromium.org>

        [Skia] Implement GraphicsContext::addRoundedRectClip() using SkCanvas::clipRRect()
        https://bugs.webkit.org/show_bug.cgi?id=106461

        Reviewed by Stephen White.

        This patch adds a Skia-specific version of GraphicsContext::addRoundedRectClip() to take
        advantage of the SkCanvas::clipRRect() primitive.

        As a minor cleanup, the anonymous namespace in GraphicsContextSkia.cpp is extended to cover
        all the local helper functions.

        No new tests: coverage provided by existing tests.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore):
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::addRoundedRectClip):
        (WebCore):
        (WebCore::GraphicsContext::fillRoundedRect):
        * platform/graphics/skia/PlatformContextSkia.h:
        (WebCore::PlatformContextSkia::clipRRect):
        (WebCore):

2013-01-09  Andreas Kling  <akling@apple.com>

        SVG-as-image: Throw out cached bitmap renderings after they sit unused for some time.
        <http://webkit.org/b/106484>
        <rdar://problem/12983216>

        Reviewed by Antti Koivisto.

        Add a one-shot timer to SVGImageCache to self-clear the bitmap cache 30 seconds after last access.
        This prevents us from keeping huge ImageBuffers around in memory for the lifetime of the elements
        referencing that particular SVG file. (The ownership model is actually a bit more complicated
        but that's irrelevant to this issue.)

        10234kB progression on Membuster3.

        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::SVGImageCache):
        (WebCore::SVGImageCache::~SVGImageCache):
        (WebCore::SVGImageCache::clearBitmapCache):
        (WebCore::SVGImageCache::cacheClearTimerFired):
        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
        * svg/graphics/SVGImageCache.h:
        (SVGImageCache):

2013-01-09  Alexey Proskuryakov  <ap@apple.com>

        Assertion failure in SubresourceLoader::didFail when reloading
        https://bugs.webkit.org/show_bug.cgi?id=101416

        Reviewed by Nate Chapin.

        Test: http/tests/cache/network-error-during-revalidation.html

        * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFail): Handle revalidation.

2013-01-09  Alexandru Chiculita  <achicu@adobe.com>

        Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers
        https://bugs.webkit.org/show_bug.cgi?id=106419

        Reviewed by Simon Fraser.

        No new tests added, just un-skipped 3 existing tests.

        RenderLayerCompositor::updateCompositingLayers is being called with a pending layout, so computing the
        layers at that point would be useless & error-prone as they will be using incorrect layout values. If a layout is pending it means that 
        RenderLayerCompositor::updateCompositingLayers would get called again after the pending layout ends, so any values calculated at that point would be
        overwritten immediately. This patch removes the old ASSERT and makes it a return instead.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingLayers):

2013-01-09  Robert Hogan  <robert@webkit.org>

        REGRESSION(r111439): Focus ring is rendered incorrectly in fast/inline/continuation-outlines-with-layers.html
        https://bugs.webkit.org/show_bug.cgi?id=106064

        Reviewed by David Hyatt.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintObject): 

2013-01-09  Gregg Tavares  <gman@google.com>

        Add stub for CanvasProxy
        https://bugs.webkit.org/show_bug.cgi?id=106275

        Reviewed by Dean Jackson.

        No new tests as no new fuctionality exposed.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * html/canvas/CanvasProxy.cpp: Added.
        * html/canvas/CanvasProxy.h: Added.
        * html/canvas/CanvasProxy.idl: Added.

2013-01-09  Antti Koivisto  <antti@apple.com>

        Release FastMalloc thread caches on memory warning
        https://bugs.webkit.org/show_bug.cgi?id=106471

        Reviewed by Geoff Garen.
        
        FastMalloc keeps some memory in per-thread caches (currently 2MB each). We currently flush these caches on memory warning 
        for the main thread only. We should do it for other WebKit threads that use FastMalloc too.

        Call WTF::releaseFastMallocFreeMemory in a bunch of WebCore support threads on memory warning. Unfortunately we don't have 
        an uniform way of doing threads so this requires bunch of thread type specific code.
        
        Looks to be ~1% progression in membuster3 final and maximum numbers.

        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::releaseMemory):
        * storage/StorageTask.cpp:
        (WebCore::StorageTask::performTask):
        * storage/StorageTask.h:
        (WebCore::StorageTask::createReleaseFastMallocFreeMemory):
        * storage/StorageThread.cpp:
        (WebCore::storageThreads):
        (WebCore):
        (WebCore::StorageThread::StorageThread):
        (WebCore::StorageThread::~StorageThread):
        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThread):
        * storage/StorageThread.h:
        (StorageThread):
        * workers/WorkerThread.cpp:
        (WebCore::threadSetMutex):
        (WebCore::workerThreads):
        (WebCore::WorkerThread::workerThreadCount):
        (WebCore::WorkerThread::WorkerThread):
        (WebCore::WorkerThread::~WorkerThread):
        (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThread):
        (WebCore):
        * workers/WorkerThread.h:
        (WorkerThread):

2013-01-09  Tony Gentilcore  <tonyg@chromium.org>

        REGRESSION(r139141): Assertion failure in WebCore::HTMLConstructionSite::HTMLConstructionSite
        https://bugs.webkit.org/show_bug.cgi?id=106412

        Reviewed by Darin Adler.

        This corrects the assertion added in r139141. The assertion was designed to make sure that we are using the
        HTMLDocument class. XHTML documents also use HTMLDocument.

        No new tests because no new functionality.

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::HTMLConstructionSite):

2013-01-08  Ojan Vafai  <ojan@chromium.org>

        min-content gets the wrong value if min-width is set on some form controls
        https://bugs.webkit.org/show_bug.cgi?id=106389

        Reviewed by Tony Chang.

        Simplify the logic. The only exposed change in behavior is that
        m_minPreferredLogicalWidth gets set to m_maxPreferredLogicalWidth
        instead of 0 when min-width is set.

        Test: fast/forms/min-content-form-controls.html

        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::computePreferredLogicalWidths):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::computePreferredLogicalWidths):
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::computePreferredLogicalWidths):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::computePreferredLogicalWidths):

2013-01-09  Abhishek Arya  <inferno@chromium.org>

        Mitigate out-of-bounds access in InlineIterator
        https://bugs.webkit.org/show_bug.cgi?id=104812

        Reviewed by Levi Weintraub.

        Share code between InlineIterator::current and InlineIterator::previousInSameNode,
        thereby checking for access outside text renderer's length.

        * rendering/InlineIterator.h:
        (InlineIterator):
        (WebCore::InlineIterator::characterAt):
        (WebCore):
        (WebCore::InlineIterator::current):
        (WebCore::InlineIterator::previousInSameNode):

2013-01-09  Yongjun Zhang  <yongjun_zhang@apple.com>

        If ImageLoader's loadEventSender or errorEventSender fires after document is detached, the document will be leaked.

        https://bugs.webkit.org/show_bug.cgi?id=106394

        Reviewed by Alexey Proskuryakov.

        ImageLoader's loadEventSender and errorEventSender schedule event dispatching in separate timers and refs
        the Element in updatedHasPendingEvent.  If the Document is detached before either eventSender dispatches,
        we would leak the Document since we bail out early in dispatchPendingLoadEvent or dispatchPendingErrorEvent,
        without deref-ing the Element itself.

        No new tests.  Verified manually by using heap tool to count the living HTMLDocuments.

        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::dispatchPendingLoadEvent): also call updatedHasPendingEvent to deref the Element if
                    the document is detached.
        (WebCore::ImageLoader::dispatchPendingErrorEvent): ditto.

2013-01-09  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r139143.
        http://trac.webkit.org/changeset/139143
        https://bugs.webkit.org/show_bug.cgi?id=106135

        Broke Chromium content_browsertests.

        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBDatabase::open):
        (WebCore::LevelDBDatabase::openInMemory):

2013-01-09  Sam Weinig  <sam@webkit.org>

        Add Settings.in and make_settings.pl to the project.

        Reviewed by Anders Carlsson.

        * WebCore.xcodeproj/project.pbxproj:

2013-01-09  Ojan Vafai  <ojan@chromium.org>

        marquee special-case in RenderBlock is not needed
        https://bugs.webkit.org/show_bug.cgi?id=106396

        Reviewed by Simon Fraser.

        This was added in http://trac.webkit.org/changeset/105772. The layout test
        in that patch (which is disabled) works and the original site that was broken
        also still works.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computePreferredLogicalWidths):

2013-01-09  Tony Chang  <tony@chromium.org>

        Automatically generate Settings::unifiedTextCheckerEnabled
        https://bugs.webkit.org/show_bug.cgi?id=106382

        Reviewed by Adam Barth.

        No new tests, no change in behavior. This is covered by existing editing/spelling tests.

        * page/Settings.cpp:
        (WebCore): Move default value into a global so we can generate the initializer.
        (WebCore::Settings::Settings): Remove initializer code that is now generated.
        * page/Settings.h:
        (Settings): Remove getters and setters.
        * page/Settings.in: Add entry to be generated.
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup): Remove backup since the generated code does this.
        (WebCore::InternalSettings::Backup::restoreTo): Remove restore code since the generated code does this.
        * testing/InternalSettings.h:
        (InternalSettings): Remove member variable.
        * testing/InternalSettings.idl: The getter was unused so it's being removed. The setter is now generated.

2013-01-09  Alexis Menard  <alexis@webkit.org>

        Implement CSS computed style value for transition shorthand
        https://bugs.webkit.org/show_bug.cgi?id=105035

        Reviewed by Dean Jackson.

        Implement support for query the transition and webkit-transition
        shorthand from the computed style.

        Test: transitions/transitions-parsing.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::createTransitionPropertyValue): Factor the code to create the
        correct value into a function to reuse it for the shorthand.
        (WebCore::getTransitionPropertyValue):
        (WebCore::createTimingFunctionValue): Little refactor, the intermediate
        local variables are not needed.
        (WebCore::getTimingFunctionValue):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2013-01-09  Hajime Morrita  <morrita@google.com>

        Document::setActiveNode() should be Document::setActiveElement()
        https://bugs.webkit.org/show_bug.cgi?id=106437

        Reviewed by Ojan Vafai.

        No new tests. No functoinal change.

        * dom/Document.cpp:
        (WebCore::Document::setActiveElement):
        (WebCore::Document::updateHoverActiveState):
        * dom/Document.h:
        (Document):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::innerElement):
        (WebCore):
        * rendering/HitTestResult.h:
        (HitTestResult):

2013-01-09  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow DOM]: ShadowRoot has wrong nodeName attribute
        https://bugs.webkit.org/show_bug.cgi?id=104995

        Reviewed by Dimitri Glazkov.

        According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
        We remove ShadowRoot::nodeName.

        No new tests, covered by existing tests.

        * dom/ShadowRoot.cpp:
        * dom/ShadowRoot.h:
        (ShadowRoot):

2013-01-09  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Regions] Selecting text through nested regions causes weird and unclearable selection  
        https://bugs.webkit.org/show_bug.cgi?id=105641

        Reviewed by David Hyatt.

        If you have a region with a nested region inside what is rendered below the base region and you are trying select text
        starting from the base region and ending it in the nested region, firstly you got a weird selection, secondly you can't
        clear the selection. We could prevent this strange behavior by preventing the selection through different region flows.

        Test: fast/regions/selecting-text-through-different-region-flows.html

        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection): Don't allow selection when trying to select different region flows.

2013-01-09  Hugo Parente Lima  <hugo.lima@openbossa.org>

        Regression(r138681) : Add HAVE(ACCESSIBILITY) guard to atk files, fix for a fix.
        https://bugs.webkit.org/show_bug.cgi?id=106448

        Reviewed by Gyuyoung Kim.

        Some atk files don't use HAVE(ACCESSIBILITY). It might make build errors when
        the macro isn't enabled.

        * accessibility/atk/WebKitAccessibleHyperlink.h:
        * accessibility/atk/WebKitAccessibleInterfaceAction.h:
        * accessibility/atk/WebKitAccessibleInterfaceComponent.h:
        * accessibility/atk/WebKitAccessibleInterfaceHypertext.h:

2013-01-09  Chris Fleizach  <cfleizach@apple.com>

        AX: native popup buttons should not use textUnderElement for their title
        https://bugs.webkit.org/show_bug.cgi?id=106349

        Reviewed by Ryosuke Niwa.

        Chromium relies on the older title() method to return its title. As a result, we also
        need to handle the case of <select> element pop up buttons returning the textUnderElement().

        No new tests. Fix existing break.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::title):

2013-01-09  Jussi Kukkonen  <jussi.kukkonen@intel.com>

        IndexedDB: Remove ASSERTs that can't assert but result in compiler warnings
        https://bugs.webkit.org/show_bug.cgi?id=106442

        Reviewed by Kentaro Hara.

        IDBLevelDBCoding::m_metaDataType has been changed to unsigned
        so ASSERT(m_metaDataType >= 0) is no longer useful: the compiler
        warnings however create build difficulties at least with EFL.

        * Modules/indexeddb/IDBLevelDBCoding.cpp:
        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType):
        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):

2012-12-29  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 1/N
        https://bugs.webkit.org/show_bug.cgi?id=106445

        Reviewed by Vsevolod Vlasov.

        The patch has almost mechanical changes.

        * bindings/v8/V8Binding.cpp:
        * bindings/v8/V8ValueCache.cpp:
        (WTF):
        (WebCore::StringCache::reportMemoryUsage):
        (WebCore):
        * dom/Document.cpp:
        (WebCore::Document::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/ElementRareData.cpp:
        (WebCore::ElementRareData::reportMemoryUsage):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::reportMemoryUsage):
        * page/Frame.cpp:
        (WebCore::Frame::reportMemoryUsage):
        * page/Page.cpp:
        (WebCore::Page::reportMemoryUsage):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::reportMemoryUsage):
        * platform/network/FormData.cpp:
        (WebCore::FormData::reportMemoryUsage):
        (WebCore):
        (WebCore::FormDataElement::reportMemoryUsage):
        * platform/network/FormData.h:
        (FormDataElement):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::reportMemoryUsage):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):

2013-01-09  Florin Malita  <fmalita@chromium.org>

        [Skia] Implement GraphicsContext::fillRoundedRect() using SkCanvas::drawRRect()
        https://bugs.webkit.org/show_bug.cgi?id=106366

        Reviewed by Stephen White.

        Skia provides rounded-rect primitives, so we can avoid degrading fillRoundedRect() to
        drawPath().

        Due to subtle pixel differences (not visually noticeable), switching from drawPath() to
        drawRRect() requires rebaselining some of the existing results.

        No new tests: coverage provided by existing tests.

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::fillRoundedRect):
        * platform/graphics/skia/PlatformContextSkia.h:
        (WebCore::PlatformContextSkia::drawRRect):
        (WebCore):

2013-01-09  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        Web Inspector: cannot undock inspector when window size is too small
        https://bugs.webkit.org/show_bug.cgi?id=106054

        Reviewed by Pavel Feldman.

        Consider dockingUnavailable flag only when dockSide is in undocked
        state.

        * inspector/front-end/DockController.js:
        (WebInspector.DockController.prototype._updateUI.get document):

2013-01-09  Zeno Albisser  <zeno@webkit.org>

        [Qt] WebGL content is incomplete when using multiple canvas
        https://bugs.webkit.org/show_bug.cgi?id=106313

        While we are using double buffering for WebGL,
        we do not use a drawable that implements a mechanism
        for swapping buffers.
        Therefore we have to make sure that all GL commands
        have been executed properly before copying the texture
        onto the GraphicsSurface.

        Reviewed by Simon Hausmann.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):

2013-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.list.am: Add missing headers.

2013-01-09  Zeno Albisser  <zeno@webkit.org>

        [Qt][Mac] GraphicsSurface does not need glEnable/glDisable for texture targets.
        https://bugs.webkit.org/show_bug.cgi?id=106310

        glEnable/glDisable for texture targets is only necessary
        when using the fixed function pipeline.
        Enabling or disabling the target might cause unexpected
        behavior to texture bindings and is therefore considered harmful.

        Reviewed by Noam Rosenthal.

        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::createTexture):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
        (WebCore::GraphicsSurface::platformCopyToGLTexture):

2013-01-09  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: min/max attributes should not make all fields read-only
        https://bugs.webkit.org/show_bug.cgi?id=106422

        Reviewed by Kent Tamura.

        Do not make day-field of date input and month-field of month input readonly
        even if min and max are the same.

        Tests: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
               fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField): Added check for date type.

2013-01-09  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of week field should respect min/max attributes
        https://bugs.webkit.org/show_bug.cgi?id=106416

        Reviewed by Kent Tamura.

        Make step-up/-down of the week field respect the min/max attributes of the element.
        Note that it still accepts any keyboard inputs (the element
        becomes 'invalid' state when out-of-range values entered).

        Tests: fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html
               fast/forms/week-multiple-fields/week-multiple-fields-stepup-stepdown-from-renderer.html

        * css/html.css: Add a CSS rule for week field.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField):
        Compute minimum/maximum values of week field from the min/max parameters of the element.
        * html/shadow/DateTimeFieldElements.cpp:
        (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement): Add mininum/maximum arguments.
        (WebCore::DateTimeWeekFieldElement::create): Ditto.
        (WebCore::DateTimeWeekFieldElement::clampValueForHardLimits): Added.
        * html/shadow/DateTimeFieldElements.h:
        (DateTimeWeekFieldElement): Add mininum/maximum arguments and declare clampValueForHardLimits.

2013-01-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Caret is incorrectly painted for a contenteditable <div> containing a <br> in vertical writing mode
        https://bugs.webkit.org/show_bug.cgi?id=103621

        Reviewed by Ryosuke Niwa.

        While computing the caret rect for the given specific scenario, we
        canonicalize our position. For the upstream (or downstream) block flow
        candidates a check to ignore the nodes having renderers with zero height
        is carried out. This is where we fail our check in the vertical writing mode.

        In the vertical writing mode, instead of verifying the height of the descendants
        of the candidate nodes, a check for their width should be carried out.

        For our case, i.e. the <br> element contained inside the div, the bounding box
        in the vertical writing mode would have a width greater than zero and height
        equal to zero (as is to be expected in the vertical mode).

        Thus, we need to make a check against the logical height. For the vertical
        writing mode, the logical height should return the width of the computed
        bounding box.

        Test: editing/selection/caret-in-div-containing-br-in-vertical-mode.html

        * dom/Position.cpp:
        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
        Have modified the code to verify against the logical height, instead
        of simply the height, both in case of RenderText and RenderBox.
        The logical height of the computed rects returns a value according
        to the writing mode.

        For the RenderText a new function, linesLogicalBoundingBox() is called
        which returns the values depending on the writing mode.
        Similarly, on the RenderBox, pixelSnappedLogicalHeight() is called which
        too takes care of the writing mode internally. (borderBoundingBox()
        internally calls on the pixelSnappedRect).

        * rendering/RenderText.cpp:
        (WebCore::RenderText::linesLogicalBoundingBox):
        (WebCore):
        * rendering/RenderText.h:
        (RenderText):
        New function is added to return the logical linesBoundingBox, i.e.,
        the width and height of the linesBoundingBox are set according to
        the writing mode.

2013-01-08  Tony Gentilcore  <tonyg@chromium.org>

        Remove a few unused includes from HTMLTreeBuilder
        https://bugs.webkit.org/show_bug.cgi?id=106401

        Reviewed by Adam Barth.

        I happened to notice these while attempting to remove non-thread friendly deps from HTMLTreeBuilder.

        No new tests because no new functionality.

        * html/parser/HTMLTreeBuilder.cpp:

2013-01-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Regression(r138681): Add HAVE(ACCESSIBILITY) guard to atk files
        https://bugs.webkit.org/show_bug.cgi?id=106290

        Reviewed by Martin Robinson.

        Some atk files don't use HAVE(ACCESSIBILITY). It might make build errors when
        the macro isn't enabled.

        * accessibility/atk/AXObjectCacheAtk.cpp:
        * accessibility/atk/WebKitAccessibleHyperlink.h:
        * accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceAction.h:
        * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceDocument.h:
        * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
        * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceImage.h:
        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceSelection.h:
        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceTable.h:
        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceText.h:
        * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
        * accessibility/atk/WebKitAccessibleInterfaceValue.h:
        * accessibility/atk/WebKitAccessibleUtil.cpp:
        * accessibility/atk/WebKitAccessibleUtil.h:
        * accessibility/atk/WebKitAccessibleWrapperAtk.h:

2013-01-08  Matt Falkenhagen  <falken@chromium.org>

        Make NodeRenderingContext::parentRenderer and nextRenderer top layer aware
        https://bugs.webkit.org/show_bug.cgi?id=103477

        Reviewed by Hajime Morita.

        Original patch by Elliott Sprehn (minor code and layout tests added).

        Instead of using adjustInsertionPointForTopLayerElement and reassigning
        pointers passed by reference we should just make nextRenderer and parentRenderer
        handle the top layer properly. Right now they would return the wrong values
        since we only correctly handle the top layer during renderer creation.

        This makes handling of top layer elements consistent with handling of
        other special renderering systems like flow threads.

        Tests: fast/dom/HTMLDialogElement/modal-dialog-in-replaced-renderer.html
               fast/dom/HTMLDialogElement/modal-dialog-in-table-column.html
               fast/dom/HTMLDialogElement/modal-dialog-sibling.html

        * dom/NodeRenderingContext.cpp:
        (WebCore::isRendererReparented): Added this helper function. We must skip
        renderers that are reparented in nextRenderer and previousRenderer.
        (WebCore):
        (WebCore::adjustInsertionPointForTopLayerElement): Removed this method.
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):
        (WebCore::NodeRenderingContext::parentRenderer):
        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):

2013-01-08  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r135836): Invalid user input for input[type=number] should be cleared by input.value=""
        https://bugs.webkit.org/show_bug.cgi?id=106284

        Reviewed by Hajime Morita.

        No new tests. Updates fast/forms/number/number/validity-badinput.html.

        * html/NumberInputType.cpp:
        (WebCore::NumberInputType::setValue):
        If the new sanitized value is empty and innerTextValue is a bad input
        (it means !valueChanged && !innerTextValue().isEmpty() because the new
        sanitized value is empty), we need to update innerTextValue with the
        empty string.
        * html/NumberInputType.h:
        (NumberInputType): Declare setValue.

2013-01-08  Nate Chapin  <japhet@chromium.org>

        REGRESSION(r138222?): [Mac WK1] http/tests/appcache/main-resource-redirect.html asserts in WebFrameLoaderClient::dispatchDidFinishLoading
        https://bugs.webkit.org/show_bug.cgi?id=106123

        Reviewed by Alexey Proskuryakov.

        No new tests, fixing an existing test.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy): Before calling m_resource->removeClient(this)
            and potentially canceling the ResourceLoader, ensure it won't send resource load callbacks.
        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::setSendCallbackPolicy):

2013-01-08  Alexandru Chiculita  <achicu@adobe.com>

        Assert in RenderGeometryMap::mapToContainer
        https://bugs.webkit.org/show_bug.cgi?id=106068

        Reviewed by Simon Fraser.

        The assert was due to a pending layout, so the values used to compute the layer bounding boxes were incorrect.
        That was because of the Document::setVisualUpdatesAllowed mechanism, which triggers a compositor update
        and a repaint, but before this patch didn't check whether a layout was pending or not.

        Added a check in Document::setVisualUpdatesAllowed for pending layouts and bailed when such case happened.
        A layout will come anyway and trigger the correct updates. Couldn't not force an inline layout at that time
        as this function is sometimes called really soon, when the WebKit parts are not fully created yet and updates were
        calling back into some client callbacks that were not ready.

        Also added an assert in RenderLayerCompositor::updateCompositingLayers to check for other cases that might
        try to update the layers with a layout pending. That one led to finding an issue in the RenderMarquee, which
        was updating on a timer callback. It might happen that a layout is pending while this timer fires and it 
        tries to update the scroll position of the layers while a layout is still due.

        There was already a protection to bail if a layout is pending in RenderMarquee::timerFired, so I've just broadened the scope
        to the whole RenderView to catch all the layout requests.

        Tests: compositing/geometry/assert-layout-not-done.html
               compositing/geometry/assert-marquee-timer.html

        * dom/Document.cpp:
        (WebCore::Document::setVisualUpdatesAllowed):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingLayers):
        * rendering/RenderMarquee.cpp:
        (WebCore::RenderMarquee::timerFired):

2013-01-08  Justin Novosad  <junov@google.com>

        CanvasRenderingContext2D::setFont argument may reference destroyed object
        https://bugs.webkit.org/show_bug.cgi?id=106385

        Reviewed by Abhishek Arya.

        No new tests: covered by fast/canvas/canvas-measureText.html

        This is a re-write of r138994.  Fixing bug in setFont instead of
        workaround at call site. 

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont):
        (WebCore::CanvasRenderingContext2D::accessFont):

2013-01-08  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
        https://bugs.webkit.org/show_bug.cgi?id=106135

        Reviewed by Tony Chang.

        IDBEnv only changes the name of the histogram where errors are logged.

        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBDatabase::open):
        (WebCore::LevelDBDatabase::openInMemory):

2013-01-08  Brandon Jones  <bajones@chromium.org>

        Make WebGLRenderingContext inherit from ActiveDOMObject
        https://bugs.webkit.org/show_bug.cgi?id=104733

        Reviewed by Adam Barth.

        When ActiveDOMObject::stop is called on the WebGLRenderingContext the
        DrawingBuffer and GraphicsContext3D instances are forcibly released in
        order to keep GPU memory utilization to a minimum.

        Incorporated new layout test based on one just added to the WebGL
        conformance suite. Also tested manually by reloading and
        navigating between many WebGL apps.

        Test: fast/canvas/webgl/context-release-upon-reload.html

        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
        (WebCore::V8HTMLCanvasElement::getContextCallback):
            Removed garbage collection hack added in Bug 76255.
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::create):
            Call suspendIfNeeded per ActiveDOMObject contract.
        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
            Call ActiveDOMObject constructor.
        (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
            Call destroyGraphicsContext3D.
        (WebCore::WebGLRenderingContext::destroyGraphicsContext3D):
            Drop DrawingBuffer backing store and delete GraphicsContext3D.
        (WebCore::WebGLRenderingContext::hasPendingActivity):
            Always return false.
        (WebCore::WebGLRenderingContext::stop):
            Force lost context upon page reload or navigation.
        * html/canvas/WebGLRenderingContext.h:
        (WebGLRenderingContext):
            Inherit from ActiveDOMObject and override notifications.
        * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
        (WebCore):
        (WebCore::DrawingBuffer::clearPlatformLayer):
            Add currently no-op implementation.
        * platform/graphics/cairo/DrawingBufferCairo.cpp:
        (WebCore):
        (WebCore::DrawingBuffer::clearPlatformLayer):
            Add currently no-op implementation.
        * platform/graphics/chromium/DrawingBufferChromium.cpp:
        (WebCore::DrawingBufferPrivate::clearTextureId):
            Clear texture ID from compositor's layer.
        (DrawingBufferPrivate):
        (WebCore::DrawingBuffer::framebuffer):
            Moved around to reduce number of #ifdefs.
        (WebCore):
        (WebCore::DrawingBuffer::platformLayer):
        (WebCore::DrawingBuffer::clearPlatformLayer):
            Tell compositor to stop referencing DrawingBuffer's texture.
        * platform/graphics/clutter/DrawingBufferClutter.cpp:
        (WebCore):
        (WebCore::DrawingBuffer::clearPlatformLayer):
            Add currently no-op implementation.
        * platform/graphics/gpu/DrawingBuffer.cpp:
        (WebCore::DrawingBuffer::clear):
            Call clearPlatformLayer before deleting OpenGL resources.
        * platform/graphics/gpu/DrawingBuffer.h:
        (DrawingBuffer):
            Add clearPlatformLayer.
        * platform/graphics/gpu/mac/DrawingBufferMac.mm:
        (WebCore):
        (WebCore::DrawingBuffer::clearPlatformLayer):
            Add currently no-op implementation.
        * platform/graphics/gpu/qt/DrawingBufferQt.cpp:
        (WebCore):
        (WebCore::DrawingBuffer::clearPlatformLayer):
            Add currently no-op implementation.

2013-01-08  Tony Gentilcore  <tonyg@chromium.org>

        Remove dependency on Document from HTMLConstructionSite::inQuirksMode()
        https://bugs.webkit.org/show_bug.cgi?id=106375

        Reviewed by Adam Barth.

        This is another step towards removing main thread object dependencies
        from the parser.

        No new tests because no new functionality.

        * dom/Document.h:
        * html/HTMLDocument.cpp:
        * html/HTMLDocument.h:
        (HTMLDocument):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::HTMLConstructionSite):
        (WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
        (WebCore):
        (WebCore::HTMLConstructionSite::setCompatibilityMode):
        (WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):
        (WebCore::HTMLConstructionSite::insertDoctype):
        (WebCore::HTMLConstructionSite::inQuirksMode):
        * html/parser/HTMLConstructionSite.h:
        (HTMLConstructionSite):

2013-01-08  Florin Malita  <fmalita@chromium.org>

        Remove unused GraphicsContext::addInnerRoundedRectClip()
        https://bugs.webkit.org/show_bug.cgi?id=106376

        Reviewed by Andreas Kling.

        Since there don't seem to be any users left for it, remove addInnerRoundedRectClip().

        No new tests: no functional changes.

        * platform/graphics/GraphicsContext.h:
        (GraphicsContext):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
        * platform/graphics/qt/GraphicsContextQt.cpp:
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore):
        * platform/graphics/wince/GraphicsContextWinCE.cpp:
        * platform/graphics/wx/GraphicsContextWx.cpp:

2013-01-08  Justin Novosad  <junov@google.com>

        Color bleeding with rounded rectangles on high dpi displays
        https://bugs.webkit.org/show_bug.cgi?id=106373

        Reviewed by Simon Fraser.

        Test: fast/backgrounds/gradient-background-leakage-hidpi.html

        Avoid using the BackgroundBleedShrinkBackground draw strategy for
        RenderBox when border width is less than two layout units. This
        is because rounded rectangles are always snapped to integer layout
        coordinates, even with subpixel layout enabled.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::determineBackgroundBleedAvoidance):

2013-01-08  Elliott Sprehn  <esprehn@chromium.org>

        Merge getLineAtIndex into RenderBlock::lineAtIndex
        https://bugs.webkit.org/show_bug.cgi?id=106379

        Reviewed by Eric Seidel.

        getLineAtIndex can be merged into lineAtIndex, which was it's only caller.

        No new tests, just refactoring.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::lineAtIndex):
        (WebCore::RenderBlock::lineCount):
        * rendering/RenderBlock.h:
        (RenderBlock):

2013-01-08  Rafael Weinstein  <rafaelw@chromium.org>

        [HTMLTemplateElement] Allow <template> content to be inspected
        https://bugs.webkit.org/show_bug.cgi?id=105839

        Reviewed by Pavel Feldman.

        In addition to the plumbing which allows template contents to be
        displayed within the inspector, this patch adds a manually-managed
        weakref from the template document back to its host document (typically
        the creator). This is required so that the inspector agent can be found
        for template elements.

        * dom/Document.cpp:
        (WebCore::Document::~Document):
        (WebCore::Document::templateDocument):
        * dom/Document.h:
        (Document):
        (WebCore::Document::setTemplateDocumentHost):
        (WebCore::Document::templateDocumentHost):
        * editing/markup.cpp:
        (WebCore::createFragmentForInnerOuterHTML):
        * html/HTMLTemplateElement.cpp:
        (WebCore::HTMLTemplateElement::content):
        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode):
        (WebInspector.DOMNode.prototype.hasChildNodes):
        (WebInspector.DOMNode.prototype._insertChild):
        (WebInspector.DOMNode.prototype._setChildrenPayload):

2013-01-08  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Distribution related code on ShadowRoot should be minimized.
        https://bugs.webkit.org/show_bug.cgi?id=106282

        Reviewed by Dimitri Glazkov.

        ShadowRoot had a certain amount of logic which is dedicated for
        node distribution computation.  These code is going to be compiled
        out (Bug 103339) and better be part of the node distribution
        algorithm, which is ScopeContentDistribution class.

        This change

        - Renames ShadowRootContentDistributionData to
          ScopeContentDistribution.  New name is concise and a bit more
          meaningful: It owns per TreeScope distribution state.
        - Moves distribution related code from ShadowRoot to ScopeContentDistribution

        No new tests. Refactoring.

        * WebCore.exp.in:
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
        (WebCore::StyleScopeResolver::matchHostRules):
        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::nodeCanBeDistributed):
        (WebCore::ComposedShadowTreeWalker::traverseBackToYoungerShadowRoot):
        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
        (WebCore::AncestorChainWalker::parent):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::collectSelectFeatureSetFrom):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::insertedInto):
        (WebCore::ShadowRoot::removedFrom):
        (WebCore::ShadowRoot::ensureScopeDistribution):
        (WebCore::ShadowRoot::reportMemoryUsage):
        * dom/ShadowRoot.h:
        (WebCore):
        (ShadowRoot):
        (WebCore::ShadowRoot::scopeDistribution):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ScopeContentDistribution::ScopeContentDistribution):
        (WebCore::ScopeContentDistribution::invalidateInsertionPointList):
        (WebCore::ScopeContentDistribution::ensureInsertionPointList):
        (WebCore::ScopeContentDistribution::registerInsertionPoint):
        (WebCore::ScopeContentDistribution::unregisterInsertionPoint):
        (WebCore::ScopeContentDistribution::hasShadowElement):
        (WebCore):
        (WebCore::ScopeContentDistribution::hasContentElement):
        (WebCore::ScopeContentDistribution::countElementShadow):
        (WebCore::ScopeContentDistribution::hasInsertionPoint):
        (WebCore::ScopeContentDistribution::assignedTo):
        (WebCore::ContentDistributor::distribute):
        (WebCore::ContentDistributor::invalidate):
        * html/shadow/ContentDistributor.h:
        (ScopeContentDistribution):
        (WebCore::ScopeContentDistribution::registerElementShadow):
        (WebCore::ScopeContentDistribution::unregisterElementShadow):
        (WebCore::ScopeContentDistribution::hasElementShadow):
        * html/shadow/HTMLShadowElement.cpp:
        (WebCore::HTMLShadowElement::olderShadowRoot):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::insertedInto):
        (WebCore::InsertionPoint::removedFrom):
        (WebCore::InsertionPoint::contains):
        (WebCore):
        (WebCore::resolveReprojection):
        * html/shadow/InsertionPoint.h:
        (InsertionPoint):
        (WebCore):
        * testing/Internals.cpp:
        (WebCore::Internals::hasShadowInsertionPoint):
        (WebCore::Internals::hasContentElement):
        (WebCore::Internals::countElementShadow):

2013-01-08  Tom Sepez  <tsepez@chromium.org>

        Copy-paste preserves <embed> tags containing active content.
        https://bugs.webkit.org/show_bug.cgi?id=77625

        Reviewed by Ryosuke Niwa.

        Test: editing/pasteboard/paste-noplugin.html

        * dom/FragmentScriptingPermission.h:
        (WebCore::scriptingContentIsAllowed):
        (WebCore::pluginContentIsAllowed):
        Add new permission to restrict plugin pasting.  Add inline functions to check
        the implications of each permission rather than having a list of raw comparisions
        sprinkled throughout the code. 
        
        * editing/markup.cpp:
        (WebCore::createFragmentFromMarkup):
        Revert back to unsafe plugin pasting regardless of caller's intentions when
        the settings allow it.

        * dom/Element.cpp:
        (WebCore::Element::parserSetAttributes):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertScriptElement):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::endElementNs):
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::parseEndElement):
        Use new inline functions to check implications of permissions rather than raw
        comparisions.
        
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processEndTag):
        Check if plugin pasting is allowed before inserting applet/embed/oject elements.

        * page/Settings.in:
        Declaration of new unsafePluginPastingEnabled setting.

        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::documentFragment):
        * platform/blackberry/PasteboardBlackBerry.cpp:
        (WebCore::Pasteboard::documentFragment):
        * platform/chromium/DragDataChromium.cpp:
        (WebCore::DragData::asFragment):
        * platform/chromium/PasteboardChromium.cpp:
        (WebCore::Pasteboard::documentFragment):
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::documentFragment):
        * platform/qt/DragDataQt.cpp:
        (WebCore::DragData::asFragment):
        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::documentFragment):
        * platform/win/ClipboardUtilitiesWin.cpp:
        (WebCore::fragmentFromCFHTML):
        (WebCore::fragmentFromHTML):
        * platform/wx/PasteboardWx.cpp:
        (WebCore::Pasteboard::documentFragment):
        Pass DisallowScriptingAndPluginContent enum value.
        
2013-01-08  Alexis Menard  <alexis@webkit.org>

        WebKit does not reject some cubic-bezier form values for transition-timing-function.
        https://bugs.webkit.org/show_bug.cgi?id=106369

        Reviewed by Dean Jackson.

        http://www.w3.org/TR/css3-transitions/#transition-timing-function-property
        describes restricitions on cubic-bezier values where the x values of
        the curve should be between [0, 1] and y values can exceed this range.
        WebKit was not following the specification by allowing x values
        exceeding the range.
        The spec also says that we should reject the defintion if the condition
        is not respected which is what the new code does.

        Test: transitions/transitions-parsing.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseAnimationTimingFunction):

2013-01-08  Andreas Kling  <akling@apple.com>

        Heap-use-after-free in bool WebCore::SelectorChecker::checkOneSelector.
        <http://webkit.org/b/105834>

        Reviewed by Antti Koivisto.

        Suppress the DOMSubtreeModified event when synchronizing the "style" attribute and we've
        instantiated an Attr node wrapper for the said attribute.

        Also added an assertion that Document's StyleResolver isn't cleared during style recalc,
        which will help us catch this kind of bug in the future.

        Test: fast/dom/mutation-event-listener-with-dirty-inline-style-crash.html

        * dom/Document.cpp:
        (WebCore::Document::styleResolverThrowawayTimerFired):
        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):

2013-01-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r139096.
        http://trac.webkit.org/changeset/139096
        https://bugs.webkit.org/show_bug.cgi?id=106367

        not a complete fix (Requested by bweinstein on #webkit).

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):

2013-01-08  Brian Weinstein  <bweinstein@apple.com>

        Plug-ins shouldn’t be added to list to autostart if you start a plugin in private browsing.
        https://bugs.webkit.org/show_bug.cgi?id=106348
        <rdar://problem/12968442>

        Reviewed by Anders Carlsson.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Don't call addAutoStartOrigin if we are
            in private browsing mode.

2013-01-08  Chris Fleizach  <cfleizach@apple.com>

        AX: native popup buttons should not use textUnderElement for their title
        https://bugs.webkit.org/show_bug.cgi?id=106349

        Reviewed by Ryosuke Niwa.

        Native popup buttons (<select> elements) were calculating its title based on the text
        under the element. When Bug 103794 introduced a more complete way of getting render text,
        it causes popup buttons to start returning a title.
        The fix is that we should not be calculating a title for a native popup button from its children.

        Existing tests cover this functionality. This will fix a failing test.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::visibleText):

2013-01-08  Ojan Vafai  <ojan@chromium.org>

        text controls are sized too small when a percentage height is set
        https://bugs.webkit.org/show_bug.cgi?id=106277

        Reviewed by Tony Chang.

        This makes our behavior match Firefox 17, IE 9 and Opera 12.
        The current logic came from http://trac.webkit.org/changeset/13723,
        which itself was copy-pasted from RenderReplaced and no longer has this clause..

        Test: fast/forms/percent-height-auto-width-form-controls.html

        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::computePreferredLogicalWidths):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::computePreferredLogicalWidths):
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::computePreferredLogicalWidths):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::computePreferredLogicalWidths):

2013-01-08  Peter Beverloo  <peter@chromium.org>

        [Chromium] Modify Android's user agent CSS to not set a border-radius on select elements
        https://bugs.webkit.org/show_bug.cgi?id=106327

        Reviewed by Adam Barth.

        Android's user agent CSS overrides the style applied to <select>
        elements with a @size or @multiple attribute, and then applies
        (among other things) a border-radius of 5 pixels. While select
        elements with a larger size or multiple selection should appear
        as drop-down boxes for now, setting the border radius causes
        Chromium to skip rendering the background and border, making
        them hard to read when the page relies on the default styling.

        This is covered by existing pixel tests.

        * css/themeChromiumAndroid.css:
        (select[size][multiple]):

2013-01-08  Mike West  <mkwst@chromium.org>

        CSP: 'none' should take effect only if no other source expression is present.
        https://bugs.webkit.org/show_bug.cgi?id=106314

        Reviewed by Adam Barth.

        WebKit's handling of 'none' in Content Security Policy source lists
        doesn't quite match the spec. Currently, we're treating any source list
        that contains 'none' as its first token as an empty list. That is:
        "script-src 'none'" is handled in the same way as
        "script-src 'none' example.com". Based on a bit of public-webappsec@
        discussion[1], the behavior we actually want should treat the first as
        an empty list, while treating the second as "script-src example.com". In
        other words, 'none' in a source list is a no-op, unless it is the _only_
        item in the source list.

        This patch adjusts our parsing behavior accordingly, and tweaks the
        console log we emit for invalid source expressions to warn specifically
        about this case.

        [1]: http://lists.w3.org/Archives/Public/public-webappsec/2013Jan/0006.html

        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-none.html

        * page/ContentSecurityPolicy.cpp:
        (WebCore::isSourceListNone):
            A new static method that returns true when given a string that
            contains only 'none' (potentially surrounded by whitespace), and
            false otherwise.
        (WebCore):
        (WebCore::CSPSourceList::parse):
            Move the 'none' check into the initial layer of parsing, which means
            that we can drop the 'isFirstSourceInList' check entirely.
        (WebCore::CSPSourceList::parseSource):
            Since we've already checked for 'none' in ::parse, we can at this
            point safely treat any occurance of 'none' in the source list as an
            invalid expression.
        (WebCore::ContentSecurityPolicy::reportInvalidSourceExpression):
            If the invalid expression is 'none', add a clarification to the
            console message, noting that 'none' only has effect when it's all
            alone.

2013-01-08  Alok Priyadarshi  <alokp@chromium.org>

        Added OpaqueRegionSkia::currentTrackingOpaqueRect

        [chromium] Add OpaqueRegionSkia::currentTrackingOpaqueRect
        https://bugs.webkit.org/show_bug.cgi?id=106267

        Reviewed by Stephen White.

        No new tests needed. No change in functionality.

        * platform/graphics/skia/OpaqueRegionSkia.cpp:
        (WebCore::OpaqueRegionSkia::applyOpaqueRegionFromLayer):
        (WebCore::OpaqueRegionSkia::markRectAsOpaque):
        (WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
        (WebCore::OpaqueRegionSkia::markAllAsNonOpaque):
        (WebCore::OpaqueRegionSkia::currentTrackingOpaqueRect):
        (WebCore):
        * platform/graphics/skia/OpaqueRegionSkia.h:
        (OpaqueRegionSkia):

2013-01-08  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Build failures when building with python 3.3
        https://bugs.webkit.org/show_bug.cgi?id=106194

        Reviewed by Dirk Pranke.

        Python 3.3 introduced changes to dictionaries which can result in changed
        iteration order. More about these changes:
        http://docs.python.org/3.3/whatsnew/3.3.html#pep-412-key-sharing-dictionary
        http://www.python.org/dev/peps/pep-0412/#cons

        This causes the Source/WebCore/inspector/generate-inspector-protocol-version
        script to fail the self-testing when using Python 3.3. These changes work
        around this problem by not checking for expected errors in order but rather
        for their presence in the error output sequence. The number of actual errors
        is also checked to be equal to the number of expected errors.

        No new tests - no new functionality.

        * inspector/generate-inspector-protocol-version:
        (self_test):

2013-01-08  Antoine Quint  <graouts@apple.com>

        <track> element's mode set to "disabled" after load although it was explicitly set to "hidden"
        https://bugs.webkit.org/show_bug.cgi?id=105536

        Remove all concept of "showing by default". This means removing the showingByDefault()
        and setShowingByDefault() methods on TextTrack. As I was going  through this code,
        I also noticed that in HTMLMediaElement::configureTextTrackGroup(), we would set
        defaultTrack to textTrack.get() even though defaultTrack was created to be a RefPtr<TextTrack>.

        As a result, we can now pass an additional 8 tests from the Opera-submitted test suite:

        LayoutTests/media/track/opera/interfaces/TextTrack/addCue.html
        LayoutTests/media/track/opera/interfaces/TextTrack/removeCue.html
        LayoutTests/media/track/opera/interfaces/TextTrackCue/endTime.html
        LayoutTests/media/track/opera/interfaces/TextTrackCue/startTime.html
        LayoutTests/media/track/opera/interfaces/TextTrackCue/align.html
        LayoutTests/media/track/opera/interfaces/TextTrackCue/id.html
        LayoutTests/media/track/opera/interfaces/TextTrackCue/pauseOnExit.html
        LayoutTests/media/track/opera/interfaces/TextTrackCue/track.html

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::configureTextTrackGroup):
        (WebCore::HTMLMediaElement::toggleTrackAtIndex):
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack):
        (WebCore::TextTrack::setMode):
        (WebCore::TextTrack::isRendered):
        * html/track/TextTrack.h:
        (WebCore::TextTrack::mode):
        (TextTrack):

2013-01-08  Mark Lam  <mark.lam@apple.com>

        Removed the need for the ProposedDatabase mechanism.
        https://bugs.webkit.org/show_bug.cgi?id=106292.

        Reviewed by Sam Weinig.

        No new tests.

        * Modules/webdatabase/AbstractDatabase.cpp:
        (WebCore::AbstractDatabase::details):
        (WebCore):
        * Modules/webdatabase/AbstractDatabase.h:
        (AbstractDatabase):
        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::databaseExceededQuota):
        * Modules/webdatabase/DatabaseContext.h:
        (DatabaseContext):
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::canEstablishDatabase):
        (WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
        * Modules/webdatabase/DatabaseTracker.h:
        (DatabaseTracker):
        * Modules/webdatabase/SQLTransactionClient.cpp:
        (WebCore::SQLTransactionClient::didExceedQuota):
        * loader/EmptyClients.h:
        (WebCore::EmptyChromeClient::exceededDatabaseQuota):
        * page/ChromeClient.h:
        (ChromeClient):

2013-01-08  Chris Fleizach  <cfleizach@apple.com>

        AX: PopUpButtons do not report that AXValueAttribute is supported
        https://bugs.webkit.org/show_bug.cgi?id=106333

        Reviewed by Ryosuke Niwa.

        The Mac platform expects that AXPopUpButton's expose the AXValue attribute.

        Test: platform/mac/accessibility/popup-button-exposes-axvalue.html

        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::isPopUpButton):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):

2013-01-08  Alexis Menard  <alexis@webkit.org>

        transition-delay and transition-duration return incorrect values when querying using the computed style.
        https://bugs.webkit.org/show_bug.cgi?id=105432

        Reviewed by Dean Jackson.

        When setting the transition-delay to 10ms for example the value of transition-delay
        on the computed style was incorrect, it should return 0.01s but it was
        returning something like 0.0099999999...s. In fact the bug was after
        the parsing step when creating the Animation object where a conversion
        from a double to float was done. This conversion is not needed as the
        animation class expects double for delay and transition times.

        Test: transitions/transitions-parsing.html

        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapAnimationDelay):
        (WebCore::CSSToStyleMap::mapAnimationDuration):

2013-01-08  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Refactoring: invalidateParentDistributionIfNecessary() calls are too intrusive
        https://bugs.webkit.org/show_bug.cgi?id=106305

        Reviewed by Dimitri Glazkov.

        Scattering invalidateParentDistributionIfNecessary() looks bad because
        - it has long name whose terminology is cryptic for people who don't know much about Shadow DOM standard.
        - its calls are always paired with setNeedsStyleRecalc() and people do setNeedsStyleRecalc()
          need to be aware about distribution feature bit tracking. Separate invalidateParentDistributionIfNecessary()
          call doesn't help that recognition.

        This change introduces Element::didAffectSelector() to replace a setNeedsStyleRecalc()-i37y() call sequence.
        SelectRuleFeatureSet::FeatureRule is renamed AffectedSelectorType so that it explains its purpose
        in a bit more plain WebKit term.

        No new tests. Refactoring.

        * dom/Document.cpp:
        (WebCore::Document::setCSSTarget): Adopted didAffectSelector.
        * dom/Element.cpp:
        (WebCore::Element::didAffectSelector): Added.
        (WebCore):
        * dom/Element.h:
        (Element):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::didAffectSelector): Morphed from invalidateParentDistributionIfNecessary().
        * dom/ElementShadow.h:
        (ElementShadow):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute): Adopted didAffectSelector
        * html/HTMLDetailsElement.cpp:
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::disabledAttributeChanged): Adopted didAffectSelector
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setChecked): Adopted didAffectSelector
        (WebCore::HTMLInputElement::setIndeterminate): Adopted didAffectSelector
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::parseAttribute): Adopted didAffectSelector
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::parseAttribute): Adopted didAffectSelector
        (WebCore::HTMLOptionElement::setSelectedState): Adopted didAffectSelector
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::didElementStateChange): Adopted didAffectSelector
        * html/HTMLSummaryElement.cpp:
        * html/shadow/HTMLContentElement.cpp:
        * html/shadow/SelectRuleFeatureSet.cpp:
        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Followed renaming.
        * html/shadow/SelectRuleFeatureSet.h: Followed renaming.
        (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
        (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
        (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
        (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
        (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
        (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
        (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
        (WebCore::SelectRuleFeatureSet::hasSelectorFor):
        (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):

2013-01-08  Sergio Villar Senin  <svillar@igalia.com>

        [Qt] Fix build with --web-audio
        https://bugs.webkit.org/show_bug.cgi?id=106328

        Reviewed by Philippe Normand.

        Build fix, no new tests required.

        * Target.pri: addded missing OfflineAudioContext.[cpp|h].

2013-01-08  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Login & password shown in browsers' URL entry after successful HTTP authentication
        https://bugs.webkit.org/show_bug.cgi?id=105190

        Reviewed by Carlos Garcia Campos.

        Test: http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url.html

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::restartedCallback): After sending a redirect with credentials to libsoup, strip
        the credentials from the request. This ensures that the credentials do not show up in
        the user agent or in document.location.

2013-01-08  Keishi Hattori  <keishi@webkit.org>

        [Chromium] Don't confine page popups to root view on Mac
        https://bugs.webkit.org/show_bug.cgi?id=106315

        Reviewed by Kent Tamura.

        No new tests.

        * Resources/pagepopups/pickerCommon.js:
        (adjustWindowRect): Remove code to confine to root view.

2012-12-12  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Make RenderLayer::updateNeedsCompositedScrolling scrollbars agnostic
        https://bugs.webkit.org/show_bug.cgi?id=95494

        Reviewed by James Robinson.

        Some ports (including Qt-wk1 and BlackBerry) allow disabling
        scrollbars at FrameView creation level. That said, cheking for the
        scrollbars presence in order to determine if we should promote a
        RenderLayer to use composited scrolling is not ideal, as done in
        RenderLayerCompositor::updateNeedsCompositedScrolling()

        Instead, this patch makes the RenderLayer class to query its FrameView
        if it has been cached as scrollable by the later.

        Least, patch also takes this opportunity to remove RenderLayer::allowsScrolling,
        which became unused.

        No new tests added, since there is no *practical* behavior change: ports
        like Chromium and others who currently check for the scrollbars presence
        in order to determine either to promote or not layers to benefit of composited
        scrolling should not be affected.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
        * rendering/RenderLayer.h:
        (RenderLayer):

2012-12-20  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Introduce a compositing trigger for scrollable frames
        https://bugs.webkit.org/show_bug.cgi?id=105573

        Reviewed by James Robinson.

        Make requiresCompositingForScrollableFrame to check the
        newly added compositing trigger instead of the associated setting.

        It introduces no have behavior change, so no new tests. Patch basically
        does some preparation work for adding support to composite scrollable inner
        frames independently from "force compositing mode" bit.

        * page/ChromeClient.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
        (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):

2013-01-08  Kihong Kwon  <kihong.kwon@samsung.com>

        Add DeviceProximityController to support Device Proximity Events.
        https://bugs.webkit.org/show_bug.cgi?id=97630

        Reviewed by Hajime Morita.

        Implement DeviceProximityController which is inherited from DeviceController to support Device Proximity Events.
        DeviceProximityController has two major functionalities.
        - When listener is added, DeviceProximityController stores DOMWindow pointer to m_listeners
          and start gathering proximity event.
        - When DeviceProximityController receives a proximity event from client, fire an event using m_listeners.
        In addition, setDeviceProximity function is added to Internals for layout test.

        Tests: proximity/add-listener-from-callback.html
               proximity/basic-operation.html
               proximity/create-event.html
               proximity/event-after-navigation.html
               proximity/multiple-frames.html
               proximity/no-page-cache.html
               proximity/optional-event-properties.html
               proximity/updates.html
               proximity/window-property.html

        * CMakeLists.txt:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * Modules/proximity/DeviceProximityClient.h: Added.
        (WebCore):
        (DeviceProximityClient):
        (WebCore::DeviceProximityClient::~DeviceProximityClient):
        * Modules/proximity/DeviceProximityController.cpp: Added.
        (WebCore):
        (WebCore::DeviceProximityController::DeviceProximityController):
        (WebCore::DeviceProximityController::create):
        (WebCore::DeviceProximityController::didChangeDeviceProximity):
        (WebCore::DeviceProximityController::deviceProximityClient):
        (WebCore::DeviceProximityController::hasLastData):
        (WebCore::DeviceProximityController::getLastEvent):
        (WebCore::DeviceProximityController::supplementName):
        (WebCore::DeviceProximityController::from):
        (WebCore::DeviceProximityController::isActiveAt):
        (WebCore::provideDeviceProximityTo):
        * Modules/proximity/DeviceProximityController.h: Added.
        (WebCore):
        (DeviceProximityController):
        (WebCore::DeviceProximityController::~DeviceProximityController):
        * Target.pri:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.pri:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/WebCoreCommon.vsprops:
        * WebCore.xcodeproj/project.pbxproj:
        * history/PageCache.cpp:
        When a page has Device Proximity Event Listener, it has not to be cached like Device Orientation.
        (WebCore::logCanCachePageDecision):
        (WebCore::PageCache::canCache):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        * testing/Internals.cpp:
        (WebCore::Internals::setDeviceProximity):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-01-03  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Add WebP image support
        https://bugs.webkit.org/show_bug.cgi?id=105915

        Reviewed by Martin Robinson.

        * GNUmakefile.am: add WTF_USE_WEBP definition.
        * GNUmakefile.list.am: properly sort image decoders in the sources list.

2013-01-08  Steve Block  <steveblock@chromium.org>

        Rename 'IntSize toSize(const IntPoint&)' to 'toIntSize'
        https://bugs.webkit.org/show_bug.cgi?id=106307

        This matches other method names which distinguish between sizes and
        points. See https://bugs.webkit.org/show_bug.cgi?id=105992#c4.

        Reviewed by Kentaro Hara.

        Refactoring only, no functional change.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::scrollTo):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        * platform/ScrollView.h:
        (WebCore::ScrollView::scrollOffset):
        * platform/graphics/IntPoint.h:
        (WebCore::toIntSize):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
        (WebCore::RenderLayer::paintOverflowControls):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2013-01-08  Yoshifumi Inoue  <yosin@chromium.org>

        Dragging over an element with scrollbars should scroll the element when dragging near edges
        https://bugs.webkit.org/show_bug.cgi?id=39725

        Reviewed by Hajime Morita.

        This patch introduces auto scrolling functionality during drag-and-drop
        when drop source is near edge of scrollable element.

        When drop source is inside 20px of scrollable element more than 200ms,
        scrollable element is automatically scrolled every 50ms toward drop
        source position, e.g. vertically scroll up when drop source is in top
        edge.

        Test: fast/events/drag-and-drop-autoscroll.html

        * page/AutoscrollController.cpp:
        (WebCore::AutoscrollController::AutoscrollController): Changed to initialize m_dragAndDropAutoscrollStartTime.
        (WebCore::AutoscrollController::updateDragAndDrop): Added for start/stop autoscroll during drag-and-drop.
        (WebCore::AutoscrollController::autoscrollTimerFired): Changed to add autoscroll for drag-and-drop, and to pass last know position to RenderBox::autoscroll().
        * page/AutoscrollController.h:
        (AutoscrollController): Changed to add updateDragAndDrop() and m_dragAndDropAutoscrollReferencePosition and m_dragAndDropAutoscrollStartTime.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateDragAndDrop): Changed to call AutoscrollController::updateDragAndDrop().
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::autoscroll): Changed for new parameter position.
        (WebCore::RenderBox::calculateAutoscrollDirection): Added for autoscroll.
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::autoscroll):  Changed for new parameter position and move updateSelectionForMouseDrag() to AutoscrollController.
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::autoscroll):  Changed for new parameter position.
        * rendering/RenderListBox.h:
        (RenderListBox):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::autoscroll):  Changed for new parameter position.
        * rendering/RenderTextControlSingleLine.h:
        (RenderTextControlSingleLine):

2013-01-08  Jochen Eisinger  <jochen@chromium.org>

        REGRESSION(r139036): 'WebCore::DateTimeSymbolicFieldElement::isInRange' hides overloaded virtual function
        https://bugs.webkit.org/show_bug.cgi?id=106311

        Unreviewed build fix.

        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::stepDown):
        (WebCore::DateTimeSymbolicFieldElement::stepUp):
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (WebCore::DateTimeSymbolicFieldElement::indexIsInRange): renamed method to avoid hiding Element::isInRange

2013-01-08  Adam Barth  <abarth@webkit.org>

        HTMLTreeBuilder shouldn't keep a Document pointer
        https://bugs.webkit.org/show_bug.cgi?id=106268

        Reviewed by Eric Seidel.

        The tree builder shouldn't interact with the Document directly.
        Instead, the tree builder should use the HTMLConstructionSite to
        interact with the document.

        Unfortunately, the HTMLTreeBuilder does need to read back one bit of
        information (the quirks mode) from the Document. Currently the
        HTMLConstructionSite reads the information directly from the Document.
        If/when we move the parser onto its own thread, we'll need to keep
        track of this bit on the parser thread. (We should be able to
        encapsulate all that logic in the HTMLConstructionSite.)

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
        (WebCore):
        (WebCore::HTMLConstructionSite::finishedParsing):
        (WebCore::HTMLConstructionSite::inQuirksMode):
        * html/parser/HTMLConstructionSite.h:
        (HTMLConstructionSite):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::detach):
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::defaultForInitial):
        (WebCore::HTMLTreeBuilder::finished):
        * html/parser/HTMLTreeBuilder.h:
        (HTMLTreeBuilder):

2013-01-08  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>

        Float block's logical top margin is illegal in vertical writing mode.
        https://bugs.webkit.org/show_bug.cgi?id=96597

        Reviewed by Hajime Morita.

        flipFloatForWritingModeForChild() should use child->renderer()->width() not child->width() like horizontal writing mode.

        Test: fast/writing-mode/vertical-float-margin.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::flipFloatForWritingModeForChild):

2013-01-07  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r137406): Text inside an empty optgroup prevents subsequent options from appearing
        https://bugs.webkit.org/show_bug.cgi?id=106298

        Reviewed by Ryosuke Niwa.

        Test: fast/forms/select/select-empty-optgroup.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems):
        Traverse to the first element within the 'current' only if it exists.

2013-01-07  Steve Block  <steveblock@chromium.org>

        Use toSize() to convert from Int/FloatPoint to Int/FloatSize
        https://bugs.webkit.org/show_bug.cgi?id=105992

        Reviewed by Kentaro Hara.

        Refactoring only, no change in behavior.

        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::computePath):
        * platform/ScrollView.h:
        (WebCore::ScrollView::scrollOffset):
        * platform/graphics/FloatPoint.h:
        (WebCore::toFloatSize):
        Add 'inline FloatSize toFloatSize(const FloatPoint&)' to match IntPoint.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2013-01-07  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of month/day field should respect min/max attributes
        https://bugs.webkit.org/show_bug.cgi?id=106212

        Reviewed by Kent Tamura.

        Make step-up/-down of the month and day fields respect the min/max
        attributes of the element.
        Note that these fields still accept any keyboard inputs (the element
        becomes 'invalid' state when out-of-bounds values entered).

        Tests: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
               fast/forms/date-multiple-fields/date-multiple-fields-stepup-stepdown-from-renderer.html
               fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html
               fast/forms/month-multiple-fields/month-multiple-fields-stepup-stepdown-from-renderer.html

        * css/html.css: Add CSS rules for month and day fields.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField):
        Compute minimum/maximum values of month/day fields from the min/max
        parameters of the element. If minimum, maximum, and current value is
        the same, makes the field read-only.
        * html/shadow/DateTimeFieldElements.cpp:
        (WebCore::DateTimeAMPMFieldElement::DateTimeAMPMFieldElement): Add mininum/maximum arguments.
        (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement): Ditto.
        (WebCore::DateTimeDayFieldElement::create): Ditto.
        (WebCore::DateTimeDayFieldElement::clampValueForHardLimits): Added.
        (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement): Add mininum/maximum arguments.
        (WebCore::DateTimeMonthFieldElement::create): Ditto.
        (WebCore::DateTimeMonthFieldElement::clampValueForHardLimits): Added.
        (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement): Add mininum/maximum arguments.
        (WebCore::DateTimeSymbolicMonthFieldElement::create): Ditto.
        * html/shadow/DateTimeFieldElements.h:
        (DateTimeDayFieldElement): Add mininum/maximum arguments and declare clampValueForHardLimits.
        (DateTimeMonthFieldElement): Ditto.
        (DateTimeSymbolicMonthFieldElement): Add mininum/maximum arguments.
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement): Add mininum/maximum arguments.
        (WebCore::DateTimeSymbolicFieldElement::maximum): Returns m_maximumIndex + 1 as it assumes 1-origin value.
        (WebCore::DateTimeSymbolicFieldElement::minimum): Ditto.
        (WebCore::DateTimeSymbolicFieldElement::stepDown): Restrict value to m_minimumIndex-m_maximumIndex.
        (WebCore::DateTimeSymbolicFieldElement::stepUp): Ditto.
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement): Add m_minimumIndex and m_maximumIndex.
        (WebCore::DateTimeSymbolicFieldElement::isInRange): Added.

2013-01-07  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [EFL][WK2][WebGL] The top left side of the screen is shown inside the canvas element
        https://bugs.webkit.org/show_bug.cgi?id=105136

        Reviewed by Noam Rosenthal.

        Use glXSwapBuffers to force resize of GL surface after X window resize.

        Fixes fast/canvas/webgl/webgl-composite-modes.html pixel test on EFL platform.

        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
        (WebCore::X11OffScreenWindow::reSizeWindow):

2013-01-07  Steve Block  <steveblock@chromium.org>

        Use explicit constructor to convert from Int/FloatSize to Int/FloatPoint
        https://bugs.webkit.org/show_bug.cgi?id=106209

        Reviewed by Kentaro Hara.

        Refactoring only, no functional change.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2013-01-07  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [EFL][WebGL] Crash of WebKitTestRunner when running webgl layout tests
        https://bugs.webkit.org/show_bug.cgi?id=105936

        Reviewed by Laszlo Gombos.

        If canvas window becomes invalid don't create pixmap from it and don't 
        use it for painting.

        Improves stability of existing webgl layout tests.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::size):
        (WebCore::GraphicsSurface::platformGetTextureID):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):

2013-01-07  Hajime Morrita  <morrita@google.com>

        Document::m_activeNode should be always an Element.
        https://bugs.webkit.org/show_bug.cgi?id=106193

        Reviewed by Ryosuke Niwa.

        r137277 tightened an invariant that assumes that active node is
        always an element. But Document::updateHoverActiveState() didn't
        respect that assumption. This change forces it.

        Test: svg/custom/text-use-click-crash.html

        * dom/Document.cpp:
        (WebCore::Document::removedLastRef):
        (WebCore::Document::detach):
        (WebCore::Document::setActiveNode):
        (WebCore::Document::activeChainNodeDetached):
        (WebCore::Document::updateHoverActiveState):
        * dom/Document.h:
        (WebCore::Document::activeElement): Renamed from m_activeNode for the clarification.
        (Document):

2013-01-07  Hajime Morrita  <morrita@google.com>

        WebKit should compile on Mac with --shadow-dom
        https://bugs.webkit.org/show_bug.cgi?id=105469

        Reviewed by Dimitri Glazkov.

        No new tests. Just changing build files.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Element.idl:

2013-01-07  Stephen White  <senorblanco@chromium.org>

        Add a flag to control canvas antialiasing.
        https://bugs.webkit.org/show_bug.cgi?id=106255

        Reviewed by Darin Fisher.

        This flag is not exposed through TestRunner or DRT, so no testing is
        possible yet.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::createImageBuffer):
        * page/Settings.in:

2013-01-07  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Implement grid items sizing for fixed minmax grid tracks
        https://bugs.webkit.org/show_bug.cgi?id=104700

        Reviewed by Tony Chang.

        This change implements parts of the minmax() track sizing algorithm. The chosen subset enables us
        to resolve any sizing function that doesn't size based on the content (min-content, max-content).

        Tests: fast/css-grid-layout/minmax-fixed-logical-height-only.html
               fast/css-grid-layout/minmax-fixed-logical-width-only.html

        * rendering/RenderGrid.cpp:
        (WebCore::GridTrack::GridTrack):
        Added a new member to hold the maximum track breadth.

        (WebCore::RenderGrid::computePreferredLogicalWidths):
        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
        Updated these functions to work on both min and max track breadth. In order to match
        the specification, if max track breadth < min track breadth, we ignore the max track breadth.
        For computedUsedBreadthOfGridTracks, it also involves calling distributeSpaceToTracks.

        (WebCore::RenderGrid::computeUsedBreadthOfLength):
        New helper function that compute a single length's size.

        (WebCore::sortByGridTrackGrowthPotential):
        Ordering function for the sorting the track: it orders the track per increasing potential
        growth (defined as the difference between max breadth and the currently used breadth).

        (WebCore::RenderGrid::distributeSpaceToTracks):
        Added this function that matches the specification's algorithm. Only the relevant bits from
        the specification were implemented for now (for example, SubsetOfTracksForGrowthBeyondTrackGrowthConstraint
        is always the empty set so it was omitted).

        * rendering/RenderGrid.h:
        Added the new functions and declared GridTrack as public into the WebCore namespace.

        * rendering/style/GridTrackSize.h:
        (WebCore::GridTrackSize::minTrackBreadth):
        (WebCore::GridTrackSize::maxTrackBreadth):
        Removed 2 ASSERTs as the layout algorithm doesn't care if the min / max were
        set from a single track breadth or through minmax().

2013-01-07  Xianzhu Wang  <wangxianzhu@chromium.org>

        Add a setting to enable composited scrolling for frames
        https://bugs.webkit.org/show_bug.cgi?id=104950

        Reviewed by James Robinson.

        Test: compositing/iframes/iframe-composited-scrolling.html

        * page/FrameView.cpp:
        (WebCore::FrameView::usesCompositedScrolling): Returns true if compositedScrollingForFramesEnabled and the frame is in forced compositing mode (which is set when forced compositing mode and compositing for scrollable frames are enabled), so that ScrollingCoordinator won't include the region of the frame in the nonFastScrollableRegion.
        (WebCore):
        * page/FrameView.h:
        (FrameView):
        * page/Settings.in: Add compositedScrollingForFramesEnabled setting.
        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated): Changed the comment about which ScrollableAreas are non-fast-scrollable.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidScroll): Let ScrollongCoordinator know when the scrolling changes for a frame with composited scrolling enabled.

2013-01-07  Alexandre Elias  <aelias@chromium.org>

        Divide gesture scroll delta by scale factor
        https://bugs.webkit.org/show_bug.cgi?id=106263

        Reviewed by Adam Barth.

        Gesture scroll deltas were not being adjusted by the frame's scale
        factors, resulting in overly fast main-thread scrolling when zoomed
        in.

        New test: fast/events/touch/gesture/touch-gesture-scroll-div-scaled.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureScrollCore):

2013-01-07  Adam Barth  <abarth@webkit.org>

        HTMLTreeBuilder should not depend on Frame
        https://bugs.webkit.org/show_bug.cgi?id=106256

        Reviewed by Eric Seidel.

        Rather than have the tree builder ask the Frame whether scripting and
        plugins are enabled, we now push that information to the tree builder
        via HTMLParserOptions, letting us remove the Frame dependency from the
        tree builder.

        As a consequence of this change, the "script enabled" bit in the parser
        is now locked in when the parser starts. This bit doesn't actually
        control when script execute, only how the <noscript> element is parsed.

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::tokenizerStateForContextElement):
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        * html/parser/HTMLMetaCharsetParser.cpp:
        (WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
        (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
        * html/parser/HTMLParserOptions.cpp:
        (WebCore::HTMLParserOptions::HTMLParserOptions):
        * html/parser/HTMLParserOptions.h:
        (HTMLParserOptions):
        (WebCore::HTMLParserOptions::HTMLParserOptions):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
        (WebCore::HTMLPreloadScanner::processToken):
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::HTMLTokenizer):
        (WebCore::HTMLTokenizer::nextToken):
        (WebCore::HTMLTokenizer::updateStateFor):
        * html/parser/HTMLTokenizer.h:
        (WebCore::HTMLTokenizer::create):
        (HTMLTokenizer):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
        * html/parser/HTMLTreeBuilder.h:
        * html/parser/HTMLViewSourceParser.cpp:
        (WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
        (WebCore::HTMLViewSourceParser::updateTokenizerState):

2013-01-07  Tony Chang  <tony@chromium.org>

        Remove more internals.settings that are autogenerated
        https://bugs.webkit.org/show_bug.cgi?id=106253

        Reviewed by Adam Barth.

        Remove 8 methods that are autogenerated by Settings.in.

        No new tests, this is a refactor and is convered by existing tests.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup): Remove backup.
        (WebCore::InternalSettings::Backup::restoreTo): Remove restore.
        * testing/InternalSettings.h:
        (Backup): Remove member variables and functions.
        (InternalSettings):
        * testing/InternalSettings.idl: Remove functions.

2013-01-07  Ryosuke Niwa  <rniwa@webkit.org>

        Another incremental build fix after r139013.

        * mathml/MathMLAllInOne.cpp:

2013-01-07  Ryosuke Niwa  <rniwa@webkit.org>

        Incremental build system on Windows port does not necessarily rebuild RenderBox.cpp after r139013.

        * rendering/RenderingAllInOne.cpp:

2013-01-07  Emil A Eklund  <eae@chromium.org>

        REGRESSION(SUBPIXEL_LAYOUT): el.offsetWidth < el.clientWidth for elements of a certain size
        https://bugs.webkit.org/show_bug.cgi?id=106107

        Reviewed by Levi Weintraub.
        
        Add overloaded pixelSnappedOffsetWidth|Height methods to
        RenderBox that do pixel snapping with the same offset
        as clientWidth/height to ensure consistent rounding.

        Test: fast/sub-pixel/client-and-offset-width.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::pixelSnappedOffsetWidth):
        (WebCore::RenderBox::pixelSnappedOffsetHeight):
        Snap using the same offset as the clientWidth/height versions.
        
        * rendering/RenderBox.h:
        Remove out of date FIXME and add OVERRIDE keyword.
        
        * rendering/RenderBoxModelObject.h:
        Mark pixelSnappedOffsetWidth|Height as virtual.

2013-01-07  Adam Barth  <abarth@webkit.org>

        Introduce HTMLParserOptions to encapsulate HTML parser options
        https://bugs.webkit.org/show_bug.cgi?id=106251

        Reviewed by Eric Seidel.

        Currently, the HTMLTreeBuilder (and potentially other parts of the
        parser) use their Document* to read configuration information from the
        Document (such as Settings). This patch introduces the
        HTMLParserOptions class to encapsulate that information, making it
        easier to move the HTML parser to a background thread (because the
        HTMLTreeBuilder won't need to talk to the Document directly).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore::HTMLDocumentParser::insert):
        * html/parser/HTMLDocumentParser.h:
        (HTMLDocumentParser):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
        * html/parser/HTMLPreloadScanner.h:
        (WebCore):
        (HTMLPreloadScanner):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
        * html/parser/HTMLTreeBuilder.h:
        (WebCore::HTMLTreeBuilder::create):
        (HTMLTreeBuilder):
        * html/parser/HTMLViewSourceParser.cpp:
        (WebCore::HTMLViewSourceParser::HTMLViewSourceParser):

2013-01-07  Joseph Pecoraro  <pecoraro@apple.com>

        Minor improvements to HTMLMediaElement
        https://bugs.webkit.org/show_bug.cgi?id=105353

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::canPlayType):
        (WebCore::createFileURLForApplicationCacheResource):
        (WebCore::stringForNetworkState):
        (WebCore::HTMLMediaElement::preload):
        (WebCore::HTMLMediaElement::getPluginProxyParams):
        Use ASCIILiteral for literal strings becoming WTFStrings.

        (WebCore::HTMLMediaElement::setLoop):
        By going through setAttribute, parseAttribute would already take care of
        updating the disable sleep, so the call here is not needed.

2013-01-07  Joseph Pecoraro  <pecoraro@apple.com>

        String improvements in geolocation and notifications modules
        https://bugs.webkit.org/show_bug.cgi?id=105352

        Reviewed by Sam Weinig.

        * Modules/geolocation/Geolocation.cpp:
        (WebCore::Geolocation::GeoNotifier::timerFired):
        (WebCore::Geolocation::startRequest):
        (WebCore::Geolocation::requestUsesCachedPosition):
        (WebCore::Geolocation::makeCachedPositionCallbacks):
        (WebCore::Geolocation::setIsAllowed):
        (WebCore::Geolocation::cancelRequests):
        (WebCore::Geolocation::handlePendingPermissionNotifiers):
        * Modules/geolocation/GeolocationController.cpp:
        (WebCore::GeolocationController::positionChanged):
        * Modules/notifications/WorkerContextNotifications.cpp:
        Use ASCIILiteral for constant strings becoming WTFStrings.

        (WebCore::WorkerContextNotifications::from):
        Use AtomicString::ConstructFromLiteral for the static local.

2013-01-07  Chris Fleizach  <cfleizach@apple.com>

        AX: the text of render counters are not exposed to Accessibility
        https://bugs.webkit.org/show_bug.cgi?id=103794

        Reviewed by Ryosuke Niwa.

        Support RenderText objects that don't have nodes (like RenderCounter).

        Test: accessibility/render-counter-text.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::textUnderElement):

2013-01-07  Tim Horton  <timothy_horton@apple.com>

        Tiled-layer TileCaches shouldn't unparent offscreen tiles
        https://bugs.webkit.org/show_bug.cgi?id=106258
        <rdar://problem/12969116>

        Reviewed by Simon Fraser.

        Add a setting on TiledBacking (implemented on TileCache) that controls whether or not
        the TileCache should unparent offscreen tiles. We can't use this behavior for tiled-layer TileCaches
        currently because m_isInWindow is not updated for tiled-layer TileCaches, and because we haven't
        decided exactly what their behavior should be. So, revert to the old behavior for them.

        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/mac/TileCache.h:
        (TileCache): Add setUnparentsOffscreenTiles/unparentsOffscreenTiles.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache): m_unparentsOffscreenTiles defaults to false.
        (WebCore::TileCache::revalidateTiles):
        Return to the old behavior of always adding new layers to the layer tree regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
        Return to the old behavior of never unparenting tiles regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
        (WebCore::TileCache::ensureTilesForRect): Return to the old behavior of always ensuring tiles regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking): Tell primary TileCaches that it's OK to unparent offscreen tiles.

2013-01-07  Justin Novosad  <junov@google.com>

        Fixing memory read after free in CanvasRenderingContext2D::accessFont
        https://bugs.webkit.org/show_bug.cgi?id=106244

        Reviewed by Abhishek Arya.

        Using a temporary String object to hold ref count on string that is
        passed by reference in CanvasRenderingContext2D::accessFont.

        Test: fast/canvas/canvas-measureText.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::accessFont):

2013-01-07  Anders Carlsson  <andersca@apple.com>

        DOMEvents.h should include DOMProgressEvent.h
        https://bugs.webkit.org/show_bug.cgi?id=106250

        Reviewed by Sam Weinig.

        DOMProgressEvent.h is already installed as a public header, so it should also be included by DOMEvents.h.

        * bindings/objc/DOMEvents.h:

2013-01-07  Xianzhu Wang  <wangxianzhu@chromium.org>

        Add window.internals.nonFastScrollableRects for testing scrollable areas in fast/slow paths
        https://bugs.webkit.org/show_bug.cgi?id=105546

        Reviewed by James Robinson.

        No new tests. Added test API for new tests of other bugs.

        * WebCore.exp.in:
        * page/Page.cpp:
        (WebCore::Page::nonFastScrollableRects):
        (WebCore):
        * page/Page.h:
        (WebCore):
        (Page):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Change to public to allow Page::nonFastScrollableRects to access.
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):
        * testing/Internals.cpp:
        (WebCore::Internals::nonFastScrollableRects):
        (WebCore):
        * testing/Internals.h:
        * testing/Internals.idl:

2013-01-07  Tom Sepez  <tsepez@chromium.org>

        Document::initSecurityContext() gives parent security context to iframes with invalid URLs.
        https://bugs.webkit.org/show_bug.cgi?id=104960

        Reviewed by Adam Barth.

        Change covers the case of an invalid non-empty URL.  We know nothing
        about that kind of URL and choose not to inherit origins.
        
        * dom/Document.cpp:
        (WebCore::shouldInheritSecurityOriginFromOwner):

2013-01-07  Chris Fleizach  <cfleizach@apple.com>

        AX: Regression: Contextual menu not following with VO cursor in HTML content when item is scrolled
        https://bugs.webkit.org/show_bug.cgi?id=70075

        Reviewed by Anders Carlsson.

        On WK2 only, when accessibility opens a contextual menu, it does not honor the scroll offset. 
        On WK1, the attachment views handle this conversion when it's needed, but on WK2 it needs to be done manually
        (similar to how the accessibility position is calculated). 

        No test. Cannot test the location of context menu popups on WK2 yet.

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

2013-01-07  Abhishek Arya  <inferno@chromium.org>

        Heap-buffer-overflow in WebCore::RenderBlock::clone.
        https://bugs.webkit.org/show_bug.cgi?id=101984

        Reviewed by Julien Chaffraix.

        Add a global in RenderBlock to prevent recursion inside splitFlow.
        While inside splitFlow (multi-column handling), we move many children
        using fullRemoveInsert=true, causing RenderBlock::addChild to be called
        and recursing in splitFlow. This messes the tree splitting happening in
        RenderBlock::splitBlocks and can cause bad casts.

        Test: fast/multicol/recursive-split-flow-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):

2013-01-07  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] Fix PlatformContextSkia::setDrawingToImageBuffer abuse
        https://bugs.webkit.org/show_bug.cgi?id=104956

        Reviewed by James Robinson.

        Replaced PlatformContextSkia::SetDrawingToImageBuffer with GraphicsContext::setShouldSmoothFonts.

        No new tests needed. No change in functionality.

        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp:
        (WebCore::CompositorHUDFontAtlas::generateFontAtlas):
        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::couldUseLCDRenderedText):
        (WebCore):

2013-01-07  Enrica Casucci  <enrica@apple.com>

        Some characters are not rotated properly in vertical text
        https://bugs.webkit.org/show_bug.cgi?id=105663
        <rdar://problem/12738911>

        Reviewed by Dan Bernstein.

        Test: platform/mac/fast/text/vertical-no-sideways.html

        * platform/graphics/Font.cpp:
        (WebCore::Font::isCJKIdeographOrSymbol): Added several characters to the list.
        * platform/graphics/FontFastPath.cpp:
        (WebCore::shouldIgnoreRotation): Added
        (WebCore::Font::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation): Added logic to avoid
        rotation for all the characters listed in shouldIgnoreRotation.
    
2013-01-07  Mike West  <mkwst@chromium.org>

        Make the IFRAME_SEAMLESS flag runtime-enabled.
        https://bugs.webkit.org/show_bug.cgi?id=106213

        Reviewed by Ojan Vafai.

        Seamless IFrames live behind the IFRAME_SEAMLESS compile-time flag, this
        patch adds another layer to that in order to enable runtime decisions
        about when it should be active. This will allow ports (Chromium, for
        instance) to toggle the feature on/off for particular builds without
        recompiling from scratch.

        * WebCore.exp.in:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        (WebCore::RuntimeEnabledFeatures::seamlessIFramesEnabled):
        (WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled):
            Add seamless IFrames to the set of runtime controlled features.
        * dom/Document.cpp:
        (WebCore::Document::shouldDisplaySeamlesslyWithParent):
            If seamless IFrames aren't runtime enabled, always return false from
            Document::shouldDisplaySeamlesslyWithParent. As this method already
            acts as the single gate that controls the rest of the system, it's
            the only place we need to make the runtime check.

2013-01-07  Eric Carlson  <eric.carlson@apple.com>

        LayoutUnit(unsigned long long value) compile failure
        https://bugs.webkit.org/show_bug.cgi?id=106239

        Cast the result of ('unsigned long long' * 'int') to an int before storing in m_value
        to avoid compile failure on some platforms.

        Reviewed by Ryosuke Niwa.

        * platform/LayoutUnit.h:
        (WebCore::LayoutUnit::LayoutUnit): Cast to int after multiplication.

2013-01-07  Joe Mason  <jmason@rim.com>

        [BlackBerry] Handle the new AuthRetry result code in NetworkJob::notifyAuthReceived
        https://bugs.webkit.org/show_bug.cgi?id=106233

        Reviewed by Rob Buis.

        Internal PR: 270683
        FilterStream::notifyAuthReceived has a new result code, AuthRetry. When it's received we
        need to handle it by resending the request with the same credentials.

        Reviewed internally by Leo Yang.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyAuthReceived):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):

2013-01-07  Philip Rogers  <pdr@google.com>

        Clear pending container size requests as early as possible
        https://bugs.webkit.org/show_bug.cgi?id=106162

        Reviewed by Eric Seidel.

        http://trac.webkit.org/changeset/137981 contained a bug where pending container size
        requests were only cleared for images that use container sizes. Bitmap images do not use
        container sizes so these requests were not being cleared. This patch does the trivial
        refactoring so that container size requests are cleared as early as possible.

        No new tests as this is just a refactoring of some messy code added in r137981.

        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::createImage):

2013-01-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137632.
        http://trac.webkit.org/changeset/137632
        https://bugs.webkit.org/show_bug.cgi?id=106237

        Caused major security regressions on ClusterFuzz (Requested by
        inferno-sec on #webkit).

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::startDelayUpdateScrollInfo):
        (WebCore::RenderBlock::finishDelayUpdateScrollInfo):

2013-01-07  Victor Carbune  <victor@rosedu.org>

        [Track] Rendering crash
        https://bugs.webkit.org/show_bug.cgi?id=106199

        Reviewed by Eric Carlson.

        The browser is crashing if a text track is added through JavaScript,
        due to the fact that the containing block is not marked as inline at
        the time RenderTextTrackCue::layout() is called. The fix consists
        of ensuring that the pseudo id is set, even if the track isn't
        yet visible.

        Test: media/track/track-cue-inline-assertion-crash.html

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::updateDisplayTree): The pseudo-id should
        be set when the display tree is generated.
        (WebCore::TextTrackCue::getDisplayTree): Added extra check to not
        do unneccessary logic if the track will never be displayed.

2013-01-07  Michael Pruett  <michael@68k.org>

        [JSC] Copy non-index properties of arrays in SerializedScriptValue
        https://bugs.webkit.org/show_bug.cgi?id=105575

        Reviewed by Oliver Hunt.

        The structured cloning algorithm requires copying all properties of
        array objects, including non-index properties.

        Tests: fast/storage/serialized-script-value.html
               storage/indexeddb/structured-clone.html

        * bindings/js/SerializedScriptValue.cpp:
        (WebCore):
        (WebCore::CloneSerializer::serialize):
        (WebCore::CloneDeserializer::putProperty):
        (WebCore::CloneDeserializer::deserialize):

2013-01-07  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Stub out async IDBDatabaseBackendInterface::createObjectStore
        https://bugs.webkit.org/show_bug.cgi?id=106148

        Reviewed by Adam Barth.

        These methods are becoming async in multiprocess ports, so stub out
        versions that have no return values.

        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):

2013-01-04  Alexey Proskuryakov  <ap@apple.com>

        ResourceHandle::willLoadFromCache is evil
        https://bugs.webkit.org/show_bug.cgi?id=106147

        Reviewed by Brady Eidson.

        For back/forward navigations to a page that's a result of form submission, we may
        never silently re-submit the form. So, we show a warning dialog when about to re-submit,
        but try to load from cache if possible.

        This patch changes the logic so that we always try to fetch from cache, without
        any preflighting. If cache load fails, we restart the load as a known re-submit.

        No behavior change expected, so no tests.

        * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::handleClick):
        Added a FIXME.

        * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::startLoadingMainResource):
        Amended a FIXME with some information about why this call may still be needed.

        * loader/FrameLoader.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadURLIntoChildFrame): Pass an explicit argument for unchanged caching behavior.
        (WebCore::FrameLoader::reloadWithOverrideEncoding): Added a FIXME. This function
        can silently re-submit a form.
        (WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Added a FIXME about
        an incorrect use of current load type.
        (WebCore::FrameLoader::addExtraFieldsToRequest): Make sure that a correct caching
        policy is used for subresources even if main resource was loaded from cache. We
        didn't need that before because initial request had wrong extra fields due to a use
        of m_loadType when it was first called.
        Removed code to change caching policy for b/f navigations. This function does not
        have enough context to decide what the policy should be.
        (WebCore::FrameLoader::loadDifferentDocumentItem): Added an argument telling the
        function whether it should attempt loading from cache. It should do that on first
        attempt to navigate to a form submission result, but not if that failed.
        Pass a correct loadType - m_loadType is one for _previous_ load.
        Removed a special case for https - we've long stopped prohibiting caching of https
        resources, and using a resource that's already cached should definitely be allowed.
        (WebCore::FrameLoader::loadItem): Pass an explicit argument for unchanged caching behavior.
        (WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad): Added.

        * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::notifyFinished):
        Removed a check for m_resource being null, because we were immediately dereferencing
        it anyway.
        Call retryAfterFailedCacheOnlyMainResourceLoad() to let FrameLoader restart the navigation.

        * platform/network/ResourceHandle.h:
        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        * platform/network/chromium/ResourceHandle.cpp:
        * platform/network/curl/ResourceHandleCurl.cpp:
        * platform/network/mac/ResourceHandleMac.mm:
        * platform/network/qt/ResourceHandleQt.cpp:
        * platform/network/soup/ResourceHandleSoup.cpp:
        * platform/network/win/ResourceHandleWin.cpp:
        Removed willLoadFromCache() - the new logic is cross-platform.

2013-01-07  Alberto Garcia  <agarcia@igalia.com>

        [GTK] Disable deprecation warnings for GStaticRecMutex
        https://bugs.webkit.org/show_bug.cgi?id=105918

        Reviewed by Philippe Normand.

        GStaticRecMutex is deprecated since glib 2.32, but we can't remove
        it because it's needed by GStreamer 0.10. The solution is to
        disable the deprecation warnings for that code alone.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

2013-01-07  Philip Rogers  <pdr@google.com>

        Refactor client removal in CachedResource::switchClientsToRevalidatedResource
        https://bugs.webkit.org/show_bug.cgi?id=106206

        Previously switchClientsToRevalidatedResource() failed to call didRemoveClient() for each
        client and instead simply cleared m_clients. This patch removes an incorrect comment and
        refactors the code so that removeClient() and didRemoveClient() are properly called.

        Reviewed by Nate Chapin.

        No new tests as there are no observable changes from this refactoring.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::switchClientsToRevalidatedResource):

2013-01-07  Julien Chaffraix  <jchaffraix@webkit.org>

        Support size_t multiplication and division operators on LayoutUnit
        https://bugs.webkit.org/show_bug.cgi?id=83848

        Reviewed by Emil A Eklund.

        Per Darin's suggestion, adding a version of the operator for most unsigned types (excluding
        only unsigned char). This should automatically cover size_t as it should be one of these.

        Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp

        * platform/LayoutUnit.h:
        (WebCore::LayoutUnit::LayoutUnit):
        (WebCore::operator*):
        (WebCore::operator/):
        Added the operators and (possibly saturating) constructors for unsigned short, unsigned long,
        unsigned long long.

2013-01-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138944.
        http://trac.webkit.org/changeset/138944
        https://bugs.webkit.org/show_bug.cgi?id=106223

        It made 28 tests crash (Requested by Ossy on #webkit).

        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::fetchInfo):
        (WebCore::PluginPackage::load):

2013-01-07  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Build fixes after r138413
        https://bugs.webkit.org/show_bug.cgi?id=106087

        Reviewed by Alexey Proskuryakov.

        * WebCore.vcproj/WebCore.vcproj: Added NetworkStorageSessionStub.cpp,
        and removed NetworkStorageSessionCFNet.cpp for WinCairo build.
        * platform/win/TemporaryLinkStubs.cpp: Include fix.

2013-01-07  David Faure  <faure@kde.org>

        [Qt] Major performance improvement in Qt's PluginDatabase implementation
        https://bugs.webkit.org/show_bug.cgi?id=106140

        Reviewed by Simon Hausmann.

        No new tests, only a performance improvement.

        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::fetchInfo): Don't do a full-fledged load(), load the module directly.
        (WebCore::PluginPackage::load): Use existing module if fetchInfo created it.

2013-01-07  Gabor Rapcsanyi  <rgabor@webkit.org>

        Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions with NEON intrinsics
        https://bugs.webkit.org/show_bug.cgi?id=103614

        Reviewed by Zoltan Herczeg.

        Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions in GraphicsContext3D
        with ARM NEON intrinsics. The optimized functions are 2-3x faster than the origin.

        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore):
        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
        (WebCore::SIMD::unpackOneRowOfRGBA16LittleToRGBA8):
        (SIMD):
        (WebCore::SIMD::unpackOneRowOfRGB16LittleToRGBA8):
        (WebCore::SIMD::unpackOneRowOfARGB16LittleToRGBA8):
        (WebCore::SIMD::unpackOneRowOfBGRA16LittleToRGBA8):

2013-01-07  Christophe Dumez  <christophe.dumez@intel.com>

        Regression(r138786): Causes webaudio tests to crash
        https://bugs.webkit.org/show_bug.cgi?id=106182

        Reviewed by Philippe Normand.

        Partially revert r138786 since it causes crashes in webaudio
        tests. The WebProcess would actually become unresponsive due
        to source element never going to PLAYING state.

        Only the changes to webKitWebAudioSrcChangeState() were reverted.

        No new tests, already covered by existing tests.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (webKitWebAudioSrcChangeState):

2013-01-07  Hayato Ito  <hayato@chromium.org>

        Cannot compile with ENABLE_SHADOW_DOM=0 and ENABLE_STYLE_SCOPED=1
        https://bugs.webkit.org/show_bug.cgi?id=106207

        Reviewed by Hajime Morita.

        Guard StyleScopeResolver::addHostRule with SHADOW_DOM flag.

        No tests, as no change in behavior.

        * css/StyleScopeResolver.cpp:
        (WebCore):

2013-01-07  Jon Lee  <jonlee@apple.com>

        Missing amendments to r138927. Amend Changelog to remove item about Timer.h, which was not changed.

        * rendering/RenderSnapshottedPlugIn.cpp: Rename stopAndRestartDelayTimer() to resetDelayTimer().
        (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
        (WebCore::RenderSnapshottedPlugIn::handleEvent):
        (WebCore::RenderSnapshottedPlugIn::resetDelayTimer):
        * rendering/RenderSnapshottedPlugIn.h:

2013-01-06  Jon Lee  <jonlee@apple.com>

        Show label automatically for plug-ins of significant size
        https://bugs.webkit.org/show_bug.cgi?id=106146
        <rdar://problem/12783010>

        Reviewed by Simon Fraser.

        For significantly sized plug-ins, trigger a timer that displays the label automatically
        without requiring the user to mouse over the element first. The trickiness of the logic
        here is that there are two delays involved-- one for whether the user mouses over (shorter),
        and one for when the label is shown automatically (longer). Mousing over a plug-in that is
        marked to show it automatically should have the timer delay switched. And if the label
        showed automatically, mousing in and out of the element should not change that label's
        state.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore): Add constants that determine whether the plug-in is of a significant size.
        (WebCore::shouldPlugInShowLabelAutomatically): Based on the size of the frame view and the
        clipped plug-in size, determine whether the label should show automatically. If the plug-in is
        not contained within the bounds of the frame view, or is not at least as large as the threshold
        size, then do not show the label automatically.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): After we've determined that
        the plug-in should not auto-start, make a check to see if the label should show automatically.
        Also, update some of the logging.
        (WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Update the logging.

        * rendering/RenderSnapshottedPlugIn.h: Rename the timer to m_showLabelDelayTimer since
        it can fire for two different reasons. Add some additional state variables, and an enum
        to explain why the label appeared.
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore): Change hoverDelay to showLabelAfterMouseOverDelay. Add a new, longer delay for
        when the plug-in is supposed to auto-show the label.
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize the member variables.
        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): When the snapshot image is updated,
        start the timer to auto-show the label.
        (WebCore::RenderSnapshottedPlugIn::paintLabel): Avoid painting the label only if the element
        is not hovered and the user was mousing over the plug-in. Otherwise, the plug-in is supposed
        to show automatically, and we should paint. Mark the renderer as having showed the label at
        least once.
        (WebCore::RenderSnapshottedPlugIn::showLabelDelayTimerFired): Renamed to reflect the
        purpose of the timer.
        (WebCore::RenderSnapshottedPlugIn::setShouldShowLabelAutomatically): Set the variable that
        determines whether, in general, this plug-in should show the label automatically even
        without user input.
        (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user mouses over the plug-in,
        only reset the show timer is the label has never appeared before, or if it has, that
        it's not because the label was supposed to show automatically. That is, if the label is
        supposed to show automatically, the label should remain visible. This is also true when
        the user mouses out of the plug-in. If the user moused out before the time had a chance
        to fire and show the label for the first time, then we check to see if the plug-in should
        be displaying the label automatically, and if so, restart the timer using the longer delay.
        (WebCore::RenderSnapshottedPlugIn::stopAndRestartDelayTimer): Convenience function to
        update the m_showReason variable, and reset the timer with the appropriate delay.

2013-01-06  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in DocumentLoader::stopLoading
        https://bugs.webkit.org/show_bug.cgi?id=103656

        Reviewed by Eric Seidel.

        Test: fast/dom/ready-state-change-crash.html

        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::prepareToStopParsing): Bail out
        if the parser is detached due to mutation event.
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::stopLoading): Move the protectors for
        frame and document loader to the start of the function. Call to
        m_frame->loader()->stopLoading() can change document ready state
        and fire mutation event which might blow the document loader from
        underneath.

2013-01-06  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM]: crash in WebCore::ElementShadow::setValidityUndetermined
        https://bugs.webkit.org/show_bug.cgi?id=106203

        Reviewed by Hajime Morita.

        InsertionPoint should check whether ElementShadow is available or not
        before invoking its methods.

        No new tests. Webcomponents_fuzzer reported this bug. Would like to
        use the fuzzer to check this issue.

        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::getDistributedNodes):
        (WebCore::InsertionPoint::childrenChanged):
        (WebCore::InsertionPoint::insertedInto):
        Added ifs to check whether ElementShadow is available or not before
        invoking ElementShadow's methods, i.e. setValidityUndetermined,
        invalidateDistribution, and ensureDistributionDocument.

2013-01-06  Shinya Kawanaka  <shinyak@chromium.org>

        RenderImage should not use shadowAncestorNode
        https://bugs.webkit.org/show_bug.cgi?id=97871

        Reviewed by Dimitri Glazkov.

        Since shadowAncestorNode() does not return 0, this if-condition will never hold.
        shadowHost() should be used instead.

        No change in logic, refactoring.

        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::hostImageElement):

2013-01-06  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

        Bug 106177 - [GStreamer] Don't call gst_video_info_from_caps() with non-fixed caps
        https://bugs.webkit.org/show_bug.cgi?id=106177

        Reviewed by Martin Robinson.

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (getVideoSizeAndFormatFromCaps):
        Don't call gst_video_info_from_caps() with non-fixed caps as
        it will cause assertions.

2013-01-06  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::Document::implicitClose
        https://bugs.webkit.org/show_bug.cgi?id=105655

        Reviewed by Eric Seidel.

        Test: fast/dom/window-load-crash.html

        * dom/Document.cpp:
        (WebCore::Document::implicitClose): RefPtr protect |this| document since it
        can be destroyed in the dispatchWindowLoadEvent call.

2013-01-06  Mike West  <mkwst@chromium.org>

        Seamless: IFrame's padding isn't taken into account when calculating its height.
        https://bugs.webkit.org/show_bug.cgi?id=106167

        Reviewed by Eric Seidel.

        IFrames rendered seamlessly don't currently calculate their height
        correctly when padding is applied to the frame itself. This patch adds
        padding calculations to RenderIFrame::layoutSeamlessly to ensure that
        the seamless frame is correctly sized.

        * rendering/RenderIFrame.cpp:
        (WebCore::RenderIFrame::layoutSeamlessly):

2013-01-05  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: [Mac] Intermittent crashes in AXObjectCache::notificationPostTimerFired
        https://bugs.webkit.org/show_bug.cgi?id=106106

        Reviewed by Eric Seidel.

        The crash was cause by notification post timer firing after the object destruction had taken place.
        Clear the timer so that this won't happen. Also make sure the document doesn't go away while we're
        going through m_notificationsToPost.

        No new tests since crashes have been caught by various layout tests, and we can't easily
        create a deterministic layout test for this particular crash.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::~AXObjectCache):
        (WebCore::AXObjectCache::notificationPostTimerFired):

2013-01-05  Michael Pruett  <michael@68k.org>

        IndexedDB: Replace int64 with int64_t
        https://bugs.webkit.org/show_bug.cgi?id=106189

        Reviewed by Sam Weinig.

        Cleaning up coding inconsistencies, no change in behavior.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::GetOperation::create):

2013-01-05  Elliott Sprehn  <esprehn@chromium.org>

        Remove RenderObjectChildList::beforePseudoElementRenderer and afterPseudoElementRenderer
        https://bugs.webkit.org/show_bug.cgi?id=106132

        Reviewed by Abhishek Arya.

        We no longer need the complicated traversals in beforePseudoElementRenderer
        and afterPseudoElementRenderer since we can get the renderers of pseudo
        elements through the node. This removes all that code and swaps it for
        Element::pseudoElementRenderer.

        This is possible now that r138850 removed all the now incorrect manual
        management of pseudo element renderers from the render tree that was
        left over from before the switch to DOM based pseudo elements.

        No new tests, just refactoring.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * dom/Element.cpp:
        (WebCore::Element::pseudoElementRenderer):
            Added, gets the renderer of the pseudo element by PseudoId if it
            exists.
        * dom/Element.h:
        (Element):
        * dom/NodeRenderingTraversal.cpp:
        (WebCore::NodeRenderingTraversal::nextSiblingSlow):
        (WebCore::NodeRenderingTraversal::previousSiblingSlow):
        * rendering/RenderCounter.cpp:
        (WebCore::previousInPreOrder):
        (WebCore::previousSiblingOrParent):
        (WebCore::nextInPreOrder):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::lastChild):
        * rendering/RenderObjectChildList.cpp:
        * rendering/RenderObjectChildList.h:
        (RenderObjectChildList):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::counterValueForElement):

2013-01-05  Robert Hogan  <robert@webkit.org>

        Heap-use-after-free in WebCore::RenderBlock::insertIntoTrackedRendererMaps
        https://bugs.webkit.org/show_bug.cgi?id=105654

        Reviewed by Simon Fraser.

        As with position:relative, position:sticky does not apply to table sections.

        Test: fast/block/sticky-position-containing-block-crash.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):

2013-01-05  Mike West  <mkwst@chromium.org>

        Cleanup: mayDisplaySeamlessWithParent -> mayDisplaySeamless_ly_WithParent
        https://bugs.webkit.org/show_bug.cgi?id=106169

        Reviewed by Eric Seidel.

        This patch renames SecurityContext's 'm_mayDisplaySeamlessWithParent' to
        'm_mayDisplaySeamlesslyWithParent'. Because adverbs matter.

        * dom/Document.cpp:
        (WebCore::Document::initSecurityContext):
        (WebCore::Document::shouldDisplaySeamlesslyWithParent):
        * dom/SecurityContext.cpp:
        (WebCore::SecurityContext::SecurityContext):
        * dom/SecurityContext.h:
        (SecurityContext):

2013-01-05  Mike West  <mkwst@chromium.org>

        seamless iframes don't take border into account properly and make the iframe too small.
        https://bugs.webkit.org/show_bug.cgi?id=90827

        Reviewed by Ojan Vafai.

        Seamless IFrames were incorrectly calculating their width; borders and
        padding of the child document were accidentally left out of the end
        result. This tiny patch adds the border/padding width to the calculated
        width for the seamless IFrame, bringing things back into line with
        expectations.

        Test: fast/frames/seamless/seamless-border-padding.html

        * rendering/RenderIFrame.cpp:
        (WebCore::RenderIFrame::minPreferredLogicalWidth):
        (WebCore::RenderIFrame::maxPreferredLogicalWidth):
            Add borderAndPaddingLogicalWidth() to the result of both methods.

2013-01-05  Min Qin  <qinmin@chromium.org>

        MediaControls::show() should make controls opaque
        https://bugs.webkit.org/show_bug.cgi?id=106034

        Reviewed by Eric Carlson.

        When a video enters fullscreen, webkit starts a timer to make the control transparent when the timer expires.
        If the user exits fullscreen while the timer expires, webkit will call mediaControls::show().
        However, show() actually displays nothing as the control is transparent.
        The user had to move his mouse outside the video rect and move it back in order to show the controls.
        Simply clicking/moving the mouse inside the video rect will not make the control opaque.
        Test: media/video-controls-visible-exiting-fullscreen.html

        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::show):

2013-01-05  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Migrate backend ObjectStore calls to use transaction id
        https://bugs.webkit.org/show_bug.cgi?id=102741

        Reviewed by Tony Chang.

        Fully migrate 8 core data calls (get, put, setIndexKeys, setIndexesReady,
        openCursor, count, deleteRange, and clear) into IDBDatabaseBackendImpl,
        combining common code from IDBObjectStoreBackendImpl and IDBIndexBackendImpl
        in order to simplify the backend interface. These calls are now
        implemented in terms of an int64_t-based transactionId rather than
        an IDBTransactionBackendInterface, which simplifies the ownership model
        between the frontend and the backend.

        In addition, remove references to IDBObjectStoreBackend* from IDBIndex,
        as it is no longer needed.

        A few duplicate IDB_TRACE methods have been removed from wrapper methods
        that call another method that already have IDB_TRACE's.

        Finally, IDBCursorBackendImpl now no longer holds onto an 
        IDBObjectStoreBackendImpl*, so its destruction and member variables are
        simplified, and reordered to match proper destruction order.

        * Modules/indexeddb/IDBCursorBackendImpl.cpp: Reordered to account for proper destruction.
        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
        (WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl):
        (WebCore::IDBCursorBackendImpl::deleteFunction):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::create):
        (IDBCursorBackendImpl):
        * Modules/indexeddb/IDBDatabase.h:
        (WebCore::IDBDatabase::backend):
        (IDBDatabase):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (GetOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::*RetrievalOperation
        (WebCore::GetOperation::create):
        (WebCore::GetOperation::GetOperation):
        (WebCore):
        (PutOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::*StorageOperation.
        (WebCore::PutOperation::create):
        (WebCore::PutOperation::PutOperation):
        (SetIndexesReadyOperation): Moved from IDBObjectStoreBackendImpl::IndexesReadyOperation
        (WebCore::SetIndexesReadyOperation::create): 
        (WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
        (OpenCursorOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::Open*CursorOperation
        (WebCore::OpenCursorOperation::create):
        (WebCore::OpenCursorOperation::OpenCursorOperation):
        (CountOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::CountOperation
        (WebCore::CountOperation::create):
        (WebCore::CountOperation::CountOperation):
        (DeleteRangeOperation): Moved from IDBObjectStoreBackendImpl::DeleteOperation
        (WebCore::DeleteRangeOperation::create):
        (WebCore::DeleteRangeOperation::DeleteRangeOperation):
        (ClearOperation): Moved from IDBObjectStoreBackendImpl::ClearOperation
        (WebCore::ClearOperation::create):
        (WebCore::ClearOperation::ClearOperation):
        (WebCore::IDBDatabaseBackendImpl::get): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::get*
        (WebCore::GetOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::put): Moved from IDBObjectStoreBackendImpl::put
        (WebCore::PutOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::setIndexKeys): Moved from IDBObjectStoreBackendImpl::setIndexKeys
        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
        (WebCore::SetIndexesReadyOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::openCursor):
        (WebCore::IDBDatabaseBackendImpl::count):
        (WebCore::CountOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::deleteRange):
        (WebCore::DeleteRangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::clear):
        (WebCore::ClearOperation::perform):
        (WebCore::OpenCursorOperation::perform):
        * Modules/indexeddb/IDBIndex.cpp:
        (WebCore::IDBIndex::IDBIndex):
        (WebCore::IDBIndex::openCursor):
        (WebCore::IDBIndex::count):
        (WebCore::IDBIndex::openKeyCursor):
        (WebCore::IDBIndex::get):
        (WebCore::IDBIndex::getKey):
        (WebCore::IDBIndex::backendDB):
        (WebCore):
        * Modules/indexeddb/IDBIndex.h:
        (WebCore::IDBIndex::create):
        (IDBIndex):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
        * Modules/indexeddb/IDBIndexBackendImpl.h:
        (WebCore::IDBIndexBackendImpl::create):
        (WebCore::IDBIndexBackendImpl::openCursor):
        (WebCore::IDBIndexBackendImpl::count):
        (WebCore::IDBIndexBackendImpl::openKeyCursor):
        (WebCore::IDBIndexBackendImpl::get):
        (WebCore::IDBIndexBackendImpl::getKey):
        (IDBIndexBackendImpl):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::get):
        (WebCore::IDBObjectStore::put):
        (WebCore::IDBObjectStore::deleteFunction):
        (WebCore::IDBObjectStore::clear):
        (WebCore):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::openCursor):
        (WebCore::IDBObjectStore::count):
        (WebCore::IDBObjectStore::backendDB):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::id):
        (IDBObjectStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
        (WebCore::IDBObjectStoreBackendImpl::generateKey):
        (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (WebCore::IDBObjectStoreBackendImpl::get):
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
        (WebCore::IDBObjectStoreBackendImpl::clear):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::openCursor):
        (WebCore::IDBObjectStoreBackendImpl::count):
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::database):
        (IDBTransactionBackendImpl):

2013-01-05  Robert Hogan  <robert@webkit.org>

        Max width of a floated container with floated children calculated incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=47975

        Accumulate the width of child floats in the correct counter so that it gets reset
        as expected when a subsequent sibling decides to clear it.

        Reviewed by Levi Weintraub.

        Test: fast/block/float/max-width-clear-float-with-overflow-hidden.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):

2013-01-05  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Stub out IDBDatabaseBackendInterface::createIndex/deleteIndex
        https://bugs.webkit.org/show_bug.cgi?id=106117

        Reviewed by Adam Barth.

        No new tests, these are just stubs for refactoring.

        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore::IDBDatabaseBackendImpl::createIndex):
        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):

2013-01-05  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM]: Some named elements in ShadowTree visible on nesting document level
        https://bugs.webkit.org/show_bug.cgi?id=105617

        Reviewed by Dimitri Glazkov.

        According to the shadow dom spec, the nodes and named elements are not
        accessible using shadow host's document DOM tree accessors or with
        Window object named properties. c.f.
        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#upper-boundary-encapsulation

        Test: fast/dom/shadow/element-name-in-shadow.html

        * dom/Element.h:
        (WebCore::Element::updateName):
        Check whether the given element is in a shadow dom tree or not. If in
        a shadow dom tree, don't register the name.
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::insertedInto):
        (WebCore::HTMLIFrameElement::removedFrom):
        (WebCore::HTMLIFrameElement::parseAttribute):
        HTMLIFrameElement doesn't use updateName. Instead the element uses
        addExtraNamedItem and removeExtraNameItem in HTMLIFrameElement.cpp.

2013-01-05  Chris Rogers  <crogers@google.com>

        Implement MediaStreamSource::setAudioFormat()
        https://bugs.webkit.org/show_bug.cgi?id=106053

        Reviewed by Kenneth Russell.

        MediaStreamAudioDestinationNode needs to be able to tell its associated
        MediaStreamSource about the audio format (number of channels and sample-rate).

        * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
        (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
        * platform/audio/AudioDestinationConsumer.h:
        (AudioDestinationConsumer):
        * platform/chromium/support/WebMediaStreamSource.cpp:
        (ConsumerWrapper):
        (WebKit::ConsumerWrapper::setFormat):
        (WebKit):
        * platform/mediastream/MediaStreamSource.cpp:
        (WebCore::MediaStreamSource::setAudioFormat):
        (WebCore):
        * platform/mediastream/MediaStreamSource.h:
        (MediaStreamSource):

2013-01-05  Zeno Albisser  <zeno@webkit.org>

        [Texmap] TextureMapperGL should reset ARRAY_BUFFER after painting.
        https://bugs.webkit.org/show_bug.cgi?id=106098

        This fixes the issue of the address bar disappearing in
        Qt/MiniBrowser after r138555.

        Reviewed by Jocelyn Turcotte.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawEdgeTriangles):
        (WebCore::TextureMapperGL::drawUnitRect):

2013-01-04  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium windows compile fails because of the assertion in NodeRareData
        https://bugs.webkit.org/show_bug.cgi?id=106149

        Reviewed by Andreas Kling.

        MSVC adds padding between bitfields of different types for better alignment.
        Since we care more about the memory usage, use unsigned for all bitfields to work around this behavior.

        * dom/NodeRareData.cpp:
        (SameSizeAsNodeRareData):
        (WebCore):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::isWebVTTNode):
        (WebCore::NodeRareData::isWebVTTFutureNode):
        (NodeRareData):

2013-01-04  Dan Bernstein  <mitz@apple.com>

        Updated the exports file.

        Rubber-stamped by Andy Estes.

        * WebCore.exp.in: Moved the DOMHTMLTableCellElement export out of the !PLATFORM(IOS) section.

2013-01-04  Jon Lee  <jonlee@apple.com>

        Update margin for label to 0
        https://bugs.webkit.org/show_bug.cgi?id=106152
        <rdar://problem/12961387>

        Reviewed by Brian Weinstein.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore): Change the margin constant from 10 to 0.

2013-01-04  Benjamin Poulain  <benjamin@webkit.org>

        Optimize TransformationMatrix::multiply() for x86_64
        https://bugs.webkit.org/show_bug.cgi?id=105719

        Reviewed by Sam Weinig.

        On x86_64, we have access to 16 XMM registers. This can hold 32 double values.
        We can use that in two ways to optimize matrix multiplications:
        -Keep the source matrix completely in registers. Write the result directly in
         the source matrix's memory. This avoids the memcpy at the end of the multiplication
         and various memory operations.
        -Use SIMD with SSE to perform 2 operations at a time.

        The parameter from the second matrix are loaded one by one in XMM registers.
        Loading them with SSE then shuffling the values perform worse than loading
        one by one.

        This is only enabled on 64bits as x86 only has access to 8 XMM registers and
        the function should be written differently.

        On a i5, TransformationMatrix::multiply() perform about 3 times faster with the change.

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::multiply):
        * platform/graphics/transforms/TransformationMatrix.h:
        (TransformationMatrix): Fix an incorrect comment. Unify the comment with the cpp file.

2013-01-04  Joshua Bell  <jsbell@chromium.org>

        Unreviewed, fix Apple Win build following http://trac.webkit.org/changeset/138838
        https://bugs.webkit.org/show_bug.cgi?id=105927

        * WebCore.vcproj/WebCoreTestSupport.vcproj:

2013-01-04  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::XMLDocumentParser::doEnd
        https://bugs.webkit.org/show_bug.cgi?id=100152

        Reviewed by Adam Barth.

        XMLDocumentParser can be blown away inside document()->styleResolverChanged()
        call. Protect it with a local RefPtr in Document::explitClose.    
    
        No new tests. The site specific dependencies are hard to minimize.

        * dom/Document.cpp:
        (WebCore::Document::explicitClose): RefPtr m_parser into a local, since
        it can be detached and nulled out in DocumentWriter::end().
        * xml/parser/XMLDocumentParser.cpp:
        (WebCore::XMLDocumentParser::end): Bail out when we are detached.
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::doEnd): Bail out when we are detached.
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::doEnd): Bail out when we are detached.

2013-01-04  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r138394): platform/mac/accessibility/file-upload-button-subrole.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=105778

        Reviewed by Alexey Proskuryakov.

        Rename "file upload" to "file upload button".

        * English.lproj/Localizable.strings:
        * platform/LocalizedStrings.cpp:

2013-01-04  Tim Horton  <timothy_horton@apple.com>

        [wk2] Remove non-visible tiles from the layer tree
        https://bugs.webkit.org/show_bug.cgi?id=106061
        <rdar://problem/12761821>

        Reviewed by Simon Fraser.

        Unparenting tiles which aren't currently on-screen can allow underlying
        frameworks to manage the layer's backing stores more effectively than we can.

        In addition, add a setting (AggressiveTileRetentionEnabled) which keeps more
        tiles around (we don't remove tiles in cohorts, nor when the TileCache moves
        out of the window), which is off by default.

        * WebCore.exp.in: Export Settings::setAggressiveTileRetentionEnabled.
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Initialize m_aggressiveTileRetentionEnabled to false.
        (WebCore::Settings::setAggressiveTileRetentionEnabled): Added.
        * page/Settings.h:
        (WebCore::Settings::aggressiveTileRetentionEnabled): Added.
        * platform/graphics/TiledBacking.h: Add setter/getter to hand aggressivelyRetainsTiles through to TiledBackings.
        * platform/graphics/ca/mac/TileCache.h:
        (TileCache): Turn TileValidationPolicy into TileValidationPolicyFlags, and add
        a flag for unparenting all tiles.
        Implement aggressivelyRetainsTiles setter/getter.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache): Initialize m_aggressivelyRetainsTiles to false.
        (WebCore::TileCache::setIsInWindow): Revalidate tiles immediately if the TileCache has just entered the window.
        (WebCore::TileCache::tileRevalidationTimerFired):
        This is called if coverage rect, tile cache layer bounds, or visibility changes. We will revalidate tiles:
            - Removing all tiles from the layer tree for background tile caches.
            - Not pruning old tiles if the aggressiveTileRetentionEnabled setting is on.
        (WebCore::TileCache::revalidateTiles):
        Adopt TileValidationPolicyFlags instead of the old enum, and use separate flags for foreground/background caches.
        Unparent tiles when they move out of the tile coverage rect.
        Only schedule the tile cohort removal timer if we're not aggressively keeping tiles around.
        Ensure that tiles are re-added to the TileCache layer tree if they already exist.
        Unparent all tiles if TileValidationPolicyFlags says to (from tileRevalidationTimerFired's background flags).
        Only add new tiles to the TileCache's layer tree if we're currently in the window.
        Don't prune secondary tiles if the visible rect changes; this will already occur because when the visibleRect
        changes, we arrive via tileRevalidationTimerFired, which asks for PruneSecondaryTiles anyway (except if we're
        aggressively retaining tiles). This prevents tiles from being deleted unexpectedly during rubber-banding or when zoomed (this part of the patch is thanks to Simon).
        (WebCore::TileCache::ensureTilesForRect):
        Don't ensure any tiles if the TileCache is offscreen.
        Ensure that tiles are re-added to the TileCache layer tree if they already exist.
        (WebCore::TileCache::drawTileMapContents):
        Draw a thick purple border around tiles that have been unparented.

2013-01-04  Adam Barth  <abarth@webkit.org>

        HTMLTreeBuilder should ASSERT that it is on the main thread before touching elements
        https://bugs.webkit.org/show_bug.cgi?id=106128

        Reviewed by Eric Seidel.

        Even if we move the HTML parser onto a background thread, we're likely
        to keep fragment parsing on the main thread. These code paths touch
        elements (which only exist on the main thread) but are only used during
        fragment parsing. This patch adds ASSERTs to document that invariant.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::closestFormAncestor):
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):

2013-01-04  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Regions] @region rules inside media queries are ignored
        https://bugs.webkit.org/show_bug.cgi?id=102388

        Reviewed by David Hyatt.

        Using @region rules in media queries was ignored, but we should accept and apply it.

        Tests: fast/regions/region-rule-nested-region-rule.html
               fast/regions/region-styling-mediaquery.html

        * css/CSSGrammar.y.in: Add new ruleList for region rule to handle the media query case
        and avoid using nested region rules.
        * css/RuleSet.cpp:
        (WebCore::RuleSet::addRulesFromSheet): Add case for region rules inside media queries.

2013-01-04  Dan Bernstein  <mitz@apple.com>

        [mac] WebKit1 has no equivalent of WKBundleNodeHandleCopyHTMLTableCellElementCellAbove
        https://bugs.webkit.org/show_bug.cgi?id=106121

        Reviewed by Adele Peterson.

        Test: TestWebKitAPI/Tests/mac/DOMHTMLTableCellCellAbove.mm.

        * bindings/objc/DOM.mm:
        (-[DOMHTMLTableCellElement _cellAbove]): Added. Calls HTMLTableCellElement::cellAbove().
        * bindings/objc/DOMPrivate.h: Added declaration of the above.

2013-01-04  Abhishek Arya  <inferno@chromium.org>

        Crash in WebCore::RenderBlock::willBeDestroyed
        https://bugs.webkit.org/show_bug.cgi?id=103455

        Reviewed by Eric Seidel.

        It is not required to set beforeChild to :after child since DOM is
        now pseudo element aware. See trac.webkit.org/changeset/137336. We
        were incorrectly placing the inline continuation before the :after
        content.       
          
        Test: fast/multicol/continuation-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): remove beforeChild
        setting to afterPseudoElementRenderer.
        * rendering/RenderRuby.cpp:
        (WebCore::RenderRubyAsInline::addChild): add missing beforeChild argument.
        setting to afterPseudoElementRenderer.
        (WebCore::RenderRubyAsBlock::addChild): add missing beforeChild argument.
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): remove beforeChild
        setting to afterPseudoElementRenderer.
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::addChild): remove beforeChild
        setting to afterPseudoElementRenderer.
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild): remove beforeChild
        setting to afterPseudoElementRenderer.

2013-01-04  Chris Rogers  <crogers@google.com>

        Implement WebIDL-style string constants in WebAudio (part 2)
        https://bugs.webkit.org/show_bug.cgi?id=105977

        Reviewed by Kentaro Hara.

        See Deprecation Notes for more detail:
        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DeprecationNotes

        PannerNode, BiquadFilterNode, OscillatorNode constants must support WebIDL-style string constants.
        Legacy support in the setters for the old integer values should be supported.
        This patch handles the changes for BiquadFilterNode and PannerNode.
             
        Test: webaudio/pannernode-basic.html

        * GNUmakefile.list.am:
        * Modules/webaudio/BiquadFilterNode.cpp:
        (WebCore::BiquadFilterNode::type):
        (WebCore):
        (WebCore::BiquadFilterNode::setType):
        * Modules/webaudio/BiquadFilterNode.h:
        (BiquadFilterNode):
        * Modules/webaudio/BiquadFilterNode.idl:
        * Modules/webaudio/PannerNode.cpp:
        (WebCore::PannerNode::panningModel):
        (WebCore):
        (WebCore::PannerNode::setPanningModel):
        (WebCore::PannerNode::distanceModel):
        (WebCore::PannerNode::setDistanceModel):
        * Modules/webaudio/PannerNode.h:
        (PannerNode):
        * Modules/webaudio/PannerNode.idl:
        * Target.pri:
        * UseJSC.cmake:
        * UseV8.cmake:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBiquadFilterNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
        (WebCore):
        (WebCore::JSBiquadFilterNode::setType):
        * bindings/js/JSPannerNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
        (WebCore):
        (WebCore::JSPannerNode::setPanningModel):
        (WebCore::JSPannerNode::setDistanceModel):
        * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
        (WebCore):
        (WebCore::V8BiquadFilterNode::typeAccessorSetter):
        * bindings/v8/custom/V8PannerNodeCustom.cpp: Added.
        (WebCore):
        (WebCore::V8PannerNode::panningModelAccessorSetter):
        (WebCore::V8PannerNode::distanceModelAccessorSetter):

2013-01-04  Rick Byers  <rbyers@chromium.org>

        window.Touch and TouchList should exist when touch events are enabled
        https://bugs.webkit.org/show_bug.cgi?id=96295

        Reviewed by Kentaro Hara.

        Add missing window.Touch and window.TouchList constructors under
        ENABLE(TOUCH_EVENTS).

        Make window.Touch, window.TouchList and window.TouchEvent enabled at runtime
        under V8, to be consistent with all the other touch-related APIs.

        Tests: fast/events/touch/document-create-touch-list.html
           fast/js/global-constructors.html

        * bindings/generic/RuntimeEnabledFeatures.h:
        * dom/Document.idl:
        * dom/Element.idl:
        * page/DOMWindow.idl:

2013-01-04  Adam Klein  <adamk@chromium.org>

        [v8] Stop using an IDL to generate V8MutationCallback
        https://bugs.webkit.org/show_bug.cgi?id=106122

        Reviewed by Adam Barth.

        The only real code in the generated V8MutationCallback.{h,cpp} files
        were specifically written in CodeGeneratorV8 for its use. By instead
        Using completely-hand-written versions of these files, the
        CodeGenerator can be simplified (as can all generated Callbacks).
        All the actually shared code is still shared via subclassing of
        ActiveDOMCallback.

        This introduces additional flexibility into the implementation of
        MutationCallback which will be used when fixing the MutationObserver
        memory leak (http://webkit.org/b/90661) for JSC.

        No changes to JSC for now, just a FIXME in the IDL file.

        No new tests, refactoringonly.

        * WebCore.gypi:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallbackHeader):
        (GenerateCallbackImplementation):
        * bindings/scripts/test/V8/V8TestCallback.cpp:
        (WebCore::V8TestCallback::V8TestCallback):
        * bindings/scripts/test/V8/V8TestCallback.h:
        (WebCore::V8TestCallback::create):
        (V8TestCallback):
        * bindings/v8/V8MutationCallback.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MutationCallbackCustom.cpp.
        (WebCore::V8MutationCallback::V8MutationCallback):
        (WebCore::V8MutationCallback::handleEvent):
        * bindings/v8/V8MutationCallback.h: Added.
        (V8MutationCallback):
        (WebCore::V8MutationCallback::create):
        (WebCore::V8MutationCallback::weakCallback):
        * dom/MutationCallback.idl:

2013-01-04  Tony Chang  <tony@chromium.org>

        Remove some autogenerated settings from InternalSettings.idl
        https://bugs.webkit.org/show_bug.cgi?id=106114

        Reviewed by Ojan Vafai.

        Remove 6 methods that are now autogenerated.
        setAcceleratedFiltersEnabled was never called.
        AcceleratedCompositingForOverflowScrollEnabled was never backed up/restored.
        setEnableCompositingForFixedPosition and setEnableCompositingForScrollableFrames
        are renamed to match the name in Settings.in.

        No new tests, there should be no change in behavior. This is covered by
        existing tests in compositing and platform/chromium/compositing.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup): Remove code.
        (WebCore::InternalSettings::Backup::restoreTo): Remove code.
        * testing/InternalSettings.h:
        (Backup): Remove member variables.
        (InternalSettings):
        * testing/InternalSettings.idl: Remove methods that are no longer used.

2013-01-04  Ojan Vafai  <ojan@chromium.org>

        Vertical writing mode can overflow fixed size grandparent container
        https://bugs.webkit.org/show_bug.cgi?id=93655

        Reviewed by David Hyatt.

        Add a hook to RenderBox::availableHeight to exclude the containing block's
        margin, border and padding. This is for auto-sizing perpendicular writing modes
        to restrict to the minimum of the fill-available height and the viewport height.

        This will be used in a future patch to implement "height: fill-available".

        This behavior was recently specced in http://dev.w3.org/csswg/css3-sizing/#extrinsic-sizing.

        Test: fast/writing-mode/auto-sizing-orthogonal-flows.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
        (WebCore::RenderBox::availableLogicalHeight):
        (WebCore::RenderBox::availableLogicalHeightUsing):
        * rendering/RenderBox.h:
        (RenderBox):
        (WebCore::RenderBox::availableWidth):
        (WebCore::RenderBox::availableHeight):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::computeIntrinsicRatioInformation):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::availableLogicalHeight):
        * rendering/RenderView.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):

2013-01-04  Joshua Bell  <jsbell@chromium.org>

        Add tests for WebIDL type conversions
        https://bugs.webkit.org/show_bug.cgi?id=105927

        Reviewed by Adam Barth.

        Expose attributes of various WebIDL types for testing ECMAScript value conversion,
        including edge cases such as NaNs, Infinities, etc. These attributes hang off
        a TypeConversions object created via window.internals.typeConversions().

        Test: fast/js/webidl-type-mapping.html

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.vcproj/WebCoreTestSupport.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * testing/Internals.cpp:
        (WebCore::Internals::typeConversions):
        (WebCore):
        * testing/Internals.h:
        (WebCore):
        * testing/Internals.idl:
        * testing/TypeConversions.h: Added.
        (WebCore):
        (TypeConversions):
        (WebCore::TypeConversions::create):
        (WebCore::TypeConversions::testLong):
        (WebCore::TypeConversions::setTestLong):
        (WebCore::TypeConversions::testUnsignedLong):
        (WebCore::TypeConversions::setTestUnsignedLong):
        (WebCore::TypeConversions::testLongLong):
        (WebCore::TypeConversions::setTestLongLong):
        (WebCore::TypeConversions::testUnsignedLongLong):
        (WebCore::TypeConversions::setTestUnsignedLongLong):
        (WebCore::TypeConversions::TypeConversions):
        * testing/TypeConversions.idl: Added.

2013-01-04  Stephen White  <senorblanco@chromium.org>

        Invalidation of some SVG filter attributes on HTML content doesn't work 
        https://bugs.webkit.org/show_bug.cgi?id=105635

        Reviewed by Dirk Schulze.

        Since HTML elements with filters are only added to m_clientLayers, not
        m_clients, and do not use the FilterInfo used by SVG filters on SVG
        elements, they must be invalidated separately.  Some filter attribute
        invalidations call markAllClientsForInvalidation(), but some call
        markClientForInvalidation() directly.  These invaldations must also 
        invalidate m_clientLayers.

        Test: css3/filters/reference-filter-update-on-attribute-change.html

        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
        (WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
        * rendering/svg/RenderSVGResourceContainer.h:
        Refactor client layer invalidation out into its own function.
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
        Mark all client layers for invalidation when a filter primitve attribute is
        changed.

2013-01-04  Mike West  <mkwst@chromium.org>

        CSP 1.1: Experiment with adding line numbers to violation reports.
        https://bugs.webkit.org/show_bug.cgi?id=105374

        Reviewed by Adam Barth.

        Line numbers and URLs were added to the CSP 1.1 spec in
        https://dvcs.w3.org/hg/content-security-policy/rev/e0270baace3d, and
        already exist (and have for quite some time) in Firefox's
        implementation. Based on developer feedback, it seems reasonable to
        experiment a bit with adding them to WebKit's violation reports.
        This patch generates a stack trace when constructing the violation
        report object (iff a violation report object ought to be generated)
        and adds a line number and URL to the object if possible.

        Tests: http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.html
               http/tests/security/contentSecurityPolicy/report-uri-from-javascript.html

        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::reportViolation):
            Generate a stack trace when building the violation report: if it
            has relevant detail, add the line number and URL to the report
            object.

2013-01-04  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc: working with translate and scale transforms
        https://bugs.webkit.org/show_bug.cgi?id=105985

        Reviewed by Ojan Vafai.

        Allow convertTo[Float|Int]Length functions to process calculated values.

        Tests: css3/calc/transforms-scale.html
               css3/calc/transforms-translate.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::convertToIntLength):
        (WebCore::StyleResolver::convertToFloatLength):

2013-01-04  Elliott Sprehn  <esprehn@chromium.org>

        PseudoElement should never dispatch events
        https://bugs.webkit.org/show_bug.cgi?id=106048

        Reviewed by Ojan Vafai.

        The new DOM based generated content can sometimes dispatch events
        as a result of animations or transitions which is incorrect as it
        exposes the PseudoElement to script. All event dispatch from a
        PseudoElement should be ignored.

        Per discussions with Tab Atkins in the future we might add support
        by making events dispatched from a pseudo element fire with the
        target as the parent element and add a new pseudo property to
        events that has the value "before" or "after".

        Test: fast/css-generated-content/pseudo-element-events.html

        * dom/PseudoElement.h:

2013-01-04  Benjamin Poulain  <benjamin@webkit.org>

        WebKitCSSTransformValue::customCssText() should always allocate once
        https://bugs.webkit.org/show_bug.cgi?id=105445

        Reviewed by Alexis Menard.

        When converting a WebKitCSSTransformValue to a String representation,
        it was typically done with 2 memory allocations due to the string size in StringBuilder.

        This patch changes the code to use the String Concatenate operations in order
        to create the string at once.

        The opening parenthesis is also moved in the prefix name in order to maximize
        the range copied with memcopy.

        * css/WebKitCSSTransformValue.cpp:
        (WebCore::transformValueToCssString): New generic function for boxing values.
        (WebCore::WebKitCSSTransformValue::customCssText):
        (WebCore::WebKitCSSTransformValue::customSerializeResolvingVariables):

2013-01-04  James Robinson  <jamesr@chromium.org>

        [chromium] WebTransformationMatrix shouldn't alias memory for TransformationMatrix
        https://bugs.webkit.org/show_bug.cgi?id=106025

        Reviewed by Adrienne Walker.

        * platform/chromium/support/WebTransformationMatrix.cpp:
        (WebKit::WebTransformationMatrix::WebTransformationMatrix):
        (WebKit::WebTransformationMatrix::reset):
        (WebKit):
        (WebKit::WebTransformationMatrix::operator=):
        (WebKit::WebTransformationMatrix::operator==):
        (WebKit::WebTransformationMatrix::inverse):
        (WebKit::WebTransformationMatrix::to2dTransform):
        (WebKit::WebTransformationMatrix::multiply):
        (WebKit::WebTransformationMatrix::makeIdentity):
        (WebKit::WebTransformationMatrix::translate):
        (WebKit::WebTransformationMatrix::translate3d):
        (WebKit::WebTransformationMatrix::translateRight3d):
        (WebKit::WebTransformationMatrix::scale):
        (WebKit::WebTransformationMatrix::scaleNonUniform):
        (WebKit::WebTransformationMatrix::scale3d):
        (WebKit::WebTransformationMatrix::rotate):
        (WebKit::WebTransformationMatrix::rotate3d):
        (WebKit::WebTransformationMatrix::skewX):
        (WebKit::WebTransformationMatrix::skewY):
        (WebKit::WebTransformationMatrix::applyPerspective):
        (WebKit::WebTransformationMatrix::blend):
        (WebKit::WebTransformationMatrix::hasPerspective):
        (WebKit::WebTransformationMatrix::isInvertible):
        (WebKit::WebTransformationMatrix::isBackFaceVisible):
        (WebKit::WebTransformationMatrix::isIdentity):
        (WebKit::WebTransformationMatrix::isIdentityOrTranslation):
        (WebKit::WebTransformationMatrix::isIntegerTranslation):
        (WebKit::WebTransformationMatrix::m11):
        (WebKit::WebTransformationMatrix::setM11):
        (WebKit::WebTransformationMatrix::m12):
        (WebKit::WebTransformationMatrix::setM12):
        (WebKit::WebTransformationMatrix::m13):
        (WebKit::WebTransformationMatrix::setM13):
        (WebKit::WebTransformationMatrix::m14):
        (WebKit::WebTransformationMatrix::setM14):
        (WebKit::WebTransformationMatrix::m21):
        (WebKit::WebTransformationMatrix::setM21):
        (WebKit::WebTransformationMatrix::m22):
        (WebKit::WebTransformationMatrix::setM22):
        (WebKit::WebTransformationMatrix::m23):
        (WebKit::WebTransformationMatrix::setM23):
        (WebKit::WebTransformationMatrix::m24):
        (WebKit::WebTransformationMatrix::setM24):
        (WebKit::WebTransformationMatrix::m31):
        (WebKit::WebTransformationMatrix::setM31):
        (WebKit::WebTransformationMatrix::m32):
        (WebKit::WebTransformationMatrix::setM32):
        (WebKit::WebTransformationMatrix::m33):
        (WebKit::WebTransformationMatrix::setM33):
        (WebKit::WebTransformationMatrix::m34):
        (WebKit::WebTransformationMatrix::setM34):
        (WebKit::WebTransformationMatrix::m41):
        (WebKit::WebTransformationMatrix::setM41):
        (WebKit::WebTransformationMatrix::m42):
        (WebKit::WebTransformationMatrix::setM42):
        (WebKit::WebTransformationMatrix::m43):
        (WebKit::WebTransformationMatrix::setM43):
        (WebKit::WebTransformationMatrix::m44):
        (WebKit::WebTransformationMatrix::setM44):
        (WebKit::WebTransformationMatrix::a):
        (WebKit::WebTransformationMatrix::setA):
        (WebKit::WebTransformationMatrix::b):
        (WebKit::WebTransformationMatrix::setB):
        (WebKit::WebTransformationMatrix::c):
        (WebKit::WebTransformationMatrix::setC):
        (WebKit::WebTransformationMatrix::d):
        (WebKit::WebTransformationMatrix::setD):
        (WebKit::WebTransformationMatrix::e):
        (WebKit::WebTransformationMatrix::setE):
        (WebKit::WebTransformationMatrix::f):
        (WebKit::WebTransformationMatrix::setF):
        (WebKit::WebTransformationMatrix::toWebCoreTransform):

2013-01-04  Stephen White  <senorblanco@chromium.org>

        CSS url() filters with forward references don't work
        https://bugs.webkit.org/show_bug.cgi?id=90405

        Based on a patch by Keyar Hood.

        Reviewed by Dirk Schulze.

        In order for CSS to reference SVG filters that will occur later in
        the document, or will be added at a future time, we need a way to
        notify the target element (the one the filter style is applied to)
        when the correct SVG filter is added to the DOM.
        There is already code for SVG elements that handles this problem, in
        SVGResourcesCache. This patch allows any element to have a reference to
        an SVG element in SVGResourceCache.

        Tests: css3/filters/effect-reference-after.html
               css3/filters/effect-reference-delete-crash.html
               css3/filters/effect-reference-delete.html
               css3/filters/effect-reference-removed-while-pending-resources.html
               css3/filters/effect-reference-rename.html
               css3/filters/effect-reference-reset-style-delete-crash.html
               svg/filters/filter-cycle.html

        * dom/Element.cpp:
        (WebCore::Element::~Element):
        (WebCore::Element::removedFrom):
        When an Element is deleted or removed from its container, and it
        has pending resources, remove it from the SVGResourceCache resources
        on deletion or when removed from its container.
        (WebCore::Element::hasPendingResources):
        (WebCore::Element::setHasPendingResources):
        (WebCore::Element::clearHasPendingResources):
        Accessors for ElementRareData's new bit flag.
        * dom/Element.h:
        (WebCore::Element::buildPendingResource):
        Virtual function to override for referenced elements (moved from SVGElement).
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::hasPendingResources):
        (WebCore::ElementRareData::setHasPendingResources):
        (WebCore::ElementRareData::ElementRareData):
        Add a new bit flag to indicate whether the element depends on pending resources or not, and accessors.
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        The actual flag bit lives in NodeRareData, so it compacts better with
        other flags.
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::applyFilters):
        Changed to the new function signature for FilterEffectRenderer::build().
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::createCustomFilterEffect):
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.  If the referenced filter cannot be found, add its id as a pending reference.
        (WebCore::FilterEffectRenderer::build):
        * rendering/FilterEffectRenderer.h:
        Change to signatures of build() and buildReferenceFilter() to pass
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
        Use the new semantics for FilterEffectRenderer::build().
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::registerResource):
        Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
        on the element, since we want to support generic Elements.
        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
        (WebCore::SVGResourcesCache::clientStyleChanged):
        For non-SVG elements, set a synthetic style change when parent resources
        are invalidated.
        (WebCore::SVGResourcesCache::resourceDestroyed):
        Add support for non-SVG Elements.
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::addPendingResource):
        (WebCore::SVGDocumentExtensions::isElementPendingResources):
        (WebCore::SVGDocumentExtensions::isElementPendingResource):
        Changed to allow use of Element instead of SVGElement.
        (WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
        Moved from SVGElement, and made to work on any Element.  This way,
        we avoid adding this function to Element itself.
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
        Changed to allow use of Element instead of SVGElement.
        * svg/SVGDocumentExtensions.h:
        SVGElement -> Element.
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::~SVGElement):
        (WebCore::SVGElement::removedFrom):
        Don't handle pending resource notifications (Element will do it).
        * svg/SVGElement.h:
        All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
        * svg/SVGElementRareData.h:
        (WebCore::SVGElementRareData::SVGElementRareData):
        m_hasPendingResources and accessors moved to ElementRareData.
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
        SVGElement -> Element, and call SVGDocumentExtensions for
        clearHasPendingResourcesIfPossible().

2013-01-04  John Mellor  <johnme@chromium.org>

        Clamp font sizes to valid range in RenderStyle::setFontSize
        https://bugs.webkit.org/show_bug.cgi?id=106014

        Reviewed by Emil A Eklund.

        There is a test-case attached to http://crbug.com/167443, but I can't
        think of a good way of automatically testing this. Functionality
        shouldn't change on normal pages.

        * rendering/style/RenderStyleConstants.h:
            Add constant for maximum allowed font size.
        * css/StyleBuilder.cpp:
        (WebCore::ApplyPropertyFontSize::applyValue):
            Use constant from RenderStyleConstants.h instead of hardcoding.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::getComputedSizeFromSpecifiedSize):
            Use constant from RenderStyleConstants.h instead of hardcoding.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::setFontSize):
            Clamp non-finite and out of range font sizes.

2013-01-04  Mike West  <mkwst@chromium.org>

        CSP: Blocked 'track' sources should only log once to the console.
        https://bugs.webkit.org/show_bug.cgi?id=106091

        Reviewed by Eric Carlson.

        HTMLTrackElement posts a message to the console when track data is
        blocked by Content Security Policy. Now that we're logging inside the
        ContentSecurityPolicy object itself, there's no need for the
        duplication. This patch drops the extra log message (and, as a
        side-effect, adds a test that ensures that 'track' content is governed
        by the 'media-src' directive).

        Test: http/tests/security/contentSecurityPolicy/media-src-track-block.html

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::canLoadUrl):

2013-01-03  Jer Noble  <jer.noble@apple.com>

        Crash in media/unsupported-rtsp.html.
        https://bugs.webkit.org/show_bug.cgi?id=106038

        Reviewed by Eric Carlson.

        Fixes media/unsupported-rtsp.html on Mac platforms which support AVAssetResourceLoadingRequest.

        Check that the CachedResource passed in the notifyFinished method didn't fail or error before
        passing its (possibly nil) contents to the AVAssetResourceLoadingRequest.

        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
        (WebCore::WebCoreAVFResourceLoader::notifyFinished):
        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):

2013-01-04  Mike West  <mkwst@chromium.org>

        CSP: 'frame-src' should block redirects to invalid sources.
        https://bugs.webkit.org/show_bug.cgi?id=106084

        Reviewed by Adam Barth.

        The 'frame-src' CSP directive whitelists valid iframe targets, but
        currently fails to correctly deal with redirection. As long as the
        initial target is valid, any redirection goes through without
        question. This patch moves the CSP check out of
        SubframeLoader::loadSubframe, and into
        PolicyChecker::checkNavigationPolicy. In the new location, the check
        is well-positioned to check each URL in a redirect chain, as opposed
        to checking only the initial target.

        Test: http/tests/security/contentSecurityPolicy/frame-src-redirect-blocked.html

        * loader/PolicyChecker.cpp:
        (WebCore::PolicyChecker::checkNavigationPolicy):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadSubframe):

2013-01-04  Mike West  <mkwst@chromium.org>

        CSP: XHR from an isolated world should bypass a page's policy.
        https://bugs.webkit.org/show_bug.cgi?id=104480

        Reviewed by Adam Barth.

        Connections of various types are governed by the page's Content Security
        Policy 'connect-src' directive. In the special case of connections
        generated from an isolated world, we'd like to bypass these restrictions
        in order to allow things like extensions to enjoy their uniquely high-
        privilege lifestyle. This patch does just that.

        We'll lock them down to their own policy in webkit.org/b/104520, but
        that's a bit far away at the moment. Soon!

        Test: http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr.html

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::canRequest):
        * page/EventSource.cpp:
        (WebCore::EventSource::create):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::open):
            Check whether or not code is running in an isolated world that has
            its own Content Security Policy. If so, bypass the main world's CSP
            checks. Isolated worlds gotta be free, man.

2013-01-04  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc: mixed percent/absolute for border-radius
        https://bugs.webkit.org/show_bug.cgi?id=106046

        Reviewed by Ojan Vafai.

        Add the calculation evaluation to the border radius code.

        Test: css3/calc/border-radius.html

        * css/StyleBuilder.cpp:
        (WebCore::ApplyPropertyBorderRadius::applyValue):

2013-01-04  John Mellor  <johnme@chromium.org>

        Early out from FontCache::releaseFontData if cached font data not found.
        https://bugs.webkit.org/show_bug.cgi?id=106104

        Reviewed by Abhishek Arya.

        No tests, as no change in behavior.

        * platform/graphics/FontCache.cpp:
        (WebCore::FontCache::releaseFontData):

            Early out in release builds if cached font data not found.

2013-01-04  Adam Klein  <adamk@chromium.org>

        Remove ENABLE_MUTATION_OBSERVERS #define
        https://bugs.webkit.org/show_bug.cgi?id=105459

        Reviewed by Ryosuke Niwa.

        The flag has been on by default for quite awhile now (nearly a year)
        and the feature is a standardized part of DOM4.

        The only place it was disabled was under "unstable" features for the
        gtk port, but the fact that it's shipping in several major WebKit
        browsers as well as Firefox suggests that it's not too unstable.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am: Removed ENABLE_MUTATION_OBSERVERS from the "unstable features" list.
        * GNUmakefile.features.am.in:
        * bindings/js/JSDictionary.cpp:
        (WebCore):
        (WebCore::JSDictionary::convertValue):
        * bindings/js/JSDictionary.h:
        * bindings/js/JSMainThreadExecState.cpp:
        (WebCore::JSMainThreadExecState::didLeaveScriptContext):
        * bindings/js/JSMutationCallbackCustom.cpp:
        * bindings/js/JSMutationObserverCustom.cpp:
        * bindings/v8/V8GCController.cpp:
        * bindings/v8/V8RecursionScope.cpp:
        (WebCore::V8RecursionScope::didLeaveScriptContext):
        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        * css/PropertySetCSSStyleDeclaration.cpp:
        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::dispatchModifiedEvent):
        * dom/ChildListMutationScope.cpp:
        * dom/ChildListMutationScope.h:
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::replaceChild):
        (WebCore::willRemoveChild):
        (WebCore::willRemoveChildren):
        (WebCore::ContainerNode::appendChild):
        (WebCore::updateTreeAfterInsertion):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        (Document):
        * dom/Element.cpp:
        (WebCore::Element::willModifyAttribute):
        * dom/MutationCallback.h:
        * dom/MutationCallback.idl:
        * dom/MutationObserver.cpp:
        * dom/MutationObserver.h:
        * dom/MutationObserver.idl:
        * dom/MutationObserverInterestGroup.cpp:
        * dom/MutationObserverInterestGroup.h:
        * dom/MutationObserverRegistration.cpp:
        * dom/MutationObserverRegistration.h:
        * dom/MutationRecord.cpp:
        * dom/MutationRecord.h:
        * dom/MutationRecord.idl:
        * dom/Node.cpp:
        (WebCore::Node::clearRareData):
        (WebCore::Node::setTextContent):
        (WebCore::Node::didMoveToNewDocument):
        (WebCore::Node::notifyMutationObserversNodeWillDetach):
        * dom/Node.h:
        (Node):
        * dom/NodeRareData.cpp:
        (SameSizeAsNodeRareData):
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/NodeRareData.h:
        (NodeRareData):
        (WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
        * editing/markup.cpp:
        (WebCore::replaceChildrenWithFragment):
        (WebCore::replaceChildrenWithText):
        * page/DOMWindow.idl:

2013-01-04  Xianzhu Wang  <wangxianzhu@chromium.org>

        Change RenderLayerBacking::nameForLayer() to RenderLayer::name()
        https://bugs.webkit.org/show_bug.cgi?id=105648

        Reviewed by Simon Fraser.

        No new tests. For debugging only.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::name):
        (WebCore):
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        (WebCore::RenderLayerBacking::updateForegroundLayer):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::logLayerInfo):

2013-01-04  Rick Byers  <rbyers@chromium.org>

        Existence of window.Touch can break websites mobile device detection
        https://bugs.webkit.org/show_bug.cgi?id=106071

        Reviewed by Ojan Vafai.

        Revert http://trac.webkit.org/changeset/135562 for now while I work
        on a slightly safer version.

        * page/DOMWindow.idl:

2013-01-04  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [WebKit2] Clicking on a word that is selected in an editable area deletes it
        https://bugs.webkit.org/show_bug.cgi?id=106045

        Reviewed by Carlos Garcia Campos.

        Be more selective about when to confirm WebKit compositions. If there is no current
        preedit, reseting the GTK+ context shouldn't also do an empty confirmation in WebKit,
        as this will trash the current selection. The second part of this patch also makes the
        m_composingTextCurrently member more accurately reflect whether or not we are composing
        text.

        * platform/gtk/GtkInputMethodFilter.cpp:
        (WebCore::GtkInputMethodFilter::notifyMouseButtonPress): Only confirm the current WebKit composition
        if we have a preedit.
        (WebCore::GtkInputMethodFilter::notifyFocusedOut): Ditto.
        (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): Don't clear the m_composingTextCurrently
        member if we are not sending a confirmed composition.

2013-01-04  Max Feil  <mfeil@rim.com>

        [BlackBerry] Handle re-entrant destruction of MediaPlayerPrivate while a dialog is up
        https://bugs.webkit.org/show_bug.cgi?id=105906

        Reviewed by George Staikos.

        Now that dialogs are not truly modal anymore, we need to
        handle the case where MediaPlayerPrivate gets destroyed by
        re-entrant calls while a dialog is up. We do this by deferring
        the destruction of MMRPlayer until the user dismisses the dialog.

        No new tests because user dialog input is not yet part of the
        layouttest framework.

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
        (WebCore::MediaPlayerPrivate::onShowErrorDialog):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
        (MediaPlayerPrivate):

2013-01-04  Anthony Scian  <ascian@rim.com>

        [Blackberry] Static code analysis warning fixes
        https://bugs.webkit.org/show_bug.cgi?id=105679

        Reviewed by Rob Buis.

        klocwork 1855: fixed by caching page, check against NULL and use cached value

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::determineFullScreenMultiplier):

2013-01-04  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] The ExclusionPolygon classes should allow more than one type of "Edge" class
        https://bugs.webkit.org/show_bug.cgi?id=106026

        Reviewed by Dirk Schulze.

        Refactored the ExclusionPolygonEdge class to pave the way for a similar
        OffsetEdge class. The new VertexPair abstract base class provides the common
        state and operations. ExclusionPolygonEdge now extends VertexPair and defines
        ExclusionPolygon as a friend, since the ExclusionPolygon constructor initializes
        its private state.

        * rendering/ExclusionPolygon.cpp:
        (WebCore::ExclusionPolygon::ExclusionPolygon): Use ExclusionPolygonEdge accessors instead of direct field access.
        (WebCore::getVertexIntersectionVertices): Ditto.
        * rendering/ExclusionPolygon.h:
        (VertexPair): New abstract base class.
        (WebCore::VertexPair::~VertexPair):
        (WebCore::VertexPair::minX): This method was defined in ExclusionPolygonEdge.
        (WebCore::VertexPair::minY): Ditto.
        (WebCore::VertexPair::maxX): Ditto.
        (WebCore::VertexPair::maxY): Ditto.
        (ExclusionPolygonEdge): Now extends VertexPair.
        (WebCore::ExclusionPolygonEdge::previousEdge): Refer to m_ private class fields, instead of public struct fields.
        (WebCore::ExclusionPolygonEdge::nextEdge): Ditto.
        (WebCore::ExclusionPolygonEdge::polygon): Ditto.
        (WebCore::ExclusionPolygonEdge::vertexIndex1): Ditto.
        (WebCore::ExclusionPolygonEdge::vertexIndex2): Ditto.
        (WebCore::ExclusionPolygonEdge::edgeIndex): Ditto.

2013-01-04  Steve Block  <steveblock@chromium.org>

        Add 'float FloatPoint::slopeAngleRadians()'
        https://bugs.webkit.org/show_bug.cgi?id=105997

        Reviewed by Stephen White.

        Refactoring only, no functional change.

        * platform/graphics/FloatPoint.cpp:
        (WebCore::FloatPoint::slopeAngleRadians):
        (WebCore):
        * platform/graphics/FloatPoint.h:
        Add 'float FloatPoint::slopeAngleRadians() const'
        * platform/graphics/PathTraversalState.cpp:
        (WebCore::PathTraversalState::processSegment):
        * rendering/svg/SVGMarkerData.h:
        (WebCore::SVGMarkerData::currentAngle):
        * svg/SVGPathParser.cpp:
        (WebCore::SVGPathParser::decomposeArcToCubic):

2013-01-04  Zan Dobersek  <zandobersek@gmail.com>

        REGRESSION (r138184): transitions/transitions-parsing.html is failing on GTK
        https://bugs.webkit.org/show_bug.cgi?id=105522

        Reviewed by Xan Lopez.

        Remove the feature define overriding for the unprefixed CSS transition property names
        define as it is not required.

        No new tests - no new functionality.

        * GNUmakefile.am:

2013-01-04  Zan Dobersek  <zandobersek@gmail.com>

        [GObject bindings] Wrap event target interface code in feature define guards if necessary
        https://bugs.webkit.org/show_bug.cgi?id=105743

        Reviewed by Xan Lopez.

        Wrap the event target interface implementation code in feature define guards if the interface
        is guarded by a conditional. A warning is reported if these methods get called with the specific
        feature being disabled.

        This was spotted when building with the video track feature disabled was causing build failures.

        No new tests - no new functionality. The bindings tests don't test event targets under conditionals.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateEventTargetIface):

2012-12-18  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] Port WebAudio backend to 1.0 APIs
        https://bugs.webkit.org/show_bug.cgi?id=105293

        Reviewed by Martin Robinson.

        Port the AudioFileReader and AudioDestination to GStreamer 1.0
        APIs. It would be preferable to rely on at least GStreamer 1.0.4
        for this to work properly as that release contains two bug fixes
        for the deinterleave and interleave elements.

        * platform/audio/FFTFrame.cpp:
        (WebCore::FFTFrame::reportMemoryUsage): Don't report GstFFTF32
        structures anymore because they're opaque in GStreamer 1.0.
        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore):
        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
        The wavparse element in 1.0 has no sometimes-pads anymore.
        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (AudioFileReader): The decodebin2 element has been renamed to
        decodebin in GStreamer 1.0.
        (WebCore::getGStreamerAudioCaps): Audio caps description changed a
        lot in GStreamer 1.0, the function now handles both APIs.
        (WebCore::copyGstreamerBuffersToAudioChannel): Adapted to
        GstBufferList and GstBuffer API changes.
        (WebCore::onAppsinkPullRequiredCallback): Pull a sample or buffer,
        depending on which API we use.
        (WebCore::AudioFileReader::~AudioFileReader): Protect
        GstBufferListIterators in 0.10-only code path.
        (WebCore):
        (WebCore::AudioFileReader::handleSample): Pull an audio sample
        from appsink and insert it in the appropriate buffer list.
        (WebCore::AudioFileReader::handleNewDeinterleavePad): Handle
        appsink API changes from GStreamer 0.10 to 1.0.
        (WebCore::AudioFileReader::decodeAudioForBusCreation): Create the
        correct decodebin element.
        (WebCore::AudioFileReader::createBus): Protect GstBufferListIterators
        in 0.10-only code path.
        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (_WebKitWebAudioSourcePrivate): GstTask in GStreamer 1.0 uses a
        GRecMutex instead of a (deprecated) GStaticRecMutex.
        (getGStreamerMonoAudioCaps): Handle caps description changes
        between GStreamer 0.10 and 1.0.
        (webKitWebAudioGStreamerChannelPosition): POSITION_LFE in
        GStreamer 1.0 is now POSITION_LFE1. Also map ChannelCenter to its
        GStreamer equivalent.
        (webkit_web_audio_src_class_init): Use generic setGstElementClassMetadata.
        (webkit_web_audio_src_init): Handle GRecMutex initialisation.
        (webKitWebAudioSrcConstructed): Set channel position on
        capsfilter. This is done for GStreamer 1.0 code path only because
        in 0.10 the caps have no way to store this information.
        (webKitWebAudioSrcFinalize): Clear GRecMutex.
        (webKitWebAudioSrcLoop): Handle GstBuffer API changes and add an
        error check if buffers can't be chained to queue's source pad.
        (webKitWebAudioSrcChangeState): As advised in the GStreamer docs,
        fixup the state changes for this live source element: NO_PREROLL
        in READY->PAUSED and start/stop the GstTask when going/coming
        to/from PLAYING.

2013-01-04  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions]Content overflowing last region displayed wrong
        https://bugs.webkit.org/show_bug.cgi?id=105893

        Reviewed by David Hyatt.

        For the last region in the region chain and flipped writing modes (horizontal-bt, vertical-rl),
        the clipping rect should take overflow into account in the writing mode direction, which is
        different in these cases than the direction for non-flipped writing modes.

        Tests: fast/regions/overflow-last-region-horiz-bt.html
               fast/regions/overflow-last-region-vert-lr.html
               fast/regions/overflow-last-region-vert-rl.html
               fast/regions/overflow-last-region.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::computeRegionClippingRect): Helper function used to compute region clipping rect
        for paint and hitTest.
        (WebCore):
        (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
        (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
        * rendering/RenderFlowThread.h:

2013-01-04  Dima Gorbik  <dgorbik@apple.com>

        Implement :future pseudo class for the WebVTT ::cue pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=105473

        Reviewed by Antti Koivisto.

        This patch changes the approach of showing past/future node objects. 
        Before upper-level containers were used to put past and future nodes inside. Styles were applied
        to containers. Now styles could be applied directly to nodes by using ::cue(:future).
        That allows to style future/past WebVTT nodes even if they are nested.

        Existing test was modified to cover new cases.

        * css/CSSSelector.cpp: added :future pseudo class support.
        (WebCore::CSSSelector::pseudoId):
        (WebCore::nameToPseudoTypeMap):
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        * css/SelectorChecker.cpp: ditto.
        (WebCore::SelectorChecker::checkOneSelector):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement): define style sharing rules for WebVTT objects.
        * css/mediaControls.css:
        (video::-webkit-media-text-track-all-nodes):
        (video::cue(:future)): added standard user-agent styles for the future nodes.
        * dom/Element.cpp: setter functions don't have an argument now because WebVTT type enum was introduced and the right type is set
        when the setter is being called.
        (WebCore::Element::setIsWebVTTNode):
        (WebCore):
        (WebCore::Element::isWebVTTFutureNode):
        (WebCore::Element::setIsWebVTTFutureNode):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (ElementRareData):
        * dom/NodeRareData.cpp:
        (SameSizeAsNodeRareData): added a dummy enum value. Enum is integer type and is aligned in Windows when placed in the bitfield,
        so it takes more space.
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::isWebVTTNode):
        (WebCore::NodeRareData::setIsWebVTTNode):
        (WebCore::NodeRareData::isWebVTTFutureNode):
        (WebCore::NodeRareData::setIsWebVTTFutureNode):
        (NodeRareData):
        * html/shadow/MediaControlElements.cpp:
        (WebCore):
        * html/track/TextTrack.h: add a WebVTT node object type enum.
        (TextTrack):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::allNodesShadowPseudoId):
        (WebCore::TextTrackCue::TextTrackCue):
        (WebCore::TextTrackCue::getCueAsHTML):
        (WebCore):
        (WebCore::TextTrackCue::setNodeObjectFlags): determine if the node is future or past and mark as WebVTT node.
        This combines the functionality related to marking nodes implemented before in updateDisplayTree and
        markNodesAsWebVTTNodes.
        (WebCore::TextTrackCue::updateDisplayTree):
        (WebCore::TextTrackCue::getDisplayTree):
        * html/track/TextTrackCue.h:
        (TextTrackCue):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken): no need to mark nodes as WebVTT nodes when parsing. This is done at the
        rendering stage later.
        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): the container name has changed.

2013-01-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION (r138222?): Assertion failure on appcache/main-resource-redirect.html
        https://bugs.webkit.org/show_bug.cgi?id=105591

        Reviewed by Brady Eidson.

        Fixes crash in test http/tests/appcache/main-resource-redirect.html.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::willSendRequest): In case of loading
        substitute data from application cache host due to a redirect,
        make sure the substitute data identifier is initialized.

2013-01-03  Tony Chang  <tony@chromium.org>

        incorrect flexbox relayout with overflow, padding and absolute positioning
        https://bugs.webkit.org/show_bug.cgi?id=106022

        Reviewed by Ojan Vafai.

        The problem was we were entering simplified layout, which doesn't apply the stretch
        behavior for flex children. That should be fine if we had kept the override size from
        the previous layout. So clear the override size during layout rather than after layout.

        Not clearing the override size re-triggers bug 98611. Fix this by always forcing a
        layout of an image if it has an override size set. The presence of an override size means
        we did some special layout that may not be covered by re-computing the logical width and
        height.

        Test: css3/flexbox/stretch-simplified-layout.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock): Don't clear the override size after layout.
        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Clear the override size right before layout.
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox): Remove clearChildOverrideSizes() since it's not called anymore.
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::imageDimensionsChanged): If an override size is present, force a relayout.
        Also cleaned up the code a bit to avoid computing the width and height unless we need to.

2013-01-03  Adam Klein  <adamk@chromium.org>

        Unreviewed rebaseline of binding tests after r138754

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallbackHeader): Remove unnecessary whitespace
        * bindings/scripts/test/JS/JSTestCallback.h:
        (WebCore::JSTestCallback::scriptExecutionContext):
        (JSTestCallback):
        * bindings/scripts/test/V8/V8TestCallback.h:
        (WebCore::V8TestCallback::scriptExecutionContext):
        (V8TestCallback):

2013-01-03  Antoine Quint  <graouts@apple.com>

        onload callback for <track> element attached to <video> does not fire
        https://bugs.webkit.org/show_bug.cgi?id=103258

        Reviewed by Eric Carlson.

        We now correctly implement the track processing model per the latest spec at
        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#start-the-track-processing-model.
        
        For a <track> to load, three conditions must be met:
        
        1. it must have a non-empty src
        2. it must have a mode other than "disabled" (the default)
        3. it must have a parent media element
        
        We used to only check if we were able to load upon setting the track's src,
        whereas a change of any of those conditions should have done this, which this
        patch now correctly implements.
        
        We also correctly implement the load model asynchronously after step 4, per
        the spec, hence the split of the code previously entirely contained in
        HTMLTrackElement::scheduleLoad() in another method fired on a timer.

        Test: media/track/track-element-load-event.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTrackModeChanged):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement):
        (WebCore::HTMLTrackElement::insertedInto):
        (WebCore::HTMLTrackElement::parseAttribute):
        (WebCore::HTMLTrackElement::scheduleLoad):
        (WebCore):
        (WebCore::HTMLTrackElement::loadTimerFired):
        (WebCore::HTMLTrackElement::textTrackModeChanged):
        * html/HTMLTrackElement.h:
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::removeAllCues):
        (WebCore):
        * html/track/TextTrack.h:
        (TextTrack):

2013-01-03  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=105475
        Nested fixed position elements incorrectly repositioned on scrolling

        Reviewed by Simon Fraser.

        The fix here is to ensure that the ScrollingTree reflects the same hierarchy as 
        the GraphicsLayer tree. And from there, we can correctly calculate the offset for 
        nested objects by keeping track of a cumulative delta that parents have been moved 
        by.

        We already had to fix this same bug in ScrollingStateNode::removeChild(). The 
        index can be notFound when you are removing a grandchild.
        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::removeChild):

        parentScrollPositionDidChange() now takes a second parameter that represents the 
        delta that parent graphicsLayers have been moved by.
        * page/scrolling/ScrollingTreeNode.h:
        (ScrollingTreeNode):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        (ScrollingTreeFixedNode):

        attachToStateTree() now handles re-parenting.
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::attachToStateTree):

        Properly adjust by and compute the new parameter cumulativeDelta. Adjusting by 
        this will prevent fixed children of fixed objects from moving when they are not 
        supposed to.
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):

        Give parentScrollPositionDidChange() an initial delta of (0,0).
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

        Properly adjust by and compute the new parameter cumulativeDelta. This math is 
        actually not quite right for sticky yet as the FIXME indicates. 
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        (ScrollingTreeStickyNode):
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):

        Re-named attachToScrollingCoordinator() to attachToScrollingCoordinatorWithParent 
        to make it clear that the node may already be attached, but it may need to be re-
        parented.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::attachToScrollingCoordinatorWithParent):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateBacking):

        Always call attachToScrollingCoordinatorWithParent() in case the fixed node has 
        been re-parented.
        (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):

2013-01-03  Simon Fraser  <simon.fraser@apple.com>

        Body background with background-attachment:fixed stays in place during rubber-banding
        https://bugs.webkit.org/show_bug.cgi?id=67894

        Reviewed by Beth Dakin.

        Use FrameView::scrollOffsetForFixedPosition() to compute the location of the rect
        used to position fixed backgrounds, since it takes rubber-banding into account.
        
        No test because rubber-banding isn't testtable in layout tests.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

2013-01-03  Adam Klein  <adamk@chromium.org>

        [HTMLTemplateElement] When adopting a template element, also adopt its content into the appropriate document
        https://bugs.webkit.org/show_bug.cgi?id=106039

        Reviewed by Eric Seidel.

        Implements the approach discussed in the spec bug:
        https://www.w3.org/Bugs/Public/show_bug.cgi?id=20129

        Test: fast/dom/HTMLTemplateElement/ownerDocument-adoptNode.html

        * html/HTMLTemplateElement.cpp:
        (WebCore::HTMLTemplateElement::didMoveToNewDocument):
        * html/HTMLTemplateElement.h:
        (HTMLTemplateElement):

2013-01-03  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Regions] Don't apply region flow to fullscreen video playing
        https://bugs.webkit.org/show_bug.cgi?id=102388

        Reviewed by David Hyatt.

        In case of full screen video playing we want to watch the video full screen without applying the region flow.

        Test: fast/regions/full-screen-video-from-region.html

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded): Don't move full screen video playing to FlowThread.

2013-01-03  Rafael Weinstein  <rafaelw@chromium.org>

        [Mutation Observers] prevent delivery while recipient context is suspended
        https://bugs.webkit.org/show_bug.cgi?id=105810

        Reviewed by Adam Barth.

        Test: inspector/debugger/mutation-observer-suspend-while-paused.html

        * dom/MutationObserver.cpp:
        (WebCore::suspendedMutationObservers):
        (WebCore):
        (WebCore::MutationObserver::canDeliver):
        (WebCore::MutationObserver::deliver):
        (WebCore::MutationObserver::deliverAllMutations):
        * dom/MutationObserver.h:

2013-01-03  Dan Bernstein  <mitz@apple.com>

        No way to obtain a DOMNode given a JS wrapper for a Node
        https://bugs.webkit.org/show_bug.cgi?id=106033

        Reviewed by Sam Weinig.

        Test: TestWebKitAPI/Tests/mac/DOMNodeFromJSObject.mm.

        * bindings/objc/DOM.mm:
        (+[DOMNode _nodeFromJSWrapper:]): Added. If the given JSObjectRef is a wrapper for a Node,
        returns the Objective-C wrapper for that node. Note that Objective-C wrappers are always
        for the main world, regardless of which world the given JS wrapper comes from.
        * bindings/objc/DOMPrivate.h: Added declaration of the above.

2013-01-03  Uday Kiran  <udaykiran@motorola.com>

        webkit fails IETC column-width-negative-001.htm
        https://bugs.webkit.org/show_bug.cgi?id=84778

        Reviewed by Tony Chang.

        CSS3 multicolumn 'column-width' property value must be greater than zero.
        http://dev.w3.org/csswg/css3-multicol/#column-width

        Test: fast/multicol/column-width-zero.html
        Negative value test covered by ietestcenter/css3/multicolumn/column-width-negative-001.htm

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Check for value greater than zero while parsing.

2013-01-03  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Add a missing state to RTCPeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=106017

        Reviewed by Adam Barth.

        Adding the missing ReadyStateHaveRemoteOffer which will show up in the spec soon.

        Not testable, just another state.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::readyState):
        * platform/mediastream/RTCPeerConnectionHandlerClient.h:

2013-01-03  Emil A Eklund  <eae@chromium.org>

        Fix overflow in LayoutUnit::ceil and floor for SATURATED_LAYOUT_ARITHMETIC
        https://bugs.webkit.org/show_bug.cgi?id=105961

        Reviewed by Levi Weintraub.
        
        The LayoutUnit::ceil and floor methods overflows if given the
        intMaxForLayoutUnit and intMinForLayoutUnit values respectively.
        Check for the max/min value to avoid this.

        Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp

        * platform/LayoutUnit.h:
        (WebCore::LayoutUnit::ceil):
        (WebCore::LayoutUnit::floor):
        Check for the max/min value and return early to avoid overflow.
        Use the UNLIKELY macro to avoid the cost of branch misprediction
        for the common case.

2013-01-03  Elliott Sprehn  <esprehn@gmail.com>

        [Refactoring] Replace Node's Document pointer with a TreeScope pointer
        https://bugs.webkit.org/show_bug.cgi?id=59816

        Reviewed by Ryosuke Niwa.

        Instead of giving every node in a shadow a rare data, which can be quite
        large, we replace the Document pointer in Node with a TreeScope pointer
        and we give TreeScope a pointer to it's document scope.

        This introduces no branches in document() because in the common
        case document() becomes equivalent to m_treeScope->m_documentScope where
        the documentScope is actually m_treeScope so this shouldn't introduce a
        perf regression.

        Note also that TreeScope can never be null after r136328, and the document
        pointer is only null for DocumentType nodes so we can use a special
        no-document TreeScope for this case that always returns null from
        documentScope().

        My original patch in r137524 for this did not correctly handle the case 
        where the Document is being destroyed and we would then call guardDeref on
        ourself in the middle of the Document destructor causing asserts. To fix
        this we need to go back to the original model where Document passes
        null to it's super constructor for the Document pointer and assigns
        it's tree scope later, and we also need to clear the tree scope pointer
        in Document's destructor.

        No new tests, no change in behavior.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        (WebCore::Document::suggestedMIMEType):
        * dom/Document.h:
        (WebCore::Node::isDocumentNode):
        (WebCore::Node::Node):
        * dom/Element.cpp:
        (WebCore::Element::createRareData):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::~Node):
        (WebCore::Node::createRareData):
        (WebCore::Node::attach):
        (WebCore::Node::reportMemoryUsage):
        * dom/Node.h:
        (WebCore::NodeRareDataBase::NodeRareDataBase):
        (NodeRareDataBase):
        (WebCore::Node::treeScope):
        (WebCore::Node::inDocument):
        (WebCore::Node::documentInternal):
        (WebCore::Node::setTreeScope):
        (Node):
        * dom/NodeRareData.cpp:
        (SameSizeAsNodeRareData):
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        * dom/TreeScope.cpp:
        (SameSizeAsTreeScope):
        (WebCore::TreeScope::TreeScope):
        (WebCore::TreeScope::clearDocumentScope):
            Needed to clear the document scope during Document destruction
            so the Node destructor does not guardDeref the document that is
            already being destroyed.
        (WebCore::TreeScope::setParentTreeScope):
        * dom/TreeScope.h:
        (TreeScope):
        (WebCore::TreeScope::documentScope):
        (WebCore::TreeScope::noDocumentInstance):
            Special shared tree scope that has a document scope that is always
            null. This is needed for DocType nodes, and also for Documents
            during construction.
        (WebCore::TreeScope::setDocumentScope):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):

2013-01-03  Adam Klein  <adamk@chromium.org>

        Unreviewed build fix.

        * dom/ContainerNode.cpp:
        (WebCore::isInTemplateContent): s/UNUSED/UNUSED_PARAM/

2013-01-03  Adam Klein  <adamk@chromium.org>

        [HTMLTemplateElement] Disallow cycles within template content
        https://bugs.webkit.org/show_bug.cgi?id=105066

        Reviewed by Ojan Vafai.

        Cycles in <template> content aren't quite as bad as cycles in normal
        DOM trees, but they can easily cause crashes, e.g. in cloneNode and
        innerHTML.

        Shadow DOM has an analagous issue, and this patch tackles that problem
        at the same time by creating a new method, Node::containsIncludingHostElements.

        In order to disallow cycles, the HTMLTemplateElement.content
        DocumentFragment needs a pointer to its host. The approach here
        creates a new subclass with a host pointer and a new virtual method
        to DocumentFragment to identify the subclass.

        To avoid unnecessary virtual function calls, also changed how
        Document::templateContentsOwnerDocument works to allow fast inlined
        access and avoid lazy creation when not needed.

        Tests: fast/dom/HTMLTemplateElement/cycles-in-shadow.html
               fast/dom/HTMLTemplateElement/cycles.html
               fast/dom/shadow/shadow-hierarchy-exception.html

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ContainerNode.cpp:
        (WebCore::isInTemplateContent):
        (WebCore::containsConsideringHostElements):
        (WebCore::checkAcceptChild):
        * dom/Document.cpp:
        (WebCore::Document::ensureTemplateContentsOwnerDocument): Renamed to make clear that it lazily creates the Document. Updated all existing callers to call this method.
        * dom/Document.h:
        (Document):
        (WebCore::Document::templateContentsOwnerDocument): Fast, inlined accessor for use in checkAcceptChild().
        * dom/DocumentFragment.h:
        (WebCore::DocumentFragment::isTemplateContent):
        * dom/Node.cpp:
        (WebCore::Node::containsIncludingShadowDOM): made const, simplified
        (WebCore::Node::containsIncludingHostElements): Specialized version of Node::contains that knows how to jump over template content boundaries.
        * dom/Node.h:
        (Node):
        * dom/TemplateContentDocumentFragment.h: Added.
        (TemplateContentDocumentFragment): Subclass of DocumentFragment which stores its host template element.
        (WebCore::TemplateContentDocumentFragment::create):
        (WebCore::TemplateContentDocumentFragment::host):
        (WebCore::TemplateContentDocumentFragment::TemplateContentDocumentFragment):
        * editing/markup.cpp:
        (WebCore::createFragmentForInnerOuterHTML):
        * html/HTMLTemplateElement.cpp:
        (WebCore::HTMLTemplateElement::content): Construct the new subclass.

2013-01-02  Jon Lee  <jonlee@apple.com>

        Revert auto-start plugins to snapshotted plugins after a period of inactivity
        https://bugs.webkit.org/show_bug.cgi?id=105973
        <rdar://problem/12947865>

        Reviewed by Brady Eidson.

        * html/HTMLPlugInElement.h:
        (WebCore::HTMLPlugInElement::plugInOriginHash): Expose publicly for WebKit2.
        Reorganize the protected members of the class.
        * html/HTMLPlugInImageElement.h: Move the member to HTMLPlugInElement.

2013-01-03  Alexis Menard  <alexis@webkit.org>

        Querying transition-timing-function value on the computed style does not return keywords when it should.
        https://bugs.webkit.org/show_bug.cgi?id=105442

        Reviewed by Simon Fraser.

        http://www.w3.org/TR/css3-transitions/#transition-timing-function-property
        contains a set of predefined timing functions which under the hood are
        implemented using cubic-bezier but it's an implementation detail that
        should not be exposed. It seems to be more clear to return a CSS
        keyword rather than the cubic-bezier form when querying the value of
        the property on the computed style. In fact the spec even say that for
        example the initial value is "ease" and not cubic-bezier(0.25, 0.1,
        0.25, 1.0). We could also imagine that in the future these predefined
        values could contain other values not represented by a cubic-bezier
        form. This behavior also align with the "linear" keyword which return
        "linear" rather than cubic-bezier(0.0, 0.0, 1.0, 1.0).

        Test: transitions/transitions-parsing.html has been updated to cover
        the new behavior as well as making sure that an explicitly set value of
        cubic-bezier(0.25, 0.1, 0.25, 1.0) does not return "ease" but the
        cubic-bezier() form.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::createAnimationValue):
        (WebCore):
        (WebCore::getTimingFunctionValue):
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapAnimationTimingFunction):
        * platform/animation/TimingFunction.h:
        (WebCore::CubicBezierTimingFunction::create):
        (CubicBezierTimingFunction):
        (WebCore::CubicBezierTimingFunction::operator==):
        (WebCore::CubicBezierTimingFunction::timingFunctionPreset): Store the
        preset value of the timing function if it is one when creating it 
        so we can use it later from the computed style.
        (WebCore::CubicBezierTimingFunction::CubicBezierTimingFunction):

2013-01-03  Tony Chang  <tony@chromium.org>

        Generate internal.settings from Settings.in
        https://bugs.webkit.org/show_bug.cgi?id=104740

        Reviewed by Adam Barth.

        If the setting is declared in Settings.in and is a basic type, generate a
        setter function at internals.settings.

        InternalSettingsGenerated.idl is created by make_settings.pl. InternalSettings.idl
        inherits from InternalSettingsGenerated.idl so we can override generated functions if
        needed or add additional custom setters.

        This patch removes 2 password echo methods from InternalSettings.idl since they are
        auto generated. There are other methods we could remove, but I'll do that in a followup.

        No new tests, existing tests should pass. Specifically, editing/input/password* tests should pass.

        * CMakeLists.txt: Add generated cpp file to the testing lib.
        * DerivedSources.make: Add generated idl file and specify all the outputs of make_settings.pl
        * DerivedSources.pri: Generate idl file before generating bindings and include generated idl
        for bindings generation.
        * GNUmakefile.am: Specify all the generated files of make_settings.pl. Add generated idl to
        list of files to be processed and resulting output to be compiled.
        * UseJSC.cmake: Add generated idl file to list of idl files to process.
        * UseV8.cmake: Same as UseJSC.cmake.
        * WebCore.gyp/WebCore.gyp: Run make_settings.pl earlier so we can run the output through the
        bindings generator.
        * WebCore.gypi: Add new files.
        * WebCore.vcproj/WebCoreTestSupport.vcproj: Add new files.
        * WebCore.xcodeproj/project.pbxproj: Add new files.
        * bindings/scripts/CodeGenerator.pm:
        (IDLFileForInterface): Add current directory to the include path so DerivedSources.make can
        find the generated idl file.
        * page/make_settings.pl:
        (generateCode): Generate InternalSettingsGenerated.{idl,h,cpp}.
        (generateSettingsMacrosHeader): Rename since we're generating 2 headers now.
        (setterFunctionName): Helper function for naming a setter.
        (printGetterAndSetter): Use setterFunctionName.
        (enumerateParsedItems): Helper function that visits each parsed item.
        (generateInternalSettingsIdlFile): Generate idl file.
        (generateInternalSettingsHeaderFile): Generate header file.
        (generateInternalSettingsCppFile): Generate C++ file.
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup): Remove password echo members.
        (WebCore::InternalSettings::Backup::restoreTo): Remove password echo members.
        (InternalSettingsWrapper): We can't use RefCountedSupplemental because we're we're already
        RefCounted. Create a wrapper class to wrap the RefCounted InternalSettings for Supplement<>::provideTo,
        which uses an OwnPtr.
        (WebCore::InternalSettingsWrapper::InternalSettingsWrapper): Wraps an InternalSettings that the Page can own.
        (WebCore::InternalSettingsWrapper::~InternalSettingsWrapper): Clear's m_page when the Page goes away.
        (WebCore::InternalSettingsWrapper::internalSettings): Unwrap InternalSettings.
        (WebCore::InternalSettings::from): Update to use InternalSettingsWrapper.
        (WebCore::InternalSettings::InternalSettings): Call base class constructor.
        (WebCore::InternalSettings::resetToConsistentState): Renamed from reset() and pass through to base class.
        Also remove unnecessary pageScaleFactor reset (done in Internals::resetToConsistentState).
        * testing/InternalSettings.h:
        (Backup): Remove password echo members.
        (WebCore::InternalSettings::create): Create an instance instead of using new.
        (WebCore::InternalSettings::hostDestroyed): Clear the page. This is similar to the code that
        RefCountedSupplemental has.
        * testing/InternalSettings.idl: Extends InternalSettingsGenerated.
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
        Remove an unused header.

2013-01-03  Rik Cabanier  <cabanier@adobe.com>

        Canvas blending tests fail on Mac WK2
        https://bugs.webkit.org/show_bug.cgi?id=105943

        Reviewed by Simon Fraser.

        Tests that now pass: 
            LayoutTests/fast/canvas/canvas-blend-solid.html 
            LayoutTests/fast/canvas/canvas-blend-image.html

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        * testing/InternalSettings.h:
        (Backup):

2013-01-03   Arko Saha  <arko@motorola.com>

        Microdata: Fix build failure after r137003
        https://bugs.webkit.org/show_bug.cgi?id=106023

        Reviewed by Ryosuke Niwa.

        Set HTMLCollection::namedPropertyGetter as named property getter for
        HTMLPropertiesCollection in GenerateImplementationNamedPropertyGetter.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementationNamedPropertyGetter):
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::V8HTMLCollection::namedPropertyGetter):

2013-01-03  Adam Klein  <adamk@chromium.org>

        Clear failed image loads when an <img> is adopted into a different document
        https://bugs.webkit.org/show_bug.cgi?id=104409

        Reviewed by Nate Chapin.

        This avoids an assertion failure setImageWithoutConsideringPendingLoadEvent().

        Test: loader/image-loader-adoptNode-assert.html

        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement): Use new helper.
        (WebCore::ImageLoader::updateFromElementIgnoringPreviousError): ditto
        (WebCore::ImageLoader::elementDidMoveToNewDocument): ditto
        (WebCore::ImageLoader::clearFailedLoadURL): Added a helper method to self-document the code.
        (WebCore):
        * loader/ImageLoader.h:
        (ImageLoader):

2013-01-03  Vincent Scheib  <scheib@chromium.org>

        Sandbox-blocked pointer lock should log to the console.
        https://bugs.webkit.org/show_bug.cgi?id=105794

        Reviewed by Adrienne Walker.

        When pointer lock is requested and is denied due to sandbox restrictions
        a helpful message to web developers is sent to the developer console.

        Existing test expectations updated.

        * page/PointerLockController.cpp:
        (WebCore::PointerLockController::requestPointerLock):

2013-01-03  Tom Sepez  <tsepez@chromium.org>

        PingLoader.h missing virtual and OVERRIDE keywords on its inherited methods.
        https://bugs.webkit.org/show_bug.cgi?id=105975

        Reviewed by Nate Chapin.

        Change adds compile-time checks only, so no new tests.

        * loader/PingLoader.h:
        (PingLoader):
        (WebCore::PingLoader::timeout):

2013-01-02  Levi Weintraub  <leviw@chromium.org>

        Fix incorrect assumption about in-flow descendants of inlines in touch event rect tracking
        https://bugs.webkit.org/show_bug.cgi?id=105970

        Reviewed by Simon Fraser.

        Correcting the touch event target rect accumulation code to no longer incorrectly assume that
        non-block renderers held only normal-flow children. The updated code will always walk the
        complete renderer sub-tree, but only do the work of calculating the absolute rect when the
        child won't necessarily fall inside its parent (floating, positioned, or transformed).

        Tests: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html updated to catch bug.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::accumulateRendererTouchEventTargetRects): Walk all renderer sub-trees. Also keeping
        track of the last added parent container rect to avoid adding redundant rectangles.
        (WebCore::accumulateDocumentEventTargetRects): Avoiding adding empty rects.

2013-01-03  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Simplify IDBTransactionBackendImpl::scheduleTask usage
        https://bugs.webkit.org/show_bug.cgi?id=103536

        Reviewed by Tony Chang.

        Move responsibility for firing abort errors from requests that arrive on the
        back-end after an asynchronous transaction abort out of WebCore, since the
        front-end takes care of this as far as script is concerned.

        No new tests -  no behavior changes.

        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::continueFunction):
        (WebCore::IDBCursorBackendImpl::advance):
        (WebCore::IDBCursorBackendImpl::prefetchContinue):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::openCursor):
        (WebCore::IDBIndexBackendImpl::openKeyCursor):
        (WebCore::IDBIndexBackendImpl::count):
        (WebCore::IDBIndexBackendImpl::get):
        (WebCore::IDBIndexBackendImpl::getKey):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::get):
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
        (WebCore::IDBObjectStoreBackendImpl::clear):
        (WebCore::IDBObjectStoreBackendImpl::openCursor):
        (WebCore::IDBObjectStoreBackendImpl::count):

2013-01-03  Tiancheng Jiang  <tijiang@rim.com>

        Update BB10 media render theme.
        https://bugs.webkit.org/show_bug.cgi?id=105728

        Reviewed by Yong Li.

        Internally Reviewed by John Griggs.

        Update GL friendly render method for audio volume.
        Change the background color for embedded media player to semi-transparent.
        Change remaining time font color to grey to match full screen video.
        Change media slider thumb color to blue when pressed.

        * css/mediaControlsBlackBerry.css:
        (audio):
        (audio::-webkit-media-controls-embedded-panel, video::-webkit-media-controls-embedded-panel):
        (video::-webkit-media-controls-time-display-container, audio::-webkit-media-controls-time-display-container):
        (video::-webkit-media-controls-timeline-container, audio::-webkit-media-controls-timeline-container):
        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
        (video::-webkit-media-controls-time-remaining-display, audio::-webkit-media-controls-time-remaining-display):
        (audio::-webkit-media-controls-volume-slider-container):
        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):

2013-01-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138640.
        http://trac.webkit.org/changeset/138640
        https://bugs.webkit.org/show_bug.cgi?id=106019

        Causing crashes in multiply() (Requested by danakj on
        #webkit).

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore):
        (WebCore::TransformationMatrix::multiply):
        * platform/graphics/transforms/TransformationMatrix.h:
        (TransformationMatrix):

2013-01-03  Mike West  <mkwst@chromium.org>

        The 'body' of seamless IFrames should default to 'margin: 0'
        https://bugs.webkit.org/show_bug.cgi?id=90834

        Reviewed by Antti Koivisto.

        Documents displayed in seamless iframes should override the 'body'
        element's normal 8px default margins with 0px, in order to ensure that
        contents are displayed flush with the boundries of the seamless box.[1]

        This patch does so by adding a new pseudoclass to allow the user agent
        stylesheet to specify a different margin for seamless documents.

        [1]: http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Jul/0039.html

        Test: fast/frames/seamless/seamless-body-margin.html

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::pseudoId):
        (WebCore::nameToPseudoTypeMap):
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):
        * css/html.css:
        (body:-webkit-seamless-document):
        * rendering/style/RenderStyleConstants.h:
            Define a new pseudoclass: '-webkit-seamless-document', which
            matches for any element in a document that's rendered in a
            seamless IFrame.

2013-01-03  Mike West  <mkwst@chromium.org>

        seamless iframes don't inherit styles when srcdoc is used
        https://bugs.webkit.org/show_bug.cgi?id=103539

        Reviewed by Antti Koivisto.

        Seamless iframes populated via a 'srcdoc' attribute should always
        inherit styles from their parent documents. At the moment, this is
        only the case when they contain a stylesheet or some other markup
        that forces a style recalculation on the document. Simple 'srcdoc'
        attributes (e.g. "srcdoc='<p>This is a comment.</p>'") bail out of
        recalculating style early, resulting in unstyled appearance.

        This patch instructs WebCore to treat seamless documents as having an
        updated StyleResolver regardless of what actions the parser takes,
        which in turn ensures that the document's style is recalculated
        correctly.

        Test: fast/frames/seamless/seamless-srcdoc.html

        * dom/Document.cpp:
        (WebCore::Document::implicitOpen):
            If it's a seamless document, notify it that its StyleResolver isn't
            what it might have expected.

2013-01-03  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Implement SimpleFontData::platformBoundsForGlyph
        https://bugs.webkit.org/show_bug.cgi?id=104127

        Reviewed by Jocelyn Turcotte.

        Implements platformBoundsForGlyph which is necessary for working MathML and Ruby.

        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::platformBoundsForGlyph):

2013-01-02  Steve Block  <steveblock@chromium.org>

        Remove superfluous 'IntPoint toPoint(const IntSize&)'
        https://bugs.webkit.org/show_bug.cgi?id=105993

        Reviewed by Eric Seidel.

        Refactoring only, no change in behavior.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::elementAccessibilityHitTest):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleDrag):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
        * platform/graphics/IntPoint.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollToOffset):
        (WebCore::RenderLayer::offsetFromResizeCorner):
        (WebCore::RenderLayer::updateScrollInfoAfterLayout):

2013-01-02  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Remove m_size in TextureMapperLayer.
        https://bugs.webkit.org/show_bug.cgi?id=105781

        Reviewed by Noam Rosenthal.

        m_size is duplicated by State::size, so this patch removes it.

        No new tests. Refactoring only.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::computeTransformsRecursive):
        (WebCore::TextureMapperLayer::paintSelf):
        (WebCore::TextureMapperLayer::isVisible):
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore::TextureMapperLayer::layerRect):
        (TextureMapperLayer):

2013-01-02  Kenneth Russell  <kbr@google.com>

        [chromium] Creation of dedicated workers (isolates) leaks reference to HTMLDocument
        https://bugs.webkit.org/show_bug.cgi?id=105367

        Reviewed by Dmitry Titov.

        Eliminated a Chromium-specific object wrapping WorkerMessagingProxy in order to fix a
        lifetime management bug, which leaked every Document which started a dedicated worker.

        Test: fast/workers/worker-document-leak.html

        * workers/WorkerLoaderProxy.h:
        (WorkerLoaderProxy):
            Added Chromium-specific casting method to bridge two now-distinct class hierarchies.
        * workers/WorkerMessagingProxy.h:
        (WorkerMessagingProxy):
            Made destructor protected instead of private to allow subclassing.

2013-01-02  Elliott Sprehn  <esprehn@chromium.org>

        Make ClassList::reset's purpose obvious and don't keep quirks string when not needed
        https://bugs.webkit.org/show_bug.cgi?id=105963

        Reviewed by Ojan Vafai.

        ClassList::reset only exists to handle updating the special SpaceSplitString
        for quirks mode documents. This adds a new method that makes this obvious and
        instead of updating the string immediately clear the value and lazily
        update it. We also clear the value whenever we're inserted into the
        document so that when moving from a quirks mode document to a non-quirks
        mode document we don't keep the SpaceSplitString around if it's not needed.

        No new tests, I'm not sure how to write a test that we don't keep the
        SpaceSplitString when moving between quirks and non-quirks mode documents.

        * dom/Element.cpp:
        (WebCore::Element::classAttributeChanged):
        (WebCore::Element::insertedInto):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::clearClassListValueForQuirksMode):
        * html/ClassList.cpp:
        * html/ClassList.h:
        (WebCore::ClassList::clearValueForQuirksMode):

2013-01-02  Adam Barth  <abarth@webkit.org>

        [V8] V8DOMWrapper.cpp has many more includes than necessary
        https://bugs.webkit.org/show_bug.cgi?id=105968

        Reviewed by Kentaro Hara.

        Now that this file isn't in charge of doing everything under the sun,
        it can have a more focused set of include directives.

        * bindings/v8/V8DOMWrapper.cpp:

2013-01-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][CMAKE] Remove duplicated conditionals
        https://bugs.webkit.org/show_bug.cgi?id=105905

        Reviewed by Laszlo Gombos.

        Remove conditionals from CMake build system, where the files being built are already wrapped with
        the conditionals. It just messes cmake file up.

        * PlatformEfl.cmake:

2013-01-02  Alexey Proskuryakov  <ap@apple.com>

        Release build fix.

        * platform/network/cf/FormDataStreamCFNet.cpp: (WebCore::formFinalize):
        Use ASSERT_UNUSED for an otherwise unused variable.

2013-01-02  Tony Chang  <tony@chromium.org>

        Unreviewed, rolling out r138661.
        http://trac.webkit.org/changeset/138661
        https://bugs.webkit.org/show_bug.cgi?id=104740

        Compile problems on EFL

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * UseJSC.cmake:
        * UseV8.cmake:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.vcproj/WebCoreTestSupport.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/CodeGenerator.pm:
        (IDLFileForInterface):
        * page/make_settings.pl:
        (generateCode):
        (generateHeader):
        (printGetterAndSetter):
        (printInitializer):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::from):
        (WebCore::InternalSettings::InternalSettings):
        (WebCore::InternalSettings::reset):
        (WebCore::InternalSettings::setPasswordEchoEnabled):
        (WebCore):
        (WebCore::InternalSettings::setPasswordEchoDurationInSeconds):
        * testing/InternalSettings.h:
        (Backup):
        (InternalSettings):
        * testing/InternalSettings.idl:
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject):
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject):

2013-01-02  Adam Barth  <abarth@webkit.org>

        [V8] There are some extra blank lines after removing INC_STATS
        https://bugs.webkit.org/show_bug.cgi?id=105964

        Reviewed by Ojan Vafai.

        This patch is a followup to http://trac.webkit.org/changeset/138665
        that removes some extra blank lines that sed wasn't smart enough to
        delete for us.

        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
        (WebCore::V8CSSStyleDeclaration::namedPropertyQuery):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::appendCallback):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::addEventListenerCallback):
        (WebCore::V8DOMWindow::removeEventListenerCallback):
        (WebCore::V8DOMWindow::postMessageCallback):
        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
        (WebCore::V8DedicatedWorkerContext::postMessageCallback):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):
        * bindings/v8/custom/V8GeolocationCustom.cpp:
        (WebCore::V8Geolocation::getCurrentPositionCallback):
        (WebCore::V8Geolocation::watchPositionCallback):
        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::V8HTMLCollection::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
        (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
        * bindings/v8/custom/V8MessagePortCustom.cpp:
        (WebCore::V8MessagePort::postMessageCallback):
        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
        (WebCore::V8NamedNodeMap::namedPropertyGetter):
        * bindings/v8/custom/V8NotificationCustom.cpp:
        (WebCore::V8Notification::requestPermissionCallback):
        * bindings/v8/custom/V8PopStateEventCustom.cpp:
        (WebCore::V8PopStateEvent::stateAccessorGetter):
        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
        (WebCore::V8SQLResultSetRowList::itemCallback):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * bindings/v8/custom/V8StorageCustom.cpp:
        (WebCore::V8Storage::namedPropertyQuery):
        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
        (WebCore::V8StyleSheetList::namedPropertyGetter):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
        (WebCore::V8WebGLRenderingContext::getParameterCallback):
        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
        (WebCore::V8WebGLRenderingContext::getUniformCallback):
        * bindings/v8/custom/V8WorkerCustom.cpp:
        (WebCore::V8Worker::postMessageCallback):

2013-01-02  Alexey Proskuryakov  <ap@apple.com>

        [WK2 NetworkProcess] Uploading fails if a client modified the request
        https://bugs.webkit.org/show_bug.cgi?id=105965

        Reviewed by Brady Eidson.

        Associating streams with additional information via a side HashMap does not work,
        because the stream we can see is an internal one, with address and other information
        not matching a stream that we created.

        It's surprising that this design issue was not causing major trouble without NetworkProcess.

        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore): Renamed FormContext to FormCreationContext, because this type only used
        for creation. Later, we use FormStreamFields as context.
        (WebCore::closeCurrentStream): Moved a star.
        (WebCore::formCreate): We no longer have a side map to keep updated.
        (WebCore::formFinalize): Ditto.
        (WebCore::formCopyProperty): Added an accessor to get FormData pointer from a stream.
        (WebCore::setHTTPBody): Ditto.
        (WebCore::httpBodyFromStream): Use the new property to get FormData pointer.

2013-01-02  Elliott Sprehn  <esprehn@chromium.org>

        Clean up dispatchEvent overrides and overloads
        https://bugs.webkit.org/show_bug.cgi?id=105959

        Reviewed by Adam Barth.

        Add OVERRIDE to all dispatchEvent overrides and use "using" instead of
        reimplementing EventTarget::dispatchEvent in subclasses where having the
        virtual override of dispatchEvent hides the overloads in
        the superclass.

        No new tests, just refactoring.

        * Modules/indexeddb/IDBDatabase.h:
        (IDBDatabase):
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):
        * dom/EventDispatchMediator.h:
        (FocusEventDispatchMediator):
        (BlurEventDispatchMediator):
        * dom/GestureEvent.h:
        (GestureEventDispatchMediator):
        * dom/KeyboardEvent.h:
        (KeyboardEventDispatchMediator):
        * dom/MouseEvent.h:
        * dom/Node.h:
        (Node):
        * dom/UIEvent.h:
        (FocusInEventDispatchMediator):
        (FocusOutEventDispatchMediator):
        * dom/WheelEvent.h:
        (WheelEventDispatchMediator):
        * html/HTMLMediaElement.h:
        * html/track/TextTrackCue.cpp:
        * html/track/TextTrackCue.h:
        (TextTrackCue):
        * page/DOMWindow.h:
        (DOMWindow):
        * svg/SVGElementInstance.h:
        (SVGElementInstance):

2013-01-02  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Surface a few more leveldb errors.
        https://bugs.webkit.org/show_bug.cgi?id=105670

        Reviewed by Tony Chang.

        Two calls to old LevelDBTransaction::get slipped through the cracks.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
        (WebCore::IndexCursorImpl::loadCurrentRow):
          Make these two functions use safeGet instead of get.

        * platform/leveldb/LevelDBTransaction.cpp:
        * platform/leveldb/LevelDBTransaction.h:
          Remove get now that it is unused.

2013-01-02  Bem Jones-Bey  <bjonesbe@adobe.com>

        When a block's height is determined by min-height/max-height, children with percentage heights are sized incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=26559

        Reviewed by Tony Chang.

        Percentage logical height computation now takes into account the min and max height of the container.

        Test: fast/block/min-max-height-percent-height-child.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax): Added. Like constrainLogicalHeightByMinMax,
            but constrains the content box instead of the border box.
        (WebCore):
        (WebCore::RenderBox::computeContentLogicalHeight): Make const so it can be called from the const method
            constrainContentBoxLogicalHeightByMinMax.
        (WebCore::RenderBox::computePercentageLogicalHeight): Use constrainContentBoxLogicalHeightByMinMax to properly
            respect min and max height on the containing box when computing the percentage height.
        * rendering/RenderBox.h:
        (RenderBox):

2013-01-02  Tony Chang  <tony@chromium.org>

        Unreviewed, force InternalSettings.cpp to rebuild to try and fix the Apple Win build.

        * testing/InternalSettings.cpp:

2013-01-02  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Use non-const buffers in put() to avoid copies
        https://bugs.webkit.org/show_bug.cgi?id=105572

        Reviewed by Adam Barth.

        Change the new put() method to allow the implementation to consume
        or adopt the vector, to avoid copying.

        No new tests as this is an interface change that will be implemented later.

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::put):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:

2013-01-02  Adam Barth  <abarth@webkit.org>

        [V8] Remove INC_STATS because it is unused
        https://bugs.webkit.org/show_bug.cgi?id=105957

        Reviewed by Ojan Vafai.

        We haven't been able to compile with INC_STATS turned on in a long
        time. This patch just removes this ancient cruft. I generated this
        patch using

        find . -type f | xargs sed -i '/INC_STATS/d'

        and then fixing up V8BindingMacros.h.

2013-01-02  Tony Chang  <tony@chromium.org>

        Generate internal.settings from Settings.in
        https://bugs.webkit.org/show_bug.cgi?id=104740

        Reviewed by Adam Barth.

        If the setting is declared in Settings.in and is a basic type, generate a
        setter function at internals.settings.

        InternalSettingsGenerated.idl is created by make_settings.pl. InternalSettings.idl
        inherits from InternalSettingsGenerated.idl so we can override generated functions if
        needed or add additional custom setters.

        This patch removes 2 password echo methods from InternalSettings.idl since they are
        auto generated. There are other methods we could remove, but I'll do that in a followup.

        No new tests, existing tests should pass. Specifically, editing/input/password* tests should pass.

        * CMakeLists.txt: Add generated cpp file to the testing lib.
        * DerivedSources.make: Add generated idl file and specify all the outputs of make_settings.pl
        * DerivedSources.pri: Generate idl file before generating bindings and include generated idl
        for bindings generation.
        * GNUmakefile.am: Specify all the generated files of make_settings.pl. Add generated idl to
        list of files to be processed and resulting output to be compiled.
        * UseJSC.cmake: Add generated idl file to list of idl files to process.
        * UseV8.cmake: Same as UseJSC.cmake.
        * WebCore.gyp/WebCore.gyp: Run make_settings.pl earlier so we can run the output through the
        bindings generator.
        * WebCore.gypi: Add new files.
        * WebCore.vcproj/WebCoreTestSupport.vcproj: Add new files.
        * WebCore.xcodeproj/project.pbxproj: Add new files.
        * bindings/scripts/CodeGenerator.pm:
        (IDLFileForInterface): Add current directory to the include path so DerivedSources.make can
        find the generated idl file.
        * page/make_settings.pl:
        (generateCode): Generate InternalSettingsGenerated.{idl,h,cpp}.
        (generateSettingsMacrosHeader): Rename since we're generating 2 headers now.
        (setterFunctionName): Helper function for naming a setter.
        (printGetterAndSetter): Use setterFunctionName.
        (enumerateParsedItems): Helper function that visits each parsed item.
        (generateInternalSettingsIdlFile): Generate idl file.
        (generateInternalSettingsHeaderFile): Generate header file.
        (generateInternalSettingsCppFile): Generate C++ file.
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup): Remove password echo members.
        (WebCore::InternalSettings::Backup::restoreTo): Remove password echo members.
        (InternalSettingsWrapper): We can't use RefCountedSupplemental because we're we're already
        RefCounted. Create a wrapper class to wrap the RefCounted InternalSettings for Supplement<>::provideTo,
        which uses an OwnPtr.
        (WebCore::InternalSettingsWrapper::InternalSettingsWrapper): Wraps an InternalSettings that the Page can own.
        (WebCore::InternalSettingsWrapper::~InternalSettingsWrapper): Clear's m_page when the Page goes away.
        (WebCore::InternalSettingsWrapper::internalSettings): Unwrap InternalSettings.
        (WebCore::InternalSettings::from): Update to use InternalSettingsWrapper.
        (WebCore::InternalSettings::InternalSettings): Call base class constructor.
        (WebCore::InternalSettings::resetToConsistentState): Renamed from reset() and pass through to base class.
        Also remove unnecessary pageScaleFactor reset (done in Internals::resetToConsistentState).
        * testing/InternalSettings.h:
        (Backup): Remove password echo members.
        (WebCore::InternalSettings::create): Create an instance instead of using new.
        (WebCore::InternalSettings::hostDestroyed): Clear the page. This is similar to the code that
        RefCountedSupplemental has.
        * testing/InternalSettings.idl: Extends InternalSettingsGenerated.
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
        Remove an unused header.

2013-01-02  Adam Barth  <abarth@webkit.org>

        HTML preload scanner doesn't need to remember whether we're scanning the body
        https://bugs.webkit.org/show_bug.cgi?id=105945

        Reviewed by Eric Seidel.

        As far as I can tell, no one uses this state.

        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::CSSPreloadScanner):
        (WebCore::CSSPreloadScanner::scan):
        (WebCore::CSSPreloadScanner::emitRule):
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::preload):
        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
        (WebCore::HTMLPreloadScanner::processToken):
        * html/parser/HTMLPreloadScanner.h:
        (HTMLPreloadScanner):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::preload):
        * loader/cache/CachedResourceLoader.h:
        (CachedResourceLoader):

2013-01-02  Abhishek Arya  <inferno@chromium.org>

        Crash in WebCore::Element::cloneElementWithoutChildren.
        https://bugs.webkit.org/show_bug.cgi?id=105949

        Reviewed by Ryosuke Niwa.
        
        RefPtr |ancestors| vector since its elements can be destroyed from mutation events
        fired in CompositeEditCommand::appendNode. 

        No new tests. The testcase relies on recursive DOM mutations and does not minimize.

        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::getAncestorsInsideBlock):
        (WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.h:
        (InsertParagraphSeparatorCommand):

2013-01-02  Douglas Stockwell  <dstockwell@chromium.org>

        Crash in WebCore::InlineBox::deleteLine
        https://bugs.webkit.org/show_bug.cgi?id=93448

        Reviewed by Eric Seidel.

        When we ran off the end of the line while looking for line breaks in an
        inline with white-space:nowrap nested in a block with white-space:pre
        it was possible for the line break to be set at or before the current
        position -- this could result in duplications in the render tree or
        infinite looping.

        This patch changes the "fixup" logic that runs after we have finished
        iterating through elements and text and have potentially found a break
        point. In the case of a block setting white-space:pre we would back up
        a character in some cases. Not doing so could leave whitespace that
        should have been collapsed at the end of an inline.

        For example in '<span style="white-space:nowrap">x_</span>_y' if a
        break was inserted before 'y' the space after 'x' would still be
        rendered (rather than be collapsed with the break).

        To avoid this problem we will not take the opportunity to break until
        we have finished collapsing whitespace.

        Tests: fast/text/whitespace/inline-whitespace-wrapping-1.html
               fast/text/whitespace/inline-whitespace-wrapping-2.html
               fast/text/whitespace/inline-whitespace-wrapping-3.html
               fast/text/whitespace/inline-whitespace-wrapping-4.html
               fast/text/whitespace/nowrap-white-space-collapse.html
               fast/text/whitespace/pre-block-normal-inline-crash-1.html
               fast/text/whitespace/pre-block-normal-inline-crash-2.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Collapse
        whitespace before breaking. Avoid setting the break before the current
        position.

2013-01-02  Adam Barth  <abarth@webkit.org>

        Remove webkitPostMessage
        https://bugs.webkit.org/show_bug.cgi?id=105910

        Reviewed by Kentaro Hara.

        The vendor-prefixed version of postMessage was never widely used.
        We've been compiling it out of the Chromium port for a while now and
        haven't received any reports of compatibility problems. I've done a
        number of web searches for uses of the API and personally contacted a
        handful of authors I found using the API, all of whom have now moved to
        the identical unprefixed API. We've publicied the prefix removal in a
        blog post:

        http://blog.chromium.org/2012/11/a-web-developers-guide-to-latest-chrome.html

        and discussed it on webkit-dev:

        http://lists.macosforge.org/pipermail/webkit-dev/2012-September/022189.html

        We've done our diligence, and now we should remove the API from the
        remainder of the ports.

        * bindings/js/JSDOMWindowCustom.cpp:
        * bindings/js/JSDedicatedWorkerContextCustom.cpp:
        * bindings/js/JSMessagePortCustom.cpp:
        * bindings/js/JSWorkerCustom.cpp:
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::postMessageCallback):
        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
        (WebCore::V8DedicatedWorkerContext::postMessageCallback):
        * bindings/v8/custom/V8MessagePortCustom.cpp:
        (WebCore::V8MessagePort::postMessageCallback):
        * bindings/v8/custom/V8WorkerCustom.cpp:
        (WebCore::V8Worker::postMessageCallback):
        * dom/MessagePort.idl:
        * page/DOMWindow.idl:
        * workers/DedicatedWorkerContext.idl:
        * workers/Worker.idl:

2013-01-02  Benjamin Poulain  <benjamin@webkit.org>

        Optimize TransformationMatrix::multiply() for x86_64
        https://bugs.webkit.org/show_bug.cgi?id=105719

        Reviewed by Sam Weinig.

        On x86_64, we have access to 16 XMM registers. This can hold 32 double values.
        We can use that in two ways to optimize matrix multiplications:
        -Keep the source matrix completely in registers. Write the result directly in
         the source matrix's memory. This avoids the memcpy at the end of the multiplication
         and various memory operations.
        -Use SIMD with SSE to perform 2 operations at a time.

        The parameter from the second matrix are loaded one by one in XMM registers.
        Loading them with SSE then shuffling the values perform worse than loading
        one by one.

        This is only enabled on 64bits as x86 only has access to 8 XMM registers and
        the function should be written differently.

        On a i5, TransformationMatrix::multiply() perform about 3 times faster with the change.

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::multiply):
        * platform/graphics/transforms/TransformationMatrix.h:
        (TransformationMatrix): Fix an incorrect comment. Unify the comment with the cpp file.

2013-01-02  Mike West  <mkwst@chromium.org>

        Clean up the loadXXXStyle() idiom in StyleResolver.
        https://bugs.webkit.org/show_bug.cgi?id=105903

        Reviewed by Darin Adler.

        This patch refactors 'loadViewSourceStyle' in order to avoid the
        necessity of each call site checking whether the relevant data has
        been loaded. The new 'viewSourceStyle' will load the data if required,
        and return a pointer which can be used directly.

        No new tests, as this refactoring should exhibit no visible change in
        behavior.

        * css/StyleResolver.cpp:
        (WebCore::viewSourceStyle):
            Lazily populate the static 'defaultViewSourceStyle' with data. I
            haven't removed the outer variable, as it's used directly in
            StyleResolver::reportMemoryUsage.
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectFeatures):
            Use the new hotness rather than the old, lame method.

2013-01-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138627.
        http://trac.webkit.org/changeset/138627
        https://bugs.webkit.org/show_bug.cgi?id=105935

        This patch doesn't fix Windows port build failure (Requested
        by rniwa on #webkit).

        * WebCore.vcproj/WebCore.vcproj:

2013-01-02  Elliott Sprehn  <esprehn@chromium.org>

        Transitions and animations do not apply to CSS ::before and ::after pseudo-elements
        https://bugs.webkit.org/show_bug.cgi?id=92591

        Reviewed by Eric Seidel.

        The new DOM based :before and :after pseudo elements support animations
        and transitions already, but I had disabled support so we could turn them
        on in a separate step. This patch just removes the checks and adds tests.

        This also adds two methods to internals to allow pausing animations and
        transitions on pseudo elements at predictable locations so the tests
        are not flaky.

        Tests: fast/css-generated-content/pseudo-animation.html
               fast/css-generated-content/pseudo-transition.html

        * WebCore.exp.in:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationController::updateAnimations):
        * testing/Internals.cpp:
        (WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
        (WebCore::Internals::pauseTransitionAtTimeOnPseudoElement):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2013-01-02  Chris Rogers  <crogers@google.com>

        Implement WebIDL-style string constants in WebAudio
        https://bugs.webkit.org/show_bug.cgi?id=105058

        Reviewed by Kentaro Hara.

        See Deprecation Notes for more detail:
        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DeprecationNotes

        PannerNode, BiquadFilterNode, OscillatorNode constants must support WebIDL-style string constants.
        Legacy support in the setters for the old integer values should be supported.

        This patch handles the changes for OscillatorNode.

        * GNUmakefile.list.am:
        * Modules/webaudio/OscillatorNode.cpp:
        (WebCore::OscillatorNode::OscillatorNode):
        (WebCore::OscillatorNode::type):
        (WebCore):
        (WebCore::OscillatorNode::setType):
        * Modules/webaudio/OscillatorNode.h:
        * Modules/webaudio/OscillatorNode.idl:
        * Target.pri:
        * UseJSC.cmake:
        * UseV8.cmake:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSOscillatorNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.
        (WebCore):
        (WebCore::JSOscillatorNode::setType):
        * bindings/v8/custom/V8OscillatorNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.
        (WebCore):
        (WebCore::V8OscillatorNode::typeAccessorSetter):

2013-01-02  Robert Hogan  <robert@webkit.org>

        Regression (r132935): WebKit breaks between <nobr> tags
        https://bugs.webkit.org/show_bug.cgi?id=11857

        Reviewed by David Hyatt.

        The fix for bug 29648 in http://trac.webkit.org/changeset/132935 was too broad - it caused us
        to find linebreaks in autowrap containers between non-wrapping elements where there was no 
        whitespace to allow the break. This reverts the code change in r132935 and ensures we attempt
        to move below floats when inside an autowrap container but leaves the treatment of non-wrapping
        elements in an autowrap container unaffected.

        Test: fast/inline/break-between-nobr.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):

2013-01-02  Ryosuke Niwa  <rniwa@webkit.org>

        Another Windows port build fix attempt. Don't try to build WTF files in WebCore.

        Rubber-stamped by Sam Weinig.

        * WebCore.vcproj/WebCore.vcproj:

2013-01-02  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] [WebGL] Minor cleanup in PlatformContext.
        https://bugs.webkit.org/show_bug.cgi?id=105872

        Reviewed by Kenneth Rohde Christiansen.

        The logic to check for supported extensions is scattered in different classes i.e PlatformContext, eglcontext etc.
        This patch cleans up any duplicate code and adds new api in GLPlatformContext to query for supported GL, EGL and GLX extensions.

        * PlatformEfl.cmake:
        * platform/graphics/opengl/GLPlatformContext.cpp:
        (WebCore):
        (WebCore::GLPlatformContext::createContext):
        (WebCore::GLPlatformContext::supportsGLExtension):
        (WebCore::GLPlatformContext::supportsEGLExtension):
        (WebCore::GLPlatformContext::supportsGLXExtension):
        (WebCore::GLPlatformContext::makeCurrent):
        (WebCore::GLPlatformContext::initializeResetStatusExtension):
        * platform/graphics/opengl/GLPlatformContext.h:
        * platform/graphics/surfaces/egl/EGLContext.cpp:
        (WebCore::isRobustnessExtSupported):
        (WebCore::EGLOffScreenContext::initialize):
        * platform/graphics/surfaces/glx/GLXContext.cpp:
        (WebCore::initializeARBExtensions):
        (WebCore::GLXOffScreenContext::initialize):

2013-01-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138601.
        http://trac.webkit.org/changeset/138601
        https://bugs.webkit.org/show_bug.cgi?id=105917

        Also not an optimal solution, needs more discussion.
        (Requested by mkwst_ on #webkit).

        * dom/Document.cpp:
        (WebCore::Document::finishedParsing):

2013-01-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138611.
        http://trac.webkit.org/changeset/138611
        https://bugs.webkit.org/show_bug.cgi?id=105916

        Not an optimal solution, needs more discussion. (Requested by
        mkwst_ on #webkit).

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.vcproj/WebCore.vcproj:
        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectFeatures):
        (WebCore::StyleResolver::reportMemoryUsage):
        * css/seamless.css: Removed.

2013-01-02  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>

        [AC] Memory leak in GraphicsSurfacePrivate::findFBConfigWithAlpha()
        https://bugs.webkit.org/show_bug.cgi?id=105770

        Reviewed by Noam Rosenthal.

        Free the memory returned by glXGetVisualFromFBConfig() using
        XFree to avoid a memory leak.

        No new tests. No change in behavior.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):

2013-01-02  Mike West  <mkwst@chromium.org>

        The 'body' of seamless IFrames should default to 'margin: 0'
        https://bugs.webkit.org/show_bug.cgi?id=90834

        Reviewed by Eric Seidel.

        Documents displayed in seamless iframes should override the 'body'
        element's normal 8px default margins with 0px, in order to ensure that
        contents are displayed flush with the boundries of the seamless box.[1]

        This patch does so by adding a new user agent stylesheet for seamless
        documents, and teaching the StyleResolver how and when to apply it.

        [1]: http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Jul/0039.html

        Test: fast/frames/seamless/seamless-body-margin.html

        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.vcproj/WebCore.vcproj:
        * CMakeLists.txt:
            Added a new CSS file! Let's tell everyone!
        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::loadSeamlessStyle):
        (WebCore::StyleResolver::matchUARules):
        (WebCore::StyleResolver::collectFeatures):
        (WebCore::StyleResolver::reportMemoryUsage):
            Load the new stylesheet, and apply it to the document in
            matchUARules iff the document should be displayed seamlessly.
        * css/seamless.css: Added.
        (body):
            Stylesheet containing defaults for seamless documents.

2013-01-01  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12942239> Update copyright strings

        Reviewed by Sam Weinig.

        * Info.plist:

2013-01-01  KwangYong Choi  <ky0.choi@samsung.com>

        [EFL] Enable MHTML feature
        https://bugs.webkit.org/show_bug.cgi?id=105815

        Reviewed by Laszlo Gombos.

        Add application/x-mimearchive type to archive mime types.
        Add mht and mhtml to extension map.

        No new tests. Existing layout tests pass.

        * loader/archive/ArchiveFactory.cpp:
        (WebCore::archiveMIMETypes):
        * platform/efl/MIMETypeRegistryEfl.cpp:
        (WebCore):

2013-01-01  Mike West  <mkwst@chromium.org>

        seamless iframes don't inherit styles when srcdoc is used
        https://bugs.webkit.org/show_bug.cgi?id=103539

        Reviewed by Eric Seidel.

        Seamless iframes populated via a 'srcdoc' attribute should always
        inherit styles from their parent documents. At the moment, this is
        only the case when they contain a stylesheet or some other markup
        that forces a style recalculation on the document. Simple 'srcdoc'
        attributes (e.g. "srcdoc='<p>This is a comment.</p>'") bail out of
        recalculating style early, resulting in unstyled appearance.

        This patch instructs WebCore to treat seamless documents as having an
        updated StyleResolver regardless of what actions the parser takes,
        which in turn ensures that the document's style is recalculated
        correctly.

        Test: fast/frames/seamless/seamless-srcdoc.html

        * dom/Document.cpp:
        (WebCore::Document::finishedParsing):
            If it's a seamless document, notify it that its StyleResolver isn't
            what it might have expected.

2012-12-31  Jeff Rogers  <jrogers@rim.com>

        [BlackBerry] Fullscreen Media Time Indicators Background Incorrect
        https://bugs.webkit.org/show_bug.cgi?id=105888

        Reviewed by George Staikos.

        Internal PR 272699.
        Update fullscreen media controls CSS to fix time container background
        color. Also fix transparency to be 80% opaque to and the time
        remaining text color to match the system player.

        No new tests as there is no functionality change.

        * css/mediaControlsBlackBerryFullscreen.css:
        (video:-webkit-full-screen::-webkit-media-controls-panel):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
        (video:-webkit-full-screen::-webkit-media-controls-placeholder):

2012-12-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Add compile time support for GLES2.
        https://bugs.webkit.org/show_bug.cgi?id=105816

        Reviewed by Kenneth Rohde Christiansen.

        This patch adds build support for GLES2.
        GLES2 support can be enabled during compile time by passing -DENABLE_GLES2=ON as
        cmake config parameter. GLES2 options is not enabled by default. This patch doesn't
        address all the build issues related to GLES2 but only adds the needed support in
        PlatformEfl.cmake.

        * PlatformEfl.cmake:

2012-12-31  Andy Chen  <andchen@rim.com>

        [BlackBerry] The HTML5 video fullscreen time indicator on the right cuts clipped when the video is longer than 1 hour
        https://bugs.webkit.org/show_bug.cgi?id=105887

        Reviewed by George Staikos.

        The width of the time part was fixed. Remove it.

        No new test is required because no functionality change.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):

2012-12-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] [WebGL] Rename EGLConfigHelper as EGLConfigSelector.
        https://bugs.webkit.org/show_bug.cgi?id=105876

        Reviewed by Kenneth Rohde Christiansen.

        This is to sync the naming conventions of our classes in both EGL and GLX implementations. 
        In our GLX implementation, class responsible for the same functionality is named as GLXConfigSelector. 
        This patch renames EGLConfigHelper as EGLConfigSelector.

        * PlatformEfl.cmake:
        * platform/graphics/surfaces/egl/EGLConfigSelector.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.cpp.
        (WebCore):
        (WebCore::SharedEGLDisplay::deref):
        (WebCore::SharedEGLDisplay::sharedEGLDisplay):
        (WebCore::SharedEGLDisplay::SharedEGLDisplay):
        (WebCore::SharedEGLDisplay::cleanup):
        (WebCore::SharedEGLDisplay::~SharedEGLDisplay):
        (WebCore::EGLConfigSelector::EGLConfigSelector):
        (WebCore::EGLConfigSelector::~EGLConfigSelector):
        (WebCore::EGLConfigSelector::display):
        (WebCore::EGLConfigSelector::pBufferContextConfig):
        (WebCore::EGLConfigSelector::surfaceContextConfig):
        (WebCore::EGLConfigSelector::nativeVisualId):
        (WebCore::EGLConfigSelector::reset):
        (WebCore::EGLConfigSelector::createConfig):
        * platform/graphics/surfaces/egl/EGLConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.h.
        (WebCore):
        (SharedEGLDisplay):
        (WebCore::SharedEGLDisplay::create):
        (EGLConfigSelector):
        * platform/graphics/surfaces/egl/EGLSurface.cpp:
        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
        (WebCore::EGLWindowTransportSurface::configuration):
        (WebCore::EGLWindowTransportSurface::destroy):
        * platform/graphics/surfaces/egl/EGLSurface.h:
        (EGLWindowTransportSurface):

2012-12-30  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] webaudio/decode-audio-data-basic.html fails
        https://bugs.webkit.org/show_bug.cgi?id=105298

        Reviewed by Martin Robinson.

        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (WebCore::AudioFileReader::createBus): Return a null pointer if an
        error happened while processing a media file.

2012-12-30  Christophe Dumez  <christophe.dumez@intel.com>

        Regression(r138545): Makes WebAudio tests crash
        https://bugs.webkit.org/show_bug.cgi?id=105869

        Reviewed by Philippe Normand.

        Stop using smart pointers and adoptGRef() for the
        GstBus object and call gst_object_unref() manually.
        This fixes assertions hits when calling adoptGRef()
        since the GstBus object has a floating reference.

        Alternatively, we could keep using smart pointers
        and stop calling adoptGRef() so that
        gst_object_ref_sink() is called and the floating
        flag is cleared but I think it is clearer to do
        it manually here.

        No new tests, already covered by existing tests.

        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::messageCallback):
        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
        (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (WebCore::AudioFileReader::~AudioFileReader):
        (WebCore::AudioFileReader::decodeAudioForBusCreation):

2012-12-29  Dimitri Glazkov  <dglazkov@chromium.org>

        Rename StyleResolver's member variable that holds SelectorChecker to a proper name.
        https://bugs.webkit.org/show_bug.cgi?id=105864

        In https://bugs.webkit.org/show_bug.cgi?id=105660#c11, Antti suggested renaming m_checker to
        m_selectorChecker. I've forgotten about that, but now I remembered it.

        Reviewed by Eric Seidel.

        No change in functionality, covered by existing tests.

        * css/StyleResolver.cpp/h: Renamed all instances of m_checker to m_selectorChecker.

2012-12-29  Dimitri Glazkov  <dglazkov@chromium.org>

        Move pointer to Document up from SelectorChecker to StyleResolver.
        https://bugs.webkit.org/show_bug.cgi?id=105863

        Now that SelectorChecker is mostly stateless, it no longer needs to keep a pointer to Document, which
        makes all the code in StyleResolver that reaches for it sort of weird.

        Reviewed by Eric Seidel.

        No change in functionality, covered by existing tests.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::SelectorChecker): Changed to take document as argument (only used to set bit fields).
        (WebCore::SelectorChecker::checkOneSelector): Changed to use element document.
        (WebCore::SelectorChecker::checkScrollbarPseudoClass): Ditto.
        * css/SelectorChecker.h:
        (WebCore): Removed unnecessary Document forward declaration.
        (SelectorChecker): Changed constructor declaration, and removed m_document member.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver): Adjusted SelectorChecker initializer accordingly.
        (WebCore::StyleResolver::initElement): Changed to use own document accessor.
        (WebCore::StyleResolver::initForStyleResolve): Ditto.
        (WebCore::StyleResolver::matchUARules): Ditto.
        (WebCore::StyleResolver::styleForPage): Ditto.
        (WebCore::StyleResolver::applyProperty): Ditto.
        (WebCore::StyleResolver::checkForGenericFamilyChange): Ditto.
        (WebCore::StyleResolver::initializeFontStyle): Ditto.
        (WebCore::StyleResolver::setFontSize): Ditto.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::document): Changed to use own member.
        (WebCore::StyleResolver::documentSettings): Ditto.
        (StyleResolver): Added m_document member.
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorQuery::matches): Changed callsite to reflect new constructor signature.
        (WebCore::SelectorQuery::queryAll): Ditto.
        (WebCore::SelectorQuery::queryFirst): Ditto.
        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorChecker::ContentSelectorChecker): Ditto.
        (WebCore::ContentSelectorQuery::ContentSelectorQuery): Ditto.
        * html/shadow/ContentSelectorQuery.h:
        (ContentSelectorChecker): Removed unnecessary argument.

2012-12-29  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Cookies with an IP domain are not being loaded properly into memory
        https://bugs.webkit.org/show_bug.cgi?id=105859

        PR 271597

        Reviewed by George Staikos.

        The isIP flag isn't persistented in the database. We need to check it
        again when we load it into memory.

        * platform/blackberry/CookieManager.cpp:
        (WebCore::CookieManager::getBackingStoreCookies):

2012-12-29  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Refactor GLXImplementation.
        https://bugs.webkit.org/show_bug.cgi?id=105825

        Reviewed by Kenneth Rohde Christiansen.

        This patch decouples native window management and logic to find surface configuration in GLX implementation.

        * platform/graphics/opengl/GLDefs.h:
        * platform/graphics/surfaces/glx/GLXConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/glx/GLXWindowResources.h.
        (WebCore):
        (GLXConfigSelector):
        (WebCore::GLXConfigSelector::GLXConfigSelector):
        (WebCore::GLXConfigSelector::~GLXConfigSelector):
        (WebCore::GLXConfigSelector::visualInfo):
        (WebCore::GLXConfigSelector::pBufferContextConfig):
        (WebCore::GLXConfigSelector::surfaceContextConfig):
        (WebCore::GLXConfigSelector::reset):
        (WebCore::GLXConfigSelector::createConfig):

        Helper class to find surface configuration.

        * platform/graphics/surfaces/glx/GLXContext.h:
        (GLXOffScreenContext):
        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        (WebCore::GLXTransportSurface::configuration):
        (WebCore::GLXTransportSurface::setGeometry):
        (WebCore::GLXTransportSurface::destroy):
        (WebCore::GLXPBuffer::GLXPBuffer):
        (WebCore::GLXPBuffer::initialize):
        (WebCore::GLXPBuffer::configuration):
        * platform/graphics/surfaces/glx/GLXSurface.h:
        (GLXTransportSurface):
        (GLXPBuffer):

        Inheritance changed from X11OffScreenWindow to GLPlatformSurface.

        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
        (WebCore):
        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
        (WebCore::X11OffScreenWindow::reSizeWindow):
        (WebCore::X11OffScreenWindow::createOffscreenWindow):
        (WebCore::X11OffScreenWindow::destroyWindow):
        (WebCore::X11OffScreenWindow::nativeSharedDisplay):
        (WebCore::X11OffScreenWindow::setVisualInfo):
        (WebCore::X11OffScreenWindow::isXRenderExtensionSupported):
        * platform/graphics/surfaces/glx/X11WindowResources.h:
        (WebCore::SharedX11Resources::create):
        (SharedX11Resources):
        (X11OffScreenWindow):

         Removed code related to surface configiration.

2012-12-29  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Timeline] cpu bar popover shows wrong duration / cpu time.
        https://bugs.webkit.org/show_bug.cgi?id=105854

        Reviewed by Vsevolod Vlasov.

        Problem: CPU task indexes are already incremented before written to
        data structure.

        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
        Use for loop to get correct indexes.

2012-12-28  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
        https://bugs.webkit.org/show_bug.cgi?id=105830

        Reviewed by Vsevolod Vlasov.

        In some cases we don't want to visit some class members.
        As example we decided to skip pointers to interface classes such as GraphicLayerClient.
        We could use addWeakPointer for them but it can't be used for nonpointer members.
        In the offline discussion we came to a conclusion that we need a new instrumentation
        method ignoreMember, which will be used for all the members which we won't like to visit/instrument.

        DriveBy: Also I instrumented not yet instrumented members.

        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperMap::reportMemoryUsage):
        * bindings/v8/ScriptWrappable.h:
        (WebCore::ScriptWrappable::reportMemoryUsage):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::reportMemoryUsage):
        * platform/KURLGoogle.cpp:
        (WebCore::KURLGooglePrivate::reportMemoryUsage):
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::reportMemoryUsage):
        * platform/audio/AudioArray.h:
        (WebCore::AudioArray::reportMemoryUsage):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::reportMemoryUsage):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::reportMemoryUsage):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::reportMemoryUsage):
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::reportMemoryUsage):

2012-12-29  Andrey Lushnikov  <lushnikov@chromium.com>

        Web Inspector: refactor DefaultTextEditor - annotate handlers and fix getters style
        https://bugs.webkit.org/show_bug.cgi?id=105829

        Reviewed by Pavel Feldman.

        Refactor DefaultTextEditor.js: improve handler method annotations,
        remove "get" prefix from method names, get rid of unnecessary
        delegation (e.g. see _handleCut).

        No new tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor):
        (WebInspector.DefaultTextEditor.prototype._contextMenu):
        (WebInspector.DefaultTextEditor.prototype.selection):
        (WebInspector.DefaultTextEditor.prototype.lastSelection):
        (WebInspector.DefaultTextEditor.prototype.wasShown):
        (WebInspector.DefaultTextEditor.prototype.willHide):
        (WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.wasShown):
        (WebInspector.TextEditorMainPanel.prototype.willHide):
        (WebInspector.TextEditorMainPanel.prototype.populateContextMenu):
        (WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
        (WebInspector.TextEditorMainPanel.prototype.expandChunks):
        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
        (WebInspector.TextEditorMainPanel.prototype.selection):
        (WebInspector.TextEditorMainPanel.prototype.lastSelection):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
        (WebInspector.TextEditorMainPanel.prototype._handleTextInput):
        (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
        (WebInspector.TextEditorMainPanel.prototype._handleCut):

2012-12-28  No'am Rosenthal  <noam@webkit.org>

        REGRESSION: r138555 asserts on Linux EFL/Qt debug builds
        https://bugs.webkit.org/show_bug.cgi?id=105848

        Unreviewed test fix.

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
            Added parameter name to noop shader.

2012-12-28  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Use a transform uniform instead of u_flip/u_textureSize
        https://bugs.webkit.org/show_bug.cgi?id=105809

        Reviewed by Martin Robinson.

        In order to support tiled-patterns, we'd have to apply texture-space transformations in the
        vertex shader. 
        This patch cleans up the current texture-space transformations, and uses 
        single matrix uniform instead of the current uniforms.

        No new tests, refactor only.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):

2012-12-28  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Edge antialiasing in TextureMapper could be done with less per-pixel calls
        https://bugs.webkit.org/show_bug.cgi?id=105377

        Reviewed by Kenneth Rohde Christiansen.

        Instead of passing 8 quad edge coefficients as uniforms and analyze the distance in the
        fragment shader, we render the antialiased quad as 4 edge triangles, which originate in the
        center of the quad. 

        The vertex shader expands the quad based on the screen transform, and applies a value to each vertex to be interpolated by the GPU. 

        It is very difficult to test performance gain; However, the following is apparent:
        - The matrix multiplications and inversions done before in the quad inflation code were
          always visible in instruments/valgrind and they are now gone.
        - We now perform a single smoothstep() command per pixel instead of 8 clamp(dot()) commands.
        - It should now be possible to antialias individual edges.

        Covered by existing tests.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGLData::getStaticVBO):
            Cache the unit-rect and edge-triangle vertex data in a VBO.

        (WebCore::TextureMapperGLData::~TextureMapperGLData):
            Clear the cached VBOs upon destruction.

        (WebCore::TextureMapperGL::drawBorder):
        (WebCore::TextureMapperGL::drawTexture):
            Removed call to useProgram, since it's already called in drawTexturedQuadWithProgram.

        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
        (WebCore::TextureMapperGL::drawSolidColor):
            Use the new signature "draw" instead of "drawQuad".

        (WebCore::TextureMapperGL::drawEdgeTriangles):
        (WebCore::TextureMapperGL::drawUnitRect):
        (WebCore::TextureMapperGL::draw):
            Removed DrawQuad, instead draw either a unit rect or edge triangles.

        (WebCore::TextureMapperGL::beginClip):
            Use the new setMatrix function.

        * platform/graphics/texmap/TextureMapperGL.h:
            Added a paint flag for antialiasing.

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::TextureMapperShaderProgram::setMatrix):
            Since we now set the matrix in multiple locations, added a convenience 
            function for matrix uniform.

        (WebCore::getShaderSpec):
            Update the vertex and fragment shader to account for the new antialiasing
            mechanism.
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):

2012-12-28  Mark Rowe  <mrowe@apple.com>

        Move logic for extracting the OS X marketing version in to WebCore
        <http://webkit.org/b/105841> / <rdar://problem/10736041>

        Reviewed by Dan Bernstein.

        The logic for extracting the OS X markerting version is moved in to systemMarketingVersion
        from WebKitSystemInterface (post-10.8) and WebKit (pre-10.8).

        * WebCore.exp.in: Export systemMarketingVersion and remove the old WKSI symbol.
        * WebCore.xcodeproj/project.pbxproj: Add the new files.
        * platform/mac/SystemVersionMac.h: Added.
        * platform/mac/SystemVersionMac.mm: Added.
        (WebCore::createSystemMarketingVersion): Read the marketing version out of SystemVersion.plist
        (WebCore::callGestalt):
        (WebCore::createSystemMarketingVersion): Build the marketing version by piecing together the results
        of calls to Gestalt.
        (WebCore::systemMarketingVersion): Return the cached string.
        * platform/mac/WebCoreSystemInterface.h: Remove the old WKSI symbol.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2012-12-28  Rafael Weinstein  <rafaelw@chromium.org>

        [Templates]: Fix assert in colgroup parse handling
        https://bugs.webkit.org/show_bug.cgi?id=105837

        Reviewed by Eric Seidel.

        Tests added to html5lib.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processEndTag):

2012-12-28  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] GstMessage handler in AudioDestination
        https://bugs.webkit.org/show_bug.cgi?id=105292

        Reviewed by Martin Robinson.

        Handle GStreamer warnings and errors coming from the playback
        pipeline. For now we only display warnings on the console.

        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::messageCallback):
        (WebCore):
        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
        (WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady):
        (WebCore::AudioDestinationGStreamer::handleMessage):
        * platform/audio/gstreamer/AudioDestinationGStreamer.h:
        (AudioDestinationGStreamer):

2012-12-28  Martin Robinson  <mrobinson@igalia.com>

        [GTK][WK2] Add support for IME Composition
        https://bugs.webkit.org/show_bug.cgi?id=65093

        Reviewed by Carlos Garcia Campos.

        No new tests. The GtkInputMethodFilter is covered by unit tests in TestWebKitAPI.
        Doing functional tests for this behavior is much more complex.

        * platform/gtk/GtkInputMethodFilter.cpp:
        (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): Now
        pass along whether or not an event was faked.
        * platform/gtk/GtkInputMethodFilter.h: Ditto.

2012-12-27  Emil A Eklund  <eae@chromium.org>

        REGRESSION (r138196): Regions with text-overflow: ellipsis; are being ellipsized unnecessarily
        https://bugs.webkit.org/show_bug.cgi?id=105600

        Reviewed by Darin Adler.
        
        Pixel-snap lineBoxEdge before comparing with the block edge as
        the lineBox edge isn't guaranteed to be snapped to device pixels
        on all platforms.

        Test: fast/sub-pixel/ellipsis-table.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::checkLinesForTextOverflow):

2012-12-28  Brandon Jones  <bajones@chromium.org>

        [chromium] DrawingBuffer initialization loop breaks if completely out of memory
        https://bugs.webkit.org/show_bug.cgi?id=105732

        Reviewed by Kenneth Russell.

        When DrawingBuffer allocation fails because s_currentResourceUsePixels is maxed out
        it now forces WebGLRenderingContext creation to fail gracefully.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::create): On Chromium, check for failure to allocate a DrawingBuffer

2012-12-28  Dan Bernstein  <mitz@apple.com>

        Slightly clean up WebCore's Base.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=105808

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig: Simplify the definition of GCC_GENERATE_DEBUGGING_SYMBOLS,
        which is always YES.

2012-12-28  Rafael Weinstein  <rafaelw@chromium.org>

        Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement
        https://bugs.webkit.org/show_bug.cgi?id=105780

        Reviewed by Eric Seidel.

        This was regression was created by the HTMLTemplateElement implementation. The issue was a missed instance of
        "fragment or template contents" case related to the parsing of colgroups.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
        (WebCore::HTMLTreeBuilder::processStartTag):
        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
        (WebCore::HTMLTreeBuilder::processEndOfFile):

2012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce uri as a UISourceCode unique identifier in workspace.
        https://bugs.webkit.org/show_bug.cgi?id=105799

        Reviewed by Pavel Feldman.

        Added uri field to UISourceCode. 
        Debugger and LiveEdit uiSourceCodes are now created through WorkspaceProviders (not projects yet though)
        which are responsible for unique uri generation. 
        Extracted generic content provider based WorkspaceProvider functionality and url-to-uri conversion logic to ContentProviderWorkspaceProvider class.

        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.sourceFileId):
        * inspector/front-end/CompilerScriptMapping.js:
        * inspector/front-end/DebuggerScriptMapping.js:
        (WebInspector.DebuggerScriptMapping):
        * inspector/front-end/DefaultScriptMapping.js:
        (WebInspector.DefaultScriptMapping):
        (WebInspector.DefaultScriptMapping.prototype.addScript):
        (WebInspector.DebuggerWorkspaceProvider):
        (WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
        * inspector/front-end/LiveEditSupport.js:
        (WebInspector.LiveEditSupport):
        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
        (WebInspector.LiveEditWorkspaceProvider):
        (WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
        * inspector/front-end/NetworkWorkspaceProvider.js:
        (WebInspector.ContentProviderWorkspaceProvider):
        (WebInspector.ContentProviderWorkspaceProvider.uriForURL):
        (WebInspector.ContentProviderWorkspaceProvider.prototype.addFile):
        (WebInspector.ContentProviderWorkspaceProvider.prototype.uniqueURI):
        (WebInspector.NetworkWorkspaceProvider):
        (WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
        * inspector/front-end/SASSSourceMapping.js:
        (_bindUISourceCode):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer):
        (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
        (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
        (WebInspector.TabbedEditorContainer.prototype._editorClosedByUserAction):
        (WebInspector.TabbedEditorContainer.prototype._updateHistory.tabIdToURI):
        (WebInspector.TabbedEditorContainer.prototype._updateHistory):
        (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
        (WebInspector.TabbedEditorContainer.prototype.reset):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):
        (WebInspector.UISourceCode.prototype.uri):
        * inspector/front-end/Workspace.js:
        (WebInspector.FileDescriptor):
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype.uiSourceCodeForURI):
        (WebInspector.Workspace):
        (WebInspector.Workspace.prototype.uiSourceCodeForURI):
        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
        (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
        (WebInspector.Workspace.prototype.requestFileContent):
        (WebInspector.Workspace.prototype.setFileContent):
        (WebInspector.Workspace.prototype.searchInFileContent):
        (WebInspector.Workspace.prototype.reset):
        * inspector/front-end/inspector.js:

2012-12-28  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: debugger should step into event handler on event dispatch
        https://bugs.webkit.org/show_bug.cgi?id=105827

        Reviewed by Pavel Feldman.

        Added m_pauseInNextEventListener to InspectorDOMDebuggerAgent. The flag is set
        to true when "step into" is pressed and reset to false when either JS execution
        pauses, the agent gets disabled or JS call stack becomes empty. If the flag is
        true and the next JS stetement to be executed belongs to a JS event listener we
        will stop in that listener, otherwise we have two options:
          1) Control flow directly(without comming through the native bindings) reaches some JS
             statement and will pause in the corresponding JS function, in which case the
             flag will be reset;
          2) JS call stack becomes empty and execution will continue in the native code. We
             use didProcessTask to detect such cases and reset the flag to false every time
             event queue finishes next task.

        Test: inspector/debugger/debugger-step-into-event-listener.html

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::reportMemoryUsage):
        (WebCore::InspectorController::didProcessTask):
        * inspector/InspectorController.h:
        (WebCore):
        (InspectorController):
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
        (WebCore::InspectorDOMDebuggerAgent::stepInto):
        (WebCore):
        (WebCore::InspectorDOMDebuggerAgent::didPause):
        (WebCore::InspectorDOMDebuggerAgent::cancelStepIntoEventListener):
        (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
        (WebCore::InspectorDOMDebuggerAgent::clear):
        * inspector/InspectorDOMDebuggerAgent.h:
        (InspectorDOMDebuggerAgent):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::stepInto):
        (WebCore::InspectorDebuggerAgent::didPause):
        * inspector/InspectorDebuggerAgent.h:
        (Listener):

2012-12-28  Andrey Lushnikov  <lushnikov@chromium.com>

        Web Inspector: enable mutation observer in LayoutTests
        https://bugs.webkit.org/show_bug.cgi?id=105826

        Reviewed by Pavel Feldman.

        Enable mutation observer in LayoutTests.

        No new tests: no change in behaviour.

        * inspector/front-end/DOMExtension.js:

2012-12-28  Philippe Normand  <pnormand@igalia.com>

        [GTK] Some GStreamer-related files don't need to be in libWebCoreGTK
        https://bugs.webkit.org/show_bug.cgi?id=105807

        Reviewed by Martin Robinson.

        * GNUmakefile.list.am: Move some modules not using GTK nor Cairo
        to libWebCorePlatform.

2012-12-28  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: rename distanceToWindow to distance
        https://bugs.webkit.org/show_bug.cgi?id=105823

        Reviewed by Pavel Feldman.

        Renamed distanceToWindow to distance. Introduced a method on HeapSnapshot
        that allows to check if given node should be displayed to the user as having
        distance 1.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotEdge.prototype.serialize):
        (WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
        (WebInspector.HeapSnapshotNode.prototype.distance):
        (WebInspector.HeapSnapshotNode.prototype.serialize):
        (WebInspector.HeapSnapshot.prototype._init):
        (WebInspector.HeapSnapshot.prototype.dispose):
        (WebInspector.HeapSnapshot.prototype.canHaveDistanceOne):
        (WebInspector.HeapSnapshot.prototype._calculateDistances):
        (WebInspector.HeapSnapshot.prototype._bfs):
        (WebInspector.HeapSnapshot.prototype._buildAggregates):
        * inspector/front-end/HeapSnapshotDataGrids.js:
        (WebInspector.HeapSnapshotRetainmentDataGrid):
        (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
        (WebInspector.HeapSnapshotConstructorsDataGrid):
        (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._sortFields):
        * inspector/front-end/HeapSnapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        (WebInspector.HeapSnapshotObjectNode):
        (WebInspector.HeapSnapshotObjectNode.prototype.comparator):
        (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
        (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
        (WebInspector.HeapSnapshotConstructorNode):
        (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
        (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
        * inspector/front-end/JSHeapSnapshot.js:
        (WebInspector.JSHeapSnapshot.prototype.canHaveDistanceOne):

2012-12-28  Andrey Lushnikov  <lushnikov@chromium.com>

        Web Inspector: refactor DefaultTextEditor's private methods
        https://bugs.webkit.org/show_bug.cgi?id=105797

        Reviewed by Pavel Feldman.

        - Refactor private methods to public if they are called from external classes
        - Get rid of external private variable access.

        No tests: no change in behaviour.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.freeCachedElements):
        (WebInspector.DefaultTextEditor.prototype._handleTextInput):
        (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
        (WebInspector.DefaultTextEditor.prototype._handleCut):
        (WebInspector.DefaultTextEditor.prototype._contextMenu):
        (WebInspector.DefaultTextEditor.prototype._handleScrollChanged):
        (WebInspector.DefaultTextEditor.prototype.selection):
        (WebInspector.DefaultTextEditor.prototype.lastSelection):
        (WebInspector.DefaultTextEditor.prototype.setSelection):
        (WebInspector.DefaultTextEditor.prototype.wasShown):
        (WebInspector.DefaultTextEditor.prototype._handleFocused):
        (WebInspector.DefaultTextEditor.prototype.willHide):
        (WebInspector.DefaultTextEditor.prototype.highlightExpression):
        (WebInspector.DefaultTextEditor.prototype.overrideViewportForTest):
        (WebInspector.TextEditorChunkedPanel.prototype.buildChunks):
        (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk):
        (WebInspector.TextEditorChunkedPanel.prototype.splitChunkOnALine):
        (WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
        (WebInspector.TextEditorChunkedPanel.prototype.scroll):
        (WebInspector.TextEditorChunkedPanel.prototype._scheduleRepaintAll):
        (WebInspector.TextEditorChunkedPanel.prototype.endUpdates):
        (WebInspector.TextEditorChunkedPanel.prototype.chunkForLine):
        (WebInspector.TextEditorChunkedPanel.prototype.findVisibleChunks):
        (WebInspector.TextEditorChunkedPanel.prototype.repaintAll):
        (WebInspector.TextEditorChunkedPanel.prototype.scrollTop):
        (WebInspector.TextEditorChunkedPanel.prototype.clientHeight):
        (WebInspector.TextEditorChunkedPanel.prototype.expandChunks):
        (WebInspector.TextEditorChunkedPanel.prototype.totalHeight):
        (WebInspector.TextEditorChunkedPanel.prototype.resize):
        (WebInspector.TextEditorGutterPanel):
        (WebInspector.TextEditorGutterPanel.prototype.freeCachedElements):
        (WebInspector.TextEditorGutterPanel.prototype.createNewChunk):
        (WebInspector.TextEditorGutterPanel.prototype.textChanged):
        (WebInspector.TextEditorGutterChunk.prototype.get height):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.wasShown):
        (WebInspector.TextEditorMainPanel.prototype.willHide):
        (WebInspector.TextEditorMainPanel.prototype.highlightLine):
        (WebInspector.TextEditorMainPanel.prototype.freeCachedElements):
        (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
        (WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
        (WebInspector.TextEditorMainPanel.prototype.buildChunks):
        (WebInspector.TextEditorMainPanel.prototype.createNewChunk):
        (WebInspector.TextEditorMainPanel.prototype.expandChunks):
        (WebInspector.TextEditorMainPanel.prototype._schedulePaintLines):
        (WebInspector.TextEditorMainPanel.prototype._paintLines):
        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
        (WebInspector.TextEditorMainPanel.prototype.getSelection):
        (WebInspector.TextEditorMainPanel.prototype.getLastSelection):
        (WebInspector.TextEditorMainPanel.prototype.setLastSelection):
        (WebInspector.TextEditorMainPanel.prototype.restoreSelection):
        (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
        (WebInspector.TextEditorMainPanel.prototype.enclosingLineRowOrSelf):
        (WebInspector.TextEditorMainPanel.prototype._createLink):
        (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
        (WebInspector.TextEditorMainPanel.prototype._removeDecorationsInRange):
        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
        (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
        (WebInspector.TextEditorMainPanel.prototype.handleSelectionChange):
        (WebInspector.TextEditorMainPanel.prototype.handleTextInput):
        (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
        (WebInspector.TextEditorMainPanel.prototype.handleCut):
        (WebInspector.TextEditorMainPanel.prototype.overrideViewportForTest):
        (WebInspector.TextEditorMainChunk.prototype.get height):

2012-12-28  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Add GLES2 support in GraphicsContext3DEfl.
        https://bugs.webkit.org/show_bug.cgi?id=105805

        Reviewed by Kenneth Rohde Christiansen.

        This is in preparation for adding GLES2 support.
        This patch adds OPENGL_ES_2 checks in GraphicsContext3DEFl.
        With this patch, GraphicsContext3DPrivate uses the FramebufferBlit extension supported by Extensions3D.

        * platform/graphics/GraphicsContext3D.h:
        (GraphicsContext3D):
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::copyToGraphicsSurface):
        * platform/graphics/opengl/GLDefs.h:

2012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>

        Fix styling/formatting errors, pointed out by Darin Adler while reviewing
        https://bugs.webkit.org/show_bug.cgi?id=105752

        No functional changes, thus no new tests.

        * dom/VisitedLinkState.cpp:
        (WebCore::VisitedLinkState::VisitedLinkState): Fixed up constructor syntax.
        (WebCore::linkHashForElement): Expanded abbreviation.

2012-12-27  Mike West  <mkwst@chromium.org>

        Add context to the console message generated by Document::printNavigationErrorMessage.
        https://bugs.webkit.org/show_bug.cgi?id=105774

        Reviewed by Darin Adler.

        When blocking frame navigations, we should give developers more
        contextual detail about why the navigation has been blocked. This patch
        adds context specifically for sandboxed frames', and gives a slightly
        more detailed generic response for all other blockages.

        No new tests; the changes to the error message are covered via
        rebaselines to existing navigation tests.

        * dom/Document.cpp:
        (WebCore::printNavigationErrorMessage):
        (WebCore::Document::canNavigate):
            Pass in a 'reason' parameter when calling printNavigationErrorMessage
            to report a blocked navigation.

2012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>

        Move visited link-checking (and caching) code out of SelectorChecker.
        https://bugs.webkit.org/show_bug.cgi?id=105752

        SelectorChecker knew too much about visited links and how links are stored in DOM. This change
        moves the code to more relevant locations and moves the visited links cache all the way up to Document,
        introducing VisitedLinkState class to manage the state of visited links.
        Relanding without a null-ptr ref.

        Reviewed by Antti Koivisto.

        No change in behavior, covered by existing tests.

        * CMakeLists.txt: Added VisitedLinkState to build system.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
        * css/SelectorChecker.h: Ditto.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
        * css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
        * dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
        * dom/Document.cpp: Added VisitedLinkState initalizer.
        * dom/Document.h: Added VisitedLinkState member.
        * dom/VisitedLinkState.cpp: Added.
        * dom/VisitedLinkState.h: Added.
        * history/CachedPage.cpp:
        (WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
        * page/Page.cpp:
        (WebCore::Page::allVisitedStateChanged): Ditto.
        (WebCore::Page::visitedStateChanged): Ditto.

2012-12-27  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Implement EGL support with GLX.
        https://bugs.webkit.org/show_bug.cgi?id=105602

        Reviewed by Kenneth Rohde Christiansen.

        This is in preparation for adding GLES2 support.
        This patch adds support for EGL with GLX backend. EGL support can be enabled during compile time
        by passing -DENABLE_EGL=ON as cmake config parameter. This is disabled by default.

        * PlatformEfl.cmake:
        * platform/graphics/opengl/GLDefs.h:
        (WebCore):
        * platform/graphics/opengl/GLPlatformContext.cpp:
        (WebCore):
        (WebCore::GLPlatformContext::createContext): Added GLX checks.
        (WebCore::GLPlatformContext::createOffScreenContext): Added support for creating EGLOffscreen Context.
        (WebCore::GLPlatformContext::createCurrentContextWrapper): Added support for creating EGLCurrentContextWrapper.
        * platform/graphics/opengl/GLPlatformContext.h:
        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::createTransportSurface): Added support for creating EGLSurface.

        * platform/graphics/surfaces/egl/EGLContext.cpp: Added.
        (WebCore):
        (WebCore::isRobustnessExtSupported):
        (WebCore::EGLCurrentContextWrapper::EGLCurrentContextWrapper):
        (WebCore::EGLCurrentContextWrapper::handle):
        (WebCore::EGLOffScreenContext::EGLOffScreenContext):
        (WebCore::EGLOffScreenContext::initialize):
        (WebCore::EGLOffScreenContext::~EGLOffScreenContext):
        (WebCore::EGLOffScreenContext::isCurrentContext):
        (WebCore::EGLOffScreenContext::platformMakeCurrent):
        (WebCore::EGLOffScreenContext::platformReleaseCurrent):
        (WebCore::EGLOffScreenContext::freeResources):
        (WebCore::EGLOffScreenContext::destroy):
        * platform/graphics/surfaces/egl/EGLContext.h:
        (WebCore):
        (EGLCurrentContextWrapper):
        (WebCore::EGLCurrentContextWrapper::~EGLCurrentContextWrapper):
        (EGLOffScreenContext):

        EGL implementation for Context Management.

        * platform/graphics/surfaces/egl/EGLSurface.cpp: Added.
        (WebCore):
        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
        (WebCore::EGLWindowTransportSurface::~EGLWindowTransportSurface):
        (WebCore::EGLWindowTransportSurface::configuration):
        (WebCore::EGLWindowTransportSurface::swapBuffers):
        (WebCore::EGLWindowTransportSurface::destroy):
        (WebCore::EGLWindowTransportSurface::freeEGLResources):
        * platform/graphics/surfaces/egl/EGLSurface.h:
        (WebCore):
        (EGLWindowTransportSurface):

        EGL implementation for Offscreen Surface. The surface is backed by native window.

        * platform/graphics/surfaces/egl/EGLConfigHelper.cpp: Added.
        (WebCore):
        (WebCore::SharedEGLDisplay::deref):
        (WebCore::SharedEGLDisplay::sharedEGLDisplay):
        (WebCore::SharedEGLDisplay::SharedEGLDisplay):
        (WebCore::SharedEGLDisplay::cleanup):
        (WebCore::SharedEGLDisplay::~SharedEGLDisplay):
        (WebCore::EGLConfigHelper::EGLConfigHelper):
        (WebCore::EGLConfigHelper::~EGLConfigHelper):
        (WebCore::EGLConfigHelper::display):
        (WebCore::EGLConfigHelper::pBufferContextConfig):
        (WebCore::EGLConfigHelper::surfaceContextConfig):
        (WebCore::EGLConfigHelper::nativeVisualId):
        (WebCore::EGLConfigHelper::reset):
        (WebCore::EGLConfigHelper::createConfig):

        Helper class to initialize EGL resources and choose right EGL configuration.

2012-12-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138509.
        http://trac.webkit.org/changeset/138509
        https://bugs.webkit.org/show_bug.cgi?id=105806

        Caused several tests to crash (Requested by fsamuel on
        #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/SelectorChecker.cpp:
        (WebCore::linkAttribute):
        (WebCore):
        (WebCore::SelectorChecker::determineLinkStateSlowCase):
        (WebCore::SelectorChecker::allVisitedStateChanged):
        (WebCore::SelectorChecker::visitedStateChanged):
        * css/SelectorChecker.h:
        (SelectorChecker):
        (WebCore::SelectorChecker::determineLinkState):
        (WebCore):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::initElement):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::allVisitedStateChanged):
        (WebCore::StyleResolver::visitedStateChanged):
        (StyleResolver):
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        (WebCore):
        (Document):
        * dom/VisitedLinkState.cpp: Removed.
        * dom/VisitedLinkState.h: Removed.
        * history/CachedPage.cpp:
        (WebCore::CachedPage::restore):
        * page/Page.cpp:
        (WebCore::Page::allVisitedStateChanged):
        (WebCore::Page::visitedStateChanged):

2012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>

        Move visited link-checking (and caching) code out of SelectorChecker.
        https://bugs.webkit.org/show_bug.cgi?id=105752

        SelectorChecker knew too much about visited links and how links are stored in DOM. This change
        moves the code to more relevant locations and moves the visited links cache all the way up to Document,
        introducing VisitedLinkState class to manage the state of visited links.

        Reviewed by Antti Koivisto.

        No change in behavior, covered by existing tests.

        * CMakeLists.txt: Added VisitedLinkState to build system.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
        * css/SelectorChecker.h: Ditto.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
        * css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
        * dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
        * dom/Document.cpp: Added VisitedLinkState initalizer.
        * dom/Document.h: Added VisitedLinkState member.
        * dom/VisitedLinkState.cpp: Added.
        * dom/VisitedLinkState.h: Added.
        * history/CachedPage.cpp:
        (WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
        * page/Page.cpp:
        (WebCore::Page::allVisitedStateChanged): Ditto.
        (WebCore::Page::visitedStateChanged): Ditto.

2012-12-27  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Minor refactoring of TextureMapperLayer.
        https://bugs.webkit.org/show_bug.cgi?id=105782

        Reviewed by Darin Adler.

        This patch has two refactorings.
        1. Replace TextureMapperPaintOptions from header to implementation file.
        2. Add non copyable property to TextureMapperLayer.

        No new tests. Refactoring only.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (TextureMapperPaintOptions):
        (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
        (WebCore):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore):
        (TextureMapperLayer):

2012-12-27  Yury Semikhatsky  <yurys@chromium.org>

       Unreviewed. Use real worker in heap profiler instead of the fake one
       (was accidentally switched to the fake worker).

        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotWorker):

2012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Can not set breakpoints in scripts loaded with source map.
        https://bugs.webkit.org/show_bug.cgi?id=105801

        Reviewed by Alexander Pavlov.

        ResourceScriptMapping now pushes itself to script's source mappings in addScript method.
        Binding script to uiSourceCode loaded later is only triggering updateLocations() now.

        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype.addScript):
        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
        * inspector/front-end/Script.js:
        (WebInspector.Script.prototype.disableSourceMapping):
        (WebInspector.Script.prototype.enableSourceMapping):
        (WebInspector.Script.prototype.pushSourceMapping):
        (WebInspector.Script.prototype.popSourceMapping):
        (WebInspector.Script.prototype.updateLocations):

2012-12-27  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: remove support for legacy heap graph node format
        https://bugs.webkit.org/show_bug.cgi?id=105802

        Reviewed by Pavel Feldman.

        Removed support for old heap graph node format: we now always store edge count
        in each node instead of the first edge index.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype._buildEdgeIndexes):

2012-12-27  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: move js heap snapshot preprocessing to JSHeapSnapshot
        https://bugs.webkit.org/show_bug.cgi?id=105798

        Reviewed by Pavel Feldman.

        HeapSnapshot.js refactorings:
        - moved _markInvisibleEdges implementation into JSHeapSnapshot
        - moved _calculateFlags implementation into JSHeapSnapshot
        - moved _flags array into JSHeapSnapshot
        - instead of returning node flags as a field on each node, requesting
          snapshot node flag constants from the heap snapshot worker and then
          checking for the flags in HeapSnapshotGridNodes now return two optional
          boolean fields on each node: canBeQueried and detachedDOMTreeNode
        - removed unused propertyAccessor property from serialized heap node
        - moved node and edge serialization from providers to the node and edge
          classes, js specific fields are serialized only for JSHeapSnapshotNode
        - renamed first() to rewind() on providers and iterators

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotEdge.prototype.serialize):
        (WebInspector.HeapSnapshotEdgeIterator.prototype.rewind):
        (WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.rewind):
        (WebInspector.HeapSnapshotNode.prototype.isUserObject):
        (WebInspector.HeapSnapshotNode.prototype.serialize):
        (WebInspector.HeapSnapshotNodeIterator.prototype.rewind):
        (WebInspector.HeapSnapshot.prototype._init):
        (WebInspector.HeapSnapshot.prototype._buildAggregates):
        (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
        (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
        (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
        (WebInspector.HeapSnapshot.prototype._markInvisibleEdges):
        (WebInspector.HeapSnapshot.prototype._calculateFlags):
        (WebInspector.HeapSnapshot.prototype.userObjectsMapAndFlag):
        (WebInspector.HeapSnapshot.prototype.):
        (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
        (WebInspector.HeapSnapshot.prototype.updateStaticData):
        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype._createIterationOrder):
        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.rewind):
        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.isEmpty):
        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.serializeItemsRange):
        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.sortAndRewind):
        * inspector/front-end/HeapSnapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode):
        (WebInspector.HeapSnapshotObjectNode):
        * inspector/front-end/HeapSnapshotProxy.js:
        * inspector/front-end/JSHeapSnapshot.js:
        (WebInspector.JSHeapSnapshot):
        (WebInspector.JSHeapSnapshot.prototype._markInvisibleEdges):
        (WebInspector.JSHeapSnapshot.prototype._calculateFlags):
        (WebInspector.JSHeapSnapshot.prototype.userObjectsMapAndFlag):
        (WebInspector.JSHeapSnapshot.prototype._flagsOfNode):
        (WebInspector.JSHeapSnapshot.prototype._markDetachedDOMTreeNodes):
        (WebInspector.JSHeapSnapshot.prototype._markQueriableHeapObjects):
        (WebInspector.JSHeapSnapshot.prototype._markPageOwnedNodes):
        (WebInspector.JSHeapSnapshotNode.prototype.isUserObject):
        (WebInspector.JSHeapSnapshotNode.prototype.serialize):

2012-12-27  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Refactor SourceMapParser to enable range-based sourcemap
        https://bugs.webkit.org/show_bug.cgi?id=105764

        Reviewed by Vsevolod Vlasov.

        Test: inspector/styles/range-based-mapping.html

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping):
        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
        * inspector/front-end/SourceMap.js: Copied from Source/WebCore/inspector/front-end/CompilerScriptMapping.js.
        (WebInspector.SourceMap):
          Abstract. Renamed from SourceMapParser and supports only direct (generated -> originating source) mapping via findEntry()
        (WebInspector.SourceMap.prototype.sources):
        (WebInspector.SourceMap.prototype.sourceContent):
        (WebInspector.SourceMap.prototype._parseMappingPayload):
        (WebInspector.SourceMap.prototype._parseSections):
        (WebInspector.SourceMap.prototype._parseMap):
        (WebInspector.SourceMap.prototype._isSeparator):
        (WebInspector.SourceMap.prototype._decodeVLQ):
        (WebInspector.SourceMap.prototype._canonicalizeURL):
        (WebInspector.SourceMap.StringCharIterator):
        (WebInspector.SourceMap.StringCharIterator.prototype.next):
        (WebInspector.SourceMap.StringCharIterator.prototype.peek):
        (WebInspector.SourceMap.StringCharIterator.prototype.hasNext):
        (WebInspector.PositionBasedSourceMap):
          Extends SourceMap and provides direct (compiled -> original source)
          and reverse (original -> compiled source) position mapping via findEntryReversed().
        (WebInspector.PositionBasedSourceMap.prototype.findEntry):
        (WebInspector.PositionBasedSourceMap.prototype.findEntryReversed):
        (WebInspector.PositionBasedSourceMap.prototype._parseMap):
        (WebInspector.RangeBasedSourceMap):
          Extends SourceMap and provides direct range mapping
          (compiled source position -> original source range) via findSourceRange().
        (WebInspector.RangeBasedSourceMap.MappingComparator):
        (WebInspector.RangeBasedSourceMap.prototype.findSourceRange):
        (WebInspector.RangeBasedSourceMap.prototype._rangeForStartIndex):
        (WebInspector.SourceRange):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2012-12-25  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] report if there is any uninstrumented canvas on a page
        https://bugs.webkit.org/show_bug.cgi?id=105721

        Reviewed by Yury Semikhatsky.

        Adding a method to the protocol to report if there is any uninstrumented canvas on a page.

        Test: inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases.html

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
        (WebCore::InspectorCanvasAgent::enable):
        (WebCore::InspectorCanvasAgent::disable):
        (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
        (WebCore):
        (WebCore::InspectorCanvasAgent::captureFrame):
        (WebCore::InspectorCanvasAgent::startCapturing):
        (WebCore::InspectorCanvasAgent::stopCapturing):
        (WebCore::InspectorCanvasAgent::getTraceLog):
        (WebCore::InspectorCanvasAgent::replayTraceLog):
        (WebCore::InspectorCanvasAgent::ensureHasUninstrumentedCanvasesCalculated):
        (WebCore::InspectorCanvasAgent::checkIsEnabled):
        (WebCore::InspectorCanvasAgent::reset):
        * inspector/InspectorCanvasAgent.h:
        (WebCore):
        (InspectorCanvasAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):

2012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Simplify script mappings by introducing DefaultScriptMapping.
        https://bugs.webkit.org/show_bug.cgi?id=103038

        Reviewed by Pavel Feldman.

        DefaultScriptMapping creates a uiSourceCode for each script and set itself as a mapping for the script.
        Script can now have a stack of (possibly disabled) mappings, allowing to try several mappings when calculating uiLocation.
        LiveEditSupport object is added on WebInspector to support live editing of readonly DefaultScriptMapping's uiSourceCodes.
        DefaultScriptMapping is now the only mapping that creates temporary uiSourceCodes.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager):
        (WebInspector.BreakpointManager.sourceFileId):
        (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping):
        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.CompilerScriptMapping.prototype.uiLocationToRawLocation):
        (WebInspector.CompilerScriptMapping.prototype._reset):
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype._parsedScriptSource):
        * inspector/front-end/DebuggerScriptMapping.js:
        (WebInspector.DebuggerScriptMapping):
        * inspector/front-end/DefaultScriptMapping.js: Added.
        * inspector/front-end/LiveEditSupport.js: Added.
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.ResourceScriptMapping.prototype.addScript):
        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
        (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
        (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
        (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
        (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
        (WebInspector.ResourceScriptMapping.prototype._reset):
        * inspector/front-end/Script.js:
        (WebInspector.Script):
        (WebInspector.Script.prototype.):
        (WebInspector.Script.prototype.editSource):
        (WebInspector.Script.prototype.setIsDynamicScript):
        (WebInspector.Script.prototype.isDynamicScript):
        (WebInspector.Script.prototype.rawLocationToUILocation):
        (WebInspector.Script.prototype._enabledSourceMappings):
        (WebInspector.Script.prototype._sourceMappingsDiffer):
        (WebInspector.Script.prototype.disableSourceMapping):
        (WebInspector.Script.prototype.enableSourceMapping):
        (WebInspector.Script.prototype.pushSourceMapping):
        (WebInspector.Script.prototype.popSourceMapping):
        (WebInspector.Script.prototype._updateLocations):
        (WebInspector.Script.prototype.createLiveLocation):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/Workspace.js:
        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2012-12-27  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: console.profileEnd() crashes if called without arguments
        https://bugs.webkit.org/show_bug.cgi?id=105759

        Reviewed by Vsevolod Vlasov.

        Test: inspector/profiler/cpu-profiler-parameterless-profile-end-crash.html

        API allows to finish profile without specifying its name.
        Profiler tracks profiles stack and finishes outermost profile.
        Finished profile title will be used instead of user-specified one.

        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::stop): Use title provided by profiler.

2012-12-26  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Instead of having multiple shaders sources with lots of duplication, we should have one shader source with MACRO variants
        https://bugs.webkit.org/show_bug.cgi?id=104815

        Reviewed by Kenneth Rohde Christiansen.

        Created templates for the vertex and fragment shaders, and added some MACROs in 
        TextureMapperShaderManager to allow GLSL precompiler-based configuration.

        The template follows a pattern where the main function in the shader calls
        applyFooBarIfNeeded(), while applyFooBar() is implemented. The Macros prepended to the template define whether applyIfNeeded resolves to the real function or to a noop.

        In addition, made some small changes to the filter shaders so that they can use the same code as the normal shaders.

        Covered by existing pixel/ref tests when run on Qt/EFL/GTK.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
        (WebCore::optionsForFilterType):
        (WebCore):
        (WebCore::getPassesRequiredForFilter):
        (WebCore::prepareFilterProgram):
        (WebCore::TextureMapperGL::drawFiltered):
        (WebCore::BitmapTextureGL::applyFilters):
            Always draw using the drawQuad function, and use the new TextureMapperShaderManager::Options mask instead of the old ShaderKey.

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore):
        (WebCore::getShaderSpec):
        (WebCore::TextureMapperShaderManager::getShaderProgram):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):
        (TextureMapperShaderManager):

2012-12-26  Huang Dongsung  <luxtella@company100.net>

        [TexMap] A Minor optimization of GraphicsLayerTransform.
        https://bugs.webkit.org/show_bug.cgi?id=105758

        Reviewed by Noam Rosenthal.

        Only multiply the transformation matrices if the paramaters are actually
        changed.

        This optimizes the code path called from flushCompositingStateForThisLayerOnly(),
        and potentially setAnimatedTransform().

        No new tests. Refactoring only.

        * platform/graphics/GraphicsLayerTransform.cpp:
        (WebCore::GraphicsLayerTransform::setPosition):
        (WebCore::GraphicsLayerTransform::setSize):
        (WebCore::GraphicsLayerTransform::setAnchorPoint):
        (WebCore::GraphicsLayerTransform::setFlattening):
        (WebCore::GraphicsLayerTransform::setLocalTransform):
        (WebCore::GraphicsLayerTransform::setChildrenTransform):

2012-12-26  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Remove unused members and methods in TextureMapperLayer.
        https://bugs.webkit.org/show_bug.cgi?id=105755

        Reviewed by Noam Rosenthal.

        No new tests. Refactoring only.

        * platform/graphics/texmap/TextureMapperLayer.h:
        (TextureMapperLayer):
        (State):
        (WebCore::TextureMapperLayer::State::State):

2012-12-26  Andreas Kling  <akling@apple.com>

        [Mac] MemoryPressureHandler: Occasional crashes in uninstall() when responding to memory pressure signal.
        <http://webkit.org/b/105772>

        Reviewed by Stephanie Lewis.

        We can't synchronously dereference _cache_event_source in uninstall() just because m_installed
        is true -- the block that initializes _cache_event_source is asynchronous and may not have executed.
        Fix this by performing the uninstallation asynchronously on the main queue as well.

        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::uninstall):

2012-12-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137905.
        http://trac.webkit.org/changeset/137905
        https://bugs.webkit.org/show_bug.cgi?id=105765

        Popover does not disappear when hovering another identifier in
        sources panel. (Requested by vsevik on #webkit).

        * inspector/front-end/Popover.js:
        (WebInspector.Popover.prototype._innerShow):
        * inspector/front-end/popover.css:
        (.popover):

2012-12-26  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Resources] Table lose focus (selection) after deleting cookie.
        https://bugs.webkit.org/show_bug.cgi?id=105716

        Reviewed by Yury Semikhatsky.

        This makes deletion of a set of cookies (using keyboard) painful.

        * inspector/front-end/CookieItemsView.js: Call method instead of getter.
        * inspector/front-end/CookiesTable.js: Remember and use next selected
        cookie value.

2012-12-26  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: extract JS heap profiler specifics into JSHeapSnapshot.js
        https://bugs.webkit.org/show_bug.cgi?id=105768

        Reviewed by Pavel Feldman.

        Inroduced JSHeapSnapshot, JSHeapSnapshotNode, JSHeapSnapshotEdge and JSHeapSnapshotRetainerEdge which
        should encapsulate logic specific to JS-heap.
        No behavioral changes, covered with existing heap profiler tests.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotEdge.prototype.hasStringName):
        (WebInspector.HeapSnapshotEdge.prototype.name):
        (WebInspector.HeapSnapshotEdge.prototype.node):
        (WebInspector.HeapSnapshotEdge.prototype.toString):
        (WebInspector.HeapSnapshotRetainerEdge.prototype._node):
        (WebInspector.HeapSnapshotRetainerEdge.prototype._edge):
        (WebInspector.HeapSnapshotNode.prototype.className):
        (WebInspector.HeapSnapshotNode.prototype.classIndex):
        (WebInspector.HeapSnapshotNode.prototype.edges):
        (WebInspector.HeapSnapshotNode.prototype.id):
        (WebInspector.HeapSnapshotNode.prototype.retainers):
        (WebInspector.HeapSnapshot.prototype.createNode):
        (WebInspector.HeapSnapshot.prototype.createEdge):
        (WebInspector.HeapSnapshot.prototype.createRetainingEdge):
        (WebInspector.HeapSnapshot.prototype.rootNode):
        (WebInspector.HeapSnapshot.prototype.aggregatesForDiff):
        (WebInspector.HeapSnapshot.prototype._buildAggregates):
        (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
        (WebInspector.HeapSnapshot.prototype._sortAggregateIndexes):
        (WebInspector.HeapSnapshot.prototype._calculateDiffForClass):
        (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
        (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
        (WebInspector.HeapSnapshot.prototype.createNodesProviderForDominator):
        (WebInspector.HeapSnapshotNodesProvider.prototype.nodePosition):
        * inspector/front-end/HeapSnapshotLoader.js:
        (WebInspector.HeapSnapshotLoader.prototype.buildSnapshot):
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotWorker):
        * inspector/front-end/HeapSnapshotWorker.js:
        * inspector/front-end/JSHeapSnapshot.js: Added.
        (WebInspector.JSHeapSnapshot):
        (WebInspector.JSHeapSnapshot.prototype.createNode):
        (WebInspector.JSHeapSnapshot.prototype.createEdge):
        (WebInspector.JSHeapSnapshot.prototype.createRetainingEdge):
        (WebInspector.JSHeapSnapshotNode):
        (WebInspector.JSHeapSnapshotNode.prototype.canBeQueried):
        (WebInspector.JSHeapSnapshotNode.prototype.isPageObject):
        (WebInspector.JSHeapSnapshotNode.prototype.distanceToWindow):
        (WebInspector.JSHeapSnapshotNode.prototype.className):
        (WebInspector.JSHeapSnapshotNode.prototype.classIndex):
        (WebInspector.JSHeapSnapshotNode.prototype.id):
        (WebInspector.JSHeapSnapshotNode.prototype.isHidden):
        (WebInspector.JSHeapSnapshotNode.prototype.isNative):
        (WebInspector.JSHeapSnapshotNode.prototype.isSynthetic):
        (WebInspector.JSHeapSnapshotNode.prototype.isWindow):
        (WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
        (WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTree):
        (WebInspector.JSHeapSnapshotEdge):
        (WebInspector.JSHeapSnapshotEdge.prototype.clone):
        (WebInspector.JSHeapSnapshotEdge.prototype.hasStringName):
        (WebInspector.JSHeapSnapshotEdge.prototype.isElement):
        (WebInspector.JSHeapSnapshotEdge.prototype.isHidden):
        (WebInspector.JSHeapSnapshotEdge.prototype.isWeak):
        (WebInspector.JSHeapSnapshotEdge.prototype.isInternal):
        (WebInspector.JSHeapSnapshotEdge.prototype.isInvisible):
        (WebInspector.JSHeapSnapshotEdge.prototype.isShortcut):
        (WebInspector.JSHeapSnapshotEdge.prototype.name):
        (WebInspector.JSHeapSnapshotEdge.prototype.toString):
        (WebInspector.JSHeapSnapshotEdge.prototype._hasStringName):
        (WebInspector.JSHeapSnapshotEdge.prototype._name):
        (WebInspector.JSHeapSnapshotEdge.prototype._nameOrIndex):
        (WebInspector.JSHeapSnapshotEdge.prototype._type):
        (WebInspector.JSHeapSnapshotRetainerEdge):
        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.clone):
        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isElement):
        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isHidden):
        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInternal):
        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInvisible):
        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isShortcut):
        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isWeak):
        * inspector/front-end/ProfilesPanel.js:
        * inspector/front-end/WebKit.qrc:

2012-12-26  Patrick Gansterer  <paroga@webkit.org>

        [WIN] Build fix for !USE(CFNETWORK) after r138413.

        * platform/network/NetworkStorageSession.h:
        (WebCore):

2012-12-26  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: prepare HeapSnapshot.js for use with native heap snapshot
        https://bugs.webkit.org/show_bug.cgi?id=105763

        Reviewed by Alexander Pavlov.

        HeapSnapshot.js now expects root node to be either the first or the last (real) one
        in the list of all nodes.

        * inspector/HeapGraphSerializer.cpp:
        (HeapGraphNode):
        (WebCore::HeapGraphSerializer::serialize): reordered node and edge fields so that the go in
        the same order as in the JS heap snapshot.
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype._buildAggregates):
        (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
        * inspector/front-end/NativeHeapGraph.js:
        (WebInspector.NativeHeapGraph):
        (WebInspector.NativeHeapGraph.prototype.root): now there is explicit root node which is the last
        one in the list, use it.
        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
        (WebInspector.NativeHeapGraph.prototype._addDummyNode): fixed dummy node first edge index.
        (WebInspector.NativeHeapGraph.Edge.prototype.target):
        (WebInspector.NativeHeapGraph.Node.prototype.referencedNodes):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph): switched to use of the root node
        (WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):

2012-12-26  Pan Deng  <pan.deng@intel.com>

        [Web Inspector]Remove Preview and Response tab from network panel in case websocket.
        https://bugs.webkit.org/show_bug.cgi?id=105754

        Reviewed by Pavel Feldman.

        Network item views for websocket is not consistent before/after receiving a frame.
        This change keeps Headers, Frames and Cookies tab for websocket.

        No new tests.

        * inspector/front-end/NetworkItemView.js:
        (WebInspector.NetworkItemView):

2012-12-25  John Griggs  <jgriggs@rim.com>

        [BlackBerry] Media controls are drawn on top of one another for media with unknown duration.
        https://bugs.webkit.org/show_bug.cgi?id=105747

        Reviewed by George Staikos.

        No need to reposition controls when there is no timeline element, this mispositions them in the new design.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):

2012-12-25  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Crash when modifying a rule that has been removed through JavaScript
        https://bugs.webkit.org/show_bug.cgi?id=105718

        Reviewed by Yury Semikhatsky.

        CSSStyleRules should be stored by RefPtr's to avoid using stale pointers to deleted instances.

        Test: inspector/styles/removed-rule-crash.html

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::ruleForId):
        (WebCore::InspectorStyleSheet::revalidateStyle):
        (WebCore::InspectorStyleSheet::buildArrayForRuleList):
        (WebCore::InspectorStyleSheet::collectFlatRules):
        * inspector/InspectorStyleSheet.h:
        (InspectorStyleSheet):

2012-12-25  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Console] Add "Replay XHR" context menu item for corresponding messages.
        https://bugs.webkit.org/show_bug.cgi?id=105714

        Reviewed by Pavel Feldman.

        Expose "request" value from console message object and use it in console
        context menu generator.

        * inspector/front-end/ConsoleMessage.js: Expose "request".
        * inspector/front-end/ConsoleView.js: Add "Replay XHR" menu item.
        * inspector/front-end/NetworkPanel.js: Fix whitespaces.

2012-12-25  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Make InspectorState instances per-agent, corresponding to JSON map entries in the cookie
        https://bugs.webkit.org/show_bug.cgi?id=105722

        Reviewed by Yury Semikhatsky.

        Inspector state cookie (in JSON format) has become a map (agent name -> "properties object")
        to avoid cross-agent property name clashes in a single property namespace.
        As such, InspectorState corresponds to a single "properties object" and is now per-agent,
        managed by an InspectorCompositeState (which is owned by [Worker]InspectorController).
        Since InspectorCompositeState maps "properties objects" by their agent names, InspectorStates are created
        by InspectorCompositeState in the InspectorBaseAgentInterface ctor, using the respective agent name.

        No new tests, no change in visible behavior.

        * inspector/InspectorAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
        * inspector/InspectorAgent.h: Ditto.
        * inspector/InspectorApplicationCacheAgent.cpp: Ditto.
        * inspector/InspectorApplicationCacheAgent.h: Ditto.
        * inspector/InspectorBaseAgent.cpp: Ditto.
        (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
        Create InspectorState via InspectorCompositeState::createAgentState(agentName).
        * inspector/InspectorBaseAgent.h: Pass InspectorCompositeState rather than InspectorState.
        * inspector/InspectorCSSAgent.cpp: Ditto.
        * inspector/InspectorCSSAgent.h: Ditto.
        * inspector/InspectorCanvasAgent.cpp: Ditto.
        * inspector/InspectorCanvasAgent.h: Ditto.
        * inspector/InspectorConsoleAgent.cpp: Ditto.
        * inspector/InspectorConsoleAgent.h: Ditto.
        * inspector/InspectorController.cpp: Use InspectorCompositeState rather than InspectorState.
        * inspector/InspectorController.h: Ditto.
        * inspector/InspectorDOMAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
        (WebCore::InspectorDOMAgent::InspectorDOMAgent): Ditto.
        * inspector/InspectorDOMAgent.h: Ditto.
        * inspector/InspectorDOMDebuggerAgent.cpp: Ditto.
        * inspector/InspectorDOMDebuggerAgent.h: Ditto.
        * inspector/InspectorDOMStorageAgent.cpp: Ditto.
        * inspector/InspectorDOMStorageAgent.h: Ditto.
        * inspector/InspectorDatabaseAgent.cpp: Ditto.
        * inspector/InspectorDatabaseAgent.h: Ditto.
        * inspector/InspectorDebuggerAgent.cpp: Ditto.
        * inspector/InspectorDebuggerAgent.h: Ditto.
        * inspector/InspectorFileSystemAgent.cpp: Ditto.
        * inspector/InspectorFileSystemAgent.h: Ditto.
        * inspector/InspectorIndexedDBAgent.cpp: Ditto.
        * inspector/InspectorIndexedDBAgent.h: Ditto.
        * inspector/InspectorInputAgent.cpp: Ditto.
        * inspector/InspectorInputAgent.h: Ditto.
        * inspector/InspectorLayerTreeAgent.cpp: Ditto.
        * inspector/InspectorLayerTreeAgent.h: Ditto.
        * inspector/InspectorMemoryAgent.cpp: Ditto.
        * inspector/InspectorMemoryAgent.h: Ditto.
        * inspector/InspectorPageAgent.cpp: Ditto.
        * inspector/InspectorPageAgent.h: Ditto.
        * inspector/InspectorProfilerAgent.cpp: Ditto.
        * inspector/InspectorProfilerAgent.h: Ditto.
        * inspector/InspectorResourceAgent.cpp: Ditto.
        * inspector/InspectorResourceAgent.h: Ditto.
        * inspector/InspectorRuntimeAgent.cpp: Ditto.
        * inspector/InspectorRuntimeAgent.h: Ditto.
        * inspector/InspectorState.cpp: Introduce InspectorCompositeState, refactor.
        (WebCore::InspectorState::updateCookie): Delegates to the owning InspectorCompositeState instance.
        (WebCore::InspectorState::setFromCookie): Gets called from InspectorCompositeState::loadFromCookie().
        (WebCore::InspectorState::remove): Don't forget to update the cookie.
        (WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance for a named agent.
        (WebCore::InspectorCompositeState::loadFromCookie): Restores InspectorStates from a cookie.
        (WebCore::InspectorCompositeState::inspectorStateUpdated): Delegate invoked from InspectorState::updateCookie().
        * inspector/InspectorState.h:
        (InspectorStateUpdateListener): InspectorCompositeState API exposed to InspectorState.
        * inspector/InspectorTimelineAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
        * inspector/InspectorTimelineAgent.h: Ditto.
        * inspector/InspectorWorkerAgent.cpp: Ditto.
        * inspector/InspectorWorkerAgent.h: Ditto.
        * inspector/PageConsoleAgent.cpp: Ditto.
        * inspector/PageConsoleAgent.h: Ditto.
        * inspector/PageDebuggerAgent.cpp: Ditto.
        * inspector/PageDebuggerAgent.h: Ditto.
        * inspector/PageRuntimeAgent.cpp: Ditto.
        * inspector/PageRuntimeAgent.h: Ditto.
        * inspector/WorkerConsoleAgent.cpp: Ditto.
        * inspector/WorkerConsoleAgent.h: Ditto.
        * inspector/WorkerDebuggerAgent.cpp: Ditto.
        * inspector/WorkerDebuggerAgent.h: Ditto.
        * inspector/WorkerInspectorController.cpp: Ditto.
        * inspector/WorkerInspectorController.h: Ditto.
        * inspector/WorkerRuntimeAgent.cpp: Ditto.
        * inspector/WorkerRuntimeAgent.h: Ditto.

2012-12-24  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: provide a way to mark a node as a root
        https://bugs.webkit.org/show_bug.cgi?id=105737

        Reviewed by Alexander Pavlov.

        Extended HeapGraphSerializer to add a fake root node with edges to all
        real instrumentation roots.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::addRootNode):
        (WebCore):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializer):

2012-12-24  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: add message listener only in case of standalone test-runner.html
        https://bugs.webkit.org/show_bug.cgi?id=105715

        Reviewed by Pavel Feldman.

        Tell InspectorFrontendAPI that it is launched by standalone test runner so that it
        can decide whether message event listener should be added.

        * inspector/front-end/InspectorFrontendAPI.js:
        * inspector/front-end/test-runner.html:

2012-12-24  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: propagate member type as edge type to the serialized heap graph.
        https://bugs.webkit.org/show_bug.cgi?id=105725

        Reviewed by Yury Semikhatsky.

        MemoryOwningType was renamed to MemberType.
        Source argument were removed from reportEdge, reportLeaf and other edge related methods because it is not necessary.
        MemberType argument was propagated from MemoryInstrumentation down to HeapGraphSerializer.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphEdge::HeapGraphEdge):
        (HeapGraphEdge):
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::reportEdge):
        (WebCore::HeapGraphSerializer::reportLeaf):
        (WebCore::HeapGraphSerializer::serialize):
        * inspector/HeapGraphSerializer.h:
        (HeapGraphSerializer):
        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::reportEdge):
        (WebCore::MemoryInstrumentationClientImpl::reportLeaf):
        * inspector/MemoryInstrumentationImpl.h:
        (MemoryInstrumentationClientImpl):

2012-12-24  Takashi Sakamoto  <tasak@google.com>

        ::first-letter { overflow: -webkit-paged-y } causes crash
        https://bugs.webkit.org/show_bug.cgi?id=105393

        Reviewed by Beth Dakin.

        Should check whether e is available or not before invoking
        e->hasTagName in adjustRenderStyle in StyleResolver.cpp.

        Test: fast/css/pseudo-element-opagedxy-crash.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        If adjustRenderStyle is invoked in pseudoStyleForElement, the given
        element is 0. So e is not available. However if the given style's
        overflowY is OPAGEDX or OPAGEDY, adjustRenderStyle doesn't check
        whether e is available or not before e->hasTagName.
        This causes a crash.

2012-12-24  Alexei Filippov  <alph@chromium.org>

        Web Inspector: add async API for passing renderer process memory stats
        https://bugs.webkit.org/show_bug.cgi?id=105278

        Reviewed by Yury Semikhatsky.

        On some platforms (e.g. Linux) it may take some time to collect
        total process memory information as it involves an IPC out of a
        sandboxed renderer process. So add an async way to collect the statistics.

        * platform/MemoryUsageSupport.cpp:
        (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
        (WebCore):
        * platform/MemoryUsageSupport.h:
        (MemoryUsageSupport):
        (ProcessMemorySizesCallback):
        (WebCore::MemoryUsageSupport::ProcessMemorySizesCallback::~ProcessMemorySizesCallback):
        * platform/chromium/MemoryUsageSupportChromium.cpp:
        (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
        (WebCore):
        * platform/qt/MemoryUsageSupportQt.cpp:
        (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
        (WebCore):

2012-12-24  Laszlo Gombos  <l.gombos@samsung.com>

        Remove wtf/Platform.h includes from {c|cpp} files
        https://bugs.webkit.org/show_bug.cgi?id=105678

        Reviewed by Kentaro Hara.

        Remove wtf/Platform.h from the include list as it is already
        included in config.h.

        No new tests as there is no new functionality.

        * rendering/svg/RenderSVGRect.cpp:

2012-12-24  Kentaro Hara  <haraken@chromium.org>

        Follow up fixes for r137739
        https://bugs.webkit.org/show_bug.cgi?id=104982

        Reviewed by Ryosuke Niwa.

        Applied darin's comments in https://bugs.webkit.org/show_bug.cgi?id=104982#c18

        No tests. No change in behavior.

        * dom/ContainerNode.h:
        (WebCore::ChildNodesLazySnapshot::nextNode):

2012-12-24  Tiancheng Jiang  <tijiang@rim.com>

        Update BB10 media render theme.
        https://bugs.webkit.org/show_bug.cgi?id=105728

        Reviewed by Rob Buis.

        Internally reviewed by John Griggs.
        Use GL renderer to paint media control.

        * css/mediaControlsBlackBerry.css:
        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):

2012-12-24  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138436.
        http://trac.webkit.org/changeset/138436
        https://bugs.webkit.org/show_bug.cgi?id=105723

        Asserts on state restoration in debug builds (Requested by
        apavlov on #webkit).

        * inspector/InspectorAgent.cpp:
        (InspectorAgentState):
        (WebCore::InspectorAgent::enable):
        (WebCore::InspectorAgent::disable):
        (WebCore::InspectorAgent::evaluateForTestInFrontend):
        (WebCore::InspectorAgent::inspect):
        * inspector/InspectorApplicationCacheAgent.cpp:
        (ApplicationCacheAgentState):
        (WebCore::InspectorApplicationCacheAgent::restore):
        (WebCore::InspectorApplicationCacheAgent::enable):
        * inspector/InspectorCSSAgent.cpp:
        (CSSAgentState):
        (WebCore::InspectorCSSAgent::restore):
        (WebCore::InspectorCSSAgent::enable):
        (WebCore::InspectorCSSAgent::disable):
        * inspector/InspectorCanvasAgent.cpp:
        (CanvasAgentState):
        (WebCore::InspectorCanvasAgent::restore):
        (WebCore::InspectorCanvasAgent::enable):
        (WebCore::InspectorCanvasAgent::disable):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorController.h:
        (WebCore):
        (InspectorController):
        * inspector/InspectorDOMStorageAgent.cpp:
        (DOMStorageAgentState):
        (WebCore::InspectorDOMStorageAgent::restore):
        (WebCore::InspectorDOMStorageAgent::enable):
        (WebCore::InspectorDOMStorageAgent::disable):
        * inspector/InspectorDatabaseAgent.cpp:
        (DatabaseAgentState):
        (WebCore):
        (WebCore::InspectorDatabaseAgent::enable):
        (WebCore::InspectorDatabaseAgent::disable):
        (WebCore::InspectorDatabaseAgent::restore):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::disable):
        * inspector/InspectorFileSystemAgent.cpp:
        (FileSystemAgentState):
        (WebCore):
        (WebCore::InspectorFileSystemAgent::enable):
        (WebCore::InspectorFileSystemAgent::disable):
        (WebCore::InspectorFileSystemAgent::clearFrontend):
        (WebCore::InspectorFileSystemAgent::restore):
        * inspector/InspectorIndexedDBAgent.cpp:
        (IndexedDBAgentState):
        (WebCore):
        (WebCore::InspectorIndexedDBAgent::restore):
        (WebCore::InspectorIndexedDBAgent::enable):
        (WebCore::InspectorIndexedDBAgent::disable):
        * inspector/InspectorLayerTreeAgent.cpp:
        (LayerTreeAgentState):
        (WebCore::InspectorLayerTreeAgent::restore):
        (WebCore::InspectorLayerTreeAgent::enable):
        (WebCore::InspectorLayerTreeAgent::disable):
        * inspector/InspectorPageAgent.cpp:
        (PageAgentState):
        (WebCore::InspectorPageAgent::restore):
        (WebCore::InspectorPageAgent::webViewResized):
        (WebCore::InspectorPageAgent::enable):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
        (WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad):
        (WebCore::InspectorPageAgent::setDeviceMetricsOverride):
        (WebCore::InspectorPageAgent::setShowPaintRects):
        (WebCore::InspectorPageAgent::setShowFPSCounter):
        (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
        (WebCore::InspectorPageAgent::applyScreenWidthOverride):
        (WebCore::InspectorPageAgent::applyScreenHeightOverride):
        (WebCore::InspectorPageAgent::didPaint):
        (WebCore::InspectorPageAgent::didLayout):
        (WebCore::InspectorPageAgent::setEmulatedMedia):
        (WebCore::InspectorPageAgent::applyEmulatedMedia):
        * inspector/InspectorResourceAgent.cpp:
        (ResourceAgentState):
        (WebCore::InspectorResourceAgent::restore):
        (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
        (WebCore::InspectorResourceAgent::enable):
        (WebCore::InspectorResourceAgent::disable):
        * inspector/InspectorState.cpp:
        (WebCore::InspectorState::InspectorState):
        (WebCore::InspectorState::loadFromCookie):
        (WebCore):
        (WebCore::InspectorState::mute):
        (WebCore::InspectorState::unmute):
        (WebCore::InspectorState::updateCookie):
        (WebCore::InspectorState::remove):
        * inspector/InspectorState.h:
        (WebCore):
        (InspectorState):
        (WebCore::InspectorState::setLong):
        * inspector/InspectorTimelineAgent.cpp:
        (TimelineAgentState):
        (WebCore::InspectorTimelineAgent::restore):
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::stop):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/WorkerInspectorController.h:
        (WebCore):
        (WorkerInspectorController):

2012-12-24  Peter Rybin  <prybin@chromium.org>

        Web Inspector: Keep LiveEdit API disabled when idle
        https://bugs.webkit.org/show_bug.cgi?id=104039

        Reviewed by Pavel Feldman.

        Guards are added to LiveEdit call

        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::setScriptSource):

2012-12-24  Andrey Lushnikov  <lushnikov@chromium.com>

        Web Inspector: refactor TextEditorHighlighter's highlight attributes to dense array
        https://bugs.webkit.org/show_bug.cgi?id=105626

        Reviewed by Pavel Feldman.

        Refactor highlight attributes from sparse array to dense array.

        No new tests: no behaviour changes, coverage provided by existing tests.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
        * inspector/front-end/TextEditorHighlighter.js:
        (WebInspector.TextEditorHighlighter.prototype._highlightLines):

2012-12-21  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Make use of the new InspectorState::remove() in inspector agents
        https://bugs.webkit.org/show_bug.cgi?id=105438

        Reviewed by Yury Semikhatsky.

        This patch introduces the following refactorings:
        - setting property values of InspectorState to "empty" objects has been replaced by removing them from the state;
        - InspectorState instance is no longer shared across agents, so that the property names can no longer clash.
          Instead, InspectorCompositeState creates and owns InspectorState instances for every agent;
        - agent-specific prefix has been stripped from most property names, where it looked synthetic.
        - updateCookie() is called from InspectorState::remove().

        No new tests, as there is no visible change in the behavior.

        * inspector/InspectorAgent.cpp: Agent-specific property name prefix stripped.
        * inspector/InspectorApplicationCacheAgent.cpp: Ditto.
        * inspector/InspectorCSSAgent.cpp: Ditto.
        * inspector/InspectorCanvasAgent.cpp: Ditto.
        * inspector/InspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
        * inspector/InspectorController.h: Ditto.
        * inspector/InspectorDOMStorageAgent.cpp: Agent-specific property name prefix stripped.
        * inspector/InspectorDatabaseAgent.cpp: Ditto.
        * inspector/InspectorDebuggerAgent.cpp: Ditto.
        (WebCore::InspectorDebuggerAgent::disable):
        Use "remove" instead of setting an empty object.
        * inspector/InspectorFileSystemAgent.cpp: Agent-specific property name prefix stripped.
        * inspector/InspectorIndexedDBAgent.cpp: Ditto.
        * inspector/InspectorLayerTreeAgent.cpp: Ditto.
        * inspector/InspectorPageAgent.cpp: Ditto.
        (WebCore::InspectorPageAgent::disable):
        Use "remove" instead of setting empty values for certain properties.
        (WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
        Remove unnecessary code (object is created and put into the map if none is found).
        * inspector/InspectorResourceAgent.cpp: Agent-specific property name prefix stripped.
        (WebCore::InspectorResourceAgent::disable):
        Use "remove" instead of setting an empty object for userAgentOverride.
        * inspector/InspectorState.cpp: Add InspectorCompositeState.
        (WebCore::InspectorState::setFromCookie): Gets invoked from InspectorCompositeState::loadFromCookie().
        (WebCore::InspectorState::updateCookie): Call updateCookie().
        (WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance to be passed to an agent.
        * inspector/InspectorState.h: Add InspectorCompositeState.
        (WebCore::InspectorState::setLong): Fix cast.
        * inspector/InspectorTimelineAgent.cpp: Agent-specific property name prefix stripped.
        * inspector/WorkerInspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
        * inspector/WorkerInspectorController.h: Ditto.

2012-12-23  Dimitri Glazkov  <dglazkov@chromium.org>

        Split fast-rejection filter logic off SelectorChecker.
        https://bugs.webkit.org/show_bug.cgi?id=105660

        The awesome Bloom filter and parent stack logic don't need to be in SelectorChecker. They nicely factor out
        into their own pretty thing, named thereby SelectorFilter.

        Reviewed by Eric Seidel.

        No change in functionality, covered by existing tests.

        * CMakeLists.txt: Added SelectorFilter to build systems.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * css/CSSAllInOne.cpp: Ditto.
        * css/RuleSet.cpp: Changed to use SelectorFilter.
        (WebCore::RuleData::RuleData): Ditto.
        * css/SelectorChecker.cpp: Ditto.
        * css/SelectorChecker.h: Ditto.
        (SelectorChecker):
        * css/StyleResolver.cpp: Ditto.
        (WebCore):
        (WebCore::StyleResolver::pushParentElement): Ditto.
        (WebCore::StyleResolver::popParentElement): Ditto.
        (WebCore::StyleResolver::collectMatchingRulesForList): Ditto.
        * css/StyleResolver.h:
        (StyleResolver): Ditto.

2012-12-23  Qiankun Miao  <qiankun.miao@intel.com>

        Remove unused reference to "class LayerChromium"
        https://bugs.webkit.org/show_bug.cgi?id=105502

        Reviewed by Kentaro Hara.

        class LayerChromium doesn't exist any more. Just remove the unused
        code.

        * platform/graphics/chromium/Canvas2DLayerBridge.h:

2012-12-23  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/12808377> Network process should respect cookie accept policy
        https://bugs.webkit.org/show_bug.cgi?id=105684

        Reviewed by Sam Weinig.

        Changed cookie change observer to not use platform strategies, to make it usable
        in NetworkProcess. startObservingCookieChanges() now just takes a callback pointer.

        * WebCore.exp.in:
        * platform/CookiesStrategy.h:
        * platform/network/CookieStorage.h:
        * platform/network/cf/CookieStorageCFNet.cpp:
        (WebCore::notifyCookiesChangedOnMainThread):
        (WebCore::startObservingCookieChanges):
        * platform/network/mac/CookieStorageMac.mm:
        (-[WebCookieStorageObjCAdapter notifyCookiesChangedOnMainThread]):
        (-[WebCookieStorageObjCAdapter startListeningForCookieChangeNotificationsWithCallback:]):
        (WebCore::startObservingCookieChanges):

2012-12-23  Tony Chang  <tony@chromium.org>

        [Qt][Mac] Unreviewed fix the build after r138413
        https://bugs.webkit.org/show_bug.cgi?id=105686

        Don't use a temporary const reference so the compiler doesn't make a copy.
        An example compile error (clang):
        Source/WebCore/loader/CookieJar.cpp:73:67: error: copying parameter of type 'WebCore::NetworkStorageSession' invokes deleted constructor
            return platformStrategies()->cookiesStrategy()->cookiesForDOM(SESSION(document), document->firstPartyForCookies(), url);

        * loader/CookieJar.cpp:
        (WebCore::cookies):
        (WebCore::setCookies):
        (WebCore::cookiesEnabled):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):

2012-12-22  Alexey Proskuryakov  <ap@apple.com>

        Add a separate class for networking related storage
        https://bugs.webkit.org/show_bug.cgi?id=105676

        Reviewed by Sam Weinig.

        NetworkingContext combines a reference to storage (cookies and more) and data that's
        only meaningful when loading. This makes it very ugly to use for cookie manipulation
        when there is no load (e.g. for document.cookie).

        Adding NetworkStorageSession, which encorportes network-related sesion data, such
        as cookies and session HTTP credentials.

        For some ports, refactoring is not finished, NetworkStorageSession being a wrapper
        for NetworkingContext.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Updated for new files and functions.

        * platform/network/PlatformCookieJar.h:
        * loader/CookieJar.cpp:
        * platform/CookiesStrategy.h:
        * platform/network/cf/CookieJarCFNet.cpp:
        * platform/network/chromium/CookieJarChromium.cpp:
        * platform/network/curl/CookieJarCurl.cpp:
        * platform/network/mac/CookieJarMac.mm:
        * platform/network/qt/CookieJarQt.cpp:
        * platform/network/soup/CookieJarSoup.cpp:
        * platform/network/win/CookieJarWin.cpp:
        PlatformCookieJar and strategy cookie functions now take a NetworkStorageSession
        instead of NetworkingContext.
        Note that they take a const reference to support creating a temporary session
        wrapper for ports that just wrap a NetworkingContext.

        * loader/ResourceLoader.cpp:
        * loader/cache/CachedResource.h:
        * platform/network/BlobResourceHandle.cpp:
        * platform/network/ResourceHandle.cpp:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleInternal.h:
        * platform/network/chromium/ResourceHandle.cpp:
        * platform/network/curl/ResourceHandleCurl.cpp:
        * platform/network/mac/ResourceHandleMac.mm:
        * platform/network/qt/QNetworkReplyHandler.cpp:
        * platform/network/soup/DNSSoup.cpp:
        * platform/network/soup/ResourceHandleSoup.cpp:
        * platform/network/win/ResourceHandleWin.cpp:
        ResourceHandle no longer includes unneeded NetworkingContext.h and AuthenticationClient.h.
        This avoids near-world rebuilds on any NetworkingContext change.

        * platform/network/NetworkStorageSession.h: Added.
        * platform/network/NetworkStorageSessionStub.cpp: Added.
        * platform/network/cf/NetworkStorageSessionCFNet.cpp: Added.
        Good new stuff. Stub version just wraps NetworkingContext for platforms that still
        need to finish the refactoring.

        * platform/network/NetworkingContext.h:
        The context now has a NetworkStorageSession, and doesn't expose CFNet level objects directly.

        * platform/network/cf/CookieStorageCFNet.cpp:
        * platform/network/cf/CookieStorageCFNet.h: Removed.
        We no longer have separate free functions to track storage, it's part of NetworkStorageSession now.

        * platform/network/cf/ResourceHandleCFNet.cpp: Updated to use NetworkStorageSession.

        * platform/network/mac/CookieStorageMac.mm: Dont include CookieStorageCFNet.h, it
        was not needed.

2012-12-22  Nico Weber  <thakis@chromium.org>

        InlineTextBox: Remove potentially confusing "} if" pattern.
        https://bugs.webkit.org/show_bug.cgi?id=105499

        Reviewed by Ojan Vafai.

        It's not clear to me on first look if this is intentional or missing
        an "else" (and this pattern was used in just one other place in
        webkit, which I've removed). It turns out no else is missing here,
        this is checked by fast/text/justified-selection.html

        * rendering/InlineTextBox.cpp:
        (WebCore::paintTextWithShadows):

2012-12-21  Jan Keromnes  <janx@linux.com>

        Web Inspector: Update CodeMirror to stable
        https://bugs.webkit.org/show_bug.cgi?id=105653

        Reviewed by Pavel Feldman.

        Fixes several minor issues, including throw scroll on mac.

        * inspector/front-end/cm/codemirror.css:
        (.cm-negative):
        (.cm-positive):
        (.CodeMirror-gutter):
        (.cm-searching):
        * inspector/front-end/cm/codemirror.js:
        (window.CodeMirror):
        (window.CodeMirror.):
        * inspector/front-end/cm/css.js:
        (.):
        * inspector/front-end/cm/htmlmixed.js:
        (.):
        * inspector/front-end/cm/javascript.js:
        (.):
        * inspector/front-end/cm/xml.js:

2012-12-21  Elliott Sprehn  <esprehn@chromium.org>

        Replace documentFragmentIsShadowRoot with isTreeScope
        https://bugs.webkit.org/show_bug.cgi?id=105345

        Reviewed by Dimitri Glazkov.

        We can replace documentFragmentIsShadowRoot with isTreeScope() which is
        trival to detect by checking treeScope()->rootNode() == this. To do this
        we must stop adopting ShadowRoots into the document when they're removed,
        which was always wrong anyway as it meant that the TreeScope of a ShadowRoot
        was no longer itself after it had been removed. It also meant that the
        children of a ShadowRoot that was removed were no longer in it's tree scope
        despite being descendants of it.

        Making this simplification allows further simplication like
        Node::containingShadowRoot can be made O(1) instead of O(k) where k is
        the depth of the node.

        No new tests, just refactoring.

        * WebCore.exp.in:
        * dom/DocumentFragment.h:
        (DocumentFragment):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::removeAllShadowRoots):
        * dom/Node.cpp:
        (WebCore::Node::setTreeScope):
        (WebCore::Node::isTreeScope):
        (WebCore):
        * dom/Node.h:
        (Node):
        (WebCore::Node::isShadowRoot):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::~ShadowRoot):
        * dom/ShadowRoot.h:
        (ShadowRoot):

2012-12-21  Xianzhu Wang  <wangxianzhu@chromium.org>

        [Chromium-Android] Use harfbuzz-ng instead of harfbuzz-old on Android
        https://bugs.webkit.org/show_bug.cgi?id=104410

        Using harfbuzz-ng we can avoid many bugs of the obsolete harfbuzz-old.

        Reviewed by Eric Seidel.

        No new tests. No change of functionality. Existing tests should pass.

        * WebCore.gyp/WebCore.gyp: Use harfbuzz-ng on Android.

2012-12-21  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Combine openConnection and openConnectionWithVersion
        https://bugs.webkit.org/show_bug.cgi?id=105658

        Reviewed by Tony Chang.

        Combine the logic from these two methods. Mostly a refactor, but in the "pending calls"
        case the behavior is slightly altered since the version and no-version queues were
        previously separate, so the order changes. The new order matches the spec and FF/IE
        behavior, and a test is added to verify this.

        Chromium's webkit_unit_tests rely on a quirk to bypass the upgrade mechanism; the usage
        is slightly altered and made more explicit, and requires a small amount of test-only code.

        Test: storage/indexeddb/open-ordering.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        (WebCore::IDBDatabaseBackendImpl::close):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::open):

2012-12-21  Brady Eidson  <beidson@apple.com>

        Update localizable strings as a followup to http://trac.webkit.org/changeset/138387
        https://bugs.webkit.org/show_bug.cgi?id=105592

        Rubberstamped by Alexey Proskuryakov.

        * English.lproj/Localizable.strings: Added a new error string.

2012-12-21  Kenneth Russell  <kbr@google.com>

        Expose ArrayBufferView constructor on DOMWindow
        https://bugs.webkit.org/show_bug.cgi?id=105605

        Reviewed by Sam Weinig.

        Update IDL to track recent spec change exposing ArrayBufferView
        constructor on DOMWindow for instanceof checks. There are no
        constructors exposed in the Web IDL, however, so calling it via
        operator new throws TypeError.

        Test (updated): fast/canvas/webgl/array-unit-tests.html

        * html/canvas/ArrayBufferView.idl:
            Removed OmitConstructor attribute.
        * page/DOMWindow.idl:
            Exposed ArrayBufferView constructor function attribute.

2012-12-21  Brady Eidson  <beidson@apple.com>

        Remove ResourceLoadScheduler::addMainResourceLoad and all related code
        <rdar://problem/12925275> and https://bugs.webkit.org/show_bug.cgi?id=105644

        Reviewed by Alexey Proskuryakov.

        Now that main resources loads are scheduled (bug 49246) we don't need this stuff anymore.

        No new tests (No change in behavior).

        * WebCore.exp.in:
        * loader/ResourceLoadScheduler.cpp:
        * loader/ResourceLoadScheduler.h:

2012-12-21  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [WebGL][EFL][Qt] Transparent canvas composited non-transparent
        https://bugs.webkit.org/show_bug.cgi?id=105325

        Reviewed by Kenneth Rohde Christiansen.

        glXPixmap is always created without alpha channel because 1st GLXFBConfig 
        in a list doesn't support transparency. 
        Use the same code that is used to find GLXFBConfig with alpha for window 
        creation in GraphicsSurfacePrivate::createPixmap(). Code is moved to 
        findFBConfigWithAlpha() method.

        Covered by fast/canvas/webgl/webgl-composite-modes-repaint.html

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
        (GraphicsSurfacePrivate):

2012-12-21  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r138376.
        http://trac.webkit.org/changeset/138376
        https://bugs.webkit.org/show_bug.cgi?id=104995

        Broke a bunch of tests on mac.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::nodeName):
        (WebCore):
        * dom/ShadowRoot.h:
        (ShadowRoot):

2012-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138237.
        http://trac.webkit.org/changeset/138237
        https://bugs.webkit.org/show_bug.cgi?id=105637

        Regresses web inspector's editor performance. (Requested by
        pfeldman on #webkit).

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
        (WebInspector.TextEditorMainChunk.prototype.expand):

2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>

        Various tests in media/track are intermittently crashing.
        https://bugs.webkit.org/show_bug.cgi?id=105606

        Reviewed by Eric Seidel.

        The root of problem is the fact that we update tracks even if we are in process of deleting the document.
        Media element can stop doing that if the document informed the element via ::stop that it is going away.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):

2012-12-21  Alexei Svitkine  <asvitkine@chromium.org>

        [Chromium/Mac] Don't send an onclick event from a ctrl-click
        https://bugs.webkit.org/show_bug.cgi?id=105554

        Reviewed by Dimitri Glazkov.

        Don't send the onclick event on a control click event (which
        triggers the context menu on the Mac). This matches the
        behaviour of the Apple Mac port, although the Apple port
        does this by checking whether the context menu is visible
        in WebPage::mouseEvent().

        This is a fix for http://crbug.com/146143

        Test: fast/events/controlclick-no-onclick.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):

2012-12-21  Shinya Kawanaka  <shinyak@chromium.org>

        Implement ShadowRoot::elementFromPoint
        https://bugs.webkit.org/show_bug.cgi?id=104579

        Reviewed by Dimitri Glazkov.

        Move elementFromPoint and nodeFromPoint to TreeScope from Document so that ShadowRoot can call it.
        In the elementFromPoint(), the element taken by nodeFromPoint is not in the same tree scope, its ancestor is returned.

        Since nodeFromPoint does not return the shadow ancestor of the result node, I don't make it TreeScope method.

        Test: fast/dom/shadow/elementfrompoint.html

        * dom/Document.cpp:
        (WebCore::Document::elementFromPoint): Code is shared with TreeScope.
        (WebCore::Document::caretRangeFromPoint):
        * dom/ShadowRoot.idl:
        * dom/TreeScope.cpp:
        (WebCore::nodeFromPoint): Moved from Document.cpp
        (WebCore):
        (WebCore::TreeScope::elementFromPoint):
        * dom/TreeScope.h:
        (WebCore):
        (TreeScope):

2012-12-21  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        [EFL][WK2] Never create WebCore scrollbars for EFL/WK2
        https://bugs.webkit.org/show_bug.cgi?id=105632

        Reviewed by Antonio Gomes.

        For delegates scroll we must not use the scroll animator,
        or similar as those depends on creating WebCore scrollbars.

        Handle the wheel event manually for delegates scrolling.

        * page/FrameView.cpp:
        (WebCore::FrameView::wheelEvent):

2012-12-21  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow DOM]: ShadowRoot wrong nodeName attribute
        https://bugs.webkit.org/show_bug.cgi?id=104995

        Reviewed by Dimitri Glazkov.

        According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
        We remove ShadowRoot::nodeName.

        No new tests, covered by existing tests.

        * dom/ShadowRoot.cpp:
        * dom/ShadowRoot.h:
        (ShadowRoot):

2012-12-21  Mihai Parparita  <mihaip@chromium.org>

        Slow performance with <select> with many options and size >= 2
        https://bugs.webkit.org/show_bug.cgi?id=105483

        Reviewed by Eric Seidel.
        
        Avoids creating renderers for children of list <select>s that are not
        <option> or <optgroup>. This is both more correct (no other browser
        displays them) and provides a performance benefit (direct text children 
        of <select> would have O(N^2) behavior; this usually happened due to
        whitespace between <option>...</option> tags).

        Test: fast/forms/menulist-no-renderer-for-unexpected-children.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::childShouldCreateRenderer):

2012-12-21  Keishi Hattori  <keishi@webkit.org>

        Fix typing zero into multiple field input
        https://bugs.webkit.org/show_bug.cgi?id=105501

        Reviewed by Kent Tamura.

        We have a couple of problems when handling zero in a multiple fields
        element.
        1. Typing '02' into a month field will set '12'.
        2. Typing '0' into 12 hour hour field will set '12' and move to the 
           focus to the next field.
        This change adds a type ahead buffer so we can handle these cases
        properly. If the value in the type ahead buffer is valid we set it so a
        change event will fire.

        Added tests to *-multiple-fields-keyboard-events.html.

        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::didBlur): Clear the type ahead
        buffer. handleKeyboardEvent() won't set the type ahead value if it is
        not in range, so we set the value here.
        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
        (WebCore::DateTimeNumericFieldElement::setEmptyValue): Clear type ahead buffer.
        (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
        (WebCore::DateTimeNumericFieldElement::stepDown): Clear type ahead buffer.
        (WebCore::DateTimeNumericFieldElement::stepUp): Clear type ahead buffer.
        (WebCore::DateTimeNumericFieldElement::typeAheadValue): Returns integer
        value for the type ahead characters.
        (WebCore):
        (WebCore::DateTimeNumericFieldElement::visibleValue): If we have type
        ahead characters, show that.
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement):

2012-12-21  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GStreamer] Buffering ranges are reported incorrectly with GStreamer 1.0
        https://bugs.webkit.org/show_bug.cgi?id=105319

        Reviewed by Philippe Normand.

        We add the gPercentMax constant to select between 100 and
        GST_FORMAT_PERCENT_MAX depending if we are compiling against
        GStreamer 0.10 or 1.0 and we use that in the corresponding method.

        Current tests should suffice.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::buffered): Added the use of
        gPercentMax constant instead of 100 to have the different code
        paths for GStreamer 0.10 and 1.0.

2012-12-21  Tim Horton  <timothy_horton@apple.com>

        PDFPlugin: Cannot drop files/URLs on PDFPlugin
        https://bugs.webkit.org/show_bug.cgi?id=105516
        <rdar://problem/12729443>

        Reviewed by Alexey Proskuryakov.

        * page/DragController.cpp:
        (WebCore::DragController::operationForLoad): If we drag over a PluginDocument, check if its PluginView
        claims to support navigation resulting from a drag (only PDFPlugin will for now). If it does, allow the drag.
        * plugins/PluginViewBase.h:
        (WebCore::PluginViewBase::shouldAllowNavigationFromDrags): Add shouldAllowNavigationFromDrags.

2012-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138338.
        http://trac.webkit.org/changeset/138338
        https://bugs.webkit.org/show_bug.cgi?id=105621

        speculative rollout because fast/dom/shadow/content-element-
        distributed-nodes.html is crashing on linux debug. (Requested
        by loislo on #webkit).

        * WebCore.exp.in:
        * dom/DocumentFragment.h:
        * dom/Node.cpp:
        (WebCore::Node::documentFragmentIsShadowRoot):
        (WebCore):
        * dom/Node.h:
        (Node):
        (WebCore::Node::isShadowRoot):
        * dom/ShadowRoot.h:

2012-12-21  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        MediaStream API: Update the MediaStream constructor
        https://bugs.webkit.org/show_bug.cgi?id=98416

        Reviewed by Adam Barth.

        Updated the MediaStream constructor to support the more general argument
        list from the latest Media Capture and Streams specification:
        http://dev.w3.org/2011/webrtc/editor/getusermedia.html

        Added more test cases to existing tests.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::containsSource):
        (WebCore):
        (WebCore::processTrack):
        (WebCore::createFromSourceVectors):
        (WebCore::MediaStream::create):
        * Modules/mediastream/MediaStream.h:
        * Modules/mediastream/MediaStream.idl:

2012-12-20  Ryosuke Niwa  <rniwa@webkit.org>

        More fix after r138348.

        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::SocketStreamHandle::createStreams):

2012-12-20  Alexey Proskuryakov  <ap@apple.com>

        Disable Nagle algorithm on WebSocket implementation for CF.
        https://bugs.webkit.org/show_bug.cgi?id=102079

        Build fix. Disable the new code on Lion, _kCFStreamSocketSetNoDelay apparently
        cannot be used on this OS version.

        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::SocketStreamHandle::createStreams):

2012-12-20  KyungTae Kim  <ktf.kim@samsung.com>

        Fix build warnings related with gstreamer
        https://bugs.webkit.org/show_bug.cgi?id=105614

        Reviewed by Kentaro Hara.

        The below functions have unused parameters.
        Remove the parameter names to fix 'unused parameter' build warnings.

        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::onGStreamerWavparsePadAddedCallback):
        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (WebCore::messageCallback):
        (WebCore::onGStreamerDeinterleavePadAddedCallback):
        (WebCore::onGStreamerDeinterleaveReadyCallback):
        (WebCore::onGStreamerDecodebinPadAddedCallback):

2012-12-20  Takashi Toyoshima  <toyoshim@chromium.org>

        Disable Nagle algorithm on WebSocket implementation for CF.
        https://bugs.webkit.org/show_bug.cgi?id=102079

        Reviewed by Alexey Proskuryakov.

        Set TCP_NODELAY on CFWriteStream for SocketStreamHandle to improve
        communication latency. Combination of Nagle and delayed-ACK could
        affect performance in some environment, e.g., over Wifi network.

        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::SocketStreamHandle::createStreams):

2012-12-20  Huang Dongsung  <luxtella@company100.net>

        [WebGL][EFL][Qt][GTK] Jelly fishes leave trails on webgl canvas.
        https://bugs.webkit.org/show_bug.cgi?id=105326

        Reviewed by Noam Rosenthal.

        Clear a drawing buffer after compositing if preserveDrawingBuffer is
        false.
        http://www.khronos.org/registry/webgl/specs/latest/#2.2

        No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test.

        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::copyToGraphicsSurface):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):

2012-12-20  Filip Pizlo  <fpizlo@apple.com>

        Create a variable name for a RAII scope so it doesn't die immediately.

        Reviewed by Sam Weinig.

        No new tests.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTrackAddCues):
        (WebCore::HTMLMediaElement::textTrackRemoveCues):
        (WebCore::HTMLMediaElement::removeTrack):
        (WebCore::HTMLMediaElement::removeAllInbandTracks):

2012-12-20  Elliott Sprehn  <esprehn@chromium.org>

        Replace documentFragmentIsShadowRoot with isTreeScope
        https://bugs.webkit.org/show_bug.cgi?id=105345

        Reviewed by Dimitri Glazkov.

        We can replace documentFragmentIsShadowRoot with isTreeScope() which is
        trival to detect by checking treeScope()->rootNode() == this;

        No new tests, just refactoring.

        * WebCore.exp.in:
        * dom/DocumentFragment.h:
        (DocumentFragment):
        * dom/Node.cpp:
        (WebCore::Node::isTreeScope):
        * dom/Node.h:
        (Node):
        (WebCore::Node::isShadowRoot):
        * dom/ShadowRoot.h:
        (ShadowRoot):

2012-12-20  Rik Cabanier  <cabanier@adobe.com>

        Add canvas blending modes using Core Graphics
        https://bugs.webkit.org/show_bug.cgi?id=100070

        Reviewed by Dirk Schulze.

        globalCompositeOperation is extended so it takes blend modes as well as compositing operators.
        This patch adds an implementation for the Core Graphics port.

        Tests: fast/canvas/canvas-blend-image.html
               fast/canvas/canvas-blend-solid.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): Passed blendMode to underlying layer.
        (WebCore::CanvasRenderingContext2D::drawImage): Passed blendMode to underlying drawImage call.
        (WebCore::CanvasRenderingContext2D::drawImageFromRect): Passed blendMode to platofrm layer.
        * html/canvas/CanvasRenderingContext2D.h:
        (CanvasRenderingContext2D): Eextended drawImage with new blendmode parameter.
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation): Passed blendmode to Core Graphics API.

2012-12-20  KyungTae Kim  <ktf.kim@samsung.com>

        Percentage min/max width replaced element may incorrectly rendered
        https://bugs.webkit.org/show_bug.cgi?id=105264

        Reviewed by Tony Chang.

        To make do not include percentage min width in preferred logical width calculation,
        because we cannot resolve it for preferred width.

        Test: fast/css/percent-min-width-img-src-change.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeReplacedLogicalWidth):
        Modify includeMaxWidth parameter to shouldComputePreferred.
        (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
        Modify includeMaxWidth parameter to shouldComputePreferred.
        If shouldComputePreferred is ComputePreferred, 
        don't use minLogicalWidth or maxLogicalWidth if they are percent type.
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
        Modify includeMaxWidth parameter to shouldComputePreferred.
        (WebCore::RenderReplaced::computeMaxPreferredLogicalWidth):
        Modify from set includeMaxWidth=false to set shouldComputePreferred=ComputePreferred.
        * rendering/RenderReplaced.h:
        (RenderReplaced):
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
        Modify includeMaxWidth parameter to shouldComputePreferred.
        * rendering/RenderSVGRoot.h:
        (RenderSVGRoot):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::computeReplacedLogicalWidth):
        Modify includeMaxWidth parameter to shouldComputePreferred.
        * rendering/RenderVideo.h:
        (RenderVideo):

2012-12-20  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r138191): Tests crash in ResourceRequest::setStorageSession
        https://bugs.webkit.org/show_bug.cgi?id=105563

        Reviewed by Brady Eidson.

        Partially fixes crashing http/tests/appcache/main-resource-redirect.html
        (but there is an unrelated regression affecting this test).

        * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
        * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
        The client can make the object get destoryed, protect it to avoid accessing deleted memory.

2012-12-20  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [EFL] [WebGL] [Wk2] Contents are not rendered properly.
        https://bugs.webkit.org/show_bug.cgi?id=104664

        Reviewed by Noam Rosenthal.

        WebGL pages that render more than one frame are broken. Only 1st
        frame comes to the UI side. All webgl repaint tests fail because
        of this.
        Specification of EXT_texture_from_pixmap extension here
        http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt
        says, that:
        "The contents of the texture after the drawable has been bound are defined
        as the result of all rendering that has completed before the call to
        glXBindTexImageEXT."
        It means that in order to get updates for every frame glXBindTexImageEXT has
        to be called on every frame update.

        Covered by existing fast/canavs/webgl/*repaint tests.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::isReceiver):
        (WebCore::GraphicsSurface::platformSwapBuffers):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):

2012-12-20  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Build break with latest EFL libraries.
        https://bugs.webkit.org/show_bug.cgi?id=104827

        Reviewed by Laszlo Gombos.

        The eo EFL package is introduced and evas and ecore use it since 1.8.
        While introducing Eo, EFL changed several structures of Evas and Ecore
        from own specific class to Eo.

        So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
        Ecore_Timer to build with latest EFL libraries.

        * PlatformEfl.cmake: Includes eo EFL library.
        * platform/Widget.h: Modified declaration of Evas and Evas_Object.
        In addition, removed unnecessary declaration.
        * platform/efl/EflScreenUtilities.h: Modified declaration of Evas.
        * platform/efl/RenderThemeEfl.h: Removed unnecessary declaration.
        * platform/graphics/Icon.h: Ditto.
        * platform/graphics/Image.h: Modified declaration of Evas and Evas_Object.

2012-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138270.
        http://trac.webkit.org/changeset/138270
        https://bugs.webkit.org/show_bug.cgi?id=105589

        Many media tests are failing/crashing intermittently, often
        pointing at WebCore::HTMLTrackElement::didCompleteLoad as
        culprit (Requested by dino_ on #webkit).

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTrackModeChanged):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement):
        (WebCore::HTMLTrackElement::insertedInto):
        (WebCore::HTMLTrackElement::parseAttribute):
        (WebCore::HTMLTrackElement::scheduleLoad):
        (WebCore::HTMLTrackElement::textTrackModeChanged):
        * html/HTMLTrackElement.h:
        * html/track/TextTrack.cpp:
        * html/track/TextTrack.h:

2012-12-20  Pratik Solanki  <psolanki@apple.com>

        Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
        https://bugs.webkit.org/show_bug.cgi?id=105578

        Reviewed by Alexey Proskuryakov.

        * loader/ResourceBuffer.cpp: Remove duplicate append() call that was under the wrong ifdef.
        * loader/ResourceBuffer.h:

2012-12-20  Elliott Sprehn  <esprehn@chromium.org>

        RenderBlock hit testing should ignore PseudoElements
        https://bugs.webkit.org/show_bug.cgi?id=105545

        Reviewed by Eric Seidel.

        Use nonPseudoNode() in hit testing code in RenderBlock and RenderBox so
        that when clicking on the box generated by a pseudo element we never
        generate a Position for the PseudoElement, but instead for the
        generating node.

        Test: fast/css-generated-content/block-and-box-hit-testing.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::positionForBox):
        (WebCore::isEditingBoundary):
        (WebCore::positionForPointRespectingEditingBoundaries):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionForPoint):

2012-12-20  Stephen Chenney  <schenney@chromium.org>

        SVG: <altglpyh> for a surrogate pair character in a ligature fails
        https://bugs.webkit.org/show_bug.cgi?id=102969

        Reviewed by Dirk Schulze.

        There are two issues with SVG <altglyph> tags applied to surrogate
        fonts, particularly when mixed with non-standard forms (arabic,
        vertical, etc.).

        First, there is an assertion that is invalid when an alt glyph is
        substituted for the surrogate, because the text chunk that is consumed
        by an alt glyph is the entire run, whereas we assert that a
        surrogate's chunk is length 2 regardless. That assertion has been
        removed.

        Second, when an arabic character or some other characters requiring a
        special form appears before the surrogate pair character inside the alt
        glyph tag, we reject the alt glyph because it is not compatible with the form.
        However, when we process the next character - the surrogate pair - we
        do accept the alt glyph. This breaks all the indexes because we have
        already consumed part of the run that is now considered the alt glyph.
        Chaos ensues. This patch forces us to always accept alt glyph
        characters (assuming we have some glyph to draw). This better matches
        the intent of the spec - if someone specifies an alt glyph they are
        explicitly stating which glyph they want used. We should not argue
        with the content author.

        Tests: svg/text/alt-glyph-for-surrogate-pair-expected.svg
               svg/text/alt-glyph-for-surrogate-pair.svg

        * rendering/svg/SVGTextLayoutEngine.cpp:
        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Fix some poor code.
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Remove an assert that is not always valid.
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection): Always return an altGlyph when found. Do not check it compatibility.

2012-12-20  Adam Klein  <adamk@chromium.org>

        Properly process <template> end tags when in TemplateContentsMode
        https://bugs.webkit.org/show_bug.cgi?id=105556

        Reviewed by Eric Seidel.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processEndTag): Take care of the FIXME and just call
        processTemplateEndTag() instead of incorrectly special-casing the end tag behavior in some cases.

2012-12-20  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL][Wk2] Replace HAVE(GLX) checks with USE(GLX)
        https://bugs.webkit.org/show_bug.cgi?id=105431

        Reviewed by Kenneth Rohde Christiansen.

        This patch changes the check HAVE(GLX) to USE(GLX).
        This would enable us to choose our preferred GL backend during build time.
        This patch also adds an additional api to query the shared buffer handle.
        Buffer handle is not same as gl surface and would depend on how the content is
        backed up.

        * platform/graphics/opengl/GLDefs.h:
        (WebCore):
        * platform/graphics/opengl/GLPlatformContext.cpp:
        (WebCore::GLPlatformContext::createContext):
        (WebCore::GLPlatformContext::createOffScreenContext):
        (WebCore::GLPlatformContext::createCurrentContextWrapper):
        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::createOffscreenSurface):
        (WebCore::GLPlatformSurface::createTransportSurface):
        (WebCore::GLPlatformSurface::GLPlatformSurface):
        (WebCore::GLPlatformSurface::handle):
        (WebCore):
        (WebCore::GLPlatformSurface::drawable):
        * platform/graphics/opengl/GLPlatformSurface.h:
        (GLPlatformSurface):
        * platform/graphics/surfaces/glx/GLXContext.cpp:
        * platform/graphics/surfaces/glx/GLXContext.h:
        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        (WebCore::GLXTransportSurface::destroy):
        (WebCore::GLXPBuffer::initialize):
        (WebCore::GLXPBuffer::freeResources):
        * platform/graphics/surfaces/glx/GLXSurface.h:
        * platform/graphics/surfaces/glx/GLXWindowResources.h:
        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
        (WebCore::X11OffScreenWindow::setGeometry):
        (WebCore::X11OffScreenWindow::createOffscreenWindow):
        (WebCore::X11OffScreenWindow::destroyWindow):
        * platform/graphics/surfaces/glx/X11WindowResources.h:
        (WebCore):
        (DummySharedResources):
        (WebCore::DummySharedResources::create):
        (WebCore::DummySharedResources::nativeDisplay):
        (WebCore::DummySharedResources::pBufferContextConfig):
        (WebCore::DummySharedResources::surfaceContextConfig):
        (WebCore::DummySharedResources::DummySharedResources):
        (WebCore::DummySharedResources::~DummySharedResources):

2012-12-20  Emil A Eklund  <eae@chromium.org>

        [flexbox] Fix handling of very large flex grow/shrink values
        https://bugs.webkit.org/show_bug.cgi?id=105579

        Reviewed by Tony Chang.

        Add isfinite to childSize calculation in RenderFlexibleBox::
        resolveFlexibleLengths to avoid overflow.

        Covered by css3/flexbox/flex-algorithm.html.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
        Check if value is finite before adding to childSize.

2012-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138265.
        http://trac.webkit.org/changeset/138265
        https://bugs.webkit.org/show_bug.cgi?id=105586

        Accidentally committed extra code that is not reviewed and
        shouldn't go with this commit. (Requested by ostap on
        #webkit).

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurface::platformSwapBuffers):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):

2012-12-20  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r133820?): SimplifyMarkupTest API test asserts
        https://bugs.webkit.org/show_bug.cgi?id=105370

        Reviewed by Simon Fraser.

        The bug was caused by SimplifyMarkupCommand::doApply calling removeNodePreservingChildren on nodes
        that have already been removed. We normally check this condition in pruneSubsequentAncestorsToRemove
        but we weren't checking it when there were no ancestor to remove because we early exited in that case.

        Fixed the bug by doing the early exit for when the node's parent had already been removed first.

        Test: TestWebKitAPI/Tests/mac/SimplifyMarkup.mm

        * editing/SimplifyMarkupCommand.cpp:
        (WebCore::SimplifyMarkupCommand::doApply):
        (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Also removed an unused variable
        nodeAfterHighestAncestorToRemove.

2012-12-20  Antti Koivisto  <antti@apple.com>

        Font description not synchronized correctly on orientation affecting property changes
        https://bugs.webkit.org/show_bug.cgi?id=105533

        Reviewed by Enrica Casucci.

        In StyleResolver checkForOrientationChange() function checks if the new computed orientation differs from the parent
        orientation and updates the style's font description only if it does. This is not correct as equal values do not guarantee
        the new font description is actually up to date. We can leave the function with the computed orientation and the font
        description still out of sync.
        
        Fix by bailing out fast only if the font description is already in sync.
        
        No layout test yet, verified with a test app.

        * css/StyleResolver.cpp:
        (WebCore::checkForOrientationChange):
        (WebCore::StyleResolver::updateFont):

2012-12-20  Ryan Sleevi  <rsleevi@chromium.org>

        window.crypto.getRandomValues should return the input ArrayBufferView
        https://bugs.webkit.org/show_bug.cgi?id=104845

        The W3C Web Crypto API FPWD, as well as the WHATWG February 2012 draft,
        define crypto.getRandomValues() as returning the input ArrayBufferView,
        to allow function call chaining. Update the implementation to match
        the current spec, rather than the old spec of void/undefined.

        Reviewed by Kentaro Hara.

        Test: security/crypto-random-values-types.html

        * GNUmakefile.list.am:
        * Target.pri:
        * UseJSC.cmake:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSCryptoCustom.cpp: Added.
        (WebCore):
        (WebCore::JSCrypto::getRandomValues):
        Added custom getRandomValues implementation so that the input wrapped
        ArrayBufferView can be returned directly to the caller. This is to
        preserve the underlying type and indexing accessor for the TypedArray
        subclass.
        * bindings/v8/custom/V8CryptoCustom.cpp: Added.
        (WebCore):
        (WebCore::V8Crypto::getRandomValuesCallback):
        Added custom getRandomValues implementation so that the input wrapped
        ArrayBufferView can be returned directly to the caller. This is to
        preserve the underlying type and indexing accessor for the TypedArray
        subclass.
        * page/Crypto.idl:

2012-12-20  Erik Arvidsson  <arv@chromium.org>

        CodeGen: Make [Reflect] use getIdAttribute and getNameAttribute
        https://bugs.webkit.org/show_bug.cgi?id=105549

        Reviewed by Andreas Kling.

        Let the codegen use getIdAttribute and getNameAttribute when we know the attribute
        is HTMLNames::idAttr or HTMLNames::nameAttr respectively. The more specialized functions
        do not search for the attribute if it knows that the element does not have that attribute
        speeding up the case where id or name are not present.

        This improves Dromaeo/dom-attr by 5% and Bindings/undefined-id-getter by 2% 

        No new tests. No change in behavior

        * bindings/scripts/CodeGenerator.pm:

2012-12-20  Erik Arvidsson  <arv@chromium.org>

        fastAttributeLookupAllowed: classAttr is only animatable by SVG styled elements
        https://bugs.webkit.org/show_bug.cgi?id=105565

        Reviewed by Eric Seidel.

        When it comes to determining if we can use fastGetAttribute we should not penalize
        all classAttr access just because some SVG styled elements does funky things with
        className.

        This makes classAttr considered animatable only for styled SVG elements.

        No new tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        * dom/Element.cpp:
        * svg/SVGElement.cpp:
        * svg/SVGElement.h:

2012-12-20  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Remove ParentChange in TextureMapperLayer.
        https://bugs.webkit.org/show_bug.cgi?id=105494

        Reviewed by Noam Rosenthal.

        ParentChange is useless, because ChildrenChange is enough. In addition,
        GraphicsLayer uses setParent() method internally. This patch copies
        GraphicsLayer::setChildren() into TextureMapperLayer::setChildren().

        No new tests. Covered by existing tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore):
        (WebCore::GraphicsLayerTextureMapper::setChildren):
          Match the similar style of replaceChild().
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
        (WebCore::TextureMapperLayer::setChildren):
          Copied from GraphicsLayer::setChildren().
        (WebCore):
        (WebCore::TextureMapperLayer::addChild):
          Copied from GraphicsLayer::addChild().
        (WebCore::TextureMapperLayer::removeFromParent):
          Copied from GraphicsLayer::removeFromParent().
        (WebCore::TextureMapperLayer::removeAllChildren):
          Copied from GraphicsLayer::removeAllChildren().
        * platform/graphics/texmap/TextureMapperLayer.h:
        (TextureMapperLayer):

2012-12-20  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Cursor and IndexWriter cleanup for refactor
        https://bugs.webkit.org/show_bug.cgi?id=105449

        Reviewed by Tony Chang.

        This is a cleanup of some code to make the refactor that is coming
        in https://bugs.webkit.org/show_bug.cgi?id=102741 cleaner. Some
        CursorType assertions have been removed because the code will be
        used in more generic circumstances in a future patch.

        The previously-private IndexWriter has been pulled into
        IDBObjectStoreBackendImpl and made to just use IDB*Metadata
        so it can be reused later.

        No new tests as this does not change the logic of executing code.

        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::create):
        (WebCore::IDBCursorBackendImpl::value):
        (IDBCursorBackendImpl):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::OpenIndexCursorOperation):
        (IDBIndexBackendImpl::OpenIndexCursorOperation):
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::verifyIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::addingKeyAllowed):
        (WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IndexWriter):
        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::IDBRequest):
        (WebCore::IDBRequest::setCursorDetails):
        (WebCore::IDBRequest::setResultCursor):
        (WebCore::IDBRequest::onSuccess):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):

2012-12-20  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r138191): Tests fail in ResourceRequest::setStorageSession
        https://bugs.webkit.org/show_bug.cgi?id=105563

        Reviewed by Sam Weinig.

        * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
        * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
        Don't try to appky a session if client canceled the request by setting it ot a null one.

        * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::setStorageSession):
        * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::setStorageSession):
        Update platform request, so that the session does not get lost once it's updated later.

2012-12-20  Nate Chapin  <japhet@chromium.org>

        Rename shouldBufferData to dataBufferingPolicy
        https://bugs.webkit.org/show_bug.cgi?id=105450

        Reviewed by Alexey Proskuryakov.

        No new tests, simple rename.

        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::createDocumentStructure):
        * html/PluginDocument.cpp:
        (WebCore::PluginDocumentParser::appendBytes):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::didReceiveData):
        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::loadRequest):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::setDataBufferingPolicy):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::setDataBufferingPolicy):
        (WebCore::ResourceLoader::addData):
        (WebCore::ResourceLoader::willStopBufferingData):
        * loader/ResourceLoader.h:
        (ResourceLoader):
        * loader/ResourceLoaderOptions.h:
        (WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
        (ResourceLoaderOptions):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::data):
        (WebCore::CachedRawResource::setDataBufferingPolicy):
        (WebCore::CachedRawResource::canReuse):
        * loader/cache/CachedRawResource.h:
        (CachedRawResource):
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::dataBufferingPolicy):
        * loader/mac/ResourceLoaderMac.mm:
        (WebCore::ResourceLoader::didReceiveDataArray):
        * page/EventSource.cpp:
        (WebCore::EventSource::connect):

2012-12-19  Dean Jackson  <dino@apple.com>

        Track menu in wrong location when fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=105234

        Reviewed by Eric Carlson.

        Add a rule to position the captions menu in the correct location
        when the <video> is fullscreen. Also a drive-by removal of unnecessary
        CSS selectors, and changing an encoded PNG into an SVG.

        * css/fullscreenQuickTime.css:
        (video:-webkit-full-screen::-webkit-media-controls-closed-captions-container): Add a rule to position
        the menu when in fullscreen.
        * css/mediaControlsQuickTime.css: Remove the unnecessary <audio> selectors.
        (video::-webkit-media-controls-toggle-closed-captions-button):
        (video::-webkit-media-controls-closed-captions-container):
        (video::-webkit-media-controls-closed-captions-track-list):

2012-12-19  Dean Jackson  <dino@apple.com>

        Follow WebVTT line breaking rules
        https://bugs.webkit.org/show_bug.cgi?id=105496

        Reviewed by Eric Carlson.

        WebVTT requires that captions never overflow their containers. In other
        words, that it is ok to break within words rather than hide content.
        Implement this by using CSS's word-break property.

        Test: media/track/track-word-breaking.html

        * css/mediaControls.css:
        (video::-webkit-media-text-track-container): Add word-break.
        * css/mediaControlsQuickTime.css: Drive-by cleanup to make sure selection doesn't happen.
        (audio::-webkit-media-controls-closed-captions-container, video::-webkit-media-controls-closed-captions-container):
        (audio::-webkit-media-controls-closed-captions-track-list, video::-webkit-media-controls-closed-captions-track-list):

2012-12-20  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] 304 responses should show up in the timing buffer
        https://bugs.webkit.org/show_bug.cgi?id=105490

        Reviewed by Tony Gentilcore.

        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_cached.html

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::loadDone):

2012-12-19  Simon Fraser  <simon.fraser@apple.com>

        Lots of sticky tests failing in WK2
        https://bugs.webkit.org/show_bug.cgi?id=105464

        Reviewed by Brady Eidson.

        Fixing this bug altered the timing of InternalSettings::Backup()
        and restoreTo(), such that 'canStartMedia' on Page would get saved as false,
        and then restored as false, which breaks all media tests.
        
        'canStartMedia' is set to false initially by the WebPage constructor, and is also
        set to false when the WKView leaves the window, so treating it like other Settings
        that can be saved and restored is unreliable, as seen here. It's easier and simpler
        to just always reset it to 'true' between tests.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::InternalSettings):
        (WebCore::InternalSettings::reset):
        * testing/InternalSettings.h:
        (Backup):

2012-12-20  Erik Arvidsson  <arv@chromium.org>

        REGRESSION(r138263): Don't use fastGetAttribute for HTMLNames::classAttr because it breaks on SVGElement
        https://bugs.webkit.org/show_bug.cgi?id=105555

        Reviewed by Tony Chang.

        The code generated generated code that uses fastGetAttribute for the className WebIDL attribute getter.
        However, this attribute is animatable in SVG so we cannot use the fast function for it.

        No new tests. The assert is no longer hit.

        * bindings/scripts/CodeGenerator.pm:

2012-12-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API
        https://bugs.webkit.org/show_bug.cgi?id=104482

        Reviewed by Martin Robinson.

        * platform/network/soup/ResourceError.h:
        (WebCore::ResourceError::setTLSErrors): Set the TLS error flags.
        (WebCore::ResourceError::setCertificate): Set the certificate.
        * platform/network/soup/ResourceErrorSoup.cpp:
        (WebCore::ResourceError::tlsError): Set the given TLS errors and
        certificate to the ResourceError.
        (WebCore::ResourceError::platformCopy): Copy also the TLS errors
        and the certificate.
        (WebCore::ResourceError::platformCompare): Compare also the TLS
        errors.

2012-12-20  Antoine Quint  <graouts@apple.com>

        onload callback for <track> element attached to <video> does not fire
        https://bugs.webkit.org/show_bug.cgi?id=103258

        Reviewed by Eric Carlson.

        We now correctly implement the track processing model per the latest spec at
        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#start-the-track-processing-model.
        
        For a <track> to load, three conditions must be met:
        
        1. it must have a non-empty src
        2. it must have a mode other than "disabled" (the default)
        3. it must have a parent media element
        
        We used to only check if we were able to load upon setting the track's src,
        whereas a change of any of those conditions should have done this, which this
        patch now correctly implements.
        
        We also correctly implement the load model asynchronously after step 4, per
        the spec, hence the split of the code previously entirely contained in
        HTMLTrackElement::scheduleLoad() in another method fired on a timer.

        Test: media/track/track-element-load-event.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTrackModeChanged):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement):
        (WebCore::HTMLTrackElement::insertedInto):
        (WebCore::HTMLTrackElement::parseAttribute):
        (WebCore::HTMLTrackElement::scheduleLoad):
        (WebCore):
        (WebCore::HTMLTrackElement::loadTimerFired):
        (WebCore::HTMLTrackElement::textTrackModeChanged):
        * html/HTMLTrackElement.h:
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::removeAllCues):
        (WebCore):
        * html/track/TextTrack.h:
        (TextTrack):

2012-12-20  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Layout test showing delete database getting two blocked events
        https://bugs.webkit.org/show_bug.cgi?id=92674

        Reviewed by Tony Chang.

        Match the steps specified behavior for deleteDatabase() in the spec: versionchange/blocked
        events fire if necessary, then waits until a condition is satisfied before continuing with
        the steps to delete the database. The bug was caused by retrying the full call again. Events
        are also now sent out immediately when a "versionchange" transaction is running, rather
        than entering a limbo state - again, the new behavior matches the spec more accurately.

        Tests: storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html
               storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html
               storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html
               storage/indexeddb/intversion-gated-on-delete.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase): First half of the steps.
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::isDeleteDatabaseBlocked): Pull out condition test.
        (WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal): Second half of the of steps.
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):

2012-12-20  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>

        [EFL] [WebGL] [Wk2] Contents are not rendered properly.
        https://bugs.webkit.org/show_bug.cgi?id=104664

        Reviewed by Noam Rosenthal.

        WebGL pages that render more than one frame are broken. Only 1st
        frame comes to the UI side. All webgl repaint tests fail because
        of this.
        Specification of EXT_texture_from_pixmap extension here
        http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt
        says, that:
        "The contents of the texture after the drawable has been bound are defined
        as the result of all rendering that has completed before the call to
        glXBindTexImageEXT."
        It means that in order to get updates for every frame glXBindTexImageEXT has
        to be called on every frame update.

        Covered by existing fast/canavs/webgl/*repaint tests.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::isReceiver):
        (WebCore::GraphicsSurface::platformSwapBuffers):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):

2012-12-20  Erik Arvidsson  <arv@chromium.org>

        CodeGen: Make [Reflect] use fastGetAttribute and fastHasAttribute
        https://bugs.webkit.org/show_bug.cgi?id=105540

        Reviewed by Andreas Kling.

        Currently the codegen generates code that use getAttribute and hasAttribute. We can use
        fastGetAttribute and fastHasAttribute when we use a non SVG animated attribute and not
        HTML::styleAttr.

        This improves Bindings/id-getter by 16% and Dromaeo/dom-attr by 21%.

        No new tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/V8/V8TestObj.cpp:

2012-12-20  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry]Change fullscreen back button size
        https://bugs.webkit.org/show_bug.cgi?id=105541

        Reviewed by Rob Buis.

        Internally Reviewed by John Griggs.
        Resize fullscreen mode back button size to meet browser back button size.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore):
        (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):

2012-12-20  Dominic Mazzoni  <dmazzoni@google.com>

        AX: support clickPoint in DRT for chromium
        https://bugs.webkit.org/show_bug.cgi?id=97359

        Reviewed by Chris Fleizach.

        When computing the accessible bounding box of an
        SVG root, be sure to call a method that uses transforms,
        otherwise an assertion fails.

        Newly unskipped tests: accessibility/svg-bounds.html and
        accessibility/svg-remote-element.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::boundingBoxRect):

2012-12-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [Qt]REGRESSION(r138222): It made fast/forms/number/number-spinbutton-click-in-iframe.html crash
        https://bugs.webkit.org/show_bug.cgi?id=105529

        Reviewed by Nate Chapin.

        Make sure assignIdentifierToInitialRequest() and
        dispatchWillSendRequest() are called before all other
        notification callbacks for the substitute data.

        Fixes a crash in fast/forms/number/number-spinbutton-click-in-iframe.html.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::load): Call
        handleSubstituteDataLoadSoon() after assigning the substitute data
        identifier.

2012-12-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Add minimum/maximum value to DateTimeEditElement::LayoutParameters
        https://bugs.webkit.org/show_bug.cgi?id=105510

        Reviewed by Kent Tamura.

        Add two DateComponents fields, minimum and maximum, to DateTimeEditElement::LayoutParameters, replacing minimumYear and maximumYear.
        They will be used to limit selectable values of month, day, etc.

        No new tests. No behavior change.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Removed fullYear().
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType): Ditto.
        * html/DateInputType.cpp:
        (WebCore::DateInputType::setupLayoutParameters): Populates minimum/maximum.
        * html/DateTimeInputType.cpp:
        (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
        * html/DateTimeLocalInputType.cpp:
        (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
        * html/MonthInputType.cpp:
        (WebCore::MonthInputType::setupLayoutParameters): Ditto.
        * html/WeekInputType.cpp:
        (WebCore::WeekInputType::setupLayoutParameters): Ditto.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField): Replace the usage of minimumYear/maximumYear with minimum/maximum DateComponents.
        * html/shadow/DateTimeEditElement.h:
        (LayoutParameters): Removed minimumYear, maximumYear, and undefinedYear(), and added minimum and maximum fields.
        (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):

2012-12-20  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Remove the --enable-unstable-features configuration option
        https://bugs.webkit.org/show_bug.cgi?id=105327

        Reviewed by Martin Robinson.

        Remove the ENABLE_UNSTABLE_FEATURES guards in various GNUmakefiles now that
        the configuration option is removed.

        No new tests - no new testable functionality.

        * GNUmakefile.am: Remove the ENABLE_UNSTABLE_FEATURES guards in GNUmakefile.am
        where they were used to override certain feature define values in case of a release build.
        * GNUmakefile.features.am.in: Adjust the default value for the feature defines that were
        previously overriden in release builds. This feature define list will eventually represent
        feature status in release builds with overriding being done through build-webkit.
        * bindings/gobject/GNUmakefile.am: Move the DOM bindings targets that were previously guarded
        by the ENABLE_UNSTABLE_FEATURES guards to the common listing of the video-dependent DOM bindings.

2012-12-20  Florin Malita  <fmalita@chromium.org>

        Incorrect color space conversion for FEImage
        https://bugs.webkit.org/show_bug.cgi?id=105437

        Reviewed by Dirk Schulze.

        When no color-interpolation-filters property is specified, SVG filters are assumed to
        operate in LinearRGB color space (http://www.w3.org/TR/SVG/filters.html#FilterPrimitivesOverviewIntro).
        Currently, FilterEffect relies on filters generating results in the same color space they
        are requested to use (LinearRGB by default) - but this is not true for FEImage as its
        result is always a DeviceRGB image buffer. Hence, in FEImage's case, the filter chain
        performs an invalid LinearRGB->DeviceRGB conversion at the end (for an image buffer already
        encoded in DeviceRGB).

        This patch introduces a mechanism for filters to override the requested result color space
        and updates FEImage to always mark its result as DeviceRGB. If a dependent filter requires
        input in a different color space, FilterEffect::apply() already handles the conversion.

        No new tests - existing tests cover this extensively, after rebaseline.

        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::FilterEffect::transformResultColorSpace):
        Minor cleanup: asImageBuffer() already handles this logic.

        * platform/graphics/filters/FilterEffect.h:
        (WebCore::FilterEffect::setResultColorSpace):
        (FilterEffect):
        New method for overriding the result color space.

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::apply):
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::postApplyResource):
        Do not perform an explicit conversion in these places, as the result color space may be
        different from the requested color space. Let FilterEffect::transformResultColorSpace()
        figure it out.

        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::platformApplySoftware):
        FEImage results are always ColorSpaceDeviceRGB.

2012-12-20  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL] MiniBrowser does not play Infinite Gangnam Style
        https://bugs.webkit.org/show_bug.cgi?id=103531

        Reviewed by Kenneth Rohde Christiansen.

        Specifying additional define to avoid deprecation warning.

        No new tests, compile time change which doesn't affect behavior.

        * PlatformEfl.cmake:

2012-12-19  Simon Hausmann  <simon.hausmann@digia.com>, Jedrzej Nowacki <jedrzej.nowacki@digia.com>

        [Qt] JS bridge does not transmit QVariants anymore in Qt5
        https://bugs.webkit.org/show_bug.cgi?id=104540

        Reviewed by Kenneth Rohde Christiansen.

        A data corruption exists in the QObject bridge when calling slots that
        take a QVariant.

        The calling convention for slots is that the void* parameter array must
        contain pointers to the actually required destination argument type. If
        a function takes an int for example, the corresponding entry in the
        void* parameter array must be a pointer to an int that the moc
        generated code then can "safely" cast to an int* and dereference.
        Similarly if the function takes a QVariant it must be a pointer to a
        QVariant.

        We implement this calling convention by constructing QVariants of the
        requested parameter types and passing the value of data() into the
        void* parameter array. This works fine for all types except if the
        requested type is a QVariant. In that case data() will _not_ return a
        pointer that can later be safely casted to a QVariant pointer and
        dereferenced. Instead we must use the address of our variant to ensure
        a working cast.

        Our auto tests cover this case, but they worked by accident because the
        provided pointer when casted to a QVariant happens to have the correct
        type id that doesn't produce the warning seen in the test case of the
        provided example and the unit test just copies the QVariant and thus
        pointer.

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::QtMethodMatchType::typeId): Replace string based meta
        type id determination of QVariant with a quicker table lookup.
        (JSC::Bindings::findMethodIndex): Remember the chosen (requested) types
        and pass the pointer to the QVariant instead of its data() pointer if
        requested.
        (JSC::Bindings::QtRuntimeMethod::call): Fixed determination of whether
        we need to convert a return value or not solely based on the return
        type _specified_ in the meta method instead of the variant value
        returned. The latter is not sufficient because a slot can return an
        invalid variant, which is not the same as returning void. This was
        triggered by an unit test that accidentally passed due to this memory
        corruption in the first place.

2012-12-20  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: extract native heap graph representation into a separate file
        https://bugs.webkit.org/show_bug.cgi?id=105524

        Reviewed by Alexander Pavlov.

        Moved native heap graph parser into NativeHeapGraph.js, renamed NativeHeapGraphNode to NativeHeapGraph.Node
        and NativeHeapGraphEdge to NativeHeapGraph.Edge
        Removed unused pie chart view.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution): fixed optional parameter handling
        * WebCore.gypi:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * inspector/compile-front-end.py:
        * inspector/front-end/NativeHeapGraph.js: Added.
        (WebInspector.NativeHeapGraph):
        (WebInspector.NativeHeapGraph.prototype.rootNodes):
        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
        (WebInspector.NativeHeapGraph.prototype._addDummyNode):
        (WebInspector.NativeHeapGraph.Edge):
        (WebInspector.NativeHeapGraph.Edge.prototype.type):
        (WebInspector.NativeHeapGraph.Edge.prototype.name):
        (WebInspector.NativeHeapGraph.Edge.prototype.target):
        (WebInspector.NativeHeapGraph.Edge.prototype._getStringField):
        (WebInspector.NativeHeapGraph.Edge.prototype.toString):
        (WebInspector.NativeHeapGraph.Node):
        (WebInspector.NativeHeapGraph.Node.prototype.id):
        (WebInspector.NativeHeapGraph.Node.prototype.type):
        (WebInspector.NativeHeapGraph.Node.prototype.size):
        (WebInspector.NativeHeapGraph.Node.prototype.className):
        (WebInspector.NativeHeapGraph.Node.prototype.name):
        (WebInspector.NativeHeapGraph.Node.prototype.hasReferencedNodes):
        (WebInspector.NativeHeapGraph.Node.prototype.referencedNodes):
        (WebInspector.NativeHeapGraph.Node.prototype.outgoingEdges):
        (WebInspector.NativeHeapGraph.Node.prototype.targetOfEdge):
        (WebInspector.NativeHeapGraph.Node.prototype.targetsOfAllEdges):
        (WebInspector.NativeHeapGraph.Node.prototype._firstEdgePoistion):
        (WebInspector.NativeHeapGraph.Node.prototype._afterLastEdgePosition):
        (WebInspector.NativeHeapGraph.Node.prototype._getStringField):
        (WebInspector.NativeHeapGraph.Node.prototype.toString):
        * inspector/front-end/NativeMemorySnapshotView.js:
        * inspector/front-end/ProfilesPanel.js:
        * inspector/front-end/WebKit.qrc:

2012-12-20  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: enhance short-records filter.
        https://bugs.webkit.org/show_bug.cgi?id=101749

        Reviewed by Pavel Feldman.

        Currently filter could be "on" (accepting records longer than 15ms) or
        "off" (accepting all records). Adding some options between 0ms and 15ms
        will make this feature much more useful.

        Additional changes:
        - removed hardcoded size constant WebInspector.StatusBarComboBox.width

        * English.lproj/localizedStrings.js: Added new / removed orphan strings.
        * inspector/front-end/ProfilesPanel.js: Changed offset calculation.
        * inspector/front-end/TimelineOverviewPane.js: Enhanced filter.
        * inspector/front-end/TimelinePanel.js: Replaced button with combobox.
        (WebInspector.TimelineIsLongFilter): Enhanced filter.
        * inspector/front-end/TimelinePresentationModel.js:
        Removed Record "isLong" method.
        * inspector/front-end/timelinePanel.css: Removed orphan styles.

2012-12-20  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [CPU Profile] Idle time is always 0
        https://bugs.webkit.org/show_bug.cgi?id=105509

        Reviewed by Pavel Feldman.

        Fix: pass correct profile object to method.

        * inspector/front-end/CPUProfileView.js:
        (WebInspector.CPUProfileView.profileCallback):
        (WebInspector.CPUProfileView.prototype._injectIdleTimeNode):

2012-12-20  Andrey Lushnikov  <lushnikov@chromium.com>

        Web Inspector: fix |_repaintAll| behaviour of a DefaultTextEditor
        https://bugs.webkit.org/show_bug.cgi?id=105429

        Reviewed by Pavel Feldman.

        Override |_repainAll| method in TextEditorMainPanel and manually
        repaint visible chunks.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine): Call |_repaintAll| method because |expand()| does not do any repaints anymore.
        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll): Return |false| in case of fast return, and |true| otherwise.
        (WebInspector.TextEditorMainPanel.prototype._repaintAll): Added.
        (WebInspector.TextEditorMainChunk.prototype.expand): Remove painting operations.

2012-12-19  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: introduce Page.captureScreenshot
        https://bugs.webkit.org/show_bug.cgi?id=105315

        Reviewed by Yury Semikhatsky.

        It will be primarily used by the automation clients, but maybe we find a good place
        for it in the front-end as well.

        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::captureScreenshot):
        (InspectorClient):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::captureScreenshot):
        (WebCore):
        * inspector/InspectorPageAgent.h:

2012-12-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        Make order iterator member stack allocated in RenderFlexibleBox
        https://bugs.webkit.org/show_bug.cgi?id=104366

        Reviewed by Tony Chang.

        It avoids a heap allocation during layout.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::OrderIterator::OrderIterator):
        (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
        (WebCore::RenderFlexibleBox::OrderIterator::first):
        (WebCore::RenderFlexibleBox::OrderIterator::next):
        (WebCore::RenderFlexibleBox::OrderIterator::reset):
        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
        (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
        (WebCore::RenderFlexibleBox::layoutBlock):
        (WebCore::RenderFlexibleBox::appendChildFrameRects):
        (WebCore::RenderFlexibleBox::repaintChildrenDuringLayoutIfMoved):
        (WebCore::RenderFlexibleBox::paintChildren):
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::RenderFlexibleBox::computeNextFlexLine):
        (WebCore::RenderFlexibleBox::alignFlexLines):
        (WebCore::RenderFlexibleBox::alignChildren):
        (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
        (WebCore::RenderFlexibleBox::flipForWrapReverse):
        * rendering/RenderFlexibleBox.h:
        (OrderIterator):
        (WebCore::RenderFlexibleBox::OrderIterator::currentChild):
        (RenderFlexibleBox):

2012-12-20  Huang Dongsung  <luxtella@company100.net>

        Remove GraphicsLayer::setGraphicsLayerFactory().
        https://bugs.webkit.org/show_bug.cgi?id=105503

        Reviewed by Kenneth Rohde Christiansen.

        We don't need GraphicsLayer::setGraphicsLayerFactory() anymore. After r130302,
        we have used a graphics layer factory explicitly.

        No new tests. Refactoring only.

        * platform/graphics/GraphicsLayer.cpp:
        * platform/graphics/GraphicsLayer.h:
        (GraphicsLayer):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayer::create):

2012-12-20  Dominik Röttsches  <dominik.rottsches@intel.com>

        [WK2] WebAudio WKTR support
        https://bugs.webkit.org/show_bug.cgi?id=95084

        Reviewed by Kenneth Rohde Christiansen.

        Mac build fixes for adding WebAudio WKTR support.

        No new tests, enables audio testing using WebKitTestRunner.

        * WebCore.exp.in: toUint8Array symbol exported.
        * WebCore.xcodeproj/project.pbxproj: JSUint8Array.h and JSArrayBufferView.h headers made available as private headers.

2012-12-20  Patrick Gansterer  <paroga@webkit.org>

        Build fix for WinCE after r137534.

        * inspector/InspectorInstrumentation.h:
        (WebCore):

2012-12-19  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: deny access from injected script to nodes from document with another origin
        https://bugs.webkit.org/show_bug.cgi?id=105423

        Reviewed by Pavel Feldman.

        Check that calling context can access the document inspected node belong to
        before returning JS wrapper for the node.

        Test: http/tests/inspector-protocol/access-inspected-object.html

        * bindings/js/JSInjectedScriptHostCustom.cpp:
        (WebCore::JSInjectedScriptHost::inspectedObject):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::InjectedScriptHost::nodeAsScriptValue):

2012-12-19  Nico Weber  <thakis@chromium.org>

        Remove slighly confusing "} if" pattern
        https://bugs.webkit.org/show_bug.cgi?id=105492

        Reviewed by Andreas Kling.

        ADVANCE_TO ends in a goto statement, so this doesn't change behavior.

        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::nextToken):

2012-12-19  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Remove idbFactory from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=105460

        Reviewed by Darin Fisher.

        Part of a larger refactoring series; see tracking bug 82948.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/chromium/PlatformSupport.h: Removed.
        * storage/chromium: Removed.
        * storage/chromium/IDBFactoryBackendInterface.cpp: Removed.

2012-12-19  Eric Carlson  <eric.carlson@apple.com>

        Crash in TextTrack::trackIndexRelativeToRenderedTracks()
        https://bugs.webkit.org/show_bug.cgi?id=105371

        Reviewed by Simon Fraser.

        Add an RAII object to manage text track update blocking, use it to always process the 
        current cues to ensure that cues from a track that is deleted are removed from the 
        shadow DOM before the next layout.

        No new tests, this fixes a crash in media/video-controls-captions-trackmenu.html.

        * html/HTMLMediaElement.cpp:
        (WebCore::TrackDisplayUpdateScope::TrackDisplayUpdateScope): New, call beginIgnoringTrackDisplayUpdateRequests.
        (WebCore::TrackDisplayUpdateScope::~TrackDisplayUpdateScope): New, call endIgnoringTrackDisplayUpdateRequests.
        (WebCore::HTMLMediaElement::beginIgnoringTrackDisplayUpdateRequests):
        (WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests): Call updateActiveTextTrackCues
            when the ignore count reaches zero.
        (WebCore::HTMLMediaElement::textTrackAddCues): Use TrackDisplayUpdateScope instead of calling 
            beginIgnoringTrackDisplayUpdateRequests and endIgnoringTrackDisplayUpdateRequests directly.
        (WebCore::HTMLMediaElement::textTrackRemoveCues): Ditto.
        (WebCore::HTMLMediaElement::removeTrack): Ditto.
        (WebCore::HTMLMediaElement::removeAllInbandTracks): Ditto.
        (WebCore::HTMLMediaElement::didRemoveTrack): Ditto. Call removeTrack.
        * html/HTMLMediaElement.h: Declare TrackDisplayUpdateScope as a friend of HTMLMediaElement so it
            can call protected methods.

2012-12-19  Nate Chapin  <japhet@chromium.org>

        REGRESSION(r137607): resource load client callbacks are not called for the main resource when loading HTML string
        https://bugs.webkit.org/show_bug.cgi?id=105330

        Reviewed by Brady Eidson.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::responseReceived):
        (WebCore::MainResourceLoader::dataReceived):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::load):
        (WebCore::MainResourceLoader::identifier):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):

2012-12-19  Cosmin Truta  <ctruta@rim.com>

        [BlackBerry] RSS reader mangles UTF-8
        https://bugs.webkit.org/show_bug.cgi?id=105440

        RIM PR 235099

        Reviewed by Yong Li.
        Reviewed internally by Liam Quinn.

        The HTML string built from RSS parse data is encoded in UTF-8,
        and it should not be converted to UTF-8 repeatedly.

        * platform/network/blackberry/rss/RSSFilterStream.cpp:
        (WebCore::RSSFilterStream::convertContentToHtml):
        * platform/network/blackberry/rss/RSSGenerator.cpp:
        (WebCore::RSSGenerator::generateHtml):

2012-12-19  Jon Lee  <jonlee@apple.com>

        Leak in StringImpl::createCFString()
        https://bugs.webkit.org/show_bug.cgi?id=105485
        <rdar://problem/12801963>

        Reviewed by Anders Carlsson.

        * platform/text/cf/StringImplCF.cpp:
        (WTF::StringImpl::createCFString): Missing adoptCF()'s.

2012-12-19  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/12890242> [WK2 NetworkProcess] Client doesn't receive SSL certificates
        https://bugs.webkit.org/show_bug.cgi?id=105467

        Reviewed by Brady Eidson.

        Implement a way to store certificate chain in ResourceResponse separately from
        NSURLResponse. There is no way to re-add it to a deserialized NSURLResponse.

        * WebCore.exp.in:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        * platform/network/cf/ResourceResponse.h:
        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::setCertificateChain):
        (WebCore::ResourceResponse::certificateChain):

2012-12-19  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed. Add new strings to GTK+'s implementation of
        LocalizedStrings, using glib's context-aware macro.

        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore):
        (WebCore::textTrackClosedCaptionsText):
        (WebCore::textTrackSubtitlesText):
        (WebCore::textTrackOffText):
        (WebCore::textTrackNoLabelText):

2012-12-18  James Simonsen  <simonjam@chromium.org>

        Set the original resource's response even on a 304
        https://bugs.webkit.org/show_bug.cgi?id=105373

        Reviewed by Nate Chapin.

        The existing setResponse was renamed to responseReceived to better reflect what it does. A new
        setResponse was added that only sets the response. This is used in the 304 case.

        No new tests. A new Resource Timing test will depend on this soon.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::responseReceived):
        * loader/cache/CachedImage.h:
        (CachedImage):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::responseReceived):
        * loader/cache/CachedRawResource.h:
        (CachedRawResource):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::responseReceived):
        * loader/cache/CachedResource.h:
        (CachedResource):
        (WebCore::CachedResource::setResponse):

2012-12-19  Emil A Eklund  <eae@chromium.org>

        [Regression] text-overflow ellipsis clips content when zoomed
        https://bugs.webkit.org/show_bug.cgi?id=105456

        Reviewed by Levi Weintraub.

        At certain zoom levels text-overflow ellipsis incorrectly clips
        content and displays the ellipsis even though the full content
        would fit.

        Test: fast/sub-pixel/ellipsis-zoom.html
        
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
        Add bug url to FIXME.
        
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::checkLinesForTextOverflow):
        Pixel snap the content edge before comparing with the line box
        edge as the line box edge is aligned to a pixel boundary.

2012-12-19  Antti Koivisto  <antti@apple.com>

        Use ElementTraversal in LiveNodeListBase
        https://bugs.webkit.org/show_bug.cgi?id=105324

        Reviewed by Ryosuke Niwa.

        Factor the code so that we get clean minimally branchy traversal functions for all the common cases.

        This patch changes the more performance critical forward traversal only, backwards traversal is unaffected for now.

        Instruments thinks it is a progression at least in DOM/DOMDivWalk.html. Bots should tell more.

        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::nodeMatches):
        * dom/ClassNodeList.h:
        (ClassNodeList):
        (WebCore::ClassNodeList::create):
        (WebCore):
        (WebCore::ClassNodeList::nodeMatchesInlined):

            Add inlined version of the matching function for class lists.

        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeListBase::rootContainerNode):

            Root is always ContainerNode if the list has anything in it. Traversal functions are slightly more
            efficient if we know we are operating on ContainerNodes.

        (WebCore):
        * dom/LiveNodeList.h:
        (LiveNodeListBase):
        (WebCore::LiveNodeListBase::shouldOnlyIncludeDirectChildren):
        * dom/Node.cpp:
        (WebCore::Node::getElementsByTagName):
        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::TagNodeList):
        (WebCore::TagNodeList::~TagNodeList):
        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
        (WebCore::HTMLTagNodeList::nodeMatches):
        * dom/TagNodeList.h:
        (WebCore):
        (TagNodeList):
        (WebCore::TagNodeList::create):
        (HTMLTagNodeList):
        (WebCore::HTMLTagNodeList::create):

            Use separate ContainerType enum value for HTMLTagNodeList so we can tell it apart from TagNodeList.

        (WebCore::HTMLTagNodeList::nodeMatchesInlined):

            Add inlined version of the matching function for tag lists.

        * html/CollectionType.h:
        * html/HTMLCollection.cpp:
        (WebCore::shouldOnlyIncludeDirectChildren):
        (WebCore::rootTypeFromCollectionType):
        (WebCore::invalidationTypeExcludingIdAndNameAttributes):
        (WebCore):
        (WebCore::isMatchingElement):
        
            List type templated matching functions for common cases.

        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::create):
        (WebCore::HTMLCollection::~HTMLCollection):
        (WebCore::previousNode):
        (WebCore::lastNode):
        (WebCore::LiveNodeListBase::iterateForPreviousNode):
        (WebCore::LiveNodeListBase::itemBefore):

            Leave the backwards traversal unchanged for now but remove the forward traversal code.

        (WebCore::firstMatchingElement):
        (WebCore::nextMatchingElement):
        (WebCore::firstMatchingChildElement):
        (WebCore::nextMatchingChildElement):
        (WebCore::traverseMatchingElementsForwardToOffset):

            List type templated traversal functions with matching. Separate functions for first and subsequent elements

        (WebCore::LiveNodeListBase::traverseChildNodeListForwardToOffset):
        (WebCore::LiveNodeListBase::traverseLiveNodeListFirstElement):
        (WebCore::LiveNodeListBase::traverseLiveNodeListForwardToOffset):

            LiveNodeList traversal, picking the right template.

        (WebCore::LiveNodeListBase::item):
        (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):

            Switch to new traversal functions.

        (WebCore::HTMLCollection::traverseFirstElement):
        (WebCore::HTMLCollection::traverseForwardToOffset):
        (WebCore::HTMLCollection::traverseNextElement):

            HTMLCollection traversal, picking the right template.

        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNameCache):

            Switch to new traversal functions.

        * html/HTMLCollection.h:
        (HTMLCollection):

2012-12-19  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/12896478> Cannot log into gmail/facebook with NetworkProcess and private browsing enabled
        https://bugs.webkit.org/show_bug.cgi?id=105454

        Reviewed by Brady Eidson.

        Request was using a wrong session after a redirect, because session cannot be
        preserved over IPC.

        Just set the storage session after calling the client, it is not really meaningful
        for a client to change session behind WebKit's back.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::willSendRequest):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::willSendRequest):

2012-12-19  Alexis Menard  <alexis@webkit.org>

        Implement CSS parsing for CSS transitions unprefixed.
        https://bugs.webkit.org/show_bug.cgi?id=104804

        Reviewed by Dean Jackson.

        Add support of an unprefixed version of CSS transitions modules by adding unprefixed versions
        of each CSS properties. The work is protected behind the flag ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
        to cover the work of unprefixing Transforms, Animations and Transitions. It will let the possibility of each ports to turn it off 
        in their release branches until we're confident that these CSS properties are ready to be unprefixed.

        Test: transitions/transitions-parsing.html

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:
        * GNUmakefile.features.am.in:
        * css/CSSPropertyNames.in: alias the unprefixed versions to the prefixed versions.

2012-12-12  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Make RenderLayerCompositor::requiresCompositingForScrollableFrame scrollbars agnostic
        https://bugs.webkit.org/show_bug.cgi?id=97903

        Reviewed by Simon Fraser.

        Some ports (including Qt-wk1 and BlackBerry) allow disabling
        scrollbars at FrameView creation level. Regardless the scrollbars
        presence though, their frame's content can still be scrolled as needed.
        The said, checking for the scrollbars presence in order to determine
        the scrollability of an inner frame is flaky, as done in RenderLayerCompositor::requiresCompositingForScrollableFrame.

        Instead, the patch factors out part of the logic in
        FrameView::updateScrollableAreaSet into a new ::isScrollable method.
        The later can be used to check the scrollability of a given FrameView.

        No new tests added, since there is no behavior change: ports like Chromium and others
        who currently check for the scrollbars presence in order to determine
        an inner frame scrollability should not be affected.

        * page/FrameView.cpp:
        (WebCore::FrameView::isScrollable):
        (WebCore):
        (WebCore::FrameView::updateScrollableAreaSet):
        * page/FrameView.h:
        (FrameView):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):

2012-12-18  Roger Fong  <roger_fong@apple.com>

        Popup menu on Windows should fade in instead of sliding in.
        https://bugs.webkit.org/show_bug.cgi?id=105358
        <rdar://problem/7611211>

        Reviewed by Timothy Horton.

        Changing popup menu display animation to match what most other Windows applications do.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::show):

2012-12-19  Levi Weintraub  <leviw@chromium.org>

        Correct missing touch event handler de-registration for nested Documents and DOMWindows
        https://bugs.webkit.org/show_bug.cgi?id=105384

        Reviewed by James Robinson.

        Correcting case by which a nested DOMWindow wouldn't clean up its event handler references
        on its Document when removeAllEventListeners was called. Also, correctly propagating this
        from a nested Document to its owner Document.

        Updating fast/events/touch/touch-handler-count.html to catch this bug.

        * dom/Document.cpp:
        (WebCore::Document::didRemoveEventTargetNode):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::removeAllEventListeners):

2012-12-18  Simon Fraser  <simon.fraser@apple.com>

        Fix regression from r137923 that caused all tiles to paint when scrolling
        https://bugs.webkit.org/show_bug.cgi?id=105394

        Reviewed by Dean Jackson.

        r137923 removed a 'continue' from the loop that ensures we have tile coverage,
        but this caused us to issue repaints for all existing tiles.
        
        Fix to 'continue' when the tile size is unchanged. Also remove 'primaryLayerCount'
        which was unused.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::revalidateTiles):

2012-12-19  Nate Chapin  <japhet@chromium.org>

        REGRESSION(r137607): PluginDocument loads consume huge amounts of memory
        https://bugs.webkit.org/show_bug.cgi?id=105359

        Reviewed by Alexey Proskuryakov.

        No new tests, verified manually that http://www.scb.se/statistik/_publikationer/NR0001_2012K02_TI_A28TI1203.pdf
        no longer consumes several GB of memory.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::setShouldBufferData): shouldBufferData is an enum, not a boolean, so this is reversed.
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::data): If the dataReceived() callback tells us to stop buffering data, be sure to
            notify the ResourceLoader and clear the data buffer.

2012-12-19  Gavin Peters  <gavinp@chromium.org>

        [chromium] WebCore::Prerender::didStartPrerender depends on LinkLoader
        https://bugs.webkit.org/show_bug.cgi?id=105290

        Reviewed by Abhishek Arya.

        The LinkLoader now removes itself from its prerender in time.

        Tested in unit tests, PrerenderingTest.FastRemoveElement.

        * loader/LinkLoader.cpp:
        (WebCore::LinkLoader::~LinkLoader):
        (WebCore::LinkLoader::released):

2012-12-19  Brian Salomon  <bsalomon@google.com>

        [Chromium/Skia] Check whether bitmap has pixels in image encoders
        https://bugs.webkit.org/show_bug.cgi?id=105349

        Reviewed by Stephen White.

        This adds NULL checks to the JPEG, PNG, WEBP encoders.

        Difficult to test as condition occurs when OOM.

        * platform/image-encoders/skia/JPEGImageEncoder.cpp:
        (WebCore::JPEGImageEncoder::encode):
        * platform/image-encoders/skia/PNGImageEncoder.cpp:
        (WebCore::PNGImageEncoder::encode):
        * platform/image-encoders/skia/WEBPImageEncoder.cpp:
        (WebCore::WEBPImageEncoder::encode):

2012-12-19  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Unable to place the caret at the end of the first line, when followed by a block, in the vertical writing mode.
        https://bugs.webkit.org/show_bug.cgi?id=104794

        Reviewed by Ryosuke Niwa.

        In the vertical writing mode, when trying to place the caret at the end
        of a text line which is followed by a block, the local point sent as
        part of the hitTest result in the mouse click event is not correct.

        When clicking on the empty region (beyond the text) in the first line,
        the local point computed is not in accordance with the writing mode.

        Test: editing/selection/caret-at-end-of-text-line-followed-by-block-in-vertical-mode.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::nodeAtPoint):
        Modified the code to handle the point as per the writing mode when
        computing the hitTest result. Calling flipForWritingMode() on the
        point for achieving the same.

2012-12-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138157.
        http://trac.webkit.org/changeset/138157
        https://bugs.webkit.org/show_bug.cgi?id=105439

        Crashes with assertion failures in EFL debug build. (Requested
        by drott on #webkit).

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (SharedGLData):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
        (WebCore::keyForFilterType):
        (WebCore::prepareFilterProgram):
        (WebCore::TextureMapperGL::drawFiltered):
        (WebCore::TextureMapperGL::beginClip):
        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore):
        (ShaderSpec):
        (WebCore::ShaderSpec::ShaderSpec):
        (WebCore::getShaderSpec):
        (WebCore::TextureMapperShaderManager::getShaderProgram):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):
        (TextureMapperShaderManager):

2012-12-19  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Enable Navigation Timing by default
        https://bugs.webkit.org/show_bug.cgi?id=105322

        Reviewed by Martin Robinson.

        The Navigation Timing specification (of which implementation is guarder
        by the ENABLE_WEB_TIMING feature define) has been promoted to the W3C Recommendation
        status. Because of this we should enable it by default in the release builds of
        the GTK port.

        No new tests - they already exist and are in majority passing.

        * GNUmakefile.am:
        * bindings/gobject/GNUmakefile.am: Move the DOM bindings for interfaces related to this
        feature out of the unstable features define guard and into the general list.

2012-12-19  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: default font on mac is Monaco (should do be Menlo)
        https://bugs.webkit.org/show_bug.cgi?id=105435

        Reviewed by Alexander Pavlov.

        Regressed when I introduced mountain lion modifier in the inspector.css.

        * inspector/front-end/inspector.css:
        (body.platform-mac .monospace, body.platform-mac .source-code):
        (body.platform-mac.platform-mac-tiger .source-code):

2012-12-19  Hayato Ito  <hayato@chromium.org>

        Expose WebKitShadowRoot constructor to DOMWindow.
        https://bugs.webkit.org/show_bug.cgi?id=105385

        Reviewed by Dimitri Glazkov.

        This is a follow-up patch for r137870.  WebKitShadowRoot
        constructor should be in DOMWindow, just like all of the other
        not-callable-constructors like HTMLDivElement, etc.  We need it
        for instanceof tests and so on.

        Test: fast/dom/shadow/shadow-root-js-api.html
              fast/js/global-constructors-expected.html

        * page/DOMWindow.idl:

2012-12-19  Andrey Lushnikov  <lushnikov@chromium.com>

        Web Inspector: refactor DefaultTextEditor's |expanded| setters
        https://bugs.webkit.org/show_bug.cgi?id=105415

        Reviewed by Pavel Feldman.

        Refactor |expanded| setters and getters into |collapse()|, |expand()|
        and |expanded()| methods

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
        (WebInspector.TextEditorChunkedPanel.prototype._expandChunks):
        (WebInspector.TextEditorGutterPanel.prototype.textChanged):
        (WebInspector.TextEditorGutterChunk.prototype.expanded): Added.
        (WebInspector.TextEditorGutterChunk.prototype.collapse): Added.
        (WebInspector.TextEditorGutterChunk.prototype.expand): Added.
        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
        (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
        (WebInspector.TextEditorMainChunk.prototype.expanded): Added.
        (WebInspector.TextEditorMainChunk.prototype.collapse): Added.
        (WebInspector.TextEditorMainChunk.prototype.expand): Added.

2012-12-19  Pan Deng  <pan.deng@intel.com>

        Web Inspector: Use Document* as argument in WebSocket Instrumentation.
        https://bugs.webkit.org/show_bug.cgi?id=105279.

        Reviewed by Pavel Feldman.

        Some WebSocket instrumentation fuctions adopted ScriptExecutionContext* as argument, it is not clear that
        their clients and implementations are all using Document*. This patch adopt Document* as argument, and 
        Document* could supply more information in future.

        No functionality changed, no new tests.

        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::didCreateWebSocket):
        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
        (WebCore::InspectorInstrumentation::didCloseWebSocket):

2012-12-19  Tim Volodine  <timvolodine@chromium.org>

        Text Autosizing: Work out what to do about form controls
        https://bugs.webkit.org/show_bug.cgi?id=102560

        Reviewed by Kenneth Rohde Christiansen.

        Disallow autosizing of form input controls like buttons, text input fields, selection controls, radio buttons
        and check boxes. This is a short term solution to avoid inconsistent autosizing of form controls (which is
        worse than not autosizing at all).

        Tests: fast/text-autosizing/form-controls-autosizing-button-input-elements.html
               fast/text-autosizing/form-controls-autosizing-checkbox-input-element.html
               fast/text-autosizing/form-controls-autosizing-radio-input-element.html
               fast/text-autosizing/form-controls-autosizing-select-element.html
               fast/text-autosizing/form-controls-autosizing-textfield-input-elements.html

        * rendering/TextAutosizer.cpp:
        (WebCore):
        (WebCore::formInputTags):
        (WebCore::TextAutosizer::isAutosizingContainer):
        (WebCore::TextAutosizer::contentHeightIsConstrained):
        (WebCore::TextAutosizer::containerShouldBeAutosized):
        (WebCore::TextAutosizer::containerContainsOneOfTags):
        * rendering/TextAutosizer.h:

2012-12-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Add Workspace.setFileContent() method
        https://bugs.webkit.org/show_bug.cgi?id=105434

        Reviewed by Pavel Feldman.

        Added method that will be usedto save file system-based uiSourceCodes to the disk.

        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype._commitContent):
        * inspector/front-end/Workspace.js:
        (WebInspector.WorkspaceProvider.prototype.setFileContent):
        (WebInspector.Project.prototype.setFileContent):

2012-12-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Rename workspace path to uri.
        https://bugs.webkit.org/show_bug.cgi?id=105433

        Reviewed by Pavel Feldman.

        URI should later become file unique id / address in workspace.

        * inspector/front-end/NetworkWorkspaceProvider.js:
        (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
        (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
        (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
        (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
        (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
        * inspector/front-end/Workspace.js:
        (WebInspector.FileDescriptor):
        (WebInspector.WorkspaceProvider.prototype.requestFileContent):
        (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype.requestFileContent):
        (WebInspector.Project.prototype.searchInFileContent):
        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):

2012-12-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Refactor CSS[Keyword]Completions to augment property metadata
        https://bugs.webkit.org/show_bug.cgi?id=105020

        Reviewed by Pavel Feldman.

        - CSSCompletions and CSSKeywordCompletions of WebInspector have been merged into CSSMetadata.
        - Valid value keyword lists have been added or augmented for some properties.
        - Some properties have been made inherited or color-aware.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/CSSCompletions.js: Removed.
        * inspector/front-end/CSSKeywordCompletions.js: Removed.
        * inspector/front-end/CSSMetadata.js: Added.
        (WebInspector.CSSMetadata):
        (WebInspector.CSSMetadata.isColorAwareProperty):
        (WebInspector.CSSMetadata.colors):
        (WebInspector.CSSMetadata.valuesForProperty):
        (WebInspector.CSSMetadata.descriptor):
        (WebInspector.CSSMetadata.requestCSSShorthandData):
        (WebInspector.CSSMetadata.cssPropertiesMetainfoKeySet):
        (WebInspector.CSSMetadata.prototype.startsWith):
        (WebInspector.CSSMetadata.prototype.mostUsedOf):
        (WebInspector.CSSMetadata.prototype._firstIndexOfPrefix):
        (WebInspector.CSSMetadata.prototype.keySet):
        (WebInspector.CSSMetadata.prototype.next):
        (WebInspector.CSSMetadata.prototype.previous):
        (WebInspector.CSSMetadata.prototype._closest):
        (WebInspector.CSSMetadata.prototype.longhands):
        (WebInspector.CSSMetadata.prototype.shorthands):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleDeclaration.prototype.longhandProperties):
        * inspector/front-end/SourceCSSTokenizer.js:
        (WebInspector.SourceCSSTokenizer):
        * inspector/front-end/SourceCSSTokenizer.re2js:
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.createExclamationMark):
        (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
        (WebInspector.StylesSidebarPane.prototype._containsInherited):
        (WebInspector.StylePropertiesSection.prototype.isPropertyInherited):
        (WebInspector.StylePropertiesSection.prototype.isPropertyOverloaded):
        (WebInspector.StylePropertiesSection.prototype.onpopulate):
        (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
        (WebInspector.StylePropertyTreeElement.prototype):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2012-12-19  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Instead of having multiple shaders sources with lots of duplication, we should have one shader source with MACRO variants
        https://bugs.webkit.org/show_bug.cgi?id=104815

        Reviewed by Kenneth Rohde Christiansen.

        Created templates for the vertex and fragment shaders, and added some MACROs in 
        TextureMapperShaderManager to allow GLSL precompiler-based configuration.

        The template follows a pattern where the main function in the shader calls
        applyFooBarIfNeeded(), while applyFooBar() is implemented. The Macros prepended to the template define whether applyIfNeeded resolves to the real function or to a noop.

        In addition, made some small changes to the filter shaders so that they can use the same code as the normal shaders.

        Covered by existing pixel/ref tests when run on Qt/EFL/GTK.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
        (WebCore::optionsForFilterType):
        (WebCore):
        (WebCore::getPassesRequiredForFilter):
        (WebCore::prepareFilterProgram):
        (WebCore::TextureMapperGL::drawFiltered):
        (WebCore::BitmapTextureGL::applyFilters):
            Always draw using the drawQuad function, and use the new TextureMapperShaderManager::Options mask instead of the old ShaderKey.

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore):
        (WebCore::getShaderSpec):
        (WebCore::TextureMapperShaderManager::getShaderProgram):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):
        (TextureMapperShaderManager):

2012-12-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Support removing several tabs from TabbedEditorContainer/TabbedPane at once.
        https://bugs.webkit.org/show_bug.cgi?id=104881

        Reviewed by Alexander Pavlov.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.prototype.removeUISourceCode):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype.closeTab):
        (WebInspector.TabbedPane.prototype.closeTabs):

2012-12-19  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: scripts to evaluate on load are not removed from inspector state when Page agent is disabled
        https://bugs.webkit.org/show_bug.cgi?id=105422

        Reviewed by Alexander Pavlov.

        - reset scripts to evaluate on load when InspectorPageAgent is disabled.
        - added InspectorState::remove();

        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::disable):
        * inspector/InspectorState.cpp:
        (WebCore::InspectorState::remove):
        (WebCore):
        * inspector/InspectorState.h:
        (InspectorState):

2012-12-19  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Make year field readonly if min and max have the same year
        https://bugs.webkit.org/show_bug.cgi?id=105383

        Reviewed by Kent Tamura.

        Make year field readonly if min and max have the same year, and it does not have
        value with different year.

        Test: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html

        * css/html.css: Add CSS rule for the year field.
        * html/shadow/DateTimeEditElement.cpp:
        (DateTimeEditBuilder):
        (WebCore::DateTimeEditBuilder::visitField): Make year-field readonly when appropriate.
        (WebCore::DateTimeEditBuilder::shouldYearFieldReadOnly): Added.

2012-12-19  Max Feil  <mfeil@rim.com>

        [BlackBerry] Fix undesired re-entrant calls during media error dialog
        https://bugs.webkit.org/show_bug.cgi?id=105398

        Reviewed by Rob Buis.

        A recent change in libwebview (PR194379) to the dialog
        handling means that dialogs are not truly blocking anymore.
        While the dialog is up, a sub-event loop is called. Therefore
        the HTML5 media code will continue processing pps messages from
        mm-renderer, responding to periodic timers, etc., all while a
        media error dialog call higher up in the stack is waiting for
        the user to respond. Unfortunately certain places in our code
        do not anticipate being called in this re-entrant way.

        This patch restores previous behaviour, covered by existing tests.

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):

2012-12-19  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [REGRESSION] The last remembered tab is not restored when the Settings dialog is opened
        https://bugs.webkit.org/show_bug.cgi?id=105414

        Reviewed by Vsevolod Vlasov.

        Do not force the "General" tab when opening settings upon the Cog button click.

        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsController.prototype._mouseUp):

2012-12-19  Renata Hodovan  <reni@webkit.org>

        CSSParser crases, when no context is available, and the value is a valid keyword
        https://bugs.webkit.org/show_bug.cgi?id=105275

        Reviewed by Tony Chang.

        ParserContext could be null even if the keyword is valid. We have to check it.

        Test: fast/css/invalid-parsercontext-valid-keyword-crash.svg

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):

2012-12-19  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Refactor GLXSurface.
        https://bugs.webkit.org/show_bug.cgi?id=105357

        Reviewed by Kenneth Rohde Christiansen.

        This is in preparation for adding EGL support.
        There is lot of X related code which could be shared between our current GLX implementation
        and EGL. This patch makes it possible to share the common code but doesn't change any functionality.

        * PlatformEfl.cmake:
        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore):
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        (WebCore::GLXTransportSurface::configuration):
        (WebCore::GLXTransportSurface::destroy):
        (WebCore::GLXTransportSurface::freeResources):
        (WebCore::GLXPBuffer::GLXPBuffer):
        (WebCore::GLXPBuffer::initialize):
        (WebCore::GLXPBuffer::configuration):
        (WebCore::GLXPBuffer::setGeometry):
        * platform/graphics/surfaces/glx/GLXSurface.h:
        (GLXTransportSurface):
        (GLXPBuffer):

        GLX related implementation.
        * platform/graphics/surfaces/glx/GLXWindowResources.h: Added.
        (WebCore):
        (SharedGLXResources):
        (WebCore::SharedGLXResources::create):
        (WebCore::SharedGLXResources::nativeDisplay):
        (WebCore::SharedGLXResources::pBufferContextConfig):
        (WebCore::SharedGLXResources::surfaceContextConfig):
        (WebCore::SharedGLXResources::SharedGLXResources):
        (WebCore::SharedGLXResources::createConfig):

        Moving X related code to a seperate class.
        * platform/graphics/surfaces/glx/X11WindowResources.cpp: Added.
        (WebCore):
        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
        (WebCore::X11OffScreenWindow::~X11OffScreenWindow):
        (WebCore::X11OffScreenWindow::setGeometry):
        (WebCore::X11OffScreenWindow::createOffscreenWindow):
        * platform/graphics/surfaces/glx/X11WindowResources.h: Added.
        (WebCore):
        (SharedX11Resources):
        (WebCore::SharedX11Resources::deref):
        (WebCore::SharedX11Resources::x11Display):
        (WebCore::SharedX11Resources::getXWindow):
        (WebCore::SharedX11Resources::visualInfo):
        (WebCore::SharedX11Resources::isXRenderExtensionSupported):
        (WebCore::SharedX11Resources::SharedX11Resources):
        (WebCore::SharedX11Resources::~SharedX11Resources):
        (X11OffScreenWindow):

2012-12-19  Tommy Widenflycht  <tommyw@chromium.org>

        [JSC] Add support for overloaded constructors
        https://bugs.webkit.org/show_bug.cgi?id=103226

        Reviewed by Kentaro Hara.

        This patch adds the same support for overloaded constructors to JSC as V8.
        As proof of implementation soundness WebSockets custom constructor is removed.

        Existing tests cover patch. As they should.

        * GNUmakefile.list.am:
        * Modules/websockets/WebSocket.idl:
        * Target.pri:
        * UseJSC.cmake:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSWebSocketCustom.cpp: Removed.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorDeclaration):
        (GenerateConstructorDefinitions):
        (GenerateOverloadedConstructorDefinition):
        (GenerateConstructorDefinition):
        (GenerateConstructorHelperMethods):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
        (WebCore):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        (JSTestOverloadedConstructorsConstructor):

2012-12-19  Seokju Kwon  <seokju.kwon@gmail.com>

        Pass debuggerTaskMode as a parameter in WorkerScriptDebugServer constructor
        https://bugs.webkit.org/show_bug.cgi?id=105085

        Reviewed by Yury Semikhatsky.

        Leave WorkerDebuggerAgent::debuggerTaskMode
        and remove WorkerScriptDebugServer::debuggerTaskMode.

        No new tests, no behavior change.

        * bindings/js/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
        (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
        * bindings/js/WorkerScriptDebugServer.h:
        (WorkerScriptDebugServer):
        * bindings/v8/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
        (WebCore::WorkerScriptDebugServer::runMessageLoopOnPause):
        * bindings/v8/WorkerScriptDebugServer.h:
        (WorkerScriptDebugServer):
        * inspector/WorkerDebuggerAgent.cpp:
        (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):

2012-12-19  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed, rolling out r138129.
        http://trac.webkit.org/changeset/138129
        https://bugs.webkit.org/show_bug.cgi?id=105399

        reapply patch r138123. The problem was on chromium side at r173875.

        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        * dom/Element.h:
        (WebCore::Node::insertedInto):
        (WebCore):
        (WebCore::Node::removedFrom):
        * dom/Node.cpp:

2012-12-19  Takashi Sakamoto  <tasak@google.com>

        [Shadow] TITLE elements in Shadow DOM should not affect document.title attribute
        https://bugs.webkit.org/show_bug.cgi?id=85864

        Reviewed by Ryosuke Niwa.

        Modified HTMLTitleElement to check whether a title element is in a
        shadow tree or not when it is inserted or removed. Now if a title
        element has been just removed from or inserted into a shadow tree,
        document.title is not updated independent of inDocument().  If the
        title element is not in a shadow tree and in document,
        document.title is updated.

        Test: fast/dom/shadow/title-element-in-shadow.html

        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::insertedInto):
        Added a condition: isInShadowTree() to the code which checks
        inDocument or not.
        (WebCore::HTMLTitleElement::removedFrom):
        Added a condition: insertionPoint.isInShadowTree() to the code which
        checks an insertion point is in a document or not.
        (WebCore::HTMLTitleElement::childrenChanged):
        Added a condition: isInShadowTree() before setTitle.
        If not isInShadowTree, modified to removeTitle from document.

2012-12-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138123.
        http://trac.webkit.org/changeset/138123
        https://bugs.webkit.org/show_bug.cgi?id=105399

        It broke compositing/visibility/visibility-simple-video-
        layer.html (Requested by loislo on #webkit).

        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        * dom/Element.h:
        * dom/Node.cpp:
        (WebCore::Node::insertedInto):
        (WebCore):
        (WebCore::Node::removedFrom):

2012-12-18  Shinya Kawanaka  <shinyak@chromium.org>

        ShadowRoot.getElementById() returns a deleted element
        https://bugs.webkit.org/show_bug.cgi?id=105243

        Reviewed by Dimitri Glazkov.

        Only when the treeScope of an element and the treeScope of insertionPoint is the same in insertedInto or removedFrom,
        we can call updatedId() etc. However, we didn't check it's same.

        For removedFrom, since an element has been removed, treeScope() doesn't return the original treeScope but document()
        every time.

        This patch might hurt html5-full-render a bit: the result is here. The first 2 results are without this patch,
        the last 2 results are with this patch.

        Dromaeo/dom-modify [runs/s]
             35.97,   36.09 -->   36.05,   35.69
        Parser/html5-full-render [ms]
           4156.58, 4166.09 --> 4155.22, 4216.38

        Test: fast/dom/shadow/getelementbyid-shadow.html

        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        * dom/Element.h:
        (WebCore::Node::insertedInto): Moved from Node.cpp to make this inline.
        (WebCore):
        (WebCore::Node::removedFrom): ditto.
        * dom/Node.cpp:

2012-12-18  Vivek Galatage  <vivek.vg@samsung.com>

        Web Inspector: AuditLauncherView UI components should be disabled until ongoing audit finishes
        https://bugs.webkit.org/show_bug.cgi?id=105389

        Reviewed by Alexander Pavlov.

        While the Audit request is on-going, UI components on the AuditLauncherView are disabled
        until the request is completed or explicitly stopped. Also changed the _categoriesElement
        from div to fieldset and modified the associated CSS file accordingly.

        No new tests as this is a UI change.

        * inspector/front-end/AuditLauncherView.js:
        (WebInspector.AuditLauncherView.prototype._setAuditRunning):
        (WebInspector.AuditLauncherView.prototype._toggleUIComponents):
        * inspector/front-end/auditsPanel.css:
        (.audit-launcher-view fieldset.audit-categories-container):

2012-12-18  KyungTae Kim  <ktf.kim@samsung.com>

        [EFL] regression(r138071) Add mission functions for build fix
        https://bugs.webkit.org/show_bug.cgi?id=105392

        Unreviewed build fix.

        r138071 add new functions to LocalizedStrings.cpp, but EFL port doesn't use them.
        So, add those functions to LocalizedStringsEfl.cpp 

        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore):
        (WebCore::textTrackClosedCaptionsText):
        (WebCore::textTrackSubtitlesText):
        (WebCore::textTrackOffText):
        (WebCore::textTrackNoLabelText):

2012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Chromium] profiler - differentiate between native code (program) and idle time
        https://bugs.webkit.org/show_bug.cgi?id=88446

        Reviewed by Pavel Feldman.

        Now idleTime is supplied in profile object. In this patch, idleTime,
        if any, is subtracted from "(program)" node, and new node "(idle)" is
        injected as a top level node to profile.

        * inspector/front-end/CPUProfileView.js:
        (WebInspector.CPUProfileView.profileCallback): Call _injectIdleTimeNode
        if non-zero idleTime is specified.
        (WebInspector.CPUProfileView.prototype._injectIdleTimeNode): Lookup for
        "(program)" node, modify it, add "(idle)" node.

2012-12-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r138097.
        http://trac.webkit.org/changeset/138097
        https://bugs.webkit.org/show_bug.cgi?id=105386

        multiple crashes on media tests (Requested by loislo on
        #webkit).

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::canPlayType):
        (WebCore::createFileURLForApplicationCacheResource):
        (WebCore::stringForNetworkState):
        (WebCore::HTMLMediaElement::preload):
        (WebCore::HTMLMediaElement::setLoop):
        (WebCore::HTMLMediaElement::getPluginProxyParams):

2012-12-18  Julien Chaffraix  <jchaffraix@webkit.org>

        Free one bit in RenderObject
        https://bugs.webkit.org/show_bug.cgi?id=105065

        Reviewed by Simon Fraser.

        This change uses the mutual exclusivity between the different position bits to pack
        the information more efficiently. Because you can be only in one position at any point
        in time, you only need to store 4 states in RenderObject (ie 2 bits of information) but
        we were using 3 bits to store this information, thus losing one bit that I am reclaiming.

        The change covers the 3 bits into a single PositionState. In order to avoid any extra branch
        on the common code path, the logic was modified to be able to convert a EPosition to a PositionState
        using only a bit mask. This also means that we now sets up and clears all the bits at once instead
        of several calls, which matches more closely what happens at style change.

        Change covered by existing tests.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::updateFromStyle):
        Removed a call, superseed by the one in RenderBoxModelObject::updateFromStyle.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::updateFromStyle):
        Changed to set the positioned bits in only one call to setPositionedState.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleWillChange):
        Changed to clear all positioned bits at once.

        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::styleDidChange):
        Ditto, which was probably the intent anyway.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        Changed to explicitly be AbsolutelyPositioned, not that it really matters as we only store
        the out-of-flow information.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::isOutOfFlowPositioned):
        (WebCore::RenderObject::isInFlowPositioned):
        (WebCore::RenderObject::isRelPositioned):
        (WebCore::RenderObject::isStickyPositioned):
        (WebCore::RenderObject::isPositioned):
        (WebCore::RenderObject::clearPositionedState):
        Updated after the renaming below.

        (WebCore::RenderObject::setPositionState):
        Ditto, but added an ASSERT to ensure that the out-of-flow bit is only set on boxes, to match
        existing code.

        * rendering/style/RenderStyleConstants.h:
        Changed the values so that the conversion to PositionState is a simple bit mask, e.g
        FixedPosition & 0x3 == AbsolutePosition as we only store the out-of-flow position information.

        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
        Introduced PositionState to hold the different bits.

        (WebCore::RenderObject::RenderObjectBitfields::setPositionedState):
        (WebCore::RenderObject::RenderObjectBitfields::clearPositionedState):
        (WebCore::RenderObject::RenderObjectBitfields::isOutOfFlowPositioned):
        (WebCore::RenderObject::RenderObjectBitfields::isRelPositioned):
        (WebCore::RenderObject::RenderObjectBitfields::isStickyPositioned):
        (WebCore::RenderObject::RenderObjectBitfields::isPositioned):
        Re-implemented these getters / setters and renamed them to match our style while at it.


2012-12-18  Anton Vayvod  <avayvod@chromium.org>

        Text Autosizing: containers wider than their enclosing clusters should be autosized as separate clusters
        https://bugs.webkit.org/show_bug.cgi?id=103627

        Reviewed by Julien Chaffraix.

        Some blocks of texts might be wider than their parent clusters and need to be autosized separately.

        isAutosizingCluster() now checks for the width of the container being greater than the width of the lowest
        common ancestor of the text nodes of the enclosing cluster. This block containing all text is passed to all
        tree traversal methods.
        An overloaded version is added for cases when we don't have the lowest common ancestor yet.

        The change fixes several cases covered by existing tests.

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::processSubtree):

            Calls processCluster with a new number of arguments.

        (WebCore::TextAutosizer::processCluster):

            Passes block containing all text nodes into processContainer. Assertion removed since it can no longer be
            checked without passing an additional parameter (the parent block containing all text) to the function
            for the sake of this assertion only.

        (WebCore::TextAutosizer::processContainer):

            |parentBlockContainingAllText| parameter passed into isAutosizingCluster.

        (WebCore::TextAutosizer::isAutosizingCluster(const RenderBlock*, const RenderBlock*)):

            The overloaded method that is used when the render block checked is already known to be an autosizing
            container and there's full information necessary to determine if it's a cluster like the parent block
            containing all text within the enclosing cluster. 
            Considers a block a cluster if it is wider than its parent block containing all text within enclosing
            cluster.

        (WebCore::TextAutosizer::isAutosizingCluster(const RenderObject*)):

            The overloaded method that checks for the given object to be an autosizing container first (for
            convenience of the caller) and doesn't require information about the parent cluster. Used when such
            information is not available, for example, in the process of retrieving the information for the parent
            cluster or when looking for the root cluster in the tree.

        (WebCore::TextAutosizer::clusterShouldBeAutosized):

            Passes new parameter to measureDescendantTextWidth.

        (WebCore::TextAutosizer::measureDescendantTextWidth):

            Uses blockContainingAllText parameter to pass to isAutosizingCluster.

        (WebCore::TextAutosizer::findDeepestBlockContainingAllText):

            Assertion removed since it can no longer be checked without passing an additional parameter (the
            parent block containing all text) to the function for the sake of this assertion only.

        (WebCore::TextAutosizer::findFirstTextLeafNotInCluster):
            Uses shorter isAutosizingCluster call.

2012-12-18  Alexey Proskuryakov  <ap@apple.com>

        Remove unnecessary functions from CookiesStrategy
        https://bugs.webkit.org/show_bug.cgi?id=105369

        Reviewed by Brady Eidson.

        Remove CookieJar functions that are only ever called from WebKit.

        * WebCore.exp.in:
        * loader/CookieJar.cpp:
        * loader/CookieJar.h:
        * platform/CookiesStrategy.h:

2012-12-18  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] Assertion failed while destroying GraphicsLayer
        https://bugs.webkit.org/show_bug.cgi?id=105312

        Reviewed by Gustavo Noronha Silva.

        According to the comment in GraphicsLayer::~GraphicsLayer(), we should call
        willBeDestroyed() before destructor of GraphicsLayer.

        No new tests since this patch can be covered by already existing gtk ac tests.

        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter): call willBeDestroyed()

2012-12-18  Joseph Pecoraro  <pecoraro@apple.com>

        Minor improvements to HTMLMediaElement
        https://bugs.webkit.org/show_bug.cgi?id=105353

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::canPlayType):
        (WebCore::createFileURLForApplicationCacheResource):
        (WebCore::stringForNetworkState):
        (WebCore::HTMLMediaElement::preload):
        (WebCore::HTMLMediaElement::getPluginProxyParams):
        Use ASCIILiteral for literal strings becoming WTFStrings.

        (WebCore::HTMLMediaElement::setLoop):
        By going through setAttribute, parseAttribute would already take care of
        updating the disable sleep, so the call here is not needed.

2012-12-18  Levi Weintraub  <leviw@chromium.org>

        Input elements with default touch handlers don't update handler counts when changing documents
        https://bugs.webkit.org/show_bug.cgi?id=105334

        Reviewed by James Robinson.

        When an Input element with default touch event handlers changes documents, it failed to
        update the touch event handler sets in both the old and new document. This patch fixes this
        case.

        Test: fast/events/touch/touch-input-element-change-documents.html

        * dom/Document.h:
        (WebCore::Document::didRemoveTouchEventTargetNode) This function makes sense when touch
        handling is enabled, regardless of whether we're tracking the rects.
        * dom/Document.cpp:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement): Switch from didRemoveTouchEventHandler to
        didRemoveTouchEventTargetNode, since we don't care about counts in the destructor.
        (WebCore::HTMLInputElement::updateType): Fixing incorrect indentation.
        (WebCore::HTMLInputElement::didMoveToNewDocument): Adding the node to the new document and
        removing it from the old.

2012-12-18  Mark Lam  <mark.lam@apple.com>

        Fixed bad merge in "Initial refactoring of database functionality into the manager and server".
        https://bugs.webkit.org/show_bug.cgi?id=104748.

        Not reviewed.

        No new tests.

        * Modules/webdatabase/DBBackendServer.cpp:

2012-12-18  Mark Lam  <mark.lam@apple.com>

        Initial refactoring of database functionality into the manager and server.
        https://bugs.webkit.org/show_bug.cgi?id=104748.

        Reviewed by Brady Eidson.

        This is not a complete refactor, but a stepping stone on the way to isolating
        script side database activity from the SQL backend.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabase.cpp:
        (WebCore):
        (WebCore::updateGuidVersionMap):
        (WebCore::guidForOriginAndName):
        (WebCore::AbstractDatabase::AbstractDatabase):
        (WebCore::AbstractDatabase::maximumSize):
        * Modules/webdatabase/AbstractDatabase.h:
        (AbstractDatabase):
        - Moved isAvailable() and setIsAvailable() to the DatabaseManager.
        * Modules/webdatabase/AbstractDatabaseServer.h:
        (AbstractDatabaseServer):
        * Modules/webdatabase/DBBackendServer.cpp: Added.
        (WebCore::DBBackend::Server::initialize):
        (WebCore::DBBackend::Server::setClient):
        (WebCore::DBBackend::Server::databaseDirectoryPath):
        (WebCore::DBBackend::Server::setDatabaseDirectoryPath):
        (WebCore::DBBackend::Server::fullPathForDatabase):
        (WebCore::DBBackend::Server::hasEntryForOrigin):
        (WebCore::DBBackend::Server::origins):
        (WebCore::DBBackend::Server::databaseNamesForOrigin):
        (WebCore::DBBackend::Server::detailsForNameAndOrigin):
        (WebCore::DBBackend::Server::usageForOrigin):
        (WebCore::DBBackend::Server::quotaForOrigin):
        (WebCore::DBBackend::Server::setQuota):
        (WebCore::DBBackend::Server::deleteAllDatabases):
        (WebCore::DBBackend::Server::deleteOrigin):
        (WebCore::DBBackend::Server::deleteDatabase):
        (WebCore::DBBackend::Server::scheduleNotifyDatabaseChanged):
        (WebCore::DBBackend::Server::databaseChanged):
        (WebCore::DBBackend::Server::closeDatabasesImmediately):
        (WebCore::DBBackend::Server::interruptAllDatabasesForContext):
        (WebCore::DBBackend::Server::canEstablishDatabase):
        (WebCore::DBBackend::Server::addOpenDatabase):
        (WebCore::DBBackend::Server::removeOpenDatabase):
        (WebCore::DBBackend::Server::setDatabaseDetails):
        (WebCore::DBBackend::Server::getMaxSizeForDatabase):
        - Refactored all calls to the DatabaseTracker to go thru the DBBackend::Server.
        * Modules/webdatabase/DBBackendServer.h:
        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
        (WebCore::DOMWindowWebDatabase::openDatabase):
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::close):
        (WebCore::Database::maximumSize):
        * Modules/webdatabase/Database.h:
        (Database):
        - Moved the openDatabase() factory method to the DatabaseManager.
        - Removed the unused deliverPendingCallback() prototype.
        * Modules/webdatabase/DatabaseBasicTypes.h: Added.
        - A place to define some common basic types used by the database module.
        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::databaseExceededQuota):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::DatabaseManager):
        (WebCore::DatabaseManager::initialize):
        (WebCore::DatabaseManager::setClient):
        (WebCore::DatabaseManager::databaseDirectoryPath):
        (WebCore::DatabaseManager::setDatabaseDirectoryPath):
        (WebCore::DatabaseManager::isAvailable):
        (WebCore::DatabaseManager::setIsAvailable):
        (DatabaseCreationCallbackTask):
        (WebCore::DatabaseCreationCallbackTask::create):
        (WebCore::DatabaseCreationCallbackTask::performTask):
        (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseManager::openDatabaseSync):
        (WebCore::DatabaseManager::setHasOpenDatabases):
        (WebCore::DatabaseManager::fullPathForDatabase):
        (WebCore::DatabaseManager::hasEntryForOrigin):
        (WebCore::DatabaseManager::origins):
        (WebCore::DatabaseManager::databaseNamesForOrigin):
        (WebCore::DatabaseManager::detailsForNameAndOrigin):
        (WebCore::DatabaseManager::usageForOrigin):
        (WebCore::DatabaseManager::quotaForOrigin):
        (WebCore::DatabaseManager::setQuota):
        (WebCore::DatabaseManager::deleteAllDatabases):
        (WebCore::DatabaseManager::deleteOrigin):
        (WebCore::DatabaseManager::deleteDatabase):
        (WebCore::DatabaseManager::scheduleNotifyDatabaseChanged):
        (WebCore::DatabaseManager::databaseChanged):
        (WebCore::DatabaseManager::closeDatabasesImmediately):
        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
        (WebCore::DatabaseManager::canEstablishDatabase):
        (WebCore::DatabaseManager::addOpenDatabase):
        (WebCore::DatabaseManager::removeOpenDatabase):
        (WebCore::DatabaseManager::setDatabaseDetails):
        (WebCore::DatabaseManager::getMaxSizeForDatabase):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::DatabaseSync::~DatabaseSync):
        (WebCore::DatabaseSync::closeImmediately):
        * Modules/webdatabase/DatabaseSync.h:
        (DatabaseSync):
        - Moved the openDatabaseSync() factory method to the DatabaseManager.
        * Modules/webdatabase/DatabaseTask.h:
        * Modules/webdatabase/SQLResultSet.h:
        * Modules/webdatabase/SQLStatementSync.h:
        * Modules/webdatabase/SQLTransaction.h:
        * Modules/webdatabase/SQLTransactionClient.cpp:
        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
        (WebCore::SQLTransactionClient::didExecuteStatement):
        (WebCore::SQLTransactionClient::didExceedQuota):
        * Modules/webdatabase/SQLTransactionSync.h:
        * Modules/webdatabase/WorkerContextWebDatabase.cpp:
        (WebCore::WorkerContextWebDatabase::openDatabase):
        (WebCore::WorkerContextWebDatabase::openDatabaseSync):
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2012-12-18  Per-Erik Brodin  <per-erik.brodin@ericsson.com>

        EventSource should support CORS
        https://bugs.webkit.org/show_bug.cgi?id=61862

        Reviewed by Alexey Proskuryakov.

        Enabled CORS in EventSource with optional constructor argument to
        indicate whether credentials should be included or not, as per the spec.
        Added didFailAccessControlCheck to ThreadableLoaderClient to be able to
        properly distinguish CORS failures from other errors.

        Tests: http/tests/eventsource/eventsource-cors-basic.html
               http/tests/eventsource/eventsource-cors-no-server.html
               http/tests/eventsource/eventsource-cors-with-credentials.html

        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
        (WebCore::DocumentThreadableLoader::didReceiveResponse):
        (WebCore::DocumentThreadableLoader::preflightFailure):
        * loader/ThreadableLoaderClient.h:
        (WebCore::ThreadableLoaderClient::didFailAccessControlCheck):
        * loader/ThreadableLoaderClientWrapper.h:
        (WebCore::ThreadableLoaderClientWrapper::didFailAccessControlCheck):
        (ThreadableLoaderClientWrapper):
        * loader/WorkerThreadableLoader.cpp:
        (WebCore::workerContextDidFailAccessControlCheck):
        (WebCore):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
        * loader/WorkerThreadableLoader.h:
        (MainThreadBridge):
        * page/EventSource.cpp:
        (WebCore::EventSource::EventSource):
        (WebCore::EventSource::create):
        (WebCore::EventSource::connect):
        (WebCore::EventSource::withCredentials):
        (WebCore):
        (WebCore::EventSource::didReceiveResponse):
        (WebCore::EventSource::didFailAccessControlCheck):
        (WebCore::EventSource::didFailRedirectCheck):
        (WebCore::EventSource::abortConnectionAttempt):
        (WebCore::EventSource::parseEventStreamLine):
        (WebCore::EventSource::createMessageEvent):
        * page/EventSource.h:
        (WebCore):
        (EventSource):
        (WebCore::EventSource::refEventTarget):
        (WebCore::EventSource::derefEventTarget):
        * page/EventSource.idl:

2012-12-18  Michael Pruett  <michael@68k.org>

        IndexedDB: Implement custom bindings for parsing options
        https://bugs.webkit.org/show_bug.cgi?id=96614

        Reviewed by Darin Adler.

        Parsing the options dictionary in IDBDatabase.createObjectStore()
        and IDBObjectStore.createIndex() requires custom bindings in JSC.

        Tests: storage/indexeddb/*

        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore):
        * Modules/indexeddb/IDBDatabase.h:
        (IDBDatabase):
        * Modules/indexeddb/IDBDatabase.idl:
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        (WebCore):
        * Modules/indexeddb/IDBObjectStore.h:
        (IDBObjectStore):
        * Modules/indexeddb/IDBObjectStore.idl:
        * UseJSC.cmake:
        * bindings/js/IDBBindingUtilities.cpp:
        (WebCore::idbKeyPathFromValue): Added utility function for converting a JSValue to an IDBKeyPath.
        (WebCore):
        * bindings/js/IDBBindingUtilities.h:
        (WebCore):
        * bindings/js/JSIDBDatabaseCustom.cpp: Added.
        (WebCore):
        (WebCore::JSIDBDatabase::createObjectStore):
        * bindings/js/JSIDBObjectStoreCustom.cpp: Added.
        (WebCore):
        (WebCore::JSIDBObjectStore::createIndex):

2012-12-18  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>

        Cannot click an element at 2nd line or more inside inline-block in vertical writing mode.
        https://bugs.webkit.org/show_bug.cgi?id=104775

        Reviewed by Dean Jackson.

        If the parent of an inline box changes writing mode, then the inline box must flip incoming hit point coordinates.
        Otherwise, the coordinate will be misunderstood because the box has a different origin from its parent.
        If the InlineBox doesn't flip its offset, its children will use the wrong offset
        because they don't know their grandparent changed writing modes.
        InlineBox::nodeAtPoint should flip accumulatedOffset like InlineBox::paint().

        Test: fast/writing-mode/vertical-inline-block-hittest.html

        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::nodeAtPoint):

2012-12-18  Simon Fraser  <simon.fraser@apple.com>

        Allow position:sticky elements to be moved by the scrolling thread
        https://bugs.webkit.org/show_bug.cgi?id=105245

        Reviewed by Beth Dakin.

        Allow sticky position elements to be repositioned on the scrolling thread.
        
        RenderLayerCompositor::requiresCompositingForPosition() is changed to make
        all position:-webkit-sticky elements composited.
        
        Sticky position constraints are already communicated to the ScrollingCoordinator,
        but now we created ScrollingStateStickyNodes for them, and send the constraints
        over to the scrolling thread for new ScrollingTreeStickyNodes. That allows
        their layers to be repositioned on the scrolling thread.

        Tests: platform/mac/tiled-drawing/sticky/sticky-horizontal.html
               platform/mac/tiled-drawing/sticky/sticky-vertical.html

        * WebCore.xcodeproj/project.pbxproj: Add new files.
        * page/scrolling/ScrollingConstraints.h:
        (WebCore::StickyPositionViewportConstraints::absoluteContainingBlockRect): New accessors.
        (WebCore::StickyPositionViewportConstraints::absoluteStickyBoxRect):
        (WebCore::StickyPositionViewportConstraints::operator==):
        (WebCore::StickyPositionViewportConstraints::operator!=):
        * page/scrolling/ScrollingCoordinator.h: Added StickyNode type.
        * page/scrolling/ScrollingStateFixedNode.cpp:
        (WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):
        New virtual method that allows different kinds of nodes to sync layer positions.
        * page/scrolling/ScrollingStateFixedNode.h:
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::ScrollingStateNode::isStickyNode):
        (WebCore::ScrollingStateNode::syncLayerPositionForViewportRect):
        * page/scrolling/ScrollingStateStickyNode.cpp: Added.
        (WebCore::ScrollingStateStickyNode::create):
        (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
        (WebCore::ScrollingStateStickyNode::~ScrollingStateStickyNode):
        (WebCore::ScrollingStateStickyNode::clone):
        (WebCore::ScrollingStateStickyNode::updateConstraints):
        (WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
        (WebCore::ScrollingStateStickyNode::dumpProperties):
        * page/scrolling/ScrollingStateStickyNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateFixedNode.h.
        (ScrollingStateStickyNode):
        (WebCore::ScrollingStateStickyNode::viewportConstraints):
        (WebCore::toScrollingStateStickyNode):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::attachToStateTree): Handle sticky nodes.
        (WebCore::ScrollingCoordinatorMac::syncChildPositions): Generalize to different kinds of nodes by
        calling a virtual method on the node.
        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
        * page/scrolling/mac/ScrollingTreeStickyNode.h: Added.
        (ScrollingTreeStickyNode):
        * page/scrolling/mac/ScrollingTreeStickyNode.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.mm.
        (WebCore::ScrollingTreeStickyNode::create):
        (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
        (WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode):
        (WebCore::ScrollingTreeStickyNode::update):
        (WebCore::operator*):
        (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
        (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-12-18  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Split BackingStore histogram
        https://bugs.webkit.org/show_bug.cgi?id=105222

        Reviewed by Tony Chang.

        Add separate histograms for Consistency, Write, and Read errors.
        Recategorize some read errors as consistency errors.

        Tested the preprocessor logic by manually making some functions fail
        and printing the histogram string from chromium code.

        Next up is logging successes to get an idea of which functions have
        the highest failure _rate_.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::recordInternalError):
        (WebCore):
        (WebCore::setUpMetadata):
        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::getNewDatabaseId):
        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
        (WebCore::IDBBackingStore::getObjectStores):
        (WebCore::setMaxObjectStoreId):
        (WebCore::IDBBackingStore::deleteObjectStore):
        (WebCore::IDBBackingStore::getRecord):
        (WebCore::getNewVersionNumber):
        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::keyExistsInObjectStore):
        (WebCore::IDBBackingStore::getIndexes):
        (WebCore::setMaxIndexId):
        (WebCore::versionExists):
        (WebCore::IDBBackingStore::findKeyInIndex):
        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
        (WebCore::IDBBackingStore::keyExistsInIndex):
        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
        (WebCore::IndexCursorImpl::loadCurrentRow):

2012-12-18  Dean Jackson  <dino@apple.com>

        Track menu needs localization
        https://bugs.webkit.org/show_bug.cgi?id=105233

        Reviewed by Eric Carlson.

        Allow the UI strings in the closed captions menu to be localized, and
        profile strings for the English locale.

        Test: media/video-controls-captions-trackmenu-localized.html

        * English.lproj/Localizable.strings: Adds the four new captions strings.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Use localized getters.
        * platform/LocalizedStrings.cpp:
        (WebCore::textTrackClosedCaptionsText): New localized string getter.
        (WebCore::textTrackSubtitlesText): Ditto.
        (WebCore::textTrackOffText): Ditto.
        (WebCore::textTrackNoLabelText): Ditto.
        * platform/LocalizedStrings.h:

2012-12-18  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=102579
        [mac] Enable scaled cursors

        Reviewed by Dean Jackson.

        Not much is required to get this turned on. We just need the feature to be 
        defined, and we need to initialize m_imageScaleFactor in the Cursor constructors.

        * Configurations/FeatureDefines.xcconfig:
        * platform/mac/CursorMac.mm:
        (WebCore::Cursor::Cursor):
        (WebCore::Cursor::operator=):

2012-12-18  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] Add Build Phase to Check Headers for Inappropriate Macros (Platform.h macros)
        https://bugs.webkit.org/show_bug.cgi?id=104279

        Reviewed by David Kilzer.

        Set the executable as an input path on the check-* build phases.
        
        * WebCore.xcodeproj/project.pbxproj:

2012-12-18  Adam Klein  <adamk@chromium.org>

        [HTMLTemplateElement] Prevent first-level recursive <template> from resetting the implied context
        https://bugs.webkit.org/show_bug.cgi?id=104142

        Reviewed by Eric Seidel.

        This patch adds a stack of InsertionModes retains the chosen
        "implied context" for each template element.

        Based on a patch by Rafael Weinstein.

        Tests added to html5lib/run-template.html

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): Initialize the stack appropriately for HTMLTemplateElement.innerHTML.
        (WebCore::HTMLTreeBuilder::processTemplateStartTag):
        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
        (WebCore::HTMLTreeBuilder::processStartTag): Once we've figured out the insertion mode for a given <template> store it in the stack.
        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processEndOfFile): Clear the stack if we hit end of file to allow the assertion in finish().
        (WebCore::HTMLTreeBuilder::finished):
        * html/parser/HTMLTreeBuilder.h:
        (HTMLTreeBuilder):

2012-12-18  Andrew Lo  <anlo@rim.com>

        [BlackBerry] Use midpoint for fixed position heuristic
        https://bugs.webkit.org/show_bug.cgi?id=105329

        Reviewed by Rob Buis.
        Internally reviewed by Joe Mason.

        Use the midpoint of the layer when determining whether the
        fixed-position layer is on the top or bottom half of the screen
        rather than the top of the layer.
        Internal PR 237073.

        No new tests are needed.

        * platform/graphics/blackberry/LayerRenderer.cpp:
        (WebCore::LayerRenderer::updateLayersRecursive):

2012-12-18  Andrew Lo  <anlo@rim.com>

        [BlackBerry] Fixed position elements should be fixed position on x axis
        https://bugs.webkit.org/show_bug.cgi?id=105333

        Reviewed by Rob Buis.
        Internally reviewed by Joe Mason.

        Have fixed position elements be fixed on the X axis as well as Y.
        This better aligns with what other ports are doing.
        Internal PR237073.

        No new tests are needed.

        * platform/graphics/blackberry/LayerRenderer.cpp:
        (WebCore::LayerRenderer::updateLayersRecursive):

2012-12-18  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] Populate responseEnd on cross-origin requests
        https://bugs.webkit.org/show_bug.cgi?id=105231

        Reviewed by Tony Gentilcore.

        No new tests. Covered by existing cross-origin test, but masked by iframe bug.

        * page/PerformanceResourceTiming.cpp:
        (WebCore::PerformanceResourceTiming::responseEnd):

2012-12-18  Tim Horton  <timothy_horton@apple.com>

        Unreviewed build fix after http://trac.webkit.org/changeset/138041

        Need to cast int64_t to int32_t to avoid a warning on some compilers.

        * platform/LayoutUnit.h:
        (WebCore::boundedMultiply):

2012-12-18  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] shape-inside layout fails to adjust first line correctly for writing-mode: vertical-rl
        https://bugs.webkit.org/show_bug.cgi?id=104419

        Reviewed by Dirk Schulze.

        ExclusionShapes no longer maintain a private "internal" coordinate system,
        they're now defined in logical coordinates. The createExclusionShape() method
        now handles the one-time conversion from physical to logical coordinates.

        Test: fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-003.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::ExclusionPolygon::getExcludedIntervals): Removed logical to internal coordinate conversions.
        (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Ditto.
        * rendering/ExclusionPolygon.h:
        * rendering/ExclusionRectangle.cpp:
        (WebCore::ExclusionRectangle::getExcludedIntervals): Removed logical to internal coordinate conversions.
        (WebCore::ExclusionRectangle::getIncludedIntervals): Ditto.
        (WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): Ditto.
        * rendering/ExclusionRectangle.h:
        * rendering/ExclusionShape.cpp:
        (WebCore::physicalRectToLogical): Convert a FloatRect defined with coordinates to logical coordinates.
        (WebCore::physicalPointToLogical): Similar.
        (WebCore::physicalSizeToLogical): Simlar.
        (WebCore::ExclusionShape::createExclusionShape): Convert shapes from physical to logical coordinates.
        * rendering/ExclusionShape.h:
        (ExclusionShape): Removed internal to logical coordinate conversion utility methods.

2012-12-17  Emil A Eklund  <eae@chromium.org>

        Optimize LayoutUnit::boundedMultiply
        https://bugs.webkit.org/show_bug.cgi?id=105216

        Reviewed by Levi Weintraub.

        LayoutUnit::boundedMultiply is used for multiplication that's
        prone to overflow and for all LayoutUnit multiplication if
        SATURATED_LAYOUT_ARITHMETIC is enabled. The current approach is
        quite inefficient.

        Change it to use a more efficient saturated multiplication
        implementation. As the implementation needs to use
        kFixedPointDenominator it is implemented in LayoutUnit.h instead
        of in wtf/SaturatedArithmetic.h.

        Test: Covered by TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp

        * platform/LayoutUnit.h:
        (WebCore::boundedMultiply):

2012-12-18  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] Blocks should not re-use their parent's ExclusionShapeInsideInfo
        if they participate in inline layout
        https://bugs.webkit.org/show_bug.cgi?id=104582

        Reviewed by Julien Chaffraix.

        Blocks that participate in inline layout should not re-use a parent's
        ExclusionShapeInsideInfo, as the parent and child would both use the info for
        layout at the same time. This patch alters LayoutState to not include
        ExclusionShapeInsideInfo if the current block participates in inline layout (ie,
        it is a float, inline-block, or inline-table).

        Test: fast/exclusions/shape-inside/shape-inside-recursive-layout.html

        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::ownerBlock): Return the block associated with
        the shape-inside style.
        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState): Do not re-use ExclusionShapeInsideInfo
        on a block that participates in inline layout (floats and inline blocks).
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::allowsExclusionShapeInsideInfoSharing): Returns whether the
        block can re-use an ExclusionShapeInsideInfo from its parent block.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Adding an assert to make sure
        we do not overwrite ExclusionShapeInsideInfo's state during a recursive layout.
        * rendering/RenderView.h:
        (WebCore::RenderView::pushLayoutState): Push a new LayoutState in the case that
        ExclusionShapeInsideInfo exists but should not be propagated.

2012-12-18  Tony Chang  <tony@chromium.org>

        REGRESSION(r136324): flex items with percent heights not resizing
        https://bugs.webkit.org/show_bug.cgi?id=105213

        Reviewed by Ojan Vafai.

        We were missing some of the logic for when to relayout a flex child. Refactor
        the code in RenderBlock::layoutBlockChildren so we can use it in RenderFlexibleBox.

        Test: css3/flexbox/flexitem-percent-height-change.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateNeedsLayoutAndPreferredLogicalWidthsDirtyBeforeBlockChildLayout):
        Pull out logic needed by RenderFlexibleBox.
        (WebCore::RenderBlock::layoutBlockChildren): Use helper method.
        * rendering/RenderBlock.h:
        (RenderBlock): Add updateNeedsLayoutAndPreferredLogicalWidthsDirtyBeforeBlockChildLayout.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock): Pass through relayoutChildren bool.
        (WebCore::RenderFlexibleBox::layoutFlexItems): Pass through relayoutChildren and mark the child as needing
        layout if it has a percent height.
        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): We need to always layout here since we're
        trying to get the preferred size.
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        * rendering/RenderFlexibleBox.h:

2012-12-17  Simon Fraser  <simon.fraser@apple.com>

        Fix position:-webkit-sticky behavior when zoomed
        https://bugs.webkit.org/show_bug.cgi?id=105251

        Reviewed by Dean Jackson.

        Position sticky elements were misplaced when stickily-constrained, under zooming.
        The cause was that some of the functions used to compute sticky position
        took page scale into account, and some did not.
        
        Fix by using localToContainerQuad(..., view()) to compute RenderView-relative
        quads, which avoids page scale, so all the constraints math is done ignoring
        page scale. This also requires that we compute a scale-free viewport rect
        in stickyPositionOffset().

        Test: fast/css/sticky/sticky-top-zoomed.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
        (WebCore::RenderBoxModelObject::stickyPositionOffset):

2012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: DataGrid cell values are "clipped" in editing mode.
        https://bugs.webkit.org/show_bug.cgi?id=105277

        Reviewed by Pavel Feldman.

        UIUtils expects that "text-overflow" is not "ellipsis".

        * inspector/front-end/dataGrid.css:
        (.data-grid td.editing > div): Override text-overflow for editing mode.

2012-12-18  Ken Kania  <kkania@chromium.org>

        [Inspector] Add frameId for frame owner nodes.
        https://bugs.webkit.org/show_bug.cgi?id=105317

        Reviewed by Pavel Feldman.

        This is needed to translate from a node ID to the execution context ID for
        evaluating scripts in the associated frame.

        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):

2012-12-18  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile fix.
        https://bugs.webkit.org/show_bug.cgi?id=105175

        Reviewed by Simon Fraser.

        * rendering/RenderLayer.h: Compile fixes for USE(ACCELERATED_COMPOSITING) mismatch.

2012-12-18  Emil A Eklund  <eae@chromium.org>

        Have kFixedPointDenominator be constant across ports
        https://bugs.webkit.org/show_bug.cgi?id=104843

        Reviewed by Julien Chaffraix.

        Currently the kFixedPointDenominator constant is set to either
        64 or 1 depending on the SUBPIXEL_LAYOUT flag. As this constant
        is used to limit the range of supported values this results in
        inconsistencies across ports.

        Change kFixedPointDenominator to always be 64 and introduce a
        new constant (kEffectiveFixedPointDenominator) that varies.
        This ensures that the same range of values are supported across
        ports regardless of the SUBPIXEL_LAYOUT flag.
        
        Covered by fast/css/large-numbers.html and fast/css/large-number-round-trip.html

        * platform/LayoutUnit.h:
        Add kEffectiveFixedPointDenominator constant and change
        LayoutUnit code to use it instead of kFixedPointDenominator
        which is now set to 64 regardless of the SUBPIXEL_LAYOUT flag.

2012-12-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137979.
        http://trac.webkit.org/changeset/137979
        https://bugs.webkit.org/show_bug.cgi?id=105311

        nodeName returned by the inspector protocol commands should
        match one accessible fro JS (Requested by yurys_ on #webkit).

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):

2012-12-18  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Selector matches are not marked after property editing
        https://bugs.webkit.org/show_bug.cgi?id=105284

        Reviewed by Vsevolod Vlasov.

        Once a property edit is committed, the selector markup is reset and needs to be re-applied.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype.update):

2012-12-18  Eric Carlson  <eric.carlson@apple.com>

        Add in-band text track cues only once
        https://bugs.webkit.org/show_bug.cgi?id=104593

        Reviewed by Dean Jackson.

        Test: media/track/track-in-band-cues-added-once.html

        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::hasCue): New.
        * html/track/InbandTextTrack.h:

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::setCueSettings): Remember the raw cue settings so they can be accessed later.
        * html/track/TextTrackCue.h:

        * platform/graphics/InbandTextTrackPrivateClient.h: Declare hasCue.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processCue): Early return if m_player has been cleared.
        (WebCore::InbandTextTrackPrivateAVF::setMode): Ditto.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::seek): Clear the partially accumulated cue when the seek 
            starts, not when it completes.
        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): Don't add a cue if it is already in the
            text track cue list.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::clearTextTracks): Drive-by cleanup, clear the track list completely.

2012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Ordering of cookies displayed is nondeterministic.
        https://bugs.webkit.org/show_bug.cgi?id=105272

        Reviewed by Vsevolod Vlasov.

        This patch fixes double-selection of request and sets default ordering
        of cookies.

        * inspector/front-end/CookiesTable.js: By default sort by name.
        * inspector/front-end/NetworkPanel.js: Do not fire "select" on
        mouse-click in viewing-request mode.

2012-12-18  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed, rolling out r138011.
        http://trac.webkit.org/changeset/138011
        https://bugs.webkit.org/show_bug.cgi?id=105272

        WebInspector: Broke request selection in the Network panel

        * inspector/front-end/CookiesTable.js:
        (WebInspector.CookiesTable):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkPanel.prototype._toggleGridMode):
        (WebInspector.NetworkPanel.prototype._toggleViewingRequestMode):
        (WebInspector.NetworkDataGridNode.prototype.createCells):
        (WebInspector.NetworkDataGridNode.prototype.get selectable):

2012-12-18  Nate Chapin  <japhet@chromium.org>

        REGRESSION (r137607): Cannot download files, stuck in “Preparing to download”
        https://bugs.webkit.org/show_bug.cgi?id=105044

        Reviewed by Antti Koivisto.

        The work done by DocumentLoader::mainReceivedError() changed subtly in r137607,
        such that it cancels the ResourceHandle. We want to treat switching to a download
        like a failure, where WebCore assumes that the load is finished, and no
        cancellation is required.

        No new tests, tested manually by verifying that downloading files works in
        Safari Mac.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::continueAfterContentPolicy):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::cancel): Remove the workaround added in r137763.

2012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: [Network] Ordering of cookies displayed is nondeterministic.
        https://bugs.webkit.org/show_bug.cgi?id=105272

        Reviewed by Alexander Pavlov.

        This patch fixes double-selection of request and sets default ordering
        of cookies.

        * inspector/front-end/CookiesTable.js: By default sort by name.
        * inspector/front-end/NetworkPanel.js: Remove redundant member, make
        rows "not-selectable", activate request selection on "mouse-down".

2012-12-18  Tommy Widenflycht  <tommyw@chromium.org>

        [JSC] Refactoring CodeGeneratorJS.pm to simplify adding support for overloaded constructors
        https://bugs.webkit.org/show_bug.cgi?id=105271

        Reviewed by Kentaro Hara.

        This patch splits the very large function that generates constructor code into a few smaller ones.
        No changes in actual generated code but some functions in the generated bindings code moves.

        Existing tests cover patch.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateConstructorDefinitions):
        (GenerateConstructorDefinition):
        (GenerateConstructorSupportDefinitions):
        (IsCustomConstructable):
        (IsConstructable):
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::JSFloat64ArrayConstructor::constructJSFloat64Array):
        (WebCore):
        (WebCore::toJS):
        (WebCore::JSFloat64Array::indexSetter):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore):
        (WebCore::JSTestEventConstructorConstructor::JSTestEventConstructorConstructor):
        (WebCore::JSTestEventConstructorConstructor::finishCreation):
        (WebCore::JSTestEventConstructorConstructor::getOwnPropertySlot):
        (WebCore::JSTestEventConstructorConstructor::getOwnPropertyDescriptor):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
        (WebCore):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore):
        (WebCore::JSTestNamedConstructorNamedConstructor::JSTestNamedConstructorNamedConstructor):
        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestNode.cpp:
        (WebCore::JSTestNodeConstructor::constructJSTestNode):
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjConstructor::constructJSTestObj):
        (WebCore):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
        (WebCore):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
        (WebCore):

2012-12-18  Max Feil  <mfeil@rim.com>

        [BlackBerry] Add support for setMuted() for media
        https://bugs.webkit.org/show_bug.cgi?id=105254

        Reviewed by George Staikos.

        Simply pass the API call through to the platform layer.

        Covered by existing tests.

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::setMuted):
        (WebCore):
        (WebCore::MediaPlayerPrivate::muted):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
        (MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::supportsMuting):

2012-12-18  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: show cached images under MemoryCache -> Images section
        https://bugs.webkit.org/show_bug.cgi?id=105261

        Reviewed by Pavel Feldman.

        Provided class name and name for several objects related to CachedImage.
        Changed native memory snapsho view so that MemoryCache.Image section can
        be expanded into individual images.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeMemorySnapshotView):
        (WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph):
        (WebInspector.NativeHeapGraphEdge):
        (WebInspector.NativeHeapGraphEdge.prototype.type):
        (WebInspector.NativeHeapGraphEdge.prototype.name):
        (WebInspector.NativeHeapGraphEdge.prototype.target):
        (WebInspector.NativeHeapGraphEdge.prototype._getStringField):
        (WebInspector.NativeHeapGraphEdge.prototype.toString):
        (WebInspector.NativeHeapGraphNode.prototype.size):
        (WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
        (WebInspector.NativeHeapGraphNode.prototype.outgoingEdges):
        (WebInspector.NativeHeapGraphNode.prototype.targetOfEdge):
        (WebInspector.NativeHeapGraphNode.prototype.targetsOfAllEdges):
        (WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
        (WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
        (WebInspector.NativeHeapGraphNode.prototype._getStringField):
        (WebInspector.NativeHeapGraphNode.prototype.toString):
        (WebInspector.NativeHeapGraph):
        (WebInspector.NativeHeapGraph.prototype.rootNodes):
        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
        (WebInspector.NativeHeapGraph.prototype._addDummyNode):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::reportMemoryUsage):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::reportMemoryUsage):
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::reportMemoryUsage):
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::reportMemoryUsage):
        (WebCore::FrameData::reportMemoryUsage):
        * platform/graphics/Image.cpp:
        (WebCore::Image::reportMemoryUsage):
        * platform/graphics/skia/MemoryInstrumentationSkia.cpp:
        (reportMemoryUsage):

2012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Calculate "idle" time for CPU profiles.
        https://bugs.webkit.org/show_bug.cgi?id=103120

        Reviewed by Pavel Feldman.

        CPU profiles contain a very confusing "(program)" item.
        It is time when there is no JS stack.
        That could be either idle time, or time when browser is doing something.

        To split "(program)" item to idle and really program time we are to
        calculate idle time during profiling.

        * bindings/js/ScriptProfile.cpp: Added "idleTime" getter.
        * bindings/js/ScriptProfile.h: Ditto.
        * bindings/js/ScriptProfiler.h:
        Added getter of thread-local map of currently written profiles.
        * bindings/v8/ScriptProfile.cpp: Added "idleTime" getter.
        * bindings/v8/ScriptProfile.h: Ditto.
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::start): Put profile name to map.
        (WebCore::ScriptProfiler::stop): Remove profile name from map;
        pass idleTime to profile constructor.
        * bindings/v8/ScriptProfiler.h:
        Added getter of thread-local map of currently written profiles.
        * inspector/Inspector.json: Added "idleTime" field to profile.
        * inspector/InspectorController.cpp: Pass hooks to profiler agent.
        * inspector/InspectorProfilerAgent.cpp:
        Add idle time to currently written profiles.
        * inspector/InspectorProfilerAgent.h:
        Added member to hold reference to map of currently written profiles.
        * inspector/InspectorTimelineAgent.h:
        Cleanup.
        * inspector/ScriptProfile.idl:
        Add "idleTime" member.

2012-12-17  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: MediaQueryList listener silently catches errors
        https://bugs.webkit.org/show_bug.cgi?id=105162

        Reviewed by Alexander Pavlov.

        Drive-by: removed unused ScriptCallback::call(bool).

        Test: inspector-protocol/media-query-listener-exception.html

        * bindings/js/ScriptFunctionCall.cpp:
        (WebCore::ScriptCallback::call):
        * bindings/js/ScriptFunctionCall.h:
        (ScriptCallback):
        * bindings/v8/ScriptFunctionCall.cpp: report uncaught exception to the inspector
        if it was thrown during the function call.
        (WebCore::ScriptCallback::call):
        * bindings/v8/ScriptFunctionCall.h:
        (ScriptCallback):

2012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Network: display JavaScript stack in case of script initiator.
        https://bugs.webkit.org/show_bug.cgi?id=104899

        Reviewed by Vsevolod Vlasov.

        Show popup with navigavle stack-trace.

        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._getPopoverAnchor):
        Added new target.
        (WebInspector.NetworkLogView.prototype._showPopover):
        Added case for new target.
        (WebInspector.NetworkLogView.prototype._generateScriptInitiatedPopoverContent):
        Generates table with stack trace items.
        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
        Added target marker, removed annoying titles.

2012-12-18  Tamas Czene  <tczene@inf.u-szeged.hu>

        Style fix to OpenCL SVG Filters
        https://bugs.webkit.org/show_bug.cgi?id=105265

        Reviewed by Zoltan Herczeg.

        Inserted missing spaces and correct copyright text. There were no vital changes.

        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
        (WebCore):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
        (FilterContextOpenCL):
        * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:
        (WebCore::FilterContextOpenCL::applyFEColorMatrix):
        * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp:
        (WebCore):
        (WebCore::FilterContextOpenCL::compileFETurbulence):
        (WebCore::FilterContextOpenCL::applyFETurbulence):
        (WebCore::FETurbulence::platformApplyOpenCL):
        * platform/graphics/gpu/opencl/OpenCLHandle.h:

2012-12-17  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [WebGL] handle video elements used in WebGL
        https://bugs.webkit.org/show_bug.cgi?id=105170

        Reviewed by Yury Semikhatsky.

        Copy current image of video elements into a canvas to use it later in the replay.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-12-17  Luke Macpherson   <macpherson@chromium.org>

        Add ASSERTions to ensure that CSSPropertys that are variables only ever refer to CSSValues that are variables.
        https://bugs.webkit.org/show_bug.cgi?id=104876

        Reviewed by Steve Block.

        Add assertions to CSSProperty constructors to make that if it is initialized with CSSPropertyVariable that
        the value type associated with it is also a variable. This is already asserted at read time, but ASSERTing
        here will produce a more useful backtrace.

        No new tests as functionality unchanged.

        * css/CSSProperty.h:
        (WebCore::CSSProperty::CSSProperty):

2012-12-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Make inspector scripts sourceURL absolute.
        https://bugs.webkit.org/show_bug.cgi?id=105166

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/utilities.js:

2012-12-17  Huang Dongsung  <luxtella@company100.net>

        REGRESSION(r137442): Crash because of an uninitialized member.
        https://bugs.webkit.org/show_bug.cgi?id=105246

        Reviewed by Noam Rosenthal.

        TextureMapperGL defines m_context although TextureMapper defines m_context.
        r137442 removes the initialization code in TextureMapperGL, which is
        what causes this regression. This patch removes the duplicated member
        in TextureMapperGL.

        No new tests. Covered by existing tests.

        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore::TextureMapper::TextureMapper):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::TextureMapper::setGraphicsContext):
        (WebCore::TextureMapper::graphicsContext):
        (TextureMapper):
        * platform/graphics/texmap/TextureMapperGL.h:
        (WebCore):

2012-12-17  Philip Rogers  <pdr@google.com>

        Queue container size requests while images are loading.
        https://bugs.webkit.org/show_bug.cgi?id=105097

        Reviewed by Dean Jackson.

        We use CachedImage::setContainerSizeForRenderer(...) to notify images of requesting
        container sizes. Unfortunately, if the image is not yet loaded we ignore this container
        size information! This patch stores requesting container sizes made while the image is
        not yet loaded.

        This patch fixes a bug where SVG images would display incorrectly on the first load but
        correctly thereafter. Additionally, this bug caused the SVGImageCache to not be used in many
        real world scenarios.

        This patch is loosely based on a patch by blambov in WK98403.

        Test: http/tests/misc/svg-image-delayed-size-negotiation.html

        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::didRemoveClient):
        (WebCore::CachedImage::allClientsRemoved):
        (WebCore::CachedImage::setContainerSizeForRenderer):
        (WebCore::CachedImage::clear):
        (WebCore::CachedImage::createImage):
        * loader/cache/CachedImage.h:

            A new map has been added to track renderer -> size information before an image has
            loaded. Note that this affects all images (not just images that require container size
            information) but we cannot know the image type before the image has loaded.

2012-12-17  Shinya Kawanaka  <shinyak@chromium.org>

        Web Inspector: need to visually distinguish UA shadow roots
        https://bugs.webkit.org/show_bug.cgi?id=104877

        Reviewed by Yury Semikhatsky.

        Now we have an option to show ShadowRoot in the Inspector. Since the Inspector has displayed UserAgent ShadowRoot and
        Author ShadowRoot as the same #shadow-root, a user could not distinguish them.

        We would like to show UserAgent ShadowRoot as #webkit-shadow-root.

        Test: inspector/shadow-root.html

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode): Make nodeName of UserAgent ShadowRoot #webkit-shadow-root.
        Since the correct nodeName of ShadowRoot is #document-fragment, we have to specify the nodeName of Author ShadowRoot
        as #shadow-root here.

2012-12-17  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
        https://bugs.webkit.org/show_bug.cgi?id=103959

        Reviewed by Kenneth Rohde Christiansen.

        TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop() is used when class
        methods cannot be called asynchronously by client. Updates of tiles are
        committed as soon as all the events in event queue have been processed.
        After this patch Frame sets m_commitTileUpdatesOnIdleEventLoop to true.

        In addition, remove TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed()
        which was introduced for Coordinated Graphics.

        Refactoring covered by existing tests.

        * page/Frame.cpp:
        (WebCore::Frame::setTiledBackingStoreEnabled):
        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::TiledBackingStore):
        (WebCore::TiledBackingStore::setTrajectoryVector):
          Separate setting a trajectory vector from coverWithTilesIfNeeded().
        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
        (WebCore::TiledBackingStore::updateTileBuffers):
        (WebCore::TiledBackingStore::createTiles):
        (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
        (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
        (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
        (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
        (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):
        (WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop):
        * platform/graphics/TiledBackingStoreClient.h:
        (WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
            If TiledBackingStore does not create all tiles, TiledBackingStore
            notifies a client of needing to create tiles more, when
            m_commitTileUpdatesOnIdleEventLoop is false.

2012-12-17  Dean Jackson  <dino@apple.com>

        Track menu should be sorted
        https://bugs.webkit.org/show_bug.cgi?id=105229

        Reviewed by Eric Carlson.

        Make sure that the <li> elements in the track menu are correctly
        sorted as they are built. This uses insertion sort, but it shouldn't
        be horrible given that we don't expect a huge number of tracks.

        Test: media/video-controls-captions-trackmenu-sorted.html

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
        (WebCore::insertTextTrackMenuItemIntoSortedContainer): New function that calls insertBefore with
        the correct parameters to ensure the <ul> is correctly sorted.
        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
        * html/shadow/MediaControlElements.h:
        (MediaControlClosedCaptionsTrackListElement): Rename menuItems to m_menuItems for consistency.

2012-12-17  Matthew Dempsky  <mdempsky@google.com>

        Regression causing DOM objects to have unstable NPObject* references with v8 bindings
        https://bugs.webkit.org/show_bug.cgi?id=104921

        Reviewed by Kentaro Hara.

        Fix regression introduced by changeset 135804 resulting in
        unstable NPObject* references for v8 objects.  In the iter !=
        v8NPObjectMap->end() code path, objectVector was left unassigned
        if the for loop terminated without returning.

        Also, V8Object::GetIdentityHash() is documented as not being guaranteed
        as unique.  As such, don't ASSERT() that two objects with the same hash
        must therefor be the same object.

        Tests: plugins/npruntime/embed-property-iframe-equality.html

        * bindings/v8/NPV8Object.cpp:
        (WebCore::npCreateV8ScriptObject): Fix.

2012-12-17  Chris Fleizach  <cfleizach@apple.com>

        Seamless iframe should not announce a new browsing context
        https://bugs.webkit.org/show_bug.cgi?id=86317

        Reviewed by Eric Seidel.

        Introduce a new role for seamless frames so that the platforms can decide what to do
        with this kind of object. For the mac, it's exposed as a group.

        Test: platform/mac/accessibility/seamless-iframe.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore):
        * accessibility/AccessibilityNodeObject.h:
        (AccessibilityNodeObject):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::isWebArea):
        (WebCore::AccessibilityObject::isSeamlessWebArea):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::parentObjectIfExists):
        (WebCore::AccessibilityRenderObject::parentObject):
        (WebCore::AccessibilityRenderObject::boundingBoxRect):
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (createAccessibilityRoleMap):

2012-12-17  KyungTae Kim  <ktf.kim@samsung.com>

        Percentage width replaced element incorrectly rendered when intrinsic size changed
        https://bugs.webkit.org/show_bug.cgi?id=102784

        Reviewed by Tony Chang.

        To make relayout when the image dimension is changed,
        and if the logical width is percent type and the containing block fits to it.
        In this case, the containing block's width need to be updated first,
        because the 'newWidth' was calculated from the 'old containing block width'.

        Test: fast/css/percent-width-img-src-change.html

        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::imageDimensionsChanged):

2012-12-17  Beth Dakin  <bdakin@apple.com>

        DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since 
        that varies
        https://bugs.webkit.org/show_bug.cgi?id=105116
        -and corresponding-
        <rdar://problem/12889449>

        Reviewed by Geoff Garen.

        DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since that 
        varies depending on window size. This can lead to a huge amount of variability in 
        the heuristic which is not desired. Instead, we should use a hard-coded rect.
        * page/Page.cpp:
        (WebCore::relevantViewRect):
        (WebCore):
        (WebCore::Page::addRelevantRepaintedObject):
        (WebCore::Page::addRelevantUnpaintedObject):

2012-12-17  Simon Fraser  <simon.fraser@apple.com>

        Fix repositioning of fixed elements on zooming
        https://bugs.webkit.org/show_bug.cgi?id=105223

        Reviewed by Beth Dakin.

        When zoomed, scrolling would move the layers of fixed-position
        elements oddly. This happened because on the scrolling thread we
        passed a scale of 1, rather than the actual page scale to 
        scrollOffsetForFixedPosition().
        
        Fix by plumbing the page scale through the scrolling state node
        to the scrolling node.

        Test: platform/mac/tiled-drawing/fixed/four-bars-zoomed.html

        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
        (WebCore::ScrollingStateScrollingNode::dumpProperties):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (WebCore::ScrollingStateScrollingNode::frameScaleFactor):
        (ScrollingStateScrollingNode):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
        (WebCore::ScrollingTreeScrollingNode::update):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::frameScaleFactor):
        (ScrollingTreeScrollingNode):
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollParameters):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
        (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

2012-12-17  Dima Gorbik  <dgorbik@apple.com>

        Implement matching cue by the class name with ::cue pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=104191

        Reviewed by Antti Koivisto.

        Implemented the ::cue() pseudo-element with an argument that may hold a simple selector list.
        This enables matching cue objects by the class name.

        Test: media/track/track-css-matching.html

        * css/CSSGrammar.y.in: support parsing the ::cue() with an argument.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectFunctionTypeToken): tokenize the 'cue'.
        (WebCore::CSSParser::updateSpecifiersWithElementName): do not set the tag for the cue pseudo-element because
        the ::cue may match elements with different tags.
        (WebCore::CSSParser::updateSpecifiers): the behavior for the PseudoCue selector should be same as for
        unknown pseudo elements - the pseudo-element should stay on top of the selector chain.
        * css/CSSSelector.cpp: added the type detection for the new selector.
        (WebCore::CSSSelector::pseudoId):
        (WebCore::nameToPseudoTypeMap):
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        * css/RuleSet.cpp: add a new list to hold all the rulesets for the new pseudo element.
        (WebCore::RuleSet::reportMemoryUsage):
        (WebCore::RuleSet::addRule):
        (WebCore::RuleSet::shrinkToFit):
        * css/RuleSet.h:
        (RuleSet):
        (WebCore::RuleSet::cuePseudoRules):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRules):
        * dom/Element.cpp: an addition to the rare data to be able to find out if the node is a webvtt node.
        (WebCore):
        (WebCore::Element::isWebVTTNode):
        (WebCore::Element::setIsWebVTTNode):
        (WebCore::Element::cloneDataFromElement):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (ElementRareData):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        (WebCore::NodeRareData::isWebVTTNode):
        (WebCore::NodeRareData::setIsWebVTTNode):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::markNodesAsWebVTTNodes): mark the cloned nodes as WebVTT nodes.
        (WebCore):
        (WebCore::TextTrackCue::getCueAsHTML):
        * html/track/TextTrackCue.h:
        (TextTrackCue):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken):
        * rendering/style/RenderStyleConstants.h:

2012-12-17  Michael Pruett  <michael@68k.org>

        IndexedDB: Don't use strings to represent serialized values
        https://bugs.webkit.org/show_bug.cgi?id=104354

        Reviewed by Kentaro Hara.

        Use Vector<uint8_t> rather than String to represent serialized values
        in IndexedDB. This change is necessary to implement IndexedDB for JSC.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBBackingStore::getRecord):
        (WebCore::IDBBackingStore::putRecord):
        (WebCore::ObjectStoreKeyCursorImpl::value):
        (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
        (WebCore::ObjectStoreCursorImpl::value):
        (ObjectStoreCursorImpl):
        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
        (WebCore::IndexKeyCursorImpl::value):
        (WebCore::IndexCursorImpl::value):
        (WebCore::IndexCursorImpl::IndexCursorImpl):
        (IndexCursorImpl):
        (WebCore::IndexCursorImpl::loadCurrentRow):
        * Modules/indexeddb/IDBBackingStore.h:
        (IDBBackingStore):
        (Cursor):
        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::value):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::SerializedScriptValue):
        (WebCore):
        * bindings/js/SerializedScriptValue.h:
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::createFromWireBytes):
        (WebCore):
        (WebCore::SerializedScriptValue::toWireBytes):
        * bindings/v8/SerializedScriptValue.h:
        (SerializedScriptValue):

2012-12-17  Jaehun Lim  <ljaehun.lim@samsung.com>

        Change SET_VAR, SET_BORDERVALUE_COLOR macro to require semicolon(;) at the end of the line
        https://bugs.webkit.org/show_bug.cgi?id=104774

        Reviewed by Eric Seidel.

        Remove the last ; in SET_VAR, SET_BORDERVALUE_COLOR macro definition.
        Add the omitted ; in RenderStyle.h | .cpp

        No new tests, just style change.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::setColor):
        (WebCore::RenderStyle::setVisitedLinkColor):
        (WebCore::RenderStyle::setHorizontalBorderSpacing):
        (WebCore::RenderStyle::setVerticalBorderSpacing):
        * rendering/style/RenderStyle.h:

2012-12-17  Yong Li  <yoli@rim.com>

        [BlackBerry] Deadlock caused by PluginViewPrivate::destroyBuffers()
        https://bugs.webkit.org/show_bug.cgi?id=105215

        Reviewed by Rob Buis.
        Also internally reviewed by George Staikos.

        PR# 266443
        It should release mutexes before sending sync message.

        * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
        (WebCore::PluginViewPrivate::destroyBuffers):

2012-12-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137198.
        http://trac.webkit.org/changeset/137198
        https://bugs.webkit.org/show_bug.cgi?id=105212

        This patch is causing API behavior compatibility problems
        (Requested by zdobersek on #webkit).

        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::updateFromSoupMessage):

2012-12-17  Dominic Mazzoni  <dmazzoni@google.com>

        AX: textUnderElement should consider alt text, but skip links and controls
        https://bugs.webkit.org/show_bug.cgi?id=101650

        Reviewed by Chris Fleizach.

        Getting inner text from an element now ignores focusable descendants
        and containers, but uses alternative text.  The computation of
        textUnderElement is now recursive and doesn't depend on text
        iterators, which might not do the right thing for accessibility
        anyways.

        For GTK, the old behavior is retained so that support for
        the object replacement character is still there. Filed a new
        bug (105214) for GTK folks to look at this.

        Test: accessibility/button-title-uses-inner-img-alt.html
        Test: accessibility/focusable-div.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore):
        (WebCore::shouldUseAccessiblityObjectInnerText):
        (WebCore::AccessibilityNodeObject::textUnderElement):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::textUnderElement):

2012-12-17  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Prevent CookieManager from blocking the WKT thread
        https://bugs.webkit.org/show_bug.cgi?id=105111

        Prevent CookieManager from blocking the WKT Thread.

        PR 265603

        Reviewed by Rob Buis.

        Adding some guards to CookieManager so it will return immedately
        if getCookie functions are called when the database isn't loaded yet.

        setCookie functions will be redispatched until the database is ready.

        * platform/blackberry/CookieManager.cpp:
        (WebCore::CookieManager::CookieManager):
        (WebCore::CookieManager::setCookies):
        (WebCore::CookieManager::getCookie):
        (WebCore::CookieManager::generateHtmlFragmentForCookies):
        (WebCore::CookieManager::getRawCookies):
        (WebCore::CookieManager::removeAllCookies):
        (WebCore::CookieManager::getBackingStoreCookies):
        (WebCore::CookieManager::setPrivateMode):
        (WebCore::CookieManager::removeCookieWithName):
        * platform/blackberry/CookieManager.h:

2012-12-17  Levi Weintraub  <leviw@chromium.org>

        Add support for tracking hit test rectangles to enable fast event rejection in the compositor
        https://bugs.webkit.org/show_bug.cgi?id=103914

        Reviewed by James Robinson.

        Adding support for tracking hit test target regions for the purpose of performing initial hit testing
        in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
        aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
        thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
        region. This patch includes the implementation to turn this on in Chromium.

        To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
        instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
        when new touch event handlers are registered or removed, or after layout much like how
        nonFastScrollableRegions are currently tracked.

        This implementation will not properly update the hit test rects when the renderers are inside a sub-
        tree that scrolls.

        This change was initially rolled out due to stale Node pointers in Document's touchEventTargets. This
        patch adds a callback to remove the Node from that structure to Node's destructor. This is covered
        by the touch-target-removed-crash.html test case which is also added.

        Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
              platform/chromium/fast/events/touch/touch-target-removed-crash.html

        * dom/Document.cpp:
        (WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
        are stored as the Document they point to.
        (WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
        to update the ScrollingCoordinator with the change.
        (WebCore::Document::didRemoveTouchEventHandler): Ditto.
        * dom/Document.h:
        (WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
        expose whether there are any or not.
        (WebCore::Document::touchEventTargets):
        * dom/Node.cpp:
        (WebCore::Node::didMoveToNewDocument):
        (WebCore::tryAddEventListener):
        (WebCore::tryRemoveEventListener):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::restore):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        (WebCore::HTMLInputElement::updateType):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
        (WebCore::DOMWindow::removeEventListener):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleTouchEvent):
        * page/Frame.cpp:
        (WebCore::Frame::setDocument):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
        nodes and generate the absolute hit testing rects.
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
        the scrolling tree/compositor.
        (ScrollingCoordinator):
        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
        (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
        (ScrollingCoordinatorChromium):
        * testing/Internals.cpp:
        (WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
        it's no longer stored as an int in Document.
        (WebCore::Internals::touchEventTargetClientRects):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-12-17  Avi Drissman  <avi@chromium.org>

        Dragging a .jpg to Finder saves it as .jpeg
        https://bugs.webkit.org/show_bug.cgi?id=105140
        https://code.google.com/p/chromium/issues/detail?id=35811

        Reviewed by Tony Chang.

        If the filename's extension is already valid for the MIME type, we don't
        need to rewrite it to the preferred extension.

        No layout tests because it involves dragging items to the desktop.

        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::writeImageToDataObject):

2012-12-17  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Exclusions] shape-outside on floats for rectangle shapes height/width
        https://bugs.webkit.org/show_bug.cgi?id=100398

        Reviewed by Julien Chaffraix.

        Implement shape outside for floats changing only the height and width
        as a simple starting point.

        This implementation changes floats to use the bounding box of the
        shape outside instead of the margin box for layout. The content box of
        the float is unchanged. This patch does not support positioning the
        shape outside box, so the x and y parameters are currently ignored in
        the specified shape. This will be fixed in a patch for bug 100399.

        Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-margin-is-ignored.html
               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-horizontal-multiple.html
               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-percentage.html
               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle.html

        * CMakeLists.txt: Add ExclusionShapeOutsideInfo.{cpp,h}.
        * GNUmakefile.list.am: Add ExclusionShapeOutsideInfo.{cpp,h}.
        * Target.pri: Add ExclusionShapeOutsideInfo.{cpp,h}.
        * WebCore.gypi: Add ExclusionShapeOutsideInfo.{cpp,h}.
        * WebCore.vcproj/WebCore.vcproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
        * WebCore.xcodeproj/project.pbxproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
        * rendering/ExclusionShapeOutsideInfo.cpp: Added. Associates the
            ExclusionShape object for shape outside with a RenderBox. Analagous to
            ExclusionShapeInsideInfo.
        (WebCore::exclusionShapeOutsideInfoMap):
        (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
        (WebCore::ExclusionShapeOutsideInfo::~ExclusionShapeOutsideInfo):
        (WebCore::ExclusionShapeOutsideInfo::ensureInfoForRenderBox):
        (WebCore::ExclusionShapeOutsideInfo::infoForRenderBox):
        (WebCore::ExclusionShapeOutsideInfo::isInfoEnabledForRenderBox):
        (WebCore::ExclusionShapeOutsideInfo::removeInfoForRenderBox):
        (WebCore::ExclusionShapeOutsideInfo::computedShape):
        * rendering/ExclusionShapeOutsideInfo.h: Added. Associates the
            ExclusionShape object for shape outside with a RenderBox. Analagous to
            ExclusionShapeInsideInfo.
        (ExclusionShapeOutsideInfo):
        (WebCore::ExclusionShapeOutsideInfo::create):
        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalLeft):
        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalRight):
        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalTop):
        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalBottom):
        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalWidth):
        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalHeight):
        (WebCore::ExclusionShapeOutsideInfo::setShapeSize):
        (WebCore::ExclusionShapeOutsideInfo::dirtyShapeSize):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::insertFloatingObject): Use the shape outside's bounding box to set the width that is
            used for inline layout for the float and it's siblings.
        (WebCore::RenderBlock::positionNewFloats): Use the shape outside's bounding box to set the height that
            is used for inline layout for the float and it's siblings. Ignore margins when positioning if the float
            has shape outside, per the exclusions spec. 
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::willBeDestroyed): Clean up associated ExclusionShape.
        (WebCore::RenderBox::styleDidChange): Handle style change for shape outside.
        (WebCore::RenderBox::updateExclusionShapeOutsideInfoAfterStyleChange): Handle style change for shape outside.
        * rendering/RenderBox.h:
        (WebCore::RenderBox::exclusionShapeOutsideInfo): Get the ExclusionShapeOutsideInfo associated with this
            RenderBox.

2012-12-17  John J. Barton  <johnjbarton@chromium.org>

        Web Inspector: Search by selection
        https://bugs.webkit.org/show_bug.cgi?id=104970

        Reviewed by Vsevolod Vlasov.

        Upon activation of the search control, conditionally set input.value to window.getSelection().
        For both single file (SearchController) and multifile (AdvancedSearchController).

        Test: inspector/editor/text-editor-selection-to-search.html

        * inspector/front-end/AdvancedSearchController.js:
        (WebInspector.AdvancedSearchController.prototype.show):
        (WebInspector.SearchView.prototype.syncToSelection):
        * inspector/front-end/SearchController.js:
        (WebInspector.SearchController.prototype.showSearchField):

2012-12-17  Eduardo Lima Mitev  <elima@igalia.com>

        [GStreamer] Use gst_element_link_pads_full() with CHECK_NOTHING for speed and sanity
        https://bugs.webkit.org/show_bug.cgi?id=105181

        Reviewed by Philippe Normand.

        Replace some calls to gst_pad_link() on request pads, by
        gst_element_link_pads_full() with CHECK_NOTHING flag, removing
        unnecessary pad compatibility checks and simplifying code.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (webKitWebAudioSrcConstructed): Links audioconvert source with a
        requested interleave sink using gst_element_link_pads_full().
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Links a
        requested source pad from videoTee with the queue sink.

2012-12-17  Emil A Eklund  <eae@chromium.org>

        Clamp values in LayoutUnit::operator/ when SATURATED_LAYOUT_ARITHMETIC is enabled
        https://bugs.webkit.org/show_bug.cgi?id=104955

        Reviewed by Julien Chaffraix.

        LayoutUnit::operator/ currently does not clamp values and
        instead overflows when given a value greater than INT_MAX or
        less than INT_MIN. 

        Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp

        * platform/LayoutUnit.h:
        (WebCore::operator/):
        Clamp value if SATURATED_LAYOUT_ARITHMETIC is enabled.

2012-12-17  Simon Fraser  <simon.fraser@apple.com>

        Don't allow edge TileCache tiles to be larger than necessary
        https://bugs.webkit.org/show_bug.cgi?id=105195

        Reviewed by Anders Carlsson.

        The TileCache would allow edge tiles to be larger than the required size, with the assumption
        that the extra space would never be visible. However, for content tiled layers, it can be,
        and it doesn't get correctly cleared. So always keep the edge tiles at the specified size.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::revalidateTiles):

2012-12-17  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Exclusions] Floats should respect shape-inside on exclusions
        https://bugs.webkit.org/show_bug.cgi?id=89261

        Reviewed by David Hyatt.

        Position floats properly with respect to an exclusion shape. Note that
        this will not attempt to position floats in a polygon that has
        multiple segments. In the multiple segment case, the floats will be
        positioned as if the exclusion did not exist.

        Updated an existing test case to test for this.
        Test: fast/exclusions/shape-inside/shape-inside-floats-simple.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeLogicalLocationForFloat): Adjust the
        right and left offsets to take into account the right and left offset
        contributed by the exclusion shape.

2012-12-17  Antoine Quint  <graouts@apple.com>

        GraphicsLayer's repaint count should update even when debugging option to show it is off
        https://bugs.webkit.org/show_bug.cgi?id=105178

        Reviewed by Simon Fraser.

        Update the repain count even if the debug option to show them is turned off.
        This allows the count to be accurate in between toggles of the debug option
        and to allow the InspectorLayerTreeAgent to get accurate results any time
        the layer tree is requested (see webkit.org/b/105024).

        * platform/graphics/mac/WebLayer.mm:
        (drawLayerContents):

2012-12-17  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Add helper functions for converting floats to LayoutUnits
        https://bugs.webkit.org/show_bug.cgi?id=103450

        Reviewed by Dirk Schulze.

        When a float logicalTop value is converted to a LayoutUnit it's necessary to
        use LayoutUnit::fromFloatCeil() to ensure that we're snapping to a value that's
        inside the ExclusionShape.  Similarly, to convert a logicalBottom value from
        float to LayoutUnit we use LayoutUnit::fromFloatFloor().  Added a pair of private
        ExlcusionShapeInsideInfo methods that do the conversions and refactored existing
        code to use them.

        This is just a cleanup.  No new tests are needed, the existing tests cover
        these changes.

        * rendering/ExclusionShapeInsideInfo.cpp:
        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Use the new floatLogicalTopToLayoutUnit() method.
        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Use the new floatLogicalTopToLayoutUnit() method.
        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom): Use the new floatLogicalBottomToLayoutUnit() method.
        (ExclusionShapeInsideInfo):
        (WebCore::ExclusionShapeInsideInfo::floatLogicalTopToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatCeil().
        (WebCore::ExclusionShapeInsideInfo::floatLogicalBottomToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatFloor().

2012-12-17  Antoine Quint  <graouts@apple.com>

        Web Inspector: Provide the paint count of layers through the LayerTreeAgent
        https://bugs.webkit.org/show_bug.cgi?id=105024

        Reviewed by Pavel Feldman.

        We add a new optional .paintCount property to the Layer object, passing through the
        relevant information from GraphicsLayer.

        * inspector/Inspector.json:
        * inspector/InspectorLayerTreeAgent.cpp:
        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):

2012-12-17  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: [chromium] make toolbar render with Mountain Lion-friendly colors
        https://bugs.webkit.org/show_bug.cgi?id=105177

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/UIUtils.js:
        (WebInspector.platformFlavor):
        * inspector/front-end/inspector.css:
        (#toolbar):
        (body.dock-to-bottom #toolbar):
        (.toolbar-item):

2012-12-17  Andreas Kling  <akling@apple.com>

        Attribute: Remove unused constructor and isNull().
        <http://webkit.org/b/105179>

        Reviewed by Antti Koivisto.

        Removed the Attribute constructor that takes a localName rather than a full QualifiedName as that was never used.
        Also removed Attribute::isNull(), since that was only called in one place where isNull() will never be true.

        * dom/Attribute.h:
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):

2012-12-17  Anthony Scian  <ascian@rim.com>

        [Blackberry] Static code analysis warning fixes
        https://bugs.webkit.org/show_bug.cgi?id=105129

        Reviewed by Rob Buis.

        - alloca can return NULL, recoded to just use a temp var

        * plugins/blackberry/PluginViewBlackBerry.cpp:
        (WebCore::PluginView::updateBuffer):

2012-12-17  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Make popover content accessible for clicks.
        https://bugs.webkit.org/show_bug.cgi?id=105167

        Reviewed by Vsevolod Vlasov.

        Currently it is very hard to move mouse pointer inside of popover area.
        The only maneuver is to precisely jerk the mouse in direction of popover.

        This path makes anchor and popover "active" areas overlap, so it becomes
        possible to smoothly move mouse to popover interior.

        * inspector/front-end/Popover.js:
        (WebInspector.Popover.prototype._innerShow): Make popover "outer" border
        an be "active" area.
        * inspector/front-end/popover.css: Allow popover "outer" border receive
        mouse events.

2012-12-17  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: Persist Audit selections across sessions
        https://bugs.webkit.org/show_bug.cgi?id=103944

        Reviewed by Alexander Pavlov.

        Make selected audit categories a persistent setting, to simplify life for those
        repeatedly running same set of categories.

        * inspector/front-end/AuditLauncherView.js:
        (WebInspector.AuditLauncherView):
        (WebInspector.AuditLauncherView.prototype.addCategory.get var):
        (WebInspector.AuditLauncherView.prototype.addCategory):
        (WebInspector.AuditLauncherView.prototype._selectAllClicked):
        (WebInspector.AuditLauncherView.prototype._categoryClicked):
        (WebInspector.AuditLauncherView.prototype._createCategoryElement):

2012-12-17  Zeno Albisser  <zeno@webkit.org>

        [Texmap] Drawing of ARB textures broken after r137498.
        https://bugs.webkit.org/show_bug.cgi?id=105165

        Disable antialiasing for ARB textures after unifying
        code paths. We are currently missing a fragment shader
        to do antialiasing with ARB textures.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawTexture):

2012-12-17  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Popup flickers when cursor moves between elements with same anchor.
        https://bugs.webkit.org/show_bug.cgi?id=104992

        Reviewed by Pavel Feldman.

        Popup disappears and then appears again when mouse pointer traverses
        between sub-elements of anchor element.

        * inspector/front-end/Popover.js: Split method "_mouseOut".
        (WebInspector.PopoverHelper.prototype._popoverMouseOut):
        Handler for Popover.
        (WebInspector.PopoverHelper.prototype._mouseOut):
        Handler for PopoverHelper.

2012-12-12  Andrey Kosyakov  <caseq@chromium.org>

        [Chromium] Remove support for TRACE_EVENT_IF_LONGER_THANx macros
        https://bugs.webkit.org/show_bug.cgi?id=104784

        Reviewed by Pavel Feldman.

        - removed TRACE_EVENT_IF_LONGER_THANx macros;
        - changed addTraceEvent() to return void, as we no longer need the index of added event.

        * platform/EventTracer.h:
        (EventTracer):
        * platform/chromium/EventTracerChromium.cpp:
        (WebCore::EventTracer::addTraceEvent):
        * platform/chromium/TraceEvent.h:
        (TraceEvent):
        (WebCore::TraceEvent::addTraceEvent):
        (WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
        (Data):

2012-12-17  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r136794.
        http://trac.webkit.org/changeset/136794
        https://bugs.webkit.org/show_bug.cgi?id=104203

        The GC change can leak memory

        * bindings/v8/V8GCController.cpp:
        (WebCore):
        (WebCore::addImplicitReferencesForNodeWithEventListeners):

2012-12-17  Gabor Rapcsanyi  <rgabor@webkit.org>

        Reduce the code size of ARM SIMD in GraphicsContext3D
        https://bugs.webkit.org/show_bug.cgi?id=105086

        Reviewed by Zoltan Herczeg.

        Reduce the code size of ARM SIMD in GraphicsContext3D and change the ARM
        namespace to SIMD.

        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore):
        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
        (WebCore::SIMD::unpackOneRowOfRGBA4444ToRGBA8):
        (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort4444):
        (WebCore::SIMD::unpackOneRowOfRGBA5551ToRGBA8):
        (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort5551):
        (WebCore::SIMD::unpackOneRowOfRGB565ToRGBA8):
        (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort565):

2012-12-16  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: frame bars on timeline do not react on hover and double click
        https://bugs.webkit.org/show_bug.cgi?id=105153

        Reviewed by Alexander Pavlov.

        Remove z-index: -100 from #timeline-grid-header, as it prevents mouse events from
        reaching frame strip. Use pointer-events: none on frame dividers instead.

        * inspector/front-end/timelinePanel.css:
        (.timeline .resources-event-divider.timeline-frame-divider):
        (#timeline-grid-header):

2012-12-16  Kentaro Hara  <haraken@chromium.org>

        [V8] Improve performance of a conversion from WebKit strings to V8 strings
        https://bugs.webkit.org/show_bug.cgi?id=105150

        Reviewed by Eric Seidel.

        V8 provides v8::Weak(isolate) and v8::Local::New(isolate, ...),
        which are much faster than v8::Weak() and v8::Local::New().
        By using the faster APIs, we can improve performance of a conversion
        from a WebKit string to a V8 string. This improves performance of
        div.id, div.className, ...and a lot of DOM attributes that return
        strings.

        [Dromaeo/dom-attr]
        120 runs/sec, 120 runs/sec, 118 runs/sec => 125 runs/sec, 123 run/sec, 125 runs/sec (+4.1%)

        [Dromaeo/dom-traverse]
        94 runs/sec, 94 runs/sec, 96 runs/sec => 107 runs/sec, 105 runs/sec, 107 runs/sec (+12.3%)

        [Bindings/id-getter]
        356 runs/sec, 356 runs/sec, 341 runs/sec => 423 runs/sec, 424 runs/sec, 424 runs/sec (+20.7%)

        No tests. No change in behavior.

        * bindings/v8/V8ValueCache.h:
        (WebCore::StringCache::v8ExternalString):

2012-12-16  Arvid Nilsson  <anilsson@rim.com>

        [BlackBerry] Adapt to new BlackBerry::Platform::TouchPoint API
        https://bugs.webkit.org/show_bug.cgi?id=105143
        RIM PR 171941

        Reviewed by Rob Buis.
        Internally reviewed by George Staikos.

        TouchPoint instances now provide document coordinates for the viewport
        and content position of the touch event. The pixel coordinates stored
        in the TouchPoint should no longer be needed in WebKit.

        Also adapt to new method names and encapsulation of TouchPoint data
        members.

        No change in behavior, no new tests.

        * platform/blackberry/PlatformTouchPointBlackBerry.cpp:
        (WebCore::PlatformTouchPoint::PlatformTouchPoint):

2012-12-16  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Fix JS compiler warning.
        https://bugs.webkit.org/show_bug.cgi?id=105032

        Reviewed by Pavel Feldman.

        Problem: event handler parameter has actial parameter
        type KeyboardEvent, but ".addEventListener" refuses listeners with such
        signature.

        Solution: explicitly upcast argument type.

        * inspector/front-end/ElementsTreeOutline.js: Update JsDocs.

2012-12-16  Tim Horton  <timothy_horton@apple.com>

        PDFPlugin: The "Open in Preview" HUD button should work
        https://bugs.webkit.org/show_bug.cgi?id=102448
        <rdar://problem/12695729>

        Reviewed by Alexey Proskuryakov.

        Expose createCanonicalUUIDString and UUID.h.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

2012-12-16  Seokju Kwon  <seokju.kwon@gmail.com>

        Fix unused parameter compile warnings
        https://bugs.webkit.org/show_bug.cgi?id=105089

        Reviewed by Kentaro Hara.

        Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.

        No new tests, no behavior change.

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::supportsProfiling):
        (WebCore::JSDOMWindowBase::supportsRichSourceInfo):

2012-12-16  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/12886898> Bundle uploads don't work
        https://bugs.webkit.org/show_bug.cgi?id=105149

        Reviewed by Sam Weinig.

        * WebCore.exp.in: Exported FormData::removeGeneratedFilesIfNeeded().

        * platform/network/FormData.cpp:
        (WebCore::encodeElement):
        (WebCore::decodeElement):
        Encode generated file name for archive, too. I'm not entirely sure how this affects other uses
        of FormData serialization, but it seems logical that if we encode m_hasGeneratedFiles, we
        should also encode their names.

2012-12-16  Hayato Ito  <hayato@chromium.org>

        [Shadow DOM] Kill ShadowRoot constructor
        https://bugs.webkit.org/show_bug.cgi?id=102913

        Reviewed by Dimitri Glazkov.

        Re-landing r137408 which breaks browser tests on chromium. I've
        updated the browser tests on chromium so that they do not use
        WebKitShadowRoot constructor.

        No new tests. Updating existing layout tests.

        * dom/ShadowRoot.idl:
        * page/DOMWindow.idl:

2012-12-16  Jon Lee  <jonlee@apple.com>

        Allow built-in PDF plugin and plugin documents to auto-start
        https://bugs.webkit.org/show_bug.cgi?id=105000
        <rdar://problem/12633351>

        Reviewed by Sam Weinig.

        Plug-ins in plug-in documents that are in the main frame should always auto-start.

        Add a virtual function that returns whether the PluginViewBase should auto-start its plug-in.
        Add a callback that gives the HTML plug-in element an opportunity to set the display state
        based on the widget.

        * plugins/PluginViewBase.h:
        (WebCore::PluginViewBase::shouldAlwaysAutoStart): Added. By default returns false.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Renamed from
        subframeLoaderWillLoadPlugIn() for consistency. This call will also be made a little later
        in the subframe loader. Adds a check to see if the plug-in is inside a plug-in document
        of the main frame. If so, auto-start.
        (WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Given the widget created,
        check to see if it should always auto-start. If so, set the display state to Playing. Otherwise
        leave the display state alone.
        * html/HTMLPlugInImageElement.h:

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::requestPlugin): Move the will-load-plug-in call into loadPlugin().
        (WebCore::SubframeLoader::loadPlugin): Immediately prior to the plug-in's creation, make the
        will-create call. If a plug-in was made, make the did-create call. The did-create call should
        be made before setWidget() since that might initialize the plug-in, which could take the display
        state into account if being initialized synchronously.

2012-12-16  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Perform the layer-tree traversal in GraphicsLayerTextureMapper.
        https://bugs.webkit.org/show_bug.cgi?id=103366

        Reviewed by Noam Rosenthal.

        Currently, Texture Mapper performs the layer-tree traversal in
        TextureMapperLayer, while Coordinated Graphics performs the traversal in
        CoordinatedGraphicsLayer. This patch makes Texture Mapper perform the
        traversal in GraphicsLayerTextureMapper.

        Also removed the SyncOptions enum, which is redundant since no client
        calls it with ComputationsOnly.

        This is in preparation for refactoring TextureMapper to work in an actor
        model (http://webkit.org/b/103854).

        No new tests. Covered by existing tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
        (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (TextureMapperLayer):

2012-12-16  Levi Weintraub  <leviw@chromium.org>

        Push pixel snapping logic into TransformState
        https://bugs.webkit.org/show_bug.cgi?id=101779

        Reviewed by Simon Fraser.

        The old SnapOffsetForTransforms behavior fell apart when there was content nested in
        multiple levels of containers with sub-pixel offsets. The point of this flag was to
        mirror the pixel snapping that occurs in paint, where offsets are accumulated bottom-
        up through the render tree and snapped at the end. This change eliminates this flag
        and pushes pixel snapping logic down into TransformState.

        TransformState now tracks a LayoutSize accumulated offset when there's no transform
        or we're just translating. We then snap and apply this offset before accumulating
        values into a transform, and when returning planar coordinates to callers.

        Test: fast/sub-pixel/transformed-iframe-copy-on-scroll.html added,
              fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html modified to also catch this bug.

        * platform/graphics/transforms/TransformState.cpp:
        (WebCore::TransformState::operator=): Pass accumulated offset.
        (WebCore::TransformState::translateTransform): Extracted this functionality for
        re-use when applying the accumulated offset, or accumulating from a call to move.
        (WebCore::TransformState::translateMappedCoordinates): Same as above when we're not
        acculating into a transform.
        (WebCore::TransformState::move): Changed to accumulate into m_accumulatedOffset when
        not accumulating into a transform.
        (WebCore::TransformState::applyAccumulatedOffset):
        (WebCore::TransformState::applyTransform): Applies the accumulated offset before the
        transform.
        (WebCore::TransformState::flatten): Ditto for flattening.
        (WebCore::TransformState::mappedPoint): Translates by the accumulated offset before
        returning.
        (WebCore::TransformState::mappedQuad): Ditto.
        * platform/graphics/transforms/TransformState.h:
        (TransformState): Added m_accumulatedOffset.
        * rendering/RenderGeometryMap.cpp:
        (WebCore::RenderGeometryMap::mapToContainer): When not using a transform, we still need
        to snap our offset before applying to our float result. Also, flatten when we have a
        non-uniform step.
        * rendering/RenderGeometryMap.h:
        (RenderGeometryMap): Remove use of SnapOffsetForTransforms.

        Everything below simply drops the use of SnapOffsetForTransforms:

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::getUpperLeftCorner):
        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::computeRelativePosition):
        * editing/FrameSelection.cpp:
        (WebCore::CaretBase::absoluteBoundsForLocalRect):
        * editing/RenderedPosition.cpp:
        (WebCore::RenderedPosition::absoluteRect):
        * editing/VisiblePosition.cpp:
        (WebCore::VisiblePosition::absoluteCaretBounds):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::setPositionFromPoint):
        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::defaultEventHandler):
        * page/FrameView.cpp:
        (WebCore::FrameView::convertFromRenderer):
        (WebCore::FrameView::convertToRenderer):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintDocumentMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::computeRectForReplacementMarker):
        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::mapLocalToContainer):
        (WebCore::RenderBox::pushMappingToContainer):
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::userResize):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::mapLocalToContainer):
        (WebCore::RenderInline::pushMappingToContainer):
        * rendering/RenderInline.h:
        (RenderInline):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::absoluteToContents):
        (WebCore::RenderLayer::scrollTo):
        (WebCore::RenderLayer::childrenClipRect):
        (WebCore::RenderLayer::selfClipRect):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::contentsVisible):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::showPopup):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::absoluteFocusRingQuads):
        * rendering/RenderObject.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::absoluteRectsForRange):
        (WebCore::RenderText::absoluteQuads):
        (WebCore::RenderText::absoluteQuadsForRange):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::selectionBounds):
        * rendering/RenderView.h:
        (RenderView):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::updateWidgetGeometry):
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
        * rendering/svg/RenderSVGForeignObject.h:
        (RenderSVGForeignObject):
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::mapLocalToContainer):
        * rendering/svg/RenderSVGInline.h:
        (RenderSVGInline):
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::mapLocalToContainer):
        * rendering/svg/RenderSVGModelObject.h:
        (RenderSVGModelObject):
        * rendering/svg/RenderSVGRoot.h:
        (RenderSVGRoot):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::mapLocalToContainer):
        * rendering/svg/RenderSVGText.h:
        (RenderSVGText):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::mapLocalToContainer):
        * rendering/svg/SVGRenderSupport.h:
        (SVGRenderSupport):

2012-12-15  Anders Carlsson  <andersca@apple.com>

        Rename FrameLoaderClient::download to convertMainResourceLoadToDownload
        https://bugs.webkit.org/show_bug.cgi?id=105122

        Reviewed by Andreas Kling.

        Rename FrameLoaderClient::download to convertMainResourceLoadToDownload and change it to take a MainResourceLoader instead
        of a ResourceHandle, since resource handles may not exist when loading isn't done in the web process.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/EmptyClients.h:
        * loader/FrameLoaderClient.h:
        (WebCore):
        (FrameLoaderClient):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::continueAfterContentPolicy):

2012-12-16  Eric Carlson  <eric.carlson@apple.com>

        Remove in-band text tracks when media element's src changes
        https://bugs.webkit.org/show_bug.cgi?id=105081

        Reviewed by Sam Weinig.

        No new tests, media/track/track-in-band.html was updated to test this change.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): Move some code into removeTrack.
        (WebCore::HTMLMediaElement::removeTrack): New, remove a track and all of its cues.
        (WebCore::HTMLMediaElement::removeAllInbandTracks): New, remove all in-band tracks.
        (WebCore::HTMLMediaElement::clearMediaPlayer): Call removeAllInbandTracks.
        * html/HTMLMediaElement.h:

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Call clearTextTracks.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::clearTextTracks): Remove all tracks from client.

2012-12-16  Simon Fraser  <simon.fraser@apple.com>

        Fix assertions when doing a full repaint of compositing layers
        https://bugs.webkit.org/show_bug.cgi?id=105128

        Reviewed by Dan Bernstein.

        In r137811 I added code to repaint all compositing layers when FrameView::layout()
        is doing a full repaint. However, this code needs to avoid calling setContentsNeedDisplay()
        on layers that don't actually draw their own content: those that draw into an ancestor,
        and those that draw into a window.

        Fixes assertions in existing tests.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateAfterLayout):

2012-12-16  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK][AC] Build failure with an option --with-acceleration-backend=clutter
        https://bugs.webkit.org/show_bug.cgi?id=105027

        Reviewed by Gustavo Noronha Silva.

        GLContext.* and RedirectedXCompositeWindow.* are meaningful only if opengl is
        a backend for the AC. So I wrap them in USE_OPENGL.

        No new tests. This patch fixes a build fauilure, not adding new features.

        * GNUmakefile.list.am:

2012-12-16  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        [GStreamer] create playbin in ::load(), not in player constructor
        https://bugs.webkit.org/show_bug.cgi?id=103898

        Reviewed by Philippe Normand.

        This patch moves the instantiation of the playbin pipeline into the
        WebCore::MediaPlayerPrivateGStreamer::load() method, so the pipeline
        layout can reflect other predefined settings such as audio pitch
        preservation in variable playback rate scenarios

        No new tests. Covered by existing tests.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::load):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):

2012-12-16  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Pseudo-elements should not be directly collected into a named flow
        https://bugs.webkit.org/show_bug.cgi?id=105046

        Reviewed by Abhishek Arya.

        Prevent pseudo-elements to be collected into a named-flow by bailing out early in the collecting stage.
        Following the CSSRegions spec, http://dev.w3.org/csswg/css3-regions/#flow-into, the pseudo-elements
        like ::before/::after/::first-letter/::first-line are not allowed to become content nodes, being directly
        collected into a flow thread.

        Tests: fast/regions/pseudo-after-content-node.html
               fast/regions/pseudo-before-content-node.html
               fast/regions/pseudo-first-letter-content-node.html
               fast/regions/pseudo-first-line-content-node.html

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):

2012-12-16  Mihai Maerean  <mmaerean@adobe.com>

        [CSS Regions] broken feature detection: body.webkitRegionOverset and body.webkitGetRegionFlowRanges shouldn't succeed when disabled at runtime
        https://bugs.webkit.org/show_bug.cgi?id=99707

        Reviewed by Hajime Morita.

        The bug is that the CSS Regions feature leaks information at run-time. There are JS properties that exist even
        if the feature is disabled at run-time (document.webkitGetNamedFlows, document.body.webkitRegionOverset,
        document.body.webkitGetRegionFlowRanges and window.WebKitCSSRegionRule).

        The fix is to add V8EnabledAtRuntime=cssRegions in the IDL files to the properties that leak information and to
        the interfaces that are the type of those properties.

        Test: fast/regions/region-leak-js-information-when-disabled-at-runtime.html

        * css/WebKitCSSRegionRule.idl:
            added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule interface.
        * dom/DOMNamedFlowCollection.idl:
            added V8EnabledAtRuntime=cssRegions for the DOMNamedFlowCollection interface.
        * dom/Document.idl:
            added V8EnabledAtRuntime=cssRegions for the webkitGetNamedFlows method.
        * dom/Element.idl:
            added V8EnabledAtRuntime=cssRegions for the webkitRegionOverset attribute.
            added V8EnabledAtRuntime=cssRegions for the webkitGetRegionFlowRanges method.
        * page/DOMWindow.idl:
            added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule attribute.

2012-12-15  Ian Vollick  <vollick@chromium.org>

        [chromium] Automatically use composited scrolling
        https://bugs.webkit.org/show_bug.cgi?id=94743

        Reviewed by Adrienne Walker.

        We currently use the composited scrolling facilities provided by
        wkb.ug/91117 if the overflow scroll block element is styled with
        -webkit-overflow-scrolling: touch. Ideally, we could automatically
        opt into composited scrolling if it is safe to do so. This can affect
        antialiasing, so it is important that automatically opting in is only
        enabled via a setting.

        The way I determine if it is safe is by checking that z-ordering will
        not be affected if the overflow scrollable element were promoted to a
        stacking context (details below), and that clipping our scrolling
        descendants will not affect rendering.

        To check the first condition (that z-ordering will not be affected).
        I ensure that the candidate element and all its descendants appear as a 
        contiguous block in the candidate's stacking context. That is, if no 
        other elements are 'between' any of the candidates descendants when we
        sort in paint order, then we're safe. This is overly conservative,
        however. We could, in future, only consider stacking problems between
        elements that actually overlap.

        To ensure that clipping will not cause a rendering change, I ensure
        that the layer has no out of flow positioned descendant whose
        containing block is not also a descendant of ours.

        Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html

        (WebCore):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
        (WebCore):
        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
        (WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
        (WebCore::RenderLayer::canSafelyEstablishAStackingContext):
          Returns true if the RenderLayer could become a stacking context without
          affecting the stacking order.
        (WebCore::RenderLayer::updateDescendantDependentFlags):
          We now need to keep track of out of flow positioned descendants.
        (WebCore::RenderLayer::addChild):
        (WebCore::RenderLayer::removeChild):
        (WebCore::RenderLayer::usesCompositedScrolling):
          Returns true if the layer actually is using composited scrolling.
          This function may return false, even when needsCompositedScrolling
          returns true.
        (WebCore::RenderLayer::needsCompositedScrolling):
          This function returns true if we would like to use composited
          scrolling and it is safe to turn it on.
        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
        (WebCore::RenderLayer::scrollTo):
        (WebCore::RenderLayer::dirtyZOrderLists):
        (WebCore::RenderLayer::dirtyNormalFlowList):
          Since these could affect opting into composited scrolling, we must
          request that the RenderLayerCompositor reevaluate compositing.
        (WebCore::RenderLayer::updateLayerListsIfNeeded):
          We call updateCanSafelyEstablishStackingContext here, if necessary.
        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
          usesCompositedScrolling -> needsCompositedScrolling
        (WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
        (WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
        (WebCore::RenderLayer::updateOutOfFlowPositioned):
          Dirties and sets the out of flow positioned descendant state.
        (WebCore::RenderLayer::styleChanged):
        * rendering/RenderLayer.h:
        (RenderLayer):
        (WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
        (WebCore):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
        * rendering/RenderLayerCompositor.h:
        (WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
          Allows enabling the setting in layout tests.
        (WebCore):
        * testing/InternalSettings.h:
        (InternalSettings):
        * testing/InternalSettings.idl:

2012-12-15  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * bindings/gobject/GNUmakefile.am: Do not dist generated DOM
        bindings headers.
        * platform/ScrollAnimatorNone.cpp: Include PlatformGestureEvent.h
        only if gesture events are enabled.

2012-12-15  Alexey Proskuryakov  <ap@apple.com>

        Build fix.

        * platform/network/FormData.cpp:
        (WebCore::encodeElement):
        (WebCore::decodeElement):
        (WebCore::FormData::encode):
        (WebCore::FormData::decode):
        Disambiguated encode/decode functions. I'm not quite sure why the compiler was
        confused, but distinct names should make the code more readable anyway.

2012-12-15  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/12886312> Cannot upload patches to Bugzilla (<input type=file> doesn't work)
        https://bugs.webkit.org/show_bug.cgi?id=105120

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * history/HistoryItem.cpp:
        * platform/network/FormData.h:
        Renamed encodeForBackForward and decodeForBackForward to encode and decode, respectively.
        I couldn't find anything in these that would limit them to this use, and data encoded
        for b/f has to be good enough to re-create a request anyway.

        * platform/network/FormData.cpp: (WebCore::decode): Fixed file data decoder to not
        bail out in the general case of posting a complete file.

2012-12-15  Nima Ghanavatian  <nghanavatian@rim.com>

        [BlackBerry] Pass key modifiers with touch and mouse events
        https://bugs.webkit.org/show_bug.cgi?id=105108

        Reviewed by Rob Buis.

        Call Screen to retrieve current key modifiers.

        Internally reviewed by Gen Mak.

        * platform/PlatformMouseEvent.h:
        (PlatformMouseEvent):
        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
        (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
        * platform/blackberry/PlatformMouseEventBlackBerry.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):

2012-12-15  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Prevent CookieManager from blocking the WKT thread
        https://bugs.webkit.org/show_bug.cgi?id=105111

        PR 265603

        Reviewed by Rob Buis.
        Internally reviewed by Konrad Piascik.

        The getBackingStoreCookies in WKT is blocking the thread because it has to wait for
        the db to be opened before it can call on it.

        The fix is to make CookieDatabaseBackingStore in the cookie_db thread dispatch
        a getBackingStoreCookies call on WKT after invokeOpen is finished.

        Tested loading the browser. Cookies are being loaded into memory on start up.

        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
        (WebCore::CookieDatabaseBackingStore::invokeOpen):
        * platform/blackberry/CookieManager.cpp:
        (WebCore::cookieManager):
        * platform/blackberry/CookieManager.h:

2012-12-15  Simon Fraser  <simon.fraser@apple.com>

        Fix repaint issues when resizing a window with centered content, for platforms with a tile cache
        https://bugs.webkit.org/show_bug.cgi?id=105073

        Reviewed by Dan Bernstein.

        There were several issues with the "do full repaint" code path in
        FrameView::layout(). These caused repaint issues when resizing the web view,
        especially for platforms that use a tile cache.
        
        First, the m_doFullRepaint flag wold get clobbered on resize-layouts, because
        the call to adjustViewSize() re-enters layout(), and resets the m_doFullRepaint member
        variable to false, even if the outer call had previously set it to true. This would
        cause us to lose track of whether we needed to do a full repaint. The patch fixes
        this by restoring m_doFullRepaint to the value it had before the call to adjustViewSize().
        
        The second problem was that full repaints would not propagate to compositing
        layers. They only repainted the RenderView, and on platforms that use a tile cache,
        this only repaints the top portion of that tile cache. This was fixed by sending
        a NeedsFullRepaintInBacking flag down into RenderLayer::updateLayerPositions(),
        and using that to do a full repaint on all compositing layers.
        
        Sending this new flag down into updateAfterLayout() prompted some boolean/flags
        cleanup with propagated into several files. This also allowed me to no longer
        include RenderLayerBacking.h in RenderLayerCompositor.h, but that required
        header cleanup in several files.

        Automated testing is not possible because WebKitTestRunner resizes the window
        asynchronously (bug 105101). Added manual test.

        * page/FrameView.cpp:
        (WebCore::updateLayerPositionFlags):
        (WebCore::FrameView::layout):
        * page/scrolling/ScrollingCoordinator.cpp:
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateAfterLayout):
        (WebCore::RenderLayerBacking::contentChanged):
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
        * rendering/RenderLayerCompositor.h:
        * rendering/RenderObject.cpp:
        * rendering/RenderView.cpp:

2012-12-15  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * platform/graphics/ca/GraphicsLayerCA.h:
        Remove an unused member variable.

2012-12-15  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r137006): TileCache flashes to linen, rather than the background color, when scrolling fast
        https://bugs.webkit.org/show_bug.cgi?id=104746

        Reviewed by Darin Adler.

        Make RenderLayerBacking::updateBackgroundColor() responsible for setting the background
        color of the main frame's root layer to the document background color (rather than doing
        it in code related to overlay scrollbars, which was crazy). This is only done for platforms
        that use a TiledBacking (currently, just Mac).
        
        Also fix updateBackgroundColor() to not call m_graphicsLayer->setContentsToBackgroundColor()
        and then call clearBackgroundColor() right away if the color was transparent.
        
        * page/FrameView.cpp:
        (WebCore::FrameView::recalculateScrollbarOverlayStyle): Remove code that calls documentBackgroundColorDidChange().
        * rendering/RenderLayerBacking.cpp:
        (WebCore::clipBox): Remove blank linke.
        (WebCore::RenderLayerBacking::updateBackgroundColor):
        * rendering/RenderLayerCompositor.cpp:
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-12-15  No'am Rosenthal  <noam.rosenthal@nokia.com>

        Disambiguate "background color" and "contents as solid color" on GraphicsLayer
        https://bugs.webkit.org/show_bug.cgi?id=104842

        Reviewed by Simon Fraser.

        Rename overloads in GraphicsLayerTextureMapper and GraphicsLayerChromium to account for the rename in GraphicsLayer.

        Covered by existing tests.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::solidColor):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::paintSelf):
        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (State):

2012-12-13  Simon Fraser  <simon.fraser@apple.com>

        Disambiguate "background color" and "contents as solid color" on GraphicsLayer
        https://bugs.webkit.org/show_bug.cgi?id=104842

        Reviewed by Dean Jackson.

        GraphicsLayer failed to be clear about the distinction between
        the layer background color, and setting the layer contents
        to a color. This caused some recently added tests to fail,
        and required some special-casing for the TileCache in
        GraphicsLayerCA.
        
        Separate these two concepts on GraphicsLayer. setBackgroundColor()
        now sets the background color on the entire layer, which will only
        be used in special cases like the TileCache.
        
        The existing setContentsToBackgroundColor() is renamed to
        setContentsToSolidColor(), and is an explicit request to create
        a contents layer for the purpose of displaying a simple color.
        
        In both cases, 'clear' methods are not necessary; calling
        the setter with an invalid color clears the color.

        Covered by existing tests.

        * WebCore.exp.in: Remove GraphicsLayer::clearBackgroundColor().
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::GraphicsLayer):
        (WebCore::GraphicsLayer::setBackgroundColor):
        (WebCore::GraphicsLayer::dumpProperties):
        * platform/graphics/GraphicsLayer.h:
        (GraphicsLayer): Remove m_backgroundColorSet; we just check whether
        the color is a valid color now.
        (WebCore::GraphicsLayer::setContentsToSolidColor):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
        (WebCore::GraphicsLayerCA::setBackgroundColor):
        (WebCore::GraphicsLayerCA::setContentsToSolidColor):
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateBackgroundColor):
        (WebCore::GraphicsLayerCA::updateContentsColorLayer):
        (WebCore):
        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): We have
        to call updateBackgroundColor(), because the 'is simple compositing layer'
        state may change in this code path.
        (WebCore::RenderLayerBacking::updateBackgroundColor): Don't initialize
        the Color to transparent (it will be invalid initially), and always
        call setContentsToSolidColor() which will either set or remove the color.

2012-12-15  Mark Lam  <mark.lam@apple.com>

        Re-landing patch for "Introducing the DatabaseStrategy and database servers".
        https://bugs.webkit.org/show_bug.cgi?id=104934.

        Not reviewed.

        Merged from r137767. Previously reviewed by Sam Weinig.
        Also added __ZTVN7WebCore16DatabaseStrategyE to WebCore.exp.in.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabaseServer.h.
        * Modules/webdatabase/DBBackendServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::DatabaseManager):
        * Modules/webdatabase/DatabaseManager.h:
        (DatabaseManager):
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/DatabaseStrategy.cpp: Copied from Source/WebCore/platform/DatabaseStrategy.cpp.
        * platform/DatabaseStrategy.h: Copied from Source/WebCore/platform/DatabaseStrategy.h.
        * platform/PlatformStrategies.h:
        (WebCore::PlatformStrategies::databaseStrategy):
        (PlatformStrategies):
        (WebCore::PlatformStrategies::PlatformStrategies):

2012-12-14  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>

        Emphasis mark is printed after inline-block with justify
        https://bugs.webkit.org/show_bug.cgi?id=104631

        Reviewed by Dean Jackson.

        Do not print an emphasis mark after an inline-block when justified.

        If an inline-block is expanded, it has a space appended to it.
        This space should not have any emphasis marks drawn.

        Test: fast/inline/justify-emphasis-inline-box.html

        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::zeroWidthSpaceGlyph): Add getter method to get zero width space glyph.
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::advanceInternal): We use zero width space for the extra space not to draw emphasis marks.

2012-12-14  Jer Noble  <jer.noble@apple.com>

        Unreviewed bug fix after r137782.

        Add new source file TextTrackRepresentation.cpp to CMakeLists.txt.

        * CMakeLists.txt:

2012-12-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137767.
        http://trac.webkit.org/changeset/137767
        https://bugs.webkit.org/show_bug.cgi?id=105062

        Broke Mac builds. (Requested by mlam on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabaseServer.h: Removed.
        * Modules/webdatabase/DBBackendServer.h: Removed.
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::DatabaseManager):
        * Modules/webdatabase/DatabaseManager.h:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/DatabaseStrategy.cpp: Removed.
        * platform/DatabaseStrategy.h: Removed.
        * platform/PlatformStrategies.h:
        (WebCore):
        (WebCore::PlatformStrategies::PlatformStrategies):
        (PlatformStrategies):

2012-12-14  Jer Noble  <jer.noble@apple.com>

        Allow the text track contents to be displayed externally to WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=105052

        Reviewed by Eric Carlson.

        Support scenarios where the text track contents must be rendered outside of WebCore, such as to an external
        display or window.  Add an abstract base class which encapsulates the external representation to which the
        text tracks will be rendered.

        Add a new abstract base class and client to wrap the external rendering of a TextTrack.
        * platform/graphics/TextTrackRepresentation.h: Added.
        (WebCore::TextTrackRepresentationClient::~TextTrackRepresentationClient):
        (WebCore::TextTrackRepresentation::~TextTrackRepresentation):

        Add an empty concrete implementation for those ports who do not yet support external display of subtitles.
        * platform/graphics/TextTrackRepresentation.cpp: Added.
        (NullTextTrackRepresentation):
        (WebCore::NullTextTrackRepresentation::~NullTextTrackRepresentation):
        (WebCore::NullTextTrackRepresentation::update):
        (WebCore::NullTextTrackRepresentation::platformLayer):
        (WebCore::NullTextTrackRepresentation::setContentScale):
        (WebCore::NullTextTrackRepresentation::bounds):
        (WebCore::TextTrackRepresentation::create):

        Add methods to MediaPlayerPrivateIOS to handle the TextTrackRepresentation.
        * platform/graphics/ios/MediaPlayerPrivateIOS.h:
        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
        (WebCore::MediaPlayerPrivateIOS::deliverNotification): Remove the representation when exiting full screen.
        (WebCore::MediaPlayerPrivateIOS::requiresTextTrackRepresentation): Return YES if in full screen mode.
        (WebCore::MediaPlayerPrivateIOS::setTextTrackRepresentation): Pass the representation's layer to the player plug-in.

        Expose those methods via HTMLMediaElement:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::requiresTextTrackRepresentation):
        (WebCore::HTMLMediaElement::setTextTrackRepresentation):
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::requiresTextTrackRepresentation):
        (WebCore::MediaPlayer::setTextTrackRepresentation):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::textTrackRepresentationBoundsChanged):
        (WebCore::MediaPlayerClient::paintTextTrackRepresentation):
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::requiresTextTrackRepresentation):
        (WebCore::MediaPlayerPrivateInterface::setTextTrackRepresentation):

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Create the representation, if necessary.
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Use the representation to determine the font size.
        (WebCore::MediaControlTextTrackContainerElement::paintTextTrackRepresentation): Added. Paint the TextTrack into the provided graphics context.
        (WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged): Added. Call updateSizes().
        * html/shadow/MediaControlElements.h:

        Add the new files to the project.
        * WebCore.xcodeproj/project.pbxproj:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:

2012-12-14  Fady Samuel  <fsamuel@chromium.org>

        Allow embedder to observe changes to frame names
        https://bugs.webkit.org/show_bug.cgi?id=104404

        Reviewed by Darin Fisher.

        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::didChangeName):
        (FrameLoaderClient):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::setName):

2012-12-14  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] Properly report reused connections
        https://bugs.webkit.org/show_bug.cgi?id=104986

        Reviewed by Tony Gentilcore.

        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_connection_reuse.html

        * page/PerformanceResourceTiming.cpp:
        (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
        (WebCore::PerformanceResourceTiming::connectStart):
        (WebCore::PerformanceResourceTiming::connectEnd):
        * page/PerformanceResourceTiming.h:
        (PerformanceResourceTiming):

2012-12-14  Roger Fong  <roger_fong@apple.com>

        Enable video caption controls on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=105045.

        Reviewed by Eric Carlson.

        Now that video tracks have been enabled on Windows, enable controls as well.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        * html/shadow/MediaControlElements.h:
        * rendering/RenderThemeWin.h:

2012-12-14  Mark Lam  <mark.lam@apple.com>

        Introducing the DatabaseStrategy and database servers.
        https://bugs.webkit.org/show_bug.cgi?id=104934.

        Reviewed by Sam Weinig.

        The database server is currently a placeholder that does nothing.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webdatabase/AbstractDatabaseServer.h: Added.
        (WebCore):
        (AbstractDatabaseServer):
        (WebCore::AbstractDatabaseServer::AbstractDatabaseServer):
        (WebCore::AbstractDatabaseServer::~AbstractDatabaseServer):
        * Modules/webdatabase/DBBackendServer.h: Added.
        (DBBackend):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::DatabaseManager):
        * Modules/webdatabase/DatabaseManager.h:
        (WebCore):
        (DatabaseManager):
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/DatabaseStrategy.cpp: Added.
        (WebCore):
        (WebCore::DatabaseStrategy::getDatabaseServer):
        * platform/DatabaseStrategy.h: Added.
        (WebCore):
        (DatabaseStrategy):
        (WebCore::DatabaseStrategy::~DatabaseStrategy):
        * platform/PlatformStrategies.h:
        (WebCore):
        (WebCore::PlatformStrategies::databaseStrategy):
        (PlatformStrategies):
        (WebCore::PlatformStrategies::PlatformStrategies):

2012-12-14  Anton Vayvod  <avayvod@chromium.org>

        Text Autosizing: Consider inline-block and inline-table elements to be autosizing clusters.
        https://bugs.webkit.org/show_bug.cgi?id=104702

        Reviewed by Julien Chaffraix.

        A common pattern for creating adjacent columns in CSS is to set each of the columns to
        display:inline-block, display:inline-table or alike WebKit-specific styles. Whenever columns
        are used, Text Autosizing needs to assign each of the columns to different clusters (since
        the user can zoom in such that a column fills the width of the screen, so text within a column
        should have a smaller multiplier than it's wider enclosing cluster would have needed).

        This patch causes display:inline-block, display:inline-table and alike styles to trigger new clusters.

        Test: fast/text-autosizing/cluster-inline-block-or-table.html
        Test: fast/text-autosizing/cluster-inline-grid-flex-box.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::isAutosizingContainer):
        (WebCore::TextAutosizer::isAutosizingCluster):
            Consider display:inline-block, inline-table and alike elements to be autosizing containers and clusters.

2012-12-14  Anders Carlsson  <andersca@apple.com>

        REGRESSION (r137607): Cannot download files, stuck in "Preparing to download"
        https://bugs.webkit.org/show_bug.cgi?id=105044
        <rdar://problem/12879657>

        Reviewed by Alexey Proskuryakov.

        Make ResourceHandle::cancel return early if the handle has been converted to a download.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::cancel):

2012-12-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137570.
        http://trac.webkit.org/changeset/137570
        https://bugs.webkit.org/show_bug.cgi?id=105048

        Stale nodes in the touchEventTarget HashCountedSet are
        triggering crashes. Rolling out while I find the root cause.
        (Requested by leviw on #webkit).

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::didAddTouchEventHandler):
        (WebCore::Document::didRemoveTouchEventHandler):
        * dom/Document.h:
        (WebCore::Document::touchEventHandlerCount):
        (Document):
        * dom/Node.cpp:
        (WebCore::Node::didMoveToNewDocument):
        (WebCore::tryAddEventListener):
        (WebCore::tryRemoveEventListener):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::restore):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        (WebCore::HTMLInputElement::updateType):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleTouchEvent):
        * page/Frame.cpp:
        (WebCore::Frame::setDocument):
        * page/scrolling/ScrollingCoordinator.cpp:
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
        (ScrollingCoordinatorChromium):
        * testing/Internals.cpp:
        (WebCore::Internals::touchEventHandlerCount):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-12-14  Michelangelo De Simone  <michelangelo@webkit.org>

        [CSS Shaders] Remove code for the other mesh box types (border-box | padding-box | content-box)
        https://bugs.webkit.org/show_bug.cgi?id=103776

        Reviewed by Dean Jackson.

        The MeshBoxType has been removed and the code has been refactored. The specs will be updated shortly
        and therefore this feature - even though it was not fully implemented yet - shall not be used anymore.

        In this patch we remove everything but the parsing code, which shall be addressed in a different patch
        (see: https://bugs.webkit.org/show_bug.cgi?id=103778).

        Specification to be updated: http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#ltboxgt

        Existing tests have been updated and new parsing legacy cases have been added.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCustomFilter):
        * css/CSSPrimitiveValueMappings.h:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createCustomFilterOperation):
        * platform/graphics/filters/CustomFilterConstants.h:
        * platform/graphics/filters/CustomFilterOperation.cpp:
        (WebCore::CustomFilterOperation::CustomFilterOperation):
        (WebCore::CustomFilterOperation::blend):
        * platform/graphics/filters/CustomFilterOperation.h:
        (WebCore::CustomFilterOperation::create):
        (CustomFilterOperation):
        (WebCore::CustomFilterOperation::operator==):
        * platform/graphics/filters/CustomFilterRenderer.cpp:
        (WebCore::CustomFilterRenderer::create):
        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
        * platform/graphics/filters/CustomFilterRenderer.h:
        (CustomFilterRenderer):
        * platform/graphics/filters/FECustomFilter.cpp:
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::create):
        * platform/graphics/filters/FECustomFilter.h:
        (FECustomFilter):
        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
        (WebCore::ValidatedCustomFilterOperation::create):
        (WebCore::ValidatedCustomFilterOperation::operator==):
        (ValidatedCustomFilterOperation):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::createCustomFilterEffect):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::computeFilterOperations):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawUsingCustomFilter):

2012-12-14  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: optional parameters of protocol commands should go after required ones
        https://bugs.webkit.org/show_bug.cgi?id=105019

        Reviewed by Pavel Feldman.

        * inspector/Inspector.json: Moved required x and y parameters declaration before
        optional ones.
        * inspector/InspectorInputAgent.cpp:
        (WebCore::InspectorInputAgent::dispatchMouseEvent):
        * inspector/InspectorInputAgent.h:
        (InspectorInputAgent):

2012-12-14  Jessie Berlin  <jberlin@apple.com>

        Mac build fix after r137724.

        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
        Comment out the names of the unused parameters so they don't trigger unused parameter
        warnings.
        (WebCore::MediaPlayerClient::mediaPlayerKeyError):
        Ditto.
        (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
        Ditto.
        (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
        Ditto.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest):
        Pass an empty URL for the new defaultURL parameter in the keyMessage call.

2012-12-14  Alberto Garcia  <agarcia@igalia.com>

        [GTK] When in private mode WebKitGTK+ should not save HTTP authentication credentials to the persistent storage
        https://bugs.webkit.org/show_bug.cgi?id=104910

        Reviewed by Martin Robinson.

        Add new parameter to GtkAuthenticationDialog to select whether we
        allow persistent storage of credential information or not. In the
        latter case, the "Remember password" check button is not shown and
        the credentials are always stored in the session.

        * platform/gtk/GtkAuthenticationDialog.cpp:
        (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog):
        (WebCore::GtkAuthenticationDialog::createContentsInContainer):
        (WebCore::GtkAuthenticationDialog::buttonClickedCallback):
        * platform/gtk/GtkAuthenticationDialog.h:
        (GtkAuthenticationDialog):

2012-12-14  Andrey Kosyakov  <caseq@chromium.org>

        Unreviewed, rolling out r129633 and r129757.
        http://trac.webkit.org/changeset/129633
        http://trac.webkit.org/changeset/129757
        https://bugs.webkit.org/show_bug.cgi?id=97659

        Causes performance regression whn inspector overlay is
        displayed

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::paint):

2012-12-14  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: add data grid for exploring native heap graph
        https://bugs.webkit.org/show_bug.cgi?id=105012

        Reviewed by Pavel Feldman.

        Added a view for displaying native heap graph nodes.

        * inspector/HeapGraphSerializer.cpp:
        (WebCore::HeapGraphSerializer::reportEdge):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeMemorySnapshotView):
        (WebInspector.NativeMemorySnapshotView.prototype._onSelectedViewChanged):
        (WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
        (WebInspector.NativeHeapGraphNode):
        (WebInspector.NativeHeapGraphNode.prototype.id):
        (WebInspector.NativeHeapGraphNode.prototype.type):
        (WebInspector.NativeHeapGraphNode.prototype.size):
        (WebInspector.NativeHeapGraphNode.prototype.className):
        (WebInspector.NativeHeapGraphNode.prototype.name):
        (WebInspector.NativeHeapGraphNode.prototype.hasReferencedNodes):
        (WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
        (WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
        (WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
        (WebInspector.NativeHeapGraphNode.prototype._getStringField):
        (WebInspector.NativeHeapGraph):
        (WebInspector.NativeHeapGraph.prototype.rootNodes):
        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
        (WebInspector.NativeHeapGraphDataGrid):
        (WebInspector.NativeHeapGraphDataGridRoot):
        (WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
        (WebInspector.NativeHeapGraphDataGridNode):
        (WebInspector.NativeHeapGraphDataGridNode.prototype._populate):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):

2012-12-14  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: do not validate InlineFlowBox objects against tcmalloc data.
        https://bugs.webkit.org/show_bug.cgi?id=105001

        Reviewed by Yury Semikhatsky.

        This is a follow-up change for r137589.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::reportMemoryUsage):
        (WebCore):
        * rendering/InlineFlowBox.h:
        (InlineFlowBox):

2012-12-14  Kentaro Hara  <haraken@chromium.org>

        ChildNodesLazySnapshot::nextNode() can crash in Debug builds
        https://bugs.webkit.org/show_bug.cgi?id=104982

        Reviewed by Ryosuke Niwa.

        The original fix in r137702 was not enough. r137702 fixed a crash
        in Release builds but didn't fix a crash in Debug builds.
        We have to also change a return type of ChildNodesLazySnapshot::nextNode()
        from a raw pointer to a RefPtr.

        Test: fast/dom/insertedIntoDocument-no-crash.html
        (Confirm that this test does not crash in Debug builds.)

        * dom/ContainerNode.h:
        (WebCore::ChildNodesLazySnapshot::nextNode):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):

2012-12-14  John Mellor  <johnme@chromium.org>

        Text Autosizing: Don't autosize unwrappable blocks
        https://bugs.webkit.org/show_bug.cgi?id=104925

        Reviewed by Julien Chaffraix.

        If we autosize an unwrappable block (white-space:nowrap/pre), it'll
        expand sideways. This doesn't actually improve its legibility, and it
        can often severely break web page layouts. This patch prevents us from
        autosizing unwrappable blocks. A follow-up patch will address the more
        complex issue of unwrappable inline elements.

        Tests: fast/text-autosizing/unwrappable-blocks.html
               fast/text-autosizing/unwrappable-inlines.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::processContainer):
            Use containerShouldbeAutosized instead of contentHeightIsConstrained.
        (WebCore::contentHeightIsConstrained):
            Unchanged, just moved lower down the file.
        (WebCore::TextAutosizer::containerShouldbeAutosized):
            Checks that the block is wrappable, and also that contentHeightIsConstrained is false.
        (WebCore::TextAutosizer::measureDescendantTextWidth):
            Use containerShouldbeAutosized instead of contentHeightIsConstrained.
        * rendering/TextAutosizer.h:
            Declared containerShouldbeAutosized.

2012-12-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Duplicate scripts appear in workspace when script was referenced by url with a fragment part.
        https://bugs.webkit.org/show_bug.cgi?id=105004

        Reviewed by Alexander Pavlov.

        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):

2012-12-14  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Hours field of date/time input UI should respect step attribute
        https://bugs.webkit.org/show_bug.cgi?id=104993

        Reviewed by Kent Tamura.

        This patch makes step-up/-down UI of the hours field respect step attribute when possible.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField): Pass step parameters to the hour field constructor.
        * html/shadow/DateTimeFieldElements.cpp:
        (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Add Parameters argument.
        (WebCore::DateTimeHourFieldElement::create): Ditto.
        * html/shadow/DateTimeFieldElements.h:
        (DateTimeHourFieldElement): Ditto.

2012-12-14  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Windows compilation fix after r137728.

        * inspector/InspectorAllInOne.cpp:

2012-12-14  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow DOM] ShadowRoot.getElementById() should work outside document.
        https://bugs.webkit.org/show_bug.cgi?id=87815

        Reviewed by Hajime Morita.

        ShadowRoot.getElementById() didn't work if ShadowRoot is outside document. We need to update id when an element
        is in ShadowTree event if it is not in document.

        For performance reason, we introduce IsInShadowTree flag, which enables us to check isInTreeScope() fast.
        This is maintained in Element::insertedInto and removedFrom. Here, we're anxious about performance regression,
        however our benchmark result shows this doesn't regress the performance.

        I've measured Dromaeo/dom-modify.html and Parser/html5-full-render.html 2 times.

        Dromaeo/dom-modify.html
             35.21,   35.27 [runs/s] --->   35.76,   35.56 [runs/s]
        Parser/html5-full-render.html
           4328.51, 4254.94 [ms]     ---> 4277.14, 4222.43 [ms]

        Test: fast/dom/shadow/getelementbyid-in-orphan.html

        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        * dom/Element.h:
        (WebCore::Element::updateId):
        * dom/Node.cpp:
        (WebCore::Node::insertedInto): If the parent node is in shadow tree, this node should be also in the same shadow tree.
        Since this node is inserted, parentOrHostNode() will not be null.
        (WebCore::Node::removedFrom): When node is removed from ShadowTree, its treeScope() should not be ShadowRoot.
        * dom/Node.h:
        (Node):
        (WebCore::Node::isInShadowTree):
        (WebCore::Node::isInTreeScope):

2012-12-14  Antoine Quint  <graouts@apple.com>

        LayerTreeAgent should only be enabled upon restore if it was previously in the enabled state
        https://bugs.webkit.org/show_bug.cgi?id=104887

        Reviewed by Pavel Feldman.

        Check that we were previously in the enabled state before re-enabling the agent upon restore,
        as suggested by Pavel Feldman in follow-up discussion to https://bugs.webkit.org/show_bug.cgi?id=103513.

        * inspector/InspectorLayerTreeAgent.cpp:
        (WebCore::InspectorLayerTreeAgent::restore):

2012-12-14  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: CPU Profile: Search in "heavy" mode is very slow.
        https://bugs.webkit.org/show_bug.cgi?id=103682

        Reviewed by Pavel Feldman.

        In "heavy" mode the searchable tree is much larger than original tree.
        That is why search can cause watchdog timer fired.

        Simple optimization makes search much faster.

        * inspector/front-end/CPUProfileView.js:
        (WebInspector.CPUProfileView.prototype.searchCanceled):
        Fix cleanup.
        (WebInspector.CPUProfileView.prototype.matchesQuery):
        Precompute regexp.
        (WebInspector.CPUProfileView.prototype.performSearch):
        Use precomputed regexp instead of generating one on each iteration.

2012-12-13  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: collect native heap graph and report it to the front-end
        https://bugs.webkit.org/show_bug.cgi?id=104888

        Reviewed by Pavel Feldman.

        Added an option to serialize native heap graph in a format similar to that
        of JS heap profiler and send it in reply to getProcessMemoryDistribution
        command. This is a first attempt and we likely change the report mechanism to
        use a stream instread of sending whole graph at once.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/HeapGraphSerializer.cpp: Added.
        (WebCore):
        (HeapGraphNode):
        (WebCore::HeapGraphNode::HeapGraphNode):
        (HeapGraphEdge):
        (WebCore::HeapGraphEdge::HeapGraphEdge):
        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::~HeapGraphSerializer):
        (WebCore::HeapGraphSerializer::serialize):
        (WebCore::HeapGraphSerializer::reportNode):
        (WebCore::HeapGraphSerializer::reportEdge):
        (WebCore::HeapGraphSerializer::reportLeaf):
        (WebCore::HeapGraphSerializer::reportBaseAddress):
        (WebCore::HeapGraphSerializer::adjutEdgeTargets):
        (WebCore::HeapGraphSerializer::addString):
        * inspector/HeapGraphSerializer.h: Copied from Source/WebCore/inspector/InspectorMemoryAgent.h.
        (WebCore):
        (HeapGraphSerializer):
        * inspector/Inspector.json:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * inspector/InspectorMemoryAgent.h:
        (InspectorMemoryAgent):
        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::reportNode):
        (WebCore):
        (WebCore::MemoryInstrumentationClientImpl::reportEdge):
        (WebCore::MemoryInstrumentationClientImpl::reportLeaf):
        (WebCore::MemoryInstrumentationClientImpl::reportBaseAddress):
        * inspector/MemoryInstrumentationImpl.h:
        (WebCore):
        (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
        (MemoryInstrumentationClientImpl):

2012-12-14  Yoshifumi Inoue  <yosin@chromium.org>

        Handling autoscroll in EventHandler should be re-factor
        https://bugs.webkit.org/show_bug.cgi?id=104764

        Reviewed by Hajime Morita.

        This patch introduces new class AutoscrollController for moving autoscroll
        and panscroll from EventHandler class for ease of maintenance of
        EventHandler and ease of adding autoscroll related features, e.g. autoscroll
        during drag-and-drop, autoscoll by gesture.

        No new tests. This patch doesn't change behavior.

        * CMakeLists.txt: Changed to add page/AutoscrollController.cpp
        * GNUmakefile.list.am:  Changed to add page/AutoscrollController.{cpp,h}
        * Target.pri:  Changed to add page/AutoscrollController.cpp
        * WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
        * WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
        * WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
        * page/AutoscrollController.cpp: Added.
        (WebCore::getMainFrame): Helper function.
        (WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
        (WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
        (WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
        (WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
        (WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
        (WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
        (WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
        (WebCore::AutoscrollController::didPanScrollStop): ditto
        (WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
        (WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
        (WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
        (WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
        (WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
        (WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
        * page/AutoscrollController.h: Added.
        (AutoscrollController):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
        (WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
        (WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
        (WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
        (WebCore::EventHandler::didPanScrollStop): ditto
        (WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
        (WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
        (WebCore::EventHandler::updateAutoscrollRenderer): ditto
        (WebCore::EventHandler::autoscrollInProgress): ditto
        (WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
        (WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
        (WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
        (WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
        (WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
        * page/EventHandler.h:
        (WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
        (WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
        (WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
        * rendering/RenderBox.h:
        (RenderBox): Added new functions canAutoscroll() and findAutoscrollable().

2012-12-14  David Dorwin  <ddorwin@chromium.org>

        EME v0.1: Report defaultURL in KeyMessage.
        https://bugs.webkit.org/show_bug.cgi?id=104284

        Reviewed by Darin Fisher.

        Passes defaultURL down from the media engine to HTMLMediaElement.
        Only Valid URLs will be passed.

        No test because Clear Key does not provide a defaultURL (in v0.1).

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerKeyMessage):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::keyMessage):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
        (WebCore::MediaPlayerClient::mediaPlayerKeyError):
        (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
        (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
        (MediaPlayer):

2012-12-13  Hajime Morrita  <morrita@google.com>

        ContentDistributor and ShadowRootContentDistributionData should use RefPtr to hold elements.
        https://bugs.webkit.org/show_bug.cgi?id=104918

        Reviewed by Kentaro Hara.

        This change turns some raw pointers to RefPtrs.

        No new tests. Hard to write reliable fast tests since the error
        reproduction needs GC to run in certain timing. Although original
        report has a repdocution, it takes a few seconds before crash and
        isn't suited for a layout test.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::insertionPointList):
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
        (WebCore::ContentDistributor::findInsertionPointFor):
        (WebCore::ContentDistributor::distribute):
        (WebCore::ContentDistributor::invalidate):
        * html/shadow/ContentDistributor.h:
        (ShadowRootContentDistributionData):
        (ContentDistributor):

2012-12-13  Hajime Morrita  <morrita@google.com>

        NodeRenderingContext is slow due to ComposedShadowTreeWalker
        https://bugs.webkit.org/show_bug.cgi?id=104332

        Reviewed by Dimitri Glazkov.

        NodeRenderingContext has some slowness due to the complexity of
        ComposedShadowTreeWalker that NRC relies on. This change
        creates some fast paths to address such slowness.

        = NodeRenderingTraversal module:

        This change introduces NodeRenderingTraversal namespace, a sister
        of NodeTraversal. NRT consists of a set of tree traversal
        functions that is responsible for traversal in NRC.  Before this
        change, NRC directly used CSTW. This NRT module hides and narrows
        the usage of CSTW.

        - Traversals provided by NRT have fast paths. In many case, such traversals
          don't need to use CSTW and just goes to neighboring nodes in a plain DOM way.
        - It also handles NRC specific traversal concerns like pseudo elements.
          CSTW::pseudoAwareNextSibling() and CSTW::pseudoAwarePreviousSibling() are
          merged into this module.
        - CSTW::ParentTraversalDetails is moved and renamed to
          NRT::ParentDetails with small modification. This is a pure
          refactoring: As the name implies, This class is used only by NRC
          and used during a traversal there.

        NodeRenderingTraversal is an isolation layer between generic DOM and CSTW. This hides CSTW
        behind the wall and will help further reduction of its usage.

        = Node::NeedsShadowTreeWalkerFlag flag:

        NRT fast path is enabled by newly introduced NeedsShadowTreeWalker
        node flag. Each DOM node is now markd as NeedsShadowTreeWalker if
        it requires non-trivial traversal in NRT which uses CSTW. This
        means that each node can go fast path unless it is marked with this flag.

        A node is marked as it NeedsShadowTreeWalker if:

        - The node is a shadow boundary like InsertionPoint or ShadowRoot,
        - The node has pseudo elements like generated content or
        - The node is a pseudo element.

        This criteria is defined in Node::needsShadowTreeWalkerSlow(). The node actually needs
        the walker if the node or its parent is marked with this flag.

        The original idea of this change was demonstrated by Antti Koivisto on bug 103208 and bug 104507.
        This chagne has 2-3% speedup on Dromaeo/dom-modify/innerHTML on Apple Mac.

        No new tests. Covered by existing tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ComposedShadowTreeWalker.cpp:
        * dom/ComposedShadowTreeWalker.h:
        (ComposedShadowTreeWalker): Move some part to NodeRenderingTraversal
        * dom/ContainerNode.h:
        (WebCore::Node::needsShadowTreeWalker): Added. This is located here since it refers ContainerNode definition.
        (WebCore):
        * dom/DOMAllInOne.cpp:
        * dom/Element.cpp:
        (WebCore::Element::updatePseudoElement): Refactored.
        (WebCore::Element::hasPseudoElements): Ditto.
        (WebCore::Element::pseudoElement): Ditto.
        (WebCore::Element::setPseudoElement): Refactored and added a flag update logic.
        (WebCore):
        * dom/Element.h:
        (Element):
        (WebCore::Element::beforePseudoElement): Refactored.
        (WebCore::Element::afterPseudoElement): Refactored.
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::hasPseudoElements): Factored out.
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::addShadowRoot): Added a flag update logic.
        * dom/Node.cpp:
        (WebCore::Node::needsShadowTreeWalkerSlow): Added.
        * dom/Node.h:
        (WebCore::Node::isInsertionPointNode): Added.
        (Node):
        (WebCore::Node::isInsertionPoint): Changed to use NeedsShadowTreeWalkerFlag.
        (WebCore::Node::setNeedsShadowTreeWalker):
        (WebCore::Node::resetNeedsShadowTreeWalker):
        * dom/NodeRenderingContext.cpp: Adopted NodeRenderingTraversal.
        (WebCore::NodeRenderingContext::NodeRenderingContext):
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):
        (WebCore::NodeRenderingContext::parentRenderer):
        (WebCore::NodeRenderingContext::shouldCreateRenderer):
        * dom/NodeRenderingContext.h: Ditto.
        (NodeRenderingContext):
        (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
        * dom/NodeRenderingTraversal.cpp: Added.
        (WebCore):
        (NodeRenderingTraversal):
        (WebCore::NodeRenderingTraversal::ParentDetails::didTraverseInsertionPoint): Moved from ComposedShadowTreeWalker
        (WebCore::NodeRenderingTraversal::ParentDetails::didTraverseShadowRoot): Ditto.
        (WebCore::NodeRenderingTraversal::parentSlow): Ditto.
        (WebCore::NodeRenderingTraversal::nextSiblingSlow): Ditto. The original was pseudoAwareNextSibling.
        (WebCore::NodeRenderingTraversal::previousSiblingSlow): Ditto. The original was pseudoAwarePreviousSibling.
        * dom/NodeRenderingTraversal.h: Added.
        (WebCore):
        (NodeRenderingTraversal):
        (ParentDetails): Moved from ComposedShadowTreeWalker.
        (WebCore::NodeRenderingTraversal::ParentDetails::ParentDetails):
        (WebCore::NodeRenderingTraversal::ParentDetails::insertionPoint):
        (WebCore::NodeRenderingTraversal::ParentDetails::resetStyleInheritance):
        (WebCore::NodeRenderingTraversal::ParentDetails::outOfComposition):
        (WebCore::NodeRenderingTraversal::ParentDetails::childWasOutOfComposition):
        (WebCore::NodeRenderingTraversal::ParentDetails::operator==):
        (WebCore::NodeRenderingTraversal::parent):
        (WebCore::NodeRenderingTraversal::nextSibling):
        (WebCore::NodeRenderingTraversal::previousSibling):
        * dom/PseudoElement.cpp:
        (WebCore::PseudoElement::PseudoElement): Added an assertion.
        * dom/Text.cpp:
        * html/HTMLOptGroupElement.cpp: Added a #include which revealed by a chagne on NodeRenderingContext.h
        * html/HTMLOptionElement.cpp: Ditto.
        * html/HTMLProgressElement.cpp: Dito.
        * html/shadow/InsertionPoint.h: Added an override of isInsertionPointNode().

2012-12-13  Kent Tamura  <tkent@chromium.org>

        Refactoring: Fix indentation of ChromeClient.h
        https://bugs.webkit.org/show_bug.cgi?id=104989

        Reviewed by Kentaro Hara.

        The contents of an outermost namespace block should not be indented.
        http://www.webkit.org/coding/coding-style.html#indentation-namespace

        No behavior change.

        * page/ChromeClient.h:

2012-12-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Seconds/Minutes field of date/time input UI should respect step attribute
        https://bugs.webkit.org/show_bug.cgi?id=104985

        Reviewed by Kent Tamura.

        This patch makes step-up/-down UI of the seconds and minutes fields respect
        step attribute when possible.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html

        * html/shadow/DateTimeEditElement.cpp:
        (DateTimeEditBuilder):
        (WebCore::DateTimeEditBuilder::visitField): Compute step parameters for seconds and minutes fields, and pass it to the field element constructors.
        (WebCore::DateTimeEditBuilder::createNumericFieldParameters): Added.
        * html/shadow/DateTimeFieldElements.cpp:
        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
        (WebCore::DateTimeMillisecondFieldElement::create): Ditto.
        (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): Add Parameters argument.
        (WebCore::DateTimeMinuteFieldElement::create): Ditto.
        (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): Ditto.
        (WebCore::DateTimeSecondFieldElement::create): Ditto.
        * html/shadow/DateTimeFieldElements.h:
        (DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
        (DateTimeMinuteFieldElement): Add Parameters argument.
        (DateTimeSecondFieldElement): Ditto.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Use Parameters instead of step and stepBase.
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement):
        (WebCore::DateTimeNumericFieldElement::Parameters::Parameters):
        (Parameters): Added.

2012-12-13  Filip Pizlo  <fpizlo@apple.com>

        Attempt to rationalize and simplify WTF::binarySearch
        https://bugs.webkit.org/show_bug.cgi?id=104890

        Reviewed by Maciej Stachowiak.

        Switch to using the new binarySearch() API. No change in behavior, so no new tests.

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::findInstanceTime):

2012-12-13  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM]: scoped styles are not applied in the cascade order.
        https://bugs.webkit.org/show_bug.cgi?id=103239

        Reviewed by Dimitri Glazkov.

        If the scoping elements of two declarations have an ancestor/
        descendant relationship, the declaration whose scoping element is
        the descendant should win.
        c.f. http://dev.w3.org/csswg/css3-cascade/#cascade

        Test: fast/css/style-scoped/style-scoped-nested.html
              fast/css/style-scoped/style-scoped-with-important-rule.html

        * css/RuleSet.cpp:
        (WebCore::RuleSet::addRule):
        Removed specificity for @host @-rules. Now @host @-rules use the
        cascading order instead.
        * css/RuleSet.h:
        Removed increaseSpecificity. The method is used by only @host @-rules.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::matchScopedAuthorRules):
        (WebCore::StyleResolver::matchHostRules):
        (WebCore::StyleResolver::matchAuthorRules):
        Modified to invoke sortAndTransferMatchedRules per scoping element.
        The order of "matchXXXRules" must be the same as the cascading order.
        So matchHostRules was invoked after collecting all scoped author rules.
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::addHostRule):
        Removed RuleIsHostRule. We don't need the flag.
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::registerWithScopingNode):
        Needs to pass the last test case of style-scoped-nested.html.
        When appending some style element to a shadow root, we should recalc
        styles of all elements in the shadow dom tree. And if the style
        element has @host @-rules, we have to update the host's style.

2012-12-13  Filip Pizlo  <fpizlo@apple.com>

        MediaPlayerPrivateAVFoundation::m_inbandTrackConfigurationPending is unused except when HAVE(AVFOUNDATION_TEXT_TRACK_SUPPORT)
        https://bugs.webkit.org/show_bug.cgi?id=104987

        Rubber stamped by Michael Saboff.

        No change in behavior so no new tests.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        (MediaPlayerPrivateAVFoundation):

2012-12-13  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        (JSTestCustomNamedGetter):
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        (JSTestEventTarget):

2012-12-13  Yoshifumi Inoue  <yosin@chromium.org>

        Unreviewed, rolling out r137691.
        http://trac.webkit.org/changeset/137691
        https://bugs.webkit.org/show_bug.cgi?id=104764

        panscroll test on AppleWin failed

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * page/AutoscrollController.cpp: Removed.
        * page/AutoscrollController.h: Removed.
        * page/EventHandler.cpp:
        (WebCore):
        (WebCore::EventHandler::EventHandler):
        (WebCore::canAutoscroll):
        (WebCore::EventHandler::handleMouseDraggedEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::handleAutoscroll):
        (WebCore::EventHandler::autoscrollTimerFired):
        (WebCore::EventHandler::startPanScrolling):
        (WebCore::EventHandler::updatePanScrollState):
        (WebCore::EventHandler::autoscrollRenderer):
        (WebCore::EventHandler::updateAutoscrollRenderer):
        (WebCore::EventHandler::setAutoscrollRenderer):
        (WebCore::EventHandler::startAutoscrollTimer):
        (WebCore::EventHandler::stopAutoscrollTimer):
        (WebCore::EventHandler::selectCursor):
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::keyEvent):
        * page/EventHandler.h:
        (EventHandler):
        (WebCore::EventHandler::autoscrollInProgress):
        * rendering/RenderBox.cpp:
        * rendering/RenderBox.h:
        (RenderBox):

2012-12-13  Kentaro Hara  <haraken@chromium.org>

        ChildNodesLazySnapshot::nextNode() can crash
        https://bugs.webkit.org/show_bug.cgi?id=104982

        Reviewed by Hajime Morita.

        ChildNodesLazySnapshot::nextNode() can crash for
        fast/dom/insertedIntoDocument-no-crash.html.
        The root cause is that ChildNodesLazySnapshot::m_currentNode
        was not a RefPtr. This patch changes it to a RefPtr.

        Test: fast/dom/insertedIntoDocument-no-crash.html

        * dom/ContainerNode.h:
        (WebCore::ChildNodesLazySnapshot::nextNode):
        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
        (ChildNodesLazySnapshot):

2012-12-13  Philip Rogers  <pdr@google.com>

        Clear m_timeContainer on SVGSMILElement removal.
        https://bugs.webkit.org/show_bug.cgi?id=104972

        Reviewed by Abhishek Arya.

        This patch fixes a regression introduced by r137509 where we did not clear
        m_timeContainer in SVGSMILElement::removedFrom.

        Test: svg/custom/removed-from-animation-crash.html

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::removedFrom):

2012-12-13  Filip Pizlo  <fpizlo@apple.com>

        Named lookups on HTML documents produce inconsistent results in JavaScriptCore bindings
        https://bugs.webkit.org/show_bug.cgi?id=104623

        Reviewed by Geoffrey Garen.

        All DOM objects that have named getters or directly override getOwnPropertySlot are now marked as
        HasImpureGetOwnPropertySlot.

        Tests: fast/js/prototype-chain-caching-with-impure-get-own-property-slot-traps
               fast/js/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):

2012-12-13  Xianzhu Wang  <wangxianzhu@chromium.org>

        Out-of-view check of fixed position element in frame is incorrect when page is scaled
        https://bugs.webkit.org/show_bug.cgi?id=104943

        Reviewed by Simon Fraser.

        Use frameScaleFactor instead of pageScaleFactor to scale the layer bounds.

        Tests: compositing/layer-creation/fixed-position-out-of-view-scaled-iframe-scroll.html
               compositing/layer-creation/fixed-position-out-of-view-scaled-iframe.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2012-12-13  Bear Travis  <betravis@adobe.com>

        Positioned replaced elements should resolve vertical margins against their containing
        block's logical width
        https://bugs.webkit.org/show_bug.cgi?id=103579

        Reviewed by Emil A Eklund.

        According to the CSS box model & writing modes specifications, percentage margin
        & padding values, including top & bottom, should be resolved based on the
        containing block's logical width (logical with respect to the containing block's
        writing mode).
        http://www.w3.org/TR/CSS2/box.html#margin-properties
        http://dev.w3.org/csswg/css3-writing-modes/#dimension-mapping

        Previously, a positioned replaced element resolved margin before/after relative to
        its inline direction (containerLogicalHeight), and margin start/end relative to
        its block direction (containerLogicalWidth). This patch measures the container's
        logical width in its own inline direction (containerRelativeLogicalWidth) to
        resolve all margin percentage values.

        Test: fast/writing-mode/percentage-margins-absolute-replaced.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePositionedLogicalWidthReplaced): Calculate the logical
        width of the container, and use it to calculate margins.
        (WebCore::RenderBox::computePositionedLogicalHeightReplaced): Ditto.

2012-12-13  Yoshifumi Inoue  <yosin@chromium.org>

        Handling autoscroll in EventHandler should be re-factor
        https://bugs.webkit.org/show_bug.cgi?id=104764

        Reviewed by Hajime Morita.

        This patch introduces new class AutoscrollController for moving autoscroll
        and panscroll from EventHandler class for ease of maintenance of
        EventHandler and ease of adding autoscroll related features, e.g. autoscroll
        during drag-and-drop, autoscoll by gesture.

        No new tests. This patch doesn't change behavior.

        * CMakeLists.txt: Changed to add page/AutoscrollController.cpp
        * GNUmakefile.list.am:  Changed to add page/AutoscrollController.{cpp,h}
        * Target.pri:  Changed to add page/AutoscrollController.cpp
        * WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
        * WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
        * WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
        * page/AutoscrollController.cpp: Added.
        (WebCore::getMainFrame): Helper function.
        (WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
        (WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
        (WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
        (WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
        (WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
        (WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
        (WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
        (WebCore::AutoscrollController::didPanScrollStop): ditto
        (WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
        (WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
        (WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
        (WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
        (WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
        (WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
        * page/AutoscrollController.h: Added.
        (AutoscrollController):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
        (WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
        (WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
        (WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
        (WebCore::EventHandler::didPanScrollStop): ditto
        (WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
        (WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
        (WebCore::EventHandler::updateAutoscrollRenderer): ditto
        (WebCore::EventHandler::autoscrollInProgress): ditto
        (WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
        (WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
        (WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
        (WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
        (WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
        * page/EventHandler.h:
        (WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
        (WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
        (WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
        * rendering/RenderBox.h:
        (RenderBox): Added new functions canAutoscroll() and findAutoscrollable().

2012-12-13  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=102599
        ASSERT loading Acid3 test in run-safari --debug (r135050)

        Reviewed by Simon Fraser.

        New flag IncludeCompositedDescendants will always calculate the layer bounds for 
        descendants, even when the are composited. 
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateLayerBounds):
        * rendering/RenderLayer.h:

        calculateCompositedBounds() should not include this new flag, so instead of 
        calling that, call calculateLayerBounds() directly with the 
        IncludeCompositedDescendants flag. This will get us the information we need 
        upfront and avoid the toggling later on. 
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2012-12-13  Tien-Ren Chen  <trchen@chromium.org>

        Don't consider container nodes of other disambiguated nodes
        https://bugs.webkit.org/show_bug.cgi?id=104619

        Reviewed by Eric Seidel.

        It is not uncommon to have a clickable <div> that contains other clickable objects.
        This heuristic avoids excessive disambiguation in that case.

        New unit test: WebFrameTest.DisambiguationPopupNoContainer

        * page/TouchDisambiguation.cpp:
        (WebCore::findGoodTouchTargets):

2012-12-13  Adrienne Walker  <enne@chromium.org>

        Unreviewed, rolling out r137645, r137646, and r137667.
        http://trac.webkit.org/changeset/137645
        http://trac.webkit.org/changeset/137646
        http://trac.webkit.org/changeset/137667
        https://bugs.webkit.org/show_bug.cgi?id=104911

        Breaks some overflow layout tests

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::updateDescendantDependentFlags):
        (WebCore::RenderLayer::addChild):
        (WebCore::RenderLayer::removeChild):
        (WebCore::RenderLayer::usesCompositedScrolling):
        (WebCore::RenderLayer::scrollTo):
        (WebCore::RenderLayer::dirtyZOrderLists):
        (WebCore::RenderLayer::dirtyNormalFlowList):
        (WebCore::RenderLayer::updateLayerListsIfNeeded):
        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
        (WebCore::RenderLayer::styleChanged):
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
        (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):
        * testing/InternalSettings.cpp:
        * testing/InternalSettings.h:
        (InternalSettings):
        * testing/InternalSettings.idl:

2012-12-13  Andreas Kling  <akling@apple.com>

        Event dispatch: Avoid heap allocations in ensureEventAncestors() typical case.
        <http://webkit.org/b/104938>

        Reviewed by Anders Carlsson.

        Give the EventTarget and EventContext vectors an inline capacity of 32 (no science here, just a
        non-zero number.) As these vectors are created on the stack already, this is merely using a bit
        more stack space to avoid malloc()ing all the gosh-darn time.

        Looks like ~6% improvement on Dromaeo/jslib-event-prototype.

        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedTargetAdjuster::adjust):
        (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
        (WebCore::EventDispatcher::ensureEventAncestors):
        * dom/EventDispatcher.h:
        (EventRelatedTargetAdjuster):
        (EventDispatcher):

2012-12-13  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] Don't report resources with data: urls
        https://bugs.webkit.org/show_bug.cgi?id=104868

        Reviewed by Tony Gentilcore.

        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_data_url.html

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::loadDone):

2012-12-13  Ian Vollick  <vollick@chromium.org>

        Add a missing nullity check in RenderObject::containingBlock
        https://bugs.webkit.org/show_bug.cgi?id=104961

        Reviewed by Adrienne Walker.

        Adds a missing nullity check in an assert.

        No new tests, no change in functionality.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containingBlock):

2012-12-13  Tab Atkins  <tabatkins@google.com>

        Switch the gradient drawing code to use bearing angles
        https://bugs.webkit.org/show_bug.cgi?id=104616

        Reviewed by Dean Jackson.

        Switch the gradient math from polar-coordinate angles to bearing angles.
        To make this possible without behavior changes, 
        switch the m_deprecatedType boolean to an m_gradientType enum,
        and fix all usages accordingly.

        No new tests, as this is a refactoring and should have no behavior changes. Existing tests suffice.

        * css/CSSGradientValue.cpp:
        (WebCore::endPointsFromAngle):
        This is the only mechanical change. The rest are just fixing the plumbing around the boolean->enum change.

        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::sortStopsIfNeeded):
        (WebCore::CSSGradientValue::addStops):
        (WebCore::CSSLinearGradientValue::customCssText):
        (WebCore::CSSLinearGradientValue::createGradient):
        (WebCore::CSSRadialGradientValue::customCssText):
        * css/CSSGradientValue.h:
        (WebCore::CSSGradientValue::gradientType):
        (WebCore::CSSGradientValue::CSSGradientValue):
        (WebCore::CSSLinearGradientValue::create):
        (WebCore::CSSLinearGradientValue::CSSLinearGradientValue):
        (WebCore::CSSRadialGradientValue::create):
        (WebCore::CSSRadialGradientValue::CSSRadialGradientValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseDeprecatedGradient):
        (WebCore::CSSParser::parseDeprecatedLinearGradient):
        (WebCore::CSSParser::parseDeprecatedRadialGradient):

2012-12-13  Ian Vollick  <vollick@chromium.org>

        [chromium] Automatically use composited scrolling
        https://bugs.webkit.org/show_bug.cgi?id=94743

        Reviewed by Adrienne Walker.

        We currently use the composited scrolling facilities provided by
        wkb.ug/91117 if the overflow scroll block element is styled with
        -webkit-overflow-scrolling: touch. Ideally, we could automatically
        opt into composited scrolling if it is safe to do so. This can affect
        antialiasing, so it is important that automatically opting in is only
        enabled via a setting.

        The way I determine if it is safe is by checking that z-ordering will
        not be affected if the overflow scrollable element were promoted to a
        stacking context (details below), and that clipping our scrolling
        descendants will not affect rendering.

        To check the first condition (that z-ordering will not be affected).
        I ensure that the candidate element and all its descendants appear as a 
        continuous block in the candidate's stacking context. That is, if no 
        other elements are 'between' any of the candidates descendants when we
        sort in paint order, then we're safe. This is overly conservative,
        however. We could, in future, only consider stacking problems between
        elements that actually overlap.

        To ensure that clipping will not cause a rendering change, I ensure
        that the layer has no out of flow positioned descendant whose
        containing block is not also a descendant of ours.

        Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html

        (WebCore):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
        (WebCore):
        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
        (WebCore::RenderLayer::positionOverflowControlsAfterPromotionToCompositedScrolling):
        (WebCore::RenderLayer::canSafelyEstablishAStackingContext):
          Returns true if the RenderLayer could become a stacking context without
          affecting the stacking order.
        (WebCore::RenderLayer::updateDescendantDependentFlags):
          We now need to keep track of out of flow positioned descendants.
        (WebCore::RenderLayer::addChild):
        (WebCore::RenderLayer::removeChild):
        (WebCore::RenderLayer::usesCompositedScrolling):
          Has been updated to return true if it can safely establish a stacking
          context, and the setting is turned on.
        (WebCore::RenderLayer::needsCompositedScrolling):
          This function returns true if we would like to use composited
          scrolling.
        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
        (WebCore::RenderLayer::scrollTo):
        (WebCore::RenderLayer::dirtyZOrderLists):
        (WebCore::RenderLayer::dirtyNormalFlowList):
          Since these could affect opting into composited scrolling, we must
          request that the RenderLayerCompositor reevaluate compositing.
        (WebCore::RenderLayer::updateLayerListsIfNeeded):
          We call updateCanSafelyEstablishStackingContext here, if necessary.
        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
          usesCompositedScrolling -> needsCompositedScrolling
        (WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
        (WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
        (WebCore::RenderLayer::updateOutOfFlowPositioned):
          Dirties and sets the out of flow positioned descendant state.
        (WebCore::RenderLayer::styleChanged):
        * rendering/RenderLayer.h:
        (RenderLayer):
        (WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
        (WebCore):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
          We now ensure that newly created overflow scroll controls get
          positioned.
        (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
        * rendering/RenderLayerCompositor.h:
        (WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
          Allows enabling the setting in layout tests.
        (WebCore):
        * testing/InternalSettings.h:
        (InternalSettings):
        * testing/InternalSettings.idl:

2012-12-13  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r137406): NodeTraversal changes causing large renderer crash
        https://bugs.webkit.org/show_bug.cgi?id=104937

        Reviewed by Antti Koivisto.

        Add a null pointer check to exit early since ElementTraversal::next assumes a non-null pointer.

        No new tests since I don't think this function is ever exposed to any ES5 bindings.

        * editing/FrameSelection.cpp:
        (WebCore::scanForForm):

2012-12-13  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Improve error messages
        https://bugs.webkit.org/show_bug.cgi?id=104624

        Reviewed by Tony Chang.

        Add detail to error messages so that they are more helpful and can be
        traced back to a specific line of code.

        Updated test: transaction-error.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
        (WebCore::IDBDatabaseBackendImpl::close):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
        (WebCore::IDBFactoryBackendImpl::open):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):

2012-12-13  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Safeguard against possible NULL-dereference
        https://bugs.webkit.org/show_bug.cgi?id=104931

        Reviewed by Chris Fleizach.

        This was spotted by Coverity. See bug 104114.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetIndexInParent): If parent is NULL
        bail out early.

2012-12-13  David Barton  <dbarton@mathscribe.com>

        Heap-use-after-free in WebCore::RenderBlock::finishDelayUpdateScrollInfo
        https://bugs.webkit.org/show_bug.cgi?id=103750

        Reviewed by Tony Chang.

        MathML sometimes creates and destroys renderers for descendants during layout (or even to calculate
        preferred logical widths), e.g. for operator stretching. RenderBlock::finishDelayUpdateScrollInfo
        must therefore leave gDelayedUpdateScrollInfoSet intact as it iterates over it, so
        RenderBlock::willBeDestroyed can call gDelayedUpdateScrollInfoSet->remove(this) effectively if needed.
        This also prevents duplicate entries from being added to gDelayedUpdateScrollInfoSet.

        Test: mathml/mo-stretch-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::startDelayUpdateScrollInfo):
            - Allow gDelayedUpdateScrollInfoSet to be non-null when gDelayUpdateScrollInfo is 0 during
              RenderBlock::finishDelayUpdateScrollInfo.
        (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
            - Remove blocks from gDelayedUpdateScrollInfoSet one at a time, waiting for each block until it is
              about to be updated.

2012-12-13  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/12838354> Per-Tab WebProcess: DOM cookie access functions should respect private browsing
        https://bugs.webkit.org/show_bug.cgi?id=104691

        Reviewed by Sam Weinig.

        * platform/network/NetworkingContext.h: Added a function that returns current
        context type. Ideally, we would track contexts across processes in a generic manner,
        but we only have two now, and don't need such complications.

2012-12-13  Alexey Proskuryakov  <ap@apple.com>

        ResourceLoader::didReceiveAuthenticationChallenge uses a wrong client
        https://bugs.webkit.org/show_bug.cgi?id=104935
        <rdar://problem/12870361>

        Reviewed by Anders Carlsson.

        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
        The handle is null when NetworkProcess is used. In any case, it should be correct
        to use the client carried within AuthenticationChallenge.

2012-12-13  Stephen White  <senorblanco@chromium.org>

        CanvasRenderingContext2D::setFont() is slow.
        https://bugs.webkit.org/show_bug.cgi?id=104923

        Reviewed by James Robinson.

        This spends most of its time in the CSS parser.  As a first step,
        early-out if the new value is the same as unparsed string for the current font.
        See also http://code.google.com/p/chromium/issues/detail?id=164016.

        Covered by existing tests in canvas/ and fast/canvas, and ManualTests/canvas-font-speed.html.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont):

2012-12-13  Parth Patel  <parpatel@rim.com>, Max Feil <mfeil@rim.com>

        Allow plugins to be disabled by shared library filename
        https://bugs.webkit.org/show_bug.cgi?id=101274

        Reviewed by Antonio Gomes.

        This fix makes PluginDatabase changes general so that other ports
        can use this mechanism if they wish.

        Layout test not included with this patch because there
        is currently no framework within LayoutTests to allow calls
        from an external application via platform API code (such as the
        WebView API).

        * plugins/PluginDatabase.cpp:
        (WebCore::PluginDatabase::fileExistsAndIsNotDisabled):
        (WebCore):
        (WebCore::PluginDatabase::getDeletedPlugins):
        (WebCore::PluginDatabase::removeDisabledPluginFile):
        (WebCore::PluginDatabase::addDisabledPluginFile):
        (WebCore::PluginDatabase::getPluginPathsInDirectories):
        * plugins/PluginDatabase.h:
        (PluginDatabase):

2012-12-13  Yongjun Zhang  <yongjun_zhang@apple.com>

        Document will never be released when an Image is created inside unload event listener
        https://bugs.webkit.org/show_bug.cgi?id=104830

        Reviewed by Darin Adler.

        When setting src attribute to an Image object inside unload event listener, ImageLoader will
        mark it as load failure (by setting m_hasPendingErrorEvent to true) and the following call
        to updatedHasPendingEvent will ref the element but won't be deref-ed since the Document is
        being dismissed.  This was introduced in r131670.  To match pre r131670 behavior, we shouldn't
        trigger error event for image loading when the page is being dismissed.

        No new tests, there is no visual change.  Manually tested to verify documents are released by
        using heap in Mac OS X.

        * loader/ImageLoader.cpp:
        (WebCore::pageIsBeingDismissed): add a helper function to test whether the page is being dismissed.
        (WebCore::ImageLoader::updateFromElement): don't trigger error event if the page is being dismissed.

2012-12-13  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Add missing breaks in switch-case statements
        https://bugs.webkit.org/show_bug.cgi?id=104929

        Reviewed by Martin Robinson.

        * platform/gtk/ClipboardGtk.cpp:
        (WebCore::ClipboardGtk::clearData): Add missing breaks.

2012-12-13  Nate Chapin  <japhet@chromium.org>

        Route main resource loads through the memory cache.
        https://bugs.webkit.org/show_bug.cgi?id=49246

        Reviewed by Alexey Proskuryakov.

        Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
        The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
        In several places, the MainResourceLoader's SubresourceLoader is treated as special.

        No new tests, as this is primarily a refactor. A couple of expected results changed slightly.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::setRequest):
        (WebCore::DocumentLoader::subresource):
        (WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
            needs special handling in certain cases, track it separately from the real SubresourceLoaders.
        (WebCore::DocumentLoader::removeSubresourceLoader):
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::cancel):
        (WebCore::MainResourceLoader::clearResource):
        (WebCore):
        (WebCore::MainResourceLoader::frameLoader):
        (WebCore::MainResourceLoader::request):
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::resourceData):
        (WebCore::MainResourceLoader::redirectReceived):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::continueAfterContentPolicy):
        (WebCore::MainResourceLoader::responseReceived):
        (WebCore::MainResourceLoader::dataReceived):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::notifyFinished):
        (WebCore::MainResourceLoader::reportMemoryUsage):
        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
        (WebCore::MainResourceLoader::load):
        (WebCore::MainResourceLoader::setDefersLoading):
        (WebCore::MainResourceLoader::defersLoading):
        (WebCore::MainResourceLoader::setShouldBufferData):
        (WebCore::MainResourceLoader::loader):
        (WebCore::MainResourceLoader::identifier):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):
        (WebCore::MainResourceLoader::documentLoader):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::willSendRequest):
        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::defersLoading):
        (WebCore::ResourceLoader::cancelled):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
        * loader/mac/DocumentLoaderMac.cpp:
        (WebCore::DocumentLoader::schedule):
        (WebCore::DocumentLoader::unschedule):

2012-12-13  Pratik Solanki  <psolanki@apple.com>

        Duplicate code in GraphicsContext3D::validateAttributes() and GraphicsContext3D::validateDepthStencil()
        https://bugs.webkit.org/show_bug.cgi?id=97275

        Reviewed by Dean Jackson.

        Remove duplicate code in validateAttributes(). validateAttributes() calls
        validateDepthStencil() which has the exact same code.

        No new tests because no change in functionality.

        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::validateAttributes):

2012-12-13  Nate Chapin  <japhet@chromium.org>

        CachedResources should hang on to stripped fragment identifiers
        https://bugs.webkit.org/show_bug.cgi?id=104721

        Reviewed by Maciej Stachowiak.

        No new tests, this will be unused until bug
        https://bugs.webkit.org/show_bug.cgi?id=49246 re-lands. Then, it will
        allow http/tests/inspector/resource-parameters.html to continue passing.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::CachedResource):
        (WebCore::CachedResource::load):
        * loader/cache/CachedResource.h:
        (CachedResource):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource): We override the request's url with the
            local variable "url" here. The only difference between url and request.url() is that url
            has had any fragment identifier removed. Do this work later (in the CachedResource constructor)
            so that the CachedResource can save the fragment for later.

2012-12-13  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Remove deprecated API usage
        https://bugs.webkit.org/show_bug.cgi?id=104894

        Reviewed by Martin Robinson.

        Remove deprecated GTK+ API usage.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::spinButtonArrowSize): Do not use deprecated
        gtk_style_context_get_font().

2012-12-13  Zeno Albisser  <zeno@webkit.org>

        [Qt] Remove temporary workaround from GraphicsSurfaceGLX constructor.
        https://bugs.webkit.org/show_bug.cgi?id=104904

        QXcbNativeInterface::nativeResourceForContext() is now
        available in Qt5. Therefore the temporary workaround
        in GraphicsSurfaceGLX can be removed.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):

2012-12-13  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] Expose ARIA roles for tab, tabpanel and tablist
        https://bugs.webkit.org/show_bug.cgi?id=84043

        Reviewed by Martin Robinson.

        Mapped the ARIA roles to their corresponding ATK roles.

        No new tests; instead unskipped the associated test.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (atkRole): Mapped the ARIA roles to their corresponding ATK roles

2012-12-13  Vivek Galatage  <vivek.vg@samsung.com>

        Web Inspector: "Add Attribute" context menu on closing tag should apply on the opening tag on Elements Panel
        https://bugs.webkit.org/show_bug.cgi?id=104902

        Reviewed by Alexander Pavlov.

        The context menu action on the closing tag scrolls to the opening tag for adding the attribute.

        No new tests as this is a UI change.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
        (WebInspector.ElementsTreeElement.prototype._addNewAttribute):

2012-12-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137512.
        http://trac.webkit.org/changeset/137512
        https://bugs.webkit.org/show_bug.cgi?id=104912

        The entire GTK+ layout test step has been failing for hours
        (Requested by mrobinson on #webkit).

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::textUnderElement):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::textUnderElement):

2012-12-13  Tamas Czene  <tczene@inf.u-szeged.hu>

        OpenCL version of FEColorMatrix.
        https://bugs.webkit.org/show_bug.cgi?id=103398

        Reviewed by Zoltan Herczeg.

        ~3x speed-up (depending on hardware configuration)

        * Target.pri: Added a new file to the build system.
        * platform/graphics/filters/FEColorMatrix.cpp: calculateSaturateComponents and calculateHueRotateComponents methodes are moved to the header, since they are used by OpenCL as well
        (WebCore::effectType):
        * platform/graphics/filters/FEColorMatrix.h:
        (FEColorMatrix):
        (WebCore::FEColorMatrix::calculateSaturateComponents):
        (WebCore):
        (WebCore::FEColorMatrix::calculateHueRotateComponents):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.h: Required fields for the ColorMatrix kernels were added
        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
        (FilterContextOpenCL):
        * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp: the core implementation goes here
        (WebCore):
        (WebCore::FilterContextOpenCL::compileFEColorMatrix):
        (WebCore::FilterContextOpenCL::applyFEColorMatrix):
        (WebCore::FEColorMatrix::platformApplyOpenCL):

2012-12-13  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: do not validate pointers to objects in RenderArena agains tcmalloc data.
        https://bugs.webkit.org/show_bug.cgi?id=104903

        Reviewed by Yury Semikhatsky.

        This is a simplest approach to do that with zero performance overhead.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::reportMemoryUsage):
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::reportMemoryUsage):
        (WebCore):
        * rendering/InlineBox.h:
        (InlineBox):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::reportMemoryUsage):
        (WebCore):
        * rendering/InlineTextBox.h:
        (InlineTextBox):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::reportMemoryUsage):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::reportMemoryUsage):

2012-12-13  Alberto Garcia  <agarcia@igalia.com>

        [GTK] Don't leak GStaticRecMutex
        https://bugs.webkit.org/show_bug.cgi?id=104901

        Reviewed by Martin Robinson.

        The mutex in WebKitWebAudioSourceGStreamer is allocated using
        g_new(), but that memory is not freed when the object is
        destroyed.

        This patch replaces that pointer with the structure itself, which
        is faster and doesn't need to be explicitly freed.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (_WebKitWebAudioSourcePrivate):
        (webkit_web_audio_src_init):
        (webKitWebAudioSrcFinalize):

2012-12-13  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Network: Sorting cookies by size is broken.
        https://bugs.webkit.org/show_bug.cgi?id=104893

        Reviewed by Alexander Pavlov.

        Problem: cookie "size" is not a field now; its value is accessible
        through getter method.

        Solution: make cookie fields uniformly accessible (add getters for name,
        type and value).

        * inspector/front-end/CookieItemsView.js: Adopt changes.
        * inspector/front-end/CookieParser.js:
        (WebInspector.Cookie): Refine JsDoc.
        (WebInspector.Cookie.prototype.name): Added getter.
        (WebInspector.Cookie.prototype.value): Ditto.
        (WebInspector.Cookie.prototype.type): Ditto.
        (WebInspector.Cookies.buildCookiesFromString): Adopt changes.
        (WebInspector.Cookies.buildCookieProtocolObject): Ditto.
        * inspector/front-end/CookiesTable.js:
        (WebInspector.CookiesTable): Remove unused parameter.
        (WebInspector.CookiesTable.prototype._sortCookies):
        Use getters instead of field names.
        (WebInspector.CookiesTable.prototype._createGridNode): Adopt changes.
        * inspector/front-end/HAREntry.js: Ditto.
        * inspector/front-end/RequestCookiesView.js: Ditto.

2012-12-13  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r137569.
        http://trac.webkit.org/changeset/137569
        https://bugs.webkit.org/show_bug.cgi?id=104876

        A bunch of CSS tests hit ASSERTs

        * css/CSSProperty.h:
        (WebCore::CSSProperty::CSSProperty):

2012-12-13  Byungwoo Lee  <bw80.lee@samsung.com>

        [EFL] Remove redundant pipe write to prevent pipe buffer full.
        https://bugs.webkit.org/show_bug.cgi?id=101135

        Reviewed by Gyuyoung Kim.

        To prevent a source of a deadlock, remove the redundant pipe write
        in wakeUp() function.

        EFL uses ecore_pipe_write() to wake up main run loop, and the function
        uses POSIX pipe write with O_NONBLOCK disabled.
        With O_NONBLOCK disabled, when written data is more than PIPE_BUF,
        pipe write will be blocked until it can be written.

        Currently, every wakeUp() function calls ecore_pipe_write() to invoke
        wakeUpEvent() callback. And this can make pipe buffer full status
        which is the one reason of the lockup problem described in Bug 99494.

        * platform/RunLoop.h:
        (RunLoop):
        * platform/efl/RunLoopEfl.cpp:
        (WebCore::RunLoop::RunLoop):
        (WebCore::RunLoop::wakeUpEvent):
        (WebCore::RunLoop::wakeUp):

2012-12-13  Antti Harju  <antti.harju@ixonos.com>

        [Qt] Fix deleteAllCookies() invalid SQL statement
        https://bugs.webkit.org/show_bug.cgi?id=101580

        Reviewed by Jocelyn Turcotte.

        * platform/network/qt/CookieJarQt.cpp:
        (WebCore::SharedCookieJarQt::deleteAllCookies):

2012-12-13  Ryosuke Niwa  <rniwa@webkit.org>

        Safari spends a lot of time in WebCore::findSimpleWordBoundary while selecting text on large scrabutility.com page
        https://bugs.webkit.org/show_bug.cgi?id=104884

        Reviewed by Hajime Morita.

        We don't need to do anything in AlternativeTextController if selection is already outside of the editable region.

        No new tests are added since this is only a performance improvement, and doesn't change any asymptotic behavior.

        * editing/AlternativeTextController.cpp:
        (WebCore::AlternativeTextController::respondToChangedSelection):

2012-12-12  Jon Lee  <jonlee@apple.com>

        Crash in PlugInOriginHash with empty MIME type (104882)
        https://bugs.webkit.org/show_bug.cgi?id=104882
        <rdar://problem/12872298>

        Reviewed by Filip Pizlo.

        The crash occurs because the strings might be null. Add a check for it, but also try to infer a MIME type
        in case the markup does not include a type attribute, but we can find it from the extension in the URL.

        * platform/KURL.cpp: Add a new function mimeTypeFromURL() which tries to return the implied MIME type
        based on the URL provided. If nothing was found, return a null string.
        (WebCore::mimeTypeFromURL): Factored out from FrameLoader::defaultObjectContentType().
        * platform/KURL.h:

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::defaultObjectContentType): Refactor to use mimeTypeFromURL().
        * plugins/PlugInOriginHash.cpp:
        (WebCore::addCaseFoldedCharacters): Add a check for an empty string.
        (WebCore::PlugInOriginHash::hash): If the service type is empty, try to infer the MIME type.

2012-12-13  Christophe Dumez  <christophe.dumez@intel.com>

        Regression(r137486): Broke EFL build
        https://bugs.webkit.org/show_bug.cgi?id=104883

        Unreviewed EFL build fix.

        Fix EFL build break after r137486 due to missing WebCore::
        namespace.

        No new tests, no behavior change for layout tests.

        * platform/NotImplemented.h:

2012-12-07  Levi Weintraub  <leviw@chromium.org>

        Add support for tracking hit test rectangles to enable fast event rejection in the compositor
        https://bugs.webkit.org/show_bug.cgi?id=103914

        Reviewed by Simon Fraser.

        Adding support for tracking hit test target regions for the purpose of performing initial hit testing
        in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
        aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
        thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
        region. This patch includes the implementation to turn this on in Chromium.

        To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
        instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
        when new touch event handlers are registered or removed, or after layout much like how
        nonFastScrollableRegions are currently tracked.

        This implementation will not properly update the hit test rects when the renderers are inside a sub-
        tree that scrolls.

        Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html

        * dom/Document.cpp:
        (WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
        are stored as the Document they point to.
        (WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
        to update the ScrollingCoordinator with the change.
        (WebCore::Document::didRemoveTouchEventHandler): Ditto.
        * dom/Document.h:
        (WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
        expose whether there are any or not.
        (WebCore::Document::touchEventTargets):
        * dom/Node.cpp:
        (WebCore::Node::didMoveToNewDocument):
        (WebCore::tryAddEventListener):
        (WebCore::tryRemoveEventListener):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::restore):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        (WebCore::HTMLInputElement::updateType):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
        (WebCore::DOMWindow::removeEventListener):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleTouchEvent):
        * page/Frame.cpp:
        (WebCore::Frame::setDocument):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
        nodes and generate the absolute hit testing rects.
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
        the scrolling tree/compositor.
        (ScrollingCoordinator):
        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
        (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
        (ScrollingCoordinatorChromium):
        * testing/Internals.cpp:
        (WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
        it's no longer stored as an int in Document.
        (WebCore::Internals::touchEventTargetClientRects):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-12-12  Luke Macpherson   <macpherson@chromium.org>

        Add ASSERTions to ensure that CSSPropertys that are variables only ever refer to CSSValues that are variables.
        https://bugs.webkit.org/show_bug.cgi?id=104876

        Reviewed by Steve Block.

        Add assertions to CSSProperty constructors to make that if it is initialized with CSSPropertyVariable that
        the value type associated with it is also a variable. This is already asserted at read time, but ASSERTing
        here will produce a more useful backtrace.

        No new tests as functionality unchanged.

        * css/CSSProperty.h:
        (WebCore::CSSProperty::CSSProperty):

2012-12-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        NetworkInfoController needs to support destructor
        https://bugs.webkit.org/show_bug.cgi?id=104642

        Reviewed by Kentaro Hara.

        Though NetworkInfoController can be referenced by each port in order to update network status change,
        there is no virtual interface to destroy it. Beside each port client also needs to be destroyed when
        controller is destroyed.

        * Modules/networkinfo/NetworkInfoClient.h:
        (NetworkInfoClient):
        * Modules/networkinfo/NetworkInfoConnection.h:
        (WebCore::NetworkInfoConnection::networkInfoControllerDestroyed):
        * Modules/networkinfo/NetworkInfoController.cpp:
        (WebCore::NetworkInfoController::~NetworkInfoController):

2012-12-12  Kent Tamura  <tkent@chromium.org>

        Validity of a radio button is not updated correctly when it is detached from an invalid radio group
        https://bugs.webkit.org/show_bug.cgi?id=104873

        Reviewed by Kentaro Hara.

        When a radio button is detached from an invalid radio group,
        A) we should update button's validity, and
        B) it should be valid.

        A is handled by the following code in RadioButtonGroup::remove.
            if (!wasValid) {
                // A radio button not in a group is always valid. We need to make it
                // valid only if the group was invalid.
                button->setNeedsValidityCheck();

        B was incomplete.
            bool RadioInputType::valueMissing(const String&) const
            {
                return element()->isInRequiredRadioButtonGroup() && !element()->checkedRadioButtonForGroup();
        isInRequiredRadioButtonGroup checked required state of a group with the
        name attribute value even if the radio button was already detached from
        the group. isInRequiredRadioButtonGroup should check membership of the
        radio button precisely.

        Tests: Update fast/forms/radio/radio-live-validation-style.html

        * dom/CheckedRadioButtons.cpp:
        (RadioButtonGroup): Declare contains.
        (WebCore::RadioButtonGroup::contains): Added.
        (WebCore::CheckedRadioButtons::isInRequiredGroup): Renamed from
        isRequiredGroup. This function takes HTMLInputElement* argument.
        * dom/CheckedRadioButtons.h:
        (CheckedRadioButtons): Rename isRequiredGroup to isInRequiredGroup.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
        Make this non-const becaues RadioButtonGroup::m_members needs non-const
        pointers. Use CheckedRadioButtons::isInRequiredGroup.
        * html/HTMLInputElement.h:
        (HTMLInputElement): Make isInRequiredRadioButtonGroup non-const.

2012-12-12  Shinya Kawanaka  <shinyak@chromium.org>

        ContainerNodeAlgorithm::notifyInsertedIntoDocument is not used
        https://bugs.webkit.org/show_bug.cgi?id=104874

        Reviewed by Hajime Morita.

        ContainerNodeAlgorithm::notifyInsertedIntoDocument() is not used by anyone. We can remove it safely.

        No new tests, no change in behavior.

        * dom/ContainerNodeAlgorithms.h:

2012-12-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Milliseconds field of date/time input UI should respect step attribute
        https://bugs.webkit.org/show_bug.cgi?id=104628

        Reviewed by Kent Tamura.

        This patch makes step-up/-down UI of the milliseconds fields respect step attribute
        in a special case when the step is divisible by 1000 milliseconds.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField):
        If step of the element (in milliseconds) is divisible by 1000, use it as the step of the milliseconds field. Otherwise, the millisecond field has step 1.
        * html/shadow/DateTimeFieldElements.cpp:
        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Add step and stepBase arguments.
        (WebCore::DateTimeMillisecondFieldElement::create): Ditto.
        * html/shadow/DateTimeFieldElements.h:
        (DateTimeMillisecondFieldElement): Ditto.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Ditto.
        (WebCore::DateTimeNumericFieldElement::stepDown): Changed to compute next allowed value using roundDown().
        (WebCore::DateTimeNumericFieldElement::stepUp): Changed to compute next allowed value using roundUp().
        (WebCore::DateTimeNumericFieldElement::roundDown): Added.
        (WebCore::DateTimeNumericFieldElement::roundUp): Added.
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement): Add m_step and m_stepBase fields.

2012-12-12  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Include paddings and borders into the grid element's logical height / width
        https://bugs.webkit.org/show_bug.cgi?id=104818

        Reviewed by Tony Chang.

        This change makes RenderGrid add the borders and paddings in the right direction during layout
        so that the grid element's size accounts them like any other renderer.

        Test: fast/css-grid-layout/grid-element-padding-margin.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computePreferredLogicalWidths):
        (WebCore::RenderGrid::layoutGridItems):

2012-12-12  Roger Fong  <roger_fong@apple.com>

        Include Apple Windows in GraphicsLayer::supportsBackgroundColorContent().
        https://bugs.webkit.org/show_bug.cgi?id=104852.

        Reviewed by Simon Fraser.

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::supportsBackgroundColorContent):

2012-12-12  KyungTae Kim  <ktf.kim@samsung.com>

        Unused parameters on TextureMapperImageBuffer.cpp
        https://bugs.webkit.org/show_bug.cgi?id=104857

        Reviewed by Kentaro Hara.

        The updateContents has unused parameter 'textureMapper',
        remove the parameter name to fix 'unused parameter' build warning. 

        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::updateContents):

2012-12-12  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] HTMLContentElement::getDistributedNodes() doesn't work correctly if not in document tree.
        https://bugs.webkit.org/show_bug.cgi?id=104345

        Reviewed by Hajime Morita.

        Since document->updateLayout() does affect nodes in Document, distribution will not occur in
        InsertionPoints out of Document. We have to find the element in document tree scope, and start distribution from it.

        Test: fast/dom/shadow/get-distributed-nodes-orphan.html

        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::getDistributedNodes):

2012-12-12  Patrick Gansterer  <paroga@webkit.org>

        [WIN] Implement WebCore::fileSystemRepresentation() for !USE(CF)
        https://bugs.webkit.org/show_bug.cgi?id=104456

        Reviewed by Brent Fulgham.

        Convert the UTF-16 path to the system default Windows ANSI code page (usually Windows Latin1).

        * platform/win/FileSystemWin.cpp:
        (WebCore::fileSystemRepresentation):

2012-12-12  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Remove lowp/highp indicators as they're not needed with ANGLE.
        https://bugs.webkit.org/show_bug.cgi?id=104707

        Reviewed by Kenneth Rohde Christiansen.

        lowp/highp indicator were needed for GLES2, but ANGLE does not require them.

        Covered by existing tests.

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::getShaderSpec):

2012-12-12  Andy Estes  <aestes@apple.com>

        Don't dispatch fake mousemove events when we don't know where the cursor is
        https://bugs.webkit.org/show_bug.cgi?id=104861

        Reviewed by Sam Weinig.

        When EventHandler is instantiated or cleared, it sets the current mouse
        position to (0, 0), even though this is probably not where the mouse
        cursor really is (and we won't know until the mouse moves into the WebView).
        If a fake mousemove event fires and the page has an element at (0, 0)
        that responds to mousemove, we might end up changing the cursor or
        displaying a tooltip at the current mouse position, even if it is
        outside the WebView.

        Fake mousemove events are dispatched in order to update a cursor that
        is already over the WebView. Don't dispatch the event if we don't know
        this to be true.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler): Instantiate m_mousePositionIsUnknown to true.
        (WebCore::EventHandler::clear): Reset m_mousePositionIsUnknown to true.
        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Return early if the mouse position is unknown.
        (WebCore::EventHandler::setLastKnownMousePosition): Set the mouse position from the PlatformMouseEvent and set m_mousePositionIsUnknown to false.
        (WebCore::EventHandler::handleMousePressEvent): Call setLastKnownMousePosition() instead of setting the position directly.
        (WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
        (WebCore::EventHandler::handleMouseMoveEvent): Ditto.
        (WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
        (WebCore::EventHandler::updateSelectionForMouseDrag): Rename currentMouse(Global)Position to lastKnownMouse(Global)Position.
        (WebCore::EventHandler::handleAutoscroll): Ditto.
        (WebCore::EventHandler::updatePanScrollState): Ditto.
        (WebCore::EventHandler::lastKnownMousePosition): Ditto.
        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad): Ditto.
        (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Ditto.
        (WebCore::EventHandler::hoverTimerFired): Ditto.
        * page/FrameView.cpp:
        (WebCore::FrameView::lastKnownMousePosition): Ditto.
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::lastKnownMousePosition): Ditto.
        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]): Ditto.
        (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]): Ditto.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::panScrollFromPoint): Ditto.
        (WebCore::RenderLayer::autoscroll): Ditto.
        (WebCore::RenderLayer::lastKnownMousePosition): Ditto.
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::panScroll): Ditto.
        (WebCore::RenderListBox::autoscroll): Ditto.
        (WebCore::RenderListBox::lastKnownMousePosition): Ditto.

2012-12-12  Martin Robinson  <mrobinson@igalia.com>

        Try to fix the GTK+ debug bulid

        Logging.h is no longer included in headers, so we need to include it manually in
        files that require logging macros.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Include Logging.h.

2012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137524.
        http://trac.webkit.org/changeset/137524
        https://bugs.webkit.org/show_bug.cgi?id=104859

        Causes m_deletionHasBegun assertion failures in
        MutationObserver tests (Requested by aklein on #webkit).

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        (WebCore::Document::suggestedMIMEType):
        * dom/Document.h:
        (WebCore::Node::isDocumentNode):
        (WebCore):
        (WebCore::Node::treeScope):
        (WebCore::Node::Node):
        * dom/Element.cpp:
        (WebCore::Element::createRareData):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::~Node):
        (WebCore::Node::setDocument):
        (WebCore):
        (WebCore::Node::setTreeScope):
        (WebCore::Node::createRareData):
        (WebCore::Node::attach):
        (WebCore::Node::reportMemoryUsage):
        * dom/Node.h:
        (WebCore):
        (WebCore::NodeRareDataBase::treeScope):
        (WebCore::NodeRareDataBase::setTreeScope):
        (NodeRareDataBase):
        (WebCore::NodeRareDataBase::NodeRareDataBase):
        (Node):
        (WebCore::Node::inDocument):
        (WebCore::Node::documentInternal):
        * dom/NodeRareData.cpp:
        (SameSizeAsNodeRareData):
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        * dom/TreeScope.cpp:
        (SameSizeAsTreeScope):
        (WebCore::TreeScope::TreeScope):
        (WebCore::TreeScope::setParentTreeScope):
        * dom/TreeScope.h:
        (WebCore):
        (TreeScope):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):

2012-12-12  Seokju Kwon  <seokju.kwon@gmail.com>

        Fix build warning when ENABLE_INSPECTOR is disabled
        https://bugs.webkit.org/show_bug.cgi?id=104757

        Reviewed by Kentaro Hara.

        Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.

        No new tests, no behavior change.

        * inspector/InspectorCanvasInstrumentation.h:
        (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::addMessageToConsole):
        (WebCore::InspectorInstrumentation::consoleCount):
        (WebCore::InspectorInstrumentation::startConsoleTiming):
        (WebCore::InspectorInstrumentation::stopConsoleTiming):
        (WebCore::InspectorInstrumentation::consoleTimeStamp):
        (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
        (WebCore::InspectorInstrumentation::addProfile):
        (WebCore::InspectorInstrumentation::profilerEnabled):
        (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
        * inspector/InspectorCounters.h:
        (WebCore::InspectorCounters::incrementCounter):
        (WebCore::InspectorCounters::decrementCounter):
        * inspector/InspectorDatabaseInstrumentation.h:
        (WebCore::InspectorInstrumentation::didOpenDatabase):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
        (WebCore::InspectorInstrumentation::isDebuggerPaused):
        (WebCore::InspectorInstrumentation::willInsertDOMNode):
        (WebCore::InspectorInstrumentation::didInsertDOMNode):
        (WebCore::InspectorInstrumentation::willRemoveDOMNode):
        (WebCore::InspectorInstrumentation::willModifyDOMAttr):
        (WebCore::InspectorInstrumentation::didModifyDOMAttr):
        (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
        (WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
        (WebCore::InspectorInstrumentation::frameWindowDiscarded):
        (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
        (WebCore::InspectorInstrumentation::didPushShadowRoot):
        (WebCore::InspectorInstrumentation::willPopShadowRoot):
        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
        (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
        (WebCore::InspectorInstrumentation::didUpdateRegionLayout):
        (WebCore::InspectorInstrumentation::mouseDidMoveOverElement):
        (WebCore::InspectorInstrumentation::handleTouchEvent):
        (WebCore::InspectorInstrumentation::handleMousePress):
        (WebCore::InspectorInstrumentation::forcePseudoState):
        (WebCore::InspectorInstrumentation::characterDataModified):
        (WebCore::InspectorInstrumentation::willSendXMLHttpRequest):
        (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
        (WebCore::InspectorInstrumentation::didInstallTimer):
        (WebCore::InspectorInstrumentation::didRemoveTimer):
        (WebCore::InspectorInstrumentation::willCallFunction):
        (WebCore::InspectorInstrumentation::didCallFunction):
        (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEvent):
        (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
        (WebCore::InspectorInstrumentation::willDispatchEvent):
        (WebCore::InspectorInstrumentation::didDispatchEvent):
        (WebCore::InspectorInstrumentation::willHandleEvent):
        (WebCore::InspectorInstrumentation::didHandleEvent):
        (WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
        (WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
        (WebCore::InspectorInstrumentation::willEvaluateScript):
        (WebCore::InspectorInstrumentation::didEvaluateScript):
        (WebCore::InspectorInstrumentation::didCreateIsolatedContext):
        (WebCore::InspectorInstrumentation::willFireTimer):
        (WebCore::InspectorInstrumentation::didFireTimer):
        (WebCore::InspectorInstrumentation::didBeginFrame):
        (WebCore::InspectorInstrumentation::didCancelFrame):
        (WebCore::InspectorInstrumentation::didInvalidateLayout):
        (WebCore::InspectorInstrumentation::willLayout):
        (WebCore::InspectorInstrumentation::didLayout):
        (WebCore::InspectorInstrumentation::didScroll):
        (WebCore::InspectorInstrumentation::willDispatchXHRLoadEvent):
        (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
        (WebCore::InspectorInstrumentation::willPaint):
        (WebCore::InspectorInstrumentation::didPaint):
        (WebCore::InspectorInstrumentation::willScrollLayer):
        (WebCore::InspectorInstrumentation::didScrollLayer):
        (WebCore::InspectorInstrumentation::willComposite):
        (WebCore::InspectorInstrumentation::didComposite):
        (WebCore::InspectorInstrumentation::willRecalculateStyle):
        (WebCore::InspectorInstrumentation::didRecalculateStyle):
        (WebCore::InspectorInstrumentation::didScheduleStyleRecalculation):
        (WebCore::InspectorInstrumentation::willMatchRule):
        (WebCore::InspectorInstrumentation::didMatchRule):
        (WebCore::InspectorInstrumentation::willProcessRule):
        (WebCore::InspectorInstrumentation::didProcessRule):
        (WebCore::InspectorInstrumentation::applyUserAgentOverride):
        (WebCore::InspectorInstrumentation::applyScreenWidthOverride):
        (WebCore::InspectorInstrumentation::applyScreenHeightOverride):
        (WebCore::InspectorInstrumentation::shouldApplyScreenWidthOverride):
        (WebCore::InspectorInstrumentation::applyEmulatedMedia):
        (WebCore::InspectorInstrumentation::shouldApplyScreenHeightOverride):
        (WebCore::InspectorInstrumentation::willSendRequest):
        (WebCore::InspectorInstrumentation::continueAfterPingLoader):
        (WebCore::InspectorInstrumentation::markResourceAsCached):
        (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
        (WebCore::InspectorInstrumentation::willReceiveResourceData):
        (WebCore::InspectorInstrumentation::didReceiveResourceData):
        (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
        (WebCore::InspectorInstrumentation::didReceiveResourceResponse):
        (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
        (WebCore::InspectorInstrumentation::continueWithPolicyDownload):
        (WebCore::InspectorInstrumentation::continueWithPolicyIgnore):
        (WebCore::InspectorInstrumentation::didReceiveData):
        (WebCore::InspectorInstrumentation::didFinishLoading):
        (WebCore::InspectorInstrumentation::didFailLoading):
        (WebCore::InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient):
        (WebCore::InspectorInstrumentation::willLoadXHR):
        (WebCore::InspectorInstrumentation::didFailXHRLoading):
        (WebCore::InspectorInstrumentation::didFinishXHRLoading):
        (WebCore::InspectorInstrumentation::didReceiveXHRResponse):
        (WebCore::InspectorInstrumentation::willLoadXHRSynchronously):
        (WebCore::InspectorInstrumentation::didLoadXHRSynchronously):
        (WebCore::InspectorInstrumentation::scriptImported):
        (WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSP):
        (WebCore::InspectorInstrumentation::didReceiveScriptResponse):
        (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
        (WebCore::InspectorInstrumentation::loadEventFired):
        (WebCore::InspectorInstrumentation::frameDetachedFromParent):
        (WebCore::InspectorInstrumentation::didCommitLoad):
        (WebCore::InspectorInstrumentation::loaderDetachedFromFrame):
        (WebCore::InspectorInstrumentation::willDestroyCachedResource):
        (WebCore::InspectorInstrumentation::willWriteHTML):
        (WebCore::InspectorInstrumentation::didWriteHTML):
        (WebCore::InspectorInstrumentation::didUseDOMStorage):
        (WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
        (WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart):
        (WebCore::InspectorInstrumentation::didStartWorkerContext):
        (WebCore::InspectorInstrumentation::workerContextTerminated):
        (WebCore::InspectorInstrumentation::didCreateWebSocket):
        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
        (WebCore::InspectorInstrumentation::didCloseWebSocket):
        (WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
        (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
        (WebCore::InspectorInstrumentation::didSendWebSocketFrame):
        (WebCore::InspectorInstrumentation::networkStateChanged):
        (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
        (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
        (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
        (WebCore::InspectorInstrumentation::willFireAnimationFrame):
        (WebCore::InspectorInstrumentation::didFireAnimationFrame):
        (WebCore::InspectorInstrumentation::overrideGeolocationPosition):
        (WebCore::InspectorInstrumentation::overrideDeviceOrientation):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::didFinishLoading):
        (WebCore::ApplicationCacheGroup::didFail):

2012-12-12  Dean Jackson  <dino@apple.com>

        Reinstate CIFilter code for Lion
        https://bugs.webkit.org/show_bug.cgi?id=104847

        Reviewed by Simon Fraser.

        This basically reverts r137500 for Lion, because some
        CAFilter types are not available there.

        Covered by existing tests, with the warning that Lion
        baselines will need updating.

        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::setFilters): Put an ugly #if in to
        detect OS X 10.7, and rename caFilter variable to
        filter.

2012-12-12  Seokju Kwon  <seokju.kwon@gmail.com>

        [EFL] Refactor duplicate code into EflInspectorUtilities
        https://bugs.webkit.org/show_bug.cgi?id=104329

        Reviewed by Kenneth Rohde Christiansen.

        Move duplicate work into EflInspectorUtilities.

        No new tests, refactoring.

        * PlatformEfl.cmake:
        * platform/efl/EflInspectorUtilities.cpp: Added.
        (WebCore):
        (WebCore::inspectorResourcePath):
        * platform/efl/EflInspectorUtilities.h: Added.
        (WebCore):

2012-12-12  Mark Lam  <mark.lam@apple.com>

        Fixing a chromium build breakage due to r137520.
        https://bugs.webkit.org/show_bug.cgi?id=104741.

        Not reviewed.

        Added #ifdef !PLATFORM(CHROMIUM) for one function chromium doesn't use.

        No new tests.

        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::initialize):
        * Modules/webdatabase/DatabaseTracker.h:
        (DatabaseTracker):

2012-12-11  Emil A Eklund  <eae@chromium.org>

        REGRESSION (Subpixel layout): Gray vertical lines appear when moving insertion point to right on Mac
        https://bugs.webkit.org/show_bug.cgi?id=102402

        Reviewed by Simon Fraser.

        Round paintOffset in CaretBase::paintCaret to ensure that caret is painted at an integer pixel boundary.

        Test: fast/sub-pixel/input-caret-on-subpixel-bound.html

        * editing/FrameSelection.cpp:
        (WebCore::CaretBase::paintCaret): Round paintOffset to ensure it is on a pixel boundary.

2012-12-12  Elliott Sprehn  <esprehn@gmail.com>

        REGRESSION(137336): Generated run-ins are not placed correctly
        https://bugs.webkit.org/show_bug.cgi?id=104840

        Reviewed by Abhishek Arya.

        Now that :before and :after are not anonymous we no longer need special
        handling for run-ins. Currently placeRunInIfNeeded will only place
        a generated content run-in if a special flag is passed, but I removed
        the call with the flag as it wasn't needed in r137336. This patch just
        removes all special handling for generated content run-ins.

        Test: fast/css-generated-content/generated-runin.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
        (WebCore::RenderBlock::placeRunInIfNeeded):
        (WebCore::RenderBlock::createReplacementRunIn):
            Lots of simplfication since there's no more anonymous run-ins.
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderObject.h:

2012-12-12  Simon Fraser  <simon.fraser@apple.com>

        Don't unconditionally repaint compositing layers when their size changes
        https://bugs.webkit.org/show_bug.cgi?id=104461

        Reviewed by James Robinson.

        In r137215 I attempted to avoid excessive repainting when compositing layers
        change size. This caused stretched layers when layer size changed as a result
        of bounds constraining in updateCompositedBounds(), so was conditionalized
        based on whether constraining happend, in r137248.
        
        However, the TileCache layer was affected by constraining, erroneously:
        shouldClipCompositedBounds() returned true of the tile cache layer. This
        is pointless, because we only constrain to the document bounds (or enclosing
        overflow), and the tile cache is already the size of the document bounds.

        So, disable size constraining for the tile cache layer, and fix
        a confusing comment in updateCompositedBounds() that refers to the
        view's bounds, rather than the document's bounds.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
        (WebCore::RenderLayerBacking::updateCompositedBounds):

2012-12-12  Elliott Sprehn  <esprehn@gmail.com>

        [Refactoring] Replace Node's Document pointer with a TreeScope pointer
        https://bugs.webkit.org/show_bug.cgi?id=59816

        Reviewed by Ryosuke Niwa.

        Instead of giving every node in a shadow a rare data, which can be quite
        large, we replace the Document pointer in Node with a TreeScope pointer
        and we give TreeScope a pointer to it's document scope.

        This introduces no branches in document() because in the common
        case document() becomes equivalent to m_treeScope->m_documentScope where
        the documentScope is actually m_treeScope so this shouldn't introduce a
        perf regression.

        Note also that TreeScope can never be null after r136328, and the document
        pointer is only null for DocumentType nodes so we can use a special
        no-document TreeScope for this case that always returns null from
        documentScope().

        No new tests, no change in behavior.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        (WebCore::Document::suggestedMIMEType):
        * dom/Document.h:
        (WebCore::Node::isDocumentNode):
        (WebCore::Node::Node):
        * dom/Element.cpp:
        (WebCore::Element::createRareData):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::~Node):
        (WebCore::Node::createRareData):
        (WebCore::Node::attach):
        (WebCore::Node::reportMemoryUsage):
        * dom/Node.h:
        (WebCore):
        (WebCore::NodeRareDataBase::NodeRareDataBase):
        (NodeRareDataBase):
        (WebCore::Node::treeScope):
        (WebCore::Node::inDocument):
        (WebCore::Node::documentInternal):
        (WebCore::Node::setTreeScope):
        (Node):
        * dom/NodeRareData.cpp:
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        * dom/TreeScope.cpp:
        (SameSizeAsTreeScope):
        (WebCore::TreeScope::TreeScope):
        (WebCore::TreeScope::setParentTreeScope):
        * dom/TreeScope.h:
        (WebCore):
        (TreeScope):
        (WebCore::TreeScope::documentScope):
        (WebCore::TreeScope::noDocumentInstance):
            Returns a special tree scope that has no document for use with
            DocumentType nodes.
        (WebCore::TreeScope::setDocumentScope):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):

2012-12-12  Mark Lam  <mark.lam@apple.com>

        Encapsulate externally used webdatabase APIs in DatabaseManager.
        https://bugs.webkit.org/show_bug.cgi?id=104741.

        Reviewed by Sam Weinig.

        Use DatabaseManager instead of accessing DatabaseTracker, AbstractDatabase,
        and DatabaseContext directly. This is to prepare for upcoming webkit2
        refactoring.

        No new tests.

        * CMakeLists.txt:
        * Modules/webdatabase/DatabaseManager.cpp: Added.
        (WebCore::DatabaseManager::manager):
        (WebCore::DatabaseManager::DatabaseManager):
        (WebCore::DatabaseManager::initialize):
        (WebCore::DatabaseManager::setClient):
        (WebCore::DatabaseManager::isAvailable):
        (WebCore::DatabaseManager::setIsAvailable):
        (WebCore::DatabaseManager::hasOpenDatabases):
        (WebCore::DatabaseManager::stopDatabases):
        (WebCore::DatabaseManager::fullPathForDatabase):
        (WebCore::DatabaseManager::databaseDirectoryPath):
        (WebCore::DatabaseManager::setDatabaseDirectoryPath):
        (WebCore::DatabaseManager::hasEntryForOrigin):
        (WebCore::DatabaseManager::origins):
        (WebCore::DatabaseManager::databaseNamesForOrigin):
        (WebCore::DatabaseManager::detailsForNameAndOrigin):
        (WebCore::DatabaseManager::usageForOrigin):
        (WebCore::DatabaseManager::quotaForOrigin):
        (WebCore::DatabaseManager::setQuota):
        (WebCore::DatabaseManager::deleteAllDatabases):
        (WebCore::DatabaseManager::deleteOrigin):
        (WebCore::DatabaseManager::deleteDatabase):
        (WebCore::DatabaseManager::closeDatabasesImmediately):
        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
        * Modules/webdatabase/DatabaseManager.h: Added.
        (DatabaseManager):
        (WebCore::DatabaseManager::~DatabaseManager):
        * Modules/webdatabase/DatabaseManagerClient.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseTrackerClient.h.
        (WebCore::DatabaseManagerClient::~DatabaseManagerClient):
        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::setClient):
        * Modules/webdatabase/DatabaseTracker.h:
        (DatabaseTracker):
        * Modules/webdatabase/DatabaseTrackerClient.h: Removed.
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore::RuntimeEnabledFeatures::openDatabaseEnabled):
        (WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled):
        * history/PageCache.cpp:
        (WebCore::logCanCacheFrameDecision):
        (WebCore::PageCache::canCachePageContainingThisFrame):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        * page/DOMWindow.cpp:
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThreadShutdownStartTask::performTask):
        (WebCore::WorkerThread::stop):

2012-12-12  Tony Chang  <tony@chromium.org>

        [chromium] don't write additional idl files to a gyp temp file
        https://bugs.webkit.org/show_bug.cgi?id=104831

        Reviewed by Kentaro Hara.

        The <|( command doesn't work for files like <(PRODUCT_DIR) or <(SHARED_INTERMEDIATE_DIR).
        For additional_idl_files, pass it as a parameter instead of a file listing the filenames.
        There are currently only 3 files in this variable. This shouldn't overflow the command
        line since the limit on Windows is 8k and with this change, we're still only around 4.5k.
        Also, the longest part of the command line is the list of defines. If needed, we could put
        that in a file instead.

        No new tests, this is a refactoring of the build files.

        * WebCore.gyp/WebCore.gyp: Don't use <|( for additional_idl_files.
        * bindings/scripts/generate-bindings.pl: Change --additionalIdlFilesList to
        --additionalIdlFiles, which is a shell argument containing the filenames.

2012-12-12  Chris Rogers  <crogers@google.com>

        Implement OfflineAudioContext constructor
        https://bugs.webkit.org/show_bug.cgi?id=104188

        Reviewed by Kentaro Hara.

        The Web Audio layout tests have relied on an undocumented way (in the specification) to render
        audio faster than realtime using an OfflineAudioContext.  We want to expose a proper OfflineAudioContext
        object and constructor instead of piggybacking off of the normal AudioContext.
             
        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::isSampleRateRangeGood):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/DOMWindowWebAudio.idl:
        * Modules/webaudio/OfflineAudioContext.cpp: Added.
        (WebCore):
        (WebCore::OfflineAudioContext::create):
        (WebCore::OfflineAudioContext::OfflineAudioContext):
        (WebCore::OfflineAudioContext::~OfflineAudioContext):
        * Modules/webaudio/OfflineAudioContext.h: Added.
        (WebCore):
        (OfflineAudioContext):
        * Modules/webaudio/OfflineAudioContext.idl: Added.
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
        * bindings/js/JSAudioContextCustom.cpp:
        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallbackCustom):

2012-12-12  John Griggs  <jgriggs@rim.com>

        2012-12-12  John Griggs  <jgriggs@rim.com>

        [BlackBerry] Update Media Controls for BlackBerry Platform
        https://bugs.webkit.org/show_bug.cgi?id=104443
        https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=204748

        Reviewed by Rob Buis.

        Update Media Controls for BlackBerry platform to allow audio, embedded video and fullscreen video controls to be positioned and styled differently.

        BlackBerry-specific update to Media Controls - No new tests required.

        * PlatformBlackBerry.cmake:
        * css/mediaControlsBlackBerry.css:
        (audio):
        (audio::-webkit-media-controls-embedded-panel, video::-webkit-media-controls-embedded-panel):
        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
        (video::-webkit-media-controls-button-group-container, audio::-webkit-media-controls-button-group-container):
        (video::-webkit-media-controls-fullscreen-time-display-container, audio::-webkit-media-controls-fullscreen-time-display-container):
        (video::-webkit-media-controls-time-display-container, audio::-webkit-media-controls-time-display-container):
        (video::-webkit-media-controls-fullscreen-play-button, audio::-webkit-media-controls-fullscreen-play-button):
        (video::-webkit-media-controls-play-button, audio::-webkit-media-controls-play-button):
        (audio::-webkit-media-controls-fullscreen-timeline-container, video::-webkit-media-controls-fullscreen-timeline-container):
        (video::-webkit-media-controls-timeline-container, audio::-webkit-media-controls-timeline-container):
        (audio::-webkit-media-controls-fullscreen-current-time-display, video::-webkit-media-controls-fullscreen-current-time-display):
        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
        (video::-webkit-media-controls-fullscreen-time-remaining-display, audio::-webkit-media-controls-fullscreen-time-remaining-display):
        (video::-webkit-media-controls-time-remaining-display, audio::-webkit-media-controls-time-remaining-display):
        (audio::-webkit-media-controls-fullscreen-timeline, video::-webkit-media-controls-fullscreen-timeline):
        (video::-webkit-media-controls-fullscreen-fullscreen-button, audio::-webkit-media-controls-fullscreen-fullscreen-button):
        (video::-webkit-media-controls-fullscreen-button):
        (audio::-webkit-media-controls-fullscreen-button):
        (audio::-webkit-media-controls-audio-mute-button):
        (video::-webkit-media-controls-audio-mute-button):
        (audio::-webkit-media-controls-volume-slider-container):
        (video::-webkit-media-controls-volume-slider-container):
        (audio::-webkit-media-controls-volume-slider):
        (video::-webkit-media-controls-volume-slider):
        (video::-webkit-media-controls-fullscreen-button-divider, audio::-webkit-media-controls-fullscreen-button-divider):
        (video::-webkit-media-controls-fullscreen-button-container, video::-webkit-media-controls-play-button-container, audio::-webkit-media-controls-fullscreen-button-container, audio::-webkit-media-controls-play-button-container):
        * css/mediaControlsBlackBerryFullscreen.css: Added.
        (body:-webkit-full-page-media):
        (video:-webkit-full-screen::-webkit-media-controls-embedded-panel):
        (video:-webkit-full-screen::-webkit-media-controls-panel):
        (video:-webkit-full-screen::-webkit-media-controls-button-group-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
        (video:-webkit-full-screen::-webkit-media-controls-time-display-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-play-button):
        (video:-webkit-full-screen::-webkit-media-controls-play-button):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
        (video:-webkit-full-screen::-webkit-media-controls-timeline-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
        (video:-webkit-full-screen::-webkit-media-controls-current-time-display):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
        (video:-webkit-full-screen::-webkit-media-controls-time-remaining-display):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline):
        (video:-webkit-full-screen::-webkit-media-controls-timeline):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-fullscreen-button):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button):
        (video:-webkit-full-screen::-webkit-media-controls-audio-mute-button):
        (video:-webkit-full-screen::-webkit-media-controls-volume-slider-container):
        (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-divider):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container):
        (video:-webkit-full-screen::-webkit-media-controls-play-button-container):
        (video:-webkit-full-screen::-webkit-media-controls-placeholder):
        * html/shadow/MediaControlsBlackBerry.cpp: Added.
        (WebCore):
        (WebCore::MediaControlButtonGroupContainerElement::MediaControlButtonGroupContainerElement):
        (WebCore::MediaControlButtonGroupContainerElement::create):
        (WebCore::MediaControlButtonGroupContainerElement::shadowPseudoId):
        (WebCore::MediaControlTimeDisplayContainerElement::MediaControlTimeDisplayContainerElement):
        (WebCore::MediaControlTimeDisplayContainerElement::create):
        (WebCore::MediaControlTimeDisplayContainerElement::shadowPseudoId):
        (WebCore::MediaControlEmbeddedPanelElement::MediaControlEmbeddedPanelElement):
        (WebCore::MediaControlEmbeddedPanelElement::create):
        (WebCore::MediaControlEmbeddedPanelElement::shadowPseudoId):
        (WebCore::MediaControlEmbeddedPanelElement::startDrag):
        (WebCore::MediaControlEmbeddedPanelElement::continueDrag):
        (WebCore::MediaControlEmbeddedPanelElement::endDrag):
        (WebCore::MediaControlEmbeddedPanelElement::startTimer):
        (WebCore::MediaControlEmbeddedPanelElement::stopTimer):
        (WebCore::MediaControlEmbeddedPanelElement::transitionTimerFired):
        (WebCore::MediaControlEmbeddedPanelElement::setPosition):
        (WebCore::MediaControlEmbeddedPanelElement::resetPosition):
        (WebCore::MediaControlEmbeddedPanelElement::makeOpaque):
        (WebCore::MediaControlEmbeddedPanelElement::makeTransparent):
        (WebCore::MediaControlEmbeddedPanelElement::defaultEventHandler):
        (WebCore::MediaControlEmbeddedPanelElement::setCanBeDragged):
        (WebCore::MediaControlEmbeddedPanelElement::setIsDisplayed):
        (WebCore::MediaControlFullscreenTimeDisplayContainerElement::MediaControlFullscreenTimeDisplayContainerElement):
        (WebCore::MediaControlFullscreenTimeDisplayContainerElement::create):
        (WebCore::MediaControlFullscreenTimeDisplayContainerElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenButtonContainerElement::MediaControlFullscreenButtonContainerElement):
        (WebCore::MediaControlFullscreenButtonContainerElement::create):
        (WebCore::MediaControlFullscreenButtonContainerElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenButtonDividerElement::MediaControlFullscreenButtonDividerElement):
        (WebCore::MediaControlFullscreenButtonDividerElement::create):
        (WebCore::MediaControlFullscreenButtonDividerElement::shadowPseudoId):
        (WebCore::MediaControlPlayButtonContainerElement::MediaControlPlayButtonContainerElement):
        (WebCore::MediaControlPlayButtonContainerElement::create):
        (WebCore::MediaControlPlayButtonContainerElement::shadowPseudoId):
        (WebCore::MediaControlPlaceholderElement::MediaControlPlaceholderElement):
        (WebCore::MediaControlPlaceholderElement::create):
        (WebCore::MediaControlPlaceholderElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenPlayButtonElement::MediaControlFullscreenPlayButtonElement):
        (WebCore::MediaControlFullscreenPlayButtonElement::create):
        (WebCore::MediaControlFullscreenPlayButtonElement::defaultEventHandler):
        (WebCore::MediaControlFullscreenPlayButtonElement::updateDisplayType):
        (WebCore::MediaControlFullscreenPlayButtonElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenFullscreenButtonElement::MediaControlFullscreenFullscreenButtonElement):
        (WebCore::MediaControlFullscreenFullscreenButtonElement::create):
        (WebCore::MediaControlFullscreenFullscreenButtonElement::defaultEventHandler):
        (WebCore::MediaControlFullscreenFullscreenButtonElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenFullscreenButtonElement::setIsFullscreen):
        (WebCore::MediaControlFullscreenTimelineContainerElement::MediaControlFullscreenTimelineContainerElement):
        (WebCore::MediaControlFullscreenTimelineContainerElement::create):
        (WebCore::MediaControlFullscreenTimelineContainerElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenTimelineElement::MediaControlFullscreenTimelineElement):
        (WebCore::MediaControlFullscreenTimelineElement::create):
        (WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
        (WebCore::MediaControlFullscreenTimelineElement::willRespondToMouseClickEvents):
        (WebCore::MediaControlFullscreenTimelineElement::setPosition):
        (WebCore::MediaControlFullscreenTimelineElement::setDuration):
        (WebCore::MediaControlFullscreenTimelineElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::create):
        (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::MediaControlFullscreenTimeRemainingDisplayElement):
        (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::create):
        (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::MediaControlFullscreenCurrentTimeDisplayElement):
        (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::shadowPseudoId):
        (WebCore::MediaControlAudioMuteButtonElement::MediaControlAudioMuteButtonElement):
        (WebCore::MediaControlAudioMuteButtonElement::create):
        (WebCore::MediaControlAudioMuteButtonElement::defaultEventHandler):
        (WebCore::MediaControlAudioMuteButtonElement::shadowPseudoId):
        (WebCore::MediaControlsBlackBerry::MediaControlsBlackBerry):
        (WebCore::MediaControls::create):
        (WebCore::MediaControlsBlackBerry::createControls):
        (WebCore::MediaControlsBlackBerry::setMediaController):
        (WebCore::MediaControlsBlackBerry::show):
        (WebCore::MediaControlsBlackBerry::hide):
        (WebCore::MediaControlsBlackBerry::makeOpaque):
        (WebCore::MediaControlsBlackBerry::makeTransparent):
        (WebCore::MediaControlsBlackBerry::reset):
        (WebCore::MediaControlsBlackBerry::bufferingProgressed):
        (WebCore::MediaControlsBlackBerry::playbackStarted):
        (WebCore::MediaControlsBlackBerry::playbackProgressed):
        (WebCore::MediaControlsBlackBerry::playbackStopped):
        (WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
        (WebCore::MediaControlsBlackBerry::reportedError):
        (WebCore::MediaControlsBlackBerry::changedMute):
        (WebCore::MediaControlsBlackBerry::enteredFullscreen):
        (WebCore::MediaControlsBlackBerry::exitedFullscreen):
        (WebCore::MediaControlsBlackBerry::showVolumeSlider):
        (WebCore::MediaControlsBlackBerry::toggleVolumeSlider):
        (WebCore::MediaControlsBlackBerry::shouldHideControls):
        * html/shadow/MediaControlsBlackBerry.h: Added.
        (WebCore):
        (MediaControlButtonGroupContainerElement):
        (MediaControlTimeDisplayContainerElement):
        (MediaControlEmbeddedPanelElement):
        (MediaControlFullscreenTimeDisplayContainerElement):
        (MediaControlFullscreenButtonContainerElement):
        (MediaControlFullscreenButtonDividerElement):
        (MediaControlPlayButtonContainerElement):
        (MediaControlPlaceholderElement):
        (MediaControlFullscreenPlayButtonElement):
        (MediaControlFullscreenFullscreenButtonElement):
        (MediaControlFullscreenTimelineContainerElement):
        (MediaControlFullscreenTimelineElement):
        (MediaControlFullscreenTimeRemainingDisplayElement):
        (MediaControlFullscreenCurrentTimeDisplayElement):
        (MediaControlAudioMuteButtonElement):
        (MediaControlsBlackBerry):
        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore):
        (WebCore::RenderThemeBlackBerry::extraFullScreenStyleSheet):
        (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
        (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
        (WebCore::RenderThemeBlackBerry::paintMediaRewindButton):
        (WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
        (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
        * platform/blackberry/RenderThemeBlackBerry.h:
        (WebCore::RenderThemeBlackBerry::usesVerticalVolumeSlider):
        (RenderThemeBlackBerry):

2012-12-12  Dominic Mazzoni  <dmazzoni@google.com>

        AX: textUnderElement should consider alt text, but skip links and controls
        https://bugs.webkit.org/show_bug.cgi?id=101650

        Reviewed by Chris Fleizach.

        Getting inner text from an element now ignores focusable descendants and
        containers, but uses alternative text.

        The computation of textUnderElement is now recursive. This caused a crash
        if it was called by accessibilityIsIgnored during object destruction,
        so I simplified accessibilityIsIgnored to not actually call textUnderElement,
        without affecting test results, which should actually be a decent speedup.

        Test: accessibility/button-title-uses-inner-img-alt.html
        Test: accessibility/focusable-div.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore):
        (WebCore::shouldUseAccessiblityObjectInnerText):
        (WebCore::AccessibilityNodeObject::textUnderElement):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::textUnderElement):

2012-12-12  Eberhard Graether  <egraether@google.com>

        Web Inspector: follow up to r136974: handle visibility shortcut in keydown event of ElementsTreeOutline.element
        https://bugs.webkit.org/show_bug.cgi?id=104694

        Reviewed by Pavel Feldman.

        Typing H in the StylesSidebarPane caused toggling of the selected elements visibility. This change only handles
        the H keydown when the ElementsPanel is focused.

        No new tests.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline):
        (WebInspector.ElementsTreeOutline.prototype._onkeydown):
        (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
        * inspector/front-end/KeyboardShortcut.js:
        (WebInspector.KeyboardShortcut.hasNoModifiers):

2012-12-12  Philip Rogers  <pdr@google.com>

        Fix target element handling in SVGSMILElement.
        https://bugs.webkit.org/show_bug.cgi?id=104495

        Reviewed by Abhishek Arya.

        This patch fixes two bugs that led to stale target elements in SVGSMILElement.

        r122449 changed the <use> code to call removeAllElementReferencesForTarget to rebuild
        dependent <use> trees. This contained a bug where element references would be incorrectly
        removed. removeAllElementReferencesForTarget calls svgAttributeChanged(href) on all
        references, which can then re-add the references back. The bug is that
        removeAllElementReferencesForTarget removes a newly-added reference as the last step.

        r136906 changed targetElement() to no longer be lazily resolved so any changes to an
        animation's href attribute needed to be tracked. r136906 refactored the code but did not
        fix a bug where animation elements not in the document would not react to
        svgAttributeChanged(href).

        The combination of these two bugs allowed stale targetElement references to exist. A
        target element could be removed from the document without dependent animation elements
        receiving a notification (bug 1) and not reacting to notifications they received (bug 2).

        This patch updates SVGUseElement::buildInstanceTree to only rebuild (not remove) the
        elements referencing the target by adding rebuildAllElementReferencesForTarget. This patch
        also updates SVGSMILElement to correctly react to svgAttributeChanged() notifications
        for href changes even when not in the document.

        Test: svg/animations/target-condition-crash.html

        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget):
        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):

            Refactored so that we can notify element references to update without removing
            references.

        * svg/SVGDocumentExtensions.h:
        (SVGDocumentExtensions):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::~SVGElement):
        (WebCore::SVGElement::removedFrom):

            Similar to SVGUseElement::buildShadowAndInstanceTree, this callsite was updated to
            only rebuild references instead of removing them.

        (WebCore::SVGElement::attributeChanged):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::buildShadowAndInstanceTree):

            The comment indicates we just want to rebuild (not remove). This callsite has been
            updated to use the new rebuildAllElementReferencesForTarget function.

        (WebCore::SVGUseElement::buildInstanceTree):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::buildPendingResource):
        (WebCore::SVGSMILElement::removedFrom):

            Previously, if an SVGSMILElement was not in the document, only clearResourceReferences
            would be called when the target changed. This has been refactored to reset the
            targetElement if the element needs to build resources but is not in the document.

            I looked at moving this into clearResourceReferences (since the target element might
            be considered a reference) but we run into issues calling pure virtual functions in
            the destructor. The current implementation seemed the cleanest.

            SVGSMILElement::removedFrom was cleaned up to match the rest of the code. The comment
            in removedFrom appears to be stale since disconnectConditions does not kill the element.

        (WebCore::SVGSMILElement::svgAttributeChanged):

            Removed the bad !inDocument() checks that broke href change notifications.

        (WebCore::SVGSMILElement::setTargetElement):

2012-12-12  Alpha Lam  <hclam@chromium.org>

        [chromium] Minimize memcpy for encoded image data in ImageFrameGenerator
        https://bugs.webkit.org/show_bug.cgi?id=103797

        Reviewed by Stephen White.

        Added a new class ThreadSafeDataTransport to help transporting data in
        SharedBuffer from one thread to another. This class is designed to minimize
        thread contention and memory copy.

        It is implemented using a data queue. New data segments are copied into
        this queue. The queue is then consolidated with existing data when user
        requests access to the final SharedBuffer.

        Memory is copied into and out of the queue but this approach avoid
        copying the entire SharedBuffer.

        ImageFrameGenerator is now using this class for data transport between
        threads.

        Unit tests in ThreadSafeDataTransportTest. Also existing ImageFrameGeneratorTest passes.

        * WebCore.gypi:
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::setData):
        (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
        Added logic to skip decoding if there's no new data.
        (WebCore::ImageFrameGenerator::decode):
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (ImageFrameGenerator):
        * platform/graphics/chromium/ThreadSafeDataTransport.cpp: Added.
        (WebCore):
        (WebCore::ThreadSafeDataTransport::ThreadSafeDataTransport):
        (WebCore::ThreadSafeDataTransport::~ThreadSafeDataTransport):
        (WebCore::ThreadSafeDataTransport::setData):
        (WebCore::ThreadSafeDataTransport::data):
        (WebCore::ThreadSafeDataTransport::hasNewData):
        * platform/graphics/chromium/ThreadSafeDataTransport.h: Added.
        (WebCore):
        (ThreadSafeDataTransport):

2012-12-12  Roger Fong  <roger_fong@apple.com>

        Enable VIDEO_TRACK on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=104706.

        Reviewed by Timothy Horton.

        Enable VIDEO_TRACK on Windows and update project property files.

        * DerivedSources.cpp:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/WebCoreCommon.vsprops:
        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * html/HTMLElementsAllInOne.cpp:
        * rendering/RenderingAllInOne.cpp:

2012-12-12  No'am Rosenthal  <noam.rosenthal@nokia.com>

        REGRESSION: r137481 caused a build failure with GTK
        https://bugs.webkit.org/show_bug.cgi?id=104826

        Unreviewed build fix.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
            Brought back #if PLATFORM(QT) to surround the dynamic_cast call.

2012-12-12  Dean Jackson  <dino@apple.com>

        Use CAFilter rather than CIFilter
        https://bugs.webkit.org/show_bug.cgi?id=104759

        Reviewed by Tim Horton.

        In order to get better performance in the simple CSS filter
        cases, use CAFilter rather than CIFilter. This involved
        defining some platform-specific values inside
        PlatformCALayerMac to expose CAFilter.

        The great side-effect is that this brings our hardware
        output much closer to our software filters. For example,
        on a random location in the hue-rotate test.

        Software: rgb(255, 148, 16)
        Hardware before: rgb(255, 204, 50)
        Hardware after: rgb(255, 165, 33)

        Still some improvement needed, but better.

        Covered by existing tests.

        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (CAColorMatrix): New structure to hold 5x4 matrix representing a color operation.
        (PlatformCALayer::setFilters): Use CAFilter objects rather than CIFilter.

2012-12-12  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Consolidate redundant code for ARB_RECT texture
        https://bugs.webkit.org/show_bug.cgi?id=104705

        Reviewed by Kenneth Rohde Christiansen.

        Instead of having a whole different function for RECT textures,
        keep the existing functions and pass a flag that tells
        TextureMapperGL to use the non-normalized coordinates and the
        RECT shaders.

        No new tests, refactor only. Tested to not break WebGL on
        Qt-Mac.

        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawQuad):
            Compensate for rect textures in drawQuad.

        (WebCore::TextureMapperGL::drawBorder):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
            Pass flags to TextureMapperGL::drawQuad instead of a bool.

        * platform/graphics/texmap/TextureMapperGL.h:
        (TextureMapperGL):
        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::getShaderSpec):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):
            Compensate for the texture-size in the vertex
            shader instead of in the fragment shader.

2012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137491.
        http://trac.webkit.org/changeset/137491
        https://bugs.webkit.org/show_bug.cgi?id=104828

        broke the builtd (Requested by rfong on #webkit).

        * DerivedSources.cpp:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/WebCoreCommon.vsprops:
        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * html/HTMLElementsAllInOne.cpp:
        * platform/NotImplemented.cpp:
        (WebCore):
        (WebCore::notImplementedLoggingChannel):
        * rendering/RenderingAllInOne.cpp:

2012-12-12  John J. Barton  <johnjbarton@chromium.org>

        Web Inspector: remove protocol-externs.js temp file after compile-front-end.py
        https://bugs.webkit.org/show_bug.cgi?id=98799

        Reviewed by Vsevolod Vlasov.

        Add os.system rm for protocol-externs.js to the end of the compile script

        * inspector/compile-front-end.py:

2012-12-12  Robert Hogan  <robert@webkit.org>

        White space between inline blocks should be affected by word-spacing property
        https://bugs.webkit.org/show_bug.cgi?id=69072

        Reviewed by Levi Weintraub.

        Allow word-spacing to get added to the spaces between inline blocks in placeBoxesInInlineDirection by setting
        needsWordSpacing to true each time an inline block is encountered. This ensures that the next space encountered
        in a text run will be treated as a space between two words and will get word-spacing added to it if it is present
        in the style.

        Tests: fast/css/word-spacing-between-blocks.html
               fast/css/word-spacing-between-inlines.html

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):

2012-12-12  Xianzhu Wang  <wangxianzhu@chromium.org>

        Pre-painting should not paint out-of-view fixed position elements
        https://bugs.webkit.org/show_bug.cgi?id=104724

        Reviewed by James Robinson.

        Test: ManualTests/compositing/fixed-position-out-of-view-scroll-prepaint.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer): Don't paint out-of-view fixed position elements.

2012-12-11  Roger Fong  <roger_fong@apple.com>

        Enable VIDEO_TRACK on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=104706.

        Reviewed by Timothy Horton.

        Enable VIDEO_TRACK on Windows and update project property files.

        * DerivedSources.cpp:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/WebCoreCommon.vsprops:
        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * html/HTMLElementsAllInOne.cpp:
        * rendering/RenderingAllInOne.cpp:

2012-12-12  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] Failed resources shouldn't be recorded in the buffer
        https://bugs.webkit.org/show_bug.cgi?id=104762

        Reviewed by Tony Gentilcore.

        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_failures.html

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::loadDone):

2012-12-12  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Add authentication support to DRT and fix exposed issues in the libsoup backend
        https://bugs.webkit.org/show_bug.cgi?id=104285

        Reviewed by Gustavo Noronha Silva.

        Fix issues in the libsoup networking backend that were causing test
        failures.

        No new tests. This patch unskips authentication tests.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::isAuthenticationFailureStatusCode): Added this helper to catch authentication status codes
        and use it everywhere.
        (WebCore::applyAuthenticationToRequest): Use an early return instead of an if-statement
        and instead of always using manually specified credentials, apply those found in the session
        storage as well. Instead of applying the credentials to firstRequest always, accept the request
        as a parameter, so this method can be properly used with redirects.
        (WebCore::restartedCallback): Instead of creating the KURL directly from soup_uri_to_string
        use soupURIToKURL, which preserves the password from the SoupURI. soup_uri_to_string doesn't
        include the password. When calling applyAuthenticationToRequest update the new request. Before
        applyAuthenticationToRequest always updated the firstRequest. Do not call willSendRequest for
        instances when this method is called for authentication handling. willSendRequest should only
        be called for server-side redirects.
        (WebCore::createSoupRequestAndMessageForHandle): Use soup_requester_request_uri instead of
        soup_requester_request. Request::soupURI properly creates a SoupURI with non-null empty strings
        when either the username and password are empty.  A null username or password does not trigger
        the URI-embedded credential override in SoupAuthenticationManager within libsoup. This is important
        because sometimes either the username or password might empty for a request, but the other
        part of the credential should still override the per-session credential storage.
        (WebCore::ResourceHandle::start): We don't need to clear the username and password from the
        internal data structure any longer. These need to be cleared in the CFNetwork backend because
        it prevents the same failed per-request credentials from being used over and over again. In our
        case we don't use these members during didReceiveAuthenticationChallenge, so this isn't an issue.
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Don't look at the per-request
        m_user/m_pass pair here any longer. We use these when initially creating a request, so we don't
        want to re-use them if they fail.
        * platform/network/soup/ResourceRequest.h:
        (ResourceRequest): Rename urlStringForSoup to soupURI.
        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::soupURI): Instead of returning a string for the soup-bound URL
        return a SoupURI that properly embeds empty usernames and passwords.

2012-12-12  Alexey Proskuryakov  <ap@apple.com>

        Make LOG() work in WebProcess and NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=104718

        Reviewed by Tim Horton.

        Split initialization function into a new InitializeLogging.h file, because it's
        needed in WebKit, but cannot be included along with WebKit version of this file.
        We'd have a confilct between LOG_CHANNEL_PREFIX definitions if we tried.

        * WebCore.xcodeproj/project.pbxproj: Make Logging.h a project header, and
        InitializeLogging.h a private one.

        * GNUmakefile.list.am:
        * Target.pri:
        * platform/InitializeLogging.h: Added.
        * platform/Logging.h:

        * platform/blackberry/LoggingBlackBerry.cpp:
        * platform/efl/LoggingEfl.cpp:
        * platform/gtk/LoggingGtk.cpp:
        * platform/mac/LoggingMac.mm:
        * platform/qt/LoggingQt.cpp:
        * platform/win/LoggingWin.cpp:
        * platform/wx/LoggingWx.cpp:
        Include InitializeLogging.h where this function is implemented.

        * platform/NotImplemented.h:
        * platform/NotImplemented.cpp: Added.
        Changed to not include WebCore's Logging.h in the header, because NotImplemented.h
        is used in WebKits, which have incompatibe logging headers.

2012-12-12  Chris Fleizach  <cfleizach@apple.com>

        AX: aria-busy should be exposed everywhere, not just on live regions
        https://bugs.webkit.org/show_bug.cgi?id=104814

        Reviewed by Anders Carlsson.

        The aria-busy attribute should be exposed on all elements. 
        This isn't entirely clear in the ARIA spec, but that will be fixed with
        ARIA1.1 (ISSUE-538).

        Existing tests that dump attributes cover this new behavior.

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):

2012-12-12  Gavin Peters  <gavinp@chromium.org>

        [chromium] Add destructor to WebPrerender
        https://bugs.webkit.org/show_bug.cgi?id=104820

        Reviewed by James Robinson.

        When making WebPrerender default constructible and assignable, the destructor should have been moved out of WEBKIT_IMPLEMENTATION.

        Existing WebKit unit tests should test this, as do chromium browser tests.

        * platform/chromium/support/WebPrerender.cpp:
        (WebKit::WebPrerender::toPrerender):
        (WebKit::WebPrerender::reset):

2012-12-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Animation fails on large layers
        https://bugs.webkit.org/show_bug.cgi?id=104538

        Reviewed by Noam Rosenthal.

        The backing tiles had no upper limit defined for the non-GL backend, which could cause them
        to allocate pixmaps widier or higher than what the underlying graphics systems can handle.

        On top of that GraphicsLayerTextureMapper::prepareBackingStore() would allocate an intermediate
        pixmap the size of the dirty rect, which would at least on the first paint be the size of the
        entire layer, again causing allocation of pixmaps with dimensions outside of platform bounds.

        This patch introduces a limit to the size of image buffer tiles, and adds an alternative path
        for painting where the GraphicsLayer paints directly to the tile instead of over an intermediate
        pixmap. This alternative path can also be useful later to minimize the amount of pixel copying
        happening in full repaints.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore::BitmapTexture::updateContents):
        * platform/graphics/texmap/TextureMapper.h:
        (BitmapTexture):
        (TextureMapper):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperTile::updateContents):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (TextureMapperTile):
        (TextureMapperTiledBackingStore):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::updateContents):
        (WebCore::TextureMapperImageBuffer::maxTextureSize):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        (BitmapTextureImageBuffer):

2012-12-12  Aaron Colwell  <acolwell@chromium.org>

        Remove MediaSource 'ended' to 'open' transition when seeking.
        https://bugs.webkit.org/show_bug.cgi?id=104583

        Reviewed by Eric Carlson.

        Remove the 'ended' to 'open' transition on a seek.

        No new tests. The following tests were updated to reflect the new behavior.
          http/tests/media/media-source/video-media-source-seek.html
          http/tests/media/media-source/video-media-source-state-changes.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::seek):

2012-12-12  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Implement CSS parsing and handling for min-content and max-content
        https://bugs.webkit.org/show_bug.cgi?id=104747

        Reviewed by Alexis Menard.

        This change adds -webkit-min-content and -webkit-max-content to our <track-breadth> parsing.
        The rendering is not plugged in and will probably depend on bug 103311.

        Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
               fast/css-grid-layout/grid-columns-rows-get-set.html:

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridBreadth):
        * css/StyleResolver.cpp:
        (WebCore::createGridTrackBreadth):
        Straight-forward extension of the new code. We were already serializing back properly
        so no need to touch CSSComputedStyleDeclaration.

2012-12-12  Ryosuke Niwa  <rniwa@webkit.org>

        Copying text with ruby inserts new lines around rt elements
        https://bugs.webkit.org/show_bug.cgi?id=104765

        Reviewed by Dan Bernstein.

        Don't emit new lines before and after rt.

        Test: editing/pasteboard/copy-paste-ruby-text.html

        * editing/TextIterator.cpp:
        (WebCore::shouldEmitNewlinesBeforeAndAfterNode):

2012-12-12  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Possibility to turn off accessibility feature for WebKit-EFL.
        https://bugs.webkit.org/show_bug.cgi?id=103036

        Reviewed by Laszlo Gombos.

        Guard dependencies for accessibility (ATK), so that they can be turned off.

        No new tests as there is no new functionality.

        * PlatformEfl.cmake:
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::AccessibilityObject):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):

2012-12-12  Justin Novosad  <junov@google.com>

        Use render box background over border draw strategy in cases with background-image
        https://bugs.webkit.org/show_bug.cgi?id=103409

        Reviewed by Simon Fraser.

        The BackgroundOverBorderBleedAvoidance mode was not being used in
        cases where the background is an opaque image. It was also not
        being used in cases with multiple layers. The multiple layer
        case is now safe with respect to color bleeding if the top layer
        is opaque, thank to the recent addition of layer occlusion culling
        in r135629.

        No new tests. Testing already covered by the following tests:
        fast/backgrounds/background-opaque-images-over-color.html
        fast/backgrounds/gradient-background-leakage-2.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::determineBackgroundBleedAvoidance):
        (WebCore::RenderBox::backgroundHasOpaqueTopLayer):
        * rendering/RenderBox.h:
        (RenderBox):

2012-12-12  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: instrument static parts of RenderBlock and RenderBox
        https://bugs.webkit.org/show_bug.cgi?id=104660

        Reviewed by Yury Semikhatsky.

        Plain vanilla instrumentation.

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryTypes):
        (WebCoreMemoryInstrumentation):
        (WebCore):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::reportStaticMembersMemoryUsage):
        (WebCore):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::reportStaticMembersMemoryUsage):
        (WebCore):
        * rendering/RenderBox.h:
        (RenderBox):

2012-12-12  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.
        https://bugs.webkit.org/show_bug.cgi?id=104796

        Reviewed by Yury Semikhatsky.

        It was not a good idea to introduce a fake root MemoryObjectInfo.
        It makes a problem when we visit an object without its own MemoryObjectType.

        Example: RenderBox has a global pointer to a hash map.
        HashMap doesn't have its own object type because it is a generic container.
        It will inherit object type from the fake root memory object info.
        The same could happen for another container in another class with other MemoryObjectType.

        This fact forces me to create custom process method for root objects
        because they need to have their own MemoryObjectInfo with customisable memory object type.

        Drive by fix: InstrumentedPointer* was replaced with Wrapper* because actually it is using
        for instrumented and not instrumented object classes.

        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationImpl::processDeferredObjects):
        (WebCore::MemoryInstrumentationImpl::deferObject):
        (WebCore::MemoryInstrumentationImpl::reportMemoryUsage):
        * inspector/MemoryInstrumentationImpl.h:
        (MemoryInstrumentationImpl):

2012-12-12  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL [WebGL] [Wk2] Resizing the canvas breaks WebGL.
        https://bugs.webkit.org/show_bug.cgi?id=104535.

        Reviewed by Kenneth Rohde Christiansen.

        GraphicsContext3DEfl does not re-create the surface on canvas resize, this
        conflicted with the logic in coordinated graphics Layer.
        CoordinatedGraphicsLayer checks for GraphicsSurfaceToken to decide if the surface
        in UI-Process should be recreated or not. With this
        patch we also check for size of the platform Layer.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::didResizeCanvas):
        (GraphicsContext3DPrivate::platformLayerSize):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):

2012-12-12  Antoine Quint  <graouts@apple.com>

        Web Inspector: Crash in InspectorDOMAgent::pushNodePathToFrontend when inspecting document with CSS generated content
        https://bugs.webkit.org/show_bug.cgi?id=104780

        Reviewed by Pavel Feldman.

        The pushNodePathForRenderLayerToFrontend() method added to InspectorDOMAgent naively assumed
        that all RenderLayers have a Node associated to them. However, in the case of CSS generated
        content, that will not be the case and we would call into pushNodePathToFrontend() with a 0
        parameter that would hit the first ASSERT in this method. We're now checking that we indeed
        have an associated node for the provided RenderLayer and return 0 in case we don't, without
        calling into pushNodePathToFrontend().

        Test: inspector-protocol/layer-tree-generated-content.html

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend):

2012-12-12  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Crash] Clear cached stylesheet rules in InspectorStyleSheet::deleteRule()
        https://bugs.webkit.org/show_bug.cgi?id=104806

        Reviewed by Vsevolod Vlasov.

        Cached rules (m_flatRules) should get cleared whenever a rule is deleted.

        Test: inspector/styles/undo-add-rule-crash.html

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::deleteRule):

2012-12-12  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r136975.
        http://trac.webkit.org/changeset/136975
        https://bugs.webkit.org/show_bug.cgi?id=90405

        Correctness issues.

        * dom/Element.cpp:
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::applyFilters):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::createCustomFilterEffect):
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        (WebCore::FilterEffectRenderer::build):
        * rendering/FilterEffectRenderer.h:
        (FilterEffectRenderer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::registerResource):
        * rendering/svg/SVGResources.cpp:
        (WebCore::SVGResources::buildCachedResources):
        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
        (WebCore::SVGResourcesCache::clientStyleChanged):
        (WebCore::SVGResourcesCache::resourceDestroyed):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::addPendingResource):
        (WebCore::SVGDocumentExtensions::isElementPendingResources):
        (WebCore::SVGDocumentExtensions::isElementPendingResource):
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
        * svg/SVGDocumentExtensions.h:
        (WebCore):
        (SVGDocumentExtensions):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::hasPendingResources):
        (WebCore):
        (WebCore::SVGElement::setHasPendingResources):
        (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
        * svg/SVGElement.h:
        (SVGElement):
        (WebCore::SVGElement::buildPendingResource):
        * svg/SVGElementRareData.h:
        (WebCore::SVGElementRareData::SVGElementRareData):
        (WebCore::SVGElementRareData::hasPendingResources):
        (WebCore::SVGElementRareData::setHasPendingResources):
        (SVGElementRareData):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):

2012-12-12  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r137022.
        http://trac.webkit.org/changeset/137022

        Precursor to rollout of 136975.

        * rendering/svg/SVGResources.cpp:
        (WebCore::SVGResources::buildCachedResources):

2012-12-12  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r137027.
        http://trac.webkit.org/changeset/137027

        Precursor to rollout of 136975.

        * dom/ElementRareData.h:
        (ElementRareData):

2012-12-12  Alexei Filippov  <alph@chromium.org>

        Web Inspector: add memory used by memory allocator itself to NMI
        https://bugs.webkit.org/show_bug.cgi?id=93372

        Make native memory instrumentation report memory retained
        for the memory allocator internal purposes.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.MemoryBlockViewProperties._initialize):
        * platform/chromium/MemoryUsageSupportChromium.cpp:
        (WebCore::MemoryUsageSupport::memoryUsageByComponents):

2012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137438.
        http://trac.webkit.org/changeset/137438
        https://bugs.webkit.org/show_bug.cgi?id=104798

        assertion reached when removing tile (Requested by tmpsantos
        on #webkit).

        * page/Frame.cpp:
        (WebCore::Frame::setTiledBackingStoreEnabled):
        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::TiledBackingStore):
        (WebCore::TiledBackingStore::setTileCreationDelay):
        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
        (WebCore::TiledBackingStore::updateTileBuffers):
        (WebCore::TiledBackingStore::createTiles):
        (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
        (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
        (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
        (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
        (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):
        (WebCore::TiledBackingStore::tileCreationDelay):
        * platform/graphics/TiledBackingStoreClient.h:
        (WebCore::TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed):

2012-12-12  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed typo fix after r137446.

        * WebCore.pri:

2012-12-12  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Remove the last of unnecessary configuration options in configure.ac
        https://bugs.webkit.org/show_bug.cgi?id=104793

        Reviewed by Martin Robinson.

        Remove the feature define overriding that's based on the automake variables which are
        not set anymore due to the corresponding configuration options being removed.

        No new tests - no new functionality.

        * GNUmakefile.am:

2012-12-12  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Fix build on Mac

        Reviewed by Csaba Osztrogonác.

        On Mac OS X we have sqlite as a system library available.

        * WebCore.pri:

2012-12-12  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Fix linkage against SQLite
        https://bugs.webkit.org/show_bug.cgi?id=104781

        Reviewed by Csaba Osztrogonác.

        Detect SQLite either through pkg-config, from the SQLITE3SRCDIR
        environment variable or from qtbase via a qt5.git build. Bail out early
        with an error message if neither option applies.

        This removes the usage of $$QT.core.sources and the dependency on Qt's
        system-sqlite configure setting. We should always favour a system
        library over a copy in Qt.

        * Target.pri:
        * WebCore.pri:

2012-12-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [TexMap] Uninitialized m_context pointer in TextureMapper
        https://bugs.webkit.org/show_bug.cgi?id=104785

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore::TextureMapper::TextureMapper):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::TextureMapperGL):

2012-12-12  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Change the data channel descriptor pattern to a handler pattern
        https://bugs.webkit.org/show_bug.cgi?id=104543

        Reviewed by Kent Tamura.

        In short the code is refactured to use the Handler/Client pattern (see RTCPeerConnectionHandler)
        instead of the Descriptor pattern.
        This will fix lifetime/memory/code structure issues in the chromium port.

        Existing tests cover this patch.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/mediastream/RTCDataChannel.cpp:
        (WebCore::RTCDataChannel::create):
        (WebCore::RTCDataChannel::RTCDataChannel):
        (WebCore::RTCDataChannel::~RTCDataChannel):
        (WebCore::RTCDataChannel::label):
        (WebCore::RTCDataChannel::reliable):
        (WebCore::RTCDataChannel::readyState):
        (WebCore::RTCDataChannel::bufferedAmount):
        (WebCore::RTCDataChannel::send):
        (WebCore::RTCDataChannel::close):
        (WebCore::RTCDataChannel::didChangeReadyState):
        (WebCore::RTCDataChannel::didReceiveStringData):
        (WebCore::RTCDataChannel::didReceiveRawData):
        (WebCore::RTCDataChannel::didDetectError):
        (WebCore::RTCDataChannel::stop):
        * Modules/mediastream/RTCDataChannel.h:
        (WebCore):
        (RTCDataChannel):
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
        * Modules/mediastream/RTCPeerConnection.h:
        (RTCPeerConnection):
        * WebCore.gypi:
        * platform/chromium/support/WebRTCDataChannel.cpp: Removed.
        * platform/mediastream/RTCDataChannelDescriptor.h: Removed.
        * platform/mediastream/RTCDataChannelHandler.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
        (WebCore):
        (RTCDataChannelHandler):
        (WebCore::RTCDataChannelHandler::~RTCDataChannelHandler):
        * platform/mediastream/RTCDataChannelHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
        (WebCore):
        (RTCDataChannelHandlerClient):
        (WebCore::RTCDataChannelHandlerClient::~RTCDataChannelHandlerClient):
        * platform/mediastream/RTCPeerConnectionHandler.cpp:
        (WebCore):
        (WebCore::RTCPeerConnectionHandler::create):
        * platform/mediastream/RTCPeerConnectionHandler.h:
        (WebCore):
        (RTCPeerConnectionHandler):
        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
        (WebCore):
        (RTCPeerConnectionHandlerClient):
        * platform/mediastream/chromium/RTCDataChannelHandlerChromium.cpp: Added.
        (WebCore):
        (WebCore::RTCDataChannelHandlerChromium::create):
        (WebCore::RTCDataChannelHandlerChromium::RTCDataChannelHandlerChromium):
        (WebCore::RTCDataChannelHandlerChromium::~RTCDataChannelHandlerChromium):
        (WebCore::RTCDataChannelHandlerChromium::setClient):
        (WebCore::RTCDataChannelHandlerChromium::label):
        (WebCore::RTCDataChannelHandlerChromium::isReliable):
        (WebCore::RTCDataChannelHandlerChromium::bufferedAmount):
        (WebCore::RTCDataChannelHandlerChromium::sendStringData):
        (WebCore::RTCDataChannelHandlerChromium::sendRawData):
        (WebCore::RTCDataChannelHandlerChromium::close):
        (WebCore::RTCDataChannelHandlerChromium::didChangeReadyState):
        (WebCore::RTCDataChannelHandlerChromium::didReceiveStringData):
        (WebCore::RTCDataChannelHandlerChromium::didReceiveRawData):
        (WebCore::RTCDataChannelHandlerChromium::didDetectError):
        * platform/mediastream/chromium/RTCDataChannelHandlerChromium.h: Added.
        (WebCore):
        (RTCDataChannelHandlerChromium):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::createDataChannel):
        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (WebCore):
        (RTCPeerConnectionHandlerChromium):

2012-12-12  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
        https://bugs.webkit.org/show_bug.cgi?id=103959

        Reviewed by Kenneth Rohde Christiansen.

        TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop() is used when class
        methods cannot be called asynchronously by client. Updates of tiles are
        committed as soon as all the events in event queue have been processed.
        After this patch Frame sets m_commitTileUpdatesOnIdleEventLoop to true.

        In addition, remove TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed()
        which was introduced for Coordinated Graphics.

        Refactoring covered by existing tests.

        * page/Frame.cpp:
        (WebCore::Frame::setTiledBackingStoreEnabled):
        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::TiledBackingStore):
        (WebCore::TiledBackingStore::setTrajectoryVector):
          Separate setting a trajectory vector from coverWithTilesIfNeeded().
        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
        (WebCore::TiledBackingStore::updateTileBuffers):
        (WebCore::TiledBackingStore::createTiles):
        (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
        (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
        (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
        (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
        (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):
        (WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop):
        * platform/graphics/TiledBackingStoreClient.h:
        (WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
            If TiledBackingStore does not create all tiles, TiledBackingStore
            notifies a client of needing to create tiles more, when
            m_commitTileUpdatesOnIdleEventLoop is false.

2012-12-11  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>

        [Qt] Fix the inspector not showing up on Windows
        https://bugs.webkit.org/show_bug.cgi?id=104677

        Reviewed by Simon Hausmann.

        * Target.pri:

2012-11-29  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: Heap snapshot crashes on any page in MacOS Canary
        https://bugs.webkit.org/show_bug.cgi?id=103076

        Reviewed by Adam Barth.

        Provide global object name resolver to the heap profiler. The callback allows
        to safely retrieve document URL to be used as a label for corresponding global
        object in the heap snapshot.

        Test: inspector-protocol/take-heap-snapshot.html

        * bindings/v8/ScriptProfiler.cpp:
        (WebCore):
        (WebCore::ScriptProfiler::takeHeapSnapshot):

2012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137428.
        http://trac.webkit.org/changeset/137428
        https://bugs.webkit.org/show_bug.cgi?id=104776

        It broke the build everywhere (Requested by Ossy on #webkit).

        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawQuad):
        (WebCore::TextureMapperGL::drawBorder):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore):
        (WebCore::TextureMapperGL::drawTextureRectangleARB):
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
        * platform/graphics/texmap/TextureMapperGL.h:
        (TextureMapperGL):
        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::getShaderSpec):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):

2012-12-12  Martin Robinson  <mrobinson@igalia.com>

        Web inspector prints a warning about "Debug" not being localized
        https://bugs.webkit.org/show_bug.cgi?id=104679

        Reviewed by Vsevolod Vlasov.

        Add a missing localization entry for the "Debug" string which is used in the web
        inspector front-end. This prevents warnings about a missing localized version
        of the word "Debug" and allows it to be properly localized.

        * English.lproj/localizedStrings.js: Add "Debug"

2012-12-12  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow DOM] Implement HTMLShadowElement::olderShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=104218

        Reviewed by Hajime Morita.

        Implements HTMLShadowElement::olderShadowRoot, which returns the ShadowRoot the HTMLShadowElement is assigned to.
        When such ShadowRoot does not exist, 0 is returned.

        Test: fast/dom/shadow/olderShadowRoot-in-shadowelement.html

        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::ensureDistributionFromDocument): Ensures distribution of this ElementShadow and
        all of the parent TreeScope distribution. This function will be shared for Bug 104345.
        (WebCore):
        * dom/ElementShadow.h:
        (ElementShadow):
        * html/shadow/HTMLShadowElement.cpp:
        (WebCore::HTMLShadowElement::olderShadowRoot):
        (WebCore):
        * html/shadow/HTMLShadowElement.h:
        * html/shadow/HTMLShadowElement.idl:

2012-12-12  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Consolidate redundant code for ARB_RECT texture
        https://bugs.webkit.org/show_bug.cgi?id=104705

        Reviewed by Kenneth Rohde Christiansen.

        Instead of having a whole different function for RECT textures,
        keep the existing functions and pass a flag that tells
        TextureMapperGL to use the non-normalized coordinates and the
        RECT shaders.

        No new tests, refactor only. Tested to not break WebGL on
        Qt-Mac.

        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawQuad):
            Compensate for rect textures in drawQuad.

        (WebCore::TextureMapperGL::drawBorder):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
            Pass flags to TextureMapperGL::drawQuad instead of a bool.

        * platform/graphics/texmap/TextureMapperGL.h:
        (TextureMapperGL):
        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::getShaderSpec):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):
            Compensate for the texture-size in the vertex
            shader instead of in the fragment shader.

2012-12-11  Hayato Ito  <hayato@chromium.org>

        REGRESSION(r137408): breaks chromium's browser tests which use WebKitShadowRoot (Requested by hayato on #webkit).
        https://bugs.webkit.org/show_bug.cgi?id=104770

        Unreviewed, build fix.

        * dom/ShadowRoot.idl:
        * page/DOMWindow.idl:

2012-12-11  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137333, r137344, r137364, and
        r137377.
        http://trac.webkit.org/changeset/137333
        http://trac.webkit.org/changeset/137344
        http://trac.webkit.org/changeset/137364
        http://trac.webkit.org/changeset/137377
        https://bugs.webkit.org/show_bug.cgi?id=104771

        Caused a raft of browser_test failures in Chromium (Requested
        by aklein on #webkit).

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::setRequest):
        (WebCore::DocumentLoader::subresource):
        (WebCore::DocumentLoader::addSubresourceLoader):
        (WebCore::DocumentLoader::removeSubresourceLoader):
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::~MainResourceLoader):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::willCancel):
        (WebCore::MainResourceLoader::didCancel):
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::addData):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::continueAfterContentPolicy):
        (WebCore::MainResourceLoader::didReceiveResponse):
        (WebCore::MainResourceLoader::didReceiveData):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::didFail):
        (WebCore::MainResourceLoader::reportMemoryUsage):
        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
        (WebCore::MainResourceLoader::loadNow):
        (WebCore):
        (WebCore::MainResourceLoader::load):
        (WebCore::MainResourceLoader::setDefersLoading):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::willSendRequest):
        * loader/ResourceLoader.h:
        (ResourceLoader):
        (WebCore::ResourceLoader::defersLoading):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::willSendRequest):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::willSendRequest):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::loadDone):
        * loader/mac/DocumentLoaderMac.cpp:
        (WebCore::DocumentLoader::schedule):
        (WebCore::DocumentLoader::unschedule):

2012-12-11  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r137398.
        http://trac.webkit.org/changeset/137398
        https://bugs.webkit.org/show_bug.cgi?id=104188

        A bunch of webaudio tests hit ASSERTs

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createOfflineContext):
        (WebCore):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/DOMWindowWebAudio.idl:
        * Modules/webaudio/OfflineAudioContext.cpp: Removed.
        * Modules/webaudio/OfflineAudioContext.h: Removed.
        * Modules/webaudio/OfflineAudioContext.idl: Removed.
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/generic/RuntimeEnabledFeatures.h:
        * bindings/js/JSAudioContextCustom.cpp:
        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallbackCustom):

2012-12-11  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow DOM] registering InsertionPoints to ShadowRoot should work out of a document.
        https://bugs.webkit.org/show_bug.cgi?id=104346

        Reviewed by Hajime Morita.

        We need to register InsertionPoints even if ShadowRoot is out of Document, since distribution should work
        out of Document, too.

        Instead of checking isInDocument(), we have to make sure InsertionPoint and an element which InsertionPoint
        inserted into have the same treescope.

        Tests: fast/dom/shadow/has-content-elements.html
               fast/dom/shadow/has-shadow-insertion-point.html

        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::insertedInto):
        (WebCore::InsertionPoint::removedFrom):

2012-12-11  Takashi Sakamoto  <tasak@google.com>

        Text nodes in shadow roots don't inherit style properly
        https://bugs.webkit.org/show_bug.cgi?id=101116

        Reviewed by Hajime Morita.

        Use NodeRenderingContext to resolve styles of text nodes.
        If text nodes are direct children of shadow roots, the text nodes
        should be inherited styles from their shadow hosts.
        But if reset-style-inheritance flag is true, the text nodes should
        not be inherited. And if text nodes are distributed nodes,
        we have to check whether their insertion point's
        reset-style-inheritance.
        c.f. shadow dom spec is:
        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles

        Test: fast/dom/shadow/text-node-in-shadow.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForElement):
        Modified to use defaultStyleForElement if the given element has
        no parent style.
        (WebCore::StyleResolver::initForStyleResolve):
        Removed shouldResetStyleInheritance, because now NodeRenderingContext
        resetStyleInheritance() takes care of reset-style-inheritance of
        both shadow roots and insertion points.
        (WebCore::StyleResolver::defaultStyleForElement):
        Added to create a default style for elements.
        (WebCore):
        (WebCore::StyleResolver::styleForText):
        Use NodeRenderingContext to find the parent node for style from the
        given text node. If no parent node is found or reset-style-inheritance
        is true, returns a default style (i.e. empty render style).
        Otherwise, just returns the found node's style.
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::didTraverseInsertionPoint):
        Modify to consider insertion point's resetStyleInheritance.
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
        Since NodeRenderingContext has already found a parent node for
        rendering and style and a parentRenderer is just the found node's
        renderer, we have to only check reset-style-inheritance.
        If reset, use default style. Otherwise, the parentRenderer's style.
        * dom/Text.cpp:
        (WebCore::Text::recalcTextStyle):
        Use styleForText instead of parentRenderer's styles if the given text
        node is a direct child of a shadow root or a direct child of a shadow
        host.

2012-12-11  Takashi Sakamoto  <tasak@google.com>

        Hide HOST_RULE behind SHADOW_DOM flag.
        https://bugs.webkit.org/show_bug.cgi?id=102321

        Reviewed by Dimitri Glazkov.

        @host @-rules are only available when the rules are declared in styles
        in shadow dom trees. So if SHADOW_DOM is disabled, we don't need
        @host @-rules.

        No new tests. Just hide HOST_RULE behind SHADOW_DOM flag.

        * css/StyleResolver.h:
        Hide "class ShadowRuleHost".
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        * css/StyleRule.h:
        (StyleRuleBase):
        Hide "Host" type and isHostRule.
        (StyleRuleHost):
        Hide "class StyleRuleHost".
        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):

2012-12-11  Dominic Mazzoni  <dmazzoni@google.com>

        AX: accessibilityIsIgnored should avoid computing textUnderElement
        https://bugs.webkit.org/show_bug.cgi?id=104688

        Reviewed by Chris Fleizach.

        Simplify the logic in accessibilityIsIgnored without affecting
        the results of any tests. In particular, avoid expensive calls to
        textUnderElement.

        Covered by existing tests.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::isGenericFocusableElement):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):

2012-12-11  Kentaro Hara  <haraken@chromium.org>

        [V8] Reachable event listeners on image elements can be collected in a minor DOM GC
        https://bugs.webkit.org/show_bug.cgi?id=104734

        Reviewed by Kenneth Russell.

        A major DOM GC treats image elements specially. In
        V8GCController::opaqueRootForGC(), a major DOM GC puts image elements
        that have pending activities into the same object group of their document.
        This guarantees that image elements that have pending activities
        are not garbage collected in the major DOM GC.

        This patch adds the same special handling to a minor DOM GC to guarantee
        the same thing in the minor DOM GC too.

        In long-term, we might want to remove the special handling by making
        image elements active DOM nodes.

        Test: Manually confirmed that all characters in
        http://alteredqualia.com/three/examples/webgl_animation_skinning_tf2.html
        are rendered correctly.

        * bindings/v8/V8GCController.cpp:
        (WebCore::V8GCController::opaqueRootForGC):
        (WebCore::gcTree):

2012-12-11  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Make isActionSupported cross-platform.
        https://bugs.webkit.org/show_bug.cgi?id=104681

        Reviewed by Chris Fleizach.

        Add UserGestureIndicator to increment() and decrement()
        so that all accessibility actions are treated as
        user actions, not scripted actions.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::increment):
        (WebCore::AccessibilityNodeObject::decrement):

2012-12-11  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        Remove conversion to/from float and float division from ImageFrame::setRGBA
        https://bugs.webkit.org/show_bug.cgi?id=103693

        Reviewed by Brent Fulgham.

        Replace floating point operations used for alpha premultiply with fixed point arithmetic
        which is basically integer operations. Allows to shave extra couple percent from decoding
        images with transparency.

        Covered by existing tests.

        * platform/image-decoders/ImageDecoder.h:
        (ImageFrame):
        (WebCore::ImageFrame::fixPointUnsignedMultiply):
        (WebCore::ImageFrame::setRGBA):

2012-12-11  Kihong Kwon  <kihong.kwon@samsung.com>

        Vibration API: IDL type doesn't match implementation type
        https://bugs.webkit.org/show_bug.cgi?id=103899

        Reviewed by Kentaro Hara.

        According to WebIDL, "unsigned long" corresponds to "unsigned" in the platform.
        Therefore unsigned long need to be changed to unsigned for the Vibration API.
        - Change a parameter type of vibrate function from unsigned long to unsigned.

        No new tests, it is covered by exist test.

        * Modules/vibration/NavigatorVibration.cpp:
        (WebCore::NavigatorVibration::vibrate):
        * Modules/vibration/NavigatorVibration.h:
        (NavigatorVibration):
        * Modules/vibration/Vibration.cpp:
        (WebCore::Vibration::vibrate):
        * Modules/vibration/Vibration.h:
        (Vibration):
        * Modules/vibration/VibrationClient.h:
        (VibrationClient):
        * bindings/js/JSDOMBinding.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        Remove workaround codes for the Vibration API which is mapped from unsigned long to unsigned long.
        It should be mapped from unsigned long to unsigned by WebIDL spec.
        (GetNativeVectorInnerType):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):

2012-12-11  Xinazhu Wang  <wangxianzhu@chromium.org>

        ScrollingCoordinator::hasVisibleSlowRepaintFixedObject() should exclude out-of-view fixed position elements
        https://bugs.webkit.org/show_bug.cgi?id=102543

        Let RenderLayerCompositor manage the reasons that fixed position elements are not composited.
        Check the reason in ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects(), don't let fixed position layer not composited with explicit reasons cause slow scrolling.

        Reviewed by James Robinson.

        Test: compositing/layer-creation/fixed-position-out-of-view-scroll-reason.html

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects): Exclude fixed position elements that are not composited for explicit reasons.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Manages m_fixedPositionLayerNotCompositedReasonMap.
        (WebCore::RenderLayerCompositor::needsToBeComposited):
        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        * rendering/RenderLayerCompositor.h:
        (WebCore::RenderLayerCompositor::fixedPositionLayerNotCompositedReason): Now outputs fixedPositionLayerNotCompositedreason.
        (RenderLayerCompositor):

2012-12-11  Hayato Ito  <hayato@chromium.org>

        [Shadow DOM] Kill ShadowRoot constructor
        https://bugs.webkit.org/show_bug.cgi?id=102913

        Reviewed by Dimitri Glazkov.

        Remove ShadowRoot constructor in favor of Element.webkitCreateShadowRoot().

        No new tests. Update existing tests.

        * dom/ShadowRoot.idl:
        * page/DOMWindow.idl:
        * testing/Internals.cpp:
        (WebCore::Internals::createShadowRoot):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-12-11  Antti Koivisto  <antti@apple.com>

        Add Element-specific traversal functions
        https://bugs.webkit.org/show_bug.cgi?id=104685

        Reviewed by Ryosuke Niwa.

        In many cases where we use NodeTraversal we really only want Elements. By having
        Element specific iteration functions we can tighten the code and make it faster too.

        This patch adds ElementTraversal namespace, similar to NodeTraversal. It also switches
        bunch of NodeTraversal call sites that obviously only care about elements to using
        the new interface.
        
        This should be a speedup too as we avoid number of branches by not having to look
        for children of non-ContainerNodes and by allowing use of ContainerNode specific
        accessors.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::addImageMapChildren):
        * css/SelectorChecker.cpp:
        (WebCore::linkAttribute):
        (WebCore::SelectorChecker::allVisitedStateChanged):
        (WebCore::SelectorChecker::visitedStateChanged):
        * css/StyleInvalidationAnalysis.cpp:
        (WebCore::elementMatchesSelectorScopes):
        (WebCore::StyleInvalidationAnalysis::invalidateStyle):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::collectDescendant):
        * dom/Document.cpp:
        (WebCore::Document::buildAccessKeyMap):
        (WebCore::Document::updateBaseURL):
        (WebCore::Document::processBaseElement):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::DocumentOrderedMap::get):
        * dom/Element.cpp:
        (WebCore::Element::firstElementChild):
        * dom/Element.h:
        (WebCore):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::collectSelectFeatureSetFrom):
        * dom/NodeTraversal.h:
        (ElementTraversal):
        (WebCore):
        (WebCore::ElementTraversal::traverseNextElementTemplate):
        (WebCore::ElementTraversal::next):
        (WebCore::ElementTraversal::firstWithin):
        (WebCore::ElementTraversal::traverseNextElementSkippingChildrenTemplate):
        (WebCore::ElementTraversal::nextSkippingChildren):
        (NodeTraversal):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::labelElementForId):
        (WebCore::TreeScope::findAnchor):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        * editing/FrameSelection.cpp:
        (WebCore::scanForForm):
        * editing/markup.cpp:
        (WebCore::completeURLs):
        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
        (WebCore::HTMLFieldSetElement::childrenChanged):
        (WebCore::HTMLFieldSetElement::legend):
        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::formElementIndex):
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::control):
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::associatedControl):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::mapMouseEvent):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::virtualItemAfter):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::containsJavaApplet):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
        * page/FocusController.cpp:
        (WebCore::FocusController::findFocusCandidateInContainer):
        * rendering/RenderCounter.cpp:
        (WebCore::nextInPreOrder):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::title):
        * svg/SVGUseElement.cpp:
        (WebCore::removeDisallowedElementsFromSubtree):
        * svg/animation/SMILTimeContainer.cpp:
        (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):

2012-12-11  KyungTae Kim  <ktf.kim@samsung.com>

        [soup] Unused parameter in ResourceHandleSoup.cpp
        https://bugs.webkit.org/show_bug.cgi?id=104728

        Reviewed by Kentaro Hara.

        The soupLogPrinter has unused parameter 'logger', 
        remove the parameter name to fix 'unused parameter' build warning.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::soupLogPrinter):

2012-12-11  Xianzhu Wang  <wangxianzhu@chromium.org>

        Fixed position out-of-view check is incorrect when page is scaled
        https://bugs.webkit.org/show_bug.cgi?id=104303

        Reviewed by Kenneth Rohde Christiansen.

        Test: compositing/layer-creation/fixed-position-out-of-view-scaled.html
              compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition): Scale the content rect of the fixed position layer before checking out-of-view.

2012-12-11  Chris Rogers  <crogers@google.com>

        Implement OfflineAudioContext constructor
        https://bugs.webkit.org/show_bug.cgi?id=104188

        Reviewed by Kentaro Hara.

        The Web Audio layout tests have relied on an undocumented way (in the specification) to render
        audio faster than realtime using an OfflineAudioContext.  We want to expose a proper OfflineAudioContext
        object and constructor instead of piggybacking off of the normal AudioContext.
            
        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::isSampleRateRangeGood):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/DOMWindowWebAudio.idl:
        * Modules/webaudio/OfflineAudioContext.cpp: Added.
        (WebCore):
        (WebCore::OfflineAudioContext::create):
        (WebCore::OfflineAudioContext::OfflineAudioContext):
        (WebCore::OfflineAudioContext::~OfflineAudioContext):
        * Modules/webaudio/OfflineAudioContext.h: Added.
        (WebCore):
        (OfflineAudioContext):
        * Modules/webaudio/OfflineAudioContext.idl: Added.
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
        * bindings/js/JSAudioContextCustom.cpp:
        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallbackCustom):

2012-12-11  Jun Jiang  <jun.a.jiang@intel.com>

        WebGL: Avoid unnecessary memory copy or conversion in texImage2D and texSubImage2D for HTMLVideoElement
        https://bugs.webkit.org/show_bug.cgi?id=102161

        Reviewed by Kenneth Russell.

        There are several memory copy or conversions in the texImage2D and texSubImage2D for HTMLVideoElement which may be avoided. This patch removes the redundant BackingStore copy if the corresponding Graphics port supports the DontCopyBackingStore behavior. Moreover, it optimizes the AlphaOp if the Image source is from HTMLVideoElement to avoid unnecessary Unmultiply or Premultiply operation in unpack/pack. 

        Already covered by current tests. 

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::texImage2DImpl):
        (WebCore::WebGLRenderingContext::texImage2D):
        (WebCore::WebGLRenderingContext::videoFrameToImage): add a parameter to choose BackingStore copy behavior.
        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
        (WebCore::WebGLRenderingContext::texSubImage2D):
        * html/canvas/WebGLRenderingContext.h:
        (WebGLRenderingContext):
        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::ImageExtractor):
        * platform/graphics/GraphicsContext3D.h:
        (ImageExtractor):
        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceUnpackAlignment):
        (WebCore::GraphicsContext3D::ImageExtractor::imageHtmlDomSource):
        * platform/graphics/ImageBuffer.h:
        (ImageBuffer):
        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::fastCopyImageMode):
        (WebCore):
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::fastCopyImageMode):
        (WebCore):
        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBuffer::fastCopyImageMode):
        (WebCore):
        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::fastCopyImageMode):
        (WebCore):
        * platform/graphics/wince/ImageBufferWinCE.cpp:
        (WebCore::ImageBuffer::fastCopyImageMode):
        (WebCore):
        * platform/graphics/wx/ImageBufferWx.cpp:
        (WebCore::ImageBuffer::fastCopyImageMode):
        (WebCore):

2012-12-11  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        [EFL] Missing implementation of GraphicsContext3DPrivate::platformLayerSize()
        https://bugs.webkit.org/show_bug.cgi?id=104726

        Reviewed by Kenneth Rohde Christiansen.

        Add common implementation of GraphicsContext3DPrivate::platformLayerSize() similar
        to Qt version. There is nothing platform specific in Qt version. 

        Covered by existing tests.

        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::platformLayerSize):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):

2012-12-11  No'am Rosenthal  <noam@webkit.org>

        [Texmap] Slightly improve readability of the antialias shader
        https://bugs.webkit.org/show_bug.cgi?id=104708

        Reviewed by Martin Robinson.

        Modify the antialiasing shader to include separate function that perform
        discrete operations, rather than one big function that repeats the same
        operations.

        No new tests, readability fix.

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::getShaderSpec):

2012-12-11  Tim Horton  <timothy_horton@apple.com>

        -webkit-svg-shadow radius changes don't cause children's boundaries to be recomputed
        https://bugs.webkit.org/show_bug.cgi?id=104722
        <rdar://problem/12821080>

        Reviewed by Simon Fraser.

        Changes to -webkit-svg-shadow currently cause a relayout of the directly affected renderer
        and its parents, but not its children. However, children have the shadow radius
        baked into their cached boundaries, so these need to be invalidated.

        Test: svg/repaint/repaint-webkit-svg-shadow-container.html

        * rendering/RenderObject.h: Expose needsBoundariesUpdate().
        * rendering/svg/RenderSVGContainer.h: Expose needsBoundariesUpdate().
        * rendering/svg/RenderSVGImage.h: Expose needsBoundariesUpdate().
        * rendering/svg/RenderSVGRoot.h: Expose needsBoundariesUpdate().
        * rendering/svg/RenderSVGShape.h: Expose needsBoundariesUpdate().
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::layoutChildren): If the renderer has a shadow and
        is in needs of a boundaries update, mark children as needing boundaries updates too.

2012-12-11  Xianzhu Wang  <wangxianzhu@chromium.org>

        Add window.internals.mainThreadScrollReasonsAsText for testing slow scrolling
        https://bugs.webkit.org/show_bug.cgi?id=104714

        Reviewed by Eric Seidel.

        No new tests. Adds test api for bug 102543 and other bugs.

        * WebCore.exp.in:
        * page/Page.cpp:
        (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText): Extracted from ScrollingStateScrollingNode::dumpProperties for layout tests.
        (WebCore):
        * page/Page.h:
        (Page):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
        (WebCore):
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::dumpProperties): Moved code for mainThreadScrollingReasons to ScrollingCoordinator.cpp.
        * testing/Internals.cpp:
        (WebCore::Internals::mainThreadScrollingReasons):
        (WebCore):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-12-11  Simon Fraser  <simon.fraser@apple.com>

        Enhance the TileCache to cache more tiles
        https://bugs.webkit.org/show_bug.cgi?id=104612

        Reviewed by Tim Horton.

        Add smarts to the TileCache so that it keeps some tiles around
        for longer and can prepopulate tiles in to-be-scrolled-to regions.

        The new tile management is as follows:
        * As before, we expand the visible rect to create a "tile coverage rect"
        which is twice the width, and three times the height of the visible rect.
        * At the edges, this coverage rect is constrained by them, rather than being
        truncated as before (leading to larger initial tile coverage).
        * When tiles leave the coverage rect, we keep them around but track
        them in cohorts (where a cohort is a set of tiles that left the coverage rect
        at the same time).
        * If a repaint comes in for a "secondary" tile, we don't paint it, but mark
        the tile as being stale. It will get repainted (in full) if it moves back inside
        the coverage rect.
        * Cohorts are kept around for 2 seconds after they were created. A repeating
        1-second timer clears tiles in old cohorts.
        * Secondary tiles are pruned if the visible rect changes, or if zooming happens.
        * TiledBacking exposes a way to prepopulate a rect with tiles; this is called
        when scrolling (e.g. via Home/End keys). Tiles created this way (if outside
        the coverage rect) go into a cohort.

        * page/FrameView.cpp:
        (WebCore::FrameView::requestScrollPositionUpdate): Tell the TiledBacking
        to prepopulate some tiles.
        * platform/graphics/TiledBacking.h:
        (TiledBacking): Add prepopulateRect().
        * platform/graphics/ca/mac/TileCache.h:
        (TileInfo): The TileMap contains TileInfos, which contain a pointer
        to the layer, their cohort, and a 'stale content' flag.
        (WebCore::TileCache::TileInfo::TileInfo):
        (TileCache):
        (TileCohortInfo):
        (WebCore::TileCache::TileCohortInfo::TileCohortInfo):
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache):
        (WebCore::TileCache::~TileCache):
        (WebCore::TileCache::setNeedsDisplay):
        (WebCore::TileCache::setNeedsDisplayInRect):
        (WebCore::TileCache::setTileNeedsDisplayInRect):
        (WebCore::TileCache::setScale):
        (WebCore::TileCache::setAcceleratesDrawing):
        (WebCore::TileCache::setTilesOpaque):
        (WebCore::TileCache::prepopulateRect):
        (WebCore::TileCache::setTileDebugBorderWidth):
        (WebCore::TileCache::setTileDebugBorderColor):
        (WebCore::TileCache::computeTileCoverageRect):
        (WebCore::TileCache::tileSizeForCoverageRect):
        (WebCore::TileCache::tileRevalidationTimerFired):
        (WebCore::TileCache::blankPixelCount):
        (WebCore::queueTileForRemoval):
        (WebCore::TileCache::removeAllTiles):
        (WebCore::TileCache::removeAllSecondaryTiles):
        (WebCore::TileCache::removeTilesInCohort):
        (WebCore::TileCache::revalidateTiles):
        (WebCore::TileCache::nextTileCohort):
        (WebCore::TileCache::startedNewCohort):
        (WebCore::TileCache::newestTileCohort):
        (WebCore::TileCache::oldestTileCohort):
        (WebCore::TileCache::scheduleCohortRemoval):
        (WebCore::TileCache::cohortRemovalTimerFired):
        (WebCore::TileCache::ensureTilesForRect):
        (WebCore::TileCache::tileGridExtent):
        (WebCore::TileCache::tileCoverageRect):
        (WebCore::TileCache::tileLayerAtIndex):
        (WebCore::TileCache::drawTileMapContents):

2012-12-11  Simon Fraser  <simon.fraser@apple.com>

        Remove redundant AffineTransform in RenderSVGShape::fillAndStrokeShape()
        https://bugs.webkit.org/show_bug.cgi?id=104736

        Reviewed by Dean Jackson.

        RenderSVGShape::fillAndStrokeShape() allocated a AffineTransform on
        the stack which was shadowed by another one in narrower scope. It
        can be removed.

        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::fillAndStrokeShape):

2012-12-11  Seokju Kwon  <seokju.kwon@gmail.com>

        [EFL] Remove unused headers
        https://bugs.webkit.org/show_bug.cgi?id=104661

        Reviewed by Ryosuke Niwa.

        Header inclusion cleanup.
        Remove "NotImplemented.h".

        No new tests, no behavior change.

        * platform/efl/CursorEfl.cpp:
        * platform/efl/FileSystemEfl.cpp:
        * platform/efl/ScrollViewEfl.cpp:
        * platform/efl/ScrollbarThemeEfl.cpp:
        * platform/efl/SoundEfl.cpp:

2012-12-11  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Stub out data operations on IDBDatabaseBackendInterface
        https://bugs.webkit.org/show_bug.cgi?id=104592

        Reviewed by Dimitri Glazkov.

        In preparation for removing objectStore/index backend
        interfaces, stub out the basic data operations around
        get, put, cursors, etc. on IDBDatabaseBackendInterface.

        No new tests, this is just preparation for refactoring.

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::get):
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::put):
        (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
        (WebCore::IDBDatabaseBackendImpl::openCursor):
        (WebCore::IDBDatabaseBackendImpl::count):
        (WebCore::IDBDatabaseBackendImpl::deleteRange):
        (WebCore::IDBDatabaseBackendImpl::clear):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (WebCore):
        (IDBDatabaseBackendInterface):

2012-12-11  Roger Fong  <roger_fong@apple.com>

        Make Video Track compile on Windows in debug mode.
        https://bugs.webkit.org/show_bug.cgi?id=104720.

        Reviewed by Alexey Proskuryakov.

        urlForLogging method was defined in both HTMLMediaElement.cpp and HTMLTrackElement.cpp. 
        On Windows all the HTMLElements sources are included in an AllInOne source file, 
        so the definitions conflicted. Fixed by renaming the definition in each source file.

        * html/HTMLMediaElement.cpp:
        (WebCore::urlForLoggingMedia):
        (WebCore::HTMLMediaElement::loadResource):
        (WebCore::HTMLMediaElement::isSafeToLoadURL):
        (WebCore::HTMLMediaElement::didRemoveTrack):
        (WebCore::HTMLMediaElement::selectNextSourceChild):
        (WebCore::HTMLMediaElement::sourceWasAdded):
        (WebCore::HTMLMediaElement::sourceWasRemoved):
        * html/HTMLTrackElement.cpp:
        (WebCore::urlForLoggingTrack):
        (WebCore::HTMLTrackElement::canLoadUrl):

2012-12-11  Ryosuke Niwa  <rniwa@webkit.org>

        Mail hangs when resizing the font size of a large RTL text
        https://bugs.webkit.org/show_bug.cgi?id=104643

        Reviewed by Enrica Casucci.

        The bug was caused by ApplyStyleCommand::applyInlineStyleToNodeRange obtaining computed styles while
        removing and adding nodes. Fixed the slowness by breaking it into three phases:
        1. Split the range into contiguous inline runs, and determine whether styles need to be removed or applied.
        2. Remove any conflicting styles, and insert dummy elements at positions where inline styles ought to be
        computed as needed.
        3. Remove the dummy elements and apply ilnine styles as needed.

        No new tests are added since there is no behavior change. This is just a performance improvement. 

        * editing/ApplyStyleCommand.cpp:
        (WebCore::InlineRunToApplyStyle::InlineRunToApplyStyle):
        (WebCore::InlineRunToApplyStyle::startAndEndAreStillInDocument):
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
        (WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
        (WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange):
        (WebCore::ApplyStyleCommand::applyInlineStyleChange):
        * editing/ApplyStyleCommand.h:
        * editing/EditingStyle.h:
        (WebCore::StyleChange::StyleChange):

2012-12-11  Xianzhu Wang  <wangxianzhu@chromium.org>

        Incorrect position of layers for fixed position elements when page is scaled smaller than viewport
        https://bugs.webkit.org/show_bug.cgi?id=104294

        Reviewed by James Robinson.

        Fixed issue in scrollOffsetForFixedPosition when contentRect is smaller than visibleContentRect.
        This happens when a page originally bigger than viewport is scaled down to smaller than the viewport.

        Test: compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::fixedPositionScrollOffset): Moved common code in scrollOffsetForFixedPosition here. Fixed issue when contentsSize < visibleContentSize.
        (WebCore::scrollOffsetForFixedPosition):

2012-12-11  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=104725
        Crash in EventHandler::selectCursor() on Mac bots running 
        fast/events/mouse-cursor-image-set.html

        Reviewed by Tim Horton.

        https://bugs.webkit.org/show_bug.cgi?id=99493 enabled image-set for 
        the CSS cursor property. Most of the change is guarded behind #if 
        ENABLE(MOUSE_CURSOR_SCALE). However, image-set was still allowed to 
        parse for the cursor property as long as image-set is enabled 
        (which is the current state on the Mac). This would lead to an 
        inconsistent state where style information would reflect a world 
        where mouse cursor scaling is enabled even though nothing else on 
        the Mac would. 

        The parsing should also be guarded by the cursor scaling flag.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):

2012-12-11  Emil A Eklund  <eae@chromium.org>

        Clamp out-of-range numbers in CSS
        https://bugs.webkit.org/show_bug.cgi?id=102735

        Reviewed by Simon Fraser.

        Currently when a large number (outside of the supported range)
        is applied from a style rule or set from javascript using
        Element.style we check if it is within the supported range and
        set it to zero if it is not. This is incorrect and confusing.
        
        Change it to clamp values to the supported range. This matches
        the behavior in Gecko.

        Test: fast/css/large-numbers.html

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::computeLength):
        Change to clamp out-of-range values instead of interpreting them
        as zero.

2012-12-11  Nate Chapin  <japhet@chromium.org>

        Ensure ResourceRequests for main resources include fragment indentifiers when necessary,
        regressed by r137333.
        https://bugs.webkit.org/show_bug.cgi?id=104721

        Rubber-stamped by Dimitri Glazkov.

        No new tests.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::willSendRequest):

2012-12-11  Huang Dongsung  <luxtella@company100.net>

        [GTK] REGRESSION(r135620): Accelerated Compositing does not draw some pages.
        https://bugs.webkit.org/show_bug.cgi?id=104640

        Reviewed by Noam Rosenthal.

        After r135620, Accelerated Compositing does not draw some pages, because
        r135620 changes the tree-traversal behavior.  Before r135620, we
        returned early if TextureMapperLayer can not get TextureMapper from the
        root layer. However, after r135620, we run the tree-traversal even if
        TextureMapperLayer can not get TextureMapper.  This patch makes
        TextureMapperLayer return early like code before r135620.

        Covered by existing tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::flushCompositingState):

2012-12-11  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12771885> Support ruby-position: {before, after}
        https://bugs.webkit.org/show_bug.cgi?id=103569

        Reviewed by Anders Carlsson.

        Specified in <http://www.w3.org/TR/2011/WD-css3-ruby-20110630/#rubypos>, the ruby-position
        property takes four values: before, after, inter-character, and inline. This change adds
        support for the values before and after.

        Test: fast/ruby/position-after.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle ruby-position.
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue): Accept before and after as valid values for
        ruby-position.
        (WebCore::isKeywordPropertyID): Added ruby-position to the list of properties with keyword
        values.
        (WebCore::CSSParser::parseValue): Added ruby-position to the switch statement.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from RubyPosition.
        (WebCore::CSSPrimitiveValue::operator RubyPosition): Added mapping from CSSPrimitiveValue.
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty): Added ruby-position as an inherited property.
        * css/CSSPropertyNames.in: Added -webkit-ruby-position.
        * css/CSSValueKeywords.in: Added after and before.
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder): Added a handler for ruby-position.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty): Added ruby-position.
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Changed to choose which of
        hasAnnotationsBefore and hasAnnotationsAfter to set based on ruby position.
        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment): Changed to adjust only for
        ruby positioned before the base.
        (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment): Added adjustment for ruby
        positioned after the base.
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::layout): Account for ruby-position when positioning the ruby text
        relative to the base.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff): Made a ruby-position difference a layout difference.
        * rendering/style/RenderStyle.h: Added rubyPosition(), setRubyPosition(), and 
        initialRubyPosition().
        * rendering/style/RenderStyleConstants.h: Added the RubyPosition enum.
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialized for
        m_rubyPosition. Added copying the value of this member to the copy constructor.
        (WebCore::StyleRareInheritedData::operator==): Added comparison of m_rubyPosition.
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData): Added m_rubyPosition member variable.

2012-12-11  Michael Pruett  <michael@68k.org>

        [JSC] Add tests for explicit serialization values
        https://bugs.webkit.org/show_bug.cgi?id=104423

        Reviewed by Oliver Hunt.

        Add tests for serialization and deserialization mechanisms of
        the JSC implementation of SerializedScriptValue. Similar tests
        already exist for the V8 implementation.

        Test: platform/jsc/fast/storage/serialized-script-value.html

        * WebCore.exp.in:
        * testing/Internals.cpp:
        (WebCore::Internals::serializeObject):
        (WebCore::Internals::deserializeBuffer):

2012-12-11  Alexis Menard  <alexis@webkit.org>

        Cleanup: Use consistent naming in CSSParser when dealing with the forward slash operator.
        https://bugs.webkit.org/show_bug.cgi?id=104699

        Reviewed by Daniel Bates.

        http://trac.webkit.org/changeset/136525 added an helper function to
        check if a CSSParserValue is a forward slash operator.
        BorderImageParseContext is also dealing with the forward slash operator
        but its naming is inconsistent with isForwardSlashOperator(). This is
        fixed with this patch where BorderImageParseContext::{allowSlash,
        commitSlash}() is now replaced by BorderImageParseContext::{allowForwardSlashOperator,
        commitForwardSlashOperator}().

        No new tests : just a renaming, covered by existing tests..

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFillPosition): A little fixup on the way, use
        isForwardSlashOperator() instead of the current code here.
        (WebCore::BorderImageParseContext::BorderImageParseContext):
        (WebCore::BorderImageParseContext::allowForwardSlashOperator):
        (WebCore::BorderImageParseContext::commitImage):
        (WebCore::BorderImageParseContext::commitImageSlice):
        (WebCore::BorderImageParseContext::commitForwardSlashOperator):
        (WebCore::BorderImageParseContext::commitBorderWidth):
        (WebCore::BorderImageParseContext::commitBorderOutset):
        (WebCore::BorderImageParseContext::commitRepeat):
        (BorderImageParseContext):
        (WebCore::CSSParser::parseBorderImage):

2012-12-11  Nate Chapin  <japhet@chromium.org>

        cr-linux valgrind is showing leaks due to r137333.

        Rubber-stamped by Antti Koivisto.

        MainResourceLoader's destructor should call m_resource->removeClient(this) is m_resource is still non-null.
        The missing removeClient() call will leak the CachedResource.

        No new tests, should shut valgrind up.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::~MainResourceLoader):

2012-12-11  Andreas Kling  <akling@apple.com>

        REGRESSION(r133492): Heap-use-after-free in WebCore::Element::normalizeAttributes
        <http://webkit.org/b/104488>

        Reviewed by Antti Koivisto.

        Don't cache the AttrNodeList* in a local when iterating over an Element's Attr nodes since
        that pointer may go stale if JS runs in response to a DOMSubtreeModified event below Node::normalize().

        Test: fast/dom/normalize-attributes-mutation-event-crash.html

        * dom/Element.cpp:
        (WebCore::Element::normalizeAttributes):

2012-12-11  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>

        [GTK] Soup network logs are frequently interrupted by other logging messages
        https://bugs.webkit.org/show_bug.cgi?id=104668

        Reviewed by Martin Robinson.

        Set an external soup log printer that uses the WebKit logging
        infrastructure so that log messages are properly synchronized.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::soupLogPrinter):
        (WebCore):
        (WebCore::ensureSessionIsInitialized):

2012-12-11  Elliott Sprehn  <esprehn@chromium.org>

        Switch to new PseudoElement based :before and :after
        https://bugs.webkit.org/show_bug.cgi?id=104462

        Reviewed by Antti Koivisto.

        Switch to the new PseudoElement based generated content implementation
        that moves :before and :after into the DOM. This also switches to using
        the ComposedShadowTreeWalker for determining the siblings of PseudoElement's
        making the new generated content implementation support adding :before
        and :after into <input> elements.

        Tests: fast/css-generated-content/block-inside-inline.html
               fast/css-generated-content/box-orient.html

        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::ComposedShadowTreeWalker::pseudoAwareNextSibling):
        (WebCore):
        (WebCore::ComposedShadowTreeWalker::pseudoAwarePreviousSibling):
        (WebCore::ComposedShadowTreeWalker::traverseParent):
        * dom/ComposedShadowTreeWalker.h:
        (ComposedShadowTreeWalker):
        * dom/Element.cpp:
        (WebCore::Element::attach):
        (WebCore::Element::recalcStyle):
        * dom/Node.cpp:
        * dom/Node.h:
        (Node):
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):
        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
        * dom/Position.cpp:
        (WebCore::Position::Position):
        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
        * editing/visible_units.cpp:
        (WebCore::logicallyPreviousBox):
        (WebCore::logicallyNextBox):
        (WebCore::startPositionForLine):
        (WebCore::endPositionForLine):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::childShouldCreateRenderer):
        * page/DragController.cpp:
        (WebCore::DragController::draggableNode):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::styleDidChange):
        (WebCore::RenderBlock::splitBlocks):
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
        (WebCore::RenderBlock::createReplacementRunIn):
        (WebCore::RenderBlock::isSelectionRoot):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderButton.cpp:
        * rendering/RenderButton.h:
        (RenderButton):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::styleDidChange):
        (WebCore::RenderInline::addChildIgnoringContinuation):
        (WebCore::RenderInline::splitInlines):
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::updateMarkerLocation):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createVisiblePosition):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::nonPseudoNode):
        (RenderObject):
        (WebCore::RenderObject::clearNode):
        (WebCore::RenderObject::generatingNode):
        * rendering/RenderObjectChildList.cpp:
        * rendering/RenderObjectChildList.h:
        (RenderObjectChildList):
        * rendering/RenderRubyText.cpp:
        * rendering/RenderRubyText.h:
        (RenderRubyText):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::styleDidChange):
        * rendering/RenderTableRow.h:
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::destroy):

2012-12-11  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Clean up unused defaultViewportArguments in RenderThemeBlackBerry.cpp
        https://bugs.webkit.org/show_bug.cgi?id=104683

        Reviewed by Rob Buis.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::determineFullScreenMultiplier):

2012-12-11  Nate Chapin  <japhet@chromium.org>

        Route main resource loads through the memory cache.
        https://bugs.webkit.org/show_bug.cgi?id=49246

        Reviewed by Antti Koivisto.

        Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
        The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
        In several places, the MainResourceLoader's SubresourceLoader is treated as special.

        No new tests, as this is primarily a refactor. A couple of expected results changed slightly.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::setRequest):
        (WebCore::DocumentLoader::subresource):
        (WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
            needs special handling in certain cases, track it separately from the real SubresourceLoaders.
        (WebCore::DocumentLoader::removeSubresourceLoader):
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::cancel):
        (WebCore::MainResourceLoader::clearResource):
        (WebCore):
        (WebCore::MainResourceLoader::frameLoader):
        (WebCore::MainResourceLoader::request):
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::resourceData):
        (WebCore::MainResourceLoader::redirectReceived):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::continueAfterContentPolicy):
        (WebCore::MainResourceLoader::responseReceived):
        (WebCore::MainResourceLoader::dataReceived):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::notifyFinished):
        (WebCore::MainResourceLoader::reportMemoryUsage):
        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
        (WebCore::MainResourceLoader::load):
        (WebCore::MainResourceLoader::setDefersLoading):
        (WebCore::MainResourceLoader::defersLoading):
        (WebCore::MainResourceLoader::setShouldBufferData):
        (WebCore::MainResourceLoader::loader):
        (WebCore::MainResourceLoader::identifier):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):
        (WebCore::MainResourceLoader::documentLoader):
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::willSendRequest):
        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::defersLoading):
        (WebCore::ResourceLoader::cancelled):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
        * loader/mac/DocumentLoaderMac.cpp:
        (WebCore::DocumentLoader::schedule):
        (WebCore::DocumentLoader::unschedule):

2012-12-11  Aaron Colwell  <acolwell@chromium.org>

        Update MediaSource to allow append() calls in "ended" state.
        https://bugs.webkit.org/show_bug.cgi?id=104581

        Reviewed by Eric Carlson.

        Updated append and setTimestampOffset to allow appending in the "ended" readyState. An append() call
        in the "ended" state now triggers a transition to the "open" state and allows the append to succeed.

        Tests: http/tests/media/media-source/video-media-source-append-in-ended-state.html
               http/tests/media/media-source/video-media-source-append-with-offset-in-ended-state.html
               http/tests/media/media-source/video-media-source-zero-byte-append-in-ended-state.html

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::append):
        (WebCore::MediaSource::setTimestampOffset):

2012-12-11  Robert Hogan  <robert@webkit.org>

        REGRESSION(r121789): Text not wrapping in presence of floating objects
        https://bugs.webkit.org/show_bug.cgi?id=101803

        Reviewed by David Hyatt.

        When determining if a line needs to offset to avoid any floats use RenderBlock::lineHeight() 
        to estimate the height of the line. If the container has floats stacked up with different widths
        that straddle the line, using a height of zero will make the first line think it has
        more width available than it actually does and it will end up extruding from its container.
        
        The logic for finding the offset of inline blocks and images needs to use a similar heuristic.
        So nextLineBreak() now updates the available width if it encounters a replaced element (e.g. inline block,
        image) at the start of a line, using the height of the element to decide which floats to avoid. 
        RenderBlock::computeInlineDirectionPositionsForLine() does the same thing when laying out the line.

        Tests: fast/block/float/floats-offset-image-quirk-lineheight.html
               fast/block/float/floats-offset-image-quirk.html
               fast/block/float/floats-offset-image-strict-lineheight.html
               fast/block/float/floats-offset-image-strict.html
               fast/block/float/floats-offset-inline-block-quirk-lineheight.html
               fast/block/float/floats-offset-inline-block-strict-lineheight.html
               fast/block/float/floats-offset-linebox-contain-block.html
               fast/block/float/floats-offset-linebox-contain-inline.html
               fast/block/float/floats-wrap-inside-inline-006.html
               fast/block/float/floats-wrap-inside-inline-007.html

        * rendering/RenderBlockLineLayout.cpp:
        (LineWidth):
        (WebCore::logicalHeightForLine):
            This method needs to cope with the quirk where an image alone on a line will get its descent stripped away so
            ignore the height of the line and use the height of the image in that case.
        (WebCore::LineWidth::updateAvailableWidth):
        (WebCore::updateLogicalInlinePositions):
        (WebCore):
        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
        (WebCore::RenderBlock::computeInlineDirectionPositionsForSegment):
        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):

2012-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Install GObject DOM bindings headers in its own directory
        https://bugs.webkit.org/show_bug.cgi?id=104663

        Reviewed by Gustavo Noronha Silva.

        Move the headers from webkit to webkitdom directory.

        * bindings/gobject/GNUmakefile.am:
        * bindings/gobject/WebKitDOMBinding.h:
        * bindings/gobject/WebKitDOMCustom.h:
        * bindings/gobject/WebKitDOMEventTarget.h:
        * bindings/gobject/WebKitDOMEventTargetPrivate.h:
        * bindings/gobject/WebKitDOMObject.h:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (Generate):
        (WriteData):
        * bindings/scripts/gobject-generate-headers.pl:
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:

2012-12-11  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Clean up unused interfaces in PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=104674

        Reviewed by Darin Fisher.

        Part of a refactoring series. See tracking bug 82948. Also, there
        were some function declarations that were supposed to be removed
        as part of bug 102699 but got left out of the final patch.

        * platform/chromium/PlatformSupport.h:
        (WebCore):
        (PlatformSupport):

2012-12-11  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [GTK] Update GraphicsLayerClutter
        https://bugs.webkit.org/show_bug.cgi?id=92045

        Reviewed by Gustavo Noronha Silva.

        Add more methods to GraphicsLayerClutter in order to run CSS 3D transforms 
        by using GraphicsLayerActor.

        No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
        compositing and 3D transforms.

        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore):
        (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
        (WebCore::idleDestroy):
        (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
        (WebCore::GraphicsLayerClutter::setName):
        (WebCore::GraphicsLayerClutter::platformLayer): Returns the platform layer(ClutterAcotr).
        (WebCore::GraphicsLayerClutter::setNeedsDisplay): Update the display.
        (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect): Update part of the Display.
        (WebCore::GraphicsLayerClutter::setAnchorPoint):
        (WebCore::GraphicsLayerClutter::setPosition):
        (WebCore::GraphicsLayerClutter::setSize):
        (WebCore::GraphicsLayerClutter::setTransform):
        (WebCore::GraphicsLayerClutter::setDrawsContent):
        (WebCore::GraphicsLayerClutter::setParent):
        (WebCore::GraphicsLayerClutter::setChildren):
        (WebCore::GraphicsLayerClutter::addChild):
        (WebCore::GraphicsLayerClutter::addChildAtIndex):
        (WebCore::GraphicsLayerClutter::addChildBelow):
        (WebCore::GraphicsLayerClutter::addChildAbove):
        (WebCore::GraphicsLayerClutter::replaceChild):
        (WebCore::GraphicsLayerClutter::removeFromParent):
        (WebCore::GraphicsLayerClutter::platformClutterLayerPaintContents):
        (WebCore::GraphicsLayerClutter::platformClutterLayerAnimationStarted):
        (WebCore::GraphicsLayerClutter::repaintLayerDirtyRects):
        (WebCore::GraphicsLayerClutter::computePositionRelativeToBase):
        (WebCore::GraphicsLayerClutter::flushCompositingState): Synchronize the corresponding Actors with the current 
        compositing states of this GraphicsLayer and its child layers. 
        (WebCore::GraphicsLayerClutter::recursiveCommitChanges):
        (WebCore::GraphicsLayerClutter::flushCompositingStateForThisLayerOnly): Commit batched changes non-recursively. 
        (WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers): Reset layer changes after we recurse on children.
        (WebCore::GraphicsLayerClutter::noteSublayersChanged):
        (WebCore::GraphicsLayerClutter::noteLayerPropertyChanged):
        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers): Commit layer changes before we recurse on children.
        (WebCore::GraphicsLayerClutter::updateGeometry): Updated the position and size of the Actor.
        (WebCore::GraphicsLayerClutter::updateSublayerList): Updated the list of child Actors. 
        (WebCore::GraphicsLayerClutter::updateLayerNames):
        (WebCore::GraphicsLayerClutter::updateTransform):
        (WebCore::GraphicsLayerClutter::updateLayerDrawsContent):
        (WebCore::GraphicsLayerClutter::layerForSuperlayer):
        * platform/graphics/clutter/GraphicsLayerClutter.h:
        (WebCore):
        (WebCore::GraphicsLayerClutter::primaryLayer):
        (GraphicsLayerClutter):

2012-12-11  Jessie Berlin  <jberlin@apple.com>

        Revert incorrect build fix.

        * WebCore.exp.in:

2012-12-11  Jessie Berlin  <jberlin@apple.com>

        Fix the Mac build after r137261

        * WebCore.exp.in:

2012-12-11  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [GTK] Add GraphicsLayerActor
        https://bugs.webkit.org/show_bug.cgi?id=91940

        Reviewed by Gustavo Noronha Silva.

        GraphicsLayerActor, which is a new ClutterActor, represents a node in the GPU-renderable layer tree
        when accelerated compositing is enabled with Clutter as acceleration backend.
        This patch allows to support basic features of CSS 3D Transforms.

        No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
        compositing and 3D transforms.

        * GNUmakefile.list.am:
        * platform/graphics/clutter/GraphicsLayerActor.cpp: Added.
        (_GraphicsLayerActorPrivate):
        (graphics_layer_actor_class_init): GObject configuration of a new Clutter Actor.
        (graphics_layer_actor_init): Initialization of the private data of this actor.
        (graphicsLayerActorSetProperty): GObject property setter.
        (graphicsLayerActorGetProperty): GObject property getter.
        (graphicsLayerActorDispose): Called to drop all references to other objects.
        (graphicsLayerActorAllocate):  Called to set the coordinates of an actor.
        (graphicsLayerActorApplyTransform): Applying the transformation to an actor before painting it.
        (graphicsLayerActorPaint): Called to paint the actor.
        (graphicsLayerActorDraw): Called each time a ClutterCairoTexture has been invalidated.
        (graphicsLayerActorAdded): Called each time an actor has been added to container.
        (graphicsLayerActorRemoved): Called each time an actor is removed from container.
        (graphicsLayerActorNew): Create a specific layer type of GraphicsLayerActor object.
        (graphicsLayerActorNewWithClient): Create a specific layer type of GraphicsLayerActor object with 
        its PlatformClutterClientLayer.
        (graphicsLayerActorSetClient): Added setter to set the PlatformClutterClientLayer.
        (graphicsLayerActorGetClient): Added getter to get the PlatformClutterClientLayer.
        (graphicsLayerActorRemoveAll): Remove all child actors.
        (graphicsLayerUpdateTexture): Create a ClutterCairoTexture.
        (graphicsLayerActorGetSurface): Added setter to set a cairo_surface_t.
        (graphicsLayerActorSetSurface): Added getter to get the cairo_surface_t.
        (graphicsLayerActorInvalidateRectangle):
        (graphicsLayerActorSetTransform): Set a CoglMatrix to apply matrix transform.
        (graphicsLayerActorSetAnchorPoint):
        (graphicsLayerActorGetAnchorPoint):
        (graphicsLayerActorSetScrollPosition):
        (graphicsLayerActorGetnChildren):
        (graphicsLayerActorReplaceSublayer):
        (graphicsLayerActorInsertSublayer):
        (graphicsLayerActorSetSublayers):
        (graphicsLayerActorGetLayerType):
        (graphicsLayerActorSetLayerType):
        (graphicsLayerActorSetTranslateX):
        (graphicsLayerActorGetTranslateX):
        (graphicsLayerActorSetTranslateY):
        (graphicsLayerActorGetTranslateY):
        (graphicsLayerActorSetDrawsContent): Added setter to paint content inside a layer.
        (graphicsLayerActorGetDrawsContent): Added getter to get the value of the drawsContent. 
        * platform/graphics/clutter/GraphicsLayerActor.h: Added.
        (_GraphicsLayerActor):
        (_GraphicsLayerActorClass):
        * platform/graphics/clutter/GraphicsLayerClutter.h:
        (WebCore):

2012-12-11  Mike West  <mkwst@chromium.org>

        Web Inspector: ConsoleTypes should not expose MessageType - it should be private to inspector.
        https://bugs.webkit.org/show_bug.cgi?id=66371

        Reviewed by Pavel Feldman.

        We can simplify console message generation a bit, as nothing outside the
        Console object itself will generate messages of any type other than
        LogMessageType. This patch refactors the externally-facing API endpoints
        on ScriptExecutionContext and Console to drop the MessageType parameter,
        moves the MessageType enum into a new InspectorConsoleTypes.h header,
        and updates all the call sites (and ChromeClients) to drop the parameter
        from their interfaces.

        As a temporary bandage for ports using this interface, this patch
        includes aliases for the new methods that retain the old interface.
        I'll remove them in a future patch.

        Here, we only refactor an internal interface. No tests should break.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
            We added a new file! OMG!
        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::looping):
        (WebCore::AudioBufferSourceNode::setLooping):
        * Modules/webdatabase/AbstractDatabase.cpp:
        (WebCore::AbstractDatabase::logErrorMessage):
        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        (WebCore::WebSocket::send):
        (WebCore::WebSocket::close):
        (WebCore::WebSocket::setBinaryType):
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::fail):
        (WebCore::WebSocketChannel::didFailSocketStream):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
        * css/MediaList.cpp:
        (WebCore::addResolutionWarningMessageToConsole):
        * dom/Document.cpp:
        (WebCore::Document::logExceptionToConsole):
        (WebCore::Document::processHttpEquiv):
        (WebCore::Document::addMessage):
        * dom/Document.h:
        (Document):
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::notifyFinished):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask):
        (WebCore::ScriptExecutionContext::addConsoleMessage):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create):
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
        * dom/ViewportArguments.cpp:
        (WebCore::reportViewportWarning):
        * fileapi/WebKitBlobBuilder.cpp:
        (WebCore::BlobBuilder::append):
        * html/HTMLFormControlElement.cpp:
        (WebCore::shouldAutofocus):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::validateInteractively):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseAttribute):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::canLoadUrl):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::getImageData):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::printWarningToConsole):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::init):
        (WebCore::XSSAuditor::filterToken):
        * inspector/ConsoleAPITypes.h: Added.
        (WebCore):
        * inspector/ConsoleMessage.h:
        * inspector/InspectorConsoleAgent.h:
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        * inspector/InspectorInstrumentation.h:
        * inspector/InspectorProfilerAgent.cpp:
        * loader/EmptyClients.h:
        (WebCore::EmptyChromeClient::addMessageToConsole):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::reportLocalLoadFailed):
        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::notifyFinished):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
        * loader/MixedContentChecker.cpp:
        (WebCore::MixedContentChecker::logWarning):
        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::abort):
        (WebCore::ApplicationCacheGroup::didReceiveResponse):
        (WebCore::ApplicationCacheGroup::didFinishLoading):
        (WebCore::ApplicationCacheGroup::didFail):
        (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
        * page/ChromeClient.h:
        (ChromeClient):
            Drop LogMessageType from everywhere.
        * page/Console.cpp:
        (WebCore::Console::addMessage):
        (WebCore::internalAddMessage):
        (WebCore::Console::error):
        (WebCore::Console::log):
        (WebCore::Console::warn):
        (WebCore::Console::dir):
        (WebCore::Console::dirxml):
        (WebCore::Console::clear):
        (WebCore::Console::trace):
        (WebCore::Console::assertCondition):
        * page/Console.h:
        (Console):
            Create a new internalAddMessage that's used for the various
            Console message types. Everything else routes through
            ::addMessage.
        * page/ConsoleTypes.h:
            Drop MessageTypes from this file, add it to ConsoleAPIType.h
        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::logToConsole):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
        (WebCore::DOMWindow::printErrorMessage):
        * page/EventSource.cpp:
        (WebCore::EventSource::didReceiveResponse):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::reportMessage):
        * workers/DefaultSharedWorkerRepository.cpp:
        (SharedWorkerProxy):
        (WebCore::postConsoleMessageTask):
        (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
        * workers/SharedWorkerContext.cpp:
        (WebCore::SharedWorkerContext::logExceptionToConsole):
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::addMessage):
        (WebCore::WorkerContext::addMessageToWorkerConsole):
        * workers/WorkerContext.h:
        (WorkerContext):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::postConsoleMessageTask):
        (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
        * workers/WorkerMessagingProxy.h:
        (WorkerMessagingProxy):
        * workers/WorkerReportingProxy.h:
        (WorkerReportingProxy):
        * xml/XMLHttpRequest.cpp:
        (WebCore::logConsoleError):
        (WebCore::XMLHttpRequest::send):
        * xml/XSLTProcessorLibxslt.cpp:
        (WebCore::XSLTProcessor::parseErrorFunc):
        * xml/XSLTProcessorQt.cpp:
        (WebCore::XSLTMessageHandler::handleMessage):
            Drop LogMessageType from everywhere.

2012-12-11  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Unreviewed, rolling out r137313 and r137316 because they broke the system-sqlite build.

        * WebCore.pri:

2012-12-11  Simon Hausmann  <simon.hausmann@digia.com>

        Unreviewed Qt build fix: Don't error out if SQLITE3SRCDIR isn't set but
        we have a system sqlite to use.

        * WebCore.pri:

2012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>

        [Qt] make qtbase source requirement explicit

        Reviewed by Simon Hausmann.

        getting rid of QT.<module>.sources references, as they don't go well
        with real modularization.

        * WebCore.pri:

2012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>

        [Qt] move SQLITE3SRCDIR assignment to only use site

        Reviewed by Simon Hausmann.

        Target.pri includes WebCore.pri the almost first thing, so that is
        covered as well.

        * WebCore.pri:

2012-12-11  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Timeline: rename "Parse" to "Parse HTML".
        https://bugs.webkit.org/show_bug.cgi?id=104639

        Reviewed by Yury Semikhatsky.

        "Parse" sounds ambiguous, it could mean JSON.parse() or Date.parse().
        "Parse HTML" is a much more clear record description.

        * inspector/front-end/TimelinePresentationModel.js: Fix text.

2012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>

        [Qt] change setup of QMAKE_MOC

        Reviewed by Simon Hausmann.

        don't load(moc) explicitly - turns out that this breaks
        debug_and_release builds (the feature does not like being loaded before
        default_post has been loaded).
        so instead just do a minimal call to find the moc executable.

        as it's in fact only two files which need it, so de-centralize this call
        for the sake of saving some cpu cycles spent in qmake.

        * DerivedSources.pri:

2012-12-11  Alexander Pavlov  <apavlov@chromium.org>

        REGRESSION(r136948): inspector/styles/import-pseudoclass-crash.html hits an assertion
        https://bugs.webkit.org/show_bug.cgi?id=104473

        Reviewed by Vsevolod Vlasov.

        Avoid building full CSSOM wrappers up front during rule matching.
        Instead, move this code down to the point where these wrappers are actually needed.

        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::willMatchRule):
        (WebCore::InspectorCSSAgent::willProcessRule):
        * inspector/InspectorCSSAgent.h:
        (WebCore):
        (InspectorCSSAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
        (WebCore::InspectorInstrumentation::willProcessRuleImpl):

2012-12-11  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        [GStreamer] Avoid linking to GStreamer video libraries if only using ENABLE_AUDIO
        https://bugs.webkit.org/show_bug.cgi?id=104590

        Reviewed by Philippe Normand.

        Make getVideoSizeAndFormatFromCaps() only available when ENABLE_VIDEO is set.

        No new tests, no change in behavior.

        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        * platform/graphics/gstreamer/GStreamerVersioning.h:

2012-12-11  Zeno Albisser  <zeno@webkit.org>

        [Qt][Mac] Fix transparency for WebGL content.
        https://bugs.webkit.org/show_bug.cgi?id=104659

        When drawing a texture to the TextureMapper the flag SupportsBlending
        must be passed in order to allow for transparent webgl content.
        We are doing this for GLX already, but the flag was still missing
        in GraphicsSurfaceMac.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):

2012-12-11  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Duplicate emulated touch events in iframe
        https://bugs.webkit.org/show_bug.cgi?id=104653

        Reviewed by Vsevolod Vlasov.

        Synthetic touch events should be dispatched only on the frame containing its target, not on its ancestor frames,
        up to the top frame.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
          Do not dispatch a synthetic touch event on the current frame if its target is in a subframe.

2012-12-11  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Regression(r137211) WebGL is broken with NVIDIA Drivers.
        https://bugs.webkit.org/show_bug.cgi?id=104652.

        Reviewed by Kenneth Rohde Christiansen.

        Reverting some of the changes from r137211, as it causes regressions
        on NVIDIA drivers.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::copyToGraphicsSurface):
        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::updateContents):
        * platform/graphics/opengl/GLPlatformSurface.h:
        (GLPlatformSurface):

2012-12-11  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: follow up to r136974: do not process shortcuts while editing
        https://bugs.webkit.org/show_bug.cgi?id=104440

        Reviewed by Alexander Pavlov.

        Currently, typing H while editing node results in corresponding shortcut processing.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline):
        (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
        (WebInspector.ElementsTreeElement.prototype.onenter):
        (WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
        (WebInspector.ElementsTreeElement.prototype.dispose):
        (WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
        (WebInspector.ElementsTreeElement.prototype._editingCancelled):

2012-12-11  Ken Kania  <kkania@chromium.org>

        [Inspector] Add command for dispatching mouse events.
        https://bugs.webkit.org/show_bug.cgi?id=104074

        Reviewed by Yury Semikhatsky.

        Platform mouse event coordinates are relative to the containing window,
        but the inspector command assumes they follow standard web coordinates,
        where the origin is at the top left of the page and y increases as you
        go down. We convert the coordinates to the window before constructing
        the event. This also fixes the fact that some platforms have flipped
        coordinate systems.
        Also, update dispatchKeyEvent test to follow simpler dispatchMouseEvent
        test.

        Test: inspector-protocol/input/dispatchMouseEvent.html

        * inspector/Inspector.json:
        * inspector/InspectorInputAgent.cpp:
        (WebCore::InspectorInputAgent::dispatchMouseEvent):
        (WebCore):
        * inspector/InspectorInputAgent.h:
        (InspectorInputAgent):

2012-12-11  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: follow up to r137283: reduce inspector toolbar spacing 1px.

        * inspector/front-end/inspector.css:
        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):

2012-12-11  Kent Tamura  <tkent@chromium.org>

        Refactoring: Rename Element::shouldMatchReadOnlySelector and shouldMatchReadWriteSelector
        https://bugs.webkit.org/show_bug.cgi?id=104651

        Reviewed by Kentaro Hara.

        ':read-only' and ':read-write' are pseudo classes. They are not
        selectors in the context of these functions.  This patch rename them so
        that they contain 'pseudo class,' and make them match to an existing
        function, matchesFocusPseudoClass.

        No new tests. This shouldn't make behavior changes.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):
        * dom/Element.cpp:
        (WebCore::Element::recalcStyle):
        (WebCore::Element::matchesReadOnlyPseudoClass):
        (WebCore::Element::matchesReadWritePseudoClass):
        * dom/Element.h:
        (Element):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::matchesReadOnlyPseudoClass):
        (WebCore::HTMLInputElement::matchesReadWritePseudoClass):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass):
        (WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass):
        * html/HTMLTextAreaElement.h:
        (HTMLTextAreaElement):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::matchesReadOnlyPseudoClass):
        (WebCore::SliderThumbElement::matchesReadWritePseudoClass):
        * html/shadow/SliderThumbElement.h:
        (SliderThumbElement):
        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::matchesReadOnlyPseudoClass):
        (WebCore::SpinButtonElement::matchesReadWritePseudoClass):
        * html/shadow/SpinButtonElement.h:
        (SpinButtonElement):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isReadOnlyControl):

2012-12-11  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: add more horizontal spacing for toolbar items in docked to bottom mode
        https://bugs.webkit.org/show_bug.cgi?id=104655

        Reviewed by Alexander Pavlov.

        Drive-by increase height to 26px.

        * inspector/front-end/inspector.css:
        (#toolbar):
        (body:not(.show-toolbar-icons) .toolbar-item):
        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
        (body.show-toolbar-icons.dock-to-bottom .toolbar-item.toggleable):
        (#toolbar-dropdown-arrow):
        (#main):

2012-12-11  Keishi Hattori  <keishi@webkit.org>

        Use histogram enumeration in Calendar Picker so we can get stats on UI usage
        https://bugs.webkit.org/show_bug.cgi?id=104646

        Reviewed by Kent Tamura.

        Use histogram support to get stats on the calendar picker so we can improve the UI.

        No new tests.

        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker):
        (CalendarPicker.prototype.recordAction): Records action to histogram.
        (CalendarPicker.prototype.handleToday): Record action.
        (CalendarPicker.prototype.handleClear): Ditto.
        (YearMonthController.prototype._showPopup): Ditto.
        (YearMonthController.prototype._handleYearMonthChange): Ditto.
        (YearMonthController.prototype._handleButtonClick): Ditto.
        (DaysTable.prototype._handleDayClick): Ditto.
        * page/PagePopupController.cpp:
        (WebCore::PagePopupController::histogramEnumeration):
        (WebCore):
        * page/PagePopupController.h:
        (PagePopupController):
        * page/PagePopupController.idl: Added histogramEnumeration.

2012-12-11  Hajime Morrita  <morrita@google.com>

        IsActiveFlag, IsHoverFlag, InActiveChainFlag can be unified.
        https://bugs.webkit.org/show_bug.cgi?id=103697

        Reviewed by Ryosuke Niwa.

        To save two more NodeFlags bits, this patch inroduces
        UserActionElementSet to get IsLinkFlag, IsHoverFlag,
        InActiveChainFlag together. These three old flags are replaced by
        UserActionElementSet::ElementFlags and UserActionElementSet
        collection which tracks elements which are flagged with one of
        a ElementFlags.

        When marking an element as active for example, WebKit sets
        UserActionElementSet::IsActiveFlag to the element and store it
        into corresponding element set of the document. This set maintains
        marked elements and corresponding flags for each elements.

        UserActionElementSet can be seen as a yet another rare data for
        these flags. However, the following characteristics of these flags
        make adding a new data structure on Document an attractive
        alternative:

        - UserActionElementSet is maintained for each Document instead of a
          global collecton. This fits element lifetime better.

        - The number of elements which have these flags is generally
          small, and a group of elements for each flag is largely overlapped
          due to its nature. This property keeps the set small, and lets
          flag retrieval efficient. On majority of the elements, all these
          flags are false thus the check is done by just checking
          IsInUserActionFlag.

        As a bonus, isFocused flag, which was on NodeRareData, is also moved to this model.

        No new tests, covered by existing test.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp:
        (WebCore::Document::removedLastRef):
        (WebCore::Document::updateHoverActiveState):
        * dom/Document.h:
        (WebCore::Document::userActionElements): Added.
        (Document):
        * dom/Node.cpp:
        (WebCore::Node::detach):
        * dom/Node.h:
        (WebCore):
        (WebCore::Node::isUserActionElement): Added.
        (WebCore::Node::setUserActionElement): Added.
        (Node):
        (WebCore::Node::active): Switched to UserActionElementSet.
        (WebCore::Node::inActiveChain): Switched to UserActionElementSet.
        (WebCore::Node::hovered): Switched to UserActionElementSet.
        (WebCore::Node::focused): Switched to UserActionElementSet.
        (WebCore::Node::setFocus): Switched to UserActionElementSet.
        (WebCore::Node::setActive): Switched to UserActionElementSet.
        (WebCore::Node::setHovered): Switched to UserActionElementSet.
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        * dom/UserActionElementSet.cpp: Added.
        (WebCore):
        (WebCore::UserActionElementSet::instanceFor):
        (WebCore::UserActionElementSet::UserActionElementSet):
        (WebCore::UserActionElementSet::~UserActionElementSet):
        (WebCore::UserActionElementSet::didDetach):
        (WebCore::UserActionElementSet::documentDidRemoveLastRef):
        (WebCore::UserActionElementSet::hasFlags):
        (WebCore::UserActionElementSet::setFlags):
        (WebCore::UserActionElementSet::clearFlags):
        * dom/UserActionElementSet.h: Added.
        (WebCore):
        (UserActionElementSet):
        (WebCore::UserActionElementSet::create):
        (WebCore::UserActionElementSet::isFocused):
        (WebCore::UserActionElementSet::setFocused):
        (WebCore::UserActionElementSet::isActive):
        (WebCore::UserActionElementSet::setActive):
        (WebCore::UserActionElementSet::isInActiveChain):
        (WebCore::UserActionElementSet::setInActiveChain):
        (WebCore::UserActionElementSet::isHovered):
        (WebCore::UserActionElementSet::setHovered):
        (WebCore::UserActionElementSet::setFlags):

2012-12-11  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Disable focus navigation by right/left keys in RTL locales
        https://bugs.webkit.org/show_bug.cgi?id=104644

        Reviewed by Hajime Morita.

        Pressing the left key should focus on the field at the left of the
        current focused field, and pressing the right key should focus on the
        field at the right of the current focused field. This works well in LTR
        locales.
        In RTL locale, the current code doesn't work. We disable this behavior
        for RTL locales for now. This issue will be handled in Bug 104650.

        No new tests. Update some *-multiple-fields tests for new behavior.

        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
        If this sub-field is in an RTL locale, we don't change focus.
        (WebCore::DateTimeFieldElement::localeForOwner):
        Moved from DateTimeNumericFieldElement.
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement): Remove isRTL, add localeForOwner.
        * html/shadow/DateTimeNumericFieldElement.cpp: Remove localeForOwner.
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement): Ditto.

2012-12-11  Pavel Podivilov  <podivilov@google.com>

        Remove pango files deleted at r137263 form WebCore.gypi.

        Unreviewed, gardening.

        * WebCore.gypi:

2012-12-11  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Feature enabling/disabling should be possible through build-webkit
        https://bugs.webkit.org/show_bug.cgi?id=99271

        Reviewed by Gustavo Noronha Silva.

        Move the contents of GNUmakefile.features.am into GNUmakefile.features.am.in.
        The former is then copied from the latter but then appropriately modified if
        the build-webkit script overrides any of the default feature defines.

        No new tests - no new testable functionality.

        * GNUmakefile.features.am.in: Renamed from Source/WebCore/GNUmakefile.features.am.

2012-12-11  Jinwoo Song  <jinwoo7.song@samsung.com>

        [QT][EFL][WK2] Move the GraphicsSurfaceGLX.cpp to common place
        https://bugs.webkit.org/show_bug.cgi?id=104433

        Reviewed by Kenneth Rohde Christiansen.

        QT and EFL are commonly using the GraphicsSurfaceGLX.cpp and
        it looks better to move this file to /glx directory.

        * PlatformEfl.cmake:
        * Target.pri:
        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp.
        (WebCore):
        (OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::getXWindow):
        (WebCore::OffScreenRootWindow::display):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
        (WebCore::GraphicsSurfacePrivate::display):
        (WebCore::GraphicsSurfacePrivate::glxPixmap):
        (WebCore::GraphicsSurfacePrivate::size):
        (WebCore::resolveGLMethods):
        (WebCore::GraphicsSurface::platformExport):
        (WebCore::GraphicsSurface::platformGetTextureID):
        (WebCore::GraphicsSurface::platformCopyToGLTexture):
        (WebCore::GraphicsSurface::platformCopyFromTexture):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        (WebCore::GraphicsSurface::platformFrontBuffer):
        (WebCore::GraphicsSurface::platformSwapBuffers):
        (WebCore::GraphicsSurface::platformSize):
        (WebCore::GraphicsSurface::platformCreate):
        (WebCore::GraphicsSurface::platformImport):
        (WebCore::GraphicsSurface::platformLock):
        (WebCore::GraphicsSurface::platformUnlock):
        (WebCore::GraphicsSurface::platformDestroy):
        (WebCore::GraphicsSurface::platformBeginPaint):
        (WebCore::GraphicsSurface::createReadOnlyImage):

2012-12-11  Mike West  <mkwst@chromium.org>

        Web Inspector: Evaluate private browsing mode's effect on console messages.
        https://bugs.webkit.org/show_bug.cgi?id=104383

        Reviewed by Pavel Feldman.

        Two sets of console messages are currently gated on private browsing
        mode being inactive. This patch centralizes the private browsing checks
        in order to apply them equally to all console messages, and changes the
        granularity at which they act.

        The current checks block the console messages entirely. This patch
        blocks only notifications to ChromeClient and ensures that messages
        won't be passed to printf where they might end up in system logs.
        Notifications to InspectorInstrumentation seem safe; so far as I can
        tell, there's no compelling reason to prevent console-based debugging
        in private browsing mode. This patch excludes those calls from the
        private browsing check.

        Test: inspector/console/clients-ignored-in-privatebrowsing.html

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
            Drop the private browsing check.
        * page/Console.cpp:
        (WebCore::Console::addMessage):
            Add private browsing checks to the two ::addMessage variants that
            do real work. Ensure that calls to printf and notifications to
            ChromeClients are gated on these checks, but always allow
            notifications to InspectorInstrumentation.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::printErrorMessage):
            Drop the private browsing check.

2012-12-10  Dan Winship  <danw@gnome.org>

        [Soup] Fix spelling of "initiating" in API.

        Reviewed by Martin Robinson.

        No new tests (just internal renaming).

        * platform/network/ResourceHandle.h:
        (ResourceHandle):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore):
        (WebCore::setSoupRequestInitiatingPageIDFromNetworkingContext):
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::getSoupRequestInitiatingPageID):

2012-12-10  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove the Pango backend
        https://bugs.webkit.org/show_bug.cgi?id=104569

        Reviewed by Daniel Bates.

        Remove the Pango backend entirely. The EFL build has no support for it and it's
        not really maintained enough for the GTK+ port, now that HarfbuzzNG shapes complex
        text when Freetype is the active text rendering backend.

        No new tests. This does not change behavior.

        * GNUmakefile.am: Remove Pango backend options and move Freetype options to the common list.
        * GNUmakefile.list.am: Ditto.
        * platform/graphics/FontPlatformData.h:
        * platform/graphics/pango/FontCachePango.cpp: Removed.
        * platform/graphics/pango/FontCustomPlatformDataPango.cpp: Removed.
        * platform/graphics/pango/FontPango.cpp: Removed.
        * platform/graphics/pango/FontPlatformData.h: Removed.
        * platform/graphics/pango/FontPlatformDataPango.cpp: Removed.
        * platform/graphics/pango/GlyphPageTreeNodePango.cpp: Removed.
        * platform/graphics/pango/PangoUtilities.cpp: Removed.
        * platform/graphics/pango/PangoUtilities.h: Removed.
        * platform/graphics/pango/SimpleFontDataPango.cpp: Removed.

2012-12-11  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [WebGL] prevent GC from collecting WebGLObject instances currently bound to the context state
        https://bugs.webkit.org/show_bug.cgi?id=104119

        Reviewed by Pavel Feldman.

        This is to prevent GC from collecting resources bound to a context (WebGL or 2D).
        Otherwise, for example in WebGL, subsequent calls to gl.getParameter() may return a recently created
        instance that is no longer bound to a Resource object (thus, no history to replay it later).

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-12-11  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed build fix after r137243.

        * bindings/gobject/GNUmakefile.am:

2012-12-10  No'am Rosenthal  <noam@webkit.org>

        REGRESSION (r137006): CSS clip on solid color composited div broken
        https://bugs.webkit.org/show_bug.cgi?id=104604

        Reviewed by Simon Fraser.

        Disable direct compositing of background color for clipping layers.

        Test: compositing/geometry/clip-inside.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::supportsDirectBoxDecorationsComposition):
            Never allow direct background composition if there is a clip.

2012-12-10  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r137215): WebKit stretches and shrinks a part of screen on scroll
        https://bugs.webkit.org/show_bug.cgi?id=104626

        Reviewed by Beth Dakin.

        r137215 removed a compositing layer repaint on size changes. However, there
        are cases where the compositing code constrains layer size by clipping
        with the viewport and a clipping ancestor. When that happens, we must
        invalidate the layer on a size change to avoid showing stretched or
        shrunken content.

        Test: compositing/repaint/clipped-layer-size-change.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        (WebCore::RenderLayerBacking::updateCompositedBounds):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):

2012-12-10  Dean Jackson  <dino@apple.com>

        Remove old WebKit Animation API code
        https://bugs.webkit.org/show_bug.cgi?id=104611

        Reviewed by Simon Fraser.

        Remove the existing, unused animation API code. We'll look into
        implementing the W3C Animation API if/when it is stable.

        * CMakeLists.txt: Remove WebKitAnimation and WebKitAnimationList classes.
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * UseJSC.cmake:
        * UseV8.cmake:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp: Remove includes.
        * bindings/js/JSWebKitAnimationCustom.cpp: Removed.
        * bindings/js/JSWebKitAnimationListCustom.cpp: Removed.
        * dom/Element.cpp: Remove API.
        * dom/Element.h: Ditto.
        * dom/Element.idl: Ditto.
        * page/DOMWindow.idl: Ditto.
        * page/WebKitAnimation.cpp: Removed.
        * page/WebKitAnimation.h: Removed.
        * page/WebKitAnimation.idl: Removed.
        * page/WebKitAnimationList.cpp: Removed.
        * page/WebKitAnimationList.h: Removed.
        * page/WebKitAnimationList.idl: Removed.
        * page/animation/AnimationController.cpp: Remove API.
        * page/animation/AnimationController.h: Ditto.
        * page/animation/AnimationControllerPrivate.h: Ditto.
        * page/animation/CompositeAnimation.cpp: Ditto.
        * page/animation/CompositeAnimation.h: Ditto.

2012-12-10  Jessie Berlin  <jberlin@apple.com>

        Fix the Mac build after r137233

        * html/shadow/HTMLShadowElement.h:
        Remove a declaration of a member variable that was moved to the InsertionPoint superclass.

2012-12-10  KyungTae Kim  <ktf.kim@samsung.com>

        Build fix after r137221
        https://bugs.webkit.org/show_bug.cgi?id=104617

        Unreviewed build fix

        * html/HTMLPropertiesCollection.cpp:
        (WebCore::nextNodeWithProperty):

2012-12-10  Hajime Morrita  <morrita@google.com>

        [Shadow DOM][Refactoring] HTMLContentElement,HTMLShadowElement::m_registeredWithShadowRoot should be moved to InsertionPoint
        https://bugs.webkit.org/show_bug.cgi?id=104516

        Reviewed by Dimitri Glazkov.

        This change pulls duplicated code in removedFrom() and
        insertedInto() of both both HTMLShadowElement and
        HTMLContentElement to their super class InsertionPoint.

        This is a part of effor that encapsulate node distribution algorithm to
        ContentDistributor and its family.

        No new tests, no behavior change.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::registerInsertionPoint): Added.
        (WebCore::ShadowRoot::unregisterInsertionPoint): Added.
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ShadowRootContentDistributionData::regiterInsertionPoint): Generalized two methods for <content> and <shadow>.
        (WebCore):
        (WebCore::ShadowRootContentDistributionData::unregisterInsertionPoint): Ditto.
        * html/shadow/ContentDistributor.h:
        (ShadowRootContentDistributionData):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::HTMLContentElement):
        * html/shadow/HTMLContentElement.h:
        * html/shadow/HTMLShadowElement.cpp:
        (WebCore::HTMLShadowElement::HTMLShadowElement):
        * html/shadow/HTMLShadowElement.h:
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::InsertionPoint):
        (WebCore::InsertionPoint::insertedInto): Pulled up from subclasses
        (WebCore::InsertionPoint::removedFrom): Pulled up from subclasses
        * html/shadow/InsertionPoint.h:
        (InsertionPoint):

2012-12-10  Jon Lee  <jonlee@apple.com>

        Keep track of plug-in snapshots clicked by user
        https://bugs.webkit.org/show_bug.cgi?id=103206
        <rdar://problem/12746483>

        Reviewed by Anders Carlsson.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initially the hash is
        unknown. Set to 0. Move the check for whether to snapshot the plugin into the
        new function subframeLoaderWillLoadPlugIn.
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Rename
        setPendingClickEvent to userDidClickSnapshot. In addition to holding onto the
        click event used to activate the plug-in, the function now also tells the plug-in
        client to add the origin hash as an auto-start origin.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillLoadPlugIn): Calculate the
        hash based on the provided URL, which is the URL the plug-in will load. Extend
        the check that used to be in the constructor to see if the plug-in should not
        automatically load, including checking the plug-in size and whether the hash
        is an auto-start origin.
        * html/HTMLPlugInImageElement.h: Rename setPendingClickEvent to userDidClickSnapshot
        and add a variable for the origin hash.

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::requestPlugin): When the loader is about to load the
        plug-in, pass the URL to the element, so that it can calculate the hash.

        * page/Page.cpp:
        (WebCore::Page::Page): Take the plugInClient from the page clients.
        (WebCore::Page::~Page): If the client exists, tell it that the page is being
        destroyed.
        (WebCore::Page::PageClients::PageClients): Initialize this optional client to
        null.
        * page/Page.h: Add PlugInClient to page clients.
        (PageClients): Add PlugInClient variable.
        (WebCore::Page::plugInClient):
        * page/PlugInClient.h: Added.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::handleEvent): Call the renamed function
        userDidClickSnapshot().
        (WebCore::RenderSnapshottedPlugIn::layout): Move the check of the plug-in size
        to subframeLoaderWillLoadPlugIn.

        Add PlugInClient.h.
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2012-12-10  Antti Koivisto  <antti@apple.com>

        Not reviewed.
        
        Build fix.

        * html/HTMLPropertiesCollection.cpp:
        (WebCore::nextNodeWithProperty):
        * page/TouchDisambiguation.cpp:
        (WebCore::boundingBoxForEventNodes):

2012-12-10  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=104602
        DidHitRelevantRepaintedObjectsAreaThreshold LayoutMilestone fires too 
        early on some pages with iframes

        Reviewed by Simon Fraser.

        This change makes it so that any RenderObjects inside iframes are not 
        considered relevant.
        * page/Page.cpp:
        (WebCore::Page::addRelevantRepaintedObject):

2012-12-10  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Propagate more leveldb errors to script
        https://bugs.webkit.org/show_bug.cgi?id=104422

        Reviewed by Tony Chang.

        These are the last places that ignore leveldb errors that can get the
        usual ok/found treatment.

        Nothing called getBool, so it is deleted.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore):
        (WebCore::getInt):
        (WebCore::isSchemaKnown):
        (WebCore::setUpMetadata):
        (WebCore::getMaxObjectStoreId):
        (WebCore::IDBBackingStore::open):
        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::getNewDatabaseId):
        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
        (WebCore::setMaxObjectStoreId):
        (WebCore::getNewVersionNumber):
        (WebCore::IDBBackingStore::putRecord):
        (WebCore::setMaxIndexId):
        * Modules/indexeddb/IDBBackingStore.h:
        (IDBBackingStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):

2012-12-09  Antti Koivisto  <antti@apple.com>

        Factor node traversal into standalone functions
        https://bugs.webkit.org/show_bug.cgi?id=104507

        Reviewed by Eric Seidel.

        Node traversal functions are currently Node and ContainerNode members. Their implementations
        are confusingly scattered over multiple header and source files. These functions have no particular
        reason to be members as they don't require non-public access. They should be made freestanding
        function instead and gathered together.
        
        This patch adds NodeTraversal namespace, defined in NodeTraversal.h. It contains freestanding
        functions for traversing Nodes. Most popular functions are inlined (as before) and
        there are ContainerNode specific specializations (as before).
        
        In client code
        
            node = node->traverseNextNode();
            node = node->traverseNextSibling();
        
        becomes
        
            node = NodeTraversal::next(node);
            node = NodeTraversal::nextSkippingChildren(node);
            
        etc.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::addImageMapChildren):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::toJS):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::allVisitedStateChanged):
        (WebCore::SelectorChecker::visitedStateChanged):
        * css/StyleInvalidationAnalysis.cpp:
        (WebCore::StyleInvalidationAnalysis::invalidateStyle):
        * dom/ContainerNode.cpp:
        (WebCore::dispatchChildInsertionEvents):
        (WebCore::dispatchChildRemovalEvents):
        * dom/ContainerNode.h:
        (ContainerNode):
        (WebCore):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::collectDescendant):
        * dom/Document.cpp:
        (WebCore::Document::buildAccessKeyMap):
        (WebCore::Document::removeAllEventListeners):
        (WebCore::Document::updateBaseURL):
        (WebCore::Document::processBaseElement):
        (WebCore::Document::nodeAbsIndex):
        (WebCore::Document::nodeWithAbsIndex):
        (WebCore::Document::getFocusableNodes):
        * dom/DocumentMarkerController.cpp:
        (WebCore::DocumentMarkerController::markersInRange):
        (WebCore::DocumentMarkerController::setMarkersActive):
        (WebCore::DocumentMarkerController::hasMarkers):
        (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::DocumentOrderedMap::get):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::collectSelectFeatureSetFrom):
        * dom/Node.cpp:
        (WebCore::Node::normalize):
        (WebCore::Node::lazyAttach):
        (WebCore):
        (WebCore::Node::detach):
        (WebCore::traverseTreeAndMark):
        * dom/Node.h:
        (Node):
        * dom/NodeIterator.cpp:
        (WebCore::NodeIterator::NodePointer::moveToNext):
        (WebCore::NodeIterator::NodePointer::moveToPrevious):
        (WebCore::NodeIterator::updateForNodeRemoval):
        * dom/NodeTraversal.h: Added.
        (WebCore):
        (NodeTraversal):
        (WebCore::NodeTraversal::traverseNextNodeTemplate):
        (WebCore::NodeTraversal::next):
        (WebCore::NodeTraversal::traverseNextSiblingTemplate):
        (WebCore::NodeTraversal::nextSibling):
        * dom/Range.cpp:
        (WebCore::Range::toString):
        (WebCore::Range::checkDeleteExtract):
        (WebCore::Range::firstNode):
        (WebCore::Range::pastLastNode):
        (WebCore::Range::textRects):
        (WebCore::Range::textQuads):
        (WebCore::Range::getBorderAndTextQuads):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::labelElementForId):
        (WebCore::TreeScope::findAnchor):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
        * dom/TreeWalker.cpp:
        (WebCore::TreeWalker::nextNode):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
        (WebCore::containsNonEditableRegion):
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle):
        (WebCore::ApplyStyleCommand::removeInlineStyle):
        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::deleteInsignificantText):
        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::firstEditablePositionInNode):
        (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        * editing/EditCommand.cpp:
        (WebCore::SimpleEditCommand::addNodeAndDescendants):
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::triStateOfStyle):
        (WebCore::EditingStyle::textDirectionForSelection):
        * editing/Editor.cpp:
        (WebCore::Editor::simplifyMarkup):
        * editing/FrameSelection.cpp:
        (WebCore::scanForForm):
        (WebCore::FrameSelection::setSelectionFromNone):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::removeUnrenderedNodes):
        (WebCore::ReplacementFragment::removeInterchangeNodes):
        (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):
        (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        (WebCore::removeHeadContents):
        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
        * editing/ReplaceSelectionCommand.h:
        (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
        * editing/SimplifyMarkupCommand.cpp:
        (WebCore::SimplifyMarkupCommand::doApply):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::advance):
        (WebCore::shouldEmitNewlineAfterNode):
        * editing/htmlediting.cpp:
        (WebCore::hasARenderedDescendant):
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::fontForSelection):
        * editing/markup.cpp:
        (WebCore::completeURLs):
        (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
        (WebCore::findNodesSurroundingContext):
        (WebCore::trimFragment):
        * editing/visible_units.cpp:
        (WebCore::startOfParagraph):
        (WebCore::endOfParagraph):
        * html/HTMLCollection.cpp:
        (WebCore::nextNode):
        * html/HTMLElement.cpp:
        (WebCore::setHasDirAutoFlagRecursively):
        (WebCore::HTMLElement::directionality):
        (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
        (WebCore::HTMLElement::getItemRefElements):
        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::formElementIndex):
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::control):
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::associatedControl):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::mapMouseEvent):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::virtualItemAfter):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::collectOptionInnerText):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::nextNodeWithProperty):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::selection):
        (WebCore::HTMLTextFormControlElement::innerTextValue):
        (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::handleKeydownEvent):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::performSearch):
        * inspector/InspectorMemoryAgent.cpp:
        * page/FocusController.cpp:
        (WebCore::FocusController::findFocusCandidateInContainer):
        * page/Frame.cpp:
        (WebCore::Frame::searchForLabelsAboveCell):
        (WebCore::Frame::searchForLabelsBeforeElement):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::getRanges):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
        (WebCore::SVGSVGElement::getElementById):
        * svg/SVGUseElement.cpp:
        (WebCore::removeDisallowedElementsFromSubtree):
        * svg/animation/SMILTimeContainer.cpp:
        (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
        * xml/XPathNodeSet.cpp:
        (WebCore::XPath::NodeSet::traversalSort):
        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::nodesInAxis):
        * xml/XPathUtil.cpp:
        (WebCore::XPath::stringValue):

2012-12-10  Min Qin  <qinmin@chromium.org>

        Sending multi-touch events to the same Iframe
        https://bugs.webkit.org/show_bug.cgi?id=97973

        Reviewed by Dimitri Glazkov.

        Multi-Touch in different iframe can give both documents access to each other.
        This could cause cross-origin access. To solve this, all the touch events should
        be sent to the iframe where the first touchstart happens.

        Test: fast/events/touch/multi-touch-inside-iframes.html
              fast/events/touch/multi-touch-inside-nested-iframes.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleTouchEvent):
        * page/EventHandler.h:

2012-12-10  KyungTae Kim  <ktf.kim@samsung.com>

        [soup] Fix build warning in ResourceHandleSoup.cpp
        https://bugs.webkit.org/show_bug.cgi?id=104605

        Reviewed by Martin Robinson.

        The nextMultipartResponsePartCallback has unused parameter 'source',
        comment out it to fix 'unused parameter' build warning.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::nextMultipartResponsePartCallback):

2012-12-10  Simon Fraser  <simon.fraser@apple.com>

        Fix frame border painting in tiled drawing mode
        https://bugs.webkit.org/show_bug.cgi?id=104453
        <rdar://problem/11678611>

        Reviewed by Dan Bernstein.

        Frame borders were not correctly invalidated when in tiled drawing mode, because
        RenderFrameSet::layout() invalidated directly on the view, which skips the tile
        cache.
        
        Fix by invalidating like all other renderers, via the repaint container.
        
        Also, the layer transform should be updated before the invalidation, and
        we make use of RenderObject::updateLayerTransform() which has the same behavior
        as the old code.

        Attempts to make a layout test failed. Resizing composited framesets repainted
        via layer resizing, and an attempt to make a ref test in tiled drawing mode
        failed (the test passed without the patch).

        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::layout):

2012-12-10  Simon Fraser  <simon.fraser@apple.com>

        When converting a layer into a tiled layer, ensure that we update the visible rect
        https://bugs.webkit.org/show_bug.cgi?id=104467

        Reviewed by Darin Adler.

        When a GraphicsLayerCA toggles to use a TileCache, we have to ensure that the
        layer's visible rect (which is used to ensure tile coverage) is updated in
        the same commit. Otherwise we can get blank layers until something else causes
        the visible rect to be updated.

        Test: compositing/tiling/tiled-layer-resize.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::dumpAdditionalProperties): With the debug flag, dump the TiledBacking
        address for ease of debugging.
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Set the VisibleRectChanged bit in
        m_uncommittedChanges if we've just switched to a tiled layer.

2012-12-10  Simon Fraser  <simon.fraser@apple.com>

        Don't unconditionally repaint compositing layers when their size changes
        https://bugs.webkit.org/show_bug.cgi?id=104461

        Reviewed by Sam Weinig.

        RenderLayerBacking always repainted the entire compositing layer when its size
        changed. This was done to fix repaint issues when outline widths changes, but
        that issue is now solved by repainting in GraphicsLayer::setOffsetFromRenderer(),
        add in r134628. I believe this is no longer necessary.
        
        Always repainting when the size changes is terrible for the tile cache when
        loading large documents, as all tiles repaint every time the document gets
        longer.

        Test: compositing/repaint/resize-repaint.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2012-12-10  Ojan Vafai  <ojan@chromium.org>

        Unreviewed, rolling out r134150.
        http://trac.webkit.org/changeset/134150
        https://bugs.webkit.org/show_bug.cgi?id=99940

        Caused JS-based tooltips to remain during scroll on Facebook
        and Gmail. Rollout until I have time to experiment with less
        aggresive approaches.

        * page/EventHandler.cpp:
        (WebCore):
        (WebCore::MaximumDurationTracker::MaximumDurationTracker):
        (WebCore::MaximumDurationTracker::~MaximumDurationTracker):
        (MaximumDurationTracker):
        (WebCore::EventHandler::EventHandler):
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::mouseMoved):
        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
        (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
        * page/EventHandler.h:
        (EventHandler):
        * platform/Timer.h:

2012-12-10  Yi Shen  <max.hong.shen@gmail.com>

        Keyboard caret movement in textarea with RTL Override Character can make tab unresponsive
        https://bugs.webkit.org/show_bug.cgi?id=103067

        Reviewed by Ryosuke Niwa.

        For textarea with RTL override character, the line break could be the previous leaf InlineTextBox of
        the InlineTextBox for the RTL override text. When overshots the left/right, make sure the 
        leftVisuallyDistinctCandidate and rightVisuallyDistinctCandidate return the visually distinct 
        left/right position by ignoring the line break.

        Test: editing/selection/move-by-character-crash-test-textarea.html

        * editing/VisiblePosition.cpp:
        (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
        (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):

2012-12-10  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WebGL] Minor Refactoring in GraphicsContext3DEfl.
        https://bugs.webkit.org/show_bug.cgi?id=104553.

        Reviewed by Kenneth Rohde Christiansen.

        We use different FBO for canvas and offscreen surface of our platform layer.
        Thus we need to manage any bound buffers while copying contents to the surface. Currently, Surface
        always uses double buffering but in future we should be able to configure it to use either
        double or single buffer. For these use cases, it would be handy to bind buffers directly to
        FBO used by the surface. This patch does the needed changes in GraphicsContext3DEfl and
        PlatformSurface. Also, removes some unused code.

        Covered by existing tests.

        Relevant changes in GraphicsContext3DEfl to obtain FBO id from PlatformSurface.
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):

        Renamed createGraphicsSurface to didResizeCanvas.
        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::didResizeCanvas):
        (GraphicsContext3DPrivate::copyToGraphicsSurface):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):

        Header cleanup.
        * platform/graphics/opengl/GLDefs.h:
        * platform/graphics/opengl/GLPlatformContext.cpp:
        (WebCore::GLPlatformContext::createContext):
        * platform/graphics/opengl/GLPlatformContext.h:

        Added initialize method to expose FBO id of the surface.
        Removed unused code.
        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::initialize):
        (WebCore):
        (WebCore::GLPlatformSurface::updateContents):
        * platform/graphics/opengl/GLPlatformSurface.h:
        (GLPlatformSurface):
        * platform/graphics/surfaces/glx/GLXSurface.h:

2012-12-07  Simon Fraser  <simon.fraser@apple.com>

        Tidy up the tiled scrolling indicator, fix with zooming
        https://bugs.webkit.org/show_bug.cgi?id=104386

        Reviewed by Tim Horton.

        Fix the tiled scrolling indicator to not get tiny when zooming,
        to not poke out of the bottom of the window, and to not look
        so crappy.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::updateTileCoverageMap):
        (WebCore::TileCache::drawTileMapContents):

2012-12-10  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136817.
        http://trac.webkit.org/changeset/136817
        https://bugs.webkit.org/show_bug.cgi?id=104596

        This patch was an unnecessarily complex solution to handling
        conversion of union types. (Requested by mpruett on #webkit).

        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue):
        * bindings/js/JSDictionary.h:
        (WebCore::JSDictionary::tryGetPropertyAndResult):

2012-12-10  Tab Atkins  <tabatkins@google.com>

        Deprecate prefixed linear-gradient and radial-gradient functions
        https://bugs.webkit.org/show_bug.cgi?id=104591

        Reviewed by Dean Jackson.

        Rename the old gradient parsing functions in anticipation of functions that parse the new syntax.

        No new tests added - this is a rename and has no functionality change.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseDeprecatedLinearGradient):
        (WebCore::CSSParser::parseDeprecatedRadialGradient):
        (WebCore::CSSParser::parseGeneratedImage):
        * css/CSSParser.h:

2012-12-10  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium][Win] Remove theme-related functions from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=102699

        Reviewed by Adam Barth.

        Call theme engine directly instead of going through
        PlatformSupport. Part of a refactoring series. See tracking bug 82948.

        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
        (WebCore::ScrollbarThemeChromiumWin::paintButton):
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore):
        (WebCore::RenderThemeChromiumWin::paintButton):
        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
        (WebCore::RenderThemeChromiumWin::paintSliderThumb):
        (WebCore::RenderThemeChromiumWin::paintMenuList):
        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
        (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
        (WebCore::RenderThemeChromiumWin::paintProgressBar):

2012-12-10  Dean Jackson  <dino@apple.com>

        Support for CSS widows and orphans
        https://bugs.webkit.org/show_bug.cgi?id=9410

        Reviewed by Darin Adler.

        The CSS 'widow' and 'orphan' properties were supported by the parser and
        style system, but were not actually doing anything in layout. Now they do!

        In order to not break existing content, I unfortunately had to go against
        the specification and change our default value from 2 to auto. A value of
        auto means that widows and orphans will not cause any page/column breaks.

        Supporting orphans was a small change. During line layout, if we realise
        we need to move to a new page in a situation that would create an orphan,
        move the entire block to the new page. There was already code to do this.

        Support for widows was trickier. When we finish laying out a block, count
        the number of hanging lines. If we've created a widow, and there are enough
        available lines on the previous page, then steal some and remember the line
        to break at. Trigger a relayout. Then notice the line that was marked for
        breaking and avoid the widow. This means some blocks go through layout
        twice, but as long as the widow value is small it shouldn't be a huge penalty.

        Tests: fast/multicol/widows-and-orphans.html (new test)
               printing/page-break-orphans.html
               printing/page-break-orphans-and-widows.html
               printing/page-break-widows.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return CSSValueAuto for widows and orphans if necessary.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Support "auto" in widow and orphan property parsing.
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder): Change property handler to something that supports auto.
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add widows and orphans to the animation map.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlockChild): Detect if we've caused a widow-fixing break, and request relayout evaluation.
        (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): Test for a widow-fixing line.
        (WebCore::RenderBlock::setBreakAtLineToAvoidWidow): New function to remember where we should break on next layout.
        (WebCore::RenderBlock::adjustLinePositionForPagination): Move the entire block to a new page if this would create an orphan.
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::shouldBreakAtLineToAvoidWidow): New function to indicate if we are remembering a widow.
        (WebCore::RenderBlock::clearShouldBreakAtLineToAvoidWidow): Reset the line breaks.
        (WebCore::RenderBlock::lineBreakToAvoidWidow):
        (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData): Add a flag for indicating if we are remembering a line, and the actual line itself.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): The code to detect and fix widows. Explained above.
        * rendering/style/RenderStyle.h: New methods for indicating if widows and orphans are non-default values.
        * rendering/style/StyleRareInheritedData.cpp: Ditto.
        * rendering/style/StyleRareInheritedData.h: Ditto.

2012-12-10  Zan Dobersek  <zandobersek@gmail.com>

        REGRESSION (r118735): svg/dom/complex-svgView-specification.html, svg/dom/SVGViewSpec.html, svg/dom/viewspec-parser.html failing on GTK Linux 64-bit Release
        https://bugs.webkit.org/show_bug.cgi?id=87734

        Reviewed by Martin Robinson.

        Don't modify ResourceRequest's URL to have the value of the (encoded)
        URI of the SoupMessage. The only exception is in the case of cancelled
        SoupMessage - the URL of the ResourceRequest should then be null.

        No new tests - existing tests should show no regressions.

        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::updateFromSoupMessage):

2012-12-10  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed distcheck fix.

        * GNUmakefile.list.am:

2012-12-10  Eric Seidel  <eric@webkit.org>

        Caused crashes in v8.  Rolling out until abarth can fix.  See cr-issue 165136 for more info
        https://bugs.webkit.org/show_bug.cgi?id=104575

        Unreviewed, just rolling out r136559.

        * bindings/v8/V8GCController.cpp:
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8NodeFilterCondition.h:
        (WebCore::V8NodeFilterCondition::create):
        (V8NodeFilterCondition):
        * dom/NodeFilter.h:

2012-12-10  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed build fix after r137167.

        * WebCore.xcodeproj/project.pbxproj: Add InbandTextTrackPrivate.h to framework private 
            headers.

2012-12-10  Martin Robinson  <mrobinson@igalia.com>

        Fix the GTK+ build after a collision of two patches.

        Unreviewed build fix.

        * bindings/gobject/GNUmakefile.am: The GObject DOM bindings library needs to
        include the harfbuzz cflags when compiling.

2012-12-10  Parth Patel  <parpatel@rim.com>

        Make hiddenPageDomTimerInterval a setting
        https://bugs.webkit.org/show_bug.cgi?id=104555

        Reviewed by Yong Li.

        Make hiddenPageDomTimerInterval a setting so client can customize it.

        No new tests are needed.

        * page/Page.cpp:
        (WebCore):
        (WebCore::Page::setVisibilityState):
        * page/Settings.cpp:
        (WebCore):
        (WebCore::Settings::setHiddenPageDOMTimerAlignmentInterval):
        (WebCore::Settings::hiddenPageDOMTimerAlignmentInterval):
        * page/Settings.h:
        (Settings):

2012-12-10  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile fix in ImageCairoWin.cpp
        https://bugs.webkit.org/show_bug.cgi?id=104554

        Reviewed by Brent Fulgham.

        * platform/graphics/win/ImageCairoWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize): Added parameter.
        (WebCore::BitmapImage::drawFrameMatchingSourceSize): Added parameter.

2012-12-10  Mike West  <mkwst@chromium.org>

        Log to console when script is blocked by sandbox attributes.
        https://bugs.webkit.org/show_bug.cgi?id=104365

        Reviewed by Ojan Vafai.

        Adds a console message to cover script execution blocked within the
        context of a sandboxed frame which lacks the 'allow-scripts' permission.

        * bindings/ScriptControllerBase.cpp:
        (WebCore::ScriptController::canExecuteScripts):
            Log a warning when sandboxing flags block script execution.

2012-12-10  Chris Fleizach  <cfleizach@apple.com>

        AX: Crash in NSAccessibilityUnignoredDescendant
        https://bugs.webkit.org/show_bug.cgi?id=104468

        Reviewed by Anders Carlsson.

        This crash occurred because AccessibilityScrollView stopped retaining it's ScrollView pointer.

        Unfortunately, there was still a case that didn't correctly clear that variable. 

        That case was when a Frame had a new FrameView associated with it. The old FrameView didn't inform the 
        accessibility object cache that it should be removed. As a result, when the FrameView deallocated and 
        did try to remove, it used the wrong AXObjectCache because it was no longer correctly hooked into the 
        document tree.

        No new tests. Existing tests will stop crashing.
 
        * page/Frame.cpp:
        (WebCore::Frame::setView): change the name of the method that tells the FrameView to detach
        * page/FrameView.cpp:
        (WebCore::FrameView::~FrameView):
        (WebCore::FrameView::removeFromAXObjectCache): add a method that can be called in multiple places
        (WebCore::FrameView::isFrameView):
        (WebCore::FrameView::prepareForDetach): detaches scrollbars and accessibility
        * page/FrameView.h:
        (FrameView):

2012-12-10  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Move getPluginsList out of PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=96507

        Reviewed by Darin Fisher.

        Part of a refactoring series. See tracking bug 82948.

        * WebCore.gypi:
        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):
        * plugins/chromium/PluginDataChromium.cpp:
        (WebCore::PluginCache::plugins):
        * plugins/chromium/PluginListBuilder.cpp: Added.
        (WebKit):
        (WebKit::PluginListBuilder::addPlugin):
        (WebKit::PluginListBuilder::addMediaTypeToLastPlugin):
        (WebKit::PluginListBuilder::addFileExtensionToLastMediaType):
        * plugins/chromium/PluginListBuilder.h: Added.
        (WebKit):
        (PluginListBuilder):
        (WebKit::PluginListBuilder::PluginListBuilder):

2012-12-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Build GObject DOM bindings as a separate library
        https://bugs.webkit.org/show_bug.cgi?id=104527

        Reviewed by Xan Lopez.

        * bindings/gobject/GNUmakefile.am: Add libWebCoreDOM library.
        * bindings/gobject/WebKitDOMBinding.h: Define private macros.
        * bindings/gobject/WebKitDOMCustom.h: Don't include webkit/webkitdefines.h.
        * bindings/gobject/WebKitDOMEventTarget.h: Ditto.
        * bindings/gobject/WebKitDOMObject.h: Ditto.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (Generate): Don't include webkitglobalsprivate.h.
        (WriteData): Don't include webkit/webkitdefines.h.
        * bindings/scripts/gobject-generate-headers.pl: Define WEBKIT_API
        macro in webkitdomdefines.h.
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:

2012-12-10  Adam Klein  <adamk@chromium.org>

        In InbandTextTrackPrivate, return emptyAtoms instead of emptyString() by default.

        Unreviewed build fix.

        * platform/graphics/InbandTextTrackPrivate.h:
        (WebCore::InbandTextTrackPrivate::label):
        (WebCore::InbandTextTrackPrivate::language):

2012-12-10  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Native Memory Instrumentation: instrument RenderBox descendants.
        https://bugs.webkit.org/show_bug.cgi?id=104026

        Reviewed by Eric Seidel.

        Plain vanilla instrumentation for RenderBox descendants.

        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::reportMemoryUsage):
        (WebCore):
        (WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
        * rendering/RenderFrameSet.h:
        (RenderFrameSet):
        (GridAxis):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::reportMemoryUsage):
        (WebCore):
        * rendering/RenderListMarker.h:
        (RenderListMarker):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::reportMemoryUsage):
        (WebCore):
        * rendering/RenderReplaced.h:
        (RenderReplaced):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::reportMemoryUsage):
        (WebCore):
        * rendering/RenderTableCol.h:
        (RenderTableCol):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::reportMemoryUsage):
        (WebCore):
        * rendering/RenderTableRow.h:
        (RenderTableRow):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::reportMemoryUsage):
        (WebCore):
        (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
        (WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
        * rendering/RenderTableSection.h:
        (CellStruct):
        (RowStruct):

2012-12-10  Alejandro Piñeiro  <apinheiro@igalia.com>

        AX: wrong Enabled states on a ListBox
        https://bugs.webkit.org/show_bug.cgi?id=104483

        Reviewed by Chris Fleizach.

        Test: accessibility/listbox-enabled-states.html

        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::isEnabled): taking into
        account the DISABLED attribute and the aria-disabled attribute to
        decide if the item is enabled or not.

2012-12-10  Adam Klein  <adamk@chromium.org>

        cr-win build fix after r137161.

        Unreviewed.

        * platform/graphics/MediaPlayer.h: Replace forward-decl of
        InbandTextTrackPrivate with #include as the definition is required.

2012-12-10  Alexis Menard  <alexis@webkit.org>

        [CSS3 Backgrounds and Borders] Remove CSS3_BACKGROUND feature flag.
        https://bugs.webkit.org/show_bug.cgi?id=104539

        Reviewed by Antonio Gomes.

        As discussed on webkit-dev it is not needed to keep this feature flag 
        as support for <position> type is a small feature that is already 
        implemented by three other UAs. It was useful while landing this 
        feature as partial bits were landed one after one.

        No new tests : the feature is covered by various tests and it is already enabled in many ports.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:
        * GNUmakefile.features.am:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFillPosition):
        (WebCore::CSSParser::parseFillProperty):
        * css/CSSParser.h:
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapFillXPosition):
        (WebCore::CSSToStyleMap::mapFillYPosition):
        * rendering/style/FillLayer.cpp:
        (SameSizeAsFillLayer):
        (WebCore::FillLayer::FillLayer):
        (WebCore::FillLayer::operator=):
        (WebCore::FillLayer::operator==):
        (WebCore::FillLayer::fillUnsetProperties):
        * rendering/style/FillLayer.h:
        (WebCore::FillLayer::backgroundXOrigin):
        (WebCore::FillLayer::backgroundYOrigin):
        (WebCore::FillLayer::isBackgroundOriginSet):
        (WebCore::FillLayer::clearXPosition):
        (WebCore::FillLayer::clearYPosition):
        (FillLayer):

2012-12-10  Eric Carlson  <eric.carlson@apple.com>

        Add support for in-band text tracks to Mac port
        https://bugs.webkit.org/show_bug.cgi?id=103663

        Reviewed by Sam Weinig.

        Test: media/track/track-in-band.html

        * GNUmakefile.list.am: Move InbandTextTrackPrivate.h to platform/graphics. Add InbandTextTrackPrivateClient.h.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.

        * WebCore.xcodeproj/project.pbxproj: Add new files.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setReadyState): No need to call processInbandTextTracks, in-band tracks
            are now registered by the media engine as they are discovered.
        (WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): New, called by the media player when a new
            in-band track is found.
        (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): New, called by the media player when an
            in-band track goes away.
        * html/HTMLMediaElement.h:

        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::InbandTextTrack): Use m_private instead of tracksPrivate because
            it is zeroed during assignment.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::addTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
            to add a new in-band track.
        (WebCore::MediaPlayer::removeTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
            to remove a new in-band track.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Added.
        (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF):
        (WebCore::InbandTextTrackPrivateAVF::~InbandTextTrackPrivateAVF):
        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Convert an attribute string into WebVTT 
            cue setting and content strings.
        (WebCore::InbandTextTrackPrivateAVF::processCue): Process a new cue.
        (WebCore::InbandTextTrackPrivateAVF::disconnect): Clear member variables.
        (WebCore::InbandTextTrackPrivateAVF::resetCueValues): Reset cue values to defaults.
        (WebCore::InbandTextTrackPrivateAVF::setMode): Set track mode and call player's trackModeChanged.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Added.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: Initialize 
            m_inbandTrackConfigurationPending.
        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Flush the currently accumulating
            cue so it doesn't get the wrong duration.
        (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Handle InbandTracksNeedConfiguration.
        (WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): New, pass the current cue up to the client.
        (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Configure in-band tracks.
        (WebCore::MediaPlayerPrivateAVFoundation::trackModeChanged): Schedule a call to configureInbandTracks.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Added.
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm: Added.
        (WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC):
        (WebCore::InbandTextTrackPrivateAVFObjC::disconnect):
        (WebCore::InbandTextTrackPrivateAVFObjC::kind): Return track kind.
        (WebCore::InbandTextTrackPrivateAVFObjC::label): Return track label.
        (WebCore::InbandTextTrackPrivateAVFObjC::language): Return track language.
        (WebCore::InbandTextTrackPrivateAVFObjC::isDefault): 
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        (MediaPlayerPrivateAVFoundationObjC):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItem):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize m_currentTrack.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_legibleOutput.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Create and initialize m_legibleOutput.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Called when the player item's
            "tracks" changes, add and remove in-band text tracks as necessary.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass an attributed string to the current 
            track to be processed.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Tell AVFoundation to select an in-band track.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTrack): Return the current track.
        (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]): Legible
            output delegate.

2012-12-10  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: fix front-end compilation warnings
        https://bugs.webkit.org/show_bug.cgi?id=104557

        Reviewed by Alexander Pavlov.

        Corresponding annotations added.

        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::highlightNode):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleDeclaration.prototype.):
        (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype.highlightDOMNode):
        * inspector/front-end/DOMPresentationUtils.js:
        (WebInspector.DOMPresentationUtils.linkifyNodeReference):
        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertyTreeElement.prototype.update):
        * inspector/front-end/Toolbar.js:

2012-12-10  Zeno Albisser  <zeno@webkit.org>

        [Qt] MediaPlayerQTKit broken after switching QPainter to raster engine.
        https://bugs.webkit.org/show_bug.cgi?id=104550

        With Qt5 QPainter changed to using the raster engine.
        Therefore we no longer have an NSGraphicsContext that we can
        use for drawing video frames.
        With this patch we are rendering the video frame into an image buffer
        and then paint it manually using QPainter.

        Reviewed by Simon Hausmann.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore):
        (WebCore::swapBgrToRgb):
            Swap the color format from BGR to RGB,
            since BGR is not supported by QImage.
        (WebCore::MediaPlayerPrivateQTKit::paint):

2012-12-10  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Link fix in InspectorController.cpp
        https://bugs.webkit.org/show_bug.cgi?id=104556

        Reviewed by Pavel Feldman.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController): Added missing #if check.

2012-12-10  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: remove the Overrides / Settings context menu from gear icon
        https://bugs.webkit.org/show_bug.cgi?id=104546

        Reviewed by Alexander Pavlov.

        It sounds like too many people don't like the way it works. Bringing things back: overrides will be a tab in settings for now.
        Moving present behavior to under experiment.

        * inspector/front-end/OverridesView.js:
        (WebInspector.OverridesView):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.OverridesSettingsTab):
        (WebInspector.SettingsController):
        (WebInspector.SettingsController.prototype.get statusBarItem):
        (WebInspector.SettingsController.prototype._mouseDown.showSettings):
        (WebInspector.SettingsController.prototype._mouseDown):
        (WebInspector.SettingsController.prototype._mouseUp):
        * inspector/front-end/helpScreen.css:
        (#settings-screen .tabbed-pane-header):
        (#settings-screen .tabbed-pane-header-tabs):
        (#settings-screen .tabbed-pane-header-tab):

2012-12-10  Kent Tamura  <tkent@chromium.org>

        Visual order of empty value placeholder in INPUT_MULTIPLE_FIELDS_UI is wrong in RTL
        https://bugs.webkit.org/show_bug.cgi?id=104438

        Reviewed by Hajime Morita.

        No new tests. This updates datetimelocal-appearance-l10n.html for he-il
        and ar-eg locales.

        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
        We should not append Right-to-left-mark to each of placeholder
        strings. It makes numeric field separators such as ':' and '/' RTL, and
        makes a wrong visual order. We use unicode-bidi:bidi-override and
        direction:ltr instead. It means we force LTR only to this element
        * html/shadow/DateTimeNumericFieldElement.h:
        Makes m_placeholder const again.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitLiteral):
        Explicitly set right-to-left-mark before S, WS, ON types according to
        Unicod Bidirectional Algorithm Table 4 [1]. This is needed because we
        don't have context like "This literal follows European/Arabic numbers"
        in a case of showing placeholders.
        [1] http://www.unicode.org/reports/tr9/#Bidirectional_Character_Types

2012-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>

        [Soup] utilize multipart/x-mixed-replace support recently added to libsoup
        https://bugs.webkit.org/show_bug.cgi?id=94515

        Reviewed by Martin Robinson.

        The multipart/x-mixed-replace content type is often used for providing
        "push" server support, with each part in the multipart response
        replacing the previous one in the rendering. Soup recently acquired
        support for multipart/x-mixed replace, which this change utilizes.

        Covered by existing multipart/x-mixed-replace tests.

        * platform/network/ResourceHandleInternal.h:
        (ResourceHandleInternal): add new member to this class, the multipart input stream
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::cleanupSoupRequestOperation): also clear the multipart input stream on
        cleanup
        (WebCore::nextPartCallback): callback that handles reporting the new response delivered
        with the new part, if any; uses the factored out updateFromSoupMessageHeaders method
        (WebCore::sendRequestCallback): handle multipart/x-mixed-replace responses by
        requesting the next part
        (WebCore::readCallback): when reading has finished, request the next part when
        handling a multipart/x-mixed-replace response
        * platform/network/soup/ResourceResponse.h:
        (ResourceResponse): add declaration for new method
        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::updateFromSoupMessage): call new updateFromSoupMessageHeaders
        method, instead of dealing with the message headers directly
        (WebCore::ResourceResponse::updateFromSoupMessageHeaders): new method, factored out from
        updateFromSoupMessage, so this same code can be reused for updating responses for
        multipart/x-mixed-replace responses parts

2012-12-10  Zoltan Nyul  <zoltan.nyul@intel.com>

        Implement testRunner.setViewModeMediaFeature() in WebKitTestRunner
        https://bugs.webkit.org/show_bug.cgi?id=103886

        Reviewed by Kenneth Rohde Christiansen.

        Export symbol for WebCore::Page::setViewMode on Mac.

        No new tests, no behavior change for layout tests.

        * WebCore.exp.in:

2012-12-10  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Bring Harfbuzz-ng support to Gtk
        https://bugs.webkit.org/show_bug.cgi?id=92098

        Reviewed by Gustavo Noronha Silva.

        Enable HarfBuzz support by default. With the Freetype backend we no longer
        fall back to Pango for rendering complex text.

        No new tests. This is covered by existing tests.

        * GNUmakefile.am: Add HarfBuzz include directories and define.
        * GNUmakefile.list.am: Add HarfBuzz files to source list and remove
        Pango ones.
        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        (WebCore::FontPlatformData::operator==): To properly render fallback
        fonts via HarfBuzz , it's important that we actually ask Fontconfig
        whether or not two patterns are the same. This ensures that when patterns
        are just copies of one another they only take up one slot in the font cache
        and appear to be the same font to HarfBuzzShaper.

2012-12-10  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Overrides] Unable to change values in Device Metrics override setting
        https://bugs.webkit.org/show_bug.cgi?id=104542

        Reviewed by Vsevolod Vlasov.

        Remove inadvertent object property assignment.

        * inspector/front-end/OverridesView.js:

2012-12-10  Michael Brüning  <michael.bruning@digia.com>

        [Qt] Builds for Mac are tied to the OS system instead of the SDK version.
        https://bugs.webkit.org/show_bug.cgi?id=104529

        Reviewed by Simon Hausmann.

        Using work by Eike Ziller <eike.ziller@digia.com>.

        The build system now first tries to assign the correct system libraries
        for the SDK being used for Mac builds. If this does not yield any
        result, it falls back to using the Mac OS version to determine the
        correct library.

        No new tests (not applicable).

        * WebCore.pri:

2012-12-10  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed: touch RenderingAllInOne.cpp to fix Apple Windows builder.

        * rendering/RenderingAllInOne.cpp:

2012-12-10  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Network: newly added items are not filtered.
        https://bugs.webkit.org/show_bug.cgi?id=104021

        Reviewed by Vsevolod Vlasov.

        Extracted method to higlight/hide record according to filter.
        Used this method to process newly created records.

        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._applyFilter): Extracted.
        (WebInspector.NetworkLogView.prototype.performFilter): Refactored.

2012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Unreviewed: move reportMemoryUsage to public section.

        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBox.h:
        (RenderBox):

2012-12-08  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: adds an option to remove toolbar icons.
        https://bugs.webkit.org/show_bug.cgi?id=95654

        Reviewed by Vsevolod Vlasov.

        - removes compact mode in favor or dock-to-bottom
        - introduces setting for hiding toolbar icons

        * inspector/front-end/DockController.js:
        (WebInspector.DockController.prototype._toggleDockState):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/Toolbar.js:
        (WebInspector.Toolbar.prototype.setDockedToBottom):
        (WebInspector.Toolbar.prototype._toolbarDragStart):
        (WebInspector.Toolbar.prototype._toolbarDrag):
        * inspector/front-end/helpScreen.css:
        (body.dock-to-bottom .help-content):
        * inspector/front-end/inspector.css:
        (body.dock-to-bottom #toolbar):
        (body.no-toolbar-icons #toolbar):
        (body.dock-to-bottom.port-qt #toolbar):
        (body.dock-to-bottom.inactive #toolbar):
        (body.no-toolbar-icons .toolbar-item.toggleable):
        (body.dock-to-bottom .toolbar-item.toggleable):
        (body.dock-to-bottom .toolbar-icon):
        (body.no-toolbar-icons .toolbar-icon):
        (body.no-toolbar-icons #main):
        (body.dock-to-bottom .toolbar-icon.custom-toolbar-icon):
        (body.dock-to-bottom .toolbar-item:active .toolbar-icon):
        (body.dock-to-bottom .toolbar-label):
        (body.dock-to-bottom #search-toolbar-label):
        (body.no-toolbar-icons .toolbar-label):
        (body.no-toolbar-icons #toolbar-dropdown):
        (#toolbar-dropdown .scrollable-content):
        (#toolbar-dropdown .toolbar-item.toggleable:hover):
        (body.no-toolbar-icons #toolbar-dropdown .toolbar-label):
        (body.no-toolbar-icons #toolbar-dropdown .toolbar-item):
        (body.dock-to-bottom .toolbar-item.resources .toolbar-icon):
        (body.dock-to-bottom .toolbar-item.network .toolbar-icon):
        (body.dock-to-bottom .toolbar-item.scripts .toolbar-icon):
        (body.dock-to-bottom .toolbar-item.timeline .toolbar-icon):
        (body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
        (body.dock-to-bottom .toolbar-item.audits .toolbar-icon):
        (body.dock-to-bottom .toolbar-item.console .toolbar-icon):
        (body.dock-to-bottom.port-qt .toolbar-item.close-left, body.dock-to-bottom.port-qt .toolbar-item.close-right):
        (body.dock-to-bottom #main):

2012-12-10  Kent Tamura  <tkent@chromium.org>

        Refactoring: Remove HTMLFormControlElement::autofocus
        https://bugs.webkit.org/show_bug.cgi?id=104524

        Reviewed by Kentaro Hara.

        autofocus function is used only by HTMLFormControlElement itself, no
        sub-classes override it, and it is not exposed via an IDL attribute,

        No new tests. This doesn't make any behavior changes.

        * html/HTMLFormControlElement.cpp:
        (WebCore::shouldAutofocus): Use fastHasAttribute instead of autofocus().
        * html/HTMLFormControlElement.h: Remove autofocus().

2012-12-10  Jonathan Liu  <net147@gmail.com>

        Fix GC3Dintptr and GC3Dsizeiptr typedefs for Win64
        https://bugs.webkit.org/show_bug.cgi?id=104426

        Reviewed by Simon Hausmann.

        The GC3Dintptr and GC3Dsizeiptr typedefs are incorrect for Win64 as
        LLP64 is used there. This would result in compile error due to
        narrowing conversion of 64-bit pointer to signed long int which is
        32-bit.

        * platform/graphics/GraphicsTypes3D.h:

2012-12-10  Kent Tamura  <tkent@chromium.org>

        Refactoring: Introduce HTMLFormControlElement::isDisabledOrReadOnly
        https://bugs.webkit.org/show_bug.cgi?id=104508

        Reviewed by Kentaro Hara.

        We have a lot of code like element->disabled || element->readOnly().
        isDisabledOrReadOnly makes them simpler.

        No new tests. This make no behaivor change.

        * html/HTMLFormControlElement.h:
        (WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
        Added. Note that the implmentation of disabled() is not just "return m_disabled;".

        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
        Use isDisabledOrReadOnly.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Ditto.
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
        (WebCore::ColorInputType::didChooseColor): Ditto.
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::recalcWillValidate): Ditto.
        * html/HTMLTextAreaElement.h:
        (WebCore::HTMLTextAreaElement::valueMissing): Ditto.
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::handleMouseDownEvent): Ditto.
        (WebCore::RangeInputType::handleTouchEvent): Ditto.
        (WebCore::RangeInputType::handleKeydownEvent): Ditto.
        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::handleKeydownEvent): Ditto.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Ditto.
        (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Ditto.
        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Ditto.
        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Ditto.
        * html/shadow/TextFieldDecorationElement.cpp:
        (WebCore::TextFieldDecorationElement::defaultEventHandler): Ditto.
        (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Ditto.
        (WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents): Ditto.

2012-12-10  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: console broken? - console.dirxml behaves like console.log
        https://bugs.webkit.org/show_bug.cgi?id=104245

        Reviewed by Vsevolod Vlasov.

        Do not generate preview for dirxml.

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):

2012-12-10  Kent Tamura  <tkent@chromium.org>

        Refactoring: Remove HTMLFormControlElement::setDisabled
        https://bugs.webkit.org/show_bug.cgi?id=104510

        Reviewed by Kentaro Hara.

        Remove it because the number of call sites is only one, and the
        setDisabled implementation is equivalent to setBooleanAttribute.

        No new tests. This should not make behavior changes.

        * html/HTMLFormControlElement.cpp: Remove setDisabled.
        * html/HTMLFormControlElement.h: Ditto.
        * html/FileInputType.cpp:
        (WebCore::FileInputType::disabledAttributeChanged):
        Replace setDisabled with setBooleanAttribute.

2012-12-10  Hajime Morrita  <morrita@google.com>

        [Shadow DOM][Refacdtoring] nextTo() and previousTo() can be part of ContentDistribution
        https://bugs.webkit.org/show_bug.cgi?id=104514

        Reviewed by Kentaro Hara.

        InsertionPoint::nextTo() and InsertionPoint::previousTo() are an
        query to distributed nodes, which is what ContentDistribution
        represents. We can move them to better home.

        No new tests. No behavior change.

        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistribution::nextTo): Moved from InsertionPoint
        (WebCore):
        (WebCore::ContentDistribution::previousTo): Moved from InsertionPoint
        * html/shadow/ContentDistributor.h:
        (ContentDistribution):
        * html/shadow/InsertionPoint.cpp:
        * html/shadow/InsertionPoint.h:
        (WebCore::InsertionPoint::nextTo): Delegated to ContentDistribution
        (WebCore::InsertionPoint::previousTo): Delegated to ContentDistribution

2012-12-10  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] accessibility/language-attribute.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=98369

        Reviewed by Chris Fleizach.

        The test is failing for two reasons: Not exposing the language
        for accessible objects and AccessibilityUIElement::language() not
        being implemented.

        No new tests; instead, unskipped the previously-failing test.

        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
        (getAttributeSetForAccessibilityObject): Expose the language via AtkText attribute

2012-12-09  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM]: reset-style-inheritance doesn't work for insertion point
        https://bugs.webkit.org/show_bug.cgi?id=103711

        Reviewed by Hajime Morita.

        reset-style-inheritance can be specified by using insertion points'
        attribute, e.g. <content reset-style-inheritance>.
        c.f. shadow dom spec:
        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles

        No new tests. Updated an existing test,
        fast/dom/shadow/insertion-point-resetStyleInheritance.html to cover
        this feature.

        * html/HTMLAttributeNames.in:
        Added HTMLNames::reset_style_inheritanceAttr.
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::InsertionPoint):
        (WebCore::InsertionPoint::parseAttribute):
        Since both shadow and content elements have to support
        reset-style-inheritance, added InsertionPoint::parseAttribute.
        (WebCore::InsertionPoint::resetStyleInheritance):
        (WebCore::InsertionPoint::setResetStyleInheritance):
        Modified to update reset-style-inheritance attribute value.
        * html/shadow/InsertionPoint.h:
        (InsertionPoint):
        Removed m_shouldResetStyleInheritance. Instead, use
        reset-style-inheritance attribute value.

2012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>

        Native Memory Instrumentation: instrument a part of RenderObject class tree.
        https://bugs.webkit.org/show_bug.cgi?id=103564

        Reviewed by Eric Seidel.

        Many RenderObject descendants have OwnPtrs and RefPtrs members.
        Looks like we have to instrument all the RenderObject classes and visit
        all the render objects instead of counting entire render arena memory.

        * WebCore.exp.in:
        * dom/Node.cpp:
        (WebCore::Node::reportMemoryUsage):
        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::reportRenderTreeInfo):
        (WebCore):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:
        (PlatformMemoryTypes):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::reportMemoryUsage):
        (WebCore):
        * platform/graphics/GraphicsLayer.h:
        (GraphicsLayer):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::reportMemoryUsage):
        (WebCore):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        (GraphicsLayerChromium):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::reportMemoryUsage):
        (WebCore):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::reportMemoryUsage):
        (WebCore):
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::reportMemoryUsage):
        (WebCore):
        * rendering/RenderInline.h:
        (RenderInline):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::reportMemoryUsage):
        (WebCore):
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::reportMemoryUsage):
        (WebCore):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::reportMemoryUsage):
        (WebCore):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):
        * rendering/RenderLayerModelObject.cpp:
        (WebCore::RenderLayerModelObject::reportMemoryUsage):
        (WebCore):
        * rendering/RenderLayerModelObject.h:
        (RenderLayerModelObject):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::reportMemoryUsage):
        (WebCore):
        * rendering/RenderObject.h:
        (RenderObject):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::reportMemoryUsage):
        (WebCore):
        * rendering/RenderText.h:
        (RenderText):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::reportMemoryUsage):
        (WebCore):
        * rendering/RenderView.h:
        (RenderView):

2012-12-09  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r137003): failures in MicroData tests on EFL, GTK
        https://bugs.webkit.org/show_bug.cgi?id=104469

        Reviewed by Darin Adler.

        Fix the regression by calling propertyNodeList on HTMLPropertiesCollection
        in the named getter for HTMLCollection. It's a miracle that the old code prior to r137003
        worked at all since the return type of namedItem was different.

        Existing tests cover this.

        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::JSHTMLCollection::nameGetter):
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::V8HTMLCollection::namedPropertyGetter):

2012-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] accessibility/placeholder.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=98373

        Reviewed by Martin Robinson.

        The test was failing because the placeholder text was not supported and
        AccessibilityUIElement::stringAttributeValue() was not implemented.

        No new tests; instead the failing test was unskipped.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetAttributes): Add the placeholder text as an AtkAttribute
        of the AtkObject, as is done in Gtk+ 3.

2012-12-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] [WebGL] Path is not resized correctly.
        https://bugs.webkit.org/show_bug.cgi?id=104458.

        Reviewed by Kenneth Rohde Christiansen.

        In GraphicsContext3D::paintToCanvas, we flip the contents and draw on the surface.
        The operations done to flip the image (translation and scale) are done before rectangle with correct size
        is added to current path. This resulted in updating pixels at wrong positions.

        Covered by existing tests.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::paintToCanvas):

2012-12-09  Joone Hur  <joone.hur@intel.com>

        [GTK][AC] build fix after r130525 and r133332
        https://bugs.webkit.org/show_bug.cgi?id=104491

        Reviewed by Martin Robinson.

        Build fix for Accelerated Compositing Clutter backend after r130525 and r133332.

        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        * platform/gtk/RedirectedXCompositeWindow.cpp:
        * platform/gtk/RedirectedXCompositeWindow.h:

2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use GObject casts instead of C++ cast for GObjects in DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=104492

        Reviewed by Martin Robinson.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateCFile):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        (WebKit::kit):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (WebKit::kit):

2012-12-09  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: do not treat object as equal to itself when logging to console
        https://bugs.webkit.org/show_bug.cgi?id=104487

        Reviewed by Alexander Pavlov.

        Otherwise, mutating object in a loop results in the repeat count update instead of generation of the new preview.

        Test: inspector/console/console-object-preview.html

        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::isEqual):

2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        Remove unused code in GObject DOM bindings generator
        https://bugs.webkit.org/show_bug.cgi?id=104490

        Reviewed by Martin Robinson.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperties): Remove code to install event listeners and
        signals.

2012-12-09  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed update for the GObject bindings after r137074 and r137078.

        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (webkit_dom_test_event_target_dispatch_event):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (webkit_dom_test_interface_supplemental_method2):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
        (webkit_dom_test_obj_method_with_exception):
        (webkit_dom_test_obj_with_script_state_void_exception):
        (webkit_dom_test_obj_with_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
        (webkit_dom_test_obj_strict_function):
        (webkit_dom_test_obj_get_attr_with_getter_exception):
        (webkit_dom_test_obj_set_attr_with_setter_exception):
        (webkit_dom_test_obj_get_string_attr_with_getter_exception):
        (webkit_dom_test_obj_set_string_attr_with_setter_exception):
        (webkit_dom_test_obj_get_with_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):

2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        Fix the GError check in GObject DOM bindings.

        Reviewed by Xan Lopez.

        Previous commit introduced a check to make sure the passed GError
        is valid in all DOM methods receiving an error.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetGReturnMacro): Check that the passed GError either is NULL or
        the pointer has been initialized to NULL.

2012-12-09  Leo Yang  <leoyang@rim.com>

        [BlackBerry] Adapt to name change of createNetworkBufferByCopyingData()
        https://bugs.webkit.org/show_bug.cgi?id=104449

        Reviewed by Rob Buis.

        Name change no new tests.

        * platform/network/blackberry/rss/RSSFilterStream.cpp:
        (WebCore::RSSFilterStream::handleRSSContent):

2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Clean up g_return macros usage in GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=101079

        Reviewed by Xan Lopez.

        Several improvements:

          - Move g_return macros at the beginning of the methods.
          - Use them only to check parameters of public API.
          - Use GObject macros to check GObjects.
          - Check also GError parameters.
          - Use early returns in kit and core methods, since they should
            work even if g_return macros are disabled handling NULL
            gracefully.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetGReturnMacro):
        (GenerateFunction):
        (GenerateCFile):
        (Generate):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapFloat64Array):
        (webkit_dom_float64array_foo):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestActiveDOMObject):
        (webkit_dom_test_active_dom_object_exciting_function):
        (webkit_dom_test_active_dom_object_post_message):
        (webkit_dom_test_active_dom_object_get_exciting_attr):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestCallback):
        (webkit_dom_test_callback_callback_with_no_param):
        (webkit_dom_test_callback_callback_with_class1param):
        (webkit_dom_test_callback_callback_with_class2param):
        (webkit_dom_test_callback_callback_with_non_bool_return_type):
        (webkit_dom_test_callback_callback_with_string_list):
        (webkit_dom_test_callback_callback_with_boolean):
        (webkit_dom_test_callback_callback_requires_this_to_pass):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestCustomNamedGetter):
        (webkit_dom_test_custom_named_getter_another_function):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestEventConstructor):
        (webkit_dom_test_event_constructor_get_attr1):
        (webkit_dom_test_event_constructor_get_attr2):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestEventTarget):
        (webkit_dom_test_event_target_item):
        (webkit_dom_test_event_target_dispatch_event):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestException):
        (webkit_dom_test_exception_get_name):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestInterface):
        (webkit_dom_test_interface_supplemental_method1):
        (webkit_dom_test_interface_supplemental_method2):
        (webkit_dom_test_interface_supplemental_method4):
        (webkit_dom_test_interface_get_supplemental_str1):
        (webkit_dom_test_interface_get_supplemental_str2):
        (webkit_dom_test_interface_set_supplemental_str2):
        (webkit_dom_test_interface_get_supplemental_node):
        (webkit_dom_test_interface_set_supplemental_node):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestMediaQueryListListener):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestNamedConstructor):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestNode):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestObj):
        (webkit_dom_test_obj_void_method):
        (webkit_dom_test_obj_void_method_with_args):
        (webkit_dom_test_obj_long_method):
        (webkit_dom_test_obj_long_method_with_args):
        (webkit_dom_test_obj_obj_method):
        (webkit_dom_test_obj_obj_method_with_args):
        (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
        (webkit_dom_test_obj_serialized_value):
        (webkit_dom_test_obj_idb_key):
        (webkit_dom_test_obj_options_object):
        (webkit_dom_test_obj_method_with_exception):
        (webkit_dom_test_obj_with_script_state_void):
        (webkit_dom_test_obj_with_script_state_obj):
        (webkit_dom_test_obj_with_script_state_void_exception):
        (webkit_dom_test_obj_with_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
        (webkit_dom_test_obj_method_with_optional_arg):
        (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
        (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
        (webkit_dom_test_obj_method_with_optional_string):
        (webkit_dom_test_obj_method_with_optional_string_is_undefined):
        (webkit_dom_test_obj_method_with_optional_string_is_null_string):
        (webkit_dom_test_obj_conditional_method1):
        (webkit_dom_test_obj_conditional_method2):
        (webkit_dom_test_obj_conditional_method3):
        (webkit_dom_test_obj_class_method):
        (webkit_dom_test_obj_class_method_with_optional):
        (webkit_dom_test_obj_overloaded_method1):
        (webkit_dom_test_obj_convert1):
        (webkit_dom_test_obj_convert2):
        (webkit_dom_test_obj_convert4):
        (webkit_dom_test_obj_convert5):
        (webkit_dom_test_obj_mutable_point_function):
        (webkit_dom_test_obj_immutable_point_function):
        (webkit_dom_test_obj_orange):
        (webkit_dom_test_obj_strict_function):
        (webkit_dom_test_obj_variadic_string_method):
        (webkit_dom_test_obj_variadic_double_method):
        (webkit_dom_test_obj_variadic_node_method):
        (webkit_dom_test_obj_get_read_only_long_attr):
        (webkit_dom_test_obj_get_read_only_string_attr):
        (webkit_dom_test_obj_get_read_only_test_obj_attr):
        (webkit_dom_test_obj_get_short_attr):
        (webkit_dom_test_obj_set_short_attr):
        (webkit_dom_test_obj_get_unsigned_short_attr):
        (webkit_dom_test_obj_set_unsigned_short_attr):
        (webkit_dom_test_obj_get_long_attr):
        (webkit_dom_test_obj_set_long_attr):
        (webkit_dom_test_obj_get_long_long_attr):
        (webkit_dom_test_obj_set_long_long_attr):
        (webkit_dom_test_obj_get_unsigned_long_long_attr):
        (webkit_dom_test_obj_set_unsigned_long_long_attr):
        (webkit_dom_test_obj_get_string_attr):
        (webkit_dom_test_obj_set_string_attr):
        (webkit_dom_test_obj_get_test_obj_attr):
        (webkit_dom_test_obj_set_test_obj_attr):
        (webkit_dom_test_obj_get_xml_obj_attr):
        (webkit_dom_test_obj_set_xml_obj_attr):
        (webkit_dom_test_obj_get_create):
        (webkit_dom_test_obj_set_create):
        (webkit_dom_test_obj_get_reflected_string_attr):
        (webkit_dom_test_obj_set_reflected_string_attr):
        (webkit_dom_test_obj_get_reflected_integral_attr):
        (webkit_dom_test_obj_set_reflected_integral_attr):
        (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
        (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
        (webkit_dom_test_obj_get_reflected_boolean_attr):
        (webkit_dom_test_obj_set_reflected_boolean_attr):
        (webkit_dom_test_obj_get_reflected_url_attr):
        (webkit_dom_test_obj_set_reflected_url_attr):
        (webkit_dom_test_obj_get_reflected_custom_integral_attr):
        (webkit_dom_test_obj_set_reflected_custom_integral_attr):
        (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
        (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
        (webkit_dom_test_obj_get_reflected_custom_url_attr):
        (webkit_dom_test_obj_set_reflected_custom_url_attr):
        (webkit_dom_test_obj_get_attr_with_getter_exception):
        (webkit_dom_test_obj_set_attr_with_getter_exception):
        (webkit_dom_test_obj_get_attr_with_setter_exception):
        (webkit_dom_test_obj_set_attr_with_setter_exception):
        (webkit_dom_test_obj_get_string_attr_with_getter_exception):
        (webkit_dom_test_obj_set_string_attr_with_getter_exception):
        (webkit_dom_test_obj_get_string_attr_with_setter_exception):
        (webkit_dom_test_obj_set_string_attr_with_setter_exception):
        (webkit_dom_test_obj_get_with_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute):
        (webkit_dom_test_obj_get_with_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_get_conditional_attr1):
        (webkit_dom_test_obj_set_conditional_attr1):
        (webkit_dom_test_obj_get_conditional_attr2):
        (webkit_dom_test_obj_set_conditional_attr2):
        (webkit_dom_test_obj_get_conditional_attr3):
        (webkit_dom_test_obj_set_conditional_attr3):
        (webkit_dom_test_obj_get_any_attribute):
        (webkit_dom_test_obj_set_any_attribute):
        (webkit_dom_test_obj_get_content_document):
        (webkit_dom_test_obj_get_mutable_point):
        (webkit_dom_test_obj_set_mutable_point):
        (webkit_dom_test_obj_get_immutable_point):
        (webkit_dom_test_obj_set_immutable_point):
        (webkit_dom_test_obj_get_strawberry):
        (webkit_dom_test_obj_set_strawberry):
        (webkit_dom_test_obj_get_strict_float):
        (webkit_dom_test_obj_set_strict_float):
        (webkit_dom_test_obj_get_description):
        (webkit_dom_test_obj_get_id):
        (webkit_dom_test_obj_set_id):
        (webkit_dom_test_obj_get_hash):
        (webkit_dom_test_obj_get_replaceable_attribute):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestSerializedScriptValueInterface):
        (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
        (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
        (webkit_dom_test_serialized_script_value_interface_get_value):
        (webkit_dom_test_serialized_script_value_interface_set_value):
        (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
        (webkit_dom_test_serialized_script_value_interface_get_cached_value):
        (webkit_dom_test_serialized_script_value_interface_set_cached_value):
        (webkit_dom_test_serialized_script_value_interface_get_ports):
        (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):

2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use a private struct and placement new syntax in GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=101074

        Reviewed by Xan Lopez.

        It allows to use RefPtr for the wrapped object and it simplifies
        the code. Only the classes deriving from WebKitDOMObject keep a
        reference of the wrapped object in a private struct. The wrapped
        object is added to the cache in GObjectClass::constructor() and
        removed in GObjectClass::finalize().

        * bindings/gobject/WebKitDOMBinding.cpp:
        (WebKit::createWrapper):
        (WebKit::kit):
        (WebKit::wrapEventTarget):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetParentImplClassName):
        (GenerateProperties):
        (GenerateCFile):
        (Generate):
        (WriteData):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapFloat64Array):
        (webkit_dom_float64array_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (_WebKitDOMTestActiveDOMObjectPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestActiveDOMObject):
        (webkit_dom_test_active_dom_object_finalize):
        (webkit_dom_test_active_dom_object_constructor):
        (webkit_dom_test_active_dom_object_class_init):
        (webkit_dom_test_active_dom_object_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (_WebKitDOMTestCallbackPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestCallback):
        (webkit_dom_test_callback_finalize):
        (webkit_dom_test_callback_constructor):
        (webkit_dom_test_callback_class_init):
        (webkit_dom_test_callback_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (_WebKitDOMTestCustomNamedGetterPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestCustomNamedGetter):
        (webkit_dom_test_custom_named_getter_finalize):
        (webkit_dom_test_custom_named_getter_constructor):
        (webkit_dom_test_custom_named_getter_class_init):
        (webkit_dom_test_custom_named_getter_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (_WebKitDOMTestEventConstructorPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestEventConstructor):
        (webkit_dom_test_event_constructor_finalize):
        (webkit_dom_test_event_constructor_constructor):
        (webkit_dom_test_event_constructor_class_init):
        (webkit_dom_test_event_constructor_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (_WebKitDOMTestEventTargetPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestEventTarget):
        (webkit_dom_test_event_target_finalize):
        (webkit_dom_test_event_target_constructor):
        (webkit_dom_test_event_target_class_init):
        (webkit_dom_test_event_target_init):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (_WebKitDOMTestExceptionPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestException):
        (webkit_dom_test_exception_finalize):
        (webkit_dom_test_exception_constructor):
        (webkit_dom_test_exception_class_init):
        (webkit_dom_test_exception_init):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (_WebKitDOMTestInterfacePrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestInterface):
        (webkit_dom_test_interface_finalize):
        (webkit_dom_test_interface_constructor):
        (webkit_dom_test_interface_class_init):
        (webkit_dom_test_interface_init):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (_WebKitDOMTestMediaQueryListListenerPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestMediaQueryListListener):
        (webkit_dom_test_media_query_list_listener_finalize):
        (webkit_dom_test_media_query_list_listener_constructor):
        (webkit_dom_test_media_query_list_listener_class_init):
        (webkit_dom_test_media_query_list_listener_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (_WebKitDOMTestNamedConstructorPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestNamedConstructor):
        (webkit_dom_test_named_constructor_finalize):
        (webkit_dom_test_named_constructor_constructor):
        (webkit_dom_test_named_constructor_class_init):
        (webkit_dom_test_named_constructor_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestNode):
        (webkit_dom_test_node_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (_WebKitDOMTestObjPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestObj):
        (webkit_dom_test_obj_finalize):
        (webkit_dom_test_obj_constructor):
        (webkit_dom_test_obj_class_init):
        (webkit_dom_test_obj_init):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        (_WebKitDOMTestOverloadedConstructorsPrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestOverloadedConstructors):
        (webkit_dom_test_overloaded_constructors_finalize):
        (webkit_dom_test_overloaded_constructors_constructor):
        (webkit_dom_test_overloaded_constructors_class_init):
        (webkit_dom_test_overloaded_constructors_init):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestSerializedScriptValueInterface):
        (webkit_dom_test_serialized_script_value_interface_finalize):
        (webkit_dom_test_serialized_script_value_interface_constructor):
        (webkit_dom_test_serialized_script_value_interface_class_init):
        (webkit_dom_test_serialized_script_value_interface_init):

2012-12-09  Jon Lee  <jonlee@apple.com>

        [WK2] Move button image to injected bundle
        https://bugs.webkit.org/show_bug.cgi?id=104107
        <rdar://problem/12813842>

        Reviewed by Simon Fraser.

        Update RenderSnapshottedPlugIn to retrieve the start button image from the ChromeClient. Expand the
        kinds of images available for use as the button. Try to find the best sized button to use for the plug-in,
        otherwise use no image at all.

        * rendering/RenderSnapshottedPlugIn.h: Add an enum representing the size to use. Remove the label rect
        variable since it is unneeded.
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::startLabelImage): Maintain a cache of the images for reuse. Index into the
        array using the enum. If the image has been loaded, or an attempt was made, then return the result. Otherwise
        ask the chrome client for the image.
        (WebCore::RenderSnapshottedPlugIn::paintLabel): Determine the proper label to use, and paint if the image is
        available.
        (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Compare the label size with the provided content
        box. Return a LayoutRect representing the label's placement. If it doesn't fit, return an empty rect.
        (WebCore::RenderSnapshottedPlugIn::layout): The rect is not needed because it is all determined at paint time.

        * page/ChromeClient.h:
        (WebCore::ChromeClient::plugInStartLabelImage): Added.

        * WebCore.exp.in: Expose GraphicsContext::drawNativeImage() for WKImageCG.cpp.
        * WebCore.xcodeproj/project.pbxproj: Remove start button assets.
        * Resources/startButton.png: Removed.
        * Resources/startButton@2x.png: Removed.

2012-12-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137053.
        http://trac.webkit.org/changeset/137053
        https://bugs.webkit.org/show_bug.cgi?id=104471

        Broke PerformanceTests/Parser/html-parser.html (Requested by
        mkwst_ on #webkit).

        * bindings/ScriptControllerBase.cpp:
        (WebCore::ScriptController::canExecuteScripts):

2012-12-09  Kangil Han  <kangil.han@samsung.com>

        Fix unused parameter compile warnings
        https://bugs.webkit.org/show_bug.cgi?id=104463

        Reviewed by Kentaro Hara.

        Remove compile warning messages by omitting parameter name.

        * platform/graphics/surfaces/GraphicsSurface.cpp:
        (WebCore::GraphicsSurface::GraphicsSurface):

2012-12-08  Rakesh KN  <rakeshchaitan@gmail.com>

        Build break if SVG is disabled
        https://bugs.webkit.org/show_bug.cgi?id=104452

        Reviewed by Darin Adler.

        Build breaking after r136975 if SVG is disabled.
        No new tests required.

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        As document is not an argument anymore, removing UNUSED_PARAM against it.
        * rendering/FilterEffectRenderer.h:
        Added forward declaration for RenderObject.

2012-12-08  Mike West  <mkwst@chromium.org>

        Log to console when script is blocked by sandbox attributes.
        https://bugs.webkit.org/show_bug.cgi?id=104365

        Reviewed by Ojan Vafai.

        Adds a console message to cover script execution blocked within the
        context of a sandboxed frame which lacks the 'allow-scripts' permission.

        * bindings/ScriptControllerBase.cpp:
        (WebCore::ScriptController::canExecuteScripts):
            Log a warning when sandboxing flags block script execution.

2012-12-08  No'am Rosenthal  <noam@webkit.org>

        Use background color for GraphicsLayers when applicable
        https://bugs.webkit.org/show_bug.cgi?id=103786

        Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
        1. The layer doesn't paint its own content, other than background/decoration.
        2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
        3. The image has only a background color, and no background image.
        4. background-composite is set to source-over, and background-clip is anything apart from text.
        5. The port supports setContentsToBackgroundColor.

        This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
        for that layer, but instead draw that solid color directly.
        In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
        a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
        background-clip property.

        Reviewed by Simon Fraser.

        Tests: compositing/background-color/background-color-alpha.html
               compositing/background-color/background-color-change-to-text.html
               compositing/background-color/background-color-composite.html
               compositing/background-color/background-color-container.html
               compositing/background-color/background-color-content-clip.html
               compositing/background-color/background-color-padding-change.html
               compositing/background-color/background-color-padding-clip.html
               compositing/background-color/background-color-simple.html
               compositing/background-color/background-color-text-change.html
               compositing/background-color/background-color-text-clip.html

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::supportsBackgroundColorContent):
            Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
            Currently only the MAC implementation and TextureMapper falls under that category.

        * rendering/RenderBox.h:
        (WebCore::RenderBox::paddingBoxRect):
            Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
            background-clip: padding.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
            Update the background color if needed, for every configuration change.
            This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.

        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
            Move the contentsRect logic to updateContentsRect.

        (WebCore::RenderLayerBacking::updateContentsRect):
            Use the background box when directly compositing backgrounds.

        (WebCore::RenderLayerBacking::updateBackgroundColor):
            Set the background color if applicable, otherwise set to trasnparent and clear.
            This was not needed in the past because background colors were only used for the special case of full-screen.

        (WebCore::supportsDirectBoxDecorationsComposition):
            Helper function to determine whether a particular background can be directly composited. Right now only 
            background color can be composited, and only if the GraphicsLayer implementation supports background colors.
            Also we don't yet support background-clip: text and any background-composite other than source-over.

        (WebCore::RenderLayerBacking::paintsBoxDecorations):
            Apply the new supportsDirectBoxDecorationsComposition logic.

        (WebCore::RenderLayerBacking::contentsBox):
            Remove unnecessary local variable.

        (WebCore::backgroundRectForBox):
        (WebCore::RenderLayerBacking::backgroundBox):
            Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
            The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as 
            GraphicsLayer::contentsRect expects snapped pixels.


2012-12-08  Patrick Gansterer  <paroga@webkit.org>

        Build fix for WinCE after r137011.

        * platform/graphics/GraphicsContext.h:
        * platform/graphics/wince/GraphicsContextWinCE.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        (WebCore::GraphicsContext::drawBitmap):
        * platform/graphics/wince/ImageBufferWinCE.cpp:
        (WebCore::BufferedImage::draw):
        (WebCore::ImageBuffer::draw):
        * platform/graphics/wince/ImageWinCE.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        (WebCore::BitmapImage::draw):
        * platform/graphics/wince/SharedBitmap.cpp:
        (WebCore::SharedBitmap::draw):
        * platform/graphics/wince/SharedBitmap.h:

2012-12-08  Gavin Peters  <gavinp@chromium.org>

        Add status events on <link rel=prerender> elements.
        https://bugs.webkit.org/show_bug.cgi?id=96474

        Reviewed by Adam Barth.

        The new PrerenderStatusEvent is sent to link elements when
        prerenders are started by the embedder, and also sent when they
        are stopped. Pages using this feature can now serialize launching
        prerenders, and track timing performance.

        Tested in a new WebKitUnitTest for the chromium port.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/EventNames.h:
        (WebCore):
        * html/HTMLLinkElement.cpp:
        (WebCore):
        (WebCore::HTMLLinkElement::didStartLinkPrerender):
        (WebCore::HTMLLinkElement::didStopLinkPrerender):
        (WebCore::HTMLLinkElement::didSendLoadForLinkPrerender):
        (WebCore::HTMLLinkElement::didSendDOMContentLoadedForLinkPrerender):
        * html/HTMLLinkElement.h:
        (HTMLLinkElement):
        * loader/LinkLoader.cpp:
        (WebCore::LinkLoader::didStartPrerender):
        (WebCore):
        (WebCore::LinkLoader::didStopPrerender):
        (WebCore::LinkLoader::didSendLoadForPrerender):
        (WebCore::LinkLoader::didSendDOMContentLoadedForPrerender):
        (WebCore::LinkLoader::loadLink):
        * loader/LinkLoader.h:
        (LinkLoader):
        * loader/LinkLoaderClient.h:
        (LinkLoaderClient):
        * loader/Prerenderer.cpp:
        (WebCore::Prerenderer::render):
        * loader/Prerenderer.h:
        (WebCore):
        (Prerenderer):
        * platform/PrerenderClient.h: Copied from Source/WebCore/loader/LinkLoaderClient.h.
        (WebCore):
        (PrerenderClient):
        (WebCore::PrerenderClient::~PrerenderClient):
        * platform/PrerenderHandle.h:
        (WebCore):
        (PrerenderHandle):
        * platform/chromium/Prerender.cpp:
        (WebCore::Prerender::Prerender):
        (WebCore::Prerender::removeClient):
        (WebCore):
        (WebCore::Prerender::add):
        (WebCore::Prerender::cancel):
        (WebCore::Prerender::abandon):
        (WebCore::Prerender::didStartPrerender):
        (WebCore::Prerender::didStopPrerender):
        (WebCore::Prerender::didSendLoadForPrerender):
        (WebCore::Prerender::didSendDOMContentLoadedForPrerender):
        * platform/chromium/Prerender.h:
        (WebKit):
        (WebCore):
        (Prerender):
        * platform/chromium/PrerenderHandle.cpp:
        (WebCore::PrerenderHandle::create):
        (WebCore::PrerenderHandle::PrerenderHandle):
        (WebCore::PrerenderHandle::~PrerenderHandle):
        (WebCore::PrerenderHandle::removeClient):
        (WebCore):
        * platform/chromium/support/WebPrerender.cpp:
        (WebKit::WebPrerender::toPrerender):
        (WebKit):
        (WebKit::WebPrerender::assign):
        (WebKit::WebPrerender::isNull):
        (WebKit::WebPrerender::didStartPrerender):
        (WebKit::WebPrerender::didStopPrerender):
        (WebKit::WebPrerender::didSendLoadForPrerender):
        (WebKit::WebPrerender::didSendDOMContentLoadedForPrerender):

2012-12-08  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Martin Robinson.

        Update the Chromium/Chrome version we advertise in our User-Agent
        string to version 25, to better match our current reality.

        * platform/gtk/UserAgentGtk.cpp:
        (WebCore::standardUserAgent):

2012-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r137006.
        http://trac.webkit.org/changeset/137006
        https://bugs.webkit.org/show_bug.cgi?id=104446

        Broke plugin painting on Mac (youtube, etc.) (Requested by
        thorton_ on #webkit).

        * platform/graphics/GraphicsLayer.h:
        (GraphicsLayer):
        * rendering/RenderBox.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
        (WebCore::clipBox):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::updateDrawsContent):
        (WebCore::RenderLayerBacking::updateBackgroundColor):
        (WebCore::RenderLayerBacking::paintsBoxDecorations):
        (WebCore::RenderLayerBacking::contentChanged):
        (WebCore::RenderLayerBacking::updateImageContents):
        (WebCore::RenderLayerBacking::contentsBox):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):

2012-12-08  Wei James  <james.wei@intel.com>

        Remove incorrect ASSERT for m_error in CachedResource
        https://bugs.webkit.org/show_bug.cgi?id=104333

        Reviewed by Nate Chapin.

        This assertion was brought in https://bugs.webkit.org/show_bug.cgi?id=100901 
        When the request is canceled, m_error.isNull() should be true.

        run webkit_unit_tests Debug build.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::stopLoading):

2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>

        Qt Linux Minimal build fix after r136975.

        * dom/ElementRareData.h:
        (ElementRareData):

2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>

        Qt Linux Minimal build fix attempt after r136959.

        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::layerTreeDidChange):
        (WebCore::InspectorInstrumentation::renderLayerDestroyed):

2012-12-08  Xan Lopez  <xlopez@igalia.com>

        Build fix after r137003. Wrap Microdata only sections with ENABLE(MICRODATA).

        * dom/NodeRareData.h:
        (NodeRareData):

2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix after r137003. Wrap NodeMutationObserverData with ENABLE(MUTATION_OBSERVERS).

        * dom/NodeRareData.h:
        (NodeRareData):

2012-12-08  Patrick Gansterer  <paroga@webkit.org>

        Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r136975.

        * rendering/svg/SVGResources.cpp:
        (WebCore::SVGResources::buildCachedResources):

2012-12-08  Adam Klein  <adamk@chromium.org>

        HTMLTemplateElement.innerHTML should be parsed into the template contents owner document
        https://bugs.webkit.org/show_bug.cgi?id=104407

        Reviewed by Eric Seidel.

        When parsing via innerHTML, ensure that all operations (including the
        initial fragment creation) occur in the proper document to avoid,
        e.g., images loading while being parsed into the template contents.
        This matches the parsing behavior during page load.

        Test: fast/dom/HTMLTemplateElement/innerHTML-inert.html

        * editing/markup.cpp:
        (WebCore::createFragmentForInnerOuterHTML):

2012-12-08  ChangSeok Oh  <shivamidow@gmail.com>

        Assertion failed at WebCore::RedirectedXCompositeWindow::context()
        https://bugs.webkit.org/show_bug.cgi?id=104349

        Reviewed by Martin Robinson.

        We should return GLContext if m_needsContext is CreateGLContext. By the way
        CreateGLContext is a enum value and its default value is 0. So checking
        ASSERT(m_needsContext) causes a crash on debug build.
        ASSERT(m_needsContext == CreateGLContext) is better here.

        No new tests since we can verify this with already existing AC tests.

        * platform/gtk/RedirectedXCompositeWindow.cpp:
        (WebCore::RedirectedXCompositeWindow::context):

2012-12-07  Rik Cabanier  <cabanier@adobe.com>

        Extend platform layer so it can pass blend modes to the compositing calls
        https://bugs.webkit.org/show_bug.cgi?id=104176

        Reviewed by Dirk Schulze.

        Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context 

        No new tests, no new functionality.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * platform/graphics/BitmapImage.h:
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::draw):
        * platform/graphics/CrossfadeGeneratedImage.h:
        (CrossfadeGeneratedImage):
        * platform/graphics/GeneratedImage.h:
        (GeneratedImage):
        * platform/graphics/GeneratorGeneratedImage.cpp:
        (WebCore::GeneratorGeneratedImage::draw):
        * platform/graphics/GeneratorGeneratedImage.h:
        (GeneratorGeneratedImage):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore):
        (WebCore::GraphicsContext::drawImageBuffer):
        (WebCore::GraphicsContext::setCompositeOperation):
        * platform/graphics/GraphicsContext.h:
        (WebCore::GraphicsContextState::GraphicsContextState):
        (GraphicsContextState):
        (GraphicsContext):
        * platform/graphics/Image.cpp:
        (WebCore::Image::draw):
        (WebCore::Image::drawTiled):
        * platform/graphics/Image.h:
        (Image):
        * platform/graphics/ImageBuffer.h:
        (ImageBuffer):
        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage):
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::draw):
        * platform/graphics/cg/PDFDocumentImage.h:
        (PDFDocumentImage):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/qt/ImageQt.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/qt/StillImageQt.cpp:
        (WebCore::StillImage::draw):
        * platform/graphics/qt/StillImageQt.h:
        (StillImage):
        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
        (BitmapImageSingleFrameSkia):
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::BitmapImage::draw):
        (WebCore::BitmapImageSingleFrameSkia::draw):
        * platform/graphics/win/ImageCGWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawSVGToImageBuffer):
        (WebCore::SVGImage::draw):
        (WebCore::SVGImage::nativeImageForCurrentFrame):
        * svg/graphics/SVGImage.h:
        (SVGImage):

2012-12-07  Alpha Lam  <hclam@chromium.org>

        [chromium] ImageDecodingStore should cache partially decoded images
        https://bugs.webkit.org/show_bug.cgi?id=103796

        Reviewed by Stephen White.

        Implement caching for incomplete images, meaning the image is partially
        decoded. The image is cached together with partially decoded ImageDecoder.
        This allows decoding to resume in a later time.

        Caching logic for incomplete images is implemented in ImageDecodingStore.

        Logic for resuming image decoding is implemented in ImageFrameGenerator.

        ImageDecodingStore allows storing incomplete image with the decoder.
        The cache entry can be used in a later time to read and write (i.e. resume
        decoding.) To avoid the same entry being written and read at the same time,
        an incomplete entry can be used by one user only. Concurrent access to
        an incomplete entry should never happen and is checked by an assert.
        An entry can becomes complete when decoding is finished. In this case
        the associated decoder is deleted. Once an entry becomes complete concurrent
        read is allowed.

        ImageFrameGenerator performs the logic to resume image decoding. It
        performs the following operations in sequence:
        - Try to lookup a complete image
        - Try to perform scaling on a complete image
        - Try to lookup an incomplete image and resume decoding & scaling
        - Everything fails, start decoding from scratch
        The entire sequence of operations in under a mutex, hence there will be
        no more than 1 user of an incomplete cache entry at the same time.

        New unit tests in ImageDecodingStoreTest and ImageFrameGeneratorTest.

        * platform/graphics/chromium/ImageDecodingStore.cpp:
        (WebCore::ImageDecodingStore::lockCache):
        Change of method definition to return an image and ImageDecoder.
        (WebCore::ImageDecodingStore::unlockCache):
        (WebCore::ImageDecodingStore::insertAndLockCache):
        (WebCore::ImageDecodingStore::overwriteAndLockCache):
        New method to allow an incomplete cache entry be overwritten.
        (WebCore):
        * platform/graphics/chromium/ImageDecodingStore.h:
        (ImageDecodingStore):
        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::cachedImage):
        (WebCore::ImageDecodingStore::CacheEntry::cachedDecoder):
        (WebCore::ImageDecodingStore::CacheEntry::releaseCachedDecoder):
        (WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
        New method to allow an incomplete image be overwitten.
        (CacheEntry):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::decodeAndScale):
        (WebCore::ImageFrameGenerator::tryToLockCompleteCache):
        (WebCore::ImageFrameGenerator::tryToScale):
        (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
        New method to lookup an incomplete cache entry and resume decoding.
        (WebCore):
        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
        (WebCore::ImageFrameGenerator::decoder):
        New helper method to do decoding for a full sized image.
        (WebCore::ImageFrameGenerator::prepareData):
        New helper method to prepare data safely.
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (ImageFrameGenerator):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        * platform/graphics/chromium/ScaledImageFragment.h:
        (WebCore::ScaledImageFragment::setIsComplete):

2012-12-07  Alexis Menard  <alexis@webkit.org>

        Enable CSS3 position offset for CSS Masking.
        https://bugs.webkit.org/show_bug.cgi?id=104252

        Reviewed by Dirk Schulze.

        To follow CSS3 background-position, mask-position should also support
        the new <position> type (http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property).
        Now the code is shared between background and mask I renamed the
        functions used to be more generic. Note that the feature flag is not
        meant to stay and will be removed in a following commit.

        No new tests : I modified LayoutTests/fast/masking/parsing-mask.html to
        cover the new feature.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::createPositionListForLayer):
        * css/CSSParser.cpp:
        (WebCore::isFillPositionKeyword):
        (WebCore::CSSParser::parse4ValuesFillPosition):
        (WebCore::CSSParser::parse3ValuesFillPosition):
        (WebCore::CSSParser::isPotentialPositionValue):
        (WebCore::CSSParser::parseFillPosition):
        (WebCore::CSSParser::parse2ValuesFillPosition):
        (WebCore::CSSParser::parseFillProperty):
        (WebCore::CSSParser::parseTransformOriginShorthand):
        (WebCore::CSSParser::parseRadialGradient):
        (WebCore::CSSParser::parsePerspectiveOrigin):
        * css/CSSParser.h:
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapFillXPosition):
        (WebCore::CSSToStyleMap::mapFillYPosition):

2012-12-07  No'am Rosenthal  <noam@webkit.org>

        Use background color for GraphicsLayers when applicable
        https://bugs.webkit.org/show_bug.cgi?id=103786

        Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
        1. The layer doesn't paint its own content, other than background/decoration.
        2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
        3. The image has only a background color, and no background image.
        4. background-composite is set to source-over, and background-clip is anything apart from text.
        5. The port supports setContentsToBackgroundColor.

        This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
        for that layer, but instead draw that solid color directly.
        In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
        a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
        background-clip property.

        Reviewed by Simon Fraser.

        Tests: compositing/background-color/background-color-alpha.html
               compositing/background-color/background-color-change-to-text.html
               compositing/background-color/background-color-composite.html
               compositing/background-color/background-color-container.html
               compositing/background-color/background-color-content-clip.html
               compositing/background-color/background-color-padding-change.html
               compositing/background-color/background-color-padding-clip.html
               compositing/background-color/background-color-simple.html
               compositing/background-color/background-color-text-change.html
               compositing/background-color/background-color-text-clip.html

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::supportsBackgroundColorContent):
            Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
            Currently only the MAC implementation and TextureMapper falls under that category.

        * rendering/RenderBox.h:
        (WebCore::RenderBox::paddingBoxRect):
            Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
            background-clip: padding.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
            Update the background color if needed, for every configuration change.
            This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.

        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
            Move the contentsRect logic to updateContentsRect.

        (WebCore::RenderLayerBacking::updateContentsRect):
            Use the background box when directly compositing backgrounds.

        (WebCore::RenderLayerBacking::updateBackgroundColor):
            Set the background color if applicable, otherwise set to trasnparent and clear.
            This was not needed in the past because background colors were only used for the special case of full-screen.

        (WebCore::supportsDirectBoxDecorationsComposition):
            Helper function to determine whether a particular background can be directly composited. Right now only 
            background color can be composited, and only if the GraphicsLayer implementation supports background colors.
            Also we don't yet support background-clip: text and any background-composite other than source-over.

        (WebCore::RenderLayerBacking::paintsBoxDecorations):
            Apply the new supportsDirectBoxDecorationsComposition logic.

        (WebCore::RenderLayerBacking::contentsBox):
            Remove unnecessary local variable.

        (WebCore::backgroundRectForBox):
        (WebCore::RenderLayerBacking::backgroundBox):
            Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
            The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as 
            GraphicsLayer::contentsRect expects snapped pixels.


2012-12-06  Ryosuke Niwa  <rniwa@webkit.org>

        Shrink the size of NodeRareData by moving pointers into separate objects
        https://bugs.webkit.org/show_bug.cgi?id=104312

        Reviewed by Andreas Kling.

        This patch does three things:
        1. Move ChildNodeList back into NodeListsNodeData.
        2. Move m_mutationObserverRegistry & m_transientMutationObserverRegistry into a separate object owned by NodeRareData.
        3. Move m_itemProp, m_itemRef, m_itemType & into a separate object owned by NodeRareData.

        Moving m_childNodeList from NodeRareData to NodeListsNodeData also has a nice side-effect of making ChildNodeList
        behave more like other LiveNodeLists.

        This patch also fixes Mac build when microdata is enabled.

        There should be no user-visible behavior change.

        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::~ChildNodeList):
        * dom/Node.cpp:
        (WebCore::Node::childNodes): Moved the code to create ChildNodeList into NodeListsNodeData to match other node lists.
        (WebCore::Node::invalidateNodeListCachesInAncestors):
        (WebCore): Removed removeCachedChildNodeList.
        * dom/Node.h:
        (Node):
        * dom/NodeRareData.cpp:
        (WebCore): Assert the size of NodeRareData at compilation time.
        (WebCore::NodeListsNodeData::reportMemoryUsage):
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::clearChildNodeListCache): Moved from NodeRareData.
        (WebCore::NodeListsNodeData::ensureChildNodeList): Extracted from Node::childNodes.
        (WebCore::NodeListsNodeData::removeChildNodeList): Added.
        (WebCore::NodeListsNodeData::NodeListsNodeData): Initialize m_childNodeList.
        (WebCore::NodeRareData::NodeMutationObserverData): Extracted from NodeRareData.
        (WebCore::NodeRareData::NodeMutationObserverData::create):
        (WebCore::NodeRareData::NodeMicroDataTokenLists): Ditto.
        (WebCore::NodeRareData::NodeMicroDataTokenLists::create):
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::ensureNodeLists): Merged setNodeLists since it's not called elsewhere.
        (WebCore::NodeRareData::mutationObserverRegistry):
        (WebCore::NodeRareData::ensureMutationObserverRegistry): Added.
        (WebCore::NodeRareData::transientMutationObserverRegistry):
        (WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
        (WebCore::NodeRareData::ensureMicroDataTokenLists):
        (NodeRareData):
        (WebCore::NodeRareData::itemProp):
        (WebCore::NodeRareData::setItemProp):
        (WebCore::NodeRareData::itemRef):
        (WebCore::NodeRareData::setItemRef):
        (WebCore::NodeRareData::itemType):
        (WebCore::NodeRareData::setItemType):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::propertyNodeList): Renamed from namedItem since its return type, PropertyNodeList,
        is different from that, Node, of LiveNodeList::namedItem. It was shadowing the function name instead of overriding.
        * html/HTMLPropertiesCollection.h:
        (HTMLPropertiesCollection):
        * html/HTMLPropertiesCollection.idl:

2012-12-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136993.
        http://trac.webkit.org/changeset/136993
        https://bugs.webkit.org/show_bug.cgi?id=104415

        This patch breaks the mac build (Requested by cabanier on
        #webkit).

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * platform/graphics/BitmapImage.h:
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::draw):
        * platform/graphics/CrossfadeGeneratedImage.h:
        (CrossfadeGeneratedImage):
        * platform/graphics/GeneratedImage.h:
        (GeneratedImage):
        * platform/graphics/GeneratorGeneratedImage.cpp:
        (WebCore::GeneratorGeneratedImage::draw):
        * platform/graphics/GeneratorGeneratedImage.h:
        (GeneratorGeneratedImage):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore::GraphicsContext::drawImageBuffer):
        (WebCore::GraphicsContext::setCompositeOperation):
        * platform/graphics/GraphicsContext.h:
        (WebCore::GraphicsContextState::GraphicsContextState):
        (GraphicsContextState):
        (GraphicsContext):
        * platform/graphics/Image.cpp:
        (WebCore::Image::draw):
        (WebCore::Image::drawTiled):
        * platform/graphics/Image.h:
        (Image):
        * platform/graphics/ImageBuffer.h:
        (ImageBuffer):
        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage):
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::draw):
        * platform/graphics/cg/PDFDocumentImage.h:
        (PDFDocumentImage):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/qt/ImageQt.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/qt/StillImageQt.cpp:
        (WebCore::StillImage::draw):
        * platform/graphics/qt/StillImageQt.h:
        (StillImage):
        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
        (BitmapImageSingleFrameSkia):
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::BitmapImage::draw):
        (WebCore::BitmapImageSingleFrameSkia::draw):
        * platform/graphics/win/ImageCGWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawSVGToImageBuffer):
        (WebCore::SVGImage::draw):
        (WebCore::SVGImage::nativeImageForCurrentFrame):
        * svg/graphics/SVGImage.h:
        (SVGImage):

2012-12-07  Alexey Proskuryakov  <ap@apple.com>

        There is no need to change cached resource storage policy through ResourceHandleClient
        https://bugs.webkit.org/show_bug.cgi?id=104413

        Reviewed by Brady Eidson.

        This code was only needed to prevent storing responses to disk in private browsing
        mode, but we now have a storage session to take care of that in a cleaner and more
        reliable way.

        * loader/ResourceLoader.cpp:
        * loader/ResourceLoader.h: (WebCore::ResourceLoader::receivedCancellation):
        * platform/network/ResourceHandleClient.h:
        * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse):
        * platform/network/mac/ResourceHandleMac.mm:
        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):

2012-12-07  Adam Klein  <adamk@chromium.org>

        MutationRecord addedNodes/removedNodes should never be null
        https://bugs.webkit.org/show_bug.cgi?id=98921

        Reviewed by Ryosuke Niwa.

        Per an update to the DOM4 spec that matches Gecko's behavior,
        addedNodes/removedNodes should be empty NodeLists on 'attributes'
        and 'characterData' records, rather than null.

        This is accomplished with lazy initialization of addedNodes/removedNodes
        attributes on 'attributes'/'characterData' records and the
        addition of a new StaticNodeList::createEmpty() factory method.

        * dom/MutationRecord.cpp:
        * dom/MutationRecord.h:
        (MutationRecord):
        * dom/StaticNodeList.h:
        (WebCore::StaticNodeList::adopt):
        (StaticNodeList):
        (WebCore::StaticNodeList::createEmpty):
        (WebCore::StaticNodeList::StaticNodeList):

2012-12-07  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed build correction after 136959.

        The initialization list should follow the same compiler macro
        exclusions as the class members.

        * inspector/InstrumentingAgents.h: Add USE(ACCELERATED_COMPOSITING)
          guards around m_inspectorLayerTreeAgent as this does not exist
          when the guard is false.

2012-12-07  Rik Cabanier  <cabanier@adobe.com>

        Extend platform layer so it can pass blend modes to the compositing calls
        https://bugs.webkit.org/show_bug.cgi?id=104176

        Reviewed by Dirk Schulze.

        Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context 

        No new tests, no new functionality.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * platform/graphics/BitmapImage.h:
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::draw):
        * platform/graphics/CrossfadeGeneratedImage.h:
        (CrossfadeGeneratedImage):
        * platform/graphics/GeneratedImage.h:
        (GeneratedImage):
        * platform/graphics/GeneratorGeneratedImage.cpp:
        (WebCore::GeneratorGeneratedImage::draw):
        * platform/graphics/GeneratorGeneratedImage.h:
        (GeneratorGeneratedImage):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore):
        (WebCore::GraphicsContext::drawImageBuffer):
        (WebCore::GraphicsContext::setCompositeOperation):
        * platform/graphics/GraphicsContext.h:
        (WebCore::GraphicsContextState::GraphicsContextState):
        (GraphicsContextState):
        (GraphicsContext):
        * platform/graphics/Image.cpp:
        (WebCore::Image::draw):
        (WebCore::Image::drawTiled):
        * platform/graphics/Image.h:
        (Image):
        * platform/graphics/ImageBuffer.h:
        (ImageBuffer):
        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage):
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::draw):
        * platform/graphics/cg/PDFDocumentImage.h:
        (PDFDocumentImage):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/qt/ImageQt.cpp:
        (WebCore::BitmapImage::draw):
        * platform/graphics/qt/StillImageQt.cpp:
        (WebCore::StillImage::draw):
        * platform/graphics/qt/StillImageQt.h:
        (StillImage):
        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
        (BitmapImageSingleFrameSkia):
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::BitmapImage::draw):
        (WebCore::BitmapImageSingleFrameSkia::draw):
        * platform/graphics/win/ImageCGWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawSVGToImageBuffer):
        (WebCore::SVGImage::draw):
        (WebCore::SVGImage::nativeImageForCurrentFrame):
        * svg/graphics/SVGImage.h:
        (SVGImage):

2012-12-07  Alec Flett  <alecflett@chromium.org>

        IndexedDB: propagate transaction_ids through open/upgradeneeded
        https://bugs.webkit.org/show_bug.cgi?id=103922

        Reviewed by Tony Chang.

        Make sure front-end is always generating the transaction id,
        so that it can be relied upon as an alternative to the
        to-be-deprecated IDBTransactionBackendInterface pointer.

        No new tests, this is one stage in a larger refactor.

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
        (IDBDatabaseBackendImpl::VersionChangeOperation):
        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::transactionId):
        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
        (IDBDatabaseBackendImpl::PendingOpenCall):
        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::transactionId):
        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
        (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        (WebCore::IDBDatabaseBackendImpl::createTransaction):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::openInternal):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::open):

2012-12-07  Dima Gorbik  <dgorbik@apple.com>

        Implement general ::cue pseudo element for the <video>
        https://bugs.webkit.org/show_bug.cgi?id=104043

        Reviewed by Eric Carlson.

        Implemented the ::cue pseudo element to be able to style all WebVTT cues.
        Added the subcontainer with a '::cue' pseudoId in between the TextTrackContainerElement and WebVTT nodes to separate
        user agent default styles from user defined styles for the cue elements.

        Test: media/track/track-css-all-cues.html

        * css/CSSSelector.cpp: ::cue pseudo selector doesn't have a valid prefix but should be allowed in the user-agent stylesheet.
        (WebCore::CSSSelector::parsePseudoType):
        * html/shadow/MediaControlElements.cpp:
        (WebCore):
        (WebCore::MediaControlTextTrackContainerElement::createSubtrees): create a subcontainer and set its pseudoId to '::cue'.
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): append WebVTT nodes to the newly created subcontainer.
        * html/shadow/MediaControlElements.h:
        (MediaControlTextTrackContainerElement):
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::createTextTrackDisplay): initiate creating subtrees for the MediaControlTextTrackContainerElement.
        * html/shadow/MediaControlsChromium.cpp:
        (WebCore::MediaControlsChromium::createTextTrackDisplay):

2012-12-06  Geoffrey Garen  <ggaren@apple.com>

        Crash in JSC::Bindings::RootObject::globalObject() sync'ing notes in Evernote
        https://bugs.webkit.org/show_bug.cgi?id=104321
        <rdar://problem/12770497>

        Reviewed by Sam Weinig.

        Missed a null check.

        * bindings/objc/WebScriptObject.mm:
        (-[WebScriptObject JSObject]): If our root object has been cleared, don't
        try to dereference it. This happens in Evernote during tear-down.

        This matches the behavior of other methods in the same class.

        (_isSafeScript returns false if the root object has been cleared.)

        If we believe _isSafeScript is a good idea, it's probably the right test
        to use here (as opposed to just null-checking _rootObject) because this API
        gives the client unlimited access to the underlying JavaScript object.

2012-12-07  Stephen Chenney  <schenney@chromium.org>

        XMLSerializer is too aggressive in adding prefixes
        https://bugs.webkit.org/show_bug.cgi?id=104387

        Reviewed by Ryosuke Niwa.

        We have been adding "xlink:" and "xmlns:" and "xml:" prefixes to any
        attribute that is in one of those namespaces but which did not already
        have the matching prefix. This appears to be in error, at least
        compared to other browsers.

        The correct behavior appears to be to add the prefix only if there is
        no existing prefix. If there is an existing prefix, we now leave it alone.

        No new tests. Existing test expanded.

        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendAttribute): Only replace the prefix
        attribute name prefix if it is empty, and in one of the recognised
        namespaces.

2012-12-07  Jon Lee  <jonlee@apple.com>

        Display the auto-start label image after a delay
        https://bugs.webkit.org/show_bug.cgi?id=104173
        <rdar://problem/12820071>

        Reviewed by Dan Bernstein.

        Treat the button now as a label. Once the user has hovered over the plug-in, wait a little while before showing the label.

        * rendering/RenderSnapshottedPlugIn.h:
        (RenderSnapshottedPlugIn): Add a one-shot timer, and a variable representing whether the label should
        be drawn. Remove the variable that determines whether the label is active.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Set the time to a delay of 1 second.
        (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the label only when we should.
        (WebCore::RenderSnapshottedPlugIn::paintLabel): The label should only paint in its hovered state.
        (WebCore::startLabelImage): Renamed.
        (WebCore::RenderSnapshottedPlugIn::repaintLabel): Renamed.
        (WebCore::RenderSnapshottedPlugIn::hoverDelayTimerFired): Now that the timer has fired, we should paint
        the label. Repaint.
        (WebCore::RenderSnapshottedPlugIn::handleEvent): Update event handling. Click event handler is the
        same, except we move the label check inside so that if the click is not the left label we don't
        fall through to the other irrevelant if clauses.
            For the mouse down handler, make sure to check for the left label. If the hover timer is still running,
        stop it, so that we don't draw a label while the user is in the middle of a mouse gesture.
            Redo mouse over and out. On mouse over we start the delay timer. On mouse out we stop the delay timer
        if it is still running, reset state, and paint the label out.
        (WebCore::RenderSnapshottedPlugIn::layout): Refactor.

        * Resources/startButtonPressed.png: Removed.
        * Resources/startButtonPressed@2x.png: Removed.
        * WebCore.xcodeproj/project.pbxproj:

2012-12-07  Scott Violet  <sky@chromium.org>

        [chromium] Remove linux theme related files and switch to default
        https://bugs.webkit.org/show_bug.cgi?id=103897

        Reviewed by Dimitri Glazkov.

        Linux related theme files are now named Default.

        No new tests, code cleanup.

        * WebCore.gyp/WebCore.gyp: Update files
        * WebCore.gypi: Update files
        * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
        * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
        * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
        * rendering/RenderThemeChromiumAndroid.cpp:
        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
        * rendering/RenderThemeChromiumAndroid.h: Change superclass
        * rendering/RenderThemeChromiumLinux.cpp: Removed.
        * rendering/RenderThemeChromiumLinux.h: Removed.

2012-12-07  Eric Carlson  <eric.carlson@apple.com>

        Captions menu doesn't update to track changes
        https://bugs.webkit.org/show_bug.cgi?id=104393

        Reviewed by Dean Jackson.

        Flag the captions menu as needing an update when tracks are added or removed. Don't actually
        change the menu until it needs to be displayed.

        No new tests, media/video-controls-captions-trackmenu.html was updated to test this.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::addTextTrack): Call closedCaptionTracksChanged().
        (WebCore::HTMLMediaElement::didRemoveTrack): Ditto.
        (WebCore::HTMLMediaElement::configureTextTracks): Ditto.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
            Intialize m_trackListHasChanged.
        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Call rebuildTrackListMenu if
            the track list has changed.
        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Renamed from resetTrackListMenu.
        * html/shadow/MediaControlElements.h:
        (WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): Just set m_trackListHasChanged.

        * html/shadow/MediaControls.h:
        (WebCore::MediaControls::closedCaptionTracksChanged): New, do nothing for base class.

        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Update the track list before 
            showing it.
        (WebCore::MediaControlsApple::closedCaptionTracksChanged):
        * html/shadow/MediaControlsApple.h:

2012-12-07  Stephen White  <senorblanco@chromium.org>

        CSS url() filters with forward references don't work
        https://bugs.webkit.org/show_bug.cgi?id=90405

        Based on a patch by Keyar Hood.

        Reviewed by Dirk Schulze.

        In order for CSS to reference SVG filters that will occur later in
        the document, or will be added at a future time, we need a way to
        notify the target element (the one the filter style is applied to)
        when the correct SVG filter is added to the DOM.
        There is already code for SVG elements that handles this problem, in
        SVGResourcesCache. This patch allows any element to have a reference to
        an SVG element in SVGResourceCache.

        Tests: css3/filters/effect-reference-after.html
               css3/filters/effect-reference-delete-crash.html
               css3/filters/effect-reference-delete.html
               css3/filters/effect-reference-rename.html
               css3/filters/effect-reference-reset-style-delete-crash.html
               svg/filters/filter-cycle.html

        * dom/Element.cpp:
        (WebCore::Element::hasPendingResources): Added
        (WebCore::Element::setHasPendingResources): Added
        (WebCore::Element::clearHasPendingResources): Added
        * dom/Element.h:
        Accessors for ElementRareData's new bit flag.
        (WebCore::Element::buildPendingResource):
        Virtual function to override for referenced elements (moved from SVGElement).
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):
        Add a new bit flag to indicate whether the element depends on pending resources or not.
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::applyFilters):
        Changed to the new function signature for FilterEffectRenderer::build().
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.  If the referenced filter cannot be found, add its id as a pending reference.
        (WebCore::FilterEffectRenderer::build):
        Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.
        * rendering/FilterEffectRenderer.h:
        Change to signatures of build() and buildReferenceFilter() to pass
        a RenderObject instead of a Document.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
        Use the new semantics for FilterEffectRenderer::build().
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed):
        Notify the cache if a RenderObject is destroyed.
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::registerResource):
        Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
        on the element, since we want to support generic Elements.
        * rendering/svg/SVGResources.cpp:
        (WebCore::SVGResources::buildCachedResources):
        Add support for building filters on non-SVG elements.
        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
        Do cycle detection only on SVG elements.
        (WebCore::SVGResourcesCache::clientStyleChanged):
        For non-SVG elements, set a synthetic style change when parent resources
        are invalidated.
        (WebCore::SVGResourcesCache::resourceDestroyed):
        Add support for non-SVG Elements.
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::addPendingResource):
        (WebCore::SVGDocumentExtensions::isElementPendingResources):
        (WebCore::SVGDocumentExtensions::isElementPendingResource):
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
        Changed to allow use of Element instead of SVGElement.
        (WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
        Moved from SVGElement, and made to work on any Element.  This way,
        we avoid adding this function to Element itself.
        * svg/SVGDocumentExtensions.h:
        SVGElement -> Element.
        * svg/SVGElement.cpp:
        * svg/SVGElement.h:
        All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
        * svg/SVGElementRareData.h:
        (WebCore::SVGElementRareData::SVGElementRareData):
        m_hasPendingResources add accessors moved to ElementRareData.
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
        SVGElement -> Element, and call SVGDocumentExtensions for
        clearHasPendingResourcesIfPossible().

2012-12-07  Eberhard Graether  <egraether@google.com>

        Web Inspector: Add shortcut to set visibility:hidden on elements in the ElementsPanel
        https://bugs.webkit.org/show_bug.cgi?id=104146

        Reviewed by Pavel Feldman.

        This change adds the shortcut H to set and unset visibility:hidden on the inline style
        of elements in the Elementspanel. This feature makes it easier to look for elements that
        cause bad rendering performance, because visibility:hidden does not paint the element,
        but preserves the layout.

        No new tests.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.toggleInlineVisibility):
        * inspector/front-end/ElementsPanelDescriptor.js:
        (WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
        * inspector/front-end/KeyboardShortcut.js:

2012-12-07  Andreas Kling  <akling@apple.com>

        Improve our decoded data size estimation for style sheets.
        <http://webkit.org/b/104388>

        Reviewed by Antti Koivisto.

        Tweak how we estimate the total decoded size of a given style sheet. (We were guessing at about 30% of actual size.)
        This is just used as a hint to the WebCore cache.

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::averageSizeInBytes):
        * css/StyleRule.cpp:
        (WebCore::StyleRule::averageSizeInBytes):

2012-12-07  Robert Hogan  <robert@webkit.org>

        REGRESSION(r127163): Content is offset to the right at rea.ru
        https://bugs.webkit.org/show_bug.cgi?id=103116

        Reviewed by David Hyatt.

        The top margin edge of a self-collapsing block that clears a float intrudes up into it by the height of the margin,
        so to ensure any child floats of the self-collapsing block only go as far as the top content edge 
        add the margin back in to the block's current height before placing them.

        Tests: fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html
               fast/block/margin-collapse/self-collapsing-block-with-float-child.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):

2012-12-07  Alexis Menard  <alexis@webkit.org>

        Improve r136754 by hardening checks of expected values for background-position.
        https://bugs.webkit.org/show_bug.cgi?id=104380

        Reviewed by Antti Koivisto.

        r136754 was landed to fix the problem of checking successively two calc
        values with validUnit. It was asserting as validUnit expect you to use
        the parsed value of the calc after the call. In this case we pre-check the
        background-position longhand to count how many values it has to then
        call the right parsing functions accordingly. While r136754 is not
        wrong it is better to harden isPotentialPositionValue with the real
        expected units and keywords. For this matter we can reuse the
        ReleaseParsedCalcValueCondition enum which was created with the same
        idea as this patch. If you are not interested of the calc parsed
        value when calling validUnit() you can now specify it, I believe it is
        good to have it explicit to avoid mistake in the future.

        No new tests : this is covered by css3/*, fast/backgrounds/*.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::validCalculationUnit):
        (WebCore::CSSParser::validUnit):
        (WebCore::CSSParser::isPotentialPositionValue):
        * css/CSSParser.h:
        (WebCore::CSSParser::validUnit):
        (CSSParser):

2012-12-07  Brent Fulgham  <bfulgham@webkit.org>

        Remove unnecessary casts in transformations.
        https://bugs.webkit.org/show_bug.cgi?id=104376

        Reviewed by Simon Fraser.

        Several casts from float-to-double are performed prior to
        storing the result in a double type. These casts are unnecessary
        overhead and reduce the clarity of the source code.

        No new tests. Covered by existing CSS test cases.

        * platform/graphics/transforms/RotateTransformOperation.cpp:
        * platform/graphics/transforms/TransformationMatrix.cpp:

2012-12-07  Antoine Quint  <graouts@apple.com>

        Provide the backend for exposing the layer tree to the Web Inspector
        https://bugs.webkit.org/show_bug.cgi?id=103513

        Reviewed by Pavel Feldman.

        The purpose of this patch is to provide a new agent enabling the Web Inspector to interface
        with WebCore to access information about the render layer tree and, more specifically, expose
        useful information about layers backed by textures composited on the GPU such as metrics and
        backing store. Thus we now provide a LayerTreeAgent which will inform the front-end of 
        changes to the render layer tree via a new layerTreeDidChange event, providing an object
        containing the entire hierarchy of RenderLayers for the inspected document. This hierarchy 
        can be queried at any time using the .getLayerTree() method on the LayerTreeAgent. Finally, 
        the LayerTreeAgent also exposes a .nodeIdForLayerId() method allowing to get the id of the 
        node associated with the RenderLayer with the provided layer id.
        
        In terms of implementation, RenderLayerCompositor has been changed such that in its 
        updateCompositingLayers() method we call the layerTreeDidChange method on the 
        InspectorLayerTreeAgent instance via the InspectorInstrumentation.

        Test: inspector-protocol/layer-tree.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/Inspector.json: Define new types IntRect (x, y, width, height) and Layer, which 
        holds the information for a RenderLayer (layerId, bounds, isComposited, memory, 
        compositedBounds) and its children (childLayers). We also define the methods of the 
        LayerTreeAgent object (enable, disable, getLayerTree, nodeIdForLayerId) and the 
        layerTreeDidChange event it  
        fires.
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend): New method facilitating 
        pushing the node associated with a given RenderLayer to the front-end.
        (WebCore):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        (WebCore::InspectorInstrumentation::layerTreeDidChangeImpl):
        (WebCore::InspectorInstrumentation::renderLayerDestroyedImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore):
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::layerTreeDidChange):
        (WebCore::InspectorInstrumentation::renderLayerDestroyed):
        * inspector/InspectorLayerTreeAgent.cpp: Added.
        (WebCore):
        (LayerTreeAgentState):
        (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
        (WebCore::InspectorLayerTreeAgent::~InspectorLayerTreeAgent):
        (WebCore::InspectorLayerTreeAgent::setFrontend):
        (WebCore::InspectorLayerTreeAgent::clearFrontend):
        (WebCore::InspectorLayerTreeAgent::restore):
        (WebCore::InspectorLayerTreeAgent::reset):
        (WebCore::InspectorLayerTreeAgent::enable):
        (WebCore::InspectorLayerTreeAgent::disable):
        (WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
        (WebCore::InspectorLayerTreeAgent::renderLayerDestroyed):
        (WebCore::InspectorLayerTreeAgent::getLayerTree):
        (WebCore::InspectorLayerTreeAgent::buildObjectForRootLayer):
        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Build the entire hierarchy of 
        RenderLayers from the provided RenderLayer.
        (WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
        (WebCore::InspectorLayerTreeAgent::bind):
        (WebCore::InspectorLayerTreeAgent::unbind):
        (WebCore::InspectorLayerTreeAgent::nodeIdForLayerId):
        * inspector/InspectorLayerTreeAgent.h: Added.
        (WebCore):
        (InspectorLayerTreeAgent):
        (WebCore::InspectorLayerTreeAgent::create):
        * inspector/InstrumentingAgents.h:
        (WebCore):
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (InstrumentingAgents):
        (WebCore::InstrumentingAgents::inspectorLayerTreeAgent):
        (WebCore::InstrumentingAgents::setInspectorLayerTreeAgent):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingLayers): Call the layerTreeDidChange method 
        on the LayerTreeAgent via the InspectorInstrumentation to inform the front-end that the 
        RenderLayer hierarchy has changed.
        (WebCore):
        (WebCore::RenderLayerCompositor::layerBecameNonComposited): Call the renderLayerDestroyed 
        method on the LayerTreeAgent via the InspectorInstrumentation to unbind the layer that is 
        being destroyed.
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-12-07  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Check SSV version when opening database
        https://bugs.webkit.org/show_bug.cgi?id=102243

        Reviewed by Tony Chang.

        Ensure that the data format (SerializedScriptValue) isn't "from the future" when opening
        a backing store. Treat an unknown version the same as an unknown schema version.

        Chromium-side test at https://codereview.chromium.org/11470013/ (same as other schema version tests)

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore):
        (WebCore::isSchemaKnown): Check data version as well.
        (WebCore::setUpMetadata): Ensure data version is recorded; bump schema version.
        * Modules/indexeddb/IDBLevelDBCoding.cpp: Encoding for "DataVersion" global metadata entry.
        (IDBLevelDBCoding):
        (WebCore::IDBLevelDBCoding::compare):
        (WebCore::IDBLevelDBCoding::DataVersionKey::encode):
        * Modules/indexeddb/IDBLevelDBCoding.h:
        (DataVersionKey):
        (IDBLevelDBCoding):
        * bindings/js/SerializedScriptValue.cpp:
        (SerializedScriptValue::wireFormatVersion): New method (JSC side).
        * bindings/js/SerializedScriptValue.h:
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::wireFormatVersion): New method (V8 side).
        (WebCore):
        * bindings/v8/SerializedScriptValue.h:
        (SerializedScriptValue):

2012-12-07  Andreas Kling  <akling@apple.com>

        Throw away StyleResolvers that haven't been used for a long time.
        <http://webkit.org/b/104314>

        Reviewed by Antti Koivisto.

        A lot of memory gets tied up in StyleResolver and the structures and caches that hang from it.
        Add a mechanism to throw it away after it's been unused for a while (1 minute.)
        This frees up large amounts of memory on inactive pages (background tabs) and static content.

        We already have a number of scenarios where the document style is invalidated by throwing away
        the StyleResolver so the major code paths are prepared for having a null StyleResolver* on occasion.

        ~20MB progression on Membuster3.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForElement):
        (WebCore::StyleResolver::styleForKeyframe):
        (WebCore::StyleResolver::pseudoStyleForElement):
        (WebCore::StyleResolver::styleForPage):

            Call document()->didAccessStyleResolver() from the relevant parts of StyleResolver's public API.
            This prevents Document from throwing the StyleResolver away for 1 minute after it's used.

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::createStyleResolver):
        (WebCore::Document::didAccessStyleResolver):
        (WebCore::Document::styleResolverThrowawayTimerFired):

            Add a mechanism to call clearStyleResolver() on a refreshing timer.

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):

            If an attribute change occurs while the document doesn't have a StyleResolver, dirty the element style
            since we can't be sure that the attribute change didn't affect any rules.

2012-12-07  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        REGRESSION(r136947): Made two tests fail on all platforms (Requested by tonikitoo-ll on #webkit).
        https://bugs.webkit.org/show_bug.cgi?id=104368

        Unreviewed partial rollout.

        r136947 was too aggressive in the sense of fixing RenderBox::canBeScrolledAndHasScrollableArea
        as part of itself. Revert the related changes in order to fix both
        fast/events/autoscroll-should-not-stop-on-keypress.html and
        fast/events/autoscroll-in-textfield.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
        * rendering/RenderBox.h:

2012-12-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [TexMap] Can not do multiple accelerated animations
        https://bugs.webkit.org/show_bug.cgi?id=104364

        Reviewed by Kenneth Rohde Christiansen.

        By removing all animations with the same name, it is not possible to animate more than one property accelerated. 
        Instead only remove any animations with both same name and property.

        Covered by animations/opacity-transform-animation.html.

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::GraphicsLayerAnimations::add):
        (WebCore::GraphicsLayerAnimations::remove):
        * platform/graphics/GraphicsLayerAnimation.h:
        (GraphicsLayerAnimations):

2012-12-07  Sujin Park  <sujjin.park@gmail.com>

        [EFL] Fix build warning in StyleResolver.cpp using gcc 4.7.2
        https://bugs.webkit.org/show_bug.cgi?id=104262

        Reviewed by Alexis Menard.

        EFL port treats build warning as compile error and there are
        maybe-uninitialized when building with gcc 4.7.2.
        This patch adds default case to resolve a build break.

        * css/StyleResolver.cpp:
        (WebCore::getFontAndGlyphOrientation):

2012-12-06  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Chromium] Ctrl + ']' "Goto right panel" keyboard shortcut doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=104250

        Reviewed by Pavel Feldman.

        Ignore "keypress" event resulting from a WM_CHAR message emitted by Win7 upon Ctrl + ']' keypress.

        * inspector/front-end/InspectorView.js:
        (WebInspector.InspectorView.prototype._keyPress): Ignore all events with charCode < 32.

2012-10-03  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: provide a way to reload page with given script preprocessor.
        https://bugs.webkit.org/show_bug.cgi?id=80992

        Reviewed by Yury Semikhatsky.

        This change introduces a way to inject 'preprocessor' script that would process
        each JavaScript file before it gets into the VM for compilation. That way inspector
        can expose capabilities such as assessing code coverage or tracing all the calls.

        Preprocessor script is stored in the page agent where it waits for reload to happen.
        Upon reload, ScriptDebugServer is using it to patch the script sources.

        
        Test: inspector/debugger/debugger-script-preprocessor.html

        * bindings/js/ScriptDebugServer.h:
        (WebCore::ScriptDebugServer::setScriptPreprocessor):
        (ScriptDebugServer):
        * bindings/v8/DebuggerScript.js:
        * bindings/v8/ScriptDebugServer.cpp:
        (ScriptDebugServer::ScriptPreprocessor):
        (WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
        (WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
        (WebCore::ScriptDebugServer::ScriptPreprocessor::~ScriptPreprocessor):
        (WebCore):
        (WebCore::ScriptDebugServer::~ScriptDebugServer):
        (WebCore::ScriptDebugServer::setScriptSource):
        (WebCore::ScriptDebugServer::setScriptPreprocessor):
        (WebCore::ScriptDebugServer::handleV8DebugEvent):
        * bindings/v8/ScriptDebugServer.h:
        (ScriptDebugServer):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::InjectedScriptManager::createInjectedScript):
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::reload):
        (WebCore::InspectorPageAgent::frameNavigated):
        * inspector/InspectorPageAgent.h:
        (WebCore::InspectorPageAgent::page):
        (WebCore::InspectorPageAgent::scriptPreprocessor):
        (InspectorPageAgent):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::create):
        (WebCore::PageDebuggerAgent::PageDebuggerAgent):
        (WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
        (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
        (WebCore::PageDebuggerAgent::injectedScriptForEval):
        (WebCore::PageDebuggerAgent::didClearMainFrameWindowObject):
        (WebCore):
        * inspector/PageDebuggerAgent.h:
        (WebCore):
        (PageDebuggerAgent):

2012-12-07  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: the "Sources" column is always empty in CSS selector profiles
        https://bugs.webkit.org/show_bug.cgi?id=104225

        Reviewed by Pavel Feldman.

        r112923 and preceding changesets modified the CSSOM wrapper creation for StyleRules in a way
        that would not specify the parent CSSStyleSheet for the CSSStyleRules created. Instead,
        styleResolver->ensureFullCSSOMWrapperForInspector(rule) is now used to make sure the CSSStyleRule
        has a valid parent CSSStyleSheet.

        Test: inspector/profiler/selector-profiler-url.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectMatchingRulesForList):
        (WebCore::StyleResolver::applyProperties):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
        (WebCore::InspectorInstrumentation::willProcessRuleImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore):
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::willMatchRule):
        (WebCore::InspectorInstrumentation::willProcessRule):

2012-12-05  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Rework bug 97927 to not depend on RenderLayer::allowsScrolling
        https://bugs.webkit.org/show_bug.cgi?id=103999

        Reviewed by James Robinson.

        Patch makes it possible for methods like
        RenderLayer::{updateScrollbarsAfterLayout,updateScrollbarsAfterStyleChange}
        to not depend on RenderLayer::allowsScrolling to determine if a layer should
        be added or removed from its FrameView's ScrollableArea set.

        Following the same logic, the patch also fixes RenderBox::canBeScrolledAndHasScrollableArea
        method to take into account the box' scroll allowance in a given direction only
        when it overflows. This allows simplifying custom methods like InRegionScrollerPrivate::canScrollRenderBox
        (@WebKit/blackberry/Api/InRegionScroller.cpp).

        The naming pattern for the newly added methods were chosen to keep the consistency
        with the existing ones, in the same class.

        No new test: it is already covered by ScrollingCoordinatorChromiumTest.clippedBodyTest.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
        * rendering/RenderBox.h:
        (RenderBox):
        (WebCore::RenderBox::hasScrollableOverflowX):
        (WebCore::RenderBox::hasScrollableOverflowY):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasScrollableHorizontalOverflow):
        (WebCore):
        (WebCore::RenderLayer::hasScrollableVerticalOverflow):
        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
        (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
        * rendering/RenderLayer.h:
        (RenderLayer):

2012-12-07  Max Feil  <mfeil@rim.com>

        [BlackBerry] make "isVideo" information available to platform media player
        https://bugs.webkit.org/show_bug.cgi?id=104334

        Reviewed by Rob Buis.

        The platform player needs to know whether the element is <video>
        or <audio>, so it can make certain decisions before metadata
        is ready. This is part of a performance optimization refactor
        which does not change functionality so no new tests are required.

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::load):

2012-12-07  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] [AC] Implement ImageExtractor::extractImage in GraphicsContext3DEfl.
        https://bugs.webkit.org/show_bug.cgi?id=104271.

        Reviewed by Kenneth Rohde Christiansen.

        This patch implements ImageExtractor::extractImage in GraphicsContext3DEfl.

        Covered by existing tests.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):

2012-12-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        Use always the order iterator from data member in RenderFlexibleBox
        https://bugs.webkit.org/show_bug.cgi?id=104112

        Reviewed by Tony Chang.

        Some methods receive it as parameter and others use the data
        member.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::RenderFlexibleBox::computeNextFlexLine):
        (WebCore::RenderFlexibleBox::alignFlexLines):
        (WebCore::RenderFlexibleBox::alignChildren):
        (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
        (WebCore::RenderFlexibleBox::flipForWrapReverse):
        * rendering/RenderFlexibleBox.h:

2012-12-07  Kent Tamura  <tkent@chromium.org>

        Improve confusing code in BaseMultipleFieldsDateAndTimeInputType
        https://bugs.webkit.org/show_bug.cgi?id=104353

        Reviewed by Kentaro Hara.

        This doesn't change any behavior because call sites of
        isEditControlOwnerDisabled and isEditControlOwnerReadOnly treat them
        similarly.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled):
        Checks element()->disabled, not readOnly.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly):
        Checks element()->readOnly, not disabled.

2012-12-07  Jon Lee  <jonlee@apple.com>

        Build fix.

        * plugins/PlugInOriginHash.cpp:
        (WebCore::PlugInOriginHash::hash):

2012-12-04  Jon Lee  <jonlee@apple.com>

        Add PlugInOriginHash
        https://bugs.webkit.org/show_bug.cgi?id=103655
        <rdar://problem/12778949>

        Reviewed by Alexey Proskuryakov.

        Add the concept of plug-in origin hashes, which are based on a combination of the base domains of the
        page's main frame and the plug-in, and the plug-in MIME type.

        * plugins/PlugInOriginHash.cpp: Added.
        (WebCore::addCaseFoldedCharacters): Add the case-folded string to the hash.
        (WebCore::PlugInOriginHash::hash): The hash is based on the concatenation of the page's host, the plug-in
        URL's host, and the MIME type. We use StringHasher to get all 32-bits of the hash, since using StringImpl's hash
        masks out 8 of the hash bits to make room for bit flags.
        * plugins/PlugInOriginHash.h: Added.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2012-12-06  Kent Tamura  <tkent@chromium.org>

        Refactoring: Clean up placeholder attribute usage
        https://bugs.webkit.org/show_bug.cgi?id=104337

        Reviewed by Kentaro Hara.

        No new tests. This doesn't change any behavior.

        * html/HTMLInputElement.cpp: Remove placeholder and setPlacehodler.
        * html/HTMLInputElement.h: Ditto.
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::strippedPlaceholder):
        We can use fastGetAttribute for placeholder.
        (WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
        Ditto.

2012-12-06  Kent Tamura  <tkent@chromium.org>

        Refactoring: Rename HTMLFormControlElement::required to isRequired
        https://bugs.webkit.org/show_bug.cgi?id=104336

        Reviewed by Kentaro Hara.

        m_required should be m_isRequired, and required() should be
        isRequired. It's safe to rename them because HTML*Element::required IDL
        attributes are [Reflected].
        http://www.webkit.org/coding/coding-style.html#names-bool

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::isRequired):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithControl):
        * dom/CheckedRadioButtons.cpp:
        (WebCore::RadioButtonGroup::add):
        (WebCore::RadioButtonGroup::requiredAttributeChanged):
        (WebCore::RadioButtonGroup::remove):
        * html/CheckboxInputType.cpp:
        (WebCore::CheckboxInputType::valueMissing):
        * html/FileInputType.cpp:
        (WebCore::FileInputType::valueMissing):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
        (WebCore::HTMLFormControlElement::parseAttribute):
        (WebCore::HTMLFormControlElement::isRequired):
        * html/HTMLFormControlElement.h:
        (HTMLFormControlElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::isRequiredFormControl):
        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::valueMissing):
        (WebCore::HTMLSelectElement::isRequiredFormControl):
        * html/HTMLTextAreaElement.h:
        (WebCore::HTMLTextAreaElement::isRequiredFormControl):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::valueMissing):

2012-12-06  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Implement Element::shadowRoot with prefix
        https://bugs.webkit.org/show_bug.cgi?id=102912

        Reviewed by Dimitri Glazkov.

        - Added Element::shadowRoot() which return the youngest author shadow root.
        - Renamed existing Node::shadowRoot() to containingShadowRoot() to avoid name shadowing.
          The name shadowRoot() is confusing anyway so this is good opportunity to rename it.

        Test: fast/dom/shadow/shadow-aware-shadow-root.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::scopeFor):
        (WebCore::StyleScopeResolver::addHostRule):
        * dom/Element.cpp:
        (WebCore::Element::shadowRoot):
        (WebCore):
        * dom/Element.h:
        (Element):
        * dom/Element.idl:
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::setShouldCollectSelectFeatureSet):
        * dom/Node.cpp:
        (WebCore::Node::rendererIsEditable):
        (WebCore::Node::shadowHost):
        (WebCore::Node::shadowAncestorNode):
        (WebCore::Node::containingShadowRoot):
        * dom/Node.h:
        (Node):
        * dom/Range.cpp:
        (WebCore::Range::shadowRoot):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::insertedInto):
        (WebCore::ShadowRoot::removedFrom):
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::isAccessible):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::handleReplacedElement):
        * editing/htmlediting.cpp:
        (WebCore::indexForVisiblePosition):
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::scopedAttributeChanged):
        (WebCore::HTMLStyleElement::registerWithScopingNode):
        (WebCore::HTMLStyleElement::removedFrom):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::distribute):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::parseAttribute):
        (WebCore::HTMLContentElement::insertedInto):
        (WebCore::HTMLContentElement::removedFrom):
        * html/shadow/HTMLShadowElement.cpp:
        (WebCore::HTMLShadowElement::insertedInto):
        (WebCore::HTMLShadowElement::removedFrom):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::attach):
        (WebCore::InsertionPoint::detach):
        (WebCore::InsertionPoint::isActive):
        (WebCore::InsertionPoint::childrenChanged):
        (WebCore::InsertionPoint::insertedInto):
        (WebCore::InsertionPoint::removedFrom):
        (WebCore::InsertionPoint::setResetStyleInheritance):
        * page/EventHandler.cpp:
        (WebCore::instanceAssociatedWithShadowTreeElement):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::correspondingElement):
        (WebCore::collectInstancesForSVGElement):

2012-12-06  Michael Pruett  <michael@68k.org>

        IndexedDB: Replace int64 with int64_t
        https://bugs.webkit.org/show_bug.cgi?id=104338

        Reviewed by Kentaro Hara.

        Cleaning up coding inconsistencies, no change in behavior.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::openInternal):

2012-12-06  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] Allow detailed timing on same origin sites
        https://bugs.webkit.org/show_bug.cgi?id=104328

        Reviewed by Tony Gentilcore.

        This block was lost when I moved it to PerformanceResourceTiming.cpp.

        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_attribute_order.html

        * page/PerformanceResourceTiming.cpp:
        (WebCore::passesTimingAllowCheck):

2012-12-06  Rick Byers  <rbyers@chromium.org>

        CSS cursor property should support webkit-image-set
        https://bugs.webkit.org/show_bug.cgi?id=99493

        Reviewed by Beth Dakin.

        Add support for image scale factors attached to custom mouse cursor images
        behind ENABLE(MOUSE_CURSOR_SCALE).

        This required refactoring CSSCursorImageValue to derive directly from
        CSSValue since it can contain either a CSSImageValue or a CSSImageSetValue.
        If it contains an image-set, then we can plumb directly through to the
        CSSImageSetValue.  If it contains an image, then either we can plumb directly
        through to the CSSImageValue, or if the URL represents an SVG cursor we have
        to intercept the image loading in order to substitute the actual SVG image URL
        and do the appropriate lifetime management.

        Tests: fast/css/cursor-parsing-image-set.html
               fast/events/mouse-cursor-image-set.html

        * Configurations/FeatureDefines.xcconfig: Add ENABLE_MOUSE_CURSOR_SCALE - disabled
        * GNUmakefile.features.am: ditto
        * css/CSSCursorImageValue.cpp: Refactor to inherit directly from CSSValue and support image sets
        (WebCore::CSSCursorImageValue::CSSCursorImageValue):
        (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
        (WebCore::CSSCursorImageValue::customCssText):
        (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
        (WebCore::CSSCursorImageValue::cachedImage):
        (WebCore::CSSCursorImageValue::cachedOrPendingImage):
        (WebCore::CSSCursorImageValue::isSVGCursor):
        (WebCore::CSSCursorImageValue::cachedImageURL):
        (WebCore::CSSCursorImageValue::clearCachedImage):
        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
        * css/CSSCursorImageValue.h: Remove cursor-specific hacks
        (WebCore::CSSCursorImageValue::create):
        (CSSCursorImageValue):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::cachedImage):
        * css/CSSImageValue.h:
        (CSSImageValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Parse cursor(-webkit-image-set(...)) rules
        * css/CSSValue.h:
        (WebCore::CSSValue::isImageValue):
        * css/StyleBuilder.cpp:
        (WebCore::ApplyPropertyCursor::applyValue):
        * css/StyleResolver.cpp: Hook up new CSSCursorImageValue support since it can't be handled like other images any more.
        (WebCore::StyleResolver::styleImage):
        (WebCore::StyleResolver::cursorOrPendingFromValue):
        (WebCore::StyleResolver::loadPendingImage):
        * css/StyleResolver.h:
        (StyleResolver):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor): Handle StyleCachedImageSet images and plumb scale factor through
        * platform/Cursor.cpp:
        (WebCore::Cursor::Cursor): Add imageScaleFactor
        * platform/Cursor.h: Add imageScaleFactor
        (Cursor):
        (WebCore::Cursor::imageScaleFactor):
        * platform/chromium/CursorChromium.cpp: Add imageScaleFactor
        (WebCore::Cursor::Cursor):
        (WebCore::Cursor::operator=):
        * rendering/style/CursorData.h: Clarify hotspot units
        (CursorData):
        * rendering/style/StyleCachedImage.h:
        (StyleCachedImage::cachedImage): Override new virtual.
        * rendering/style/StyleCachedImageSet.h:
        (StyleCachedImageSet::cachedImage): Override new virtual.
        * rendering/style/StyleImage.h:
        (StyleImage::cachedImage): Add new virtual method to avoid lots of casts and typechecks.
        * rendering/style/StylePendingImage.h: Add CSSCursorImageValue support
        (WebCore::StylePendingImage::cssCursorImageValue):
        * testing/Internals.cpp:
        (WebCore::Internals::getCurrentCursorInfo): Print non-identity scale factors for testing

2012-12-06  Hayato Ito  <hayato@chromium.org>

        Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
        https://bugs.webkit.org/show_bug.cgi?id=102681

        Reviewed by Dimitri Glazkov.

        Make sure that event's relatedTarget re-targeting occurs for mouse
        events created by event.initMouseEvent().  Since user-generated
        mouse events can have a relatedTarget which is same to the target
        node, the algorithm which calculates event's ancestors is also
        updated so that ancestors are not shrunk wrongly.

        Test: fast/events/dispatch-synthetic-mouseevent.html
              fast/dom/shadow/shadow-dom-event-dispatching.html

        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedTargetAdjuster::adjust):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::create):
        (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
        (WebCore::MouseEventDispatchMediator::dispatchEvent):
        * dom/MouseEvent.h:
        (WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
        (MouseEventDispatchMediator):
        * dom/Node.cpp:
        (WebCore::Node::dispatchEvent):

2012-12-06  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Disabled file input box stops a certain other div from being rendered
        https://bugs.webkit.org/show_bug.cgi?id=104226

        Reviewed by Dimitri Glazkov.

        The bug was caused by setNeedsStyleRecalc() call during style recalculation,
        which resulted in inconsistent ChildNeedsStyleRecalc flags in DOM tree.

        When reattach of file input happens during style recalculation,
        RenderFileUploadControl::updateFromElement() is called from attach().
        It may change the disabled state of the upload button in its shadow tree,
        but it triggers style recalculation.

        This patch solves this issue by setting disabled state of the upload button in
        FileInputType::disabledAttributeChanged instead of RenderFileUploadControl.

        Test: fast/forms/file/sibling-of-disabled-file-input.html

        * html/FileInputType.cpp:
        (WebCore::FileInputType::disabledAttributeChanged): Added.
        * html/FileInputType.h:
        (FileInputType): Declare disabledAttributeChanged.
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::updateFromElement): Remove call to button->setDisabled().

2012-12-06  Dominic Cooney  <dominicc@chromium.org>

        Element.pseudo property should be prefixed
        https://bugs.webkit.org/show_bug.cgi?id=104060

        Reviewed by Hajime Morita.

        Other Shadow DOM properties are prefixed; pseudo should be too.

        Covered by updated tests in fast/dom/shadow.

        * dom/Element.idl:

2012-12-06  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Remove the sanitize mechanism from LineFragmentationData
        https://bugs.webkit.org/show_bug.cgi?id=104234

        Reviewed by David Hyatt.

        Remove previous work that ensured an invalid region is never returned by the containingRegion getter. After r136793 the blocks always
        relayout children if the region chain changes. This means the sanitize() method is only necessary when all the regions are removed.
        This case is treated separately in layoutInlineChildren.

        Tests: no new functionality, no bug fixed.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutInlineChildren):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::containingRegion):
        (WebCore):
        (WebCore::RootInlineBox::setContainingRegion):
        * rendering/RootInlineBox.h:
        (RootInlineBox):
        (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
        (LineFragmentationData):

2012-12-06  Kenneth Russell  <kbr@google.com>

        Associate URLs with GraphicsContext3D instances created for WebGL
        https://bugs.webkit.org/show_bug.cgi?id=103793

        Reviewed by Adam Barth.

        Pass down the URL of the topmost frame's document creating the
        WebGL context to the platform layer through
        GraphicsContext3D::Attributes.

        Not feasible to write a layout test for this change; has no
        user-visible effect. Tested manually with failure injection in
        Chromium port.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::create):
            Pass top document's URL in context creation attributes.
        * platform/chromium/support/GraphicsContext3DChromium.cpp:
        (WebCore::GraphicsContext3D::create):
            Pass URL through WebKit API.
        * platform/graphics/GraphicsContext3D.h:
        (Attributes):
            Add top document's URL to context creation attributes.

2012-12-06  Philip Rogers  <pdr@google.com>

        Unify SVG's animation and target tracking systems.
        https://bugs.webkit.org/show_bug.cgi?id=102655

        Reviewed by Dirk Schulze.

        This patch unifies our animation target tracking system and regular target tracking system.
        This simplifies the code, fixes a bug, and cleans up a historically security-sensitive area.

        Background: When <use>, <mpath>, <animate>, etc. reference another element using
        xlink:href="#id", we need to track when #id changes to #otherId, when #id is removed, etc.
        This bookkeeping of element -> target is done in SVGDocumentExtensions. Additionally, when
        a target changes that causes layout (e.g., rect.x is changed), all dependent elements with
        renderers are notified (<animate> has no renderer and will not use this).

        Previously, xlink:href changes were lazily resolved when targetElement() was called, target
        changes were tracked using the animation tracking framework, and pending targets did not
        work (e.g., <animate xlink:href="#p"><!--animate is now pending #p --><rect id="p"/>).

        After this patch, we no longer lazily resolve targetElement() but instead change it when
        our xlink:href attribute changes. Instead of using the animation tracking framework in
        SVGDocumentExtensions, we now use the regular target tracking framework. Lastly, by using
        the regular target tracking framework we are able to hook into the pending resource handling
        which fixes a bug (see the test).

        A test has been added to test that the order of animation elements does not matter. A second
        test has been added to show we do not regress a pending-while-pending case.

        Tests: svg/animations/svg-animation-order.html
               svg/custom/svg-pending-twice.html

        * svg/SVGAnimateElement.cpp:
        (WebCore::SVGAnimateElement::setTargetElement):

            setTargetElement and setAttributeName now work similarly. When the corresponding attribute
            changes, we update our internal state (target or attributeName) and save it instead of
            looking these values up on each iteration.

        (WebCore::SVGAnimateElement::setAttributeName):
        (WebCore):
        (WebCore::SVGAnimateElement::resetAnimatedPropertyType):
        * svg/SVGAnimateElement.h:
        (SVGAnimateElement):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::setAttributeType):
        (WebCore::SVGAnimationElement::setTargetElement):
        (WebCore::SVGAnimationElement::setAttributeName):
        * svg/SVGAnimationElement.h:
        (SVGAnimationElement):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
        (WebCore):
        * svg/SVGDocumentExtensions.h:
        (SVGDocumentExtensions):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::~SVGElement):
        (WebCore::SVGElement::removedFrom):
        (WebCore::SVGElement::attributeChanged):
        * svg/SVGElementInstance.cpp:
        (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):

            This can be removed after r131631 landed.

        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::buildPendingResource):
        * svg/SVGTextPathElement.cpp:
        (WebCore::SVGTextPathElement::buildPendingResource):

            A bug was discovered in review with our resource tracking in a pending-while-pending
            case. SVGMpathElement and SVGTextPathElement have been updated to fix this as well.

        * svg/animation/SVGSMILElement.cpp:

            The changes in SVGSMILElement should look very similar to SVGFEImageElement,
            SVGMPathElement, etc. The idea is to build pending resources when added or
            removed from the document, or when the href attribute changes.

        (WebCore::SVGSMILElement::~SVGSMILElement):
        (WebCore):
        (WebCore::SVGSMILElement::clearResourceReferences):
        (WebCore::SVGSMILElement::buildPendingResource):
        (WebCore::SVGSMILElement::insertedInto):
        (WebCore::SVGSMILElement::removedFrom):
        (WebCore::SVGSMILElement::svgAttributeChanged):
        (WebCore::SVGSMILElement::setAttributeName):
        (WebCore::SVGSMILElement::setTargetElement):
        * svg/animation/SVGSMILElement.h:
        (WebCore):
        (WebCore::SVGSMILElement::targetElement):
        (SVGSMILElement):

2012-12-06  Jon Lee  <jonlee@apple.com>

        Retry snapshots if they are too empty
        https://bugs.webkit.org/show_bug.cgi?id=104174
        <rdar://problem/12820146>

        Reviewed by Simon Fraser.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::updateSnapshot): Change the state machine check so that even
        when the plug-in is displaying a snapshot, the snapshot can still be updated. This allows for the
        retries to be drawn.

2012-12-06  Adam Klein  <adamk@chromium.org>

        [HTMLTemplateElement] make content readonly and cloneNode(deep) clone content
        https://bugs.webkit.org/show_bug.cgi?id=104181

        Reviewed by Adam Barth.

        Note that this patch also adds IDL attributes/custom code to tie the lifetime
        of the content DocumentFragment wrapper to the lifetime of the template element wrapper
        via a hidden JS property.

        Based on a patch by Rafael Weinstein.

        Test: fast/dom/HTMLTemplateElement/contentWrappers.html

        * DerivedSources.cpp:
        * Target.pri:
        * UseJSC.cmake:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSHTMLTemplateElementCustom.cpp: Copied from Source/WebCore/html/HTMLTemplateElement.idl.
        (WebCore):
        (WebCore::JSHTMLTemplateElement::content):
        * bindings/scripts/CodeGeneratorV8.pm: Add support for new V8CacheAttributeForGC attribute.
        * dom/Element.h:
        (Element): Annotate cloneNode() with OVERRIDE
        * html/HTMLTemplateElement.cpp:
        (WebCore::HTMLTemplateElement::cloneNode):
        * html/HTMLTemplateElement.h:
        (HTMLTemplateElement): override cloneNode
        * html/HTMLTemplateElement.idl: Make content readonly and add custom attributes.

2012-12-06  Brent Fulgham  <bfulgham@webkit.org>

        [Windows, WinCairo] Unreviewed build correction.

        Exclude 'DocumentSharedObjectPool.cpp' from build, since it is
        built as part of DOMAllInOne.cpp.  The build (besides wasting
        time) generates a bunch of build warnings for duplicate symbols.

        * WebCore.vcproj/WebCore.vcproj: Mark DocumentSharedObjectPool.cpp
        to not build independently of DOMAllInOne.cpp.

2012-12-06  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Abort transactions because of leveldb errors part 4
        https://bugs.webkit.org/show_bug.cgi?id=103964

        Reviewed by Tony Chang.

        deleteDatabase, open, and deleteObjectStore will now fire more aborts
        and errors in case of leveldb problems

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::getVarInt): Make return value indicate leveldb error.
        (WebCore::getString): ditto.
        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
        Change return value to indicate leveldb error.

        (WebCore::IDBBackingStore::deleteDatabase):
        Already had the desired return value semantics. As a consumer of
        getIDBDatabaseMetadata, will return an error (causing an abort) more
        often.

        (WebCore::IDBBackingStore::deleteObjectStore):
        Needed return value change. Will return error to DatabaseBackend to
        indicate leveldb problems.

        * Modules/indexeddb/IDBBackingStore.h:
        (IDBBackingStore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::openInternal):
        Pass leveldb errors up to callers, who already handle internal errors.

        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
        Abort transaction if there were leveldb problems deleting an object
        store.

2012-12-06  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Add webkitErrorMessage to IDBTransaction
        https://bugs.webkit.org/show_bug.cgi?id=104199

        Reviewed by Tony Chang.

        Don't drop error messages on the floor.

        Expose an error message on IDBTransaction to give developers more
        information than the opaque error code currently available. This is
        exactly what is done in IDBRequest. 

        Tests - transaction-error.html

        * Modules/indexeddb/IDBDatabaseError.h:
        (WebCore::IDBDatabaseError::create):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::dispatchEvent):
        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::setError):
        (WebCore):
        (WebCore::IDBTransaction::webkitErrorMessage):
        (WebCore::IDBTransaction::onAbort):
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):
        * Modules/indexeddb/IDBTransaction.idl:

2012-12-06  Alexander Shalamov  <alexander.shalamov@intel.com>

        XMLHttpRequest Content-Type should be taken from Blob type
        https://bugs.webkit.org/show_bug.cgi?id=99983

        Reviewed by Alexey Proskuryakov.

        Fix XMLHttpRequest::send(Blob*) method, so that the Content-Type is set according to W3C specification.
        http://www.w3.org/TR/XMLHttpRequest/#the-send-method

        Added test that check if content type is set correctly when blob object is sent.

        Test: http/tests/xmlhttprequest/post-blob-content-type.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send):
            Set correct MIME type for Blob objects.
        * WebCore.vcproj/WebCore.vcproj:
            Added ParsedContentType to project file.

2012-12-06  Min Qin  <qinmin@chromium.org>

        Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
        https://bugs.webkit.org/show_bug.cgi?id=103555

        Reviewed by Stephen White.

        Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
        No test added for now as impl side paiting is still WIP.

        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::PrepareToDecode):
        (WebCore):
        (WebCore::LazyDecodingPixelRef::Decode):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (LazyDecodingPixelRef):

2012-12-06  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate mandatory in v8UnsignedInteger()
        https://bugs.webkit.org/show_bug.cgi?id=104235

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/ArrayValue.cpp:
        (WebCore::ArrayValue::get):
        * bindings/v8/V8Binding.h:
        (WebCore::v8UnsignedInteger):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):

2012-12-06  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Add requiresBalancing booleans to track which column sets need to rebalance.
        https://bugs.webkit.org/show_bug.cgi?id=104297

        Reviewed by Simon Fraser.

        Add requiresBalancing booleans to RenderMultiColumnBlock and RenderMultiColumnSet. For now the former is just propagated
        to the latter, but eventually RenderMultiColumnSets will have a notion of balancing that has to be independent of the
        owning block (e.g., maybe only the last set rebalances, or maybe only a set that contains the content between two forced
        breaks wants to rebalance, etc.).

        * rendering/RenderMultiColumnBlock.cpp:
        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
        (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
        * rendering/RenderMultiColumnBlock.h:
        (WebCore::RenderMultiColumnBlock::requiresBalancing):
        (RenderMultiColumnBlock):
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        * rendering/RenderMultiColumnSet.h:
        (WebCore::RenderMultiColumnSet::requiresBalancing):
        (WebCore::RenderMultiColumnSet::setRequiresBalancing):
        (RenderMultiColumnSet):
        (WebCore::toRenderMultiColumnSet):
        (WebCore):

2012-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136871.
        http://trac.webkit.org/changeset/136871
        https://bugs.webkit.org/show_bug.cgi?id=104293

        crashes on bots and memory leaks (Requested by esprehn on
        #webkit).

        * dom/Document.h:
        (WebCore::Node::treeScope):
        * dom/Element.cpp:
        (WebCore::Element::createRareData):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::setTreeScope):
        (WebCore::Node::ensureRareData):
        (WebCore::Node::createRareData):
        (WebCore::Node::clearRareData):
        * dom/Node.h:
        (WebCore::NodeRareDataBase::~NodeRareDataBase):
        (WebCore::NodeRareDataBase::NodeRareDataBase):
        (NodeRareDataBase):
        (WebCore::Node::renderer):
        (WebCore::Node::setRenderer):
        (Node):
        (WebCore::Node::hasRareData):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):

2012-12-06  Adam Klein  <adamk@chromium.org>

        Remove non-v8 binding files from WebCore.gypi
        https://bugs.webkit.org/show_bug.cgi?id=104288

        Reviewed by Adam Barth.

        Since the gyp build is only used by the Chromium project,
        there's no need for cpp, gobject, objc, or jsc bindings
        in these build files.

        * WebCore.gypi:

2012-12-06  Tony Chang  <tony@chromium.org>

        REGRESSION(r135082): Restore the ability to insert author level style sheets from script
        https://bugs.webkit.org/show_bug.cgi?id=104042

        Reviewed by Antti Koivisto.

        Add DocumentStyleSheetCollection::addAuthorSheet so embedders can allow scripts
        to insert author level styles. Expose the method to window.interals for testing.

        Test: userscripts/insert-stylesheets.html

        * WebCore.exp.in: Update exports for Internals.cpp.
        * WebCore.order: Update exports for Internals.cpp.
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::addAuthorSheet): Add the stylesheet and force a style recalc.
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Include author level styles.
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage): Include author styles.
        * dom/DocumentStyleSheetCollection.h:
        (WebCore::DocumentStyleSheetCollection::documentAuthorStyleSheets): Accessor.
        (DocumentStyleSheetCollection): Keep track of author styles added by script.
        * testing/Internals.cpp:
        (WebCore::Internals::insertAuthorCSS): Testing addAuthorSheet.
        (WebCore::Internals::insertUserCSS): Testing addUserSheet.
        * testing/Internals.h:
        * testing/Internals.idl: Add addAuthorSheet and addUserSheet.

2012-12-06  Elliott Sprehn  <esprehn@gmail.com>

        Create only NodeRareDataBase when setting TreeScope
        https://bugs.webkit.org/show_bug.cgi?id=104202

        Reviewed by Dimitri Glazkov.

        Move many fields from NodeRareData into NodeRareDataBase and rename it
        UncommonNodeData and add a flag to determine if a UncommonNodeData is
        actually a full NodeRareData instance. By moving fields up from NodeRareData
        we ensure that this new flag in the base class doesn't make NodeRareData
        grow in size.

        We then make setting the tree scope only allocate the UncommonNodeData
        instead of creating the full NodeRareData or ElementRareData. This is
        important because when putting nodes into ShadowRoot or any descendant
        we must associate the node with a tree scope which adds rare data to the
        node making NodeRareData and ElementRareData not very rare.

        On 64bit, this reduces the overhead per element from 136 bytes to
        32 bytes for a 76% savings, and on other nodes from 64 bytes to 32 bytes
        for a 50% savings.

        No new tests, no change in behavior.

        * dom/Document.h:
        (WebCore::Node::treeScope):
        * dom/Element.cpp:
        (WebCore::Element::createRareData):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::setTreeScope):
        (WebCore::Node::ensureRareData):
        (WebCore::Node::createRareData):
        (WebCore::Node::clearRareData):
        * dom/Node.h:
        (WebCore::UncommonNodeData::create):
        (UncommonNodeData):
        (WebCore::UncommonNodeData::~UncommonNodeData):
        (WebCore::UncommonNodeData::isNodeRareData):
        (WebCore::UncommonNodeData::UncommonNodeData):
        (WebCore::Node::renderer):
        (WebCore::Node::setRenderer):
        (Node):
        (WebCore::Node::hasRareData):
        (WebCore::Node::hasUncommonNodeData):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):

2012-12-06  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove IDBDatabaseException.idl
        https://bugs.webkit.org/show_bug.cgi?id=102961

        Reviewed by Adam Barth.

        Delete the IDL and references to it. No longer needed as a enum member
        in the autogenerated ExceptionCodeDescription.h so removed from the ".in"
        file; only direct references are retained in the autogenerated cpp file.

        Ideally the code generator would handle these new-style DOMExceptions,
        but we don't have any other examples yet to know what pattern to follow.

        No new tests - just removing dead code.

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBDatabaseException.idl: Removed.
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMExceptions.in:
        * dom/make_dom_exceptions.pl:
        (generateImplementation):

2012-12-06  Andreas Kling  <akling@apple.com>

        [Mac] Drain the CSSValuePool on memory pressure.
        <http://webkit.org/b/104274>

        Reviewed by Antti Koivisto.

        Add a drain() mechanism to CSSValuePool and call it when we're under memory pressure.

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSValuePool.cpp:
        (WebCore::CSSValuePool::drain):
        * css/CSSValuePool.h:
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::releaseMemory):

2012-12-05  Adam Klein  <adamk@chromium.org>

        Remove gyp config for incomplete and unused Apple Mac gyp build
        https://bugs.webkit.org/show_bug.cgi?id=104068

        Reviewed by Adam Barth.

        As part of the removal, move some files to the proper sections
        of the gypi file.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:

2012-12-06  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Add support for computing the first included interval position.
        https://bugs.webkit.org/show_bug.cgi?id=103327

        Reviewed by Levi Weintraub.

        If the first "word" in a line doesn't fit within the shape-inside when lineTop
        is the top of the shape's logical bounding box, adjust lineTop downwards to where
        the word fits.  Currently only rounded rectangle shapes are supported.

        Added ExclusionShape::firstIncludedIntervalLogicalTop(). The new virtual method
        computes the topmost/leftmost location where a line segment with the specified
        minLogicalIntervalSize will fit within the exclusion shape and returns the
        corresponding logical Y coordinate.  The result is additionally constrained to
        be at or below minLogicalIntervalTop. If the segment will not fit anywhere within
        the shape, then false is returned.

        During layout, minLogicalIntervalTop is the nominal top of the line being laid
        out within the exclusion shape.

        RenderBlock::layoutRunsAndFloatsInRange() now calls a new ExclusionShapeInsideInfo
        method, adjustLogicalLineTop(), which uses firstIncludedIntervalLogicalTop() to
        decide if the logical top of the line has to be moved downwards, for the first
        word to fit within the exclusion shape.

        Tests: fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-001.html
               fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-002.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): This is a stub implementation.
        * rendering/ExclusionPolygon.h:
        * rendering/ExclusionRectangle.cpp:
        (WebCore::ellipseXIntercept): Added spaces to conform to webkit style and to be consistent with ellipseYIntercept()
        (WebCore::ellipseYIntercept): Compute an ellipse's Y intercept for an X coordinate.
        (WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): See the description above.
        * rendering/ExclusionRectangle.h:
        * rendering/ExclusionShape.h:
        (ExclusionShape):
        (WebCore::ExclusionShape::logicalTopForMinY): Internal to logical coordinate conversion.
        * rendering/ExclusionShapeInsideInfo.cpp:
        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): A new method that updates m_lineTop with firstIncludedIntervalPosition().
        * rendering/ExclusionShapeInsideInfo.h:
        (ExclusionShapeInsideInfo):
        (WebCore::ExclusionShapeInsideInfo::logicalLineTop): This is just a cover for the private m_lineTop field.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added code that restarts the layout loop if it's necessary to adjust the line's logicalTop.
        (WebCore::RenderBlock::restartLayoutRunsAndFloatsInRange): Factored newly common code into this helper function.

2012-12-06  Ryosuke Niwa  <rniwa@webkit.org>

        Use ownerNode() instead of base() in HTMLCollection
        https://bugs.webkit.org/show_bug.cgi?id=104244

        Reviewed by Adam Barth.

        Use ownerNode() instead of base() in HTMLCollection to match LiveNodeList.
        Notice that the definition of base(), which this patch removes, is "return ownerNode()".

        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
        (WebCore::getNamedItems):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::indexSetter):
        (WebCore::JSHTMLOptionsCollection::remove):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateOpaqueRootForGC):
        * bindings/scripts/IDLAttributes.txt:
        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
        (WebCore::getNamedItems):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::removeCallback):
        (WebCore::V8HTMLOptionsCollection::indexedPropertySetter):
        * dom/WebKitNamedFlow.cpp:
        (WebCore::WebKitNamedFlow::ownerNode):
        * dom/WebKitNamedFlow.h:
        (WebKitNamedFlow):
        * dom/WebKitNamedFlow.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLCollection.h:
        (HTMLCollection):
        * html/HTMLCollection.idl:
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
        (WebCore::HTMLFormControlsCollection::create):
        (WebCore::HTMLFormControlsCollection::formControlElements):
        (WebCore::HTMLFormControlsCollection::formImageElements):
        (WebCore::HTMLFormControlsCollection::namedItem):
        (WebCore::HTMLFormControlsCollection::updateNameCache):
        * html/HTMLFormControlsCollection.idl:
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::~HTMLNameCollection):
        (WebCore::HTMLNameCollection::virtualItemAfter):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
        (WebCore::HTMLOptionsCollection::remove):
        (WebCore::HTMLOptionsCollection::selectedIndex):
        (WebCore::HTMLOptionsCollection::setSelectedIndex):
        (WebCore::HTMLOptionsCollection::setLength):
        * html/HTMLOptionsCollection.idl:
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::updateRefElements):
        (WebCore::HTMLPropertiesCollection::namedItem):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::virtualItemAfter):

2012-12-06  Tommy Widenflycht  <tommyw@google.com>

        Speech Recognition API: Change the error code to a string on SpeechRecognitionError
        https://bugs.webkit.org/show_bug.cgi?id=104254

        Reviewed by Adam Barth.

        SpeechRecognitionError::code (numeric value) has been changed to SpeechRecognitionError::error (string)
        in the latest specification.

        http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-error

        Existing tests modified to cover this patch.

        * Modules/speech/SpeechRecognitionError.cpp:
        (WebCore::ErrorCodeToString):
        (WebCore):
        (WebCore::SpeechRecognitionError::create):
        (WebCore::SpeechRecognitionError::SpeechRecognitionError):
        * Modules/speech/SpeechRecognitionError.h:
        (SpeechRecognitionErrorInit):
        (WebCore::SpeechRecognitionError::error):
        (SpeechRecognitionError):
        * Modules/speech/SpeechRecognitionError.idl:

2012-12-06  Stephen Chenney  <schenney@chromium.org>

        SVG <use> element inside an svg-as-image fails
        https://bugs.webkit.org/show_bug.cgi?id=104007

        Reviewed by Eric Seidel.

        Upon redraw, SVGImage calls layout on the document it is drawing into
        the image if the image, provided it believes the redraw does not need
        to be delayed. Unfortunately, when an SVG <use> element is modified
        (by animation, say) and regenerates its shadow tree, the destructors
        invoke redraw, causing the SVGImage to call layout on something that
        is in the process of being deleted. That's bad.

        This change causes SVGImage to always delay the redraw. It is the most robust
        way to protect against this problem, as there may be any number of
        ways to cause this issue (a node being deleted in an svg-as-image
        target) and this protects against them all.

        The test case crashes in Asan Chromium.

        Test: svg/as-image/animated-use-as-image-crash.html

        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::imageContentChanged): Always redraw on the timer.

2012-12-06  Antoine Quint  <graouts@apple.com>

        TextTrack's .cues not ordered correctly when two cues have the same .startTime
        https://bugs.webkit.org/show_bug.cgi?id=103266

        Reviewed by Eric Carlson.

        Adding a new method TextTrackCueList::updateCueIndex() to update the list of
        cues after changing the .startTime or .endTime of a TextTrackCue. I elected to
        add a new method to TextTrackCueList rather than calling remove() and then add()
        on the list from TextTrack::cueDidChange() so that the nature of the operation
        is abstracted and we can easily change the way we keep the cue list sorted at
        a later time should we choose to.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::cueDidChange):
        * html/track/TextTrackCueList.cpp:
        (WebCore::TextTrackCueList::updateCueIndex):
        (WebCore):
        * html/track/TextTrackCueList.h:
        (TextTrackCueList):

2012-12-06  Andras Becsi  <andras.becsi@digia.com>

        [Qt][Mac] Fix libxslt and libxml2 config tests
        https://bugs.webkit.org/show_bug.cgi?id=104164

        Reviewed by Simon Hausmann.

        Since libxml2 is a dependency for libxslt and is not used
        standalone the configurations for it should also depend on
        whether XSLT is enabled.
        Also avoid using pkg-config on Mac, instead use direct
        include paths and add needed libraries to the linker.

        No new tests needed.

        * WebCore.pri:

2012-12-06  Shinya Kawanaka  <shinyak@chromium.org>

        Internals.getElementByIdInShadowRoot is nonsense now.
        https://bugs.webkit.org/show_bug.cgi?id=104241

        Reviewed by Kent Tamura.

        Since we have ShadowRoot.getElementById() now, we don't need Internals.getElementByIdInShadowRoot, which is
        the same functionality of ShadowRoot.getElementById().

        Test: fast/dom/shadow/get-element-by-id-in-shadow-root.html

        * WebCore.exp.in:
        * testing/Internals.cpp:
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-12-06  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] Active texture state gets corrupted after updating graphics surface contents.
        https://bugs.webkit.org/show_bug.cgi?id=104248.

        Reviewed by Kenneth Rohde Christiansen.

        GraphicsContext3DPrivate::copyToGraphicsSurface() doesn't restore the previously bound texture
        after copying texture contents. This corrupts the texture state.

        Existing Tests should cover this.

        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (GraphicsContext3DPrivate::copyToGraphicsSurface):
        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::updateContents):
        * platform/graphics/opengl/GLPlatformSurface.h:
        (GLPlatformSurface):

2012-12-06  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Goto panel shortcuts and description are reversed
        https://bugs.webkit.org/show_bug.cgi?id=103988

        Reviewed by Pavel Feldman.

        Swap the square brackets in the shortcuts.

        * inspector/front-end/inspector.js:
        (WebInspector._registerShortcuts):

2012-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136818.
        http://trac.webkit.org/changeset/136818
        https://bugs.webkit.org/show_bug.cgi?id=104249

        simulatedClick does not work as per #chrmium irc. (Requested
        by hayato on #webkit).

        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedTargetAdjuster::adjust):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::create):
        (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
        (WebCore::MouseEventDispatchMediator::dispatchEvent):
        * dom/MouseEvent.h:
        (MouseEventDispatchMediator):
        * dom/Node.cpp:
        (WebCore::Node::dispatchEvent):

2012-12-06  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Fix hidden property name of V8ArrayBufferView flag.
        https://bugs.webkit.org/show_bug.cgi?id=104099

        Reviewed by Kentaro Hara.

        Fix hidden property name of V8ArrayBufferView hidden copy method.

        * bindings/v8/V8HiddenPropertyName.h:
        (WebCore):
        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
        (WebCore::getHiddenCopyMethod):
        (WebCore::installHiddenCopyMethod):

2012-12-06  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Fixed a wrong comment landed in r136822.

        * bindings/v8/V8Binding.h:
        (WebCore):

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Implement deprecatedV8String()
        https://bugs.webkit.org/show_bug.cgi?id=104230

        Reviewed by Adam Barth.

        To make an Isolate mandatory in v8String(), we implement
        deprecatedV8String() for call sites that don't have
        an Isolate. Eventually we want to kill the method though.

        No tests. No change in behavior.

        * bindings/scripts/test/V8/V8TestCallback.cpp:
        (WebCore::V8TestCallback::callbackWithClass2Param):
        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::getKey):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::get):
        (WebCore::set):
        * bindings/v8/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::evaluate):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::compileAndRunScript):
        (WebCore::ScriptController::bindToWindowObject):
        (WebCore::ScriptController::disableEval):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::setBreakpoint):
        (WebCore::ScriptDebugServer::removeBreakpoint):
        (WebCore::ScriptDebugServer::setScriptSource):
        (WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
        (WebCore::ScriptDebugServer::compileScript):
        * bindings/v8/ScriptFunctionCall.cpp:
        (WebCore::ScriptCallArgumentHandler::appendArgument):
        (WebCore::ScriptFunctionCall::call):
        (WebCore::ScriptFunctionCall::construct):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::start):
        (WebCore::ScriptProfiler::stop):
        (WebCore::ScriptProfiler::takeHeapSnapshot):
        * bindings/v8/ScriptSourceCode.cpp:
        (WebCore::ScriptSourceCode::compileScript):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::deprecatedV8String):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        (WebCore::V8DOMWindowShell::namedItemAdded):
        (WebCore::V8DOMWindowShell::namedItemRemoved):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8WindowErrorHandler.cpp:
        (WebCore::V8WindowErrorHandler::callListenerFunction):
        * bindings/v8/V8WorkerContextErrorHandler.cpp:
        (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
        (WebCore::installHiddenCopyMethod):
        (WebCore::copyElements):
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::getEventListenersCallback):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::InjectedScriptManager::createInjectedScript):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAccessorGetter):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):

2012-12-06  Keishi Hattori  <keishi@webkit.org>

        Page popup should align to the right when the anchor element is rtl
        https://bugs.webkit.org/show_bug.cgi?id=104219

        Reviewed by Kent Tamura.

        Page popup should align to the right edge of the anchor element when the anchor element is rtl.

        No new tests. Mock page popup can't test popup window position.

        * Resources/pagepopups/pickerCommon.js:
        (_adjustWindowRectHorizontally): Align to the right edge when anchor element is rtl. Removed some redundant lines.
        (setWindowRect): If the window is hidden we want to move first then resize so the popup doesn't flicker.
        (isWindowHidden): Returns true if the window is hidden using hideWindow().

2012-12-06  Kentaro Hara  <haraken@chromium.org>

        [V8] Make an Isolate mandatory for v8StringOrNull() and v8StringOrUndefined()
        https://bugs.webkit.org/show_bug.cgi?id=104213

        Reviewed by Adam Barth.

        All call sites of v8StringOrNull() and v8StringOrUndefined() have an Isolate.

        No tests. No change in behavior.

        * bindings/v8/V8Binding.h:
        (WebCore::v8StringOrNull):
        (WebCore::v8StringOrUndefined):

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Implement deprecatedV8Integer(int i)
        https://bugs.webkit.org/show_bug.cgi?id=104220

        Reviewed by Adam Barth.

        To make an Isolate mandatory in v8Integer(), we implement
        deprecatedV8Integer(int i) for call sites that don't have
        an Isolate. Eventually we want to kill deprecatedV8Integer(int i).

        No new tests. No change in behavior.

        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):
        * bindings/v8/NPV8Object.cpp:
        (_NPN_Enumerate):
        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::setBreakpoint):
        (WebCore::ScriptDebugServer::compileScript):
        * bindings/v8/ScriptSourceCode.cpp:
        (WebCore::ScriptSourceCode::compileScript):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::deprecatedV8Integer):
        * bindings/v8/V8DOMConfiguration.cpp:
        (WebCore::V8DOMConfiguration::batchConfigureConstants):
        * bindings/v8/V8NPUtils.cpp:
        (WebCore::convertNPVariantToV8Object):
        * bindings/v8/V8Utilities.cpp:
        (WebCore::createHiddenDependency):
        (WebCore::removeHiddenDependency):
        * bindings/v8/V8WindowErrorHandler.cpp:
        (WebCore::V8WindowErrorHandler::callListenerFunction):
        * bindings/v8/V8WorkerContextErrorHandler.cpp:
        (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
        * bindings/v8/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::addListener):
        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
        (WebCore::V8MutationCallback::handleEvent):

2012-12-06  Hayato Ito  <hayato@chromium.org>

        Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
        https://bugs.webkit.org/show_bug.cgi?id=102681

        Reviewed by Dimitri Glazkov.

        Make sure that event's relatedTarget re-targeting occurs for mouse
        events created by event.initMouseEvent().  Since user-generated
        mouse events can have a relatedTarget which is same to the target
        node, the algorithm which calculates event's ancestors is also
        updated so that ancestors are not shrunk wrongly.

        Test: fast/events/dispatch-synthetic-mouseevent.html
              fast/dom/shadow/shadow-dom-event-dispatching.html

        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedTargetAdjuster::adjust):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::create):
        (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
        (WebCore::MouseEventDispatchMediator::dispatchEvent):
        * dom/MouseEvent.h:
        (WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
        (MouseEventDispatchMediator):
        * dom/Node.cpp:
        (WebCore::Node::dispatchEvent):

2012-12-06  Michael Pruett  <michael@68k.org>

        [JSC] Check whether property is an array before attempting conversion to array in JSDictionary
        https://bugs.webkit.org/show_bug.cgi?id=96614

        Reviewed by Kentaro Hara.

        JSDictionary should check whether the property being accessed in get()
        is an array before attempting to convert the value to an array.

        Previously calling get() with a result type of Vector<String> when
        the named property could not be converted to an array would generate
        an exception.

        Tests: storage/indexeddb/*

        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue):
        * bindings/js/JSDictionary.h:
        (WebCore::JSDictionary::tryGetPropertyAndResult):

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Pass Isolate to toDOMStringList()
        https://bugs.webkit.org/show_bug.cgi?id=104224

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (JSValueToNative):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toDOMStringList):
        * bindings/v8/V8Binding.h:
        (WebCore):

2012-12-06  Kentaro Hara  <haraken@chromium.org>

        Remove JSDependentRetained.h and V8DependentRetained.h
        https://bugs.webkit.org/show_bug.cgi?id=104232

        Reviewed by Adam Barth.

        Although (JS|V8)DependentRetained.h were introduced for MutationObservers,
        they are not going to be used (See the discussion in bug 95519).
        We can remove them.

        No tests. No change in behavior.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDependentRetained.h: Removed.
        * bindings/v8/V8DependentRetained.h: Removed.
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::V8PerIsolateData):
        * bindings/v8/V8PerIsolateData.h:
        (V8PerIsolateData):

2012-12-06  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace v8String("symbol") with v8::String::NewSymbol("symbol")
        https://bugs.webkit.org/show_bug.cgi?id=104209

        Reviewed by Adam Barth.

        V8 can look up symbols faster than strings.

        No tests. No change in behavior.

        * bindings/v8/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::caller):
        (WebCore::JavaScriptCallFrame::sourceID):
        (WebCore::JavaScriptCallFrame::line):
        (WebCore::JavaScriptCallFrame::column):
        (WebCore::JavaScriptCallFrame::functionName):
        (WebCore::JavaScriptCallFrame::scopeChain):
        (WebCore::JavaScriptCallFrame::scopeType):
        (WebCore::JavaScriptCallFrame::thisObject):
        (WebCore::JavaScriptCallFrame::evaluate):
        (WebCore::JavaScriptCallFrame::restart):
        * bindings/v8/V8ThrowException.cpp:
        (WebCore::domExceptionStackGetter):
        (WebCore::domExceptionStackSetter):
        (WebCore::V8ThrowException::setDOMException):
        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
        (WebCore::V8InspectorFrontendHost::platformCallback):
        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
        (WebCore::V8JavaScriptCallFrame::typeAccessorGetter):

2012-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136784 and r136802.
        http://trac.webkit.org/changeset/136784
        http://trac.webkit.org/changeset/136802
        https://bugs.webkit.org/show_bug.cgi?id=104231

        breaks chromium canary (Requested by morrita on #webkit).

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/chromium/PlatformThemeChromiumLinux.cpp: Added.
        (WebCore):
        (WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
        (WebCore::clamp):
        (WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
        (WebCore::PlatformThemeChromiumLinux::outlineColor):
        (WebCore::PlatformThemeChromiumLinux::paintArrowButton):
        * platform/chromium/PlatformThemeChromiumLinux.h: Added.
        (WebCore):
        (PlatformThemeChromiumLinux):
        (WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
        (WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
        (WebCore::PlatformThemeChromiumLinux::trackColor):
        (WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Added.
        (WebCore):
        (WebCore::ScrollbarTheme::nativeTheme):
        (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
        (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
        (WebCore::ScrollbarThemeChromiumLinux::paintButton):
        (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
        (WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
        (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
        (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
        * platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
        (ScrollbarThemeChromiumLinux):
        * rendering/RenderThemeChromiumAndroid.cpp:
        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet):
        * rendering/RenderThemeChromiumAndroid.h:
        * rendering/RenderThemeChromiumLinux.cpp: Added.
        (WebCore):
        (WebCore::getWebThemeState):
        (WebCore::RenderThemeChromiumLinux::create):
        (WebCore::RenderTheme::themeForPage):
        (WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
        (WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
        (WebCore::RenderThemeChromiumLinux::systemColor):
        (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
        (WebCore::RenderThemeChromiumLinux::controlSupportsTints):
        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::sliderTickSize):
        (WebCore::RenderThemeChromiumLinux::sliderTickOffsetFromTrackCenter):
        (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
        (WebCore::RenderThemeChromiumLinux::supportsControlTints):
        (WebCore::RenderThemeChromiumLinux::setCaretBlinkInterval):
        (WebCore::RenderThemeChromiumLinux::caretBlinkIntervalInternal):
        (WebCore::RenderThemeChromiumLinux::setSelectionColors):
        (WebCore::RenderThemeChromiumLinux::paintCheckbox):
        (WebCore::RenderThemeChromiumLinux::setCheckboxSize):
        (WebCore::RenderThemeChromiumLinux::paintRadio):
        (WebCore::RenderThemeChromiumLinux::setRadioSize):
        (WebCore::RenderThemeChromiumLinux::paintButton):
        (WebCore::RenderThemeChromiumLinux::paintTextField):
        (WebCore::RenderThemeChromiumLinux::paintMenuList):
        (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
        (WebCore::RenderThemeChromiumLinux::paintSliderThumb):
        (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
        (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
        (WebCore::RenderThemeChromiumLinux::paintProgressBar):
        (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key):
        * rendering/RenderThemeChromiumLinux.h: Added.
        (WebCore):
        (RenderThemeChromiumLinux):

2012-12-05  Sankeerth V S  <sankeerth.vs@samsung.com>

        Web Inspector: Title of "Record Timeline" status button on "Timeline
        Panel" should reflect the recording state.
        https://bugs.webkit.org/show_bug.cgi?id=104108

        Reviewed by Alexander Pavlov.

        Title should be toggled between "Record"/"Stop" to reflect current
        state of the Status bar button.

        No new tests as UI related change.

        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):

2012-12-03  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI doesn't show digits well in RTL locales
        https://bugs.webkit.org/show_bug.cgi?id=103869

        Reviewed by Hajime Morita.

        We need to use display:inline elements to wrap sub-fields and static
        text in DateTimeEditElement children to apply the Unicode Bidi
        Algorithm.

        Because we can't use display:inline-block for them, we can't specify
        min-width CSS property for them. We stop using customStyleForRenderer of
        sub-fields to specify each of their widths, and use
        customStyleForRenderer of DateTimeEditElement to specify the total
        required width. A sub-field width shrink and grow so that the width fits
        to the field value, and a DateTimeEditElement doesn't.

        No new tests. Coverred by existing tests, especially
        fast/forms/datetime/datetime-appearance-l10n.html shows "23:59"
        correctly.

        * css/html.css:
        (input::-webkit-datetime-edit-year-field):
        - Make this display:inline to apply the Unicode Bidi Algorithm.
        - Use padding instead of margin because of ease of width computation.
          Also, the focus apparance gets better by padding.
        - Don't allow to specify font property here because of ease of width
          computation.
        - Remove text-align:center. It doesn't work for display:inline.
        (input::-webkit-datetime-edit-text):
        - Make this display:inline to apply the Unicode Bidi Algorithm.
        - Don't allow to specify font property here because of ease of width
          computation.

        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement): Declare customStyleForRenderer.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::DateTimeEditElement):
        Enable customStyleForRenderer.
        (WebCore::DateTimeEditElement::customStyleForRenderer):
        Compute required width with a font for this element and child maximum
        widths, and set it to min-width style.
        The resultant width value can be inaccurate if a page author specifies
        padding, border, margin, etc. to ::-webkit-datetime-edit-*-field or
        ::-webkit-datetime-edit-text. In such case, the page author should specify
        wider width to <input>.

        * dom/Element.h:
        (Element): Add isDateTimeFieldElement to do static_cast<DateTimeFieldElement> safely.
        * dom/Element.cpp:
        (WebCore::Element::isDateTimeFieldElement): Added.

        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement): Declare isDateTimeFieldElement and maximumWidth.
        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::isDateTimeFieldElement):
        Added. Returns true.
        (WebCore::DateTimeFieldElement::maximumWidth):
        Added. Returns padding width.

        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement):
        Remove customStyleForRenderer, and declare maximumWidth.
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
        Disable customStyleForRenderer.
        (WebCore::DateTimeSymbolicFieldElement::maximumWidth):
        Added. Returns the expected maximum width with the specified font.

        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement):
        Remove customStyleForRenderer, declare maximumWidth, and make m_placeholder
        non-const because it is updated in the constructor.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
        Disable customStyleForRenderer.
        If a numeric value for this field is LTR and the whole direction is RTL,
        wrap the placeholder string with left-to-right-mark and
        right-to-left-mark so that it is handled as LTR. Without this,
        sub-fields order would be changed when the content of a field is changed
        from a placeholder to a numeric value.
        (WebCore::DateTimeNumericFieldElement::maximumWidth):
        Added. Returns the expected maximum width with the specified font.

2012-12-05  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: The hour, am/pm, millisecond fields should support read-only state correctly
        https://bugs.webkit.org/show_bug.cgi?id=104210

        Reviewed by Kentaro Hara.

        1. The hour, am/pm, and millisecond fields should have CSS rules for
           [readonly]. They should be gray when they are read-only.
        2. The am/pm field should reject to set an empty value like other
           numeric fields do.

        Tests: Add test cases to fast/forms/time/time-appearance-basic.html.

        * css/html.css: merge existing readonly rules, and add ampm, hour, and
        millisecond pseudo classes.
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
        Reject to set empty value if it is read-only.

2012-12-05  Dan Beam  <dbeam@chromium.org>

        HTMLFormElement#requestAutocomplete() should require a user action
        https://bugs.webkit.org/show_bug.cgi?id=102320

        Reviewed by Kent Tamura.

        This patch dispatches an autocompleteerror when HTMLFormElement::requestAutocomplete() is called while not processing
        a user gesture.

        * fast/forms/form-request-autocomplete.html is updated.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::requestAutocomplete):

        Asynchronously dispatch an autocomplete error when not processing a user action when
        HTMLFormElement#requestAutocomplete() is invoked.

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Optimize v8StringOrNull() and v8StringOrUndefined()
        https://bugs.webkit.org/show_bug.cgi?id=104206

        Reviewed by Adam Barth.

        Currently v8StringOrNull() and v8StringOrUndefined() are checking
        a null string twice. It is redundant.

        [div.localName]
        Before this patch: 20.03 ns
        After this patch:  19.34 ns

        * bindings/v8/V8Binding.h:
        (WebCore::v8StringOrNull):
        (WebCore::v8StringOrUndefined):

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Optimize v8String() for uninitialized DOM attributes
        https://bugs.webkit.org/show_bug.cgi?id=104205

        Reviewed by Adam Barth.

        This patch makes uninitialized div.lang, div.title etc 6.3% faster.

        [div.lang]
        Before this patch: 12.6 ns
        After this patch:  11.8 ns

        * bindings/v8/V8Binding.h:
        (WebCore::v8String):

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove addImplicitReferencesForNodeWithEventListeners()
        https://bugs.webkit.org/show_bug.cgi?id=104203

        Reviewed by Adam Barth.

        We can use opaqueRootForGC() instead. By this change, we can remove
        all AddImplicitReferences() from V8 bindings.

        Tests: fast/dom/gc-image-element.html
               fast/dom/gc-image-element-2.html
               fast/dom/inline-event-attributes-lookup-removed.html

        * bindings/v8/V8GCController.cpp:

2012-12-05  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Blocks don't relayout children if the width of a region changes
        https://bugs.webkit.org/show_bug.cgi?id=103993

        Reviewed by David Hyatt.

        After r135750 lines are no longer invalidating when regions change width. This is happening because the detection for the width change was being done
        only at line layout time. This patch moves the line relayout decision to the containing block by setting the relayoutChildren flag if the block
        has no region chain attached.

        Tests: fast/regions/region-width-change-relayout-1.html
               fast/regions/region-width-change-relayout-2.html
               fast/regions/region-width-change-relayout-3.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::logicalWidthChangedInRegions):

2012-12-05  Kihong Kwon  <kihong.kwon@samsung.com>

        Parameter event need to covert to RefPtr in the DeviceController::dispatchDeviceEvent
        https://bugs.webkit.org/show_bug.cgi?id=104201

        Reviewed by Laszlo Gombos.

        Parameter 'event' need to covert to RefPtr in the DeviceController::dispatchDeviceEvent.
        This can make crash sometimes.

        No new tests. Covered by existing layout tests.

        * page/DeviceController.cpp:
        (WebCore::DeviceController::dispatchDeviceEvent):

2012-12-05  Halton Huo  <halton.huo@intel.com>

        [CMake] Unify coding style for CMake files
        https://bugs.webkit.org/show_bug.cgi?id=103605

        Reviewed by Laszlo Gombos.

        Update cmake files(.cmake, CMakeLists.txt) with following style rules:
        1. Indentation
        1.1 Use spaces, not tabs.
        1.2 Four spaces as indent.
        2. Spacing
        2.1 Place one space between control statements and their parentheses.
            For eg, if (), else (), elseif (), endif (), foreach (),
            endforeach (), while (), endwhile (), break ().
        2.2 Do not place spaces between function and macro statements and
            their parentheses. For eg, macro(), endmacro(), function(),
            endfunction().
        2.3 Do not place spaces between a command or function or macro and its
            parentheses, or between a parenthesis and its content. For eg,
            message("testing") not message( "testing") or message ("testing" )
        2.4 No space at line ending.
        3. Lowercase when call commands macros and functions. For eg,
           add_executable() not ADD_EXECUTABLE(), set() not SET().

        * CMakeLists.txt:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:
        * PlatformWinCE.cmake:
        * UseJSC.cmake:
        * UseV8.cmake:

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove unused property names from V8HiddenPropertyName
        https://bugs.webkit.org/show_bug.cgi?id=104194

        Reviewed by Adam Barth.

        We can remove unused property names from V8HiddenPropertyName.

        No tests. No change in behavior.

        * bindings/v8/V8HiddenPropertyName.h:
        (WebCore):

2012-12-05  Greg Billock  <gbillock@google.com>

        Add runtime enable for web intents.
        https://bugs.webkit.org/show_bug.cgi?id=103669

        Reviewed by Adam Barth.

        Make web intents Javascript API enabled by a runtime setting.

        * Modules/intents/DOMWindowIntents.idl:
        * Modules/intents/NavigatorIntents.idl:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        (WebCore::RuntimeEnabledFeatures::webkitStartActivityEnabled):
        (WebCore::RuntimeEnabledFeatures::webkitIntentEnabled):
        (WebCore::RuntimeEnabledFeatures::webKitIntentEnabled):
        (WebCore::RuntimeEnabledFeatures::setWebIntentsEnabled):

2012-12-05  Scott Violet  <sky@chromium.org>

        [chromium] Remove linux theme related files and switch to default
        https://bugs.webkit.org/show_bug.cgi?id=103897

        Reviewed by Tony Chang.

        Linux related theme files are now named Default.

        No new tests, code cleanup.

        * WebCore.gyp/WebCore.gyp: Update files
        * WebCore.gypi: Update files
        * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
        * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
        * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
        * rendering/RenderThemeChromiumAndroid.cpp:
        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
        * rendering/RenderThemeChromiumAndroid.h: Change superclass
        * rendering/RenderThemeChromiumLinux.cpp: Removed.
        * rendering/RenderThemeChromiumLinux.h: Removed.

2012-12-05  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Allow multiple transactions to interleave request execution
        https://bugs.webkit.org/show_bug.cgi?id=97570

        Reviewed by Tony Chang.

        Implement spec logic for allowing read-only transactions, and read-write transactions
        with non-overlapping scopes, to run concurrently. Transactions all still run in the
        same thread with tasks triggered via timers, so tasks and the underlying database
        operations are interleaved rather than truly parallelized.

        Within IDBTransactionCoordinator, rename started->queued, running->started to match
        spec terminology and clear up confusion.

        Test: storage/indexeddb/transaction-coordination-across-databases.html
              storage/indexeddb/transaction-coordination-within-database.html
              storage/indexeddb/transaction-readwrite-exclusive.html
              storage/indexeddb/transaction-scope-sequencing.html
              storage/indexeddb/transaction-starvation.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Use IDBTransaction::Mode enum
        (WebCore::IDBDatabaseBackendImpl::createTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp: Convert scope as a HashSet for
        fast intersecting.
        (WebCore::IDBTransactionBackendImpl::create):
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::mode):
        (WebCore::IDBTransactionBackendImpl::scope):
        * Modules/indexeddb/IDBTransactionCoordinator.cpp: Spec logic goes here.
        (WebCore::IDBTransactionCoordinator::processStartedTransactions): Extend this
        method to test all plausibly runnable transactions.
        (WebCore):
        (WebCore::IDBTransactionCoordinator::canRunTransaction): Test to see if one
        particular transaction can be run.
        (WebCore::IDBTransactionCoordinator::doScopesOverlap): Do a quick intersection
        test between transaction scopes.
        * Modules/indexeddb/IDBTransactionCoordinator.h:
        (IDBTransactionCoordinator):

2012-12-05  No'am Rosenthal  <noam@webkit.org>

        Coordinated Graphics: Enable support for setContentsToBackgroundColor
        https://bugs.webkit.org/show_bug.cgi?id=104128

        Reviewed by Kenneth Rohde Christiansen.

        Enable background color in GraphicsLayerTextureMapper, and paint it using TextureMapper::drawSolidColor.
        Once https://bugs.webkit.org/show_bug.cgi?id=103786 is enabled, this would enable Qt/GTK/EFL to directly
        composite colors that only have a background color, without having to create a backing store for them.
        This would eliminate the memory usage for those layers, reduce the time needed for them to draw into the
        backing store and upload the texture, and in the future allow direct compositing of things other than
        background colors.

        Compositing tests cover this, but are still skipped for ports using coordinated graphics. 
        See https://bugs.webkit.org/show_bug.cgi?id=104129.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setContentsToBackgroundColor):
        (WebCore::GraphicsLayerTextureMapper::backgroundColor):
            Maintain a backgroundColor member variable in GraphicsLayerTextureMapper

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawSolidColor):
            TextureMapperGL::drawSolidColor should allow blending when the solid color has alpha.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::paintSelf):
        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (State):

2012-12-05  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r136481.
        http://trac.webkit.org/changeset/136481
        https://bugs.webkit.org/show_bug.cgi?id=103868

        it might have regressed dom_perf/CloneNodes (See bug 104177)

        * dom/ContainerNodeAlgorithms.h:
        (ChildNodeInsertionNotifier):
        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
        (WebCore::ChildNodeInsertionNotifier::notify):

2012-12-05  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Abort transactions because of leveldb errors part 3
        https://bugs.webkit.org/show_bug.cgi?id=103960

        Reviewed by Tony Chang.

        Transactions are aborted when there are leveldb problems creating
        indexes on an object store with existing data or when adding data to an
        objectstore that has indexes.

        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore):
        (WebCore::makeIndexWriters):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):

2012-12-05  Simon Fraser  <simon.fraser@apple.com>

        Fix some repaint/paintCounter confusion, and reset it when getting layers out of the layer pool
        https://bugs.webkit.org/show_bug.cgi?id=104180

        Reviewed by Tim Horton.

        Layers retrieved from the LayerPool by TileCache need to have their
        repaint counters reset, otherwise the scroll performance logging gets
        confused.
        
        Also, the counter counts paints, not repaints (invalidations), so
        rename it accordingly.

        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea): Whitespace fix.
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::blankPixelCountForTiles):
        (WebCore::TileCache::createTileLayer):
        (WebCore::TileCache::drawRepaintCounter):
        * platform/graphics/ca/mac/WebTileLayer.h:
        * platform/graphics/ca/mac/WebTileLayer.mm:
        (-[WebTileLayer resetPaintCount]):
        (-[WebTileLayer incrementPaintCount]):
        (-[WebTileLayer paintCount]):
        (-[WebTileLayer logFilledFreshTile]):

2012-12-05  Oliver Hunt  <oliver@apple.com>

        Empty parse cache when receiving a low memory warning
        https://bugs.webkit.org/show_bug.cgi?id=104161

        Reviewed by Filip Pizlo.

        Use new discardAllCode() function on the global data, rather than
        directly interacting with the heap.

        * bindings/js/GCController.cpp:
        (WebCore::GCController::discardAllCompiledCode):

2012-12-05  Dan Bernstein  <mitz@apple.com>

        Text decorations are rotated when text-combine takes effect
        https://bugs.webkit.org/show_bug.cgi?id=104172

        Reviewed by Dave Hyatt.

        Test: fast/text/decorations-with-text-combine.html

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint): Applied a rotation to the graphics context when painting
        the text decorations for combined text.

2012-12-05  Justin Novosad  <junov@google.com>

        [skia] Improve performance of GraphicsContext::createCompatibleBuffer by using SkDevice:createCompatibleDevice
        https://bugs.webkit.org/show_bug.cgi?id=103896

        Reviewed by Stephen White.

        Refactored GraphicsContext::createCompatibleBuffer (platform common
        code) to use platform-specific implementations provided by ImageBuffer.
        There is no change in behavior for non-skia ports. The skia
        implementation uses skia'a own createCompatibleDevice implementation,
        which offers several performance benefits:
        1. For accelerated contexts, the backing store may be allocated from
        the scratch texture pool, which minimizes texture allocation and
        deallocation overhead.
        2. The backing store will not be initially cleared if it is known
        in advance that fully opaque contents will be drawn into the buffer.
        3. For non-accelerated contexts, if the backing store is flagged as
        opaque, faster blitter loop implementations will be used for drawing
        the buffer contents into other buffers. (e.g. generated opaque gradient
        fills)

        No new tests: covered by existing layout tests 

        * platform/graphics/Generator.h:
        (Generator):
        Added hasAlpha method so that it can be used by GeneratorGeneratedImage
        * platform/graphics/GeneratorGeneratedImage.cpp:
        (WebCore::GeneratorGeneratedImage::drawPattern):
        Passing m_generator->hasAlpha() to createCompatibleBuffer in order to
        take advantage of optimizations that apply to opaque buffers.
        * platform/graphics/Gradient.h:
        (Gradient):
        Made hasAlpha virtual so that it now overrides Generator::hasAlpha
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::createCompatibleBuffer):
        Refactored to use platform-specific implementation
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/ImageBuffer.cpp:
        (WebCore::createCompatibleBuffer):
        Non-skia implementation. Mimics old
        GraphicsContext::createCompatibleBuffer
        * platform/graphics/ImageBuffer.h:
        (ImageBuffer):
        New skia-specific constructor
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::createCompatibleBuffer):
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::createCompatibleDevice):
        (WebCore):
        * platform/graphics/skia/PlatformContextSkia.h:
        (PlatformContextSkia):

2012-12-05  Alexis Menard  <alexis@webkit.org>

        REGRESSION (r136683): css3/calc/background-position-parsing.html failing on EFL Linux 64-bit Debug WK2
        https://bugs.webkit.org/show_bug.cgi?id=104131

        Reviewed by Antti Koivisto.

        css3/calc/background-position-parsing.html assert in debug because we
        call CSSParser::validUnit multiple times in a row. The problem was with
        validUnit which check calc() values and save the result inside
        m_parsedCalculation for later usage. validUnit expects you to
        use m_parsedCalculation therefore calling validUnit again with
        m_parsedCalculation being set asserts. As parseFillBackgroundPosition
        just want to check wether the current value is maybe valid for
        background-position we can just relax the check to allow either the
        valid keywords or any other units (we will anyway filter the incorrect
        values later in the parsing). The most important check at this point
        for the shorthand is the validity of the keyword.

        No new tests : the assert was covered by css3/calc/background-position-parsing.html.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::isPotentialPositionValue):
        (WebCore::CSSParser::parseFillBackgroundPosition):
        * css/CSSParser.h:

2012-12-05  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r136735.
        http://trac.webkit.org/changeset/136735
        https://bugs.webkit.org/show_bug.cgi?id=102699

        Broke Chrome/Win build.

        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
        (WebCore::ScrollbarThemeChromiumWin::paintButton):
        (WebCore::ScrollbarThemeChromiumWin::paintThumb):
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore):
        (WebCore::RenderThemeChromiumWin::paintButton):
        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
        (WebCore::RenderThemeChromiumWin::paintSliderThumb):
        (WebCore::RenderThemeChromiumWin::paintMenuList):
        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
        (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
        (WebCore::RenderThemeChromiumWin::paintProgressBar):

2012-12-05  Jun Jiang  <jun.a.jiang@intel.com>

        WebGL: use pointer to the source data for Image directly in texImage2D and texSubImage2D to avoid memory copy if no conversion is needed
        https://bugs.webkit.org/show_bug.cgi?id=103885

        Reviewed by Kenneth Russell.

        In texImage2D() and texSubImage2D(), there is a redundant memory copy from Image data to the intermediate vector when no conversion is needed. If the Image resource can be locked properly, it is better to use the pointer to the image source directly and hence avoid the memory copy and improve the performance. 

        Already covered by current tests.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::texImage2DBase):
        (WebCore::WebGLRenderingContext::texImage2DImpl):
        (WebCore::WebGLRenderingContext::texSubImage2DBase):
        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
        * html/canvas/WebGLRenderingContext.h:
        (WebGLRenderingContext):
        * platform/graphics/GraphicsContext3D.h:
        (ImageExtractor):

2012-12-05  Elliott Sprehn  <esprehn@chromium.org>

        Add infrastructure for :before and :after in DOM
        https://bugs.webkit.org/show_bug.cgi?id=103705

        Reviewed by Eric Seidel.

        Add all infrastructure for reimplementing generated content :before and
        :after as DOM Elements. Now ElementRareData has two pointers to PseudoElements
        for the generated content and Node has methods for traversing the tree
        including generated content.

        This will allow the generated content to be treated as real nodes instead
        of anonymous and take part in the usual recalcStyle and attach flow which
        fixes many bugs and vastly simplifies the ifecycle of generated content.

        Instead of attempting to land both the infrastructure and enable it at
        the same time which has proven problematic due to how drastic this change
        is, this patch contains only the support code so a much smaller future
        patch can be used to switch it on.

        No new behavior, this is just the infrastructure.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/Element.cpp:
        (WebCore::Element::~Element):
        (WebCore::Element::detach):
        (WebCore::Element::updatePseudoElement):
        (WebCore::Element::createPseudoElementIfNeeded):
        (WebCore::Element::beforePseudoElement):
        (WebCore::Element::afterPseudoElement):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        (WebCore::ElementRareData::~ElementRareData):
        (WebCore::ElementRareData::setPseudoElement):
        (WebCore::ElementRareData::pseudoElement):
        (WebCore::ElementRareData::releasePseudoElement):
        * dom/Node.cpp:
        (WebCore::Node::pseudoAwarePreviousSibling):
        (WebCore::Node::pseudoAwareNextSibling):
        (WebCore::Node::rendererIsEditable):
        (WebCore::checkAcceptChild):
        * dom/Node.h:
        (Node):
        (WebCore::Node::isPseudoElement):
        (WebCore::Node::isBeforePseudoElement):
        (WebCore::Node::isAfterPseudoElement):
        (WebCore::Node::pseudoId):
        (WebCore::Node::customPseudoId):
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):
        * dom/Position.cpp:
        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
        * dom/PseudoElement.cpp: Added.
        (WebCore::pseudoElementTagName):
        (WebCore::PseudoElement::PseudoElement):
        (WebCore::PseudoElement::customStyleForRenderer):
        (WebCore::PseudoElement::attach):
        (WebCore::PseudoElement::rendererIsNeeded):
        (WebCore::PseudoElement::updateChildStyle):
        (WebCore::PseudoElement::didRecalcStyle):
        * dom/PseudoElement.h: Added.
        (PseudoElement):
        (WebCore::PseudoElement::create):
        (WebCore::pseudoElementIsNeeded):
        * editing/visible_units.cpp:
        (WebCore::logicallyPreviousBox):
        (WebCore::logicallyNextBox):
        (WebCore::startPositionForLine):
        (WebCore::endPositionForLine):
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationController::updateAnimations):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::setInnerNode):
        (WebCore::HitTestResult::setInnerNonSharedNode):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):
        (WebCore::RenderBlock::renderName):
        * rendering/RenderCounter.cpp:
        (WebCore::RenderCounter::originalText):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::renderName):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::renderName):
        * rendering/RenderMultiColumnBlock.cpp:
        (WebCore::RenderMultiColumnBlock::renderName):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        (WebCore::RenderObject::setPseudoStyle):
        (WebCore::RenderObject::createVisiblePosition):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isPseudoElement):
        (RenderObject):
        (WebCore::RenderObject::generatingNode):
        * rendering/RenderTableCell.h:
        (WebCore::RenderTableCell::renderName):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::renderName):
        * rendering/RenderTableSection.h:
        (WebCore::RenderTableSection::renderName):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::RenderTreeAsText::writeRenderObject):
        * rendering/style/ContentData.cpp:
        (WebCore::ImageContentData::createRenderer):
        (WebCore::TextContentData::createRenderer):
        (WebCore::CounterContentData::createRenderer):
        (WebCore::QuoteContentData::createRenderer):

2012-12-05  Justin Novosad  <junov@google.com>

        Use of uninitialized variable in WebCore::RenderBox::paintFillLayers
        https://bugs.webkit.org/show_bug.cgi?id=104154

        Reviewed by Stephen White.

        Method FillLayer::clipOccludesNextLayers performs an internal
        initialization when called on the first layer of a list of layers.
        Without this initialization, calls to clipOccludesNextLayers on
        subsequent layers will use uninitialized data.  In some cases, the
        call to clipOccludesNextLayers was being short-circuited in
        RenderBox::paintFillLayers. 
        Fix: Predicate was permuted to ensure that clipOccludesNextLayers
        is never short-circuited.
        
        Test: fast/backgrounds/size/contain-and-cover-zoomed.html
        Running with valgrind reveals the error.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintFillLayers):

2012-12-05  Elliott Sprehn  <esprehn@gmail.com>

        Encapsulate ElementRareData for possible future sharing
        https://bugs.webkit.org/show_bug.cgi?id=103948

        Reviewed by Eric Seidel.

        Encapsulate ElementRareData and make all access go through getters and
        setters. This is already true for NodeRareData, but ElementRareData
        had many places where people directly access it.

        This the first step in possible future sharing of ElementRareData
        instances across nodes. All nodes in a shadow tree have rare data to
        store the TreeScope, but in most cases all they have is the TreeScope!
        Instead of making every node in a shadow subtree have rare data
        and use lots of memory we could just share a single instance of rare data
        and only allocate a unique one on modification. Encapsulation lets us
        assert about mutations on shared instances.

        * dom/Element.cpp:
        (WebCore::Element::~Element):
        (WebCore::Element::attributes):
        (WebCore::Element::shadow):
        (WebCore::Element::ensureShadow):
        (WebCore::Element::minimumSizeForResizing):
        (WebCore::Element::setMinimumSizeForResizing):
        (WebCore::Element::computedStyle):
        (WebCore::Element::classList):
        (WebCore::Element::optionalClassList):
        (WebCore::Element::dataset):
        (WebCore::Element::hasNamedNodeMap):
        (WebCore::Element::savedLayerScrollOffset):
        (WebCore::Element::setSavedLayerScrollOffset):
        * dom/ElementRareData.cpp:
        (WebCore::ElementRareData::reportMemoryUsage):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::needsFocusAppearanceUpdateSoonAfterAttach):
        (WebCore::ElementRareData::setNeedsFocusAppearanceUpdateSoonAfterAttach):
        (ElementRareData):
        (WebCore::ElementRareData::styleAffectedByEmpty):
        (WebCore::ElementRareData::setStyleAffectedByEmpty):
        (WebCore::ElementRareData::isInCanvasSubtree):
        (WebCore::ElementRareData::setIsInCanvasSubtree):
        (WebCore::ElementRareData::containsFullScreenElement):
        (WebCore::ElementRareData::setContainsFullScreenElement):
        (WebCore::ElementRareData::isInTopLayer):
        (WebCore::ElementRareData::setIsInTopLayer):
        (WebCore::ElementRareData::childrenAffectedByHover):
        (WebCore::ElementRareData::setChildrenAffectedByHover):
        (WebCore::ElementRareData::childrenAffectedByActive):
        (WebCore::ElementRareData::setChildrenAffectedByActive):
        (WebCore::ElementRareData::childrenAffectedByDrag):
        (WebCore::ElementRareData::setChildrenAffectedByDrag):
        (WebCore::ElementRareData::childrenAffectedByFirstChildRules):
        (WebCore::ElementRareData::setChildrenAffectedByFirstChildRules):
        (WebCore::ElementRareData::childrenAffectedByLastChildRules):
        (WebCore::ElementRareData::setChildrenAffectedByLastChildRules):
        (WebCore::ElementRareData::childrenAffectedByDirectAdjacentRules):
        (WebCore::ElementRareData::setChildrenAffectedByDirectAdjacentRules):
        (WebCore::ElementRareData::childrenAffectedByForwardPositionalRules):
        (WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules):
        (WebCore::ElementRareData::childrenAffectedByBackwardPositionalRules):
        (WebCore::ElementRareData::setChildrenAffectedByBackwardPositionalRules):
        (WebCore::ElementRareData::childIndex):
        (WebCore::ElementRareData::setChildIndex):
        (WebCore::ElementRareData::shadow):
        (WebCore::ElementRareData::setShadow):
        (WebCore::ElementRareData::attributeMap):
        (WebCore::ElementRareData::setAttributeMap):
        (WebCore::ElementRareData::computedStyle):
        (WebCore::ElementRareData::setComputedStyle):
        (WebCore::ElementRareData::classList):
        (WebCore::ElementRareData::setClassList):
        (WebCore::ElementRareData::dataset):
        (WebCore::ElementRareData::setDataset):
        (WebCore::ElementRareData::minimumSizeForResizing):
        (WebCore::ElementRareData::setMinimumSizeForResizing):
        (WebCore::ElementRareData::savedLayerScrollOffset):
        (WebCore::ElementRareData::setSavedLayerScrollOffset):
        (WebCore::ElementRareData::resetComputedStyle):
        * dom/NodeRareData.h:
        (NodeRareData):

2012-12-05  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium][Win] Remove theme-related functions from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=102699

        Reviewed by Adam Barth.

        Call theme engine directly instead of going through
        PlatformSupport. Part of a refactoring series. See tracking bug 82948.

        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
        (WebCore::ScrollbarThemeChromiumWin::paintButton):
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore):
        (WebCore::RenderThemeChromiumWin::paintButton):
        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
        (WebCore::RenderThemeChromiumWin::paintSliderThumb):
        (WebCore::RenderThemeChromiumWin::paintMenuList):
        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
        (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
        (WebCore::RenderThemeChromiumWin::paintProgressBar):

2012-12-05  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r136609.
        http://trac.webkit.org/changeset/136609
        https://bugs.webkit.org/show_bug.cgi?id=103793

        Breaking Chrome/Mac Debug builds.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::create):
        * platform/chromium/support/GraphicsContext3DChromium.cpp:
        (WebCore::GraphicsContext3D::create):
        * platform/graphics/GraphicsContext3D.h:
        (Attributes):

2012-12-05  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] Enable shape-inside for multiple-segment polygons
        https://bugs.webkit.org/show_bug.cgi?id=91878

        Reviewed by David Hyatt.

        Patch adding support for multiple-segment polygons for shape-insides from
        the CSS Exclusions specification. The layout code has been modified to first
        support dividing text into multiple segments per line, and then to lay out
        multiple segments per line box.

        Tests:  fast/exclusions/shape-inside/shape-inside-multiple-segments-001.html
                fast/exclusions/shape-inside/shape-inside-multiple-segments-002.html
                fast/exclusions/shape-inside/shape-inside-multiple-segments-003.html
                fast/exclusions/shape-inside/shape-inside-multiple-segments-004.html

        * platform/text/BidiResolver.h:
        (WebCore::BidiCharacterRun::BidiCharacterRun):
        (BidiCharacterRun): Added a 'startsSegment' bitfield to track whether a
        run begins a new segment. The field is here, rather than in BidiRun, in
        order to save space. See Bug 100173.
        * rendering/BidiRun.h:
        (WebCore::BidiRun::BidiRun):
        (BidiRun): Set the initial value for 'startsSegment'.
        * rendering/ExclusionShapeInsideInfo.cpp:
        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Clear the
        segment ranges when computing segments for a new line.
        * rendering/ExclusionShapeInsideInfo.h:
        (LineSegmentRange): Added a new type to track segment offsets.
        (WebCore::ExclusionShapeInsideInfo::segmentRanges): Added a getter for
        the line segment ranges vector.
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInInlineDirection): Modified to call
        a refactored box placement algorithm that takes a beginning and end position.
        (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection): Similar to the
        placeBoxes method, but takes an end position that may occur before the end
        of the line.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::exclusionShapeInsideInfo): Factored out calls
        to ExclusionShapeInsideInfo to the .cpp file, as ExclusionShapeInsideInfo
        requires InlineIterator.h, which would create a circular dependency in
        ExclusionShapeInsideInfo.h.
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::exclusionShapeInsideInfo): Modified to call
        exclusionShapeInsideInfo to be non-inline.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::LineWidth::LineWidth): LineWidth now uses the number of computed
        segmentRanges to determine which LineSegment to use when calculating width.
        (WebCore::RenderBlock::createLineBoxes): Now takes a boolean to determine
        whether or not it can share the same parentBox as its siblings (segments
        must be able to position themselves separately in the RootInlineBox).
        (WebCore::RenderBlock::constructLine):
        (WebCore::computeExpansionForJustifiedText): Do include runs that start new
        segments when calculating justification for the current segment.
        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Modified to
        use the computeInlineDirectionPositionsForSegment, which can position
        multiple segments of text per line.
        (WebCore::RenderBlock::computeInlineDirectionPositionsForSegment): Positions
        the given segment of text and calculates its layout offsets.
        (WebCore::constructBidiRuns): Modified some variables from 'endOfLine' to 'endOfSegment'.
        (WebCore::constructBidiRunsForLine): Construct the bidi runs for each segment in
        the given line.
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Call constructBidiRunsForLine.
        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Moved the line breaking code
        to break segments, with nextLineBreak iterating over segment breaks for the entire line.
        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Calculates how much text a
        segment can hold. This code was originally in nextLineBreak.

2012-12-05  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r136630.
        http://trac.webkit.org/changeset/136630
        https://bugs.webkit.org/show_bug.cgi?id=103555

        It's breaking Chrome/Win Debug builds.

        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (LazyDecodingPixelRef):

2012-12-05  Andreas Kling  <akling@apple.com>

        REGRESSION(r136615): Incorrect style sharing in view-source documents.
        <http://webkit.org/b/104089>

        Reviewed by Antti Koivisto.

        Make sure we collect feature data about the default view-source style sheet before evaluating
        style sharing candidates, otherwise it won't know which class selectors to care about.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::collectFeatures):

2012-12-05  Mike West  <mkwst@chromium.org>

        Stop generating call stacks inside ContentSecurityPolicy
        https://bugs.webkit.org/show_bug.cgi?id=104126

        Reviewed by Yury Semikhatsky.

        Now that bug 100650 has made it possible for ConsoleMessage to generate
        call stacks, we can remove the stack being generated in
        ContentSecurityPolicy::logToConsole. We need the ScriptState*, however,
        so this patch makes it possible to pipe it through addConsoleMessage
        down into the guts of the inspector.

        This patch also removes an unused addConsoleMessage variant from
        ScriptExecutionContext, which should have been removed from the patch to
        100650 before landing it. My bad.

        * dom/Document.cpp:
        (WebCore::Document::addMessage):
        * dom/Document.h:
        (Document):
            Accept a ScriptState* parameter in Document::addMessage, and pass it
            through to Console::addMessage.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::addConsoleMessage):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
            Accept a ScriptState* parameter in Document::addMessage, and pass it
            through to ScriptExecutionContext::addMessage. Also, remove an unused
            variant of ScriptExecutionContext::addConsoleMessage that accepted
            only a call stack in addition to the basics.
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::ConsoleMessage):
        * inspector/ConsoleMessage.h:
        (ConsoleMessage):
            Accept a ScriptState* and pass it into autogenerateMetadata for
            call stack generational goodness.
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
            Accept a ScriptState* and pass it into addConsoleMessage.
        (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
        (WebCore::InspectorConsoleAgent::didReceiveResponse):
        (WebCore::InspectorConsoleAgent::didFailLoading):
            Add an empty ScriptState parameter to the addConsoleMessage call.
        * inspector/InspectorConsoleAgent.h:
        (InspectorConsoleAgent):
        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::addMessageToConsole):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * page/Console.cpp:
        (WebCore::Console::addMessage):
        * page/Console.h:
        (Console):
            Pipe ScriptState through the intermediate classes.
        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::logToConsole):
            Drop call stack generation, and pass ScriptState* into addConsoleMessage.
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::addConsoleMessage):
        (WebCore::WorkerContext::addMessage):
        (WebCore::WorkerContext::addMessageToWorkerConsole):
        * workers/WorkerContext.h:
        (WorkerContext):
            Accept ScriptState* and pass it into addMessageToConsole.

2012-12-05  Rafael Weinstein  <rafaelw@chromium.org>

        DOMImplementation.createDocument should call appendChild rather than parserAppendChild to add docType and documentElement
        https://bugs.webkit.org/show_bug.cgi?id=104040

        Reviewed by Ojan Vafai.

        createDocument now calls appendChild.

        No new tests (no observable changes).

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserAppendChild):
        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument):

2012-12-05  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Stub out transaction-backend methods
        https://bugs.webkit.org/show_bug.cgi?id=103921

        Reviewed by Dimitri Glazkov.

        In preparation for a refactoring. Legacy methods 
        will be removed in https://bugs.webkit.org/show_bug.cgi?id=103923.

        No new tests, just adding unused methods for refactoring.

        * Modules/indexeddb/IDBCallbacks.h:
        (WebCore::IDBCallbacks::onUpgradeNeeded):
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::onAbort):
        (WebCore):
        (WebCore::IDBDatabase::onComplete):
        * Modules/indexeddb/IDBDatabase.h:
        (IDBDatabase):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::createTransaction):
        (WebCore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        (WebCore::IDBDatabaseBackendImpl::commit):
        (WebCore::IDBDatabaseBackendImpl::abort):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBDatabaseCallbacks.h:
        (IDBDatabaseCallbacks):
        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
        (WebCore::IDBDatabaseCallbacksImpl::onAbort):
        (WebCore):
        (WebCore::IDBDatabaseCallbacksImpl::onComplete):
        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
        (IDBDatabaseCallbacksImpl):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::open):
        * Modules/indexeddb/IDBFactoryBackendImpl.h:
        (WebCore::IDBFactoryBackendImpl::open):
        (IDBFactoryBackendImpl):
        * Modules/indexeddb/IDBFactoryBackendInterface.h:
        (IDBFactoryBackendInterface):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        (WebCore):
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:
        (WebCore):
        * Modules/indexeddb/IDBTransactionCoordinator.h:

2012-11-27  Alec Flett  <alecflett@chromium.org>

        IndexedDB: remove IDBDatabaseBackendInterface::transaction()
        https://bugs.webkit.org/show_bug.cgi?id=102733

        Reviewed by Darin Fisher.

        Part 3 of a refactor, remove the old transaction() method.

        No new tests as this is just post-refactor cleanup.

        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):

2012-12-05  Robert Hogan  <robert@webkit.org>

        REGRESSION(r126683): Table cell are getting borders when the style doesn't mention any
        https://bugs.webkit.org/show_bug.cgi?id=101677

        Reviewed by Julien Chaffraix.

        The bordercolor attribute on a cell or row has no effect on FF and Opera, even when the parent
        table has a border attribute. IE displays the bordercolor of the cell and row in all cases except when
        the parent has no border attribute. WebKit's old behaviour (before r126683) was to display the
        bordercolor of the row but not the cells (I don't think this behaviour was particularly deliberate). No
        browser displays the bordercolor for a col or tbody element.

        Bring WebKit into line with Opera and FF by ignoring the bordercolor attribute on cells, rows, cols, rowgroups, and
        colgroups in all cases, regardless of whether the table has a border or not.

        Test: fast/table/td-bordercolor-attribute.html

        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::isPresentationAttribute):
        (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):

2012-12-05  Krzysztof Czech  <k.czech@samsung.com>

        [EFL][WK2] Introduce WebKit-EFL to Assistive Technologies
        https://bugs.webkit.org/show_bug.cgi?id=104000

        Reviewed by Chris Fleizach.

        Introduce Webkit-EFL so that Assistive Technologies can distinguish it.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetAttributes):

2012-12-05  Carlos Garcia Campos  <cgarcia@igalia.com>

        Remove unneeded WTF prefix from WTF types in RenderFlexibleBox
        https://bugs.webkit.org/show_bug.cgi?id=104109

        Reviewed by Eric Seidel.

        WTF prefix is not needed because WTF headers have a using
        statement at the end of the file.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::RenderFlexibleBox::freezeViolations):
        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::alignFlexLines):
        (WebCore::RenderFlexibleBox::alignChildren):
        (WebCore::RenderFlexibleBox::flipForWrapReverse):
        * rendering/RenderFlexibleBox.h:

2012-12-05  Andras Becsi  <andras.becsi@digia.com>

        Fix compilation for Qt5.0.0 stable branch.
        https://bugs.webkit.org/show_bug.cgi?id=103870

        Reviewed by Simon Hausmann.

        This is a squashed patch consisting of patches by multiple authors.

        Fixed use of to-be-removed compatibility functions in QWindow
        Patch by Samuel Rødal <samuel.rodal@digia.com>

        Build fix. No new tests needed.

        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
        (FullScreenVideoWindow::FullScreenVideoWindow):
        (PlatformVideoWindow::PlatformVideoWindow):

2012-12-05  John J. Barton  <johnjbarton@chromium.org>

        Web Inspector: more robust treeoutline.findTreeElement
        https://bugs.webkit.org/show_bug.cgi?id=103911

        Reviewed by Vsevolod Vlasov.

        Non-recursive algorithm to populate the treeoutline given an DOMNode
        as representedObject. Walk up the parents from the desired object
        until we find one that is currently represented in the treeoutline 
        cache. Then walk down, putting children in the cache until we get 
        to the desired object again. 
        With Pavel Feldeman <pfeldman@chromium.org>

        No new tests, refactoring, no new function

       * inspector/front-end/treeoutline.js:
        (TreeOutline.prototype.findTreeElement):

2012-12-05  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL][GTK] List value response headers are not handled in RespourceResponse (libsoup specific)
        https://bugs.webkit.org/show_bug.cgi?id=95181

        Reviewed by Martin Robinson.

        When list-value response headers are received, they are handled as single
        value headers. This patch fixes incorrect behavior. New test was added to
        verify list-value header handling.

        Test: http/tests/xmlhttprequest/xmlhttprequest-test-custom-headers.html

        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::updateFromSoupMessage):

2012-12-05  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: Don't include error message text in the editor buffer.
        https://bugs.webkit.org/show_bug.cgi?id=103932

        Reviewed by Alexander Pavlov.

        Skip entire decoration content when collecting dirty regions.
        
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):

2012-12-05  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Replace use of ScriptExecutionContext::Task (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=103931

        Reviewed by Tony Chang.

        Actually drop use of ScriptExecutionContext::Task and remove incorrect usage of
        ThreadSafeRefCounted<>. Define a new IDBTransactionBackendImpl::Operation base class
        for operations; storage of per-operation data becomes explicit.

        No new tests - just a refactor.

        * Modules/indexeddb/IDBCallbacks.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::create):
        (IDBCursorBackendImpl::CursorIterationOperation):
        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::CursorIterationOperation):
        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::create):
        (IDBCursorBackendImpl::CursorAdvanceOperation):
        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::CursorAdvanceOperation):
        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::create):
        (IDBCursorBackendImpl::CursorPrefetchIterationOperation):
        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::CursorPrefetchIterationOperation):
        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::perform):
        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::perform):
        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
        * Modules/indexeddb/IDBCursorBackendInterface.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBDatabase.cpp:
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::create):
        (IDBDatabaseBackendImpl::CreateObjectStoreOperation):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::CreateObjectStoreOperation):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::create):
        (IDBDatabaseBackendImpl::DeleteObjectStoreOperation):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
        (IDBDatabaseBackendImpl::VersionChangeOperation):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::create):
        (IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::create):
        (IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
        (IDBDatabaseBackendImpl::VersionChangeAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::VersionChangeAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBDatabaseCallbacks.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        * Modules/indexeddb/IDBFactoryBackendInterface.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
        (IDBIndexBackendImpl::OpenIndexCursorOperation):
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::OpenIndexCursorOperation):
        (WebCore::IDBIndexBackendImpl::IndexCountOperation::create):
        (IDBIndexBackendImpl::IndexCountOperation):
        (WebCore::IDBIndexBackendImpl::IndexCountOperation::IndexCountOperation):
        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::create):
        (IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation):
        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::IndexReferencedValueRetrievalOperation):
        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::create):
        (IDBIndexBackendImpl::IndexValueRetrievalOperation):
        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::IndexValueRetrievalOperation):
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
        (WebCore::IDBIndexBackendImpl::openCursor):
        (WebCore::IDBIndexBackendImpl::openKeyCursor):
        (WebCore::IDBIndexBackendImpl::IndexCountOperation::perform):
        (WebCore::IDBIndexBackendImpl::count):
        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::perform):
        (WebCore::IDBIndexBackendImpl::get):
        (WebCore::IDBIndexBackendImpl::getKey):
        * Modules/indexeddb/IDBIndexBackendInterface.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBKey.h: Remove bogus "ThreadSafe"
        (IDBKey):
        * Modules/indexeddb/IDBKeyRange.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::ObjectStoreRetrievalOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreStorageOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::ObjectStoreStorageOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::ObjectStoreIndexesReadyOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::ObjectStoreDeletionOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreClearOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::ObjectStoreClearOperation):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::create):
        (IDBObjectStoreBackendImpl::CreateIndexOperation):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::CreateIndexOperation):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::create):
        (IDBObjectStoreBackendImpl::DeleteIndexOperation):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::DeleteIndexOperation):
        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::create):
        (IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation):
        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::OpenObjectStoreCursorOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreCountOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::ObjectStoreCountOperation):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::create):
        (IDBObjectStoreBackendImpl::CreateIndexAbortOperation):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::CreateIndexAbortOperation):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::create):
        (IDBObjectStoreBackendImpl::DeleteIndexAbortOperation):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
        (WebCore::IDBObjectStoreBackendImpl::get):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::clear):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::openCursor):
        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::count):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::perform):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Remove bogus "ThreadSafe"
        * Modules/indexeddb/IDBRequest.h: Remove bogus "ThreadSafe"
        (IDBRequest):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Appease RefPtr<> adoption strictness.
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (Operation):
        (WebCore::IDBTransactionBackendImpl::Operation::~Operation):
        (IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendInterface.h: Remove bogus "ThreadSafe"

2012-12-05  Noel Gordon  <noel.gordon@gmail.com>

        ENABLE(IMAGE_DECODER_DOWN_SAMPLING): Don't swizzle decode down sampled images
        https://bugs.webkit.org/show_bug.cgi?id=103856

        Reviewed by Yong Li.

        For ports using ENABLE(IMAGE_DECODER_DOWN_SAMPLING), turbo swizzle decodes provide
        no speed-up when the decoded image will be down sampled because the data must pass
        through the buffer.setRGBA() slow path. That is not the swizzled path. Instead use
        JCS_RGB decodes to clarify the output color space handling in outputScanlines().

        No new tests. Covered by existing JPEG decoding tests.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageReader::decode): libjpeg-turbo swizzle decodes provides no real
        speed-up if the image will be down sampled. Revert to using JCS_RGA in this case.
        (WebCore::setPixel): Remove the libjpeg-turbo JCS_EXT_BGRA and JCS_EXT_RGBA cases.
        (WebCore::JPEGImageDecoder::outputScanlines): ditto.
        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
        (WebCore::JPEGImageDecoder::willDownSample): Return true if image down sampling 
        will be applied to the decoded image (m_scaled). Note: the willDownSample() return
        value is valid only after setSize() has been called: add an ASSERT for that.

2012-12-05  Michael Pruett  <michael@68k.org>

        IndexedDB: Implement IndexedDB bindings for JSC
        https://bugs.webkit.org/show_bug.cgi?id=103484

        Reviewed by Kentaro Hara.

        IndexedDB is currently implemented only for V8. This change adds
        the bindings necessary for IndexedDB to work with JSC. With this
        patch, IndexedDB for JSC passes 112 out of the 196 layout tests in
        storage/indexeddb. IndexedDB is still not enabled for any JSC port.

        Tests: storage/indexeddb/*

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBOpenDBRequest.idl:
        * Modules/indexeddb/IDBVersionChangeRequest.idl:
        * UseJSC.cmake:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/DOMRequestState.h: Added to match bindings/v8/DOMRequestState.h.
        (WebCore):
        (DOMRequestState):
        (WebCore::DOMRequestState::DOMRequestState):
        (WebCore::DOMRequestState::clear):
        (Scope):
        (WebCore::DOMRequestState::Scope::Scope):
        (WebCore::DOMRequestState::exec):
        * bindings/js/IDBBindingUtilities.cpp: Add utility functions matching those in bindings/v8/IDBBindingUtilities.cpp.
        (WebCore::get):
        (WebCore):
        (WebCore::canSet):
        (WebCore::set):
        (WebCore::createIDBKeyFromValue):
        (WebCore::getNthValueOnKeyPath):
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore::ensureNthValueOnKeyPath):
        (WebCore::canInjectNthValueOnKeyPath):
        (WebCore::injectIDBKeyIntoScriptValue):
        (WebCore::canInjectIDBKeyIntoScriptValue):
        (WebCore::deserializeIDBValue):
        (WebCore::idbKeyToScriptValue):
        * bindings/js/IDBBindingUtilities.h: Add utility functions matching those in bindings/v8/IDBBindingUtilities.h.
        (WebCore):
        * bindings/js/JSIDBAnyCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSIDBKeyCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSIDBVersionChangeRequestCustom.cpp: Removed.

2012-12-05  Antoine Quint  <graouts@apple.com>

        TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
        https://bugs.webkit.org/show_bug.cgi?id=103413

        Reviewed by Eric Carlson.

        Check whether the new time passed to setStartTime() and setEndTime() is none of NaN or Infinity,
        otherwise throwing a TypeError.
        
        Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrackCue/endTime.html and
        media/track/opera/interfaces/TextTrackCue/startTime.html.

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::setStartTime):
        (WebCore::TextTrackCue::setEndTime):
        * html/track/TextTrackCue.h:
        (TextTrackCue):
        * html/track/TextTrackCue.idl:

2012-12-05  Alexis Menard  <alexis@webkit.org>

        [CSS3 Backgrounds and Borders] Allow the CSS3 background position offset for background shorthand.
        https://bugs.webkit.org/show_bug.cgi?id=104014

        Reviewed by Dirk Schulze.

        Add the support of the new <position> type if set from within the
        background shorthand. The patch just modify the way we count the values
        of the current context by checking wether we encounter a comma (it is
        then the next background layer), or if we encounter a '/' (which is in the
        background shorthand context the background-size) or any value that is
        not a valid background-position keyword or length (which means we are
        already parsing the next property of the background shorthand).

        Tests: LayoutTests/fast/backgrounds/background-position-parsing-2.html
        has been modified to cover this use case.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::isPositionValue):
        (WebCore):
        (WebCore::CSSParser::parseFillBackgroundPosition):
        (WebCore::CSSParser::parseFillProperty):
        * css/CSSParser.h:

2012-12-05  Elliott Sprehn  <esprehn@gmail.com>

        ShadowRoot should recalcStyle for itself
        https://bugs.webkit.org/show_bug.cgi?id=103933

        Reviewed by Hajime Morita.

        ShadowRoot should support recalcStyle just like Element instead of
        having the code inside ElementShadow. This was once the case and
        the dead method prototype for recalcShadowTreeStyle is still in
        ShadowRoot.h.

        No new tests, just refactoring.

        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::recalcStyle):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::recalcStyle):
        * dom/ShadowRoot.h:

2012-12-05  Keishi Hattori  <keishi@webkit.org>

        Fix text direction in datalist popup for time controls
        https://bugs.webkit.org/show_bug.cgi?id=103853

        Reviewed by Kent Tamura.

        The datalist entry value should be displayed with the same text direction as the date/time format.

        Tests: platform/chromium/fast/forms/suggestion-picker/datetime-suggestion-picker-appearance-locale-hebrew.html
               platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html
               platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html

        * Resources/pagepopups/calendarPicker.js: Renamed isCalendarRTL to isLocaleRTL.
        (CalendarPicker.prototype._layout):
        (CalendarPicker.prototype.fixWindowSize):
        (DaysTable.prototype._handleKey):
        (MonthPickerDaysTable.prototype._handleKey):
        (WeekPickerDaysTable.prototype._handleKey):
        * Resources/pagepopups/suggestionPicker.css:
        (.suggestion-list-entry .title): Title should have the same text direction as the locale.
        (.locale-rtl .suggestion-list-entry .title):
        * Resources/pagepopups/suggestionPicker.js:
        (SuggestionPicker.prototype._layout): Add locale-rtl class if the isLocaleRTL is true.

2012-12-05  Keishi Hattori  <keishi@webkit.org>

        Fix flickering when hiding page popup
        https://bugs.webkit.org/show_bug.cgi?id=104100

        Reviewed by Kent Tamura.

        Moving the page popup while hiding was causing flickering in some environments.

        No new tests. Can't reproduce in layout test.

        * Resources/pagepopups/pickerCommon.js:
        (hideWindow): Don't move and just resize.

2012-12-05  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Don't rely on QMimeDatabase for essential MIME types
        https://bugs.webkit.org/show_bug.cgi?id=103865

        Based on patch by Pierre Rossi.
        Reviewed by Jocelyn Turcotte.

        Extend the short static list to also include MIME types essential to WebKit,
        and detect these first before checking the system mimedatabase.

        * platform/qt/MIMETypeRegistryQt.cpp:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
        (WebCore::MIMETypeRegistry::getMIMETypeForPath):

2012-12-05  Zoltan Herczeg  <zherczeg@webkit.org>

        Optimize ColorMatrix filter
        https://bugs.webkit.org/show_bug.cgi?id=103728

        Reviewed by Dirk Schulze.

        ColorMatrix filter recalculates several constants for
        every pixel. It is enough to do these calculations only
        once during the initialization. Style issues also fixed.

        Existing tests cover this feature.

        * platform/graphics/filters/FEColorMatrix.cpp:
        (WebCore::matrix):
        (WebCore::saturateAndHueRotate):
        (WebCore::effectType):

2012-12-05  Carlos Garcia Campos  <cgarcia@igalia.com>

        Flex item auto margins in the cross direction should safe center
        https://bugs.webkit.org/show_bug.cgi?id=103919

        Reviewed by Ojan Vafai.

        Do not apply auto margins for cross axis if there's no alignment
        space available.

        Test: css3/flexbox/flex-flow-auto-margins-no-available-space.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::alignChildren): Make sure we pass a
        positive value for availableAlignmentSpace to
        updateAutoMarginsInCrossAxis().

2012-12-05  Mike West  <mkwst@chromium.org>

        Web Inspector: Autogenerate stack traces and line numbers when possible.
        https://bugs.webkit.org/show_bug.cgi?id=100650

        Reviewed by Yury Semikhatsky.

        Console messages generated in WebCore generally are asked to do a bit of
        work in order to provide a developer with a detailed report. We ask the
        caller to either generate stack traces, or pass in a url/line number
        pair, which can be a bit of work. Predictably, most callers don't pass
        in what we'd like to see.

        This patch creates a new, simpler console message generation API that we
        expect most call sites to use. Source, type, level, and message are
        required, and an optional request ID can be passed in. Everything else
        will be autogenerated inside ConsoleMessage when appropriate.

        In a subsequent patch, we expect to be able to trim down more of the
        external call sites (ContentSecurityPolicy springs to mind) in order to
        further consolidate the external interface. Simple is good.

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::didFailSocketStream):
            Drop the now-redundant URL parameter from various WebSocket errors.
        * css/MediaList.cpp:
        (WebCore::addResolutionWarningMessageToConsole):
            Switch to Document::addConsoleMessage, which means that we can move
            line-number generation out of MediaList.
        * dom/Document.cpp:
        (WebCore::Document::logExceptionToConsole):
            Use the long-form 'addMessage()' rather than the public interface.
        (WebCore::Document::processHttpEquiv):
            Drop the URL parameter, as it's now autogenerated.
        (WebCore::Document::addConsoleMessage):
        (WebCore):
        * dom/Document.h:
        (Document):
            Override the pure virtual method on ScriptExecutionContext, and pass
            the call through to the new Console::addMessage, which accepts a
            pointer to the Document in order to do line-number generation.
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
            Add a pure virtual variant of addConsoleMessage which accepts only
            bare minimum data, and expects autogeneration of the rest.
            Additionally, ensure that the other variants always have either a
            URL/line number, or a stack trace.
        * dom/ViewportArguments.cpp:
        (WebCore::reportViewportWarning):
            Drop line numbers and URLs from Viewport warnings. We can generate
            these now.
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::validateInteractively):
            Drop the URL from form autofocus warnings
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseAttribute):
            Drop the URL and line from sandbox attribute warnings.
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::printWarningToConsole):
            Drop the URL from WebGL warnings.
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::ConsoleMessage):
            Call 'autogenerateMetadata' to ensure that a stack trace is
            generated if one isn't provided. Create a new constructor that
            accepts a ScriptState/ScriptArguments pair, and use it for console
            API calls.
        (WebCore):
        (WebCore::ConsoleMessage::autogenerateMetadata):
            Generate a stack trace given whatever information we've got.
        * inspector/ConsoleMessage.h:
        (ConsoleMessage):
            Create a new constructor that accepts a ScriptState/ScriptArguments
            pair, and use it for console API calls.
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::enable):
            Use the short-form ConsoleMessage constructor.
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
            Use the stack-only constructor, or the ScriptState
            constructor, as appropriate.
        (WebCore::InspectorConsoleAgent::count):
            We generated a stack, pass it in.
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::isWorkerAgent):
        * inspector/PageConsoleAgent.h:
        (WebCore::PageConsoleAgent::isWorkerAgent):
        * inspector/PageConsoleAgent.h:
        (WebCore::PageConsoleAgent::isWorkerAgent):
            We only want to generate call stacks for non-Workers (because
            createScriptCallStack explodes in JSC if we're not on the main
            thread). This method will allow us to distinguish between those
            messages generated from Workers, and those from Pages.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
            Drop the URL parameter from the console message for X-Frame-Options
            parsing errors.
        * page/Console.cpp:
        (WebCore::Console::addMessage):
            When given a Document*, generate a line number if: 1) the document
            is still being parsed, 2) the document is not in document.write(),
            3) the parser isn't waiting for script, and 4) the parser isn't
            executing script. Many callsites didn't check all of these, which
            is why the SVG rebaseline (for example) drops lots and lots of line
            numbers which point at a closing '</script>' tag.
        (WebCore):
        * page/Console.h:
        (WebCore):
        (Console):
            Update the public API to accept a Document* and little else.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::printErrorMessage):
            Don't generate a stack here. We can do it later.
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::reportMessage):
            Drop the URL and line number. We'll generate them. It'll be sweet.
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::addConsoleMessage):
        (WebCore):
        * workers/WorkerContext.h:
        (WorkerContext):
            Implement the new addConsoleMessage variant.

2012-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reduce the children repaints when moved multiple times during the layout
        https://bugs.webkit.org/show_bug.cgi?id=103510

        Reviewed by Darin Adler.

        Cache the children positions before the layout and move to the
        final position after the layout.

        Test: css3/flexbox/repaint-column-reverse.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::OrderIterator::OrderIterator): Do not
        call first() on the consructor.
        (WebCore::RenderFlexibleBox::layoutBlock): Use a Vector with the
        children frame rects before the layout and call
        repaintChildrenDuringLayoutIfMoved() to repaint the children that
        have been moved.
        (WebCore::RenderFlexibleBox::appendChildrenFrameRects): Return a
        Vector with children frame rects.
        (WebCore::RenderFlexibleBox::repaintChildrenDuringLayoutIfMoved):
        Call repaintDuringLayoutIfMoved() for every children using the old
        frame rects.
        (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Do not
        call repaintDuringLayoutIfMoved().
        (WebCore::RenderFlexibleBox::layoutFlexItems): Make sure the
        passed iterator points to the first child.
        * rendering/RenderFlexibleBox.h:

2012-12-05  Dan Carney  <dcarney@google.com>

        [V8] toV8Fast for all classes with ScriptWrapper Holder objects
        https://bugs.webkit.org/show_bug.cgi?id=102686

        Reviewed by Adam Barth.

        This patch makes most generated bindings use toV8Fast
        by adding a fast path to the main world DOMDataStore.
        Additionally, toV8Fast is now being called on callbacks
        which use v8::Arguments.

        No new tests. No change in functionality.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (GenerateFunctionCallString):
        (NativeToJSValue):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::mainWorldStore):
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMDataStore.h:

2012-12-05  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] nit: add more typization for js compiler
        https://bugs.webkit.org/show_bug.cgi?id=103994

        Reviewed by Pavel Feldman.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-12-05  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] ExclusionShape inlines should use isFlippedBlocksWritingMode()
        https://bugs.webkit.org/show_bug.cgi?id=103939

        Reviewed by Dirk Schulze.

        Just a minor cleanup: the protected ExclusionShape inlines, like minYForLogicalLine(),
        now use isFlippedBlocksWritingMode() instead of testing for RightToLeftWritingMode directly.
        This changeimproves consistency with the rest of WebKit and will work correctly
        if "horizontal-bt" writing-mode support is ever added.

        No new tests were added since the existing tests cover these methods.

        * rendering/ExclusionShape.h:
        (WebCore::ExclusionShape::minYForLogicalLine):
        (WebCore::ExclusionShape::maxYForLogicalLine):
        (WebCore::ExclusionShape::internalToLogicalBoundingBox):

2012-12-05  Bear Travis  <betravis@adobe.com>

        Absolutely positioned non-replaced elements should resolve vertical margins against
        their containing block's logical width
        https://bugs.webkit.org/show_bug.cgi?id=103576

        Reviewed by Emil A Eklund.

        According to the CSS box model specification, all percentage margin & padding values,
        including top & bottom, should be resolved based on the containing block's width.
        http://www.w3.org/TR/CSS2/box.html#margin-properties
        The writing modes specification has refined this definition to use the containing
        block's logical width to resolve percentage margin & padding values.
        http://dev.w3.org/csswg/css3-writing-modes/#dimension-mapping

        Previously, positioned elements measured their container in the element's block
        direction (containerLogicalHeight) to resolve margin-before/after, and in the inline
        direction (containerLogicalWidth) to resolve margin-start/end. This patch measures the
        container's logical width in its own inline direction (containerRelativeLogicalWidth)
        to resolve all margin percentage values.

        Test: fast/writing-mode/percentage-margins-absolute.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePositionedLogicalWidthUsing): Calculate the logical width
        of the container, and use it to calculate margins.
        (WebCore::RenderBox::computePositionedLogicalHeightUsing): Ditto.

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace String::New("symbol") with String::NewSymbol("symbol") (part 2)
        https://bugs.webkit.org/show_bug.cgi?id=104082

        Reviewed by Adam Barth.

        V8 can look up symbols faster than strings.

        No tests. No change in behavior.

        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
        (WebCore::getHiddenCopyMethod):
        (WebCore::installHiddenCopyMethod):
        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::constructWebGLArray):
        (WebCore::setWebGLArrayHelper):
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::DialogHandler::dialogCreated):
        (WebCore::DialogHandler::returnValue):
        * bindings/v8/custom/V8GeolocationCustom.cpp:
        (WebCore::createPositionOptions):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::wrapInShadowObject):
        (WebCore::V8HTMLDocument::openCallback):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):

2012-12-04  Elliott Sprehn  <esprehn@chromium.org>

        Clicking a scrollbar unfocuses the current activeElement
        https://bugs.webkit.org/show_bug.cgi?id=96335

        Reviewed by Ojan Vafai.

        Previously we only tested for clicks inside frame scrollbars before
        moving the focus, this patch expands the check to overflow scrollbars.
        Now clicking inside a scrollbar only moves the focus when the scrollbar
        has an ancestor that is mouse focusable.

        This matches Gecko behavior, and was agreed to be the most sensible for now:
        http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037759.html

        Test: fast/overflow/scrollbar-click-retains-focus.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
          Never start selections inside scrollbars because it would cause asserts. 
          This wasn't a problem before because we always moved the focus when clicking a scrollbar.        
        (WebCore::EventHandler::dispatchMouseEvent): 
          Check that the click is not inside a scrollbar before moving the focus.
        (WebCore::EventHandler::isInsideScrollbar): Tests if a point is in a scrollbar.
        (WebCore):
        (WebCore::EventHandler::sendContextMenuEvent):
          Never start selections inside scrollbars because it would cause asserts.
        * page/EventHandler.h:
        (EventHandler):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTestOverflowControls):

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace String::New("symbol") with String::NewSymbol("symbol")
        https://bugs.webkit.org/show_bug.cgi?id=104084

        Reviewed by Adam Barth.

        V8 can look up symbols faster than strings. This is a final patch for the replacement.

        No tests. No change in behavior.

        * bindings/v8/DateExtension.cpp:
        (WebCore::DateExtension::setAllowSleep):
        (WebCore::DateExtension::GetNativeFunction):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::npIdentifierToV8Identifier):
        (_NPN_Invoke):
        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::setContextDebugId):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::callDebuggerMethod):
        (WebCore::ScriptDebugServer::setBreakpoint):
        (WebCore::ScriptDebugServer::removeBreakpoint):
        (WebCore::ScriptDebugServer::clearBreakpoints):
        (WebCore::ScriptDebugServer::setBreakpointsActivated):
        (WebCore::ScriptDebugServer::handleV8DebugEvent):
        (WebCore::ScriptDebugServer::dispatchDidParseSource):
        * bindings/v8/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::set):
        (WebCore::ScriptGlobalObject::get):
        (WebCore::ScriptGlobalObject::remove):
        * bindings/v8/V8Binding.h:
        (WebCore::toV8Sequence):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::setInjectedScriptContextDebugId):
        (WebCore::V8DOMWindowShell::updateDocumentProperty):
        (WebCore::V8DOMWindowShell::clearDocumentProperty):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::npObjectPropertyEnumerator):
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::constructorOfToString):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::initializeContextIfNeeded):
        * bindings/v8/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::addListener):

2012-12-04  Dan Bernstein  <mitz@apple.com>

        Support text-orientation: sideways-right (and sideways when it maps to sideways-right)
        https://bugs.webkit.org/show_bug.cgi?id=104035

        Reviewed by Anders Carlsson.

        Test: fast/text/orientation-sideways.html

        * GNUmakefile.list.am: Updated for rename of TextOrientation.h.

        * WebCore.gypi: Ditto.

        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to retrieve
        text-orientation from RenderStyle rather than from the font description.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Added sideways and sideways-right as acceptable
        text-orientation values.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mappings for sideways and
        sideways-right.
        (WebCore::CSSPrimitiveValue::operator TextOrientation): Ditto.

        * css/CSSValueKeywords.in: Added sideways and sideways-right.

        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder): Removed text-orientation property handler, as it is
        now handled in CSSStyleResolver.

        * css/StyleResolver.cpp:
        (WebCore::getFontAndGlyphOrientation): Added this helper function that determines the font
        orientation and non-CJK glyph orientation based on writing-mode and text-orientation.
        (WebCore::StyleResolver::styleForDocument): Added code to set the font orientation and
        non-CJK glyph orientation in the document style.
        (WebCore::checkForOrientationChange): Added. Sets the font orientation and non-CJK glyph
        orientation in the child style if the difference between the parent and child styles requires
        doing so.
        (WebCore::StyleResolver::updateFont): Added call to checkForOrientationChange().
        (WebCore::StyleResolver::applyProperty): Changed the writing-mode case to call the new
        setWritingMode helper, which dirties the font as needed, rather than changing the font
        here. Moved handling of text-orientation here, by calling setTextOrientation, which also
        dirties the font as needed.

        * css/StyleResolver.h:
        (WebCore::StyleResolver::setWritingMode): Added. Dirties the font if the writing mode changes.
        (WebCore::StyleResolver::setTextOrientation): Ditto for text orientation.

        * platform/graphics/FontDescription.h:
        (WebCore::FontDescription::FontDescription): Updated initializer for rename.
        (WebCore::FontDescription::nonCJKGlyphOrientation): Renamed textOrientation to this.
        (WebCore::FontDescription::setNonCJKGlyphOrientation): Renamed setTextOrientation to this.
        (FontDescription): Renamed member variable m_textOrientation to m_nonCJKGlyphOrientation.
        (WebCore::FontDescription::operator==): Updated for rename.

        * platform/graphics/FontFastPath.cpp:
        (WebCore::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation): Renamed
        glyphDataAndPageForCharacterWithTextOrientation to this and changed the parameter type from
        TextOrientation to NonCJKGlyphOrientation.
        (WebCore::Font::glyphDataAndPageForCharacter): Updated for above rename.

        * platform/graphics/mac/FontComplexTextMac.cpp:
        (WebCore::Font::fontDataForCombiningCharacterSequence): Updated for rename of
        FontDescription::textOrientation().

        * platform/text/NonCJKGlyphOrientation.h: Renamed TextOrientation.h to this, and renamed
        the enum and its values to better reflect that they describe how glyphs for non-CJK
        characters are to be rendered in vertical text.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::requiresIdeographicBaseline): Updated for rename of
        FontDescription::textOrientation().

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff): Made text-orientation change a layout change.

        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyle::setTextOrientation): Added.

        * rendering/style/RenderStyleConstants.h: Added a new TextOrientation enum here.

        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialization and copying
        of m_textOrientation member variable.
        (WebCore::StyleRareInheritedData::operator==): Added comparing of m_textOrientation.

        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData): Added m_textOrientation member variable.

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Use ScopedPersistent for IntegerCache::smallIntegers
        https://bugs.webkit.org/show_bug.cgi?id=104066

        Reviewed by Adam Barth.

        We can use ScopedPersistent for IntegerCache::smallIntegers
        instead of manual Persistent::New().

        I confirmed no performance regression in Bindings/scroll-top.html

        No tests. No change in behavior.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::V8PerIsolateData):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::IntegerCache::IntegerCache):
        * bindings/v8/V8ValueCache.h:
        (IntegerCache):
        (WebCore::IntegerCache::v8Integer):
        (WebCore::IntegerCache::v8UnsignedInteger):

2012-12-04  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Resources: domain cookies are not shown for sub-sub domain pages.
        https://bugs.webkit.org/show_bug.cgi?id=104016

        Reviewed by Pavel Feldman.

        Fixed regexp to allow zero or more subdomain prefix (was zero or one).

        * inspector/front-end/CookieParser.js:
        (WebInspector.Cookies.cookieDomainMatchesResourceDomain): Fixed regexp.

2012-12-04  Alpha Lam  <hclam@chromium.org>

        Not reviewed. Build fix.

        Fix Chromium Windows build.

        * platform/graphics/chromium/ImageDecodingStore.h:
        (CacheEntry):

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove toV8Object()
        https://bugs.webkit.org/show_bug.cgi?id=103987

        Reviewed by Adam Barth.

        toV8Object() is used only for MessagePort and ArrayBuffer
        only by SerializedScriptValue. It is wasteful to generate
        toV8Object() for all interfaces.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        * bindings/scripts/test/V8/V8TestException.h:
        * bindings/scripts/test/V8/V8TestInterface.h:
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        * bindings/scripts/test/V8/V8TestNode.h:
        * bindings/scripts/test/V8/V8TestObj.h:
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        * bindings/v8/SerializedScriptValue.cpp:

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace v8::Null(isolate) with v8Null(isolate)
        https://bugs.webkit.org/show_bug.cgi?id=104070

        Reviewed by Adam Barth.

        v8Null(isolate) is a faster version of v8::Null(isolate).

        No tests. No change in behavior.

        * bindings/v8/V8Binding.h:
        (WebCore::v8StringOrNull):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        (WebCore::V8Clipboard::typesAccessorGetter):
        * bindings/v8/custom/V8CoordinatesCustom.cpp:
        (WebCore::V8Coordinates::altitudeAccessorGetter):
        (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
        (WebCore::V8Coordinates::headingAccessorGetter):
        (WebCore::V8Coordinates::speedAccessorGetter):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
        (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
        (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
        (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
        (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
        (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
        (WebCore::V8Document::locationAccessorGetter):
        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
        (WebCore::V8HTMLCanvasElement::getContextCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::stateAccessorGetter):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::dataAccessorGetter):
        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
        (WebCore::toV8):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::V8Node::insertBeforeCallback):
        (WebCore::V8Node::replaceChildCallback):
        (WebCore::V8Node::removeChildCallback):
        (WebCore::V8Node::appendChildCallback):
        * bindings/v8/custom/V8PopStateEventCustom.cpp:
        (WebCore::V8PopStateEvent::stateAccessorGetter):
        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
        (WebCore::V8SQLResultSetRowList::itemCallback):
        * bindings/v8/custom/V8TrackEventCustom.cpp:
        (WebCore::V8TrackEvent::trackAccessorGetter):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):

2012-12-04  Min Qin  <qinmin@chromium.org>

        Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
        https://bugs.webkit.org/show_bug.cgi?id=103555

        Reviewed by Stephen White.

        Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
        No test added for now as impl side paiting is still WIP.

        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::PrepareToDecode):
        (WebCore):
        (WebCore::LazyDecodingPixelRef::Decode):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (LazyDecodingPixelRef):

2012-12-04  Takashi Sakamoto  <tasak@google.com>

        Fix compile error when SVG is disabled.

        Unreviewed gardening.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):

2012-12-04  Anthony Scian  <ascian@rim.com>

        Static code analysis warning fixes
        https://bugs.webkit.org/show_bug.cgi?id=103837

        Reviewed by Rob Buis.

        172,174: disable copy ctor, op= in AutofillBackingStore
        504,506: disable copy ctor, op= in CookieManager
        1488,1491: disable copy ctor, op= in RSSParserBase
        1489,1490: disable copy ctor, op= in RSSItem
        514,516: disable copy ctor, op= in CredentialBackingStore
        1363: m_state not initialized in ctor

        * platform/blackberry/CookieManager.h:
        * platform/blackberry/PlatformTouchPointBlackBerry.cpp:
        (WebCore::PlatformTouchPoint::PlatformTouchPoint):
        * platform/network/blackberry/AutofillBackingStore.h:
        (AutofillBackingStore):
        * platform/network/blackberry/CredentialBackingStore.h:
        (CredentialBackingStore):
        * platform/network/blackberry/rss/RSSParserBase.h:
        (RSSParserBase):

2012-12-04  Noel Gordon  <noel.gordon@gmail.com>

        [v8] Improve worker.postMessage() string performance: avoid utf8 conversion
        https://bugs.webkit.org/show_bug.cgi?id=102230

        Reviewed by Eric Seidel.

        Avoid utf8 conversion when serializing strings with SerializedScriptValue. Provide 
        Ascii and UChar writers for v8 string serialization and provide a UChar reader for
        deserialization. Define/use serialization StringUCharTag to indicate UChar strings
        in the wire format. Increment the SerializedScriptValue wire format version.

        In the wire format, StringUCharTag is followed by the string length in bytes, then
        the length/2 UChars of the string.

        Note the string length is VarInt encoded. During serialization, compute the number
        of bytes used to encode the length and prepend a PaddingTag if needed so the UChar
        data appears on an even-byte boundary. This prevents unaligned reads of UChar data
        during deserialization (the deserialization buffer is even-byte aligned).

        Testing transfers of large strings to and from workers indicates a 10X improvement
        in transfer rate for strings, and strings within js objects, with this change. For
        example, 500 MByte/s on my test machine (50 MByte/s without this change) for flat,
        32 MByte string postMessage() transfers.

        Covered by platform/chromium/fast/storage/serialized-script-value.html

        * bindings/v8/SerializedScriptValue.cpp:

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] V8Binding::v8ExternalString() is redundant
        https://bugs.webkit.org/show_bug.cgi?id=103979

        Reviewed by Adam Barth.

        v8String(), v8StringOrNull() and v8StringOrUndefined() are enough.
        We can remove V8Binding::v8ExternalString().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::compileAndRunScript):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::compileScript):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::v8String):
        (WebCore::v8StringOrNull):
        (WebCore::v8StringOrUndefined):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove v8NonStringValueToWebCoreString() and v8NonStringValueToAtomicWebCoreString()
        https://bugs.webkit.org/show_bug.cgi?id=103981

        Reviewed by Adam Barth.

        v8NonStringValueToWebCoreString() and v8NonStringValueToAtomicWebCoreString()
        are equivalent to what StringResource does.

        No tests. No change in behavior.

        * bindings/v8/V8Binding.cpp:
        * bindings/v8/V8Binding.h:
        (WebCore::toWebCoreString):
        (WebCore):
        (WebCore::toWebCoreStringWithNullCheck):
        (WebCore::toWebCoreStringWithUndefinedOrNullCheck):
        (WebCore::toWebCoreAtomicString):
        (WebCore::toWebCoreAtomicStringWithNullCheck):
        * bindings/v8/V8StringResource.h:
        (WebCore::V8StringResource::V8StringResource):
        (V8StringResource):

2012-12-04  Abhishek Arya  <inferno@chromium.org>

        Crash in WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode
        https://bugs.webkit.org/show_bug.cgi?id=103515

        Reviewed by Ryosuke Niwa.

        |current| is weak node pointer that iterates in the hierarchy chain
        between |highestAncestor| and |targetNode|. Script executed as part
        of iframe onload event can blow away the nodes and we no longer have
        |targetNode| in our descendants chain. So, we RefPtr |current| and bail
        out when |targetNode| stops being a part of descendant chain.

        Test blocked on https://bugs.webkit.org/show_bug.cgi?id=104044.

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):

2012-12-04  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        Avoid repeated calls to decorationColor on RenderObject::getTextDecorationColors
        https://bugs.webkit.org/show_bug.cgi?id=94131

        Reviewed by Brent Fulgham.

        Replaces repeated calls to decorationColor by adding a variable that reads the
        return value from that function just once on each loop and gets used upon need.

        This change won't affect text decoration behavior, so current tests suffice.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::getTextDecorationColors):

2012-12-04  Alpha Lam  <hclam@chromium.org>

        [chromium] Implement cache eviction logic in ImageDecodingStore
        https://bugs.webkit.org/show_bug.cgi?id=103480

        Reviewed by James Robinson.

        This patch implements these features in the new image cache:
        - Least-recently-used eviction logic
        - Setting cache limit (default is 32MB)
        - Remove cache entries when ImageFrameGenerator is removed

        New tests in ImageDecodingTestTest. Also covered by platform/chromium/virtual/deferred.

        * platform/graphics/chromium/ImageDecodingStore.cpp:
        (WebCore::ImageDecodingStore::ImageDecodingStore):
        (WebCore::ImageDecodingStore::~ImageDecodingStore):
        Code to assert that everything is cleaned up.
        (WebCore::ImageDecodingStore::lockCompleteCache):
        (WebCore::ImageDecodingStore::unlockCache):
        (WebCore::ImageDecodingStore::insertAndLockCache):
        (WebCore::ImageDecodingStore::removeCacheIndexedByGenerator):
        New method to remove all cache entries index by ImageFrameGenerator.
        (WebCore):
        (WebCore::ImageDecodingStore::setCacheLimitInBytes):
        (WebCore::ImageDecodingStore::memoryUsageInBytes):
        (WebCore::ImageDecodingStore::cacheEntries):
        (WebCore::ImageDecodingStore::prune):
        New code to implement LRU eviction logic.
        (WebCore::ImageDecodingStore::insertCacheInternal):
        New method to help new cache insertion. This is separately because it touches 3 containers.
        (WebCore::ImageDecodingStore::removeFromCacheInternal):
        New method to help remove a cache entry from containers.
        (WebCore::ImageDecodingStore::removeFromCacheListInternal):
        New helper method to help remove cache entry from doubly linked list.
        * platform/graphics/chromium/ImageDecodingStore.h:
        (ImageDecodingStore):
        (CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::cacheKey):
        (WebCore::ImageDecodingStore::CacheEntry::cachedImage):
        (WebCore::ImageDecodingStore::CacheEntry::useCount):
        (WebCore::ImageDecodingStore::CacheEntry::incrementUseCount):
        (WebCore::ImageDecodingStore::CacheEntry::decrementUseCount):
        (WebCore::ImageDecodingStore::CacheEntry::memoryUsageInBytes):
        (WebCore::ImageDecodingStore::incrementMemoryUsage):
        (WebCore::ImageDecodingStore::decrementMemoryUsage):
        New helper methods.
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):

2012-12-04  Andreas Kling  <akling@apple.com>

        Style sharing: Allow sharing between elements with classes not referenced by any selectors.
        <http://webkit.org/b/103925>

        Reviewed by Antti Koivisto.

        When looking for elements that can share style, instead of blindly rejecting candidates with
        a different "class" attribute, check if it's actually referenced by any of the tracked style rules.
        It's surprisingly common for web pages to have elements with classes to which no rules apply,
        mediawiki content is especially good at this.

        ~2100 new sharing "hits" on <https://en.wikipedia.org/wiki/Steve_Jobs>.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):

            Don't bail early if the two elements have different return values for hasClass().

        (WebCore::StyleResolver::classNamesAffectedByRules):

            Helper function that returns whether a SpaceSplitString contains a class name referenced
            by any style rules.

        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):

            Make this a member function since we need access to m_features.classesInRules.

        * css/StyleResolver.h:
        (StyleResolver):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::locateSharedStyle):

            Cache whether the element we're resolving style for has a "class" attribute referenced by style rules.

2012-12-04  Silvia Pfeiffer  <silviapf@chromium.org>

        Refactor Media Control Elements to remove code duplication.
        https://bugs.webkit.org/show_bug.cgi?id=101877

        Reviewed by Eric Carlson.

        Instead of having two different types of inheritance trees for
        MediaControlElement and MediaControlInputElement, this
        creates a stand-alone virtual class MediaControlElement that
        provides the common functions: show(), hide(), isShowing(),
        setMediaController(), displayType(), isMediaControlElement(),
        shadowPseudoId(), mediaController(), setDisplayType().

        The individual elements inherit from MediaControlElement and
        either HTMLInputElement or HTMLDivElement. They extend/override
        the base functions as appropriate.

        As part of this, the RenderXXX classes mixed in between the media
        controls in MediaControlElements.cpp are also moved to
        rendering/RenderMediaControls.h/cpp to follow common code separation.

        No new tests since this is just a refactoring.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Build files extended with new files.

        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::textTracksIndexNotFound):
        Replaced const with function, since it is used in multiple files.

        * html/shadow/MediaControlElementTypes.cpp: new file
        * html/shadow/MediaControlElementTypes.h: new file
        Added new MediaControlElement class. Moved MediaControlDivElement and MediaControlInputElement
        classes into these files from MediaControlElements.cpp/h. Moved MediaControlElementTypes enum
        into these. Moved other media control element classes that are the basis for inheriting media
        control elements into these (MediaControlTimeDisplayElement, MediaControlMuteButtonElement,
        MediaControlSeekButtonElement, MediaControlVolumeSliderElement).

        * html/shadow/MediaControlElements.cpp:
        * html/shadow/MediaControlElements.h:
        Removed common functions between media elements that are now in the common
        base class MediaControlElement.
        Also moved common base classes to MediaControlElementTypes.h/cpp

        * html/shadow/MediaControls.cpp:
        * html/shadow/MediaControls.h:
        Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
        to be consistent in inheritance tree. Updated copyright date.

        * html/shadow/MediaControlsApple.cpp:
        * html/shadow/MediaControlsApple.h:
        Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
        to be consistent in inheritance tree. Updated copyright dates.n

        * html/shadow/MediaControlsChromium.cpp:
        * html/shadow/MediaControlsChromium.h:
        Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
        to be consistent in inheritance tree.
        Moved enclosure element definitions to common MediaControlElements.cpp/h
        file through which different media elements are made available to different ports.

        * html/shadow/MediaControlsChromiumAndroid.cpp:
        * html/shadow/MediaControlsChromiumAndroid.h:
        Moved enclosure for overlay button to MediaControlElements.cpp/h files
        through which different media elements are made available to different ports.

        * rendering/RenderMediaControlElements.cpp: new file
        * rendering/RenderMediaControlElements.h: new file
        Moved rendering classes for media control elements into these files from
        MediaControlElements.cpp/h.

        * rendering/RenderThemeMac.mm:
        Added new RenderMediaControlElements.h file.

        * rendering/RenderingAllInOne.cpp:
        Added new RenderMediaControlEleemnt.cpp file.

2012-12-04  Kenneth Russell  <kbr@google.com>

        Associate URLs with GraphicsContext3D instances created for WebGL
        https://bugs.webkit.org/show_bug.cgi?id=103793

        Reviewed by Adam Barth.

        Pass down the URL of the topmost frame's document creating the
        WebGL context to the platform layer through
        GraphicsContext3D::Attributes.

        Not feasible to write a layout test for this change; has no
        user-visible effect. Tested manually with failure injection in
        Chromium port.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::create):
            Pass top document's URL in context creation attributes.
        * platform/chromium/support/GraphicsContext3DChromium.cpp:
        (WebCore::GraphicsContext3D::create):
            Pass URL through WebKit API.
        * platform/graphics/GraphicsContext3D.h:
        (Attributes):
            Add top document's URL to context creation attributes.

2012-12-04  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: simplify reportMemoryUsage signature
        https://bugs.webkit.org/show_bug.cgi?id=104028

        Reviewed by Vsevolod Vlasov.

        Removed const& modifier from instrumented pointer type. Was const T* const&,
        now it is const T*

        * platform/graphics/NativeImagePtr.h:
        (WebCore):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::reportMemoryUsage):

2012-12-04  Adam Barth  <abarth@webkit.org>

        [V8] Rename V8DOMWrapper member functions to be more descriptive
        https://bugs.webkit.org/show_bug.cgi?id=104069

        Reviewed by Eric Seidel.

        In addition to the renames, this patch also inline lookupDOMWrapper
        into its callers.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateDomainSafeFunctionGetter):
        (GenerateDomainSafeFunctionSetter):
        (GenerateNormalAttrGetter):
        (GenerateSingleConstructorCallback):
        (GenerateEventConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateToV8Converters):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):
        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::retrieveFrameWithGlobalObjectCheck):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toDOMWindow):
        (WebCore::toScriptExecutionContext):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::clearForNavigation):
        (WebCore::V8DOMWindowShell::installDOMWindow):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::create):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::setNativeInfo):
        (WebCore::V8DOMWrapper::clearNativeInfo):
        (WebCore::V8DOMWrapper::associateObjectWithWrapper):
        * bindings/v8/V8Initializer.cpp:
        (WebCore::findFrame):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::createV8ObjectForNPObject):
        (WebCore::forgetV8ObjectForNPObject):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::initializeContextIfNeeded):
        (WebCore::WorkerScriptController::controllerForContext):
        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::wrapArrayBufferView):
        (WebCore::constructWebGLArray):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallbackCustom):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::constructorCallbackCustom):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::eventAccessorGetter):
        (WebCore::V8DOMWindow::eventAccessorSetter):
        (WebCore::V8DOMWindow::toStringCallback):
        (WebCore::V8DOMWindow::namedSecurityCheck):
        (WebCore::V8DOMWindow::indexedSecurityCheck):
        (WebCore::toV8):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::constructorCallbackCustom):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::wrapInShadowObject):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::createInjectedScriptHostV8Wrapper):
        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::V8Location::reloadAccessorGetter):
        (WebCore::V8Location::replaceAccessorGetter):
        (WebCore::V8Location::assignAccessorGetter):
        * bindings/v8/custom/V8MessageChannelCustom.cpp:
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        (WebCore::V8MessageEvent::initMessageEventCallback):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallbackCustom):
        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
        (WebCore::toV8):
        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
        (WebCore::toV8):
        * bindings/v8/custom/V8WebKitPointCustom.cpp:
        (WebCore::V8WebKitPoint::constructorCallbackCustom):
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):

2012-12-04  Adam Barth  <abarth@webkit.org>

        [V8] Cleanup style in V8DOMWrapper
        https://bugs.webkit.org/show_bug.cgi?id=104062

        Reviewed by Kentaro Hara.

        This patch moves a number of functions from inside the class
        declaration to below the class declaration. I've also inlined
        domWrapperType into each of its callers and renamed a few functions.
        A subsequent patch will improve the names of the remaining functions.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateToV8Converters):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitExternalArrays):
        * bindings/v8/V8Collection.h:
        (WebCore::getNamedPropertyOfCollection):
        (WebCore::getIndexedPropertyOfCollection):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::instantiateDOMWrapper):
        (WebCore::V8DOMWrapper::isWrapperOfType):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::setWrapperClass):
        (WebCore::V8DOMWrapper::setDOMWrapper):
        (WebCore):
        (WebCore::V8DOMWrapper::clearDOMWrapper):
        (WebCore::V8DOMWrapper::lookupDOMWrapper):
        (WebCore::V8DOMWrapper::createDOMWrapper):
        * bindings/v8/V8GCController.cpp:
        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
        (WebCore::V8InspectorFrontendHost::showContextMenuCallback):

2012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136597.
        http://trac.webkit.org/changeset/136597
        https://bugs.webkit.org/show_bug.cgi?id=104065

        broke Windows compilation (Requested by yurys on #webkit).

        * platform/graphics/NativeImagePtr.h:
        (WebCore):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::reportMemoryUsage):

2012-12-04  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: simplify reportMemoryUsage signature
        https://bugs.webkit.org/show_bug.cgi?id=104028

        Reviewed by Vsevolod Vlasov.

        Removed const& modifier from instrumented pointer type. Was const T* const&,
        now it is const T*

        * platform/graphics/NativeImagePtr.h:
        (WebCore):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::reportMemoryUsage):

2012-12-04  Adam Barth  <abarth@webkit.org>

        [V8] V8DOMWrapper shouldn't know about NodeFilter
        https://bugs.webkit.org/show_bug.cgi?id=104057

        Reviewed by Kentaro Hara.

        This patch just moves this code into V8Bindings.h, which is where we
        have our other type conversion functions. It's too bad that we still
        need to special case NodeFilter, but fixing that is going to be a bit
        more work.

        * bindings/scripts/CodeGeneratorV8.pm:
        (JSValueToNative):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toNodeFilter):
        (WebCore):
        * bindings/v8/V8Binding.h:
        (WebCore):
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (WebCore):
        (V8DOMWrapper):

2012-12-04  Simon Fraser  <simon.fraser@apple.com>

        Show a mini visualizer for the tile cache tiles
        https://bugs.webkit.org/show_bug.cgi?id=104053

        Reviewed by Beth Dakin.

        Replace the current red/green/yellow scrolling indicator with a
        mini map of the tile cache that shows the current tiles, and the
        visible rect.
        
        Visibility is controlled via a new preference.

        * WebCore.exp.in: Add Settings::setShowTiledScrollingIndicator(bool),
        and remove ScrollingTree::setDebugRootLayer(CALayer*)
        * WebCore.xcodeproj/project.pbxproj: Remove ScrollingTreeMac.mm which
        is no longer needed; it just contained debug layer stuff.
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Support the new setting.
        (WebCore::Settings::setShowTiledScrollingIndicator):
        * page/Settings.h:
        (WebCore::Settings::showTiledScrollingIndicator):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::commitNewTreeState): We no longer update the debug
        indicator on tree commit.
        * page/scrolling/ScrollingTree.h:
        (WebCore::ScrollingTree::hasWheelEventHandlers): Needed for the tiled
        scrolling indicator.
        (ScrollingTree):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::commitTreeState): Tell the TiledBacking
        about the current scrolling mode.
        * page/scrolling/mac/ScrollingTreeMac.mm: Removed.
        * platform/graphics/TiledBacking.h: Add functions to set the indicator scrolling
        mode, and to get the tiled scrolling indicator layer. This has to be parented by
        the DrawingArea, to ensure that it's in front of all other layers.
        * platform/graphics/ca/mac/TileCache.h:
        (WebCore::TileCache::scale): Exposed for the indicator drawing code to use.
        * platform/graphics/ca/mac/TileCache.mm:
        (-[WebTileCacheMapLayer init]): The indicator has a sublayer which renders the
        visible rect frame, owned by it.
        (-[WebTileCacheMapLayer drawInContext:]):
        (WebCore::TileCache::TileCache): The indicator mode has to be stored here,
        since it can be pushed down before we have an indicator layer.
        (WebCore::TileCache::~TileCache): Clear the TileCache on the indicator layer, which
        may outlive us.
        (WebCore::TileCache::revalidateTiles): Call updateTileCoverageMap().
        (WebCore::TileCache::updateTileCoverageMap): Resize the indicator layer to fit
        within the window, and update the indicator color.
        (WebCore::TileCache::tiledScrollingIndicatorLayer): Create and initialize the layer.
        (WebCore::TileCache::setScrollingModeIndication):
        (WebCore::TileCache::drawTileMapContents): Draw small white rects for the tiles over
        an translucent gray background.

2012-12-04  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Propagate more leveldb errors to IDBIndex and IDBObjectStore
        https://bugs.webkit.org/show_bug.cgi?id=103782

        Reviewed by Tony Chang.

        index.get[Key]() and objectStore.get() will receive more error events.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBBackingStore::getRecord):
        (WebCore::versionExists):
        (WebCore::IDBBackingStore::findKeyInIndex):
        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
        (WebCore::IDBBackingStore::keyExistsInIndex):
        * Modules/indexeddb/IDBBackingStore.h:
        (IDBBackingStore):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::getInternal):
        (WebCore::IDBIndexBackendImpl::getKeyInternal):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::getInternal):
        (WebCore):

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove IntegerCache::m_initialized
        https://bugs.webkit.org/show_bug.cgi?id=103978

        Reviewed by Adam Barth.

        Thanks to r136479, we can now initialize V8 integers in IntegerCache's
        constructor. We can remove IntegerCache::m_initialized, which slightly
        improves performance.

        [Bindings/scroll-top.html in Chromium/Linux]
        Before this patch: 285 runs/sec, 281 runs/sec, 281 runs/sec, 280 runs/sec
        After this patch : 290 runs/sec, 291 runs/sec, 297 runs/sec, 291 runs/sec

        No tests. No change in behavior.

        * bindings/v8/V8ValueCache.cpp:
        (WebCore::IntegerCache::IntegerCache):
        (WebCore::IntegerCache::~IntegerCache):
        * bindings/v8/V8ValueCache.h:
        (IntegerCache):
        (WebCore::IntegerCache::v8Integer):
        (WebCore::IntegerCache::v8UnsignedInteger):
        (WebCore):

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace String::New("symbol") with String::NewSymbol("symbol")
        https://bugs.webkit.org/show_bug.cgi?id=103989

        Reviewed by Adam Barth.

        In V8, a symbol lookup is faster than a string lookup. We should use
        String::NewSymbol("symbol") for symbols.

        No tests. No change in behavior.

        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
        (WebCore::V8HTMLCanvasElement::getContextCallback):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::typeCallback):
        (WebCore::V8InjectedScriptHost::functionDetailsCallback):
        (WebCore::getJSListenerFunctions):
        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
        (WebCore::populateContextMenuItems):

2012-12-04  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Implement CSS parsing and handling for <track-minmax>
        https://bugs.webkit.org/show_bug.cgi?id=103799

        Reviewed by Tony Chang.

        This change adds support for:
        <track-minmax> => minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth>
        (note that we already supported auto | <track-breadth>).

        The change is mostly mechanical, the only newness is that GridTrackSize was updated to
        hold 2 Lengths internally and we map the single Length case to 2 by duplicating the value
        as this matches the rendering algorithm in the spec.

        Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html
               fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridTrackBreadth):
        Changed the function to do the conversion of one track breadth (one Length).
        This was forgotten in the preparatory change in bug 103703.

        (WebCore::valueForGridTrackMinMax):
        Convert the value back using valueForGridTrackBreadth.

        * css/CSSFunctionValue.cpp:
        (WebCore::CSSFunctionValue::CSSFunctionValue):
        * css/CSSFunctionValue.h:
        (WebCore::CSSFunctionValue::create):
        (CSSFunctionValue):
        Added a new constructor. This enables us to return minmax(..., ...) when queried
        from JavaScript. I couldn't find a better way to serialize inside CSSComputedStyleDeclaration
        so that it properly match the function output.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTrackMinMax):
        Added parsing for the new syntax. We convert the 2 values into a Pair if we manage to
        parse both values correctly.

        * css/StyleResolver.cpp:
        (WebCore::createGridTrackMinMax):
        Updated to handle a Pair - for minmax - and set the 2 values on GridTrackSize.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
        Updated to check the style. For now, we don't handle minmax values.

        * rendering/style/GridTrackSize.h:
        (WebCore::GridTrackSize::GridTrackSize):
        (WebCore::GridTrackSize::length):
        (WebCore::GridTrackSize::setLength):
        (WebCore::GridTrackSize::minTrackBreadth):
        (WebCore::GridTrackSize::maxTrackBreadth):
        (WebCore::GridTrackSize::setMinMax):
        (WebCore::GridTrackSize::operator==):
        Updated the class to handle minmax values. This means that we now always store
        2 values (the <length> case being a subset of minmax, however we kept the distinction
        to be able to reconstruct a <length> for getComputedStyle).

2012-12-04  Elliott Sprehn  <esprehn@chromium.org>

        parser* methods in ContainerNode should not support DocumentFragment
        https://bugs.webkit.org/show_bug.cgi?id=103965

        Reviewed by Darin Adler.

        Only parserInsertBefore ever supported DocumentFragment and this feature
        is never used. It appears this code ended up in parserInsertBefore when
        it was created as a copy of insertBefore that didn't fire events. This
        patch removes that code and adds assertions that we never pass
        DocumentFragments since doing so would cause a corrupted tree as we never
        check checkAcceptChild or do other validation in the parser methods.

        No new tests, just refactoring.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserRemoveChild):
        (WebCore::ContainerNode::parserAppendChild):

2012-12-04  Elliott Sprehn  <esprehn@gmail.com>

        Simplify ShadowRoot::cloneNode(bool,ExceptionCode)
        https://bugs.webkit.org/show_bug.cgi?id=103928

        Reviewed by Dimitri Glazkov.

        ShadowRoot can never be cloned and ShadowRoot::cloneNode(bool) always
        returns null so there's no reason to have code in the cloneNode method
        for script that acts as if it may not return null.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::cloneNode):

2012-12-04  Elliott Sprehn  <esprehn@chromium.org>

        setIsInTopLayer is not really a setter
        https://bugs.webkit.org/show_bug.cgi?id=103912

        Reviewed by Eric Seidel.

        Element::setInTopLayer isn't just a setter, it also adds the element
        to the top layer vector in the document which changes it's display and
        causes a reattach.

        To make this more obvious make HTMLDialogElement use the methods on
        Document and make those update the state boolean.

        There also doesn't seem to be any reason for setInTopLayer
        or isInTopLayer to be virtual, it appears it was a typo.

        No new tests, just refactoring.

        * dom/Document.cpp:
        (WebCore::Document::addToTopLayer):
        (WebCore::Document::removeFromTopLayer):
        * dom/Element.cpp:
        (WebCore::Element::setIsInTopLayer):
        * dom/Element.h:
        * html/HTMLDialogElement.cpp:
        (WebCore::HTMLDialogElement::close):
        (WebCore::HTMLDialogElement::showModal):

2012-12-04  Elliott Sprehn  <esprehn@chromium.org>

        Automatically handle suspend and resume of post attach callbacks
        https://bugs.webkit.org/show_bug.cgi?id=103910

        Reviewed by Eric Seidel.

        Use RAII to handle suspend and resume of post attach callbacks since
        they should always be called in pairs.

        No new tests, just refactoring.

        * dom/ContainerNode.h:
        (PostAttachCallbackDisabler):
        (WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
        (WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
        (ContainerNode):
        * dom/Document.cpp:
        (WebCore::Document::recalcStyle):
        * dom/Element.cpp:
        (WebCore::Element::attach):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::attach):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::attach):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::attach):
        (WebCore):

2012-12-04  Elliott Sprehn  <esprehn@chromium.org>

        createRareData should return a PassOwnPtr
        https://bugs.webkit.org/show_bug.cgi?id=103851

        Reviewed by Eric Seidel.

        createRareData should return a PassOwnPtr, not an OwnPtr since it's
        transfering ownership.

        * dom/Element.cpp:
        (WebCore::Element::createRareData):
        * dom/Element.h:
        (Element):
        * dom/Node.cpp:
        (WebCore::Node::createRareData):
        * dom/Node.h:

2012-12-04  Filip Pizlo  <fpizlo@apple.com>

        Rename Profiler to LegacyProfiler
        https://bugs.webkit.org/show_bug.cgi?id=104031

        Rubber stamped by Mark Hahnenberg

        Just renaming, no new tests.

        * ForwardingHeaders/profiler/LegacyProfiler.h: Copied from Source/WebCore/ForwardingHeaders/profiler/Profiler.h.
        * ForwardingHeaders/profiler/Profiler.h: Removed.
        * bindings/js/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::start):
        (WebCore::ScriptProfiler::stop):

2012-12-04  James Simonsen  <simonjam@chromium.org>

        [User Timing] Fix clang build by removing need for exit time destructor
        https://bugs.webkit.org/show_bug.cgi?id=104036

        Reviewed by Tony Gentilcore.

        Modeled after r99588.

        No new tests. No change in functionality.

        * page/PerformanceUserTiming.cpp:
        (WebCore::UserTiming::UserTiming):
        (WebCore::UserTiming::mark):
        (WebCore::UserTiming::findExistingMarkStartTime):
        * page/PerformanceUserTiming.h:
        (UserTiming):

2012-12-04  James Simonsen  <simonjam@chromium.org>

        [User Timing] Fix negative durations
        https://bugs.webkit.org/show_bug.cgi?id=104038

        Reviewed by Tony Gentilcore.

        At some point, we went from passing in a duration to passing in the end time. User Timing
        wasn't updated.

        Tests: http/tests/w3c/webperf/submission/Intel/user-timing

        * page/PerformanceMark.h:
        (WebCore::PerformanceMark::PerformanceMark):
        * page/PerformanceUserTiming.cpp:
        (WebCore::UserTiming::measure):

2012-12-04  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::StyleCachedImageSet::cssValue
        https://bugs.webkit.org/show_bug.cgi?id=100621

        Reviewed by Eric Seidel.

        r115639 fixed a memory leak caused by reference cycle between StyleCachedImageSet
        and its owner CSSImageSetValue. The fix caused StyleCachedImageSet to maintain
        a weak pointer to CSSImageSetValue. This patch makes sure that the weak pointer
        is cleared when CSSImageSetValue is going away.

        Test: fast/css/image-set-value-not-removed-crash.html

        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::~CSSImageSetValue):
        * rendering/style/StyleCachedImageSet.h:
        (WebCore::StyleCachedImageSet::clearImageSetValue):
        (StyleCachedImageSet):

2012-12-04  Adam Barth  <abarth@webkit.org>

        NodeFilter leaks memory in V8
        https://bugs.webkit.org/show_bug.cgi?id=104027

        Reviewed by Eric Seidel.

        NodeFilter holds a RefPtr to NodeFilterCondition, which holds a
        ScopedPersistent to its callback function. If the callback function can
        see the NodeFilter wrapper, we have a cycle and a leak.

        This patch makes the NodeFilterCondition hold a weak pointer to the
        callback function and ties the lifetime of that callback function to
        the NodeFilter wrapper (so they live and die together).

        * bindings/v8/V8GCController.cpp:
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
        (WebCore::V8NodeFilterCondition::weakCallback):
        (WebCore):
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8NodeFilterCondition.h:
        (WebCore::V8NodeFilterCondition::create):
        (V8NodeFilterCondition):
        (WebCore::V8NodeFilterCondition::callback):
        * dom/NodeFilter.h:
        (WebCore::NodeFilter::condition):

2012-12-04  Abhishek Arya  <inferno@chromium.org>

        Crash in CachedResource::checkNotify due to -webkit-crossfade.
        https://bugs.webkit.org/show_bug.cgi?id=98068

        Reviewed by Nate Chapin.

        Make sure to not re-add the same client again for |m_cachedFromImage|
        and |m_cachedToImage|. This would otherwise cause the CSSCrossfadeValue
        client to not get removed from its cached image resource (when it is
        going away).

        Test: fast/images/crossfade-client-not-removed-crash.html

        * css/CSSCrossfadeValue.cpp:
        (WebCore::CSSCrossfadeValue::loadSubimages):

2012-12-04  Julien Chaffraix  <jchaffraix@webkit.org>

        Heap-use-after-free in WebCore::RenderLayer::paintList [MathML]
        https://bugs.webkit.org/show_bug.cgi?id=100764

        Reviewed by Eric Seidel.

        Test: mathml/mfenced-root-layer.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::stackingContext):
        Fixed this function to ensure that it always returns a stacking context, the bug
        was that the document element's layer wasn't guaranteed to be a stacking context.

2012-12-04  Adam Barth  <abarth@webkit.org>

        [V8] GetNativeType in CodeGeneratorV8.pm needs a bath
        https://bugs.webkit.org/show_bug.cgi?id=104022

        Reviewed by Eric Seidel.

        This change shouldn't have any effect on the generated code.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetNativeType):
            - DOMUserData was removed in 2005. There's no need for the code
              generator to still know about it.
        (JSValueToNative):
        (ConvertToV8StringResource):

2012-12-04  Adam Barth  <abarth@webkit.org>

        [V8] EventTarget shouldn't be a special snowflake
        https://bugs.webkit.org/show_bug.cgi?id=104018

        Reviewed by Eric Seidel.

        Previously we special-cased the toV8 operation for event targets.
        There's no need for that. We can use IDL attribute to handle
        EventTarget using the same general-purpose code that we use for other
        interfaces.

        * WebCore.gypi:
        * bindings/scripts/CodeGeneratorV8.pm:
        (NativeToJSValue):
        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::getReceiverObject):
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        * bindings/v8/V8WorkerContextEventListener.cpp:
        (WebCore::V8WorkerContextEventListener::getReceiverObject):
        * bindings/v8/custom/V8EventTargetCustom.cpp: Added.
        (WebCore):
        (WebCore::toV8):
        * dom/EventTarget.idl:

2012-12-04  Florin Malita  <fmalita@chromium.org>

        Stale SVGUseElement reference in CachedResource::checkNotify()
        https://bugs.webkit.org/show_bug.cgi?id=104004

        Reviewed by Eric Seidel.

        SVGUseElement tracks one CachedSVGDocument at a time (for external references), but when
        the href attribute is updated it fails to unregister with the current CachedSVGDocument
        and only updates its CachedSVGDocument with the new instance. This leaves an untracked
        reference with the original CachedSVGDocument.

        The patch adds the missing removeClient() call on href change, and encapsulates the
        CachedSVGDocument manipulation in a helper method which handles the necessary cleanup.

        Test: svg/custom/use-href-update-crash.svg

        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::~SVGUseElement):
        (WebCore::SVGUseElement::svgAttributeChanged):
        (WebCore::SVGUseElement::setCachedDocument):
        (WebCore):
        * svg/SVGUseElement.h:
        (SVGUseElement):

2012-12-04  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: Can't take a heap snapshot in chromium ("Uncaught ReferenceError")
        https://bugs.webkit.org/show_bug.cgi?id=103997

        Reviewed by Pavel Feldman.

        utilities.js used in both page and worker contexts should not access window
        object as there is no one in case of workers. NonLeakingMutationObserver implementation
        has moved to DOMExtension.js

        * inspector/front-end/DOMExtension.js:
        (NonLeakingMutationObserver.NonLeakingMutationObserver._unloadListener):
        (NonLeakingMutationObserver):
        (NonLeakingMutationObserver.prototype.observe):
        (NonLeakingMutationObserver.prototype.disconnect):
        * inspector/front-end/utilities.js:

2012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136509.
        http://trac.webkit.org/changeset/136509
        https://bugs.webkit.org/show_bug.cgi?id=104015

        broke layout tests (Requested by eae on #webkit).

        * platform/graphics/IntSize.h:
        (WebCore::IntSize::scale):

2012-12-04  Antoine Quint  <graouts@apple.com>

        INVALID_STATE_ERR error upon calling .addCue() for an already-in-use cue
        https://bugs.webkit.org/show_bug.cgi?id=103264

        Reviewed by Eric Carlson.

        Adhere to the latest spec for TextTrack's .addCue() method. This also fixes
        https://bugs.webkit.org/show_bug.cgi?id=103265 and we've removed
        media/track/opera/interfaces/TextTrack/addCue.html from the Skipped list.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::addCue):
        * html/track/TextTrack.h:
        (TextTrack):
        * html/track/TextTrack.idl:

2012-12-04  Mike West  <mkwst@chromium.org>

        Log to console when forms and popups are blocked by 'sandbox'.
        https://bugs.webkit.org/show_bug.cgi?id=103615

        Reviewed by Adam Barth.

        Adds two console messages to cover form submissions blocked by a
        sandboxed frame lacking the 'allow-forms' permission, and window
        creation blocked by a sandboxed frame lacking the 'allow-popups'
        permission.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::submitForm):
            Log a warning when form submission is blocked by sandboxing flags.
        (WebCore::createWindow):
            Log a warning when window.open is blocked due to sandboxing flags.

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        [V8] Make v8::Null(isolate) faster by caching the value in V8 bindings
        https://bugs.webkit.org/show_bug.cgi?id=103862

        Reviewed by Adam Barth.

        Performance comparison between V8 and JSC revealed that DOM attributes
        that return v8::Null(isolate) are much slower than JSC.
        (https://docs.google.com/a/chromium.org/spreadsheet/ccc?key=0AlobCOyvTnPKdDg5S0dMdGRGRTRSaW53V1ppVzh6eXc#gid=2)

        We can optimize v8::Null(isolate) by caching the value to V8PerIsolateData.
        (Although I don't like the optimization, it looks difficult to optimize
        v8::Null(isolate) more.)

        [Bindings/undefined-first-child.html]
        Before: 969 runs/sec, 970 runs/sec, 962 runs/sec
        After:  1086 runs/sec, 1085 runs/sec, 1086 runs/sec

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (GenerateFunctionCallback):
        (NativeToJSValue):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::toV8Fast):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
        * bindings/v8/V8Binding.h:
        (WebCore):
        (WebCore::v8Null):
        (WebCore::v8NullWithCheck):
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::V8PerIsolateData):
        * bindings/v8/V8PerIsolateData.h:
        (WebCore::V8PerIsolateData::v8Null):
        (V8PerIsolateData):

2012-12-04  Alexis Menard  <alexis@webkit.org>

        Add an helper function in CSSParser to check for '/' character.
        https://bugs.webkit.org/show_bug.cgi?id=104009

        Reviewed by Ryosuke Niwa.

        Remove unwanted null check from r136525

        No new tests : just a refactor, existing tests should cover.

        * css/CSSParser.cpp:
        (WebCore::isForwardSlashOperator):

2012-12-04  Alexis Menard  <alexis@webkit.org>

        Add an helper function in CSSParser to check for '/' character.
        https://bugs.webkit.org/show_bug.cgi?id=104009

        Reviewed by Ryosuke Niwa.

        I'm about to add the same pattern in a following patch. Let's do an
        helper function first. We also did that for the comma. The slash
        character is pretty used in shorthands definitions.

        No new tests : just a refactor, existing tests should cover.

        * css/CSSParser.cpp:
        (WebCore::isForwardSlashOperator):
        (WebCore):
        (WebCore::CSSParser::parseFillShorthand):
        (WebCore::CSSParser::parseFont):
        (WebCore::CSSParser::parseBorderImage):
        (WebCore::CSSParser::parseAspectRatio):

2012-12-04  Ken Kania  <kkania@chromium.org>

        Inspector: Introduce Input.dispatchKeyEvent and DOM.focus for typing simulation.
        https://bugs.webkit.org/show_bug.cgi?id=103530

        Reviewed by Yury Semikhatsky.

        Input.dispatchKeyEvent simply calls EventHandler::keyEvent with the key event data
        from the command parameters. The client will be responsible for providing proper
        events to simulate desired typing behavior.
        DOM.focus calls focus on a dom element.

        Tests: inspector-protocol/dom-focus.html
               inspector-protocol/input-dispatchKeyEvent.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/Inspector.json:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::focus):
        (WebCore):
        (WebCore::InspectorDOMAgent::resolveNode):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/InspectorInputAgent.cpp: Added.
        (WebCore):
        (WebCore::InspectorInputAgent::InspectorInputAgent):
        (WebCore::InspectorInputAgent::~InspectorInputAgent):
        (WebCore::InspectorInputAgent::dispatchKeyEvent):
        * inspector/InspectorInputAgent.h: Added.
        (WebCore):
        (InspectorInputAgent):
        (WebCore::InspectorInputAgent::create):

2012-12-04  Dan Bernstein  <mitz@apple.com>

        FontPlatformData has unnecessary m_textOrientation member
        https://bugs.webkit.org/show_bug.cgi?id=103971

        Reviewed by Darin Adler.

        Nothing in SimpleFontData depends on the FontPlatformData’s textOrientation, so we don’t
        need separate data for vertical-right and upright. We simply choose between
        verticalRightOrientationFontData() and uprightOrientationFontData() based on the
        textOrientation in the FontDescription.

        * WebCore.exp.in: Updated FontPlatformData constructor exports.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData): Removed the text orientation bit from the hash key,
        and updated for the removal of the TextOrientation parameter to
        CachedFont::platformDataFromCustomData().

        * loader/cache/CachedFont.cpp:
        (WebCore::CachedFont::platformDataFromCustomData): Removed the TextOrientation parameter.
        * loader/cache/CachedFont.h:

        * platform/graphics/FontCache.cpp:
        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Removed the TextOrientation
        parameter and initializer.
        (WebCore::FontPlatformDataCacheKey::operator==): Updated for removal of m_textOrientation
        member variable.
        (FontPlatformDataCacheKey): Removed m_textOrientation member variable.
        (WebCore::computeHash): Removed text orientation bit from the hash.
        (WebCore::FontCache::getCachedFontPlatformData): Updated for FontPlatformDataCacheKey
        change.

        * platform/graphics/FontPlatformData.cpp:
        (WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameters and
        initializers.
        (WebCore::FontPlatformData::operator=): Updated for removal of m_textOrientation
        member variable.
        * platform/graphics/FontPlatformData.h:
        (FontPlatformData): Removed m_textOrientation member variable, removed TextOrientation
        parameters from constructors.
        (WebCore::FontPlatformData::hash): Removed text orientation bit.
        (WebCore::FontPlatformData::operator==): Updated for removed member variable.

        * platform/graphics/cairo/FontCustomPlatformData.h:
        (FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.

        * platform/graphics/chromium/FontCacheAndroid.cpp:
        (WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.

        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
        (WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameter and
        initializer.

        * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
        (WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameter and
        initializers.
        (WebCore::FontPlatformData::operator=): Updated for removed member variable.
        (WebCore::FontPlatformData::operator==): Ditto.
        (WebCore::FontPlatformData::hash): Removed text orientation bit.

        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
        (FontPlatformData): Removed TextOrientation parameter from the constructor declaration.

        * platform/graphics/mac/FontCacheMac.mm:
        (WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.

        * platform/graphics/mac/FontCustomPlatformData.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.

        * platform/graphics/mac/FontCustomPlatformData.h:
        (FontCustomPlatformData): Removed TextOrientation parameter from declaration of
        fontPlatformData().

        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::getCompositeFontReferenceFontData): Updated for FontPlatformData
        change.

        * platform/graphics/pango/FontCustomPlatformDataPango.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
        * platform/graphics/qt/FontCustomPlatformData.h:

        * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Ditto.

        * platform/graphics/skia/FontCacheSkia.cpp:
        (WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.

        * platform/graphics/skia/FontCustomPlatformData.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
        * platform/graphics/skia/FontCustomPlatformData.h:

        * platform/graphics/win/FontCustomPlatformData.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
        * platform/graphics/win/FontCustomPlatformData.h:

        * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
        * platform/graphics/win/FontCustomPlatformDataCairo.h:

        * platform/graphics/win/FontPlatformDataCGWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData): Removed m_textOrientation initializer.

        * platform/graphics/win/FontPlatformDataCairoWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData): Ditto.

        * platform/graphics/win/FontPlatformDataWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData): Ditto.

        * platform/graphics/wince/FontCustomPlatformData.cpp:
        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
        * platform/graphics/wince/FontCustomPlatformData.h:

2012-12-04  Charlie Reis  <creis@chromium.org>

        Add FrameLoaderClient::didDisownOpener
        https://bugs.webkit.org/show_bug.cgi?id=103789

        Reviewed by Darin Fisher.

        Adds a didDisownOwner notification when a frame's opener is cleared,
        so that FrameLoaderClients can react.

        No new tests.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::setOpener): Calls didDisownOpener if opener is cleared.
        * loader/FrameLoaderClient.h:
        (FrameLoaderClient):
        (WebCore::FrameLoaderClient::didDisownOpener):

2012-12-04  Robert Hogan  <robert@webkit.org>

        Redrawing issue with inserting new inline element between existing inline elements
        https://bugs.webkit.org/show_bug.cgi?id=50315

        Reviewed by Levi Weintraub.

        When inserting an element such as '<span>text<br></span>' between two lineboxes, the second of which has leading space
        collapsed away after a line-break, dirtyLinesFromChangeChild() needs to ensure that the linebox the fragment is inserted into (the second 
        of the two lineboxes) gets dirtied. 
        
        Since the element has been inserted before the first element in the linebox, but after the collapsed leading
        space, the search for the new element's linebox will go past the leading space to the previous linebox and select that
        one by mistake.
        
        So in order to ensure the element's linebox is dirtied make sure its previous sibling is not the line-break object of the
        linebox we selected when searching for a linebox to dirty. If the previous sibling is the linebox's line-break object then
        the element is in the one after the one we selected and we should dirty that linebox too. 

        Test: fast/inline/layout-after-inserting-nested-br.html

        * rendering/RenderLineBoxList.cpp:
        (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

2012-12-04  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        IntSize::scale() should return rounded value
        https://bugs.webkit.org/show_bug.cgi?id=103984

        Reviewed by Kenneth Rohde Christiansen.

        IntSize::scale() is now rounding float value to the nearest integer instead of blind type casting.

        Test: css3/device-adapt/viewport-width-not-affecting-next-page.html

        * platform/graphics/IntSize.h:
        (WebCore::IntSize::scale):

2012-12-04  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        Add support for generic types in arrays and sequences to the code generators
        https://bugs.webkit.org/show_bug.cgi?id=103642

        Reviewed by Kentaro Hara.

        Updated the bindings generators to support arrays and sequences of host objects.

        - Arrays and sequences of host objects are mapped to Vector<RefPtr<%RefPtrType%> >.
        - Fixed issue where "sequence<String>" was used in IDL files instead of "sequence<DOMString>".

        Updated existing test results.

        * Modules/indexeddb/IDBDatabase.idl:
        * Modules/indexeddb/IDBObjectStore.idl:
        * Modules/mediastream/RTCStatsElement.idl:
        * Modules/websockets/WebSocket.idl:
        * bindings/js/JSDOMBinding.h:
        (WebCore::toRefPtrNativeArray):
        (WebCore):
        * bindings/scripts/CodeGenerator.pm:
        (IsRefPtrType):
        * bindings/scripts/CodeGeneratorJS.pm:
        (AddIncludesForType):
        (GetNativeType):
        (GetNativeVectorInnerType):
        (JSValueToNative):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateParametersCheckExpression):
        (GenerateFunctionCallString):
        (GetNativeType):
        (JSValueToNative):
        (CreateCustomSignature):
        (NativeToJSValue):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::longLongAttrAttrSetter):
        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetter):
        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
        * bindings/v8/V8Binding.h:
        (WebCore::toRefPtrNativeArray):
        * testing/Internals.idl:

2012-12-04  Antoine Quint  <graouts@apple.com>

        TextTrack's .kind property should return lower-case values
        https://bugs.webkit.org/show_bug.cgi?id=103411

        Reviewed by Eric Carlson.

        While the HTML "kind" attribute on the <track> element allows upper-case values, the related APIs
        on HTMLMediaElement and TextTrack expect only to deal with lower-case values. As such, we're updating
        TextTrack::isValidKindKeyword() to be case-sensitive and ensure that values fed from the DOM (the values
        read from HTML attributes) are lower-case'd.

        Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrack/kind.html and
        media/track/opera/interfaces/HTMLElement/HTMLMediaElement/addTextTrack.html 

        This patch also fixes https://bugs.webkit.org/show_bug.cgi?id=103256.

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::parseAttribute):
        (WebCore::HTMLTrackElement::ensureTrack):
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::isValidKindKeyword):

2012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136498.
        http://trac.webkit.org/changeset/136498
        https://bugs.webkit.org/show_bug.cgi?id=103992

        Patch causes a lot of tests to crash in GTK+ bots (Requested
        by KaL on #webkit).

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperties):
        (GenerateHeader):
        (GenerateCFile):
        (GenerateEventTargetIface):
        (WriteData):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit::core):
        (WebKit::wrapFloat64Array):
        (webkit_dom_float64array_finalize):
        (webkit_dom_float64array_class_init):
        (webkit_dom_float64array_init):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (WebKit::core):
        (WebKit::wrapTestActiveDOMObject):
        (webkit_dom_test_active_dom_object_finalize):
        (webkit_dom_test_active_dom_object_class_init):
        (webkit_dom_test_active_dom_object_init):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (WebKit::core):
        (WebKit::wrapTestCallback):
        (webkit_dom_test_callback_finalize):
        (webkit_dom_test_callback_class_init):
        (webkit_dom_test_callback_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (WebKit::core):
        (WebKit::wrapTestCustomNamedGetter):
        (webkit_dom_test_custom_named_getter_finalize):
        (webkit_dom_test_custom_named_getter_class_init):
        (webkit_dom_test_custom_named_getter_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (WebKit::core):
        (WebKit::wrapTestEventConstructor):
        (webkit_dom_test_event_constructor_finalize):
        (webkit_dom_test_event_constructor_class_init):
        (webkit_dom_test_event_constructor_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (WebKit::core):
        (WebKit::wrapTestEventTarget):
        (webkit_dom_test_event_target_dispatch_event):
        (webkit_dom_test_event_target_add_event_listener):
        (webkit_dom_test_event_target_remove_event_listener):
        (webkit_dom_test_event_target_finalize):
        (webkit_dom_test_event_target_class_init):
        (webkit_dom_test_event_target_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (WebKit::core):
        (WebKit::wrapTestException):
        (webkit_dom_test_exception_finalize):
        (webkit_dom_test_exception_class_init):
        (webkit_dom_test_exception_init):
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (WebKit::core):
        (WebKit::wrapTestInterface):
        (webkit_dom_test_interface_finalize):
        (webkit_dom_test_interface_class_init):
        (webkit_dom_test_interface_init):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (WebKit::core):
        (WebKit::wrapTestMediaQueryListListener):
        (webkit_dom_test_media_query_list_listener_finalize):
        (webkit_dom_test_media_query_list_listener_class_init):
        (webkit_dom_test_media_query_list_listener_init):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (WebKit::core):
        (WebKit::wrapTestNamedConstructor):
        (webkit_dom_test_named_constructor_finalize):
        (webkit_dom_test_named_constructor_class_init):
        (webkit_dom_test_named_constructor_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (WebKit::core):
        (WebKit::wrapTestNode):
        (webkit_dom_test_node_dispatch_event):
        (webkit_dom_test_node_add_event_listener):
        (webkit_dom_test_node_remove_event_listener):
        (webkit_dom_test_node_finalize):
        (webkit_dom_test_node_class_init):
        (webkit_dom_test_node_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (WebKit::core):
        (WebKit::wrapTestObj):
        (webkit_dom_test_obj_finalize):
        (webkit_dom_test_obj_class_init):
        (webkit_dom_test_obj_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        (WebKit::core):
        (WebKit::wrapTestOverloadedConstructors):
        (webkit_dom_test_overloaded_constructors_finalize):
        (webkit_dom_test_overloaded_constructors_class_init):
        (webkit_dom_test_overloaded_constructors_init):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (WebKit::core):
        (WebKit::wrapTestSerializedScriptValueInterface):
        (webkit_dom_test_serialized_script_value_interface_finalize):
        (webkit_dom_test_serialized_script_value_interface_class_init):
        (webkit_dom_test_serialized_script_value_interface_init):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:

2012-12-04  Markus Heintz  <markusheintz@chromium.org>

        Web Inspector: Viewport console warnings cleanup.
        https://bugs.webkit.org/show_bug.cgi?id=102890

        Reviewed by Jochen Eisinger.

        Improve the console message text for a viewport console warning and
        change the log level to warning.

        No new tests added, as this change is covered by updates to existing
        test expectations.

        * dom/ViewportArguments.cpp:
        (WebCore::viewportErrorMessageTemplate):
            Improve the console message text for invalid values.
        (WebCore::viewportErrorMessageLevel):
            Upgraded the TruncatedViewportArgumentValueError and the
            TargetDensityDpiUnsupported messages's MessageLeval to warning.
        (WebCore::reportViewportWarning):
            Adding only a comment for a FIXIT reminder.

2012-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use a private struct and placement new syntax in GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=101074

        Reviewed by Xan Lopez.

        It allows to use RefPtr for the wrapped object and it simplifies
        the code.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperties):
        (GenerateHeader):
        (GenerateCFile):
        (GenerateEventTargetIface):
        (WriteData):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (_WebKitDOMFloat64ArrayPrivate):
        (WebKit::core):
        (WebKit::wrapFloat64Array):
        (webkit_dom_float64array_finalize):
        (webkit_dom_float64array_constructor):
        (webkit_dom_float64array_class_init):
        (webkit_dom_float64array_init):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        (_WebKitDOMFloat64Array):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (_WebKitDOMTestActiveDOMObjectPrivate):
        (WebKit::core):
        (WebKit::wrapTestActiveDOMObject):
        (webkit_dom_test_active_dom_object_finalize):
        (webkit_dom_test_active_dom_object_constructor):
        (webkit_dom_test_active_dom_object_class_init):
        (webkit_dom_test_active_dom_object_init):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        (_WebKitDOMTestActiveDOMObject):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (_WebKitDOMTestCallbackPrivate):
        (WebKit::core):
        (WebKit::wrapTestCallback):
        (webkit_dom_test_callback_finalize):
        (webkit_dom_test_callback_constructor):
        (webkit_dom_test_callback_class_init):
        (webkit_dom_test_callback_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        (_WebKitDOMTestCallback):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (_WebKitDOMTestCustomNamedGetterPrivate):
        (WebKit::core):
        (WebKit::wrapTestCustomNamedGetter):
        (webkit_dom_test_custom_named_getter_finalize):
        (webkit_dom_test_custom_named_getter_constructor):
        (webkit_dom_test_custom_named_getter_class_init):
        (webkit_dom_test_custom_named_getter_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        (_WebKitDOMTestCustomNamedGetter):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (_WebKitDOMTestEventConstructorPrivate):
        (WebKit::core):
        (WebKit::wrapTestEventConstructor):
        (webkit_dom_test_event_constructor_finalize):
        (webkit_dom_test_event_constructor_constructor):
        (webkit_dom_test_event_constructor_class_init):
        (webkit_dom_test_event_constructor_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        (_WebKitDOMTestEventConstructor):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (_WebKitDOMTestEventTargetPrivate):
        (WebKit::core):
        (WebKit::wrapTestEventTarget):
        (webkit_dom_test_event_target_dispatch_event):
        (webkit_dom_test_event_target_add_event_listener):
        (webkit_dom_test_event_target_remove_event_listener):
        (webkit_dom_test_event_target_finalize):
        (webkit_dom_test_event_target_constructor):
        (webkit_dom_test_event_target_class_init):
        (webkit_dom_test_event_target_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        (_WebKitDOMTestEventTarget):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (_WebKitDOMTestExceptionPrivate):
        (WebKit::core):
        (WebKit::wrapTestException):
        (webkit_dom_test_exception_finalize):
        (webkit_dom_test_exception_constructor):
        (webkit_dom_test_exception_class_init):
        (webkit_dom_test_exception_init):
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        (_WebKitDOMTestException):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (_WebKitDOMTestInterfacePrivate):
        (WebKit::core):
        (WebKit::wrapTestInterface):
        (webkit_dom_test_interface_finalize):
        (webkit_dom_test_interface_constructor):
        (webkit_dom_test_interface_class_init):
        (webkit_dom_test_interface_init):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        (_WebKitDOMTestInterface):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (_WebKitDOMTestMediaQueryListListenerPrivate):
        (WebKit::core):
        (WebKit::wrapTestMediaQueryListListener):
        (webkit_dom_test_media_query_list_listener_finalize):
        (webkit_dom_test_media_query_list_listener_constructor):
        (webkit_dom_test_media_query_list_listener_class_init):
        (webkit_dom_test_media_query_list_listener_init):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        (_WebKitDOMTestMediaQueryListListener):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (_WebKitDOMTestNamedConstructorPrivate):
        (WebKit::core):
        (WebKit::wrapTestNamedConstructor):
        (webkit_dom_test_named_constructor_finalize):
        (webkit_dom_test_named_constructor_constructor):
        (webkit_dom_test_named_constructor_class_init):
        (webkit_dom_test_named_constructor_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        (_WebKitDOMTestNamedConstructor):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (_WebKitDOMTestNodePrivate):
        (WebKit::core):
        (WebKit::wrapTestNode):
        (webkit_dom_test_node_dispatch_event):
        (webkit_dom_test_node_add_event_listener):
        (webkit_dom_test_node_remove_event_listener):
        (webkit_dom_test_node_finalize):
        (webkit_dom_test_node_constructor):
        (webkit_dom_test_node_class_init):
        (webkit_dom_test_node_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        (_WebKitDOMTestNode):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (_WebKitDOMTestObjPrivate):
        (WebKit::core):
        (WebKit::wrapTestObj):
        (webkit_dom_test_obj_finalize):
        (webkit_dom_test_obj_constructor):
        (webkit_dom_test_obj_class_init):
        (webkit_dom_test_obj_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        (_WebKitDOMTestObj):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
        (WebKit::core):
        (WebKit::wrapTestSerializedScriptValueInterface):
        (webkit_dom_test_serialized_script_value_interface_finalize):
        (webkit_dom_test_serialized_script_value_interface_constructor):
        (webkit_dom_test_serialized_script_value_interface_class_init):
        (webkit_dom_test_serialized_script_value_interface_init):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
        (_WebKitDOMTestSerializedScriptValueInterface):

2012-12-04  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Make leveldb histogram entries more fine-grained
        https://bugs.webkit.org/show_bug.cgi?id=103688

        Reviewed by Tony Chang.

        Allow us better insight into which functions the IO errors originate
        from.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::setUpMetadata):
        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::IDBBackingStore::getObjectStores):
        (WebCore::IDBBackingStore::getRecord):
        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::keyExistsInObjectStore):
        (WebCore::IDBBackingStore::getIndexes):
        (WebCore::IDBBackingStore::findKeyInIndex):
        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
        (WebCore::IndexCursorImpl::loadCurrentRow):

2012-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Avoid unnecessary heap allocations during drag and drop operations
        https://bugs.webkit.org/show_bug.cgi?id=87938

        Reviewed by Martin Robinson.

        * platform/gtk/GtkDragAndDropHelper.cpp:
        (WebCore::GtkDragAndDropHelper::handleDragMotion): Return a
        pointer to the DataObjectGtk so that the caller can create the
        DragData object in the stack.
        (WebCore::GtkDragAndDropHelper::handleDragDataReceived): Ditto.
        (WebCore::GtkDragAndDropHelper::handleDragDrop): Ditto.
        * platform/gtk/GtkDragAndDropHelper.h:

2012-12-04  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Overrides] Add ability to override the page CSS media type
        https://bugs.webkit.org/show_bug.cgi?id=103752

        Reviewed by Pavel Feldman.

        This change emulates the CSS media types through the instrumentation of FrameView::mediaType().
        Even though it already checks the associated FrameLoaderClient::overrideMediaType(), instrumenting
        every single platform FrameLoaderClient implementation out there seems wrong.

        Test: inspector/styles/media-emulation.html

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json: Add Page.setEmulatedMedia().
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::applyEmulatedMediaImpl): Added.
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::applyEmulatedMedia): Added.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::restore): Restores the media emulation state.
        (WebCore::InspectorPageAgent::disable): Resets the media emulation state.
        (WebCore::InspectorPageAgent::setEmulatedMedia): Added.
        (WebCore::InspectorPageAgent::applyEmulatedMedia): Applies the emulated CSS media if needed.
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/CSSStyleModel.js: Add the list of media types.
        * inspector/front-end/OverridesView.js: Add the CSS media type override UI.
        (WebInspector.OverridesView):
        (WebInspector.OverridesView.prototype._createMediaEmulationElement): Builds the UI.
        (WebInspector.OverridesView.prototype._emulateMediaChanged): Handles the control value changes.
        * inspector/front-end/Settings.js: Add the "emulatedCSSMedia" setting.
        * page/FrameView.cpp:
        (WebCore::FrameView::mediaType):
          Uses InspectorInstrumentation::applyEmulatedMedia() to provide the emulated value.

2012-12-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Simplify GObject DOM bindings code for handling properties
        https://bugs.webkit.org/show_bug.cgi?id=101072

        Reviewed by Xan Lopez.

        Do not override GObjectClass::set_property if the wrapped object
        doesn't have writable properties, and don't override
        GObjectClass::get_property if the wrapped object doesn't have
        properties at all. It reduces some GObject boilerplate in
        generated code for some objects.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperties):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (webkit_dom_float64array_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (webkit_dom_test_active_dom_object_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (webkit_dom_test_callback_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (webkit_dom_test_custom_named_getter_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (webkit_dom_test_event_constructor_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (webkit_dom_test_event_target_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (webkit_dom_test_exception_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (webkit_dom_test_interface_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (webkit_dom_test_media_query_list_listener_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (webkit_dom_test_named_constructor_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (webkit_dom_test_node_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (webkit_dom_test_serialized_script_value_interface_class_init):

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/JS/JSTestNode.cpp:
        (WebCore::JSTestNode::visitChildren):
        (WebCore):

2012-12-03  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [REGRESSION] [Styles] Rule disappears if edited selector does not affect selected node
        https://bugs.webkit.org/show_bug.cgi?id=103059

        Reviewed by Pavel Feldman.

        This change effectively turns WebInspector.cssModel.setRuleSelector() into a _userOperation
        (in terms of StylesSidebarPane), which finishes upon the _finishOperationAndMoveEditor() invocation.

        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSRule): Fix selectorText now that r136370 has landed.
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype.update): Update the selector text from the model.
        (WebInspector.StylePropertiesSection.prototype._markSelectorMatches): Set the "selector" className regardless of the matched selectors presence.
        (WebInspector.StylePropertiesSection.prototype.successCallback): Make use of the _userOperation flag.
        (WebInspector.StylePropertiesSection.prototype.finishOperationAndMoveEditor): Delete the _userOperation flag.
        (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted): Make use of the _userOperation flag.
        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted): Mark selector matches.
        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCancelled): Delete the _userOperation flag.

2012-12-04  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][WK2][AC] USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.
        https://bugs.webkit.org/show_bug.cgi?id=103710.

        Reviewed by Kenneth Rohde Christiansen.

        When using GLX back-end we are dependent on GLX support, Xcomposite and Xrender extensions.
        In this case, GraphicsSurface usage depends on Xcomposite and Xrender extensions. 
        USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.

        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::createTransportSurface):
        * platform/graphics/surfaces/glx/GLXSurface.cpp:
        (WebCore):
        * platform/graphics/surfaces/glx/GLXSurface.h:
        (WebCore::SharedX11Resources::createConfig):
        (SharedX11Resources):

2012-12-04  Michael Pruett  <michael@68k.org>

        [JSC] Generate visitChildren() for uncustomized EventTarget interfaces
        https://bugs.webkit.org/show_bug.cgi?id=103908

        Reviewed by Geoffrey Garen.

        CodeGeneratorJS.pm should automatically generate visitChildren()
        for EventTarget interfaces without custom mark functions even if
        those interfaces have no functions or cached attributes.

        This change is needed for IDBOpenDBRequest and IDBVersionChangeRequest.

        No new tests. Covered by existing tests.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

2012-12-04  Kentaro Hara  <haraken@chromium.org>

        Change ChildNodeInsertionNotifier::m_postInsertionsNotificationTargets from a Vector to an OwnPtr
        https://bugs.webkit.org/show_bug.cgi?id=103868

        Reviewed by Darin Adler.

        ChildNodeInsertionNotifier::m_postInsertionsNotificationTargets is
        used for HTMLFrameElement and HTMLBodyElement only, which would be
        a cold path. We can change it from a Vector to an OwnPtr<Vector>
        so that ChildNodeInsertionNotifier can be allocated faster. This patch
        optimizes Dromaeo/dom-modify by 1.4%.

        [Dromaeo/dom-modify in Chromium/Linux]
        Before: 4532 runs/sec, 4545 runs/sec, 4530 runs/sec, 4536 runs/sec
        After:  4595 runs/sec, 4606 runs/sec, 4597 runs/sec, 4602 runs/sec

        No tests. No change in behavior.

        * dom/ContainerNodeAlgorithms.h:
        (ChildNodeInsertionNotifier):
        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
        (WebCore::ChildNodeInsertionNotifier::notify):

2012-12-03  Rafael Weinstein  <rafaelw@chromium.org>

        Unreviewed build fix after r136467

        The template element patch added asserts in parserAppendChild and parserInsertBefore which should be valid, but DOMImplementation::createDocument() calls parserAppendChild with docType without regard to its owner. This patch removes the assert and adds a FIXME.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::parserInsertBefore):
        (WebCore::ContainerNode::parserAppendChild):

2012-12-03  Kentaro Hara  <haraken@chromium.org>

        [V8] Enter an Isolate before initializing PerIsolateData
        https://bugs.webkit.org/show_bug.cgi?id=103949

        Reviewed by Adam Barth.

        Currently we initialize PerIsolateData before entering an Isolate,
        which prevents us from using an Isolate in the PerIsolateData
        constructor. We should enter an Isolate first and then initialize
        PerIsolateData.

        No tests. No change in behavior.

        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::WorkerScriptController):

2012-12-03  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Add WebKitDOMShadowRoot.h to the list of public API headers after r135693
        https://bugs.webkit.org/show_bug.cgi?id=103909

        Reviewed by Martin Robinson.

        WebKitDOMShadowRoot was added in r135693. As it is added to
        webkitdom.h we have to export the include file, otherwise clients
        will fail to build due to the missing file.

        * bindings/gobject/GNUmakefile.am:

2012-12-03  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Correct database version after aborted upgrade
        https://bugs.webkit.org/show_bug.cgi?id=103763

        Reviewed by Tony Chang.

        After an aborted "versionchange" transaction, the IDBDatabase would fetch a fresh snapshot
        of the metadata from the back end. If the back end had already started a new "versionchange"
        transaction the snapshot would be bogus. Instead, save a copy of the IDBDatabase's metadata
        and roll back to that, as is done for IDBObjectStore.

        Tests: storage/indexeddb/intversion-abort-in-initial-upgradeneeded.html
               storage/indexeddb/mozilla/versionchange-abort.html
               storage/indexeddb/unblocked-version-changes.html

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::IDBDatabase):
        (WebCore::IDBDatabase::transactionCreated):
        * Modules/indexeddb/IDBDatabase.h:
        (WebCore::IDBDatabase::setMetadata): Let IDBOpenDBRequest and IDBTransaction tinker.
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): Fetch new and compute old metadata.
        (WebCore::IDBOpenDBRequest::onSuccess): Fetch new metadata, in case upgrade changed it.
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create): Stash the old metadata, in case of rollback.
        (WebCore::IDBTransaction::IDBTransaction):
        (WebCore::IDBTransaction::onAbort): Revert the database as well as the stores.
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):

2012-12-03  Rafael Weinstein  <rafaelw@chromium.org>

        Implement HTMLTemplateElement
        https://bugs.webkit.org/show_bug.cgi?id=86031

        Reviewed by Adam Barth.

        Initial implementation. This patch includes the parser changes, new IDL and element implementation for <template>.

        Spec: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html

        Tests: fast/dom/HTMLTemplateElement/cloneNode.html
               fast/dom/HTMLTemplateElement/inertContents.html
               fast/dom/HTMLTemplateElement/innerHTML.html
               fast/dom/HTMLTemplateElement/ownerDocument.html
               html5lib/run-template.html

        * WebCore.gypi:
        * css/html.css:
        (template):
        * dom/Document.cpp:
        (WebCore):
        (WebCore::Document::templateContentsOwnerDocument):
        * dom/Document.h:
        (Document):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
        * html/HTMLElement.h:
        (HTMLElement):
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLTagNames.in:
        * html/HTMLTemplateElement.cpp: Added.
        (WebCore):
        (WebCore::HTMLTemplateElement::HTMLTemplateElement):
        (WebCore::HTMLTemplateElement::setInnerHTML):
        (WebCore::HTMLTemplateElement::~HTMLTemplateElement):
        (WebCore::HTMLTemplateElement::create):
        (WebCore::HTMLTemplateElement::content):
        (WebCore::HTMLTemplateElement::setContent):
        (WebCore::toHTMLTemplateElement):
        * html/HTMLTemplateElement.h: Added.
        (WebCore):
        (HTMLTemplateElement):
        (WebCore::toHTMLTemplateElement):
        * html/HTMLTemplateElement.idl: Added.
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::executeTask):
        (WebCore::HTMLConstructionSite::insertComment):
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::createElement):
        (WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
        (WebCore):
        (WebCore::HTMLConstructionSite::createHTMLElement):
        (WebCore::HTMLConstructionSite::findFosterSite):
        * html/parser/HTMLConstructionSite.h:
        (HTMLConstructionSite):
        * html/parser/HTMLElementStack.cpp:
        (WebCore):
        (WebCore::HTMLElementStack::hasTemplateInHTMLScope):
        * html/parser/HTMLElementStack.h:
        (HTMLElementStack):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::constructTreeFromToken):
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore):
        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
        (WebCore::HTMLTreeBuilder::processStartTagForInTable):
        (WebCore::HTMLTreeBuilder::processStartTag):
        (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
        (WebCore::HTMLTreeBuilder::processEndTagForInRow):
        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
        (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
        (WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
        (WebCore::HTMLTreeBuilder::processEndOfFile):
        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
        * html/parser/HTMLTreeBuilder.h:
        (HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::isParsingTemplateContents):
        (WebCore::HTMLTreeBuilder::isParsingFragmentOrTemplateContents):
        * page/DOMWindow.idl:

2012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136460.
        http://trac.webkit.org/changeset/136460
        https://bugs.webkit.org/show_bug.cgi?id=103958

        This patch caused compile error when building DumpRenderTree
        (Requested by tasak on #webkit).

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/chromium/PlatformThemeChromiumLinux.cpp: Added.
        (WebCore):
        (WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
        (WebCore::clamp):
        (WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
        (WebCore::PlatformThemeChromiumLinux::outlineColor):
        (WebCore::PlatformThemeChromiumLinux::paintArrowButton):
        * platform/chromium/PlatformThemeChromiumLinux.h: Added.
        (WebCore):
        (PlatformThemeChromiumLinux):
        (WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
        (WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
        (WebCore::PlatformThemeChromiumLinux::trackColor):
        (WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Added.
        (WebCore):
        (WebCore::ScrollbarTheme::nativeTheme):
        (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
        (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
        (WebCore::ScrollbarThemeChromiumLinux::paintButton):
        (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
        (WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
        (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
        (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
        * platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
        (ScrollbarThemeChromiumLinux):
        * rendering/RenderThemeChromiumAndroid.cpp:
        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet):
        * rendering/RenderThemeChromiumAndroid.h:
        * rendering/RenderThemeChromiumLinux.cpp: Added.
        (WebCore):
        (WebCore::getWebThemeState):
        (WebCore::RenderThemeChromiumLinux::create):
        (WebCore::RenderTheme::themeForPage):
        (WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
        (WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
        (WebCore::RenderThemeChromiumLinux::systemColor):
        (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
        (WebCore::RenderThemeChromiumLinux::controlSupportsTints):
        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionForegroundColor):
        (WebCore::RenderThemeChromiumLinux::sliderTickSize):
        (WebCore::RenderThemeChromiumLinux::sliderTickOffsetFromTrackCenter):
        (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
        (WebCore::RenderThemeChromiumLinux::supportsControlTints):
        (WebCore::RenderThemeChromiumLinux::setCaretBlinkInterval):
        (WebCore::RenderThemeChromiumLinux::caretBlinkIntervalInternal):
        (WebCore::RenderThemeChromiumLinux::setSelectionColors):
        (WebCore::RenderThemeChromiumLinux::paintCheckbox):
        (WebCore::RenderThemeChromiumLinux::setCheckboxSize):
        (WebCore::RenderThemeChromiumLinux::paintRadio):
        (WebCore::RenderThemeChromiumLinux::setRadioSize):
        (WebCore::RenderThemeChromiumLinux::paintButton):
        (WebCore::RenderThemeChromiumLinux::paintTextField):
        (WebCore::RenderThemeChromiumLinux::paintMenuList):
        (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
        (WebCore::RenderThemeChromiumLinux::paintSliderThumb):
        (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
        (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
        (WebCore::RenderThemeChromiumLinux::paintProgressBar):
        (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key):
        * rendering/RenderThemeChromiumLinux.h: Added.
        (WebCore):
        (RenderThemeChromiumLinux):

2012-12-03  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Support paddings and margins on grid items
        https://bugs.webkit.org/show_bug.cgi?id=103677

        Reviewed by Tony Chang.

        After bug 102968, we properly resolve grid items' width and height against the
        grid areas' sizes. However we didn't check for paddings and margins, which is
        what this change fixes..

        Test: fast/css-grid-layout/percent-padding-margin-resolution-grid-item.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeLogicalWidthInRegion):
        Don't stretch the end margin to match the containing block's extent.
        The fix is similar to what was done for flex-box in bug 65887.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
        Added a comment about not using containingBlockLogicalWidthForContent.

        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
        Updated these functions to use containingBlockLogicalWidthForContent.

        * rendering/RenderGrid.h:
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isRenderGrid):
        Added isRenderGrid.

2012-12-03  Scott Violet  <sky@chromium.org>

        [chromium] Remove linux theme related files and switch to default
        https://bugs.webkit.org/show_bug.cgi?id=103897

        Reviewed by Darin Fisher.

        linux theme related files are now named default. This removes
        linux theme files, updates build files and removes ifdefs.

        Code cleanup, no new tests.

        * WebCore.gyp/WebCore.gyp: Update build rules
        * WebCore.gypi: Update build rules
        * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
        * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
        * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
        * rendering/RenderThemeChromiumAndroid.h: Change superclass
        * rendering/RenderThemeChromiumAndroid.cpp: Change call to superclass
        * rendering/RenderThemeChromiumLinux.cpp: Removed.
        * rendering/RenderThemeChromiumLinux.h: Removed.

2012-12-03  Pierre Rossi  <pierre.rossi@digia.com>

        [Qt] Unreviewed build fix after r136410

        When building without libjpeg, take JPEGImageDecoder's header out, since it now includes libjpeg.h.

        * Target.pri: conditionally add JPEGImageDecoder.h to HEADERS
        * platform/image-decoders/ImageDecoder.cpp: guard JPEGImageDecoder.h's include

2012-12-03  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        [EFL][Qt][WK2] Fixed position elements are not always fixed
        https://bugs.webkit.org/show_bug.cgi?id=103452

        Reviewed by Simon Fraser.

        The code figuring out whether fixed position layers are inside
        the visible viewport, assumes that the visible viewport is always
        the size of the layout viewport. This assumption doesn't hold with
        how the Qt and EFL tiled backing store and coordinated graphics
        works, so instead using the visibleContentsRect(), which provides
        the right values in all cases.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

            Use visibleContentsRect instead of scrollOffsetForFixedPosition().

            scrollOffsetForFixedPosition() is needed sometimes in the Mac code
            because visibleContentRect() will return negative offsets when you
            are in the rubber-band phase of a scroll on the Mac.

            However that is not an issue here.

2012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135271.
        http://trac.webkit.org/changeset/135271
        https://bugs.webkit.org/show_bug.cgi?id=103940

        Some user stylesheet API clients broken (Requested by anttik
        on #webkit).

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
        (WebCore::collectCSSOMWrappers):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/Document.cpp:
        (WebCore::Document::setCompatibilityMode):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::pageUserSheet):
        (WebCore::DocumentStyleSheetCollection::clearPageUserSheet):
        (WebCore::DocumentStyleSheetCollection::updatePageUserSheet):
        (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.h:
        (DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
        * page/Page.cpp:
        (WebCore::Page::userStyleSheetLocationChanged):

2012-11-30  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: make it possible to fliter out messages from console.{time,timeEnd}()
        https://bugs.webkit.org/show_bug.cgi?id=103781

        Reviewed by Yury Semikhatsky.

        - make console messages produced by console.timeEnd() TimingMessageType & DebugMessageLevel;
        - add console filter for Debug messages;

        * inspector/ConsoleMessage.cpp:
        (WebCore::messageTypeValue):
        * inspector/Inspector.json:
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::stopTiming):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype.):
        (WebInspector.ConsoleView.prototype.filter):
        * inspector/front-end/inspector.css:
        (.console-warning-level, .console-error-level, .console-log-level, .console-debug-level):
        (.filter-all .console-debug-level, .filter-debug .console-debug-level):
        (.filter-all .console-debug-level.repeated-message, .filter-debug .console-debug-level.repeated-message):
        * page/ConsoleTypes.h:

2012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136444.
        http://trac.webkit.org/changeset/136444
        https://bugs.webkit.org/show_bug.cgi?id=103938

        broke chromium build (Requested by zhenyao_wfh on #webkit).

        * Target.pri:
        * platform/image-decoders/ImageDecoder.cpp:

2012-12-03  Pierre Rossi  <pierre.rossi@digia.com>

        [Qt] Unreviewed build fix after r136410

        When building without libjpeg, take JPEGImageDecoder's header out, since it now includes libjpeg.h.

        * Target.pri: conditionally add JPEGImageDecoder.h to HEADERS
        * platform/image-decoders/ImageDecoder.cpp: guard JPEGImageDecoder.h's include

2012-11-30  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] Record and report initiator
        https://bugs.webkit.org/show_bug.cgi?id=103777

        Reviewed by Nate Chapin.

        This will start populating the Resource Timing buffer with entries. The initiator will be
        recorded for each CachedResourceLoader. This should match the next update of the spec.

        Tests: http/tests/w3c/webperf/submission/resource-timing

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::beginLoadTimerFired):
        * loader/ResourceLoadNotifier.cpp: Always record timing information if ENABLE(RESOURCE_TIMING).
        (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::releaseResources): Report the actual resource that called loadDone().
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::loadResource): Record the initiator.
        (WebCore::CachedResourceLoader::loadDone): Record the entry in Resource Timing.
        * loader/cache/CachedResourceLoader.h:
        (CachedResourceLoader):
        (InitiatorInfo):

2012-12-03  Florin Malita  <fmalita@chromium.org>

        [Skia] Deferred SkCanvas save()
        https://bugs.webkit.org/show_bug.cgi?id=102272

        Reviewed by Stephen White.

        Implement a lazy save() strategy: instead of delegating to the canvas upfront, defer and
        only commit when a clip/matrix mutation is observed.

        The patch yields a 1-20% SkCanvas save/restore reduction for heavy pages, with much larger
        gains observed for deeply nested SVG content.

        No new tests: no behaviour changes, coverage provided by existing tests.

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::canvasClip):
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore):
        (WebCore::PlatformContextSkia::DeferredSaveState::DeferredSaveState):
        (PlatformContextSkia::DeferredSaveState):
        (WebCore::PlatformContextSkia::PlatformContextSkia):
        (WebCore::PlatformContextSkia::save):
        (WebCore::PlatformContextSkia::saveLayer):
        (WebCore::PlatformContextSkia::beginLayerClippedToImage):
        (WebCore::PlatformContextSkia::restore):
        (WebCore::PlatformContextSkia::applyClipFromImage):
        * platform/graphics/skia/PlatformContextSkia.h:
        (PlatformContextSkia):
        (WebCore::PlatformContextSkia::realizeSave):
        (WebCore):
        (WebCore::PlatformContextSkia::canvas):
        (WebCore::PlatformContextSkia::clipPath):
        (WebCore::PlatformContextSkia::clipRect):
        (WebCore::PlatformContextSkia::setMatrix):
        (WebCore::PlatformContextSkia::concat):
        (WebCore::PlatformContextSkia::rotate):
        (WebCore::PlatformContextSkia::scale):
        (WebCore::PlatformContextSkia::translate):

2012-12-03  Simon Fraser  <simon.fraser@apple.com>

        When animating mask-postion on a composited layer, element renders incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=103700

        Reviewed by Tim Horton.

        When a composited layer has a mask, we clipped the layer bounds to the
        size of the mask. This caused problems when animating the mask origin,
        which is considered a 'repaint' style change and so should not require
        layout or compositing geometry changes.
        
        Fix by ignoring the mask when computing the bounds of the compositing
        layer.

        Test: compositing/masks/mask-layer-size.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::localBoundingBox):
        (WebCore::RenderLayer::calculateLayerBounds):
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds):

2012-12-03  Xan Lopez  <xan@igalia.com>

        [CSS Grid Layout] Support <percentage> and viewport-relative breadth sizes
        https://bugs.webkit.org/show_bug.cgi?id=103335

        Reviewed by Julien Chaffraix.

        Test: fast/css-grid-layout/breadth-size-resolution-grid.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridTrackBreadth): Support the new types.
        (WebCore::valueForGridTrackMinMax): Modify the call to previous
        method, since the signature has changed.
        (WebCore::valueForGridTrackGroup): Ditto.
        (WebCore::valueForGridTrackList): Ditto.
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Ditto.
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Suport
        percent and viewport relative types, calc() will be supported in a
        follow up (see bug #103761)

2012-12-03  Peter Rybin  <prybin@chromium.org>

        Web Inspector: make ASSERTION FAILED: foundPropertiesCount == object->size() more useful
        https://bugs.webkit.org/show_bug.cgi?id=103254

        Reviewed by Pavel Feldman.

        Assert code generation is slightly changed so that it dumped JSON object text before crashing.

        * inspector/CodeGeneratorInspector.py:

2012-12-03  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Do not clamp indirect array indices during CSS Shaders ANGLE validation pass
        https://bugs.webkit.org/show_bug.cgi?id=102731

        Reviewed by Dean Jackson.

        Before this patch, we validated all shaders with the compile flag
        SH_CLAMP_INDIRECT_ARRAY_BOUNDS in ANGLEWebKitBridge. This would insert a GLSL function
        "webgl_int_clamp" in validated CSS shaders. However, when validated CSS shaders would pass
        through ANGLE again at the GC3D level, ANGLE would reject them because they would contain
        the "webgl_" restricted prefix.

        Now, we only pass the compile flag SH_CLAMP_INDIRECT_ARRAY_BOUNDS at the GC3D level.

        Test: css3/filters/custom/custom-filter-array-uniform-indirect-index.html

        * platform/graphics/ANGLEWebKitBridge.cpp:
        (WebCore::ANGLEWebKitBridge::compileShaderSource):
            Remove the SH_CLAMP_INDIRECT_ARRAY_BOUNDS compile flag.
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::compiledProgram):
            Add an assert that validated programs compile at the GC3D or platform level to help us
            catch validation and rewriting issues.
        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
            Pass the SH_CLAMP_INDIRECT_ARRAY_BOUNDS to compileShaderSource.

2012-12-03  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Make main-thread monitoring go through InspectorController
        https://bugs.webkit.org/show_bug.cgi?id=103550

        Reviewed by Pavel Feldman.

        InspectorInstrumentation was a wrong path.

        * inspector/InspectorClient.h: Remove start/stop methods.
        * inspector/InspectorController.cpp:
        Dispatch main thread activity notifications.
        * inspector/InspectorController.h: Ditto.
        * inspector/InspectorInstrumentation.cpp: Remove dispatchng.
        * inspector/InspectorInstrumentation.h: Ditto.
        * inspector/InspectorTimelineAgent.cpp:
        Do not subscribe for notifications explicitly.

2012-12-03  Philip Rogers  <pdr@google.com>

        Invalidate SVG width on width attribute changes.
        https://bugs.webkit.org/show_bug.cgi?id=103304

        Reviewed by Dirk Schulze.

        An inline SVG element's replaced width can depend on both attributes and style properties.
        After r105513, we invalidated this width on style changes but not attribute changes. With
        this patch we invalidate the replaced width on width attribute changes too. Note that height
        is handled differently for replaced elements so only the width attribute needs this handling
        (the added test covers this too).

        Test: svg/custom/root-size-attribute-changes.html

        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::svgAttributeChanged):

2012-12-03  Alec Flett  <alecflett@chromium.org>

        IndexedDB: remove IDBDatabaseBackendInterface::transaction()
        https://bugs.webkit.org/show_bug.cgi?id=102733

        Reviewed by Darin Fisher.

        Part 3 of a refactor, remove the old transaction() method.

        No new tests as this is just post-refactor cleanup.

        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):

2012-12-03  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] show replay screenshot of the last call's canvas
        https://bugs.webkit.org/show_bug.cgi?id=103739

        Reviewed by Pavel Feldman.

        When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
        Meanwhile, show the screenshot of the last-touched canvas during the current replay.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-12-03  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Rename exception enum members from UGLY_ERR to PrettyError
        https://bugs.webkit.org/show_bug.cgi?id=103759

        Reviewed by Darin Fisher.

        Now that IDBDatabaseException isn't exposed to script with constants, the exception types
        can be renamed to match the much friendlier names used in newer iterations of the spec. Also
        remove the legacy/unused types.

        No new tests, just constant renames.

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::update):
        (WebCore::IDBCursor::advance):
        (WebCore::IDBCursor::continueFunction):
        (WebCore::IDBCursor::deleteFunction):
        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::continueFunction):
        (WebCore::IDBCursorBackendImpl::advance):
        (WebCore::IDBCursorBackendImpl::prefetchContinue):
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
        (WebCore::IDBDatabaseBackendImpl::close):
        * Modules/indexeddb/IDBDatabaseException.cpp: Tidying and renaming.
        (WebCore):
        (WebCore::getErrorEntry):
        * Modules/indexeddb/IDBDatabaseException.h:
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::cmp):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
        (WebCore::IDBFactoryBackendImpl::open):
        * Modules/indexeddb/IDBIndex.cpp:
        (WebCore::IDBIndex::openCursor):
        (WebCore::IDBIndex::count):
        (WebCore::IDBIndex::openKeyCursor):
        (WebCore::IDBIndex::get):
        (WebCore::IDBIndex::getKey):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::openCursor):
        (WebCore::IDBIndexBackendImpl::openKeyCursor):
        (WebCore::IDBIndexBackendImpl::count):
        (WebCore::IDBIndexBackendImpl::get):
        (WebCore::IDBIndexBackendImpl::getKey):
        * Modules/indexeddb/IDBKeyRange.cpp:
        (WebCore::IDBKeyRange::only):
        (WebCore::IDBKeyRange::lowerBound):
        (WebCore::IDBKeyRange::upperBound):
        (WebCore::IDBKeyRange::bound):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::get):
        (WebCore::IDBObjectStore::put):
        (WebCore::IDBObjectStore::deleteFunction):
        (WebCore::IDBObjectStore::clear):
        (WebCore):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        (WebCore::IDBObjectStore::openCursor):
        (WebCore::IDBObjectStore::count):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::get):
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
        (WebCore::IDBObjectStoreBackendImpl::clear):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        (WebCore::IDBObjectStoreBackendImpl::openCursor):
        (WebCore::IDBObjectStoreBackendImpl::count):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::result):
        (WebCore::IDBRequest::error):
        (WebCore::IDBRequest::errorCode):
        (WebCore::IDBRequest::webkitErrorMessage):
        (WebCore::IDBRequest::abort):
        (WebCore::IDBRequest::dispatchEvent):
        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::objectStore):
        (WebCore::IDBTransaction::abort):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::objectStore):
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):

2012-12-03  Alexis Menard  <alexis@webkit.org>

        [Mac] Enable CSS3 background-position offset by default.
        https://bugs.webkit.org/show_bug.cgi?id=103905

        Reviewed by Simon Fraser.

        Turn the flag on by default.

        No new tests : covered by tests landed previously.

        * Configurations/FeatureDefines.xcconfig:
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapFillXPosition): Build fix in release on Mac with unused variable.
        (WebCore::CSSToStyleMap::mapFillYPosition): Ditto.

2012-12-03  Jan Keromnes  <janx@linux.com>

        Web Inspector: Implement context menus in CodeMirrorTextEditor
        https://bugs.webkit.org/show_bug.cgi?id=94062

        Reviewed by Pavel Feldman.

        Listen for contextmenu events in the editor and handle them differently
        if triggered on gutter line number or in text body. This adds controls
        for breakpoints (including disabled / conditional), debugger navigation
        and text input methods.

        * inspector/front-end/CodeMirrorTextEditor.js:
        (WebInspector.CodeMirrorTextEditor):
        (WebInspector.CodeMirrorTextEditor.prototype._contextMenu):

2012-12-03  Nate Chapin  <japhet@chromium.org>

        Make MainResourceLoader not use m_frame directly.
        https://bugs.webkit.org/show_bug.cgi?id=103907

        Reviewed by Darin Adler.

        MainResourceLoader will soon cease to be a ResourceLoader subclass.  It currently
        makes extensively use of both m_documentLoader and m_frame from ResourceLoader.
        By moving everything over to going through m_documentLoader, we reduce the number
        of members we have to add to MainResourceLoader in https://bugs.webkit.org/show_bug.cgi?id=49246.

        No new tests, refactor only.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::MainResourceLoader):
        (WebCore::MainResourceLoader::create):
        (WebCore::MainResourceLoader::receivedError):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::continueAfterContentPolicy):
        (WebCore::MainResourceLoader::didReceiveResponse):
        (WebCore::MainResourceLoader::didReceiveData):
        (WebCore::MainResourceLoader::startDataLoadTimer):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):

2012-12-03  Anton Vayvod  <avayvod@chromium.org>

        Text Autosizing: don't autosize horizontal menu items implemented via floating list items
        https://bugs.webkit.org/show_bug.cgi?id=103840

        Reviewed by Kenneth Rohde Christiansen.

        Floating list items are often used to implement horizontal menus. Currently, text autosizing 
        disregards such elements as autosizing containers. List items are often then autosized as part
        of a bigger cluster (usually the whole page) and look too big.
        This change turns floating list items into autosizing clusters so they are autosized separately
        resulting in no font size multiplication for menu items implemented in this manner.

        Test: fast/text-autosizing/cluster-list-item.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::isAutosizingContainer): Returns true for floating list items; split the
        condition logically.

2012-12-03  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        Optimization in image decoding
        https://bugs.webkit.org/show_bug.cgi?id=88424

        Reviewed by Brent Fulgham.

        Replace int with J_COLOR_SPACE in parameters of templates setPixel and
        outputScanlines to avoid casting from int to enum. It required move 
        inclusion of jpeglib.h and related #if to JPEGImageDecoder.h .

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore):
        (WebCore::setPixel):
        (WebCore::JPEGImageDecoder::outputScanlines):
        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
        (JPEGImageDecoder):

2012-12-03  Tony Chang  <tony@chromium.org>

        [mathml] Improve performance of nested sup or sub elements
        https://bugs.webkit.org/show_bug.cgi?id=103665

        Reviewed by Darin Adler.

        Reduce the number of extra layouts. Since RenderMathMLSubSup calls
        layout twice, this can lead to an exponential number of layouts. Avoid
        extra layouts.

        Test: mathml/presentation/sup-nested.html - Should not time out.

        * css/mathml.css:
        (msup): Stretching children also causes extra layouts. Avoid this by aligning to the top.
        (msub): Same as msup, but align to the bottom.
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::layout): Only do the second layout if the padding changed.
        Also fix up the calls to setNeedsLayout (since we're calling it on this) and
        setChildNeedsLayout (since we're calling it on a child).

2012-12-03  Konrad Piascik  <kpiascik@rim.com>

        Web Inspector: free Page resources on inspector disconnect
        https://bugs.webkit.org/show_bug.cgi?id=103888

        Reviewed by Yury Semikhatsky.

        We don't need to keep the page around and can free up memory when disconnecting web inspector.

        Not testable.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::disconnectFrontend):
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::freePage):
        (WebCore):
        * inspector/InspectorOverlay.h:
        (InspectorOverlay):

2012-12-03  Alexis Menard  <alexis@webkit.org>

        [GTK] Enable CSS3 background-background position offset by default.
        https://bugs.webkit.org/show_bug.cgi?id=103903

        Reviewed by Philippe Normand.

        Turn the feature on by default.

        No new tests : covered by tests already landed.

        * GNUmakefile.features.am:

2012-12-03  Hajime Morrita  <morrita@google.com>

        Corrupted DOM tree during appendChild/insertBefore
        https://bugs.webkit.org/show_bug.cgi?id=103601

        Reviewed by Abhishek Arya.

        There are some missing protection in appendChild() and insertBefore().
        This change added these.

        Dromaeo dom-modify shows no speed regression (5445run/s before vs 5351run/s after)

        Tests: fast/events/mutation-during-append-child.html
               fast/events/mutation-during-insert-before.html

        * dom/ContainerNode.cpp:
        (WebCore::checkAcceptChildGuaranteedNodeTypes):
        (WebCore):
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::appendChild):

2012-12-03  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>

        Document::initSecurityContext() fails to call securityOrigin().grantLoadLocalResources()
        https://bugs.webkit.org/show_bug.cgi?id=68711

        Reviewed by Adam Barth.

        It currently fails since Document::loader() will return 0 until
        Frame::setDocument is called and we are doing this check before it happens.

        Delay the check and let the FrameLoader take care of doing grantLoadLocalResources()
        on the Document along with other header checks in FrameLoader::didBeginDocument.

        * dom/Document.cpp:
        (WebCore::Document::initSecurityContext):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didBeginDocument):

2012-12-03  Yong Li  <yoli@rim.com>

        ENABLE(IMAGE_DECODER_DOWN_SAMPLING): Should use TURBO_JPEG_RGB_SWIZZLE fast path for non-scaled images
        https://bugs.webkit.org/show_bug.cgi?id=103749

        Reviewed by Rob Buis.

        Replace !ENABLE(IMAGE_DECODER_DOWN_SAMPLING) with !m_scaled.

        No new tests as existing jpegs are good with IMAGE_DECODER_DOWN_SAMPLING set up.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageDecoder::outputScanlines):

2012-12-03  Tommy Widenflycht  <tommyw@google.com>

        Speech Recognition API: Update SpeechRecognitionEvent to match the specification
        https://bugs.webkit.org/show_bug.cgi?id=103407

        Reviewed by Kentaro Hara.

        Specification for the Speech Recognition API:
        http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html

        This patch does the following:
        o Adds results, and removing result, on SpeechRecognitionEvent
        o Renaming SpeechRecognitionResult::final to isFinal
        o Removing emma from SpeechRecognitionResult

        The emma attribute is supposed to move from SpeechRecognitionResult to the SpeechRecognitionEvent,
        but that caused GC issues for unrelated code so it will be added later when properly fixed.

        Existing tests updated to test the new API.

        * Modules/speech/SpeechRecognition.cpp:
        (WebCore::SpeechRecognition::start):
        (WebCore::SpeechRecognition::didReceiveResults):
        (WebCore):
        * Modules/speech/SpeechRecognition.h:
        (SpeechRecognition):
        * Modules/speech/SpeechRecognitionEvent.cpp:
        (WebCore::SpeechRecognitionEvent::createResult):
        (WebCore):
        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
        (WebCore::SpeechRecognitionEvent::~SpeechRecognitionEvent):
        * Modules/speech/SpeechRecognitionEvent.h:
        (SpeechRecognitionEventInit):
        (SpeechRecognitionEvent):
        (WebCore::SpeechRecognitionEvent::resultIndex):
        (WebCore::SpeechRecognitionEvent::results):
        * Modules/speech/SpeechRecognitionEvent.idl:
        * Modules/speech/SpeechRecognitionResult.cpp:
        * Modules/speech/SpeechRecognitionResult.h:
        (WebCore::SpeechRecognitionResult::isFinal):
        (SpeechRecognitionResult):
        * Modules/speech/SpeechRecognitionResult.idl:
        * WebCore.gypi:
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue):
        (WebCore):
        * bindings/js/JSDictionary.h:
        * bindings/v8/Dictionary.cpp:
        (WebCore::Dictionary::get):
        (WebCore):
        * bindings/v8/Dictionary.h:
        (Dictionary):
        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp: Removed.

2012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136377.
        http://trac.webkit.org/changeset/136377
        https://bugs.webkit.org/show_bug.cgi?id=103881

        Causes crashes on debug builds that use JSC. (Requested by
        mkwst on #webkit).

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::didFailSocketStream):
        * css/MediaList.cpp:
        (WebCore::addResolutionWarningMessageToConsole):
        * dom/Document.cpp:
        (WebCore::Document::logExceptionToConsole):
        (WebCore::Document::processHttpEquiv):
        * dom/Document.h:
        (Document):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
        * dom/ViewportArguments.cpp:
        (WebCore):
        (WebCore::parserLineNumber):
        (WebCore::reportViewportWarning):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::validateInteractively):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseAttribute):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::printWarningToConsole):
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::ConsoleMessage):
        * inspector/ConsoleMessage.h:
        (ConsoleMessage):
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::enable):
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
        (WebCore::InspectorConsoleAgent::count):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
        * page/Console.cpp:
        * page/Console.h:
        (Console):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::printErrorMessage):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore):
        (WebCore::parserLineNumber):
        (WebCore::reportMessage):
        * workers/WorkerContext.cpp:
        * workers/WorkerContext.h:
        (WorkerContext):

2012-12-03  Kihong Kwon  <kihong.kwon@samsung.com>

        Remove useless included header and change position of Proximity Events test cases
        https://bugs.webkit.org/show_bug.cgi?id=103871

        Reviewed by Antonio Gomes.

        Remove useless included header from DeviceProximityEvent.cpp.

        No new tests, It is just code refactoring.

        * Modules/proximity/DeviceProximityEvent.cpp:

2012-12-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>

        [GStreamer] initial volume events on media elements should happen earlier
        https://bugs.webkit.org/show_bug.cgi?id=96912

        Reviewed by Philippe Normand.

        Update mediaelement volume and mute properties to whatever values
        playbin has as soon as possible (when the playbin reaches PAUSED state).
        This will improve user experience as the volume visuals won't suddenly
        change when user clicks play.

        No new tests: media/event-attributes.html already tests media events.
        Unfortunately this test is flaky on EFL and GTK (more specifically
        it is flaky on pulseaudio-using gstreamer platforms: http://webkit.org/b/83704).

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::load):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        (MediaPlayerPrivateGStreamer):

2012-12-03  Alexis Menard  <alexis@webkit.org>

        Unreviewed build fix after r136378.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore):
        (WebCore::CSSPrimitiveValue::operator BackgroundEdgeOrigin):

2012-12-03  Alexis Menard  <alexis@webkit.org>

        [CSS3 Backgrounds and Borders] Implement CSS3 background-position offsets rendering.
        https://bugs.webkit.org/show_bug.cgi?id=103440

        Reviewed by Julien Chaffraix.

        Add the rendering bits of the new background-position offsets. It adds
        new bits in FillLayer to store the edges used to position the
        background. The old x and y members are used the same way as before, to
        store the value of the offset.

        Test: fast/backgrounds/background-position-rendering.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::createPositionListForLayer): Refactor into a function the
        code duplicated in getPropertyCSSValue to avoid more code
        duplication.
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore):
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        Add implicit conversion from the enums used in the rendering code to
        CSS values.
        (WebCore::CSSPrimitiveValue::operator BackgroundEdgeOrigin):
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapFillXPosition):
        (WebCore::CSSToStyleMap::mapFillYPosition):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Add
        support for the new positioning and refactor a little naming of the
        variables for better readability.
        * rendering/style/FillLayer.cpp:
        (SameSizeAsFillLayer):
        (WebCore::FillLayer::FillLayer):
        (WebCore::FillLayer::operator=):
        (WebCore::FillLayer::operator==):
        (WebCore::FillLayer::fillUnsetProperties):
        (WebCore::FillLayer::fillUnsetProperties): When filling the layer with
        unset properties make sure we also set the x and y origins of the
        background in case they were set.
        * rendering/style/FillLayer.h:
        (WebCore::FillLayer::backgroundXOrigin):
        (WebCore::FillLayer::backgroundYOrigin):
        (WebCore::FillLayer::isBackgroundOriginSet):
        (FillLayer):
        (WebCore::FillLayer::setBackgroundXOrigin):
        (WebCore::FillLayer::setBackgroundYOrigin):
        (WebCore::FillLayer::clearPositionX):
        (WebCore::FillLayer::clearPositionY):
        * rendering/style/RenderStyleConstants.h:

2012-12-03  Mike West  <mkwst@chromium.org>

        Web Inspector: Autogenerate stack traces and line numbers when possible.
        https://bugs.webkit.org/show_bug.cgi?id=100650

        Reviewed by Yury Semikhatsky.

        Console messages generated in WebCore generally are asked to do a bit of
        work in order to provide a developer with a detailed report. We ask the
        caller to either generate stack traces, or pass in a url/line number
        pair, which can be a bit of work. Predictably, most callers don't pass
        in what we'd like to see.

        This patch creates a new, simpler console message generation API that we
        expect most call sites to use. Source, type, level, and message are
        required, and an optional request ID can be passed in. Everything else
        will be autogenerated inside ConsoleMessage when appropriate.

        In a subsequent patch, we expect to be able to trim down more of the
        external call sites (ContentSecurityPolicy springs to mind) in order to
        further consolidate the external interface. Simple is good.

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::didFailSocketStream):
            Drop the now-redundant URL parameter from various WebSocket errors.
        * css/MediaList.cpp:
        (WebCore::addResolutionWarningMessageToConsole):
            Switch to Document::addConsoleMessage, which means that we can move
            line-number generation out of MediaList.
        * dom/Document.cpp:
        (WebCore::Document::logExceptionToConsole):
            Use the long-form 'addMessage()' rather than the public interface.
        (WebCore::Document::processHttpEquiv):
            Drop the URL parameter, as it's now autogenerated.
        (WebCore::Document::addConsoleMessage):
        (WebCore):
        * dom/Document.h:
        (Document):
            Override the pure virtual method on ScriptExecutionContext, and pass
            the call through to the new Console::addMessage, which accepts a
            pointer to the Document in order to do line-number generation.
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
            Add a pure virtual variant of addConsoleMessage which accepts only
            bare minimum data, and expects autogeneration of the rest.
            Additionally, ensure that the other variants always have either a
            URL/line number, or a stack trace.
        * dom/ViewportArguments.cpp:
        (WebCore::reportViewportWarning):
            Drop line numbers and URLs from Viewport warnings. We can generate
            these now.
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::validateInteractively):
            Drop the URL from form autofocus warnings
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseAttribute):
            Drop the URL and line from sandbox attribute warnings.
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::printWarningToConsole):
            Drop the URL from WebGL warnings.
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::ConsoleMessage):
            Call 'autogenerateMetadata' to ensure that a stack trace is
            generated if one isn't provided. Create a new constructor that
            accepts a ScriptState/ScriptArguments pair, and use it for console
            API calls.
        (WebCore):
        (WebCore::ConsoleMessage::autogenerateMetadata):
            Generate a stack trace given whatever information we've got.
        * inspector/ConsoleMessage.h:
        (ConsoleMessage):
            Create a new constructor that accepts a ScriptState/ScriptArguments
            pair, and use it for console API calls.
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::enable):
            Use the short-form ConsoleMessage constructor.
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
            Use the stack-only constructor, or the ScriptState
            constructor, as appropriate.
        (WebCore::InspectorConsoleAgent::count):
            We generated a stack, pass it in.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
            Drop the URL parameter from the console message for X-Frame-Options
            parsing errors.
        * page/Console.cpp:
        (WebCore::Console::addMessage):
            When given a Document*, generate a line number if: 1) the document
            is still being parsed, 2) the document is not in document.write(),
            3) the parser isn't waiting for script, and 4) the parser isn't
            executing script. Many callsites didn't check all of these, which
            is why the SVG rebaseline (for example) drops lots and lots of line
            numbers which point at a closing '</script>' tag.
        (WebCore):
        * page/Console.h:
        (WebCore):
        (Console):
            Update the public API to accept a Document* and little else.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::printErrorMessage):
            Don't generate a stack here. We can do it later.
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::reportMessage):
            Drop the URL and line number. We'll generate them. It'll be sweet.
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::addConsoleMessage):
            Generate a stack here, as we likely won't have the context to do
            so later. Pass it through.
        (WebCore):
        * workers/WorkerContext.h:
        (WorkerContext):
            Implement the new addConsoleMessage variant.

2012-12-03  Gabor Rapcsanyi  <rgabor@webkit.org>

        [Qt] Remove an unnecessary masking from swapBgrToRgb()
        https://bugs.webkit.org/show_bug.cgi?id=103630

        Reviewed by Zoltan Herczeg.

        Get rid of a masking command in swapBgrToRgb() to speed up a little bit.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::swapBgrToRgb):

2012-12-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        CSS Device Adaptation: window.innerWidth returns wrong value if CSS viewport descriptors are applied
        https://bugs.webkit.org/show_bug.cgi?id=103737

        Reviewed by Kenneth Rohde Christiansen.

        ViewportStyleResolver used frame view visibleContentRect size as initial viewport size.
        This however caused a problem when page enabled/disabled CSS stylesheets, having viewport
        descriptors. Viewport descriptors from new stylesheet were applied to the visibleContentRect
        affected already by the viewport descriptors from the previous stylesheet.

        New 'initialViewportSize' property (http://dev.w3.org/csswg/css-device-adapt/#initial-viewport)
        was added to frame view so that viewport descriptors can always be applied to the reliable
        viewport size.

        Test: css3/device-adapt/viewport-width-check-window-innerwidth-correct.html

        * css/ViewportStyleResolver.cpp:
        (WebCore::ViewportStyleResolver::ViewportStyleResolver):
        (WebCore::ViewportStyleResolver::getViewportArgumentValue):
        * css/ViewportStyleResolver.h:
        (ViewportStyleResolver):
        * dom/Document.cpp:
        (WebCore):
        (WebCore::Document::initialViewportSize):
        * dom/Document.h:
        (Document):
        * page/FrameView.h:
        (FrameView):
        (WebCore::FrameView::initialViewportSize):
        (WebCore::FrameView::setInitialViewportSize):

2012-12-03  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Retain selector case as written in the source code
        https://bugs.webkit.org/show_bug.cgi?id=103118

        Reviewed by Antti Koivisto.

        This change:
        - adds parsing of selector group components in the CSSParser;
        - builds the SelectorList.selectors based on the source code whenever possible.
          Strips [multiline] comments and whitespace;
        - adds the MultilineMode to RegularExpression.

        Test: inspector/styles/selector-list.html

        * WebCore.exp.in: Update the exported symbol.
        * css/CSSGrammar.y.in: Add invocations for CSSParser::markSelector[Start|End]() as required.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::markSelectorStart): Gets invoked to mark a selector group item start offset.
        (WebCore::CSSParser::markSelectorEnd): Ditto for the end offset.
        * css/CSSParser.h: Add new methods and a SourceRange tracking field.
        * css/CSSPropertySourceData.h: Add SelectorRangeList to the CSSRuleSourceData.
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::selectorsFromSource): Builds the SelectorList based on the underlying source data.
        Strips comments and whitespace from selectors.
        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
        Builds SelectorList based on the availability of the source code.
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype._markSelectorMatches):
        Update selectors in all cases to make use of the source-based information whenever possible.
        * platform/text/RegularExpression.cpp:
        Add the MultilineMode parameter into the constructor/factory method and ultimately pass it into YarrPattern.
        (WebCore::RegularExpression::Private::create): See above.
        (WebCore::RegularExpression::Private::Private): See above.
        (WebCore::RegularExpression::Private::compile): See above.
        (WebCore::RegularExpression::RegularExpression): See above.
        * platform/text/RegularExpression.h:
        Add enum MultilineMode, modify constructor and factory method signatures accordingly.

2012-12-02  Noel Gordon  <noel.gordon@gmail.com>

        ImageOrientation::transformFromDefault() case labels should be in numerical order
        https://bugs.webkit.org/show_bug.cgi?id=101596

        Reviewed by Simon Fraser.

        Place the orientation case labels in numerical order to better match the EXIF2.2 spec
        definitions of orientation values and their ImageOrientation.h enumeration.

        No change in behavior. Covered by existing tests:
           fast/images/exif-orientation-css.html
           fast/images/exif-orientation-image-document.html
           fast/images/exif-orientation.html

        * platform/graphics/ImageOrientation.cpp:
        (WebCore::ImageOrientation::transformFromDefault): Numerically order the orientation 
        case statement labels.

2012-12-02  Mary Wu  <mary.wu@torchmobile.com.cn>

        should sniff it if mimetype don't contain a slash.
        https://bugs.webkit.org/show_bug.cgi?id=102778

        Reviewed by George Staikos.

        Based on http://mimesniff.spec.whatwg.org/, a valid media type
        is the string represented by concatenating type, the string "/",
        and subtype. So if the mimetype don't contain slash, we should
        possible get sniffed type from the content like Firefox/chrome/safari.

        RIM Bug# 219590, internally reviewed by Liam Quinn.

        No new tests, the patch only impact qt/blackberry porting to be consistent
        with chrome, other portings have their own behavior.

        * platform/network/MIMESniffing.cpp:
        (std::isUnknownType):

2012-12-02  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Adding checks for null when checking cookie status in CookieJarBlackBerry
        https://bugs.webkit.org/show_bug.cgi?id=103748

        Reviewed by Rob Buis.

        The logic is flipped in the previous patch.

        * loader/blackberry/CookieJarBlackBerry.cpp:
        (WebCore::cookiesEnabled):

2012-12-02  Robert Hogan  <robert@webkit.org>

        Bad rendering of web page because of image's height is set to 100%
        https://bugs.webkit.org/show_bug.cgi?id=28035

        Reviewed by Eric Seidel.

        Call computeReplacedLogicalHeight() to get the correct logical height of a replaced element
        for calculating the element's width. RenderBox::computeLogicalHeightUsing() is a helper function designed for finding
        the min and max height values and is not the way to find the actual used height of a replaced element.

        WebKit's quirks-mode behaviour for the test case is unaffected by this change.

        Tests: fast/css/computed-image-width-with-percent-height-quirksmode.html
               fast/css/computed-image-width-with-percent-height.html

        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computeReplacedLogicalWidth):

2012-12-02  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions] regionlayoutupdate event fires continuously
        https://bugs.webkit.org/show_bug.cgi?id=102101

        Reviewed by David Hyatt.

        According to the CSSRegions spec, http://dev.w3.org/csswg/css3-regions/#region-flow-layout-events, the regionlayoutupdate event
        should be dispatched when there is a possible layout change in the region chain.
        In the current implementation, regionlayoutupdate is dispatched when:
        1. a region from region chain changed its regionOverset value
        2. a region from region chain has regionOverset = fit| overset

        In the case of a named flow having an auto-height region with regionOverset = fit, the second step of layout was done
        also when there was not required, therefore the regionlayoutuodate was unnecessary triggered.

        We should proceed with the 2-pass layout only if the flow-thread having auto-height regions in region chain needs layout.

        Test: fast/regions/autoheight-regionlayoutupdate-multipletimes.html

        * rendering/FlowThreadController.cpp:
        (WebCore::FlowThreadController::hasRenderNamedFlowThreadsNeedingLayout):
        * rendering/FlowThreadController.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::layout):

2012-12-02  Rik Cabanier  <cabanier@adobe.com>

        Extend JavaScript support for blending in canvas
        https://bugs.webkit.org/show_bug.cgi?id=101804

        Reviewed by Dirk Schulze.

        Added parsing code and variables to support additional canvas blend modes
        see spec: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#canvascompositingandblending

        Test: canvas/philip/tests/2d.composite.globalComposite.html

        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseAttribute):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::State::State):
        (WebCore::CanvasRenderingContext2D::State::operator=):
        (WebCore::CanvasRenderingContext2D::globalCompositeOperation):
        (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation):
        (WebCore::CanvasRenderingContext2D::drawImageFromRect):
        * html/canvas/CanvasRenderingContext2D.h:
        (State):
        * platform/graphics/GraphicsTypes.cpp:
        (WebCore):
        (WebCore::parseCompositeAndBlendOperator):
        (WebCore::compositeOperatorName):
        * platform/graphics/GraphicsTypes.h:

2012-12-02  KyungTae Kim  <ktf.kim@samsung.com>

        [EFL] Fix build warning in GraphicsContext3DEfl.cpp
        https://bugs.webkit.org/show_bug.cgi?id=103807

        Reviewed by Laszlo Gombos.

        Because GraphicsContext3D::ImageExtractor::extractImage is not implemented yet, 
        comment out the parameter names for removing -Wunused-parameter warnings.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):

2012-12-02  Andreas Kling  <akling@apple.com>

        Keep ElementAttributeData sharing cache open for a while after document parsing finishes.
        <http://webkit.org/b/103720>

        Reviewed by Antti Koivisto.

        Allow web pages that generate content dynamically to benefit more from the ElementAttributeData sharing
        cache by keeping it open for 10 seconds after document parsing finishes. This enables elements constructed
        from HTML fragments to share attribute data with other identical elements.

        Elements created via Document.createElement are still unsupported since we don't know the list of attributes
        at the time of construction.

        401kB progression on Membuster3.

        Document now holds on to a DocumentSharedObjectPool, accessible via Document::sharedObjectPool().
        It is non-null during parsing and for some time afterwards, and can be used to implement additional
        caches that are not worth holding on to permanently.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCore.vcproj/WebCore.vcproj:

            Add new class DocumentSharedObjectPool.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::setParsing):
        (WebCore::Document::finishedParsing):
        (WebCore::Document::sharedObjectPoolClearTimerFired):
        * dom/Document.h:
        (WebCore::Document::sharedObjectPool):

            Create DocumentSharedObjectPool when parsing starts, kill it on a 10s timer after parsing finishes.

        * dom/DocumentSharedObjectPool.cpp: Added.
        (ImmutableElementAttributeDataCacheKey):
        (WebCore::ImmutableElementAttributeDataCacheKey::ImmutableElementAttributeDataCacheKey):
        (WebCore::ImmutableElementAttributeDataCacheKey::operator!=):
        (WebCore::ImmutableElementAttributeDataCacheKey::hash):
        (ImmutableElementAttributeDataCacheEntry):
        (WebCore::ImmutableElementAttributeDataCacheEntry::ImmutableElementAttributeDataCacheEntry):
        (WebCore::DocumentSharedObjectPool::cachedImmutableElementAttributeData):
        (WebCore::DocumentSharedObjectPool::DocumentSharedObjectPool):
        (WebCore::DocumentSharedObjectPool::~DocumentSharedObjectPool):
        * dom/DocumentSharedObjectPool.h: Added.
        (DocumentSharedObjectPool):
        (WebCore::DocumentSharedObjectPool::create):
        * dom/Element.cpp:
        (WebCore::Element::parserSetAttributes):

            Moved the ElementAttributeData cache to DocumentSharedObjectPool.

2012-12-02  John Bauman  <jbauman@chromium.org>

        [chromium] Let Pepper Flash use integrated GPU
        https://bugs.webkit.org/show_bug.cgi?id=103800

        Reviewed by Kenneth Russell.

        Pepper Flash uses the SharedGraphicsContext3D as a parent, so don't
        require that to use the discrete GPU. This means that accelerated
        canvas will use the integrated GPU, but that will save battery life
        and seems acceptable. 

        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
        (WebCore::SharedGraphicsContext3DImpl::createContext):

2012-12-02  Elliott Sprehn  <esprehn@gmail.com>

        documentElement should not always get a renderer
        https://bugs.webkit.org/show_bug.cgi?id=103475

        Reviewed by Ojan Vafai.

        Only SVG documents need a renderer on the documentElement when it's
        display: none. This behavior is wrong, but there's assumptions in
        FrameView and SVGImage that depend on a RenderSVGRoot existing for all
        loaded SVG document and images.

        The current code has logic that makes it appear as if we always create
        a renderer for the documentElement even when it's display: none, but
        because HTMLElement::createRenderer doesn't call super we end up with
        HTMLElement::rendererIsNeeded returning true for display: none, but
        HTMLElement::createRenderer returning null.

        Instead of this generic documentElement logic only special case SVG
        until someone can fix Bug 103493 so we don't need it.

        Test: fast/css/display-none-documentElement.html

        * dom/Element.cpp:
        (WebCore::Element::rendererIsNeeded):
        (WebCore::Element::createRenderer):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::rendererIsNeeded):
        * svg/SVGSVGElement.h:
        (SVGSVGElement):

2012-12-02  Pan Deng  <pan.deng@intel.com>

        [Resource Timing] implementation of cross origin resouce timing restrictions.
        https://bugs.webkit.org/show_bug.cgi?id=84886.

        Reviewed by Tony Gentilcore.

        This patch implemented resource timing behaviors of cross origin. By default, detailed timing info is hided in cross origin resource timing, only startTime, duration, fetchStart and responseEnd can be observed. Exceptions are, server side allow its origin can be timing by another through a header with "timing-allow-origin" field.

        Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html
               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html

        * page/Performance.cpp:
        (WebCore::passesTimingAllowCheck):
        (WebCore):
        (WebCore::Performance::addResourceTiming):
        * page/Performance.h:
        (WebCore):
        (Performance):
        * page/PerformanceResourceTiming.cpp:
        (WebCore):
        * page/PerformanceResourceTiming.h:
        (WebCore::PerformanceResourceTiming::create):
        (PerformanceResourceTiming):

2012-12-02  Elliott Sprehn  <esprehn@gmail.com>

        Simplify treeScope and setTreeScope
        https://bugs.webkit.org/show_bug.cgi?id=103708

        Reviewed by Hajime Morita.

        By making the default treeScope in NodeRareData the document and then
        moving the m_treeScope field to NodeRareDataBase we can make treeScope
        inline and make setTreeScope much simpler.

        There's also no reason to save calls to rareData() now that the map has
        been eliminated by r133372 so we can eliminate the return value from
        setTreeScope.

        No new tests, just refactoring.

        * WebCore.exp.in:
        * dom/Document.h:
        (WebCore::Node::treeScope):
        (WebCore):
        * dom/Element.cpp:
        (WebCore::Element::createRareData):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::setTreeScope):
        (WebCore::Node::createRareData):
        * dom/Node.h:
        (NodeRareDataBase):
        (WebCore::NodeRareDataBase::treeScope):
        (WebCore::NodeRareDataBase::setTreeScope):
        (WebCore::NodeRareDataBase::NodeRareDataBase):
        (Node):
        * dom/NodeRareData.cpp:
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):

2012-12-02  Justin Novosad  <junov@google.com>

        Fix occlusion culling logic to handle css background layer clipping
        https://bugs.webkit.org/show_bug.cgi?id=103276

        Reviewed by Simon Fraser.

        Bug was introduced by r135629
        This patch fixes it by verifying layer clip.  A fill layer must
        not be treated as if it occludes the layers under it unless it has
        a larger or equal clip setting than the layers under it.

        Test: fast/backgrounds/background-opaque-clipped-gradients.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintFillLayers):
        * rendering/style/FillLayer.cpp:
        (WebCore::clipMax):
        (WebCore::FillLayer::computeClipMax):
        (WebCore::FillLayer::clipOccludesNextLayers):
        * rendering/style/FillLayer.h:
        (FillLayer):

2012-12-02  Tony Chang  <tony@chromium.org>

        Avoid a second layout of flex items in layoutAndPlaceChildren()
        https://bugs.webkit.org/show_bug.cgi?id=102352

        Reviewed by Ojan Vafai.

        Avoid doing a second layout if we're going to get the same size as before.
        This prevents us from doing an exponential number of layouts in some
        common cases.

        Test: css3/flexbox/stretch-after-sibling-size-change.html

        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderContainer::layout): Force a layout of the track, which positions the thumb.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::needToStretchChild): Determine if a child is going to stretch.
        (WebCore::RenderFlexibleBox::resetAutoMarginsAndLogicalTopInCrossAxis): Makes sure we're in a consistent state before
        we apply auto margins.
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        * rendering/RenderFlexibleBox.h: Add needToStretchChild.

2012-12-02  Yongjun Zhang  <yongjun_zhang@apple.com>

        Need a method to close all idle localstorage databases immediately.
        https://bugs.webkit.org/show_bug.cgi?id=103469

        Reviewed by David Kilzer.

        Add a new PageGroup method closeIdleLocalStorageDatabases, which walks through
        all local storage areas that don't have document referencing to them and closes
        their underlying databases.

        Test: storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html

        * WebCore.exp.in:
        * page/PageGroup.cpp:
        (WebCore::PageGroup::clearLocalStorageForOrigin):
        (WebCore):
        (WebCore::PageGroup::closeIdleLocalStorageDatabases): walking through all idle local storages and
            closing their databases.
        * page/PageGroup.h:
        (PageGroup):
        * storage/StorageArea.h:
        (WebCore::StorageArea::closeDatabaseIfIdle):
        * storage/StorageAreaImpl.cpp:
        (WebCore::StorageAreaImpl::closeDatabaseIfIdle): close the database if it is idle.
        (WebCore):
        * storage/StorageAreaImpl.h:
        (StorageAreaImpl):
        * storage/StorageNamespace.h:
        (StorageNamespace):
        * storage/StorageNamespaceImpl.cpp:
        (WebCore::StorageNamespaceImpl::closeIdleLocalStorageDatabases):
        (WebCore):
        * storage/StorageNamespaceImpl.h:
        (StorageNamespaceImpl):

2012-12-02  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Adding checks for null when checking cookie status in CookieJarBlackBerry
        https://bugs.webkit.org/show_bug.cgi?id=103748

        Reviewed by Rob Buis.

        Updating CookieJarBlackBerry::cookieEnabled and have other methods in the class call that
        method. Also, adding null checks for document->settings().

        No change in behaviour.

        * loader/blackberry/CookieJarBlackBerry.cpp:
        (WebCore::cookies):
        (WebCore::setCookies):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::cookieRequestHeaderFieldValue):

2012-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136236.
        http://trac.webkit.org/changeset/136236
        https://bugs.webkit.org/show_bug.cgi?id=103833

        [chromium] Flakey crashes in SpeechRecognitionEvent::emma
        during GC. (Requested by mkwst on #webkit).

        * Modules/speech/SpeechRecognition.cpp:
        (WebCore::SpeechRecognition::start):
        * Modules/speech/SpeechRecognition.h:
        (SpeechRecognition):
        * Modules/speech/SpeechRecognitionEvent.cpp:
        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
        * Modules/speech/SpeechRecognitionEvent.h:
        (SpeechRecognitionEventInit):
        (SpeechRecognitionEvent):
        (WebCore::SpeechRecognitionEvent::resultIndex):
        * Modules/speech/SpeechRecognitionEvent.idl:
        * Modules/speech/SpeechRecognitionResult.cpp:
        (WebCore::emmaQualifiedName):
        (WebCore):
        (WebCore::SpeechRecognitionResult::emma):
        * Modules/speech/SpeechRecognitionResult.h:
        (WebCore):
        (WebCore::SpeechRecognitionResult::final):
        (SpeechRecognitionResult):
        * Modules/speech/SpeechRecognitionResult.idl:
        * WebCore.gypi:
        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8SpeechRecognitionEventCustom.cpp.
        (WebCore):
        (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):

2012-12-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136015.
        http://trac.webkit.org/changeset/136015
        https://bugs.webkit.org/show_bug.cgi?id=103821

        Did not heal performance bot and caused other performance
        regressions (Requested by abarth on #webkit).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):

2012-12-01  Xiaobo Wang  <xiaobo.wang@torchmobile.com.cn>

        DRT - crashed in WebCore::SearchFieldCancelButtonElement::defaultEventHandler
        https://bugs.webkit.org/show_bug.cgi?id=103592

        Reviewed by Kent Tamura.

        The crash happened when the search field cancel button handles mouseout
        event after the search input was detached. When it happens the input
        element returned from shadowHost() is null, need to check the pointer
        before dereferencing.
        InputFieldSpeechButton and SearchFieldResultsButtonElement have the
        similar issue.

        No new tests. The patch fixes the following test on BlackBerry platform.
        Test: fast/forms/search-delete-while-cancel-button-clicked.html

        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
        (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):

2012-11-30  Mike West  <mkwst@chromium.org>

        CSP 1.1: Make the CSP_NEXT flag runtime enabled.
        https://bugs.webkit.org/show_bug.cgi?id=103652

        Reviewed by Adam Barth.

        Content Security Policy 1.1 continues to live behind the CSP_NEXT flag,
        this patch adds another layer on top of that in order to enable runtime
        decisions about whether it should be active.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        (WebCore::RuntimeEnabledFeatures::experimentalContentSecurityPolicyFeaturesEnabled):
        (WebCore::RuntimeEnabledFeatures::setExperimentalContentSecurityPolicyFeaturesEnabled):
            Adds methods in order to correctly handle enabling and disabling
            CSP 1.1 features.
        * dom/Document.idl:
            Gate the 'document.securityPolicy' object on the runtime flag.
        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPDirectiveList::addDirective):
            Check that experimental features are runtime enabled before
            processing 1.1 directives.
        (WebCore::ContentSecurityPolicy::experimentalFeaturesEnabled):
        (WebCore):
        * page/ContentSecurityPolicy.h:
            Adds a new method which checks against the runtime flag to determine
            whether CSP 1.1 features are enabled.

2012-11-30  Simon Fraser  <simon.fraser@apple.com>

        Avoid calling into NSUserDefaults every time we start a scroll
        https://bugs.webkit.org/show_bug.cgi?id=103804

        Reviewed by Dan Bernstein.

        Cache the NSScrollAnimationEnabled preference to avoid
        hitting NSUserDefaults every time we start scrolling.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::scrollAnimationEnabledForSystem):

2012-11-30  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=103790
        The LayerPool m_pruneTimer should have a longer delay

        Reviewed by Simon Fraser.

        A 1 second delay is more appropriate here.
        * platform/graphics/ca/mac/LayerPool.mm:
        (WebCore::LayerPool::schedulePrune):

2012-11-30  Jer Noble  <jer.noble@apple.com>

        Unreviewed Windows build fix.

        Add a default: entry to an case statement to fix a build error when compiled in VS2005.

        * html/MediaController.cpp:
        (MediaController::playbackState):

2012-11-30  Jer Noble  <jer.noble@apple.com>

        Add support for the 'unpause()' method on MediaController.
        https://bugs.webkit.org/show_bug.cgi?id=103751

        Reviewed by Eric Carlson.

        The MediaController spec has been updated to add an unpause() method
        which is functionally identical to the old play() method, and changes
        the semantics of play() to call play() on the underlying slaved media
        elements. The spec also added a playbackState() method, returning a
        string representing the last calculated playback state.

        Test: media/media-controller-unpause.html

        * html/MediaController.cpp:
        (MediaController::unpause): Renamed from play().
        (MediaController::play): Added. Same as unpause(), but also call
            play() on slaved media elements.
        (playbackStateWaiting): Static string accessor.
        (playbackStatePlaying): Ditto.
        (playbackStateEnded): Ditto.
        (MediaController::playbackState): Added. Returns string value of
            m_playbackState.
        * html/MediaController.h:
        * html/MediaController.idl:

2012-11-30  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] Align the grid track code with the specification's production rules
        https://bugs.webkit.org/show_bug.cgi?id=103703

        Reviewed by Alexis Menard.

        In order to support more of the syntax and make the code more readable, this change
        splits following the grammar's production rules (see
        http://dev.w3.org/csswg/css3-grid-layout/#grid-definition-columns-and-grid-definit).

        Refactoring covered by existing tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridTrackMinMax):
        (WebCore::valueForGridTrackGroup):
        (WebCore::valueForGridTrackList):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTrackList):
        (WebCore::CSSParser::parseGridTrackGroup):
        (WebCore::CSSParser::parseGridTrackMinMax):
        * css/CSSParser.h:
        * css/StyleResolver.cpp:
        (WebCore::createGridTrackMinMax):
        (WebCore::createGridTrackGroup):
        (WebCore::createGridTrackList):
        Mechanical split of the parsing, resolving and computed style code into
        <track-list>, <track-group>, <track-minmax> and <track-breadth> parts.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridBreadth):
        Changed this function to just parse a single value (without any extra logic).

        * css/StyleResolver.cpp:
        (WebCore::createGridTrackBreadth):
        Changed this function to take a Length as it is used to parse a <track-breadth>.
        The goal is for it to be the low-level function createGridTrackMinmax will call on
        each function parameter.

2012-11-30  Simon Fraser  <simon.fraser@apple.com>

        Fix potential crash when canceling animations on renderers with no node
        https://bugs.webkit.org/show_bug.cgi?id=103784

        Reviewed by Dan Bernstein.

        We could crash when tearing down RenderScrollbars because we hit
        AnimationController::cancelAnimations() for a renderer with no node.
        The assertion already check for a null node, but the line after
        does not, so fix that.

        I tried to make a test with animations/transitions on a custom scrollbar, but was not able
        to get it to crash.

        * page/animation/AnimationController.cpp:
        (WebCore::AnimationController::cancelAnimations):

2012-11-30  Tim Horton  <timothy_horton@apple.com>

        PluginDocument fires didFinishDocumentLoadForFrame upon receiving initial bytes instead of when load completes
        https://bugs.webkit.org/show_bug.cgi?id=103702
        <rdar://problem/12762534>

        Reviewed by Alexey Proskuryakov.

        Remove the call to finish() from PluginDocumentParser::appendBytes().

        This was introduced in http://trac.webkit.org/changeset/14838, when finish() wouldn't get
        called for PluginDocuments any other way. In the time since, DocumentWriter::end() was made
        to call finish() anyway, at the correct time (the call from appendBytes makes a PluginDocument
        appear to be finished loading after the first bytes are received).

        No new tests, because there doesn't seem to be any state in a PluginDocument that can be accessed
        from JavaScript to determine whether or not it has finished loading.

        * html/PluginDocument.cpp:
        (WebCore::PluginDocumentParser::appendBytes):

2012-11-29  Ilya Tikhonovsky  <loislo@chromium.org>

        RenderBlock minor clean-up: replace raw pointers with OwnPtrs.
        https://bugs.webkit.org/show_bug.cgi?id=103690

        Reviewed by Eric Seidel.

        raw pointers were replaced with OwnPtrs.
        Probably we also gain a small performance improvements because
        I replaced get && remove pair with take.

        * rendering/RenderBlock.cpp:
        (WebCore):
        (WebCore::removeBlockFromDescendantAndContainerMaps):
        (WebCore::RenderBlock::~RenderBlock):
        (WebCore::RenderBlock::addOverflowFromFloats):
        (WebCore::RenderBlock::addContinuationWithOutline):
        (WebCore::RenderBlock::paintContinuationOutlines):
        (WebCore::RenderBlock::insertIntoTrackedRendererMaps):
        (WebCore::RenderBlock::removeFromTrackedRendererMaps):
        (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
        * rendering/RenderBlock.h:
        (WebCore):

2012-11-30  Jun Jiang  <jun.a.jiang@intel.com>

        WebGL: Add a class to abstract the status of the Image in texImage2D() and texSubImage2D()
        https://bugs.webkit.org/show_bug.cgi?id=103606

        Reviewed by Kenneth Russell.

        In texImage2D() and texSubImage2D() for WebGL, the status of the Image is extracted and kept in the function GraphicsContext3D::getImageData() but provides no interface or guaranteed way to use the status of the Image outside GraphicsContext3D::getImageData() safely. For example, you can not get the address of the raw Image data and operate it outside the scope of the GraphicsContext3D::getImageData() and there is at least one memory copy existed from the Image to the intermediate vector.
       This patch refactors the code by adding a ImageExtractor class to abstract and keep the status of the Image. The lifetime and validity of Image status are determined by the lifetime of the object instead of the scope of getImageData(). It provides flexibility on future optimizations.

        No new tests. It is a code refactoring patch.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::texImage2DImpl):
        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::ImageExtractor):
        (WebCore):
        (WebCore::GraphicsContext3D::packImageData):
        * platform/graphics/GraphicsContext3D.h:
        (WebCore):
        (GraphicsContext3D):
        (ImageExtractor):
        (WebCore::GraphicsContext3D::ImageExtractor::extractSucceeded):
        (WebCore::GraphicsContext3D::ImageExtractor::imagePixelData):
        (WebCore::GraphicsContext3D::ImageExtractor::imageWidth):
        (WebCore::GraphicsContext3D::ImageExtractor::imageHeight):
        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceFormat):
        (WebCore::GraphicsContext3D::ImageExtractor::imageAlphaOp):
        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceUnpackAlignment):
        * platform/graphics/NativeImagePtr.h:
        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
        (WebCore):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
        (WebCore):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
        (WebCore):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
        (WebCore):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
        (WebCore):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
        (WebCore):
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):

2012-11-30  Simon Fraser  <simon.fraser@apple.com>

        Make RenderLayer::updateLayerPosition() private
        https://bugs.webkit.org/show_bug.cgi?id=102624

        Reviewed by Ryosuke Niwa.

        Made updateLayerPosition() private. The only external caller was
        MouseRelatedEvent::computeRelativePosition(), which has no business updating
        layer positions. In fact it had positively dangerous behavior; doing just
        a style update without layout, and then calling absoluteToLocal() and walking
        layers. Fixed by having it call updateLayoutIgnorePendingStylesheets().
        
        This revealed a bug where event.offsetX/offsetY could be wrong in some cases.
        fast/events/stopPropagation-submit.html does a simulated click (which has
        client coordinates at 0,0), so the image submit coordinates were incorrectly
        0,0. Now that we do layout before computing them, they are correctly reported
        as being relative to the element.

        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::computeRelativePosition):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
        * rendering/RenderLayer.h:
        (RenderLayer):

2012-11-30  Simon Fraser  <simon.fraser@apple.com>

        Late-loading stylesheets can cause composited layers to be blank
        https://bugs.webkit.org/show_bug.cgi?id=103773

        Reviewed by Tim Horton.

        Early painting can be short-circuited in RenderBlock::paintContents() if we know a stylesheet
        is pending, which is done to avoid a flash of unstyled content (FOUC). When the stylesheet
        finally loaded, Document::styleResolverChanged() would try to repaint everything by calling
        repaint() on the RenderView(). In a composited world, however, this repaint() doesn't repaint
        composited layers.
        
        This was particularly prevalent on this specific URL because it failed to load
        a CSS file from typekit.com, so Document::styleResolverChanged()
        just did the repaint and returned (rather than doing a recalc style as would
        happen for correctly loaded stylesheets).
        
        Fix by making a way to repaint all compositing layers, and calling it
        from Document::styleResolverChanged().

        No tests because this is timing-dependant.

        * dom/Document.cpp:
        (WebCore::Document::styleResolverChanged): Call repaintViewAndCompositedLayers().
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintContents): Fix the comment.
        * rendering/RenderLayerCompositor.cpp: Convert repaintCompositedLayersAbsoluteRect()
        and associated recursiveRepaintLayerRect() to allow the rect to be null, which indicates
        that we should just repaint the entire layer, and improve their names.
        (WebCore::RenderLayerCompositor::repaintCompositedLayers):
        (WebCore::RenderLayerCompositor::recursiveRepaintLayer):
        * rendering/RenderLayerCompositor.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintRectangleInViewAndCompositedLayers): repaintCompositedLayersAbsoluteRect()
        was renamed to repaintCompositedLayers().
        (WebCore::RenderView::repaintViewAndCompositedLayers):
        * rendering/RenderView.h:
        (RenderView): repaintViewRectangle() and repaintRectangleInViewAndCompositedLayers() should not
        be virtual. Add repaintViewAndCompositedLayers().

2012-11-30  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136142.
        http://trac.webkit.org/changeset/136142
        https://bugs.webkit.org/show_bug.cgi?id=103768

        break a bunch of interactive_ui_tests in chromium win
        (Requested by zhenyao_home on #webkit).

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
        (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::layout):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData):

2012-11-30  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Replace use of ScriptExecutionContext::Task (Part 1)
        https://bugs.webkit.org/show_bug.cgi?id=101483

        Reviewed by Tony Chang.

        The IDB back end (which runs on a single thread) makes use of ScriptExecutionContext's
        Task and facilities for cross-task posting with callbacks, and requires decorating various
        IDB classes with "ThreadSafe" when they are not. Move towards encapsulating the tasks
        in "Operation" classes which are IDB-operation specific.

        Part 1 (this patch) retains the use of ScriptExecutionContext::Task but wraps the creation
        and the callback function in an Operation class which will be fleshed out in later patches.
        As an aside, a little bit of RefPtr churn is eliminated, and IDB_TRACE sprinkled in.

        No new tests - just a refactor.

        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (IDBCursorBackendImpl::CursorIterationOperation):
        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::create):
        (WebCore):
        (IDBCursorBackendImpl::CursorAdvanceOperation):
        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::create):
        (IDBCursorBackendImpl::CursorPrefetchIterationOperation):
        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::create):
        (WebCore::IDBCursorBackendImpl::continueFunction):
        (WebCore::IDBCursorBackendImpl::advance):
        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::perform):
        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::perform):
        (WebCore::IDBCursorBackendImpl::prefetchContinue):
        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (IDBCursorBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (IDBDatabaseBackendImpl::CreateObjectStoreOperation):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::create):
        (WebCore):
        (IDBDatabaseBackendImpl::DeleteObjectStoreOperation):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::create):
        (IDBDatabaseBackendImpl::VersionChangeOperation):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
        (IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::create):
        (IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::create):
        (IDBDatabaseBackendImpl::VersionChangeAbortOperation):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::perform):
        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (IDBIndexBackendImpl::OpenIndexCursorOperation):
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
        (WebCore):
        (IDBIndexBackendImpl::IndexCountOperation):
        (WebCore::IDBIndexBackendImpl::IndexCountOperation::create):
        (IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation):
        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::create):
        (IDBIndexBackendImpl::IndexValueRetrievalOperation):
        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::create):
        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
        (WebCore::IDBIndexBackendImpl::openCursor):
        (WebCore::IDBIndexBackendImpl::openKeyCursor):
        (WebCore::IDBIndexBackendImpl::IndexCountOperation::perform):
        (WebCore::IDBIndexBackendImpl::count):
        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::perform):
        (WebCore::IDBIndexBackendImpl::get):
        (WebCore::IDBIndexBackendImpl::getKey):
        * Modules/indexeddb/IDBIndexBackendImpl.h:
        (WebCore::IDBIndexBackendImpl::metadata):
        (IDBIndexBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::create):
        (WebCore):
        (IDBObjectStoreBackendImpl::ObjectStoreStorageOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreClearOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::create):
        (IDBObjectStoreBackendImpl::CreateIndexOperation):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::create):
        (IDBObjectStoreBackendImpl::DeleteIndexOperation):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::create):
        (IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation):
        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::create):
        (IDBObjectStoreBackendImpl::ObjectStoreCountOperation):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::create):
        (IDBObjectStoreBackendImpl::CreateIndexAbortOperation):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::create):
        (IDBObjectStoreBackendImpl::DeleteIndexAbortOperation):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::create):
        (WebCore::IDBObjectStoreBackendImpl::get):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::clear):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::openCursor):
        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::count):
        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::perform):
        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::perform):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):

2012-11-30  Tim Horton  <timothy_horton@apple.com>

        (Simple)PDFPlugin: Support conversion of PostScript documents
        https://bugs.webkit.org/show_bug.cgi?id=103289
        <rdar://problem/10235708>

        Reviewed by Dan Bernstein.

        SimplePDFPlugin (and PDFPlugin) should support converting PostScript files
        to PDF before handing them off to their respective backends.

        * English.lproj/Localizable.strings:
        * WebCore.exp.in:
        * platform/LocalizedStrings.cpp:
        (WebCore::postScriptDocumentTypeDescription):
        * platform/LocalizedStrings.h:
        Add and export postScriptDocumentTypeDescription, for PostScript files.

2012-11-30  Justin Novosad  <junov@google.com>

        [Chromium] Animation updates fail when using a canvas as a CSS backround-image style with -webkit-canvas
        https://bugs.webkit.org/show_bug.cgi?id=103643

        Reviewed by Stephen White.

        CanvasRenderingContext2D::didDraw was not propagating the change
        notification to observers in the accelerated compositing case.
        Problem fixed by adding observer notifications.

        New manual test: animated-canvas-as-background.html

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::didDraw):
        The observer notification was factored out into a separate method
        so that it can be invoked directly for accelerated compositing.
        (WebCore):
        (WebCore::HTMLCanvasElement::notifyObserversCanvasChanged):
        * html/HTMLCanvasElement.h:
        (HTMLCanvasElement):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::didDraw):
        Added observer notification call to trigger repainting of elements that
        use this canvas for their style.

2012-11-30  James Simonsen  <simonjam@chromium.org>

        Report CSS as initiator instead of elements, except body
        https://bugs.webkit.org/show_bug.cgi?id=103546

        Reviewed by Tony Gentilcore.

        The Resource Timing spec says the initiator should be "css" when the the load comes from a
        url() rule in a stylesheet. Separately, WebKit reports <body background> as a CSS load, we
        need to override that to match the spec.

        Tests: http/tests/w3c/webperf/submission/resource-timing

        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::cachedImage):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::cachedImage): By default, the initiator is "css".
        * css/CSSImageValue.h:
        (CSSImageValue):
        (WebCore::CSSImageValue::setInitiator): Allow users to manually override it (see body).
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingImage):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): Record "body" as the initiator.

2012-11-30  James Simonsen  <simonjam@chromium.org>

        Remember the CachedResourceRequest for preloads
        https://bugs.webkit.org/show_bug.cgi?id=102995

        Reviewed by Tony Gentilcore.

        Without this, the initiator is lost.

        Tests: http/tests/w3c/webperf/submission/resource-timing

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::loadResource):
        (WebCore::CachedResourceLoader::preload):
        (WebCore::CachedResourceLoader::checkForPendingPreloads):
        (WebCore::CachedResourceLoader::requestPreload):
        (WebCore::CachedResourceLoader::isPreloaded):
        * loader/cache/CachedResourceLoader.h:
        (CachedResourceLoader):
        (PendingPreload):

2012-11-30  Michelangelo De Simone  <michelangelo@webkit.org>

        [CSS Shaders] Clamp input colors before blending
        https://bugs.webkit.org/show_bug.cgi?id=98962

        Reviewed by Dean Jackson.

        The result of css_ColorMatrix multiplication is now clamped in [0.0, 1.0]
        before the blending step.

        Relevant spec section is:
        http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-processing-model

        Tests: css3/filters/custom/custom-filter-color-clamping-negative.html
               css3/filters/custom/custom-filter-color-clamping.html

        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): Added clamping
        code.

2012-11-30  Abhishek Arya  <inferno@chromium.org>

        Crash due to intruding float not removed after writing mode changed.
        https://bugs.webkit.org/show_bug.cgi?id=100149

        Reviewed by Levi Weintraub.

        When RenderView writing mode changes, make sure to mark all descendants
        with floats for layout.

        Test: fast/block/float/intruding-float-not-removed-writing-mode.xhtml

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):

2012-11-30  Florin Malita  <fmalita@chromium.org>

        SVG pattern data deleted while in use
        https://bugs.webkit.org/show_bug.cgi?id=103415

        Reviewed by Dirk Schulze.

        Various calls in RenderSVGResourcePattern::applyResource() can trigger invalidations,
        which may end up deleting our current pattern data (via removeAllClientsFromCache).
        To avoid this, we should add the pattern data to the cache only after it is fully built.
        For clarity, the patch also refactors the pattern setup code into a separate method.

        Test: svg/custom/large-image-pattern-crash.html

        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::buildPattern):
        (WebCore::RenderSVGResourcePattern::applyResource):
        * rendering/svg/RenderSVGResourcePattern.h:
        (RenderSVGResourcePattern):

2012-11-30  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: It's Sass, not SASS
        https://bugs.webkit.org/show_bug.cgi?id=103626

        Reviewed by Yury Semikhatsky.

        Change "SASS" to "Sass" in UI strings.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:

2012-11-29  Tommy Widenflycht  <tommyw@google.com>

        Speech Recognition API: Update SpeechRecognitionEvent/Result to match the specification
        https://bugs.webkit.org/show_bug.cgi?id=103407

        Reviewed by Adam Barth.

        This patch does the following:
        o Adds results, and removing result on SpeechRecognitionEvent
        o Renaming SpeechRecognitionResult::final to isFinal
        o Moving emma to SpeechRecognitionEvent from SpeechRecognitionResult

        Existing tests updated to test the new API.

        * Modules/speech/SpeechRecognition.cpp:
        (WebCore::SpeechRecognition::start):
        (WebCore::SpeechRecognition::didReceiveResults):
        (WebCore):
        * Modules/speech/SpeechRecognition.h:
        (SpeechRecognition):
        * Modules/speech/SpeechRecognitionEvent.cpp:
        (WebCore::SpeechRecognitionEvent::createResult):
        (WebCore):
        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
        (WebCore::SpeechRecognitionEvent::~SpeechRecognitionEvent):
        (WebCore::emmaQualifiedName):
        (WebCore::SpeechRecognitionEvent::emma):
        * Modules/speech/SpeechRecognitionEvent.h:
        (WebCore):
        (SpeechRecognitionEventInit):
        (SpeechRecognitionEvent):
        (WebCore::SpeechRecognitionEvent::resultIndex):
        (WebCore::SpeechRecognitionEvent::results):
        * Modules/speech/SpeechRecognitionEvent.idl:
        * Modules/speech/SpeechRecognitionResult.cpp:
        * Modules/speech/SpeechRecognitionResult.h:
        (WebCore::SpeechRecognitionResult::isFinal):
        (SpeechRecognitionResult):
        * Modules/speech/SpeechRecognitionResult.idl:
        * WebCore.gypi:
        * bindings/v8/custom/V8SpeechRecognitionEventCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp.
        (WebCore):
        (WebCore::V8SpeechRecognitionEvent::opaqueRootForGC):

2012-11-30  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi  <pierre.rossi@digia.com>

        [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
        https://bugs.webkit.org/show_bug.cgi?id=99314

        Reviewed by Tor Arne Vestbø.

        This big change separates QtWebKit into QtWebKit and QtWebKitWidgets as
        shared libraries.

        It's a big refactoring that mostly involves moving WebCore dependent
        code into QtWebKit and accessing it through exported QWebFrameAdapter
        and QWebPageAdapter classes.

        * Target.pri:
        * platform/qt/QStyleFacade.h: Get rid of styleForPage function, not needed
        anymore.
        * platform/qt/QWebPageClient.h:
        (QWebPageClient): Remove a whole lot of cruft in favour of a simple GL enabling
        callback to select the GL texture mapper.
        (QWebPageClient::makeOpenGLContextCurrentIfAvailable):

2012-11-30  Simon Hausmann  <simon.hausmann@digia.com>

        Unreviewed, rolling out r136227.
        http://trac.webkit.org/changeset/136227

        Broke the Qt bots due to version mismatch

        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
        (FullScreenVideoWindow::FullScreenVideoWindow):
        (PlatformVideoWindow::PlatformVideoWindow):

2012-11-30  Samuel Rødal  <samuel.rodal@digia.com>

        [Qt] Fixed use of to-be-removed compatibility functions in QWindow.

        Reviewed by Simon Hausmann.

        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
        (FullScreenVideoWindow::FullScreenVideoWindow):
        (PlatformVideoWindow::PlatformVideoWindow):

2012-11-30  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Caret is painted horizontally in vertical writing mode when there are no visible text
        https://bugs.webkit.org/show_bug.cgi?id=102359

        Reviewed by Ryosuke Niwa.

        In the vertical writing mode the caret rect on an empty editable box or
        an empty line is rendered as per the horizontal writing mode.

        This changes though when any text is added; the caret is then displayed
        in accordance with the vertical writing mode.

        Test: editing/selection/caret-alignment-for-vertical-text.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::localCaretRect):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
        The caret rect should be transposed for the vertical writing mode. Its
        width and height values need to be interchanged for it to be oriented
        as per the vertical text.

2012-11-30  Sankeerth V S  <sankeerth.vs@samsung.com>

        Web Inspector: [Timeline] JS error when clicking in Memory Statistics view
        https://bugs.webkit.org/show_bug.cgi?id=103486

        Reviewed by Alexander Pavlov.

        The counter value can be null/undefined. Hence a check is needed
        before we access the "time" property on this counter object.

        No new tests required as UI related change.

        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics.prototype._onClick):

2012-11-30  Kent Tamura  <tkent@chromium.org>

        Fix typos in DateTimeNumericFieldElement.cpp and DateTimeSymbolicFieldElement.cpp
        https://bugs.webkit.org/show_bug.cgi?id=103717

        Reviewed by Hajime Morita.

        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
        maximum, not maxium.
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.

2012-11-30  Halton Huo  <halton.huo@intel.com>

        [EFL] libwebcore_efl.a fail to link when enable webgl
        https://bugs.webkit.org/show_bug.cgi?id=103610

        Reviewed by Gyuyoung Kim.

        libwebcore_efl.a should link to X11, Xcomposite and Xrender libraries when ENABLE_WEBGL is ON

        No new tests, no behavior change for layout tests.

        * PlatformEfl.cmake: Append ${X11_X11_LIB}, ${X11_Xcomposite_LIB} and ${X11_Xrender_LIB} to WebCore_LIBRARIES

2012-11-30  Tim Horton  <timothy_horton@apple.com>

        Unreviewed, fix the PDFPlugin build after http://trac.webkit.org/changeset/136205.

        * WebCore.xcodeproj/project.pbxproj:

2012-11-30  Mihai Maerean  <mmaerean@adobe.com>

        [CSSRegions] when WebKit uses V8, there should be a single variable to store if the CSS Regions feature is enabled
        https://bugs.webkit.org/show_bug.cgi?id=101192

        Reviewed by Hajime Morita.

        Removed the CSS Regions flag in Settings and switched to using the new flag I have added in RuntimeEnabledFeatures.

        Tests: No new tests because there is no functional change.

        * WebCore.exp.in:
        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        (WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled):
        (WebCore::RuntimeEnabledFeatures::cssRegionsEnabled):
        * dom/Document.cpp:
        (WebCore::Document::cssRegionsEnabled):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (Settings):

2012-11-29  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [WebKit2] WebKitWebViewBase creates a GL context for the redirected XComposite window crashing WebKit in Xvfb
        https://bugs.webkit.org/show_bug.cgi?id=103476

        Reviewed by Alejandro G. Castro.

        Allow creation of RedirectedXCompositeWindow in a mode which does not have a backing
        GLContext. For WebKit2 the GLContext is always in the WebProcess. Creating the GLContext
        in both processes can cause crashes when library is run in Xvfb.

        No new tests. This fixes a crash running tests on some systems.

        * platform/gtk/RedirectedXCompositeWindow.cpp:
        (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
        (WebCore::RedirectedXCompositeWindow::resize): Do not create the GLContext when
        in the new no-GLContext mode.
        (WebCore::RedirectedXCompositeWindow::context): ASSERT that we are not in
        no-GLContext mode.

2012-11-29  Keishi Hattori  <keishi@webkit.org>

        Better type ahead for DateTimeSymbolicFieldElement
        https://bugs.webkit.org/show_bug.cgi?id=103031

        Reviewed by Kent Tamura.

        This cuts out the type ahead code that will be used by HTMLSelectElement
        and DateTimeSymbolicFieldElement into a TypeAhead class. This will
        improve DateTimeSymbolicFieldElement type ahead which was first
        character match only, by adding cycling, prefix match and index number
        match.

        Added tests to month-multiple-fields-keyboard-events.html.

        * GNUmakefile.list.am: Added TypeAhead.{h,cpp}
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * CMakeLists.txt: Ditto.
        * html/HTMLSelectElement.cpp:
        (WebCore):
        (WebCore::HTMLSelectElement::HTMLSelectElement):
        (WebCore::HTMLSelectElement::indexOfSelectedOption): Returns index of current selection.
        (WebCore::HTMLSelectElement::optionCount): Returns total number of options.
        (WebCore::HTMLSelectElement::optionAtIndex): Returns option at index.
        (WebCore::HTMLSelectElement::typeAheadFind): Use TypeAhead.
        * html/HTMLSelectElement.h:
        (HTMLSelectElement):
        * html/TypeAhead.cpp: Added.
        (WebCore):
        (WebCore::TypeAhead::TypeAhead):
        (WebCore::stripLeadingWhiteSpace): Moved from HTMLSelectElement.cpp.
        (WebCore::TypeAhead::handleEvent): Returns index for match.
        * html/TypeAhead.h: Added.
        (WebCore):
        (TypeAheadDataSource): Provide the data about the options that TypeAhead should match against.
        (TypeAhead):
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
        (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
        (WebCore::DateTimeSymbolicFieldElement::indexOfSelectedOption):
        (WebCore):
        (WebCore::DateTimeSymbolicFieldElement::optionCount):
        (WebCore::DateTimeSymbolicFieldElement::optionAtIndex):
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement):

2012-11-29  Rafael Weinstein  <rafaelw@chromium.org>

        [HTMLTemplateElement] Add feature flag
        https://bugs.webkit.org/show_bug.cgi?id=103694

        Reviewed by Adam Barth.

        This flag will guard the implementation of the HTMLTemplateElement.
        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.features.am:

2012-11-29  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        Fix typo in commit 136189
        https://bugs.webkit.org/show_bug.cgi?id=103706

        Reviewed by Kentaro Hara.

        Because of typo in commit 136189 blue color value was set twice for every pixel.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::setPixel):

2012-11-29  Elliott Sprehn  <esprehn@chromium.org>

        Node::isDescendantOf contains logic that duplicates isDocumentNode
        https://bugs.webkit.org/show_bug.cgi?id=103698

        Reviewed by Hajime Morita.

        Instead of checking for documents with node->document() == node just
        use node->isDocumentNode().

        * dom/Node.cpp:
        (WebCore::Node::isDescendantOf):

2012-11-29  Alexey Proskuryakov  <ap@apple.com>

        [WK2] Forward cookie jar calls to NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=103457

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        PlatformCookieJar.h functions are now used in WebKit2.

        * loader/CookieJar.cpp:
        (WebCore::cookies):
        (WebCore::setCookies):
        (WebCore::cookiesEnabled):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):
        Use a strategy instead of going to PlatformCookieJar directly.

        * platform/Cookie.h: (Cookie): Added a default constructor, so that Cookie could be
        sent over IPC.

        * platform/CookiesStrategy.h: Added functions for cookie jar.

2012-11-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136167.
        http://trac.webkit.org/changeset/136167
        https://bugs.webkit.org/show_bug.cgi?id=103701

        Win debug build failure (Requested by zhenyao on #webkit).

        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (LazyDecodingPixelRef):

2012-11-29  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Propagate more leveldb errors to script
        https://bugs.webkit.org/show_bug.cgi?id=103580

        Reviewed by Tony Chang.

        LevelDBDatabase used a single return value to indicate both I/O problems
        and a missing key. Now an out variable is used to indicate if the
        requested key was found. The return value is used to report corruption
        or disk error.

        This is a small step toward propagating low level errors everywhere
        possible. So far only one scenario will newly cause script to receive
        an error: when leveldb has trouble looking for existing keys during an
        objectstore->add.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::getInt):
        (WebCore::getVarInt):
        (WebCore::getString):
        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::keyExistsInObjectStore):
        * Modules/indexeddb/IDBBackingStore.h:
        (IDBBackingStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::generateKey):
        (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBDatabase::safeGet):
        * platform/leveldb/LevelDBDatabase.h:
        (LevelDBDatabase):
        * platform/leveldb/LevelDBTransaction.cpp:
        (WebCore::LevelDBTransaction::safeGet):
        (WebCore):
        (WebCore::LevelDBTransaction::get):
        * platform/leveldb/LevelDBTransaction.h:
        (LevelDBTransaction):

2012-11-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136171.
        http://trac.webkit.org/changeset/136171
        https://bugs.webkit.org/show_bug.cgi?id=103695

        Likely caused ReOpenedWithID and ReOpenedWithURL to fail in
        linux/chromeos (Requested by zhenyao on #webkit).

        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::startMainThreadMonitoring):
        (WebCore::InspectorClient::stopMainThreadMonitoring):
        * inspector/InspectorController.cpp:
        * inspector/InspectorController.h:
        (InspectorController):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::willProcessTaskImpl):
        (WebCore::InspectorInstrumentation::didProcessTaskImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::willProcessTask):
        (WebCore):
        (WebCore::InspectorInstrumentation::didProcessTask):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::stop):

2012-11-29  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        Optimization in image decoding.
        https://bugs.webkit.org/show_bug.cgi?id=88424

        Reviewed by Brent Fulgham.

        Reduce branching and multiplications in JPEG image decoding loops and functions.
        Code is moved to the template functions with scale and color space template parameters
        because they were reason of branches inside loops. With templated funtions compiler
        will generate separate instance of function for every set of parameters removing
        unreachable code in every condition where constant value is used.

        Rebase and update of original patch by Misha Tyutyunik <michael.tyuytunik@nokia.com> .

        Thanks to Noel Gordon for his help in cleaning up remaining issues.

        Covered by existing tests.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore):
        (WebCore::setPixel):
        (WebCore::JPEGImageDecoder::outputScanlines):
        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
        (JPEGImageDecoder):

2012-11-29  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r135862.
        http://trac.webkit.org/changeset/135862
        https://bugs.webkit.org/show_bug.cgi?id=103367

        We've been observing 'Fatal error in
        v8::V8::AddMessageListener()' in bots

        * bindings/v8/V8Binding.cpp:
        (WebCore::v8NonStringValueToWebCoreString):
        * bindings/v8/V8StringResource.cpp:
        (WebCore::int32ToWebCoreStringFast):
        (WebCore::int32ToWebCoreString):
        * bindings/v8/V8StringResource.h:
        (WebCore::V8StringResource::V8StringResource):
        (WebCore::V8StringResource::prepareBase):
        (WebCore::V8StringResource::setString):
        (V8StringResource):
        (WebCore::V8StringResource::toString):
        (WebCore::::prepare):

2012-11-29  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: optimize repaint regions upon text editing
        https://bugs.webkit.org/show_bug.cgi?id=103674

        Reviewed by Vsevolod Vlasov.

        There is a lot happening that makes repaint area larger than it should be,
        namely unnecessary tabbed pane and navigator updates.

        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorView.prototype._updateScriptTitle):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPaneTab.prototype.set title):

2012-11-29  KyungTae Kim  <ktf.kim@samsung.com>

        Unused parameters on plugins/npapi.cpp
        https://bugs.webkit.org/show_bug.cgi?id=103676

        Reviewed by Kentaro Hara.

        Because 'instance' and 'menu' are not used when !PLATFORM(QT) || !defined(XP_MACOSX),
        use UNUSED_PARAM macro to fix build warning -Wunused-parameter

        * plugins/npapi.cpp:
        (NPN_PopUpContextMenu):

2012-11-29  Pablo Flouret  <pablof@motorola.com>

        REGRESSION(r134693): Compilation error on @supports grammar code
        https://bugs.webkit.org/show_bug.cgi?id=103678

        Reviewed by Tony Chang.

        Coming from https://bugs.webkit.org/show_bug.cgi?id=102295

        No new tests, compile fix.

        * css/CSSGrammar.y.in:

2012-11-29  Simon Fraser  <simon.fraser@apple.com>

        Avoid painting lots of small rects in WebLayer painting
        https://bugs.webkit.org/show_bug.cgi?id=103673

        Reviewed by Tim Horton.

        r109186 added code in drawLayerContents() to enumerate over the rects in
        the CALayer's dirty region, and paint them individually. This was done
        to help performance on the IE Maze Solver test.
        
        On large, complex pages like Facebook, the overhead of traversing the
        RenderLayer tree for painting is such that it's better to paint a single,
        or fewer rects rather than lots of little ones.
        
        So adopt a heuristic similar to that in DrawingArea, where if the
        combined area of the small rects is 75% or more of the combined rect,
        just paint the combined rect. Also paint the combined rect if there
        are more than 5 individual rects.
        
        I verified that this preserves the optimization for IE Maze Solver.

        * platform/graphics/mac/WebLayer.mm:
        (drawLayerContents):

2012-11-29  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: Web Inspector: Make main-thread monitoring go through InspectorController.
        https://bugs.webkit.org/show_bug.cgi?id=103550

        Reviewed by Pavel Feldman.

        InspectorInstrumentation was a wrong path.

        * inspector/InspectorClient.h: Remove start/stop methods.
        * inspector/InspectorController.cpp:
        Dispatch main thread activity notifications. 
        * inspector/InspectorController.h: Ditto.
        * inspector/InspectorInstrumentation.cpp: Remove dispatching.
        * inspector/InspectorInstrumentation.h: Ditto.
        * inspector/InspectorTimelineAgent.cpp:
        Do not subscribe for notifications explicitly.

2012-11-29  Adam Barth  <abarth@webkit.org>

        [V8] DOM callbacks shouldn't reimplement ScopedPersistent they should use it
        https://bugs.webkit.org/show_bug.cgi?id=103662

        Reviewed by Eric Seidel.

        This patch replaces yet another instance of the ScopedPersistent
        pattern with ScopedPersistent.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallbackHeader):
        (GenerateCallbackImplementation):
        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
        (WebCore::V8SQLStatementErrorCallback::handleEvent):
        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
        (WebCore::V8MutationCallback::handleEvent):

2012-11-29  Min Qin  <qinmin@chromium.org>

        Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
        https://bugs.webkit.org/show_bug.cgi?id=103555

        Reviewed by Stephen White.

        Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
        No test added for now as impl side paiting is still WIP.

        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::PrepareToDecode):
        (WebCore):
        (WebCore::LazyDecodingPixelRef::Decode):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (LazyDecodingPixelRef):

2012-11-29  Julien Chaffraix  <jchaffraix@webkit.org>

        Unreviewed build fix.

        * WebCore.gypi:
        The new file is GridTrackSize.h not GridTrackSizes.h. For some reason, the
        EWS didn't complain.

2012-11-29  John Knottenbelt  <jknotten@chromium.org>

        Use GeolocationController's last geoposition as cached position.
        https://bugs.webkit.org/show_bug.cgi?id=103540

        Reviewed by Benjamin Poulain.

        The page's GeolocationController mediates access to the
        GeolocationClient for multiple frames' Geolocation instances. This
        patch changes the position cache to be on the GeolocationController
        rather than on the Geolocation instance.

        This fixes a bug where if one frame has has received a fresh
        position, then a request for a cached position from a second frame
        does not succeed because the Geolocation instance in the second
        frame's position cache hasn't received the position update that
        went to the first frame.

        Test: fast/dom/Geolocation/cached-position-iframe.html

        * Modules/geolocation/Geolocation.cpp:
        (WebCore::Geolocation::makeCachedPositionCallbacks):
        (WebCore::Geolocation::haveSuitableCachedPosition):
        (WebCore::Geolocation::positionChanged):
        * Modules/geolocation/Geolocation.h:
        * Modules/geolocation/GeolocationController.h:
        (GeolocationController):

2012-11-29  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Allow sorting in NMI snapshot grid view
        https://bugs.webkit.org/show_bug.cgi?id=102955

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotDataGrid.prototype.sortingChanged):
        (WebInspector.NativeSnapshotDataGrid.prototype._sortingFunction):
        (WebInspector.NativeSnapshotNode):
        (WebInspector.NativeSnapshotNode.prototype._storeState):
        (WebInspector.NativeSnapshotNode.prototype._restoreState):
        (WebInspector.NativeSnapshotNode.prototype.uid):
        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):

2012-11-29  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [WebKit2] Embed the HTTP authentication dialog into the WebView
        https://bugs.webkit.org/show_bug.cgi?id=103277

        Reviewed by Carlos Garcia Campos.

        Refactor the WebCore authentication dialog so that it can be reused for the WebKit2
        embedded authentication dialog. The main purpose of this refactor is so that the
        dialog does not rely on GtkDialog to add the action buttons to the dialog itself.
        This also simplifies the structure of the dialog, using the GtkTable or GtkGrid to
        contain more of the widget elements, greatly simplifying this code. We also expose
        a new constructor that does not create the parent GtkDialog -- so that WebKit2
        can embed the dialog directly into the WebView.

        No new tests. This shouldn't change behavior, only slightly the look of the authentication
        dialog.

        * platform/gtk/GtkAuthenticationDialog.cpp:
        (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Added this new constructor
        which does not add the dialog contents to a GtkDialog.
        (WebCore::packTwoColumnLayoutInBox): Added this generic method for creating a two column
        layout in the style the dialog box needs (for both GTK+ 2.x and GTK+ 3.x).
        (WebCore::createDialogLabel): Added this helper.
        (WebCore::createDialogEntry): ditto.
        (WebCore::GtkAuthenticationDialog::createContentsInContainer): Added this method which
        can be used by subclasses to add the guts of the dialog to the parent container.
        (WebCore::GtkAuthenticationDialog::show): Added some focus/default handling code that
        GtkDialog was calling before.
        (WebCore::GtkAuthenticationDialog::buttonClickedCallback): Added a button clicked handler.
        Before GtkDialog handled this.
        * platform/gtk/GtkAuthenticationDialog.h: Updated methods to reflect new functionality.
        (WebCore::GtkAuthenticationDialog::~GtkAuthenticationDialog): Inline the default constructor.

2012-11-29  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=103577
        TiledDrawingArea should recycle tiles
        -and corresponding-
        <rdar://problem/12714586>

        Reviewed by Simon Fraser.

        New class LayerPool will keep a list of layers to reuse so that 
        we can avoid creating and destroying so many layer.

        When removing layers, add them to the LayerPool
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::revalidateTiles):

        Before creating a new layer, try to get one of the appropriate size 
        from the LayerPool.
        (WebCore::TileCache::createTileLayer):

        New class.
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/mac/LayerPool.h: Added.
        (WebCore):
        (LayerPool):
        (WebCore::LayerPool::capacity):
        (WebCore::LayerPool::canReuseLayerWithSize):
        * platform/graphics/ca/mac/LayerPool.mm: Added.
        (WebCore):
        (WebCore::LayerPool:: LayerPool):
        (WebCore::LayerPool::sharedPool):
        (WebCore::LayerPool::bytesBackingLayerWithPixelSize):
        (WebCore::LayerPool::listOfLayersWithSize):
        (WebCore::LayerPool::addLayer):
        (WebCore::LayerPool::takeLayerWithSize):
        (WebCore::LayerPool::decayedCapacity):
        (WebCore::LayerPool::schedulePrune):
        (WebCore::LayerPool::prune):
        (WebCore::LayerPool::drain):

        If we're under memory pressure, drain the LayerPool
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::releaseMemory):

2012-11-29  Julien Chaffraix  <jchaffraix@webkit.org>

        [CSS Grid Layout] track sizing functions should have their own type
        https://bugs.webkit.org/show_bug.cgi?id=103343

        Reviewed by Tony Chang.

        The current code uses a Length to represent the track sizing function. This is
        fine as we only parse <length> | <percentage> but in order to support minmax
        sizing, we have to store 2 Lengths. We could go with a pair but that would make
        the code not very readable so this change introduces GridTrackSize.

        Refactoring, covered by existing tests.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Added GridTrackSize.h to all our build systems.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridTrackBreadth):
        (WebCore::valueForGridTrackList):
        * css/StyleResolver.cpp:
        (WebCore::createGridTrackBreadth):
        (WebCore::createGridTrackList):
        (WebCore::StyleResolver::applyProperty):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computePreferredLogicalWidths):
        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
        * rendering/style/RenderStyle.h:
        Updated the above call sites to use GridTrackSize. While
        touching them, changed the code to use an empty Vector to represent
        'none' instead of Length(Undefined).

        * rendering/style/StyleGridData.h:
        Updated #include, removed a comment as it would have gone stale after
        adding more grammar support and added a FIXME to rename some variables.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::layoutGridItems):
        Implemented a work-around to avoid crashing due to implicit columns / rows.

        * rendering/style/GridTrackSize.h: Added.
        (WebCore::GridTrackSize::GridTrackSize):
        (WebCore::GridTrackSize::length):
        (WebCore::GridTrackSize::setLength):
        (WebCore::GridTrackSize::type):
        (WebCore::GridTrackSize::operator==):
        New class, it now only wraps a single Length.

2012-11-29  Helder Correia  <helder.correia@nokia.com>

        Typo in Color creation function name
        https://bugs.webkit.org/show_bug.cgi?id=103464

        Reviewed by Alexey Proskuryakov.

        Renaming createUnCheked() as createUnchecked().

        No new tests.

        * platform/graphics/Color.cpp:
        (WebCore::colorFromPremultipliedARGB):
        * platform/graphics/Color.h:
        (WebCore::Color::createUnchecked):

2012-11-29  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Cookies in private mode should not have access to public cookies
        https://bugs.webkit.org/show_bug.cgi?id=103649

        Reviewed by Rob Buis.

        PR 253983

        When CookieManager switches back from public to private mode,
        we will clear the cookie tree so the browser won't have access
        to the public cookies.

        Tested using browser.swlab.rim.net cookie tests and the steps in
        the PR.

        * platform/blackberry/CookieManager.cpp:
        (WebCore::CookieManager::setPrivateMode):

2012-11-29  Brent Fulgham  <bfulgham@gmail.com>

        Be consistent in handling of frameAtIndex (and related) returns.
        https://bugs.webkit.org/show_bug.cgi?id=103207

        Reviewed by David Hyatt.

        Under various conditions, frameAtIndex (and therefore,
        nativeImageForCurrentFrame) returns null. A series of bugs over
        the years has ensured null returns are handled in some cases,
        but there are a handful of remaining cases where this is still a
        problem. 

        No new tests, as these low-level functions are covered by
        numerous existing test cases.

2012-11-29  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Add minimum column height tracking and forced break tracking to column sets.
        https://bugs.webkit.org/show_bug.cgi?id=103657

        Reviewed by Simon Fraser.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        * rendering/RenderMultiColumnSet.h:
        (WebCore::RenderMultiColumnSet::updateMinimumColumnHeight):
        (WebCore::RenderMultiColumnSet::minimumColumnHeight):
        (RenderMultiColumnSet):
        (WebCore::RenderMultiColumnSet::forcedBreaksCount):
        (WebCore::RenderMultiColumnSet::forcedBreakOffset):
        (WebCore::RenderMultiColumnSet::maximumDistanceBetweenForcedBreaks):
        (WebCore::RenderMultiColumnSet::clearForcedBreaks):
        (WebCore::RenderMultiColumnSet::addForcedBreak):

2012-11-29  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: introduce fast case for within-chunk edit
        https://bugs.webkit.org/show_bug.cgi?id=103545

        Reviewed by Vsevolod Vlasov.

        Special-casing edits within the chunk for faster operation.

        * inspector/front-end/DOMExtension.js:
        (removeSubsequentNodes):
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):

2012-11-29  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: Console: hovering node wrappers in object tree should highlight them on the page
        https://bugs.webkit.org/show_bug.cgi?id=101150

        Reviewed by Vsevolod Vlasov.

        - Introduced a way to highlight nodes by object id in addition to node id.
        - Decorated nodes in the object tree outline and added on-hover highlighting.

        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::highlightNode):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype.highlightDOMNode):
        * inspector/front-end/DOMPresentationUtils.js:
        (WebInspector.DOMPresentationUtils.createSpansForNodeTitle):
        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertyTreeElement.prototype.update):
        (WebInspector.ObjectPropertyTreeElement.prototype._mouseMove):
        (WebInspector.ObjectPropertyTreeElement.prototype._mouseOut):
        * inspector/front-end/RemoteObject.js:
        (WebInspector.RemoteObject.prototype.highlightAsDOMNode):
        (WebInspector.RemoteObject.prototype.hideDOMNodeHighlight):
        * inspector/front-end/TestController.js:
        * inspector/front-end/externs.js:
        * inspector/front-end/inspector.css:
        (.console-formatted-node:hover):
        * inspector/front-end/utilities.js:

2012-11-29  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12771885> Support ruby-position: {before, after}
        https://bugs.webkit.org/show_bug.cgi?id=103569

        Reviewed by Anders Carlsson.

        Specified in <http://www.w3.org/TR/2011/WD-css3-ruby-20110630/#rubypos>, the ruby-position
        property takes four values: before, after, inter-character, and inline. This change adds
        support for the values before and after.

        Test: fast/ruby/position-after.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle ruby-position.
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue): Accept before and after as valid values for
        ruby-position.
        (WebCore::isKeywordPropertyID): Added ruby-position to the list of properties with keyword
        values.
        (WebCore::CSSParser::parseValue): Added ruby-position to the switch statement.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from RubyPosition.
        (WebCore::CSSPrimitiveValue::operator RubyPosition): Added mapping from CSSPrimitiveValue.
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty): Added ruby-position as an inherited property.
        * css/CSSPropertyNames.in: Added -webkit-ruby-position.
        * css/CSSValueKeywords.in: Added after and before.
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder): Added a handler for ruby-position.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty): Added ruby-position.
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Changed to choose which of
        hasAnnotationsBefore and hasAnnotationsAfter to set based on ruby position.
        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment): Changed to adjust only for
        ruby positioned before the base.
        (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment): Added adjustment for ruby
        positioned after the base.
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::layout): Account for ruby-position when positioning the ruby text
        relative to the base.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff): Made a ruby-position difference a layout difference.
        * rendering/style/RenderStyle.h: Added rubyPosition(), setRubyPosition(), and 
        initialRubyPosition().
        * rendering/style/RenderStyleConstants.h: Added the RubyPosition enum.
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialized for
        m_rubyPosition. Added copying the value of this member to the copy constructor.
        (WebCore::StyleRareInheritedData::operator==): Added comparison of m_rubyPosition.
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData): Added m_rubyPosition member variable.

2012-11-29  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        Internally Reviewed by Eli Fidler.
        Set text color after buttons are pressed.

        * css/themeBlackBerry.css:
        (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active):
        (select:active):
        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore):
        (WebCore::RenderThemeBlackBerry::paintButton):
        (WebCore::RenderThemeBlackBerry::paintMenuList):

2012-11-29  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurfaceGLX: remove redundant parameter from resolveGLMethods.
        https://bugs.webkit.org/show_bug.cgi?id=103636

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::resolveGLMethods):
        (WebCore::GraphicsSurface::platformCreate):
        (WebCore::GraphicsSurface::platformImport):

2012-11-29  Mike West  <mkwst@chromium.org>

        Typo in 'autofocus' sandboxing error message.
        https://bugs.webkit.org/show_bug.cgi?id=103616

        Reviewed by Jochen Eisinger.

        The sandbox attribute name is 'allow-scripts', not 'allow-script'. :(

        * html/HTMLFormControlElement.cpp:
        (WebCore::shouldAutofocus):

2012-11-29  Hajime Morrita  <morrita@google.com>

        HTMLMediaElement's .textTracks property does not reflect <track> element
        https://bugs.webkit.org/show_bug.cgi?id=103420

        Reviewed by Eric Carlson.

        There were some assumptions that <track> elements are valid only
        if the parent <media> is in document. This change relaxes this
        assumption so that <track> is valid when it has <media> as a
        parent regardless whether the <media> is in the document or not.

        HTMLMediaElement::didAddTrack and didRemoveTrack are now called
        when the <track> is inserted to or removed from the parent <media>
        element.

        Test: media/track/track-node-add-remove.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::didRemoveTrack):
        Renamed from willRemoveTrack() to reflect the timing. This was once called from
        Node::willRemove(), which was removed a while ago.
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::insertedInto):
        The old code notified parent <media> only if the subtree became a part of the document.
        Now it notifies the <media> when this <track> becomes a child of that <media>.

        (WebCore::HTMLTrackElement::removedFrom):
        The old code notifies the parent <media> every time as long as the parent is available.
        Now it notifies the <media> only if this <track> is removed from the parent <media>.
        This matches how corresponding notification is done in insertedInto().

        * html/track/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::trackElementIndex):

2012-11-29  Florin Malita  <fmalita@chromium.org>

        [Skia] Add missing OpaqueRegionSkia notifier calls
        https://bugs.webkit.org/show_bug.cgi?id=102824

        Reviewed by Stephen White.

        http://trac.webkit.org/changeset/135390 exposed some canvas draw clients which are not
        updating the opaque region tracker. This patch adds the required notifier calls.

        No new tests: platform unit tests added.

        * platform/graphics/skia/OpaqueRegionSkia.h:
        (OpaqueRegionSkia):
        * platform/graphics/skia/PlatformContextSkia.h:
        (WebCore::PlatformContextSkia::writePixels):
        (WebCore::PlatformContextSkia::drawBitmap):
        (WebCore::PlatformContextSkia::drawBitmapRect):
        (WebCore::PlatformContextSkia::drawIRect):
        (WebCore::PlatformContextSkia::drawPosText):
        (WebCore::PlatformContextSkia::drawPosTextH):
        (WebCore::PlatformContextSkia::drawTextOnPath):

2012-11-29  Andy Shaw  <andy.shaw@digia.com>

        [Qt] Implement support for Cocoa based NPAPI plugins on Mac
        https://bugs.webkit.org/show_bug.cgi?id=72358

        Reviewed by Simon Hausmann.

        With later versions of Flash they are only Cocoa based which meant that it was not possible to use Flash in a QtWebKit browser.
        This makes it possible to also use 64bit based plugins too.  

        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::initializeBrowserFuncs):
        (WebCore):
        * plugins/PluginQuirkSet.h:
        * plugins/PluginView.cpp:
        (WebCore::PluginView::handleEvent):
        (WebCore::PluginView::PluginView):
        (WebCore):
        (WebCore::PluginView::userAgent):
        * plugins/PluginView.h:
        (WebCore):
        (PluginView):
        * plugins/mac/PluginPackageMac.cpp:
        (WebCore::PluginPackage::determineQuirks):
        (WebCore::PluginPackage::fetchInfo):
        * plugins/mac/PluginViewMac.mm:
        (WebCore):
        (WebCore::initializeNPCocoaEvent):
        (WebCore::getModifiers):
        (WebCore::PluginView::platformStart):
        * plugins/npapi.cpp:
        (NPN_PopUpContextMenu):
        * plugins/npapi.h:

2012-11-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r136111.
        http://trac.webkit.org/changeset/136111
        https://bugs.webkit.org/show_bug.cgi?id=103620

        Broke compilation on Mac (unused private field m_matchMode)
        (Requested by apavlov on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLSelectElement.cpp:
        (WebCore):
        (WebCore::HTMLSelectElement::HTMLSelectElement):
        (WebCore::stripLeadingWhiteSpace):
        (WebCore::HTMLSelectElement::typeAheadFind):
        * html/HTMLSelectElement.h:
        (HTMLSelectElement):
        * html/TypeAhead.cpp: Removed.
        * html/TypeAhead.h: Removed.
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
        (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement):

2012-11-29  Keishi Hattori  <keishi@webkit.org>

        Better type ahead for DateTimeSymbolicFieldElement
        https://bugs.webkit.org/show_bug.cgi?id=103031

        Reviewed by Kent Tamura.

        This cuts out the type ahead code that will be used by HTMLSelectElement
        and DateTimeSymbolicFieldElement into a TypeAhead class. This will
        improve DateTimeSymbolicFieldElement type ahead which was first
        character match only, by adding cycling, prefix match and index number
        match.

        Added tests to month-multiple-fields-keyboard-events.html.

        * GNUmakefile.list.am: Added TypeAhead.{h,cpp}
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * CMakeLists.txt: Ditto.
        * html/HTMLSelectElement.cpp:
        (WebCore):
        (WebCore::HTMLSelectElement::HTMLSelectElement):
        (WebCore::HTMLSelectElement::indexOfSelectedOption): Returns index of current selection.
        (WebCore::HTMLSelectElement::optionCount): Returns total number of options.
        (WebCore::HTMLSelectElement::optionAtIndex): Returns option at index.
        (WebCore::HTMLSelectElement::typeAheadFind): Use TypeAhead.
        * html/HTMLSelectElement.h:
        (HTMLSelectElement):
        * html/TypeAhead.cpp: Added.
        (WebCore):
        (WebCore::TypeAhead::TypeAhead):
        (WebCore::stripLeadingWhiteSpace): Moved from HTMLSelectElement.cpp.
        (WebCore::TypeAhead::handleEvent): Returns index for match.
        * html/TypeAhead.h: Added.
        (WebCore):
        (TypeAheadDataSource): Provide the data about the options that TypeAhead should match against.
        (TypeAhead):
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
        (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
        (WebCore::DateTimeSymbolicFieldElement::indexOfSelectedOption):
        (WebCore):
        (WebCore::DateTimeSymbolicFieldElement::optionCount):
        (WebCore::DateTimeSymbolicFieldElement::optionAtIndex):
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement):

2012-11-29  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Fix content node renderers ordering inside the named flow thread
        https://bugs.webkit.org/show_bug.cgi?id=103501

        Reviewed by David Hyatt.

        This patch fixes two issues with how content nodes renderers are added to a named flow thread.
        The first issue was about determining the insertion position of a renderer inside the children list of a named flow thread. Before this patch, the
        insertion point was based on both the DOM ordering of the elements and insertion order of previous renderers.
        The patch fixes this and makes the renderer position just a function of the DOM ordering of elements.
        The second issue appeared when next/previousRenderer methods were skipping nodes because they had the flow-into property as a side effect
        of copying the style of the parent element (e.g. Text nodes). The patch ensures the skipped nodes are also elements.

        Tests: fast/regions/named-flow-content-order-1.html
               fast/regions/named-flow-content-order-2.html
               fast/regions/named-flow-content-order-3.html

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::nextRenderer): Skip only elements.
        (WebCore::NodeRenderingContext::previousRenderer): Skip only elements.
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::addFlowChild): Insert the renderer in the list based on the DOM position of the owner element.
        * rendering/RenderNamedFlowThread.h:
        (RenderNamedFlowThread):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::renderNamedFlowThreadWrapper): Rename to eliminate the confusion with enclosingRenderFlowThread.
        (WebCore::RenderObject::insertedIntoTree):
        (WebCore::RenderObject::willBeRemovedFromTree):
        * rendering/RenderObject.h:
        (RenderObject):

2012-11-28  Mike West  <mkwst@chromium.org>

        Add a test to ensure that 'seamless' iframes do not inherit contenteditable.
        https://bugs.webkit.org/show_bug.cgi?id=95890

        Reviewed by Ojan Vafai.

        We don't currently support inheriting contenteditable into a seamless
        frame. http://html5.org/tools/web-apps-tracker?from=7318&to=7319
        brought the spec in line with WebKit's behavior (ha!). This patch
        defends the behavior by adding a test, and removes a FIXME comment
        now that the question is settled.

        It also exposes a brand new bug: https://bugs.webkit.org/show_bug.cgi?id=103539
        How exciting.

        Test: fast/frames/seamless/seamless-contenteditable-not-inherited.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForDocument):
            No functional change, just dropping a FIXME comment.

2012-11-28  Mike West  <mkwst@chromium.org>

        Web Inspector: Console message's anchor element should be trimmed for readability.
        https://bugs.webkit.org/show_bug.cgi?id=100095

        Reviewed by Pavel Feldman.

        We're currently trimming URLs that go through
        'WebInspector.linkifyURLAsNode' down to 150 characters total. Not all
        URLs go that path, however. We were missing a few cases that dropped
        back to the default Linkifier (which especially showed up for "Live"
        anchor elements).

        This patch ensures that anything using WebInspector.Linkifier is also
        trimmed by default. It adds a new constant to do so in order to avoid
        magic numbers in the code.

        Test: http/tests/inspector/network/script-as-text-loading-long-url.html

        * inspector/front-end/Linkifier.js:
        (WebInspector.Linkifier):
            Pass the max length into the default formatter that's created and
            stored when creating a 'WebInspector.Linkifier' object.
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.linkifyURLAsNode):
            Use the new maxlength constant rather than hard-coding 150.

2012-11-28  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::toV8Fast):

2012-11-28  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] ShadowRoot should cache InsertionPointList.
        https://bugs.webkit.org/show_bug.cgi?id=103212

        Reviewed by Hajime Morita.

        When distributing or invalidating distribution, we used to traverse all descendent nodes in Shadow DOM.
        If ShadowRoot has a InsertionPoint list, we can just traverse the list.

        No new tests, should be covered by existing tests.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::insertionPointList):
        (WebCore):
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData):
        (WebCore::ShadowRootContentDistributionData::invalidateInsertionPointList):
        (WebCore):
        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList): Creates InsertionPoint list
        if it's not created and return it.
        (WebCore::ContentDistributor::distribute): Traverse InsertionPointList instead of all descendent nodes in Shadow DOM.
        (WebCore::ContentDistributor::invalidate): ditto.
        * html/shadow/ContentDistributor.h:
        (WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren): Invalidate InsertionPointList cache.
        (WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren): ditto.
        (WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren): ditto.
        (WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren): ditto.
        (ShadowRootContentDistributionData):

2012-11-28  Michael Pruett  <michael@68k.org>

        IndexedDB: Remove duplicate toWireString() and createFromWire() methods in JSC SerializedScriptValue
        https://bugs.webkit.org/show_bug.cgi?id=103554

        Reviewed by Kentaro Hara.

        In r135022, duplicate createFromWire() and toWireString() methods
        were added to the JSC version of SerializedScriptValue. In
        order to allow the JSC SerializedScriptValue to compile when
        ENABLE(INDEXED_DATABASE) is turned on, these new methods have
        been removed and the old methods have been moved outside the
        ENABLE(INDEXED_DATABASE) guard.

        No new tests. No change in functionality.

        * WebCore.exp.in:
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::toWireString):
        (WebCore):
        (WebCore::SerializedScriptValue::createFromWire):
        * bindings/js/SerializedScriptValue.h:

2012-11-28  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Element.createShadowRoot() should be prefixed.
        https://bugs.webkit.org/show_bug.cgi?id=103595

        Reviewed by Kentaro Hara.

        No new tests, updated shadow-aware-create-shadow-root.html to follow the change.

        * dom/Element.idl:

2012-11-28  Hayato Ito  <hayato@chromium.org>

        Node::compareDocumentPosition returns wrong value for a node in the different shadow tree.
        https://bugs.webkit.org/show_bug.cgi?id=103502

        Reviewed by Dimitri Glazkov.

        Make Node::compareDocumentPosition() return the correct value when two nodes are in the different shadow trees.

        Test: fast/dom/shadow/compare-document-position.html

        * dom/Node.cpp:
        (WebCore::Node::compareDocumentPosition):

2012-11-28  Joshua Bell  <jsbell@chromium.org>

        [Chromium] IndexedDB: Assert/crash in indexing layout tests in content_shell
        https://bugs.webkit.org/show_bug.cgi?id=103562

        Reviewed by Tony Chang.

        In multi-process ports, an commit request or setIndexesReady request may arrive from the
        front-end after the back-end has already aborted. Don't freak out if those occur.

        Tests: storage/indexeddb/index-population.html
               storage/indexeddb/lazy-index-population.html
               storage/indexeddb/transaction-error.html

        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys): Ensure transaction hasn't finished before continuing.
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady): Ditto.
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::commit): Ignore a commit request if already aborted.

2012-11-28  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Move Distribution requirements from ShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=103481

        Reviewed by Hajime Morita.

        We would like to shrink the ShadowRoot memory size in this patch. ShadowRoot had several distribution related members,
        however they were used only if ShadowRoot has <content>, <shadow>, or nested ShadowRoot.
        Since <input> or <textarea> do not have such requirements, the members consume a few amount of memory.

        We remove them from ShadowRoot and introduce some RareData-like data structure for ShadowRoot.
        This will reduce memory footprint in most cases.

        No new tests, refactoring.

        * WebCore.exp.in:
        * dom/ShadowRoot.cpp:
        (SameSizeAsShadowRoot): Reduced 3 * sizeof(unsigned) bytes from ShadowRoot.
        (WebCore::ShadowRoot::ShadowRoot): DistributionData is created only when necessary. <input> or <textarea> won't
        create such data.
        (WebCore::ShadowRoot::assignedTo):
        (WebCore):
        (WebCore::ShadowRoot::setAssignedTo):
        (WebCore::ShadowRoot::ensureDistributionData):
        (WebCore::ShadowRoot::registerShadowElement):
        (WebCore::ShadowRoot::unregisterShadowElement):
        (WebCore::ShadowRoot::hasShadowInsertionPoint):
        (WebCore::ShadowRoot::registerContentElement):
        (WebCore::ShadowRoot::unregisterContentElement):
        (WebCore::ShadowRoot::hasContentElement):
        (WebCore::ShadowRoot::registerElementShadow):
        (WebCore::ShadowRoot::unregisterElementShadow):
        (WebCore::ShadowRoot::hasElementShadow):
        (WebCore::ShadowRoot::countElementShadow):
        (WebCore::ShadowRoot::reportMemoryUsage):
        * dom/ShadowRoot.h:
        (WebCore):
        (ShadowRoot):
        (WebCore::ShadowRoot::distributionData):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData):
        (WebCore):
        * html/shadow/ContentDistributor.h:
        (ShadowRootContentDistributionData): Distribution related fields in ShadowRoot are moved to here.
        (WebCore::ShadowRootContentDistributionData::insertionPointAssignedTo):
        (WebCore::ShadowRootContentDistributionData::setInsertionPointAssignedTo):
        (WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren):
        (WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren):
        (WebCore::ShadowRootContentDistributionData::numberOfShadowElementChildren):
        (WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren):
        (WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren):
        (WebCore::ShadowRootContentDistributionData::numberOfContentElementChildren):
        (WebCore::ShadowRootContentDistributionData::incrementNumberOfElementShadowChildren):
        (WebCore::ShadowRootContentDistributionData::decrementNumberOfElementShadowChildren):
        (WebCore::ShadowRootContentDistributionData::numberOfElementShadowChildren):
        (WebCore):

2012-11-23  Dirk Schulze  <krit@webkit.org>

        Remove -webkit-mask-attachment
        https://bugs.webkit.org/show_bug.cgi?id=67137

        Reviewed by David Hyatt.

        Remove CSS property '-webkit-attachment'. The CSS WG agreed that this should not be
        part of the CSS Masking specification. WebKit never implemented the behavior of
        attached masks either. The property was just exposed in CSSOM.

        Test: Added negative tests to fast/masking/parsing-mask.html.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFillProperty):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::asText):
        * css/StylePropertyShorthand.cpp:
        (WebCore::webkitMaskShorthand):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/style/RenderStyle.h:

2012-11-28  Michael Pruett  <michael@68k.org>

        IndexedDB: Add forward declaration of SecurityOrigin to IDBBackingStore.h
        https://bugs.webkit.org/show_bug.cgi?id=103578

        Reviewed by Kentaro Hara.

        Add forward declaration of SecurityOrigin to IDBBackingStore.h
        in order to enable compilation of IndexedDB for JSC.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore):

2012-11-28  Hajime Morrita  <morrita@google.com>

        checkAcceptChild() needs fewer virtual calls
        https://bugs.webkit.org/show_bug.cgi?id=103372

        Reviewed by Ojan Vafai.

        This change reorganizes checkAcceptChild family for speed.

        - Made Node::checkAddChild and Node::checkReplaceChild() static inline functions
          in ContainerNode.cpp. checkAcceptChild() was also moved to the same file. This allows us
          more aggressive inlining.

        - Added a fast path in checkAcceptChild(), where we can assume that the parent is element
          and the new child is element or text. Under this assumption, we need no extra type checks
          and just needs a cycle prevention through Node::contains(). This is faster than current generic version.

        - Moved extra checks from checkAddChild() and checkReplaceChild() to
          checkAcceptChild(). This allows the fast path skips even these extra checks.

        - Node::canReplaceChild() is devirtualized. Since the only override is on
          Document, we can check isDocumentNode() to call it directly.

        - The default implemenation of Node::canReplaceChild() just calls isChildTypeAllowed().
          That is what an extra check for checkAddChild() did. So we can share these code path in checkAcceptChild().

        This gains 2-3% win on Dromaeo dom-modify.html.

        No new tests, covered by existing tests.

        * dom/ContainerNode.cpp:
        (WebCore::isChildTypeAllowed): Moved from Node.cpp
        (WebCore::checkAcceptChild): Moved from Node.cpp, Added a fast path.
        (WebCore::checkAddChild): Moved from Node.cpp
        (WebCore::checkReplaceChild): Moved from Node.cpp
        (WebCore::ContainerNode::insertBefore): Followed the signature change.
        (WebCore::ContainerNode::replaceChild): Followed the signature change, moved null check from checkReplaceChild to here.
        (WebCore::ContainerNode::appendChild): Followed the signature change.
        * dom/Document.h:
        (Document):
        * dom/Node.cpp:
        * dom/Node.h:
        (WebCore::Node::isDocumentTypeNode): Added for better readability of call sites.

2012-11-28  Kenichi Ishibashi  <bashi@chromium.org>

        StyleResolver should not set NaN to font size
        https://bugs.webkit.org/show_bug.cgi?id=99506

        Reviewed by Abhishek Arya.

        fixedScaleFactor could be NaN since settings->defaultFixedFontSize()
        and settings->defaultFontSize() are zero in some case. This turns
        out setting NaN to font size. Add a zero checks so that
        fixedScaleFactor won't be NaN.

        Test: fast/css/font-size-nan.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::checkForGenericFamilyChange):

2012-11-28  Tim Horton  <timothy_horton@apple.com>

        [mac] WebHTMLConverter should maintain font size even when there is no related NSFont
        https://bugs.webkit.org/show_bug.cgi?id=103568

        Reviewed by Alexey Proskuryakov.

        WebHTMLConverter should use the default font at the correct size when it
        encounters a font that cannot be backed by an NSFont (e.g. a WebFont).

        * platform/mac/HTMLConverter.mm:
        (+[WebHTMLConverter editingAttributedStringFromRange:]):

2012-11-23  Dirk Schulze  <krit@webkit.org>

        CSS parser does not support -webkit-mask-size for -webkit-mask shorthand
        https://bugs.webkit.org/show_bug.cgi?id=103020

        Reviewed by David Hyatt.

        Harmonize the syntax of '-webkit-mask' property with 'background' according to the
        CSS Masking specification[1]. This should make it easier to maintain both shorthand
        properties in the long term.
        It is very unlikely that a lot of content (if any) is affected by this change. The
        computed style still is not implemented and this change should rather make it easier
        for developers.

        With the harmonization, the '-webkit-mask-size' property is part of the shorthand as
        well now.

        parsing-mask.html covers all the changes. Added new tests for the changed syntax and
        '-webkit-mask-size'

        [1] http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFillShorthand):
        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::getLayeredShorthandValue):
        * css/StylePropertyShorthand.cpp:
        (WebCore::webkitMaskShorthand):

2012-11-28  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Change frontend to call IDBDatabaseBackendInterface::createTransaction()
        https://bugs.webkit.org/show_bug.cgi?id=102732

        Reviewed by Tony Chang.

        Use the new createTransaction, now that it has been stubbed
        out. This is part 2 of 3 of a refactor. See
        https://bugs.webkit.org/show_bug.cgi?id=102733 for part 3.

        No new tests as this refactor simply keeps and propagates a
        counter that is currently unused.

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::nextTransactionId):
        (WebCore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabase.h:
        (IDBDatabase):
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        (WebCore::IDBTransaction::IDBTransaction):
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):

2012-11-28  Michael Saboff  <msaboff@apple.com>

        HTMLFontElement font size parsing should directly handle 8 bit strings
        https://bugs.webkit.org/show_bug.cgi?id=103315

        Reviewed by Oliver Hunt.

        Split parseFontSize() into a templated function based on character type and a wrapper that determines
        a string's bitness before calling the template.

        No new tests. No change in functionality.

        * html/HTMLFontElement.cpp:
        (WebCore::parseFontSize):

2012-11-28  Robert Kroeger  <rjkroege@chromium.org>

        remove unused PlatformGestureCurve code
        https://bugs.webkit.org/show_bug.cgi?id=103296

        Reviewed by Adam Barth.

        Previous CLs have made the Chromium embedder provide gesture fling
        curve implementation to WebKit. Consequently no platform uses the
        gestural fling code currently found in WebKit. This CL removes this code.

        Code removal only: covered by existing tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * platform/ActivePlatformGestureAnimation.cpp: Removed.
        * platform/ActivePlatformGestureAnimation.h: Removed.
        * platform/PlatformGestureCurve.h: Removed.
        * platform/PlatformGestureCurveTarget.h: Removed.
        * platform/ScrollAnimatorNone.cpp: References to removed code removed.
        * platform/ScrollAnimatorNone.h:
        * platform/TouchFlingPlatformGestureCurve.cpp: Removed.
        * platform/TouchFlingPlatformGestureCurve.h: Removed.
        * platform/WheelFlingPlatformGestureCurve.cpp: Removed.
        * platform/WheelFlingPlatformGestureCurve.h: Removed.
        * platform/chromium/support/PlatformGestureCurveFactory.cpp: Removed.
        * platform/chromium/support/PlatformGestureCurveFactory.h: Removed.
        * platform/chromium/support/WebFlingAnimatorToGestureCurveAdapter.h: Removed.

2012-11-28  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::EventHandler::handleMousePressEvent
        https://bugs.webkit.org/show_bug.cgi?id=101098

        Reviewed by Adam Barth.

        |subframe| can be blown away inside passMousePressEventToSubframe
        call. Use RefPtr to protect it in handleMousePressEvent function.
        We use similar approach in handleMouseMoveEvent function.

        No new tests. Test is extremely time dependent and needs to trigger
        interaction gesture. Reproduced on ClusterFuzz.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):

2012-11-28  Tom Sepez  <tsepez@chromium.org>

        XSSAuditor bypass with script src=data: URL ending in <!--
        https://bugs.webkit.org/show_bug.cgi?id=103548

        Reviewed by Adam Barth.

        This fixes an additional case where characters from the page itself are
        included with the snippet to match against the reflected vector, and the
        JS remains legitimate because of a <!--- comment. Truncate the snippet at
        such a comment.
        
        Test: http/tests/security/xssAuditor/script-tag-with-source-data-url3.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::decodedSnippetForAttribute):

2012-11-28  Abhishek Arya  <inferno@chromium.org>

        Heap-use-after-free in WebCore::RenderLayerModelObject::hasSelfPaintingL
ayer
        https://bugs.webkit.org/show_bug.cgi?id=101970

        Reviewed by David Hyatt.

        RenderInline::splitFlow and RenderBlock::splitFlow re-use |pre|
        block in some cases. In those cases, |pre| might hold floating objects
        and those floating descendants might get moved to |post| block. If
        the |pre| block does not get a layout later, then the floating
        descendant will never get removed since it is now part of |post|
        ancestor chain. We don't want failing-to-layout bugs turned into
        security bugs and hence clear floating objects list since we expect
        it to be rebuilt in subsequent layout.

        Test: fast/block/float/float-not-removed-from-pre-block.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::splitFlow): Call removeFloatingObjects on |pre| block.
        (WebCore::RenderBlock::removeFloatingObjects): Clear all floating objects from our list.
        (WebCore):
        * rendering/RenderBlock.h: 
        (RenderBlock):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::splitFlow): Call removeFloatingObjects on |pre| block.

2012-11-28  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Remove pluginsScriptableObject from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=103542

        Reviewed by Adam Barth.

        Part of a refactoring series. See tracking bug 82948.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::createScriptInstanceForWidget):
        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):
        * plugins/PluginViewBase.h:
        (PluginViewBase):
        (WebCore::PluginViewBase::scriptableObject):

2012-11-28  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] CookieJarBlackBerry will use document settings for cookiesEnabled
        https://bugs.webkit.org/show_bug.cgi?id=103560

        Reviewed by Rob Buis.

        PR 253490

        CookieJarBlackBerry will now use page settings to check whether
        cookie is enabled.

        Tested setting/reading cookies on different client cookie settings using
        javascript and HTTP. Cookie behaviour is now back to spec.

        * loader/blackberry/CookieJarBlackBerry.cpp:
        (WebCore::cookies):
        (WebCore::cookieRequestHeaderFieldValue):

2012-11-28  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium][Win] Remove ensureFontLoaded from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=97696

        Reviewed by Adam Barth.

        Move ensureFontLoaded() from PlatformSupport to
        FontPlatformDataChromiumWin. Part of a refactoring series; see
        tracking bug 82948.

        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):
        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
        (WebCore::fontContainsCharacter):
        * platform/graphics/chromium/FontChromiumWin.cpp:
        (WebCore::drawGlyphsWin):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
        (WebCore::FontPlatformData::scriptFontProperties):
        (WebCore):
        (WebCore::FontPlatformData::ensureFontLoaded):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
        (FontPlatformData):
        * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
        (WebCore::getGlyphIndices):
        (WebCore::fillBMPGlyphs):
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformBoundsForGlyph):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
        (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
        * platform/graphics/skia/SkiaFontWin.cpp:
        (WebCore::paintSkiaText):

2012-11-28  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Crash when requesting favicon.
        https://bugs.webkit.org/show_bug.cgi?id=102689

        Reviewed by Brent Fulgham.

        * platform/graphics/BitmapImage.h: Made frameCount() method virtual, subclasses made for testing can then override it.
        * platform/graphics/win/ImageCairoWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize): Added NULL pointer check.
        (WebCore::BitmapImage::drawFrameMatchingSourceSize): Added NULL pointer check.

2012-11-28  Tony Chang  <tony@chromium.org>

        Move internals.settings.setPageScaleFactor to internals.setPageScaleFactor
        https://bugs.webkit.org/show_bug.cgi?id=103559

        Reviewed by Jochen Eisinger.

        This method doesn't alter the Settings object, so move it to internals.

        No new tests, this is a refactor.

        * testing/InternalSettings.cpp: Remove.
        * testing/InternalSettings.h: Remove.
        * testing/InternalSettings.idl: Remove.
        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState): Add reset code.
        (WebCore::Internals::setPageScaleFactor): Add method.
        * testing/Internals.h: Add method.
        * testing/Internals.idl: Add method.

2012-11-28  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Regions] Elements using transforms are not repainted correctly when rendered in a region
        https://bugs.webkit.org/show_bug.cgi?id=102826

        Reviewed by Dave Hyatt.

        Follow up update of a comment after the patch was landed by the commit queue in r135921.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containerForRepaint):

2012-11-28  Christophe Dumez  <christophe.dumez@intel.com>

        CSS3 Multicolumn: column-span should accept value 'none' (instead of '1')
        https://bugs.webkit.org/show_bug.cgi?id=101462

        Reviewed by David Hyatt.

        According to the latest CSS3 Multi-column specification:
        http://www.w3.org/TR/2011/CR-css3-multicol-20110412/#column-span

        column-span should accept values [ none | all ], instead of
        [ 1 | all ]. This patch updates WebKit implementation to reflect
        this change in the specification. The value 1 is still supported
        for compatibility reasons and is mapped to none.

        No new tests, already covered by existing tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator ColumnSpan):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:

2012-11-28  Anton Vayvod  <avayvod@chromium.org>

        Text Autosizing: Clusters should use width of LCA of their text nodes
        https://bugs.webkit.org/show_bug.cgi?id=102562

        Reviewed by Kenneth Rohde Christiansen.

        Many pages set a max-width on their content. So especially for the
        RenderView, instead of just taking the width of |cluster| we find
        the lowest common ancestor of the first and last descendant text node of
        the cluster (i.e. the deepest wrapper block that contains all the text),
        and use its width instead.

        Tests: fast/text-autosizing/cluster-with-narrow-lca-and-cluster.html
               fast/text-autosizing/cluster-with-narrow-lca.html
               fast/text-autosizing/cluster-with-wide-lca.html
               fast/text-autosizing/list-item-out-of-flow.html
               fast/text-autosizing/wide-in-narrow-overflow-scroll.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::processCluster): use text nodes LCA instead of cluster for width calculation
        (WebCore::TextAutosizer::isAutosizingContainer): list items that are out of parent list element's flow are valid containers (that therefore become clusters in isAutosizingCluster)
        (WebCore::TextAutosizer::findDeepestBlockContainingAllText): searches for LCA of text nodes ignoring descendant clusters
        (WebCore::TextAutosizer::findFirstTextLeafNotInCluster): searches for the first or the last (depending on specified direction) text leaf node in-order ignoring any descendant clusters
        * rendering/TextAutosizer.h: new private methods declarations and an enum for tree traversal direction.

2012-11-28  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        cleanup: Change some code to be cleaner, more readable and style conforming
        https://bugs.webkit.org/show_bug.cgi?id=103543

        Reviewed by Antonio Gomes.

        Use more appropriate function name and more meaningful variable names to make the code cleaner.
        This is covered by existing tests. This does not make any behavioural changes, so no new tests.

        * page/EventHandler.cpp:
        (WebCore::closestScrollableNodeInDocumentIfPossible):
        (WebCore::EventHandler::handleWheelEvent):

2012-11-28  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Regions] Crash when using hover and first-letter inside a flow-thread
        https://bugs.webkit.org/show_bug.cgi?id=102957

        Reviewed by David Hyatt.

        Some RenderObjects use a different path when they are destroyed. That's because they are dynamically
        added just before layout happens and their parent is usually not their actual owner. In those cases the parent
        will remove the object from the tree, but it's actually the owner that will destroy the object and all its
        children.

        RenderFlowThread maintains a RenderBoxRegionInfo object for each RenderObject that is rendered inside the
        flow-thread. When the RenderObject is removed from the RenderFlowThread, the associated RenderBoxRegionInfo object
        also needs to be removed.

        In these special cases (list-marker, first-letter), the object itself was removed from the RenderFlowThread,
        but its children were still left in the flow-thread. When the these special objects were later destroyed, 
        they will remove their own children. Removing their children means it will try to remove them from the
        associated RenderFlowThread. However, in this cases there would be no link back to the parent flow-thread,
        as the tree is now detached from the enclosing RenderFlowThread.

        Added code that recursively removes the whole children tree from the RenderFlowThread when the root is removed.

        Tests: fast/regions/firstletter-inside-flowthread.html
               fast/regions/listmarker-inside-flowthread.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeRemovedFromTree):
        (WebCore::RenderObject::removeFromRenderFlowThread):
        (WebCore):
        (WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
        * rendering/RenderObject.h:
        (RenderObject):

2012-11-28  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Regions] Auto-height regions will not calculate the height correctly when the content changes dynamically
        https://bugs.webkit.org/show_bug.cgi?id=102954

        Reviewed by David Hyatt.

        Whenever the flow changes, we need to reset the region computed auto-heights.
        However, when we reset the region heights to "auto" or "un-computed", we also need to make
        sure that all the region breaks are counted again, so that we split regions correctly during the new layout.
        I've reused the m_regionsInvalidated property to force the flow do a complete layout.

        Test: fast/regions/autoheight-dynamic-update.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):

2012-11-28  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Regions] InRenderFlowThread returns false in the first setStyle
        https://bugs.webkit.org/show_bug.cgi?id=102839

        Reviewed by Dave Hyatt.

        Some render objects use the "inRenderFlowThread" during the first styleWillChange/styleDidChange.
        The first call to these methods comes from NodeRendererFactory::createRenderer. That happens before the RenderObject is 
        attached to the parent renderer, meaning that inRenderFlowThread is false. That means a RenderLayerBacking will be 
        created for renderers inside the RenderFlowThread, but composited layers inside the RenderFlowThread are not supported yet.
        https://bugs.webkit.org/show_bug.cgi?id=84900

        Test: fast/repaint/region-painting-composited-element.html

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRendererFactory::createRenderer):
        Added code to propagate the inRenderFlowThread flag from the parent node before the style is set for the first time.

2012-11-28  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12645085> REGRESSION (r130851): With kerning enabled, a white-space: pre-wrap inline starting with tab+space has the wrong width
        https://bugs.webkit.org/show_bug.cgi?id=103541

        Reviewed by Anders Carlsson.

        Test: fast/text/tab-with-kerning.html

        When kerning is enabled, words are measured with their trailing space, then the width of a
        space is subtracted. The logic to do this was incorrectly being invoked even when the
        trailing whitespace character was a tab or a newline.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Changed to check only for the space
        character, not other space-like characters.

2012-11-28  Nate Chapin  <japhet@chromium.org>

        Move empty loading to DocumentLoader, simplify FrameLoader::init()
        https://bugs.webkit.org/show_bug.cgi?id=101512

        Reviewed by Adam Barth.

        No new tests, though several outputs changed because we no longer send resource
            load callbacks for empty loads.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::DocumentLoader):
        (WebCore::DocumentLoader::~DocumentLoader):
        (WebCore::DocumentLoader::finishedLoading):
        (WebCore::DocumentLoader::commitData):
        (WebCore::DocumentLoader::clearMainResourceLoader):
        (WebCore::DocumentLoader::isLoadingInAPISense):
        (WebCore::DocumentLoader::documentURL):
        (WebCore::DocumentLoader::isLoadingMainResource):
        (WebCore::DocumentLoader::maybeLoadEmpty):
        (WebCore):
        (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
             loads directly here.
        * loader/DocumentLoader.h:
        (WebCore::DocumentLoader::serverRedirectSourceForHistory):
        (DocumentLoader):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
            were previously being reset in init(). Given that the FrameLoader is in
            an inconsistent state before init() is called anyway, there doesn't seem
            to be a disadvantage to just initializing them to their post-init() values.
        (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
            doing a bunch of direct calls to functions FrameLoader shouldn't know about.
        * loader/FrameLoaderStateMachine.cpp:
        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
        * loader/FrameLoaderStateMachine.h:
        * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
        (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
            load got deferred, which won't happen now. Return void and always treat
            as returning false.
        * loader/MainResourceLoader.h:
        (MainResourceLoader):

2012-11-28  Antoine Quint  <graouts@apple.com>

        Calling .removeCue() for a cue that was never added should raise a NOT_FOUND_ERR
        https://bugs.webkit.org/show_bug.cgi?id=103412

        Reviewed by Eric Carlson.

        Updating the .removeCue() implementation to match the latest spec. This means we now
        raise a NOT_FOUND_ERR exception when trying to remove a cue that wasn't present in the
        cue list instead of a INVALID_STATE_ERR exception like the spec used to mandate.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::removeCue):

2012-11-28  Zeno Albisser  <zeno@webkit.org>

        [Qt][Win] Enable usage of QTWEBKIT_PLUGIN_PATH.
        https://bugs.webkit.org/show_bug.cgi?id=103529

        This patch enables the same behavior for Windows
        as it is currently implemented for all other operating
        systems supported by Qt.
        Directories listed in the environment variable
        QTWEBKIT_PLUGIN_PATH are being searched for additional
        plugins.
        The only difference is that directories on Windows
        need to be separated by a semicolon instead of a colon.

        Reviewed by Kenneth Rohde Christiansen.

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore):
        (WebCore::addQtWebKitPluginPath):
        (WebCore::PluginDatabase::defaultPluginDirectories):

2012-11-28  Adam Barth  <abarth@webkit.org>

        [v8] 4% regression in dom_traverse tests
        https://bugs.webkit.org/show_bug.cgi?id=102858

        Unreviewed.

        This patch is a manual rollout of
        http://trac.webkit.org/changeset/134729. We can't do a mechanical
        rollout because V8DOMWrapper::getCachedWrapper no longer exists.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):

2012-11-28  Denis Nomiyama  <d.nomiyama@samsung.com>

        Removed extra definition of GLXContext.
        https://bugs.webkit.org/show_bug.cgi?id=103500

        Reviewed by Martin Robinson.

        A minor cleanup to remove a spare definition of GLXContext in GLContextGLX.h.

        No new tests. This doesn't change any behavior.

        * platform/graphics/glx/GLContextGLX.h:

2012-11-28  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        Fix gesture scrolling when the target-element of scroll-begin is removed
        https://bugs.webkit.org/show_bug.cgi?id=103355

        Reviewed by Antonio Gomes.

        When a touch-scroll starts, the node under the touch-point gets latched, and
        subsequent scroll-update events are dispatched to that node. But if the node is
        removed while the gesture event is in progress (e.g. in a dynamically updated
        list), then the scrolling stops, although there are enough elements to still
        enable scrolling. So instead of latching on to the node immediately under the
        touch point, latch on to the scrollable node under the touch point.

        Test: fast/events/touch/gesture/touch-gesture-scroll-remove-node.html

        * page/EventHandler.cpp:
        (WebCore::getClosestScrollableNodeInDocumentIfPossible):
        (WebCore):
        (WebCore::EventHandler::handleWheelEvent):

2012-11-28  Anton Obzhirov  <a.obzhirov@samsung.com>

        Fix .libs/libwebkitgtk-3.0.so: undefined reference to `WebCore::validationMessageBadInputForNumberText().
        https://bugs.webkit.org/show_bug.cgi?id=103509

        Reviewed by Philippe Normand.

        GTK build fix after r136001.

        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::validationMessageBadInputForNumberText):
        (WebCore):

2012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>

        [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
        https://bugs.webkit.org/show_bug.cgi?id=101132

        Reviewed by Gyuyoung Kim.

        Add mutex locker for the ecore pipe to ensure thread-safety of
        RunLoop::wakeUp().

        RunLoop::wakeUp() can be called by multiple thread. It uses
        ecore_pipe_write() function but the function is not thread-safe.

        * platform/RunLoop.h:
        (RunLoop):
        * platform/efl/RunLoopEfl.cpp:
        (WebCore::RunLoop::wakeUp):

2012-11-28  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL] Refactor theme to choose whether to support foreground color of selection
        https://bugs.webkit.org/show_bug.cgi?id=102037

        Reviewed by Kenneth Rohde Christiansen.

        If foreground selection color is supported, selected text is painted to
        SelectionForegroundColor instead of text color. If not, text can be painted
        to text color.

        However, EFL port does not have a way to disable support of foreground
        selection color. So this patch refactors color classes of theme from
        active and inactive to foreground and background in order to disable support
        of foreground selection color when foreground color class is not specified.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::fillColorsFromEdjeClass):
        Returned false without error message when colorClass is not specified.
        (WebCore::RenderThemeEfl::setColorFromThemeClass):
        (WebCore::RenderThemeEfl::loadTheme):
        (WebCore::RenderThemeEfl::RenderThemeEfl):
        (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
        (WebCore):
        * platform/efl/RenderThemeEfl.h:
        (RenderThemeEfl):

2012-11-28  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Move childrenAffectedBy bits from RenderStyle to Element
        https://bugs.webkit.org/show_bug.cgi?id=101448

        Unreviewed buildfix.

        To use renderStyle() on some Macs we need to include NodeRenderStyle.h.

        * dom/ContainerNode.cpp:

2012-11-28  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Move childrenAffectedBy bits from RenderStyle to Element
        https://bugs.webkit.org/show_bug.cgi?id=101448
        https://bugs.webkit.org/show_bug.cgi?id=98021

        Reviewed by Antti Koivisto.

        Moves facts observed about restyling dependencies out of RenderStyle and
        into RareData for Node and Element. This also enables further cleanup
        in related code that tried to deal with problems caused with the placement
        of the data.

        Test: fast/css/nth-child-not-in-rightmost.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        (WebCore::SelectorChecker::checkOneSelector):
        * css/SiblingTraversalStrategies.h:
        (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::sortAndTransferMatchedRules):
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::parentElementPreventsSharing):
        (WebCore::StyleResolver::locateSharedStyle):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::setActive):
        (WebCore::ContainerNode::setHovered):
        * dom/Element.cpp:
        (WebCore::Element::detach):
        (WebCore::Element::recalcStyle):
        (WebCore::checkForEmptyStyleChange):
        (WebCore::checkForSiblingStyleChanges):
        (WebCore::Element::setChildrenAffectedByHover):
        (WebCore::Element::setChildrenAffectedByActive):
        (WebCore::Element::setChildrenAffectedByDrag):
        (WebCore::Element::setChildrenAffectedByFirstChildRules):
        (WebCore::Element::setChildrenAffectedByLastChildRules):
        (WebCore::Element::setChildrenAffectedByDirectAdjacentRules):
        (WebCore::Element::setChildrenAffectedByForwardPositionalRules):
        (WebCore::Element::setChildrenAffectedByBackwardPositionalRules):
        (WebCore::Element::setChildIndex):
        (WebCore::Element::rareDataStyleAffectedByEmpty):
        (WebCore::Element::rareDataChildrenAffectedByHover):
        (WebCore::Element::rareDataChildrenAffectedByActive):
        (WebCore::Element::rareDataChildrenAffectedByDrag):
        (WebCore::Element::rareDataChildrenAffectedByFirstChildRules):
        (WebCore::Element::rareDataChildrenAffectedByLastChildRules):
        (WebCore::Element::rareDataChildrenAffectedByDirectAdjacentRules):
        (WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules):
        (WebCore::Element::rareDataChildrenAffectedByBackwardPositionalRules):
        (WebCore::Element::rareDataChildIndex):
        * dom/Element.h:
        (Element):
        (WebCore::Element::styleAffectedByEmpty):
        (WebCore::Element::childrenAffectedByHover):
        (WebCore::Element::childrenAffectedByActive):
        (WebCore::Element::childrenAffectedByDrag):
        (WebCore::Element::childrenAffectedByPositionalRules):
        (WebCore::Element::childrenAffectedByFirstChildRules):
        (WebCore::Element::childrenAffectedByLastChildRules):
        (WebCore::Element::childrenAffectedByDirectAdjacentRules):
        (WebCore::Element::childrenAffectedByForwardPositionalRules):
        (WebCore::Element::childrenAffectedByBackwardPositionalRules):
        (WebCore::Element::childIndex):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::resetComputedStyle):
        (WebCore::ElementRareData::resetDynamicRestyleObservations):
        * dom/Node.cpp:
        (WebCore::Node::diff):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::childrenAffectedByHover):
        (WebCore::NodeRareData::setChildrenAffectedByHover):
        (WebCore::NodeRareData::childrenAffectedByActive):
        (WebCore::NodeRareData::setChildrenAffectedByActive):
        (WebCore::NodeRareData::childrenAffectedByDrag):
        (WebCore::NodeRareData::setChildrenAffectedByDrag):
        (NodeRareData):
        (WebCore::NodeRareData::childrenAffectedByFirstChildRules):
        (WebCore::NodeRareData::setChildrenAffectedByFirstChildRules):
        (WebCore::NodeRareData::childrenAffectedByLastChildRules):
        (WebCore::NodeRareData::setChildrenAffectedByLastChildRules):
        (WebCore::NodeRareData::childrenAffectedByDirectAdjacentRules):
        (WebCore::NodeRareData::setChildrenAffectedByDirectAdjacentRules):
        (WebCore::NodeRareData::childrenAffectedByForwardPositionalRules):
        (WebCore::NodeRareData::setChildrenAffectedByForwardPositionalRules):
        (WebCore::NodeRareData::childrenAffectedByBackwardPositionalRules):
        (WebCore::NodeRareData::setChildrenAffectedByBackwardPositionalRules):
        (WebCore::NodeRareData::childIndex):
        (WebCore::NodeRareData::setChildIndex):
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
        * page/TouchAdjustment.cpp:
        (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::updateDragState):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::copyNonInheritedFrom):
        * rendering/style/RenderStyle.h:

2012-11-28  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
        https://bugs.webkit.org/show_bug.cgi?id=103497

        Unreviewed buildfix.

        Any usage of GraphicsSurface needs to be wrapped with USE(GRAPHICS_SURFACE).

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):

2012-11-28  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
        https://bugs.webkit.org/show_bug.cgi?id=103497

        This is a temporary workaround for an issue with GraphicsSurfaceMac.
        GraphicsSurfaceMac is currently implemented using CGL only.
        CGL does not allow us to properly restore the NSView a context was made current with.
        Therefore we have to go through QOpenGLContext to ensure the context
        is being restored correctly.
        As soon as we are updating GraphicsSurfaceMac to use NSOpenGL,
        we should revert this patch.

        Reviewed by Simon Hausmann.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):

2012-11-28  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
        https://bugs.webkit.org/show_bug.cgi?id=103497

        Using GraphicsSurface for WebGL in WK1 allows us to share
        the code with the WK2 implementation.

        Reviewed by Simon Hausmann.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
            Remove obsolete code.
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
            After blitting the multisample framebuffer,
            we can copy the contents onto the GraphicsSurface.
            Right after that we can use the GraphicsSurface
            as a texture origin to paint to the TextureMapper.
            Flags related to flipping and blending are being resolved
            by GraphicsSurface, and do not need to be handled here anymore.
        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
            Remove a redundant makeCurrentIfNeeded call.
            The original context is being restored by
            blitMultisampleFramebufferAndRestoreContext anyway.
            Instead of explicitly calling swapBuffers here,
            we call swapBuffers on the GraphicsSurface implicitly
            after in GraphicsSurfacePrivate::copyFromTexture().
        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
            Add members to hold the reading end texture IDs.
            The texture on the reading side are in a different
            context than the texture on the writing side.
            By using GraphicsSurface in WK1 we have to distinguish
            between these textures, as a single instance serves
            for reading and writing.
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
            Add an implicit call to swapBuffers().
        (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
        (GraphicsSurfacePrivate):
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
            Add a flag to distinguish between sending and receiving/reading
            side of the surface. This flag is being initialized in the constructor
            which is the only place where we know if an instance will be used for
            writing or reading.
            The purpose of this flag is to avoid erroneously swapping the buffers
            on the reading side. We can no longer rely on m_xPixmap for this purpose.
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
        (WebCore::GraphicsSurfacePrivate::glxPixmap):
            Lazily create the GLX pixmap on demand.
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurface::platformImport):

2012-11-28  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Fix extra spaces in SimpleFontData::initGDIFont().

        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont):

2012-11-28  Dan Carney  <dcarney@google.com>

        [V8] Crash wrapping media element when MediaPlayer isn't available
        https://bugs.webkit.org/show_bug.cgi?id=103431

        Reviewed by Kentaro Hara.

        Call HTMLElement::createWrapper directly when dispatching a
        disabled MediaElement wrap.

        No new tests. Testing this must apparently be manual.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * dom/make_names.pl:
        (printWrapperFunctions):
        (printWrapperFactoryHeaderFile):

2012-11-28  Roger Fong  <roger_fong@apple.com>

        Initialize identity matrix in SimpleFontData::initGDIFont() properly.
        https://bugs.webkit.org/show_bug.cgi?id=103499
        <rdar://problem/12400700>

        Reviewed by Timothy Horton.

        We are incorrectly initializing the matrix passed into GetGlyphOutline.
        This patch fixes MAT2 initialization to match the way we initialize the 
        identity matrix in SimpleFontData::boundsForGDIGlyph and SimpleFontData::widthForGDIGlyph.

        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont):

2012-11-28  Huang Dongsung  <luxtella@company100.net>

        [Texmap] REGRESSION(r135620) QtTestBrowser crashes on Google-gravity.
        https://bugs.webkit.org/show_bug.cgi?id=103410

        Reviewed by Noam Rosenthal.

        GraphicsLayerTextureMapper::updateBackingStore() should return early
        before TextureMapper is set.

        GraphicsLayer::FlushCompositingState() can be called by RenderLayerBacking. It
        means this method can be called before creating TextureMapper. So
        TextureMapperLayer::flushCompositingState() checks and returns early if
        TextureMapper was not created.

        However, GraphicsLayerTextureMapper::updateBackingStore() expects that TextureMapper
        always exists. updateBackingStore should also return early when TextureMapper
        was not created.

        No new tests. Covered by existing tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):

2012-11-28  Tommy Widenflycht  <tommyw@google.com>

        Add basic implementation for MediaStreamAudioDestinationNode
        https://bugs.webkit.org/show_bug.cgi?id=101815

        Reviewed by Chris Rogers.

        Implements an audio destination node which has a MediaStream.
        This can be added to a PeerConnection with peerConnection.addStream().
        Please see use case (3):
        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html

        Test: webaudio/mediastreamaudiodestinationnode.html

        * Modules/webaudio/AudioContext.cpp:
        (WebCore):
        (WebCore::AudioContext::createMediaStreamDestination):
        * Modules/webaudio/AudioContext.h:
        (WebCore):
        (AudioContext):
        * Modules/webaudio/AudioContext.idl:
        * Modules/webaudio/AudioNode.h:
        * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: Added.
        (WebCore):
        (WebCore::MediaStreamAudioDestinationNode::create):
        (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
        (WebCore::MediaStreamAudioDestinationNode::mediaStreamSource):
        (WebCore::MediaStreamAudioDestinationNode::~MediaStreamAudioDestinationNode):
        (WebCore::MediaStreamAudioDestinationNode::process):
        (WebCore::MediaStreamAudioDestinationNode::reset):
        * Modules/webaudio/MediaStreamAudioDestinationNode.h: Added.
        (WebCore):
        (MediaStreamAudioDestinationNode):
        (WebCore::MediaStreamAudioDestinationNode::stream):
        * Modules/webaudio/MediaStreamAudioDestinationNode.idl: Added.
        * WebCore.gypi:
        * platform/audio/AudioDestinationConsumer.h: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.cpp.
        (WebCore):
        (AudioDestinationConsumer):
        (WebCore::AudioDestinationConsumer::~AudioDestinationConsumer):
        * platform/chromium/support/WebMediaStreamSource.cpp:
        (WebKit::WebMediaStreamSource::extraData):
        (WebKit::WebMediaStreamSource::setExtraData):
        (WebKit::WebMediaStreamSource::requiresAudioConsumer):
        (WebKit):
        (ConsumerWrapper):
        (WebKit::ConsumerWrapper::create):
        (WebKit::ConsumerWrapper::consumer):
        (WebKit::ConsumerWrapper::ConsumerWrapper):
        (WebKit::ConsumerWrapper::consumeAudio):
        (WebKit::WebMediaStreamSource::addAudioConsumer):
        (WebKit::WebMediaStreamSource::removeAudioConsumer):
        * platform/mediastream/MediaStreamSource.cpp:
        (WebCore::MediaStreamSource::create):
        (WebCore::MediaStreamSource::MediaStreamSource):
        (WebCore::MediaStreamSource::addAudioConsumer):
        (WebCore):
        (WebCore::MediaStreamSource::removeAudioConsumer):
        (WebCore::MediaStreamSource::consumeAudio):
        * platform/mediastream/MediaStreamSource.h:
        (WebCore):
        (MediaStreamSource):
        (WebCore::MediaStreamSource::requiresAudioConsumer):
        (WebCore::MediaStreamSource::audioConsumers):

2012-11-27  Mike West  <mkwst@chromium.org>

        Improve WebSocketChannel connection failure console messages.
        https://bugs.webkit.org/show_bug.cgi?id=103448

        Reviewed by Adam Barth.

        When a WebSocket connection fails, the current implementation of
        WebSocketChannel::fail binds the generated console message to the
        document's URL, but doesn't give much indication as to the connection
        itself. This patch adjusts the console message to explicitly show the
        URL of the failed connection to give developers a better chance of
        debugging and resolving errors.

        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::fail):
            Drop the URL parameter from addConsoleMessage, in favour of adding
            the WebSocketHandshake's URL to the message text.

2012-11-27  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed functionality fix, return the height in ImageFrame::height()
        on non-Skia platforms.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageFrame::height):

2012-11-27  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        Optimization in image decoding
        https://bugs.webkit.org/show_bug.cgi?id=88424

        Reviewed by Brent Fulgham.

        Optimization in image decoding.
        Reduce branching and multiplications in GIF image decoding loops and functions.
        Rebase and update of original patch by Misha Tyutyunik <michael.tyuytunik@nokia.com>

        Covered by existing tests.

        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::haveDecodedRow):

2012-11-27  Michael Saboff  <msaboff@apple.com>

        TextIterator unnecessarily converts 8 bit strings to 16 bits
        https://bugs.webkit.org/show_bug.cgi?id=103295

        Reviewed by Brent Fulgham.

        Changed TextIterator to use the contained string instead of calling characters() on that string.
        Other sources of text, like emitCharacter() still use the contained UChar* buffer.
        Added appendTextToStringBuilder() to append the text contents of the current iterator to a string builder
        irrespective of the source of the text.

        No new tests as functionality covered by existing tests.

        * WebCore.exp.in: Updated plainText export and eliminated plainTextToMallocAllocatedBuffer export
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::stringForVisiblePositionRange): Updated to use TextIterator::appendTextToStringBuilder()
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::characterAt): New function to return the indexed character of the current TextIterator
        (WebCore::TextIterator::appendTextToStringBuilder): Added method to append whatever the current text to a StringBuilder
        (WebCore::TextIterator::emitText): Eliminated accessing the character data via characters().
        (WebCore::TextIterator::rangeFromLocationAndLength): Changed to use characterAt().
        (WebCore::plainText): Combined with plainTextToMallocAllocatedBuffer().
        * editing/TextIterator.h:
        (WebCore::TextIterator::startOffset): New getter.
        (WebCore::TextIterator::string): New getter.
        (WebCore::TextIterator::characters): Updated to use correct test source.
        * page/ContextMenuController.cpp:
        (WebCore::selectionContainsPossibleWord): Changed to use characterAt().

2012-11-27  Noel Gordon  <noel.gordon@gmail.com>

        Inline ImageFrame width() and height()
        https://bugs.webkit.org/show_bug.cgi?id=103401

        Reviewed by Brent Fulgham.

        Inline ImageFrame width() and height() to improve the performance of ImageFrame
        function getAddr(x,y) per https://bugs.webkit.org/show_bug.cgi?id=88424#c38

        No new tests. Covered by many existing tests.

        * platform/image-decoders/ImageDecoder.cpp: Remove width() and height() routines
        since they now inlined in the ImageFrame class definition in ImageDecoder.h.
        * platform/image-decoders/ImageDecoder.h: Add inline definitions of width() and
        height() for all ports.
        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::width): Remove.
        (WebCore::ImageFrame::height): Remove.

2012-11-27  Michael Pruett  <michael@68k.org>

        Remove ASSERT_NOT_REACHED() from IDBCursorBackendImpl::postSuccessHandlerCallback()
        https://bugs.webkit.org/show_bug.cgi?id=103461

        Reviewed by Kentaro Hara.

        The assertion is applicable only to the Chromium port.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::postSuccessHandlerCallback):

2012-11-27  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] HasSelectorForClassStyleFunctor in Element.cpp seems verbose
        https://bugs.webkit.org/show_bug.cgi?id=103474

        Reviewed by Hajime Morita.

        The code introduced in r135174 looks verbose. We would like to make it simpler.
        We have removed several inline functions and unnecessary structs.

        No new tests, simple refactoring.

        * dom/Element.cpp:
        (WebCore):
        (WebCore::checkSelectorForClassChange):
        (WebCore::Element::classAttributeChanged):
        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):

2012-11-27  Julien Chaffraix  <jchaffraix@webkit.org>

        Support proper <percent> / calc() resolution for grid items
        https://bugs.webkit.org/show_bug.cgi?id=102968

        Reviewed by Ojan Vafai.

        This change introduces a mechanism similar to logical height / width override
        but for containing block. This is required as we don't have a renderer for the
        grid area but any <percent> or calc() size should be resolved against the grid
        area size (which is sized after the grid tracks).

        Tests: fast/css-grid-layout/calc-resolution-grid-item.html
               fast/css-grid-layout/percent-resolution-grid-item.html
               fast/css-grid-layout/percent-grid-item-in-percent-grid-track.html
               fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::willBeDestroyed):
        Remove any containing block size override.

        (WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
        (WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
        (WebCore::RenderBox::hasOverrideContainingBlockLogicalWidth):
        (WebCore::RenderBox::hasOverrideContainingBlockLogicalHeight):
        (WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
        (WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
        (WebCore::RenderBox::clearContainingBlockOverrideSize):
        Containing block override size functions.

        (WebCore::RenderBox::containingBlockLogicalWidthForContent):
        Updated the function to check for any override logical width.

        (WebCore::RenderBox::containingBlockLogicalHeightForContent):
        New function, similar to RenderBox::containingBlockLogicalWidthForContent.

        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
        (WebCore::RenderBox::computePercentageLogicalHeight):
        Updated these function to return overrideContainingBlockContentLogicalHeight as needed.

        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
        (WebCore::RenderBox::availableLogicalHeightUsing):
        Updated these functions to use the new containingBlockLogicalHeightForContent instead
        of availableLogicalHeight.

        * rendering/RenderBox.h:
        Added the previous new functions.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::layoutGridItems):
        Updated to override the containing block size so that we properly size our grid items.

2012-11-27  Kent Tamura  <tkent@chromium.org>

        Fix build errors by r135955.

        * dom/ShadowRoot.cpp: Use struct instead of class.
        * dom/TreeScope.cpp: Ditto.

2012-11-27  Eugene Klyuchnikov  <eustas@chromium.com>

        Web Inspector: [Timeline] "Show CPU activity on the ruler" settings checkbox does not take effect until Inspector restart
        https://bugs.webkit.org/show_bug.cgi?id=102210

        Reviewed by Pavel Feldman.

        The checkbox changes should take effect in the real time.

        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):
        Do not show checkpox if browser is not capable.
        * inspector/front-end/TimelinePanel.js:
        Added setting change listener.

2012-11-27  Andreas Kling  <akling@apple.com>

        Compile time size assertions for TreeScope, ShadowRoot and ElementAttributeData.

        Rubber-stamped by Anders Carlsson.

        * dom/ShadowRoot.cpp:
        (SameSizeAsShadowRoot):
        * dom/TreeScope.cpp:
        (SameSizeAsTreeScope):
        * dom/ElementAttributeData.cpp: Derp.

2012-11-27  James Simonsen  <simonjam@chromium.org>

        Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
        https://bugs.webkit.org/show_bug.cgi?id=102151

        Reviewed by Adam Barth.

        There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
        There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
        the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
        the refactoring done with CachedResourceRequest and CachedResourceLoader.

        No new tests. No change in functionality.

        * WebCore.exp.in:
        * loader/FrameLoadRequest.h:
        (WebCore::FrameLoadRequest::FrameLoadRequest):
        (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
        (WebCore::FrameLoadRequest::lockHistory): Ditto.
        (FrameLoadRequest):
        (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
        (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
        (WebCore::FrameLoadRequest::substituteData): Ditto.
        (WebCore::FrameLoadRequest::setSubstituteData): Ditto.
        (WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
        * loader/FrameLoader.h:
        (FrameLoader):
        * page/DragController.cpp:
        (WebCore::DragController::performDrag):

2012-11-27  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix; NSSize is not a CGSize in 32-bit.

        * platform/mac/WebCoreFullScreenWarningView.mm:

2012-11-27  Dean Jackson  <dino@apple.com>

        Attempted build fix for my last commit. The private member variable
        is only used on MAC (at the moment) so guard it with #if PLATFORM.
        I did this rather than having another constructor, because I expect
        other platforms will follow the MAC code soon.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        * html/shadow/MediaControlElements.h:

2012-11-14  Jer Noble  <jer.noble@apple.com>

        Add a new shared class WebCoreFullScreenPlaceholderView, for use in WebKit and WebKit2.
        https://bugs.webkit.org/show_bug.cgi?id=102300

        Reviewed by Anders Carlsson.

        Add a new shared class WebCoreFullScreenPlaceholderView, which presents the contents of the 
        WebView prior to full screen with a message informing the user how to exit from full screen mode.

        * platform/mac/WebCoreFullScreenPlaceholderView.mm:
        (-[WebCoreFullScreenPlaceholderView initWithFrame:]): Create the warning view and set up the placeholder layer.
        (-[WebCoreFullScreenPlaceholderView setContents:]): Pass along to content view layer.
        (-[WebCoreFullScreenPlaceholderView contents]): Ditto.
        (-[WebCoreFullScreenPlaceholderView setExitWarningVisible:]): Show or hide the exit warning.
        (-[WebCoreFullScreenPlaceholderView mouseDown:]): Call the target with action.

         Add a localized string entry for the "click to exit" text:
         * English.lproj/Localizable.strings:
        * platform/LocalizedStrings.cpp:
        (WebCore::clickToExitFullScreenText):
        * platform/LocalizedStrings.h:
        * English.lproj/Localizable.strings:

        Add the new files to the project and exports list:
        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

2012-11-27  Andreas Kling  <akling@apple.com>

        Shrink ShadowRoot and TreeScope.
        <http://webkit.org/b/103459>

        Reviewed by Antti Koivisto.

        We're creating ~1500 ShadowRoots on Apple's PLT3 content (from <input> and <textarea> elements)
        and a lot of this is wasted space.

        Shrink ShadowRoot and TreeScope a bit by making TreeScope's DocumentOrderedMaps heap-allocated
        and packing the counters on ShadowRoot harder together with the bits.

        202kB progression on Membuster3.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::countElementShadow):
        (ShadowRoot):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::TreeScope):
        (WebCore::TreeScope::getElementById):
        (WebCore::TreeScope::addElementById):
        (WebCore::TreeScope::removeElementById):
        (WebCore::TreeScope::addImageMap):
        (WebCore::TreeScope::removeImageMap):
        (WebCore::TreeScope::getImageMap):
        (WebCore::TreeScope::addLabel):
        (WebCore::TreeScope::removeLabel):
        (WebCore::TreeScope::labelElementForId):
        * dom/TreeScope.h:
        (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
        (TreeScope):
        (WebCore::TreeScope::hasElementWithId):
        (WebCore::TreeScope::containsMultipleElementsWithId):

2012-11-14  Jer Noble  <jer.noble@apple.com>

        Add a new shared class WebCoreFullScreenWarningView which presents a styled warning message.
        https://bugs.webkit.org/show_bug.cgi?id=102299

        Reviewed by Alexey Proskuryakov.

        Add a shared implementation of a warning view for use in WebKit and WebKit2.

        * platform/mac/WebCoreFullScreenWarningView.h: Added.
        * platform/mac/WebCoreFullScreenWarningView.mm: Added.
        (-[WebCoreFullScreenWarningView initWithTitle:]): Create the view.

        Add the new files to the project and exports list:
        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

2012-11-27  Dean Jackson  <dino@apple.com>

        Make track list control active
        https://bugs.webkit.org/show_bug.cgi?id=101670

        Reviewed by Eric Carlson.

        Hook up the event handler for the captions menu so that it enables or
        disables tracks in the associated HTMLMediaElement.

        Test: media/video-controls-captions-trackmenu.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::toggleTrackAtIndex): New method to toggle the state of a track, by index.
        * html/HTMLMediaElement.h:
        (HTMLMediaElement): Ditto.
        (WebCore::HTMLMediaElement::textTracksOffIndex): Static method to return the "Off" value.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::trackListIndexForElement): Helper function to take a track list <li> element and return the value of the custom attribute.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType): Toggle the state of the button based on captions visibility.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler): On Mac platforms show the captions menu. On other platforms, toggle captions.
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Now has a reference to the controls.
        (WebCore::MediaControlClosedCaptionsTrackListElement::create):
        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): When the user clicks on a track list item, look
        for the custom attribute that identifies the associated track, and then toggle that track.
        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Set a class on the track list elements so they can be
        styled by the injected CSS (with tick marks to represent visibility).
        (WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): When building the list of track menu items, add
        a custom HTML attribute to the element so that the corresponding track can be found in the event handler.
        * html/shadow/MediaControlElements.h:
        (MediaControlClosedCaptionsTrackListElement): Add a list of elements representing the track list.
        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsApple::createControls):
        (WebCore::MediaControlsApple::changedClosedCaptionsVisibility): Make sure to update the track menu.
        (WebCore::MediaControlsApple::reset):
        * html/shadow/MediaControlsApple.h:
        (MediaControlsApple):

2012-11-27  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Simplify transaction timers and event tracking
        https://bugs.webkit.org/show_bug.cgi?id=102984

        Reviewed by Tony Chang.

        Now that the transaction "commit" decision is made on the front-end, the back end no-longer
        needs to be aware of when individual IDBRequests have dispatched to script or track pending
        events (except for preemptive ones like createIndex). This also lets two timers be collapsed
        into one which significantly simplifies the code flow in IDBTransactionBackendImpl.

        No new tests - just simplification. Exercised by storage/indexeddb/transaction-*.html etc.

        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal): No more tracking.
        (WebCore::IDBCursorBackendImpl::prefetchReset): No more tracking.
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal): No more tracking.
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal): No more tracking.
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal): No more tracking.
        (WebCore::IDBObjectStoreBackendImpl::createIndexInternal): No more tracking.
        (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal): No more tracking.
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::dispatchEvent): Order must be:
        1. request is unregistered from transaction (so request list may be empty)
        2. abort transaction if event being dispatched was an error
        3. deactivate transaction (which may commit if #1 left it empty and #2 didn't abort)
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Need to track if commit
        was requested; previously the front end would have triggered an event timer which, on
        completion, would be the signal that the front end was finished.
        (WebCore::IDBTransactionBackendImpl::scheduleTask): Schedule a timer to service the new
        task, if necessary.
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::hasPendingTasks):
        (WebCore::IDBTransactionBackendImpl::commit):
        (WebCore::IDBTransactionBackendImpl::taskTimerFired): Picks up "commit" responsibilities
        from the now deleted taskEventTimerFired, if everything is truly complete done.
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:
        (WebCore::IDBTransactionBackendInterface::didCompleteTaskEvents): Removed from interface.

2012-11-27  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace toWebCoreString()/toWebCoreAtomicString() in CodeGeneratorV8.pm with V8StringResource
        https://bugs.webkit.org/show_bug.cgi?id=103391

        Reviewed by Adam Barth.

        This is an incremental effort for fixing bug 103331.
        I confirmed that this patch causes no performance regression
        for the micro benchmarks (https://bugs.webkit.org/attachment.cgi?id=176178).

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrSetter):
        (GenerateEventListenerCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::addEventListenerCallback):
        (WebCore::TestObjV8Internal::removeEventListenerCallback):

2012-11-27  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Regions] Elements using transforms are not repainted correctly when rendered in a region
        https://bugs.webkit.org/show_bug.cgi?id=102826

        Reviewed by David Hyatt.

        When the page is composited, all the elements will have a composited repaint container. In that case we will
        never catch the repaints in the RenderFlowThread, but they will go directly to the RenderView. 
        There's a single case when the parent composited layer of an element inside the RenderFlowThread will get 
        its own repaints. That case only happens when the parent composited layer is also part of the same flow thread.
        Right now compositing is disabled for elements inside the RenderFlowThread, so that case doesn't even happen yet.
        That will be fixed in https://bugs.webkit.org/show_bug.cgi?id=84900.

        Test: fast/repaint/region-painting-in-composited-view.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containerForRepaint):

2012-11-27  Tony Chang  <tony@chromium.org>

        Unreviewed, win compile fix take 2.

        Try again to force this file to recompile.

        * rendering/RenderingAllInOne.cpp:

2012-11-27  Tony Chang  <tony@chromium.org>

        Unreviewed, win compile fix.

        Touch RenderingAllInOne.cpp to force it to rebuild.

        * rendering/RenderingAllInOne.cpp:

2012-11-27  Tim Horton  <timothy_horton@apple.com>

        PDFPlugin: Scroll bars do not grow on hover
        https://bugs.webkit.org/show_bug.cgi?id=103382
        <rdar://problem/12555262>

        Reviewed by Beth Dakin.

        Export a few WebCore::Scrollbar methods to WebKit(2).

        * WebCore.exp.in:

2012-11-27  Tom Sepez  <tsepez@chromium.org>

        Regression(r129406): Fix the scope of the WidgetHierarchyUpdateSuspensionScope in Element::Attach().
        https://bugs.webkit.org/show_bug.cgi?id=100803

        Reviewed by Abhishek Arya.

        Ensures that the suspension scope has gone out of scope before calling into
        resumePostAttachCallbacks().
        
        Test: fast/dom/adopt-node-crash-2.html

        * dom/Element.cpp:
        (WebCore::Element::attach):

2012-11-27  Tony Chang  <tony@chromium.org>

        Remove hidden limiter div in the input slider shadow DOM
        https://bugs.webkit.org/show_bug.cgi?id=102993

        Reviewed by Ojan Vafai.

        The shadow DOM for input sliders would have a hidden div (the TrackLimiterElement)
        the size of the thumb which would limit the position of thumb since the width of
        the thumb takes up space in the track. This patch simplifies the shadow DOM by
        removing this hidden div and computing the position of the thumb taking the size of
        the thumb into account.

        No new tests, covered by existing tests in fast/forms.

        * css/mediaControlsChromium.css:
        (input[type="range"]::-webkit-media-slider-container > div): We were depending on the behavior of the limiter having negative margins, causing the slider div
        to overflow. Moving the negative margin to the slider produces the same effect.
        * css/mediaControlsChromiumAndroid.css:
        (input[type="range"]::-webkit-media-slider-container > div): Ditto.
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::createShadowSubtree): Remove limiter div.
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderContainer::layout): Adjust the available space for the thumb and correctly position in the vertical case.
        (WebCore::SliderThumbElement::setPositionFromPoint): Adjust the usable track size and simplify RTL code (no need to account for the limiter).
        (WebCore): Delete limiter code.
        * html/shadow/SliderThumbElement.h:
        (WebCore): Delete limiter code.
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::layout): Delete limiter code.
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paintSliderTicks): Simplify code for painting tick marks.

2012-11-27  Alpha Lam  <hclam@chromium.org>

        [chromium] Implement full-featured image cache
        https://bugs.webkit.org/show_bug.cgi?id=99784

        Reviewed by Stephen White.

        Implement a thread-safe image cache to be used with deferred image
        decoding. Image cache can now be accessed on any thread.

        The patch implements the following logic:
        1. Mutex to protect all cache operations.
        2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize)
        3. Cache lookup.
        4. Cache insertion.
        5. Generation of cache entry by scaling full size image.
        6. Generation of cache entries by decoding and scaling.

        Classes involved:

        ImageDecodingStore

        Responsible for owning cache entries and indexing. Pruning and memory
        management will be added later.

        ImageFrameGenerator

        Responsible for generating new cache enties and insert them into
        ImageDecodingStore.

        LazyDecodingPixelRef

        Responsible for cache lookup and lazy generation of cache entries
        using ImageFrameGenerator. There is a mutex to protect concurrent
        lock operations.

        These items are not implemented in this patch:
        1. Cache pruning.
        2. Setting cache memory limit.
        3. Cache deletion.
        4. Caching incomplete images and ImageDecoder.

        Unit tests added in ImageFrameGeneratorTest.cpp.
        Layout tests are under platform/chromium/virtual/fast/images.

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
        (WebCore::DeferredImageDecoder::setEnabled):
        (WebCore):
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
        * platform/graphics/chromium/DeferredImageDecoder.h:
        (DeferredImageDecoder):
        * platform/graphics/chromium/ImageDecodingStore.cpp:
        (WebCore::ImageDecodingStore::instance):
        (WebCore::ImageDecodingStore::initializeOnce):
        (WebCore::ImageDecodingStore::shutdown):
        (WebCore::ImageDecodingStore::lockCompleteCache):
        Lookup complete cache entry using hash key, increment use count.
        (WebCore::ImageDecodingStore::lockIncompleteCache): TODO.
        (WebCore::ImageDecodingStore::unlockCache):
        Lookup cache entry using hash key, decrement use count.
        (WebCore):
        (WebCore::ImageDecodingStore::insertAndLockCache):
        Insert new cache entry and increment use count.
        (WebCore::ImageDecodingStore::prune): TODO.
        * platform/graphics/chromium/ImageDecodingStore.h:
        (WebCore):
        (ImageDecodingStore):
        (WebCore::ImageDecodingStore::CacheEntry::create):
        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
        (CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::setData):
        (WebCore::ImageFrameGenerator::decodeAndScale):
        Method for creating new cache entries. This is protected by a mutex
        to prevent concurrent operations. Which means only one thread can
        generate new cache entries for a set of encoded data.
        (WebCore):
        (WebCore::ImageFrameGenerator::tryToLockCache):
        Tries to lookup a cache entry.
        (WebCore::ImageFrameGenerator::tryToScale):
        Tries to lookup a full size cache entry and generate a scaled version.
        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
        Tries to decode and scale.
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (WebCore):
        (ImageDecoderFactory):
        (WebCore::ImageFrameGenerator::create):
        (ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (WebCore):
        (LazyDecodingPixelRef):
        * platform/graphics/chromium/ScaledImageFragment.cpp:
        (WebCore::ScaledImageFragment::ScaledImageFragment):
        * platform/graphics/chromium/ScaledImageFragment.h:
        (WebCore):
        (WebCore::ScaledImageFragment::create):
        (ScaledImageFragment):
        (WebCore::ScaledImageFragment::scaledSize):
        * platform/graphics/chromium/SkSizeHash.h: Added.
        (WTF):

2012-11-27  Mike West  <mkwst@chromium.org>

        Expanding variable names in ConsoleMessage.
        https://bugs.webkit.org/show_bug.cgi?id=103436

        Reviewed by Adam Barth.

        Variable names like 'm' should be replaced with full words, like
        'myOhMyThisIsAnAwesomeVariable' (or something more descriptive).

        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::ConsoleMessage):
        * inspector/ConsoleMessage.h:
        (ConsoleMessage):

2012-11-27  Aaron Colwell  <acolwell@chromium.org>

        Use-after-free in media player handling
        https://bugs.webkit.org/show_bug.cgi?id=103426

        Reviewed by Eric Carlson.

        Fixed use-after-free bugs caused by the MediaSource not being closed before the HTMLMediaElement or the MediaPlayer
        is destroyed. Closing the MediaSource causes it to clear its reference to the MediaPlayer which prevents
        the use-after-free problems from happening.

        Test: http/tests/media/media-source/video-media-source-closed-on-htmlmediaelement-destruction.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::clearMediaPlayer):

2012-11-27  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Remove IDBDatabase.setVersion API
        https://bugs.webkit.org/show_bug.cgi?id=94972

        Reviewed by Tony Chang.

        This has been out of the spec for over a year. No other browser has
        implemented it for close to a year.

        Tests - removed.html

        * Modules/indexeddb/IDBCallbacks.h:
        (IDBCallbacks):
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::IDBDatabase):
        * Modules/indexeddb/IDBDatabase.h:
        (IDBDatabase):
        * Modules/indexeddb/IDBDatabase.idl:
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBRequest.cpp:
        * Modules/indexeddb/IDBRequest.h:

2012-11-27  Mike West  <mkwst@chromium.org>

        Log to console when autofocus is blocked by sandbox attribute.
        https://bugs.webkit.org/show_bug.cgi?id=103255

        Reviewed by Ojan Vafai.

        Adding a short log message when autofocus is blocked by a document's
        sandbox flags, as it's currently a black box.

        Test: fast/forms/autofocus-in-sandbox-without-allow-scripts.html

        * html/HTMLFormControlElement.cpp:
        (WebCore::shouldAutofocus):

2012-11-27  Dean Jackson  <dino@apple.com>

        Attempted build fix after http://trac.webkit.org/changeset/135888.

        * WebCore.exp.in:
        * WebCore.order:

2012-11-27  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix after r135890. #else, not #elif.

        * platform/graphics/ca/PlatformCALayer.h:
        (PlatformCALayer):

2012-11-27  Ryosuke Niwa  <rniwa@webkit.org>

        HTMLCollection on Document should be stored on NodeListsNodeData like other HTMLCollections and LiveNodeLists
        https://bugs.webkit.org/show_bug.cgi?id=103364

        Reviewed by Anders Carlsson.

        Replaced the HTMLCollection storage in Document by NodeListsNodeData used by other HTMLCollection's
        and LiveNodeList's. Now NodeListsNodeData is the only storage for HTMLCollection and LiveNodeList.

        * dom/Document.cpp:
        (WebCore::Document::Document): Removed code for m_collection since it has been removed.
        (WebCore::Document::~Document): Ditto.
        (WebCore::Document::registerNodeList): Renamed. 
        (WebCore::Document::unregisterNodeList): Ditto.
        (WebCore::Document::ensureCachedCollection): Renamed from cachedCollection to match the convetion
        used elsewhere. Also use NodeListNodeData::addCacheWithAtomicName now that m_collection is gone.
        (WebCore::Document::images):
        (WebCore::Document::applets):
        (WebCore::Document::embeds):
        (WebCore::Document::plugins):
        (WebCore::Document::scripts):
        (WebCore::Document::links):
        (WebCore::Document::forms):
        (WebCore::Document::anchors):
        (WebCore::Document::all):
        (WebCore::Document::windowNamedItems): Use addCacheWithAtomicName.
        (WebCore::Document::documentNamedItems): Ditto.
        (WebCore::Document::reportMemoryUsage): Removed code for m_collection since it has been removed.
        * dom/Document.h:
        (WebCore::Document): Removed m_collections, m_documentNamedItemCollections, and
        m_windowNamedItemCollections.
        * dom/Element.cpp:
        (WebCore::Element::ensureCachedHTMLCollection): Merged ElementRareData::ensureCachedHTMLCollection.
        (WebCore::Element::cachedHTMLCollection): Merged ElementRareData::cachedHTMLCollection.
        * Source/WebCore/dom/ElementRareData.h: Removed ensureCachedHTMLCollection, cachedHTMLCollection,
        and removeCachedHTMLCollection since they're no longer used.
        * dom/LiveNodeList.h:
        (WebCore::LiveNodeListBase::LiveNodeListBase): Call registerNodeList now that LiveNodeList
        and HTMLCollection share the same storage in all nodes.
        (WebCore::LiveNodeListBase::~LiveNodeListBase): Ditto about unregisterNodeList.
        (WebCore::LiveNodeList): Removed the calls to registerNodeList and unregisterNodeList since they
        are now called in the base class.
        * dom/NameNodeList.h:
        (WebCore::NameNodeList::create):
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::addCacheWithAtomicName): Pass in CollectionType as the second argument
        to T::create. This is used in HTMLNameCollection::create. Sevearl LiveNodeList constructors and
        create functions have been modified to support this.
        (WebCore::NodeListsNodeData::adoptTreeScope):
        (WebCore::NodeListsNodeData::namedNodeListKey): CollectionType is no longer restricted in its range.
        * dom/TagNodeList.h:
        (WebCore::TagNodeList::create):
        (WebCore::HTMLTagNodeList::create):
        * html/CollectionType.h: Deleted a bunch of unused inline functions and constants, and cleanup enum.
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection): Removed the call to registerNodeListCache since it's called
        in LiveNodeListBase now.
        (WebCore::HTMLCollection::~HTMLCollection): Ditto. Also replaced calls to removeCachedHTMLCollection
        of Element and Document by a call to NodeListsNodeData::removeCacheWithAtomicName.
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
        (WebCore::HTMLFormControlsCollection::create):
        * html/HTMLFormControlsCollection.h:
        (HTMLFormControlsCollection):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::HTMLNameCollection):
        (WebCore::HTMLNameCollection::~HTMLNameCollection):
        * html/HTMLNameCollection.h:
        (WebCore::HTMLNameCollection::create):
        (HTMLNameCollection):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
        (WebCore::HTMLOptionsCollection::create):
        * html/HTMLOptionsCollection.h:
        (HTMLOptionsCollection):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
        (WebCore::HTMLTableRowsCollection::create):
        * html/HTMLTableRowsCollection.h:
        (HTMLTableRowsCollection):
        * html/LabelsNodeList.h:
        (WebCore::LabelsNodeList::create):
        * html/RadioNodeList.h:
        (WebCore::RadioNodeList::create):

2012-11-27  Pravin D  <pravind.2k4@gmail.com>

        max-height property not respected in case of tables
        https://bugs.webkit.org/show_bug.cgi?id=98633

        Reviewed by Julien Chaffraix.

        The max-height property determines the maximum computed height an element can have. In case of tables
        the computed height was not being limited by the max-height property. The current patch fixes the same.

        Test: fast/table/css-table-max-height.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
          Helper function to compute height from the given style height.
          This function handles style height of type fixed, percent and viewport percent.
          As height of type 'calculated' gets internally resolved to either fixed or percent
          there is no special handling required for the same.

        (WebCore):
        (WebCore::RenderTable::layout):
          Logic to compute the logical height of an element such that it does not exceed the max-height value given that
          min-width < Content height < max-height, when min-height < max-height.
          However max-height value is not respected if either min-height > max-height or Content height > max-height.

        * rendering/RenderTable.h:
        (RenderTable):
          Function definition for the newly add function convertStyleLogicalHeightToComputedHeight().

2012-11-27  Roger Fong  <roger_fong@apple.com>

        Windows specific implementation of usesTileCacheLayer needed after r133056.
        https://bugs.webkit.org/show_bug.cgi?id=103321

        Reviewed by Simon Fraser.

        After r133056 it no longer suffices to use the existing usesTileCacheLayer method on Windows.
        The change resulted in 3 crashing tests:
        compositing/rotated-tiled-clamped
        compositing/rotated-tiled-preserve3d-clamped
        fast/events/tabindex-focus-blur-all

        * platform/graphics/ca/PlatformCALayer.h:
        (WebCore::PlatformCALayer::usesTileCacheLayer):
        (PlatformCALayer): 
        Adding in platform specific method for Windows that returns false for this method.

2012-11-27  Christophe Dumez  <christophe.dumez@intel.com>

        Canvas does not draw any text if the font is not fully loaded yet
        https://bugs.webkit.org/show_bug.cgi?id=103392

        Reviewed by Kenneth Rohde Christiansen.

        Update CanvasRenderingContext2D::drawTextInternal() so that the
        text is being drawn, even if custom fonts are still being loaded.
        Without this, WebKit was not drawing any text on the canvas if
        the needed font is custom and is not fully loaded yet. This seems
        broken.

        The new behavior is according to specification:
        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html

        The specification says: "If a font is used before it is fully
        loaded, or if the font style source object does not have that
        font in scope at the time the font is to be used, then it must be
        treated as if it was an unknown font, falling back to another as
        described by the relevant CSS specifications."

        Test: http/tests/canvas/canvas-slow-font-loading.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawTextInternal):
        * platform/graphics/Font.cpp:
        (WebCore::Font::drawText): Add argument to specify the behavior
        when custom fonts are not ready. By default, it will not draw
        anything (same behavior as before). However, the Canvas code
        can now request that a fallback font is used if the custom
        font is not fully loaded yet.
        * platform/graphics/Font.h: #undef Complex if defined to avoid
        conflicting with Complex value in CodePath enum. X11/X.h is
        defining Complex to 0.
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawBidiText):
        * platform/graphics/GraphicsContext.h:
        (WebCore):
        (GraphicsContext):

2012-11-27  Dean Jackson  <dino@apple.com>

        No need for ExceptionCode in HTMLMediaElement::load
        https://bugs.webkit.org/show_bug.cgi?id=103438

        Reviewed by Eric Carlson.

        After https://bugs.webkit.org/show_bug.cgi?id=103318, there is no
        need for the ExceptionCode parameter in load(). The HTML5 spec says
        that all errors in loading are communicated via state.
        http://dev.w3.org/html5/spec/media-elements.html#dom-media-load

        Of the 29 tests exercising load(), none of them were exercising
        exceptions (obviously).

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::load):
        (WebCore::HTMLMediaElement::resume):
        * html/HTMLMediaElement.h:
        * html/HTMLMediaElement.idl:

2012-11-27  Robert Hogan  <robert@webkit.org>

        REGRESSION (r125578): word-wrapping in absolute position with nbsp, word-spacing and custom font
        https://bugs.webkit.org/show_bug.cgi?id=101443

        Reviewed by David Hyatt.

        Leading non-breaking space in a text run should always get word-spacing applied. When RenderText
        calculates the preferred with of a run of text it breaks it up into word segments that contain
        no breaking spaces and calculates the width of each. So when calculating the width of '&nbsp;b' 
        it needs to add word-spacing to the leading non-breaking space as it does not get collapsed away.

        Test: fast/text/word-space-nbsp.html

        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::advanceInternal):

2012-11-27  Yong Li  <yoli@rim.com>

        [BlackBerry] EventLoop should end when WebKit thread is exiting
        https://bugs.webkit.org/show_bug.cgi?id=103301

        Reviewed by Rob Buis.
        RIM PR# 194379.
        Internally reviewed by Joe Mason.

        Break the nested event loop when WebKit thread has been asked to quit.

        * platform/blackberry/EventLoopBlackBerry.cpp:
        (WebCore::EventLoop::cycle):

2012-11-27  Pratik Solanki  <psolanki@apple.com>

        objc/objc-runtime.h does not exist on all PLATFORM(MAC)
        https://bugs.webkit.org/show_bug.cgi?id=101780

        Reviewed by Brent Fulgham.

        Clean up header includes so we don't include objc/objc-runtime.h.

        No new tests because no functional changes.

        * bridge/objc/objc_header.h:
        * page/mac/EventHandlerMac.mm:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        * platform/graphics/mac/WebLayer.mm:
        * platform/mac/WebCoreObjCExtras.mm:
        * platform/mac/WebVideoFullscreenController.mm:

2012-11-27  Eberhard Graether  <egraether@google.com>

        Plumbing showPaintRects out of InspectorPageAgent to use a different drawing implementation if available.
        https://bugs.webkit.org/show_bug.cgi?id=102452

        Reviewed by Pavel Feldman.

        This change makes the showPaintRects setting in the Web Inspector's settings notify InspectorClient
        when changed. And the default paint rects drawing is not used if an alternative is available.
        This allows Chromium to draw the paint rects in the compositor's HUDLayer.

        No new tests.

        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::overridesShowPaintRects):
        (WebCore::InspectorClient::setShowPaintRects):
        (InspectorClient):
        * inspector/InspectorPageAgent.cpp:
        (PageAgentState):
        (WebCore::InspectorPageAgent::restore):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::setShowPaintRects):
        (WebCore::InspectorPageAgent::didPaint):

2012-11-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Unreviewed cleanup.

        Remove leftover file that was replaced by PlatformScreenQt.cpp 4 years ago.

        * platform/qt/ScreenQt.cpp: Removed.

2012-11-27  Istiaque Ahmed  <lazyboy@chromium.org>

        freeV8NPObject: Skip trying to remove object from per context data's ObjectMap if the object does not exist in the map.
        https://bugs.webkit.org/show_bug.cgi?id=103356

        Reviewed by Adam Barth.

        Before introducing per context data, it used to be the case that we would ignore removing v8 object
        from context data's map if we couldn't find it. With perContextData change, this turned into an ASSERT
        instead and we had crash reports.
        Related crbug.com/154462.

        Test: platform/chromium/plugins/release-frame-content-window.html

        * bindings/v8/NPV8Object.cpp:
        (WebCore::freeV8NPObject):

2012-11-27  Marja Hölttä  <marja@chromium.org>

        Add callbacks to the FrameLoaderClient when a resource is requested
        https://bugs.webkit.org/show_bug.cgi?id=92761

        Reviewed by Adam Barth.

        In Chromium, when an extension script cancels a network
        request (which happens out of process), we'd like to
        notify content scripts running on the current page about
        which elements failed to load because the requests were
        cancelled (as opposed to e.g. the network request just
        didn't work). Since the resource request itself does not
        carry any information what DOM element is was made for,
        currently a content script has to search the DOM tree and
        guess which requests will be cancelled by its counter
        part. By adding these callbacks, the embedder can make
        this connection explictly.

        Test: platform/chromium/fast/loader/resource-request-callbacks.html

        * loader/FrameLoaderClient.h:
        (WebCore):
        (WebCore::FrameLoaderClient::dispatchWillRequestResource):
        (FrameLoaderClient):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):

2012-11-27  Dean Jackson  <dino@apple.com>

        Unreviewed build fix for r135866.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::load):

2012-11-27  Leo Yang  <leoyang@rim.com>

        [BlackBerry] Adapt to the change of BlackBerry::Platform::FilterStream::notifyHeadersReceived
        https://bugs.webkit.org/show_bug.cgi?id=103425

        Reviewed by Yong Li.

        A const has been added for HeaderList parameter of BlackBerry::Platform::FilterStream::notifyHeadersReceived.
        The patch is adapting to this change.

        No functionalities changed no new tests.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyHeadersReceived):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):
        * platform/network/blackberry/rss/RSSFilterStream.cpp:
        (WebCore::RSSFilterStream::notifyHeadersReceived):
        * platform/network/blackberry/rss/RSSFilterStream.h:

2012-11-27  Min Qin  <qinmin@chromium.org>

        Don't throw an exception if user gesture is required for load
        https://bugs.webkit.org/show_bug.cgi?id=103318

        Reviewed by Eric Carlson.

        There is no need to throw an exception if media load requires user gesture.
        Since chrome does not render the poster and media control after an exception is thrown, throwing an exception may break a lot of sites on android.
        Change a current test to match the new behavior: media/video-load-require-user-gesture.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::load):

2012-11-27  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        [GStreamer] Verify if GStreamer was previously initialized
        https://bugs.webkit.org/show_bug.cgi?id=103151

        Reviewed by Philippe Normand.

        This patch calls gst_is_initialized() before calling gst_init_check()
        in order to verify if GStreamer has not been initialized before.

        This is useful particularly for WebKit1 so the applications could
        initialize GStreamer before.

        As the API call was added in GStreamer v0.10.31, the patch fences the
        call only in that version of GStreamer or above.

        No new tests, existing media tests cover this change.

        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
        (WebCore::initializeGStreamer):

2012-11-27  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove V8StringResource::m_string
        https://bugs.webkit.org/show_bug.cgi?id=103367

        Reviewed by Adam Barth.

        This patch cleans up V8StringResource and removes V8StringResource::m_string.
        This patch won't change performance. (This patch just adds one redundant IsString()
        check and one IsInt32() check.) I confirmed no performance regression in micro benchmarks
        (https://bugs.webkit.org/attachment.cgi?id=176178).

        No tests. No change in behavior.

        * bindings/v8/V8Binding.cpp:
        (WebCore::v8NonStringValueToWebCoreString):
        * bindings/v8/V8StringResource.cpp:
        (WebCore::int32ToWebCoreStringFast):
        (WebCore::String):
        (WebCore::AtomicString):
        (WebCore):
        * bindings/v8/V8StringResource.h:
        (WebCore::V8StringResource::V8StringResource):
        (WebCore::V8StringResource::prepareBase):
        (WebCore::V8StringResource::toString):
        (V8StringResource):
        (WebCore::::prepare):

2012-11-27  Alec Flett  <alecflett@chromium.org>

        IndexedDB: stub out IDBDatabaseBackendInterface::createTransaction
        https://bugs.webkit.org/show_bug.cgi?id=102730

        Reviewed by Darin Fisher.

        Stub out and support passing a 64-bit transaction id
        so the frontend can refer to transactions by id rather than
        a proxy object or a direct pointer reference. This will ultimately
        loosen ownership and lifetime of transactions from the frontend
        and backend.

        No new tests, this is just part of a refactor.

        * Modules/indexeddb/IDBDatabase.cpp:
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::createTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::create):
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::id):

2012-11-27  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Crash when dispatching regionlayoutupdate
        https://bugs.webkit.org/show_bug.cgi?id=102944

        Reviewed by Andreas Kling.

        The event dispatch function was incorrectly assuming the RenderNamedFlowThread is valid. Because the event is asynchronous it's
        possible for the flow to be in the "NULL" state (the renderer is 0) while the regionlayoutupdate event is dispatched.

        Test: fast/regions/webkit-named-flow-event-crash.html

        * dom/WebKitNamedFlow.cpp:
        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Remove the ASSERT and don't dispatch the event if the flow is
            in the "NULL" state.

2012-11-27  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions] Absolutely positioned regions do not expand to fill their container
        https://bugs.webkit.org/show_bug.cgi?id=102385

        Reviewed by Julien Chaffraix.

        In the case of an absolutely positioned region with height auto, height computation should follow
        the path of block elements instead of replaced elements.

        Tests: fast/regions/autosize-abspos-anchoredregion-vertlr.html
               fast/regions/autosize-abspos-anchoredregion.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePositionedLogicalHeight): Skip replaced element height computation when a region has height auto.
        * rendering/RenderRegion.h:
        (WebCore::RenderRegion::shouldHaveAutoLogicalHeight): Make it private since it is not accessed from outside.

2012-11-27  Alexander Pavlov  <apavlov@chromium.org>

        Incorrect value of CSSStyleDeclaration#length when a shorthand property is inherit or initial
        https://bugs.webkit.org/show_bug.cgi?id=73002

        Reviewed by Alexis Menard.

        Before the patch, "inherit" and "initial" shorthands would get added to the StylePropertySet as-is, their longhands unspecified.
        This patch tackles two aspects of the problem:
        - When parsing "initial" and "inherit" shorthands, their longhands are added to the property set with the corresponding values.
        - When querying "initial" and "inherit" shorthands, their values are reconstructed from the longhands as usual, but if all of the longhands
          are found to have the same explicit "initial" or "inherit" value, the respective single value is returned as the shorthand value.

        When reconstructing shorthands, a "common value" is tracked. If all longhands involved have the same explicit value, it becomes the
        "common value", otherwise it is a String(). The "inherit" or "initial" common value ultimately becomes the shorthand value
        (except for the "background-position" shorthand, which is a special case).

        * css/CSSParser.cpp:
        (WebCore::parseKeywordValue): Parse shorthands' "initial" and "inherit" values using the CSSParser.
        (WebCore::CSSParser::addExpandedPropertyForValue): Add simple property or all sharthand's longhands with given value and priority.
        (WebCore::CSSParser::parseValue): For "initial" and "inherit" shorthands, add their longhands with the respective value, not the shorthands proper.
        * css/CSSParser.h: Add addExpandedPropertyForValue().
        * css/StylePropertySet.cpp:
        (WebCore::isInitialOrInherit): Check if the value is "initial" or "inherit".
        (WebCore):
        (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit): Modified to track the common value for the "font" shorthand.
        (WebCore::StylePropertySet::fontValue): Ditto.
        (WebCore::StylePropertySet::get4Values): Return "inherit" or "initial" if all 4 values are explicitly "inherit" or "initial".
        (WebCore::StylePropertySet::getLayeredShorthandValue): Use the common value approach for layered shorthands.
        (WebCore::StylePropertySet::getShorthandValue): Ditto for ordinary shorthands.
        (WebCore::StylePropertySet::borderPropertyValue): Ditto for the "border" shorthand.
        * css/StylePropertySet.h: Modify the appendFontLonghandValueIfExplicit() signature.
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont): Now that "inherit" and "initial" shorthands are represented by their longhands,
        we need to check the string value of the "font" shorthand for being "inherit" or "initial" instead: getPropertyCSSValue() no longer works,
        since the shorthand itself is no longer added to the StylePropertySet.

2012-11-27  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Renamed TRYCATCH => V8TRYCATCH.
        (I forgot to apply reviewer's comment in bug 103352 when landing r135817.)

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        (GenerateEventConstructorCallback):
        (ConvertToV8StringResource):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::Float64ArrayV8Internal::fooCallback):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::itemCallback):
        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjV8Internal::idbKeyCallback):
        (WebCore::TestObjV8Internal::optionsObjectCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
        (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
        (WebCore::TestObjV8Internal::convert1Callback):
        (WebCore::TestObjV8Internal::convert2Callback):
        (WebCore::TestObjV8Internal::convert4Callback):
        (WebCore::TestObjV8Internal::convert5Callback):
        (WebCore::TestObjV8Internal::strictFunctionCallback):
        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
        (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/V8Binding.h:
        (WebCore::toV8Sequence):
        * bindings/v8/V8BindingMacros.h:
        * bindings/v8/custom/V8BlobCustom.cpp:
        (WebCore::V8Blob::constructorCallbackCustom):
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::profileCallback):
        (WebCore::V8Console::profileEndCallback):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::getInt8Callback):
        (WebCore::V8DataView::getUint8Callback):
        (WebCore::V8DataView::setInt8Callback):
        (WebCore::V8DataView::setUint8Callback):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::addCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * bindings/v8/custom/V8SVGLengthCustom.cpp:
        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
        * bindings/v8/custom/V8WorkerContextCustom.cpp:
        (WebCore::V8WorkerContext::importScriptsCallback):

2012-11-27  Dan Carney  <dcarney@google.com>

        [V8] add contextForWorld helper function to ScriptController
        https://bugs.webkit.org/show_bug.cgi?id=103376

        Reviewed by Kentaro Hara.

        Reducing some commonly occuring code with an inline function.

        No new tests. No change in functionality.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::contextForWorld):
        (WebCore):
        (WebCore::ScriptController::currentWorldContext):
        (WebCore::ScriptController::mainWorldContext):
        * bindings/v8/ScriptController.h:
        (ScriptController):

2012-11-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Implement the mimetype icon methods
        https://bugs.webkit.org/show_bug.cgi?id=103260

        Reviewed by Simon Hausmann.

        * platform/graphics/Icon.h:
        (Icon):
        * platform/graphics/qt/IconQt.cpp:
        (WebCore::Icon::createIconForFiles):
        (WebCore::Icon::paint):

2012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Incorrect rect-based hit-test result when hit-test region includes culled inlines
        https://bugs.webkit.org/show_bug.cgi?id=88376

        Reviewed by Dave Hyatt.

        Move the handling of culled inlines from HitTestResult::addNodeToRectBasedTestResult to 
        InlineFlowBox::nodeAtPoint. This makes it possible to fix a number of bugs with how
        culled inlines were handled. They are now checked after all their children, and may
        terminate area-based hit-testing if they contain the whole area.

        Tests: fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html
               fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html

        * rendering/HitTestResult.cpp:
        (WebCore::HitTestLocation::HitTestLocation):
        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
        * rendering/HitTestResult.h:
        (HitTestLocation):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::nodeAtPoint):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::hitTestCulledInline):
        * rendering/RenderInline.h:
        (RenderInline):

2012-11-27  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        REGRESSION(134887) [Qt][EFL][WK2] Repaint counter not working
        https://bugs.webkit.org/show_bug.cgi?id=103261

        Reviewed by Noam Rosenthal.

        Fixed regression introduced in 134887, which introduced the
        updateContentsNoSwizzle method and called it directly from
        the repaint counter.

        This method obviously needs to bind the texture.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):

2012-11-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135786.
        http://trac.webkit.org/changeset/135786
        https://bugs.webkit.org/show_bug.cgi?id=103379

        It made 3 plugin tests timeout on several platforms (Requested
        by Ossy on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/FrameLoadRequest.cpp: Removed.
        * loader/FrameLoadRequest.h:
        (WebCore::FrameLoadRequest::FrameLoadRequest):
        (FrameLoadRequest):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load):
        * loader/FrameLoader.h:
        (FrameLoader):
        * page/DragController.cpp:
        (WebCore::DragController::performDrag):
        * plugins/PluginView.cpp:
        (WebCore::PluginView::performRequest):

2012-11-27  Kent Tamura  <tkent@chromium.org>

        Implement ValidityState::badInput
        https://bugs.webkit.org/show_bug.cgi?id=102861

        Reviewed by Hajime Morita.

        Add ValidityState::badInput, add hasBadInput, which always returns
        false, to FormAssociatedElement, HTMLInputElement, and InputType.

        For NumberInputType, we had hasUnacceptableValue, which was a hack to
        make an input element match to :invalid if the element had non-number
        strings. We don't need the hack any more because badInput affects :invalid
        style. hasUnacceptableValue is re-used for hasBadInput implementation.
        We cleared invalid numbers when elements lost focus to tell users that
        the element had invalid numbers. We don't need this behavior because the
        interactive validation tells it.

        For date/time input types, we should make an input badInput when the
        input has empty value but its sub-fields have values. It covers both of
        partial input cases such as 12/--/2012 and invalid dates such as
        02/31/2012.

        For other types, ValidityState::badInput always returns false.

        This patch doesn't contain tests for badInput validation messages. They
        will be added later.

        Tests: fast/forms/date-multiple-fields/date-multiple-fields-validity-badinput.html
               fast/forms/datetime-multiple-fields/datetime-multiple-fields-validity-badinput.html
               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-validity-badinput.html
               fast/forms/month-multiple-fields/month-multiple-fields-validity-badinput.html
               fast/forms/number/number-validity-badinput.html
               fast/forms/time-multiple-fields/time-multiple-fields-validity-badinput.html
               fast/forms/week-multiple-fields/week-multiple-fields-validity-badinput.html

        * html/ValidityState.idl: Add badInput IDL attribute.
        * html/ValidityState.h:
        (ValidityState): Add badInput.
        * html/ValidityState.cpp:
        (WebCore::ValidityState::badInput):
        Added. Calls FormAssociatedElement::hasBadInput.

        * html/FormAssociatedElement.h:
        (FormAssociatedElement): Add hasBadInput.
        * html/FormAssociatedElement.cpp:
        (WebCore::FormAssociatedElement::hasBadInput):
        Added. It always returns false.
        (WebCore::FormAssociatedElement::valid): Takes account of hasBadInput().

        * html/HTMLInputElement.h:
        (HTMLInputElement):
        Remove hasUnacceptableValue, and add hasBadInput override.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::hasBadInput):
        Added. Delegate to InputType::hasBadInput.
        (WebCore): Remove hasUnacceptableValue.

        * html/InputType.h:
        (InputType): Add hasBadInput and badInputText, and remove
        hasUnacceptableValue.
        * html/InputType.cpp:
        (WebCore::InputType::hasBadInput): Added. Returns false.
        (WebCore::InputType::badInputText):
        Added. This function should not be called because hasBadInput always
        returns false.
        (WebCore::InputType::validationMessage):
        Supports badInput. This returns badInputText if hasBadInput is true.

        * html/NumberInputType.h:
        (NumberInputType): Add hasBadInput and badInputTest. Remove
        handleBlurEvent and hasUnacceptableValue.
        * html/NumberInputType.cpp:
        Remove handleBlurEvent, which cleared invalid number strings.
        (WebCore::NumberInputType::hasBadInput):
        Added. We don't need to check existence of a renderer. The standard form
        validation feature doesn't care of it.
        (WebCore::NumberInputType::badInputText): Returns
        validationMessageBadInputForNumberText defined in LocalizedStrings.h.
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):
        Remove a hack for hasUnacceptableValue. isValidFormControlElement takes
        account of badInput.
        * dom/Element.h: Remove hasUnacceptableValue.

        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType): Add hasBadInput and badInputText.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::badInputText):
        Returns validationMessageBadInputForDateTimeText defined in LocalizedStrings.h.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::hasBadInput):
        Added.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
        Add setNeedsValidityCheck call. It is needed because
        updateInnerTextValue can modify subfields empty state.

        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::subtreeHasChanged): Update a comment.
        * platform/LocalizedStrings.h:
        (WebCore): Add validationMessageBadInputForNumberText and
        validationMessageBadInputForDateTimeText.
        * platform/LocalizedStrings.cpp:
        (WebCore::validationMessageBadInputForNumberText):
        Added a placeholder implementation. This should be fixed later.
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        (WebCore::validationMessageBadInputForNumberText): Ditto.
        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::validationMessageBadInputForNumberText): Ditto.
        * platform/qt/LocalizedStringsQt.cpp:
        (WebCore::validationMessageBadInputForNumberText): Ditto.

2012-11-27  Hajime Morrita  <morrita@google.com>

        [Refactoring] NodeFlags::IsShadowRootFlag should be Node::IsDocumentFragmentFlag
        https://bugs.webkit.org/show_bug.cgi?id=103370

        Reviewed by Kentaro Hara.

        This chagne introduces Node::IsDocumentFragmentFlag so that we can
        have fast Node::isDocumentFragment().

        Note that Node::isShadowRoot() can become slightly slower when it
        returns true, but that is minor in terms of the number of calls at runtime.

        No new tests. No behavior change.

        * dom/DocumentFragment.cpp:
        (WebCore::DocumentFragment::create):
        * dom/DocumentFragment.h:
        * dom/Node.cpp:
        (WebCore::Node::documentFragmentIsShadowRoot):
        (WebCore):
        * dom/Node.h:
        (Node):
        (WebCore::Node::isDocumentFragment):
        (WebCore::Node::isShadowRoot):
        (WebCore::Node::parentNode):
        (WebCore::Node::parentNodeGuaranteedHostFree):
        * dom/ShadowRoot.h:

2012-11-26  Kent Tamura  <tkent@chromium.org>

        :read-only selector should match to date/time input types
        https://bugs.webkit.org/show_bug.cgi?id=103350

        Reviewed by Kentaro Hara.

        We supported :read-only and :read-write only for text form controls;
        i.e. <textarea> and text-field <input>. According to [1], we should
        support them for date/time types. So, this patch removes
        isTextFormControl check in SelectorChecker, and just relies on
        shouldMatchRead{Only,Write}Selector virtual functions.

        Tests: Update fast/forms/*/*-appearance-pseudo-classes.html.

        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):
        Remove isFormControlElement check and isTextFormControl check.

        * html/HTMLFormControlElement.cpp:
        Remove shouldMatchRead{Only,Write}Selector functions. We don't need
        common implementations any more.
        * html/HTMLFormControlElement.h: Ditto.

        * html/HTMLTextAreaElement.h:
        (HTMLTextAreaElement): Add shouldMatchRead{Only,Write}Selector overrides.
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::shouldMatchReadOnlySelector): Added.
        (WebCore::HTMLTextAreaElement::shouldMatchReadWriteSelector): Added.

        * html/HTMLInputElement.h:
        (HTMLInputElement): Add shouldMatchRead{Only,Write}Selector overrides.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::shouldMatchReadOnlySelector):
        Added. This checks InputType::supportsReadOnly and readOnly.
        (WebCore::HTMLInputElement::shouldMatchReadWriteSelector): Ditto.

        * html/InputType.h:
        (InputType): Add supportsReadOnly.
        * html/InputType.cpp:
        (WebCore::InputType::supportsReadOnly): Added. Returns false by default.

        * html/BaseDateAndTimeInputType.h:
        (BaseDateAndTimeInputType): Add supportsReadOnly.
        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::supportsReadOnly): Added. Returns true.
        * html/TextFieldInputType.h:
        (TextFieldInputType): Add supportsReadOnly.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::supportsReadOnly): Added. Returns true.

2012-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135822.
        http://trac.webkit.org/changeset/135822
        https://bugs.webkit.org/show_bug.cgi?id=103369

        Undo the revert of r135818, since that change does not affect
        code used by Chromium (Requested by apavlov on #webkit).

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):

2012-11-26  Michael Pruett  <michael@68k.org>

        [GTK] Fix build error on GTK due to r135749
        https://bugs.webkit.org/show_bug.cgi?id=103365

        Reviewed by Dean Jackson.

        In r135749, many files which were already included
        in webcore_built_sources were erroneously added to
        webcore_svg_built_sources in GNUmakefile.list.am.

        * GNUmakefile.list.am:

2012-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135818.
        http://trac.webkit.org/changeset/135818
        https://bugs.webkit.org/show_bug.cgi?id=103368

        platform/chromium/virtual/threaded/compositing/visibility
        /visibility-simple-webgl-layer.html crash on Mountain Lion
        (Requested by apavlov on #webkit).

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):

2012-11-26  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Set visibility to a mask layer in GraphicsLayer::setContentsVisible().
        https://bugs.webkit.org/show_bug.cgi?id=103297

        Reviewed by Noam Rosenthal.

        GraphicsLayerTextureMapper and CoordinatedGraphicsLayer set the visibility of a
        mask layer in setContentsVisible() and setMaskLayer() like setting a size.
        This patch is needed because RenderLayerBacking does not set the visibility to a
        mask layer like the size.

        This patch does not change user experience because an invisible layer is not
        rendered although the mask layer is rendered. In that sense, it is an
        optimization patch.

        No new tests. It is an optimization patch.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):

2012-11-26  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename EXCEPTION_BLOCK() macros
        https://bugs.webkit.org/show_bug.cgi?id=103352

        Reviewed by Adam Barth.

        Since V8Parameter was renamed to V8StringResource,
        we rename macros that use V8Parameter.

        EXCEPTION_BLOCK() => V8TRYCATCH()
        STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() => V8TRYCATCH_FOR_V8STRINGRESOURCE()
        STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID() => V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID()

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        (GenerateEventConstructorCallback):
        (ConvertToV8StringResource):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::Float64ArrayV8Internal::fooCallback):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetV8Internal::itemCallback):
        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjV8Internal::idbKeyCallback):
        (WebCore::TestObjV8Internal::optionsObjectCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
        (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
        (WebCore::TestObjV8Internal::convert1Callback):
        (WebCore::TestObjV8Internal::convert2Callback):
        (WebCore::TestObjV8Internal::convert4Callback):
        (WebCore::TestObjV8Internal::convert5Callback):
        (WebCore::TestObjV8Internal::strictFunctionCallback):
        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
        (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/V8Binding.h:
        (WebCore::toV8Sequence):
        * bindings/v8/V8BindingMacros.h:
        * bindings/v8/custom/V8BlobCustom.cpp:
        (WebCore::V8Blob::constructorCallbackCustom):
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::profileCallback):
        (WebCore::V8Console::profileEndCallback):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::getInt8Callback):
        (WebCore::V8DataView::getUint8Callback):
        (WebCore::V8DataView::setInt8Callback):
        (WebCore::V8DataView::setUint8Callback):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::addCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * bindings/v8/custom/V8SVGLengthCustom.cpp:
        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
        * bindings/v8/custom/V8WorkerContextCustom.cpp:
        (WebCore::V8WorkerContext::importScriptsCallback):

2012-11-26  Andreas Kling  <akling@apple.com>

        Node: Move AreSVGAttributesValidFlag to ElementAttributeData.
        <http://webkit.org/b/103349>

        Reviewed by Anders Carlsson.

        Moved AreSVGAttributesValidFlag to ElementAttributeData and change it to use "dirty" semantics.
        This frees up a bit on Node, and we will always have ElementAttributeData if the animated
        attributes are dirty anyway.

        * dom/Element.cpp:
        (WebCore::Element::getAttribute):
        * dom/Element.h:
        (WebCore::Element::updateInvalidAttributes):
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::ElementAttributeData):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::ElementAttributeData):
        (ElementAttributeData):
        * dom/Node.h:
        (Node):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::updateAnimatedSVGAttribute):
        * svg/SVGElement.h:
        (WebCore::SVGElement::invalidateSVGAttributes):

2012-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135798.
        http://trac.webkit.org/changeset/135798
        https://bugs.webkit.org/show_bug.cgi?id=103354

        Broke the chrome mac build (Requested by noel_ on #webkit).

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
        * platform/graphics/chromium/DeferredImageDecoder.h:
        (DeferredImageDecoder):
        * platform/graphics/chromium/ImageDecodingStore.cpp:
        (WebCore::ImageDecodingStore::instanceOnMainThread):
        (WebCore::ImageDecodingStore::initializeOnMainThread):
        (WebCore::ImageDecodingStore::shutdown):
        (WebCore::ImageDecodingStore::calledOnValidThread):
        (WebCore::ImageDecodingStore::lookupFrameCache):
        (WebCore::ImageDecodingStore::deleteFrameCache):
        * platform/graphics/chromium/ImageDecodingStore.h:
        (WebCore):
        (ImageDecodingStore):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::setData):
        (WebCore::ImageFrameGenerator::decodeAndScale):
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (WebCore):
        (WebCore::ImageFrameGenerator::create):
        (ImageFrameGenerator):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (WebCore):
        (LazyDecodingPixelRef):
        * platform/graphics/chromium/ScaledImageFragment.cpp:
        (WebCore::ScaledImageFragment::ScaledImageFragment):
        (WebCore::ScaledImageFragment::isEqual):
        (WebCore):
        * platform/graphics/chromium/ScaledImageFragment.h:
        (WebCore):
        (WebCore::ScaledImageFragment::create):
        (ScaledImageFragment):
        * platform/graphics/chromium/SkSizeHash.h: Removed.

2012-11-26  Huang Dongsung  <luxtella@company100.net>

        [TexMap] GraphicsLayerTextureMapper::setSize() sets the size of a mask layer.
        https://bugs.webkit.org/show_bug.cgi?id=103297

        Reviewed by Noam Rosenthal.

        Currently, CoordinatedGraphicsLayer sets the size of a mask layer in setSize()
        and setMaksLayer(). GraphicsLayerTextureMapper follows the behavior. If so we
        don't have to check the size of the mask layer in TextureMapperLayer::flushCompositingState().

        No new tests. Covered by existing tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
        (WebCore::GraphicsLayerTextureMapper::setSize):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingState):

2012-11-26  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove V8Parameter::object()
        https://bugs.webkit.org/show_bug.cgi?id=103340

        Reviewed by Adam Barth.

        V8Parameter can use m_v8Object directly.

        No tests. No change in behavior.

        * bindings/v8/V8StringResource.h:
        (WebCore::::prepare):

2012-11-26  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename V8Parameter to V8StringResource
        https://bugs.webkit.org/show_bug.cgi?id=103341

        Reviewed by Adam Barth.

        We can rename V8Parameter to V8StringResource. In a follow-up patch,
        I will rename macros around V8Parameter.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateParametersCheck):
        (GenerateEventConstructorCallback):
        (GetNativeTypeFromSignature):
        (GetNativeType):
        (ConvertToV8StringResource):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
        (WebCore::TestObjV8Internal::strictFunctionCallback):
        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/V8StringResource.h:
        (WebCore::V8StringResource::V8StringResource):
        (WebCore::::prepare):
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::profileCallback):
        (WebCore::V8Console::profileEndCallback):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::V8WebGLRenderingContext::getExtensionCallback):

2012-11-26  Andreas Kling  <akling@apple.com>

        HTMLOptionElement: Remove two unused members.
        <http://webkit.org/b/103337>

        Reviewed by Kent Tamura.

        Remove two unused members from HTMLOptionElement, m_value and m_label.
        40kB progression on Membuster3.

        * html/HTMLOptionElement.h:
        (HTMLOptionElement):

2012-11-26  Stephen White  <senorblanco@chromium.org>

        [Chromium] Shared graphics context should only pushGroupMarker() once
        https://bugs.webkit.org/show_bug.cgi?id=103082

        Reviewed by James Robinson.

        GraphicsContext3D's pushGroupMarkerEXT() is being called every time
        an ImageBuffer is created, leading to unlimited memory growth, since
        they share a common GraphicsContext3D.  It should be called only once,
        on context creation.

        Tested by manually checking the memory usage in Chrome's TaskManager.
        (Sorry, I can't think of a way to test this automatically.)

        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
        (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::createAcceleratedCanvas):

2012-11-26  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove WorkerContextExecutionProxy.{h,cpp}
        https://bugs.webkit.org/show_bug.cgi?id=103325

        Reviewed by Adam Barth.

        Now WorkerContextExecutionProxy.{h,cpp} are empty.

        No tests. No change in behavior.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/ScheduledAction.cpp:
        * bindings/v8/V8AbstractEventListener.cpp:
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8WorkerContextEventListener.h:
        (WebCore):
        * bindings/v8/WorkerContextExecutionProxy.cpp: Removed.
        * bindings/v8/WorkerContextExecutionProxy.h: Removed.
        * bindings/v8/WorkerScriptController.cpp:
        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
        * bindings/v8/custom/V8MessageChannelCustom.cpp:
        * bindings/v8/custom/V8MessagePortCustom.cpp:
        * bindings/v8/custom/V8WorkerCustom.cpp:
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:

2012-11-26  Michael Saboff  <msaboff@apple.com>

        Grapheme cluster functions can be simplified for 8 bit Strings
        https://bugs.webkit.org/show_bug.cgi?id=102996

        Reviewed by Alexey Proskuryakov.

        For 8 bit strings, check for the uncommon CR-LF by looking for any CR.  If there aren't any CR characters,
        the number of Extended Grapheme Clusters is equal to the string length.  If we need to handle Tailored
        Graheme Clusters, then this will need to change.

        No new tests. No change in functionality.

        * platform/text/TextBreakIterator.cpp:
        (WebCore::numGraphemeClusters):
        (WebCore::numCharactersInGraphemeClusters):

2012-11-26  Istiaque Ahmed  <lazyboy@chromium.org>

        Check for empty perContextData while creating NP V8 Object.
        https://bugs.webkit.org/show_bug.cgi?id=98448

        Reviewed by Adam Barth.

        Fixes crash in npCreateV8ScriptObject(), if NP Invoke is called from a document
        that is no longer displayed in frame (isCurrentlyDisplayedInFrame() ==
        false), we have empty perContextData and this results in invalid memory access.

        Test: platform/chromium/plugins/empty-per-context-data.html

        * bindings/v8/NPV8Object.cpp:
        (WebCore::npCreateV8ScriptObject):

2012-11-26  Michael Saboff  <msaboff@apple.com>

        HTML/XML parser helper unconsumeCharacters() can push back 8 bit text as 16 bit text
        https://bugs.webkit.org/show_bug.cgi?id=103317

        Reviewed by Oliver Hunt.

        Changed to use the String directly from the StringBuilder instead of creating our own.
        Used toStringPreserveCapacity() in case the caller may want to add to the StringBuilder
        even though current callers don't.

        No new tests. No change in functionality.

        * xml/parser/CharacterReferenceParserInlines.h:
        (WebCore::unconsumeCharacters):

2012-11-26  Noel Gordon  <noel.gordon@gmail.com>

        PNG decode performance: avoid using frame buffer.setRGBA(x,y)
        https://bugs.webkit.org/show_bug.cgi?id=103216

        Reviewed by Brent Fulgham.

        Writing decoded row pixels to the frame buffer with buffer.setRGBA(x,y) is slow compared
        to writing direct to the frame buffer address. Use buffer.getAddr() to obtain the output
        pixel row address, write the decoded row pixels to that address.

        No new tests. Covered by many existing tests.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageFrame::setRGBA): Make routine setRGBA(PixelData* dest, ...) public. Test
        m_premultiplyAlpha once to minimize code branching in this routine.
        * platform/image-decoders/png/PNGImageDecoder.cpp:
        (WebCore::PNGImageDecoder::rowAvailable): Write decoded row pixels to the frame buffer
        using the pixel address form: buffer.setRGBA(address++, ...).

2012-11-26  Alpha Lam  <hclam@chromium.org>

        [chromium] Implement full-featured image cache
        https://bugs.webkit.org/show_bug.cgi?id=99784

        Reviewed by James Robinson.

        Implement a thread-safe image cache to be used with deferred image
        decoding. Image cache can now be accessed on any thread.

        The patch implements the following logic:
        1. Mutex to protect all cache operations.
        2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize)
        3. Cache lookup.
        4. Cache insertion.
        5. Generation of cache entry by scaling full size image.
        6. Generation of cache entries by decoding and scaling.

        Classes involved:

        ImageDecodingStore

        Responsible for owning cache entries and indexing. Pruning and memory
        management will be added later.

        ImageFrameGenerator

        Responsible for generating new cache enties and insert them into
        ImageDecodingStore.

        LazyDecodingPixelRef

        Responsible for cache lookup and lazy generation of cache entries
        using ImageFrameGenerator. There is a mutex to protect concurrent
        lock operations.

        These items are not implemented in this patch:
        1. Cache pruning.
        2. Setting cache memory limit.
        3. Cache deletion.
        4. Caching incomplete images and ImageDecoder.

        Unit tests added in ImageFrameGeneratorTest.cpp.
        Layout tests are under platform/chromium/virtual/fast/images.

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
        (WebCore::DeferredImageDecoder::setEnabled):
        (WebCore):
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
        * platform/graphics/chromium/DeferredImageDecoder.h:
        (DeferredImageDecoder):
        * platform/graphics/chromium/ImageDecodingStore.cpp:
        (WebCore::ImageDecodingStore::instance):
        (WebCore::ImageDecodingStore::initializeOnce):
        (WebCore::ImageDecodingStore::shutdown):
        (WebCore::ImageDecodingStore::lockCompleteCache):
        Lookup complete cache entry using hash key, increment use count.
        (WebCore::ImageDecodingStore::lockIncompleteCache): TODO.
        (WebCore::ImageDecodingStore::unlockCache):
        Lookup cache entry using hash key, decrement use count.
        (WebCore):
        (WebCore::ImageDecodingStore::insertAndLockCache):
        Insert new cache entry and increment use count.
        (WebCore::ImageDecodingStore::prune): TODO.
        * platform/graphics/chromium/ImageDecodingStore.h:
        (WebCore):
        (ImageDecodingStore):
        (WebCore::ImageDecodingStore::CacheEntry::create):
        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
        (CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
        (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::setData):
        (WebCore::ImageFrameGenerator::decodeAndScale):
        Method for creating new cache entries. This is protected by a mutex
        to prevent concurrent operations. Which means only one thread can
        generate new cache entries for a set of encoded data.
        (WebCore):
        (WebCore::ImageFrameGenerator::tryToLockCache):
        Tries to lookup a cache entry.
        (WebCore::ImageFrameGenerator::tryToScale):
        Tries to lookup a full size cache entry and generate a scaled version.
        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
        Tries to decode and scale.
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (WebCore):
        (ImageDecoderFactory):
        (WebCore::ImageFrameGenerator::create):
        (ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (WebCore):
        (LazyDecodingPixelRef):
        * platform/graphics/chromium/ScaledImageFragment.cpp:
        (WebCore::ScaledImageFragment::ScaledImageFragment):
        * platform/graphics/chromium/ScaledImageFragment.h:
        (WebCore):
        (WebCore::ScaledImageFragment::create):
        (ScaledImageFragment):
        (WebCore::ScaledImageFragment::scaledSize):
        * platform/graphics/chromium/SkSizeHash.h: Added.
        (WTF):

2012-11-26  Andreas Kling  <akling@apple.com>

        Node: Remove IsSynchronizingSVGAttributesFlag.
        <http://webkit.org/b/103328>

        Reviewed by Antti Koivisto.

        Animated SVG attributes used to be synchronized by using DOM API which could use unwanted re-entrancy
        via callbacks below Element::attributeChanged(). The "is synchronizing SVG attributes" flag was used
        to protect against such re-entrancy.

        These days, lazy attributes are synchronized using Element::setSynchronizedLazyAttribute() to avoid
        issues like this. The flag does nothing, so we can just remove it.

        * dom/Node.h:
        (WebCore):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::attributeChanged):
        (WebCore::SVGElement::updateAnimatedSVGAttribute):

2012-11-26  Kentaro Hara  <haraken@chromium.org>

        [V8] Refactor WorkerScriptController
        https://bugs.webkit.org/show_bug.cgi?id=103330

        Reviewed by Adam Barth.

        r135703 just moved methods from WorkerContextExecutionProxy
        to WorkerScriptController. We should refactor the methods as a follow-up.

        No tests. No change in behavior.

        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::~WorkerScriptController):
        (WebCore::WorkerScriptController::disposeContext):
        (WebCore::WorkerScriptController::initializeContextIfNeeded):
        (WebCore::WorkerScriptController::evaluate):
        (WebCore::WorkerScriptController::disableEval):
        * bindings/v8/WorkerScriptController.h:
        (WorkerScriptController):

2012-11-26  Varun Jain  <varunjain@chromium.org>

        LongPress and LongTap gestures should start drag/drop and open context menu respectively.
        https://bugs.webkit.org/show_bug.cgi?id=101545

        Reviewed by Antonio Gomes.

        For LongPress, we simulate drag by sending a mouse down and mouse drag
        events. If a drag is not started (because maybe there is no draggable
        element), then we show context menu instead (which is the current
        behavior for LongPress). For LongTap, we use the existing functions that
        LongPress uses to summon the context menu. LongPress initiated drag and
        drop can be enabled/disabled by the platform using the Setting
        touchDragDropEnabled which is disabled by default.

        Tests: fast/events/touch/gesture/context-menu-on-long-tap.html
               fast/events/touch/gesture/long-press-on-draggable-element-triggers-drag.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler):
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::handleMouseDraggedEvent):
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::handleGestureLongPress):
        (WebCore::EventHandler::handleGestureLongTap):
        (WebCore):
        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
        (WebCore::EventHandler::adjustGesturePosition):
        (WebCore::EventHandler::handleDrag):
        * page/EventHandler.h:
        (EventHandler):
        * page/Settings.in:

2012-11-26  Andreas Kling  <akling@apple.com>

        RenderStyle: Move 'list-style-image' to rare inherited data.
        <http://webkit.org/b/103300>

        Reviewed by Antti Koivisto.

        list-style-image is not nearly common enough to merit a spot in StyleInheritedData.
        Move it to StyleRareInheritedData.

        134kB progression on Membuster3.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        (WebCore::RenderStyle::listStyleImage):
        (WebCore::RenderStyle::setListStyleImage):
        * rendering/style/StyleInheritedData.cpp:
        (WebCore::StyleInheritedData::StyleInheritedData):
        (WebCore::StyleInheritedData::operator==):
        * rendering/style/StyleInheritedData.h:
        (StyleInheritedData):
        * rendering/style/StyleRareInheritedData.h:
        * rendering/style/StyleRareInheritedData.cpp:
        (SameSizeAsStyleRareInheritedData):
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):

2012-11-26  James Simonsen  <simonjam@chromium.org>

        Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
        https://bugs.webkit.org/show_bug.cgi?id=102151

        Reviewed by Adam Barth.

        There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
        There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
        the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
        the refactoring done with CachedResourceRequest and CachedResourceLoader.

        No new tests. No change in functionality.

        * WebCore.exp.in:
        * loader/FrameLoadRequest.h:
        (WebCore::FrameLoadRequest::FrameLoadRequest):
        (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
        (WebCore::FrameLoadRequest::lockHistory): Ditto.
        (FrameLoadRequest):
        (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
        (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
        (WebCore::FrameLoadRequest::substituteData): Ditto.
        (WebCore::FrameLoadRequest::setSubstituteData): Ditto.
        (WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
        * loader/FrameLoader.h:
        (FrameLoader):
        * page/DragController.cpp:
        (WebCore::DragController::performDrag):

2012-11-24 Genevieve Mak <gmak@rim.com>

        [BlackBerry] Stop sending touch events to plugins.
        https://bugs.webkit.org/show_bug.cgi?id=103188

        Reviewed by Rob Buis.

        Reviewed internally by Jeff Rogers and Mike Lattanzio.
        No tests required.
        PR #248605

        * plugins/blackberry/PluginViewBlackBerry.cpp:
        (WebCore::PluginView::handleTouchEvent):
        (WebCore::PluginView::handleMouseEvent):

2012-11-26  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Removing unnecessary friend classes in RenderObject: LayoutRepainter, RenderSVGContainer
        https://bugs.webkit.org/show_bug.cgi?id=103164

        Reviewed by Simon Fraser.

        Removing some of classes marked as friend of RenderObject. This patch solves this issue
        for 2 classes: RenderSVGContainer (that is derived from RenderObject) and LayoutRepainter
        (that accesses one const member function in RenderObject that is now made public).

        No new tests, no changes in functionality.

        * rendering/RenderObject.h:
        (RenderObject):
        (WebCore::RenderObject::outlineBoundsForRepaint):

2012-11-26  Jon Lee  <jonlee@apple.com>

        Pass clicks through to the restarted plugin
        https://bugs.webkit.org/show_bug.cgi?id=102150
        <rdar://problem/12695575>

        Reviewed by Simon Fraser.

        Add a new state to the machine for plugin snapshotting, called PlayingWithPendingMouseClick.
        This represents the state where the plugin is playing, but before the pending mouse click
        has been fired. Once the click is sent, the plugin state transitions to Playing. For
        situations where the plugin just runs normally without a simulated click, the plugin state
        jumps from DisplayingSnapshot straight to Playing, as before.

        * html/HTMLPlugInElement.h: Add new display state to represent when the plugin is running,
        but a pending mouse click is about to be sent to the plugin.
        (WebCore::HTMLPlugInElement::dispatchPendingMouseClick): Called by the plugin when it is
        ok for the element to send the pending mouse click.
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::defaultEventHandler): Update the handler to pass the event
        to the renderer to handle if the state is before PlayingWithPendingMouseClick.

        * html/HTMLPlugInImageElement.h:
        * html/HTMLPlugInImageElement.cpp: Add a click timer to delay the mouse click so that the
        plugin has some time to initialize.
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialize the mouse timer.
        (WebCore::HTMLPlugInImageElement::setPendingClickEvent): Keep track of the click event
        the user made to restart the plugin.
        (WebCore::HTMLPlugInImageElement::dispatchPendingMouseClick): Start the timer.
        (WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): When the timer fires,
        dispatch the simulated click, with mouse over, mouse down, and mouse up events. Transition
        to the Playing state, and we no longer need the click event.

        * rendering/RenderSnapshottedPlugIn.cpp: Change the threshold state to PlayingWithPendingMouseClick
        instead of Playing, since that is the earliest state where the plugin is playing.
        (WebCore::RenderSnapshottedPlugIn::paint):
        (WebCore::RenderSnapshottedPlugIn::paintReplaced):
        (WebCore::RenderSnapshottedPlugIn::getCursor):
        (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the button, jump to
        Playing, and don't send a simulated click. Otherwise, transition to PlayingWithPendingMouseClick,
        and keep track of that mouse event.

        * WebCore.exp.in: Export MouseRelatedEvent::offsetX() and offsetY().

2012-11-26  Dan Carney  <dcarney@google.com>

        Refactor V8 bindings to allow content scripts to access subframes
        https://bugs.webkit.org/show_bug.cgi?id=93646

        Reviewed by Adam Barth.

        Isolated window shells are now initialized on the fly
        as needed.

        No new tests. Existing test modified.

        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
        * bindings/v8/DOMWrapperWorld.h:
        (WebCore::DOMWrapperWorld::createdFromUnitializedWorld):
        (DOMWrapperWorld):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::currentWorldContext):

2012-11-26  Alex Christensen  <alex.christensen@flexsim.com>

        clipboardwin compile error for win64
        https://bugs.webkit.org/show_bug.cgi?id=94124

        Reviewed by Brent Fulgham.

        The clipboard utilities code uses std::min with one unsigned int parameter and one size_t parameter.
        This causes a problem when compiling for 64-bit Windows because the two types are not the same size.
        To resolve this issue, we specify the template type as the type the return value is being cast into

        Fixed a few compile errors for Windows x64 by specifying template parameters.

        * platform/win/ClipboardUtilitiesWin.cpp:
        (WebCore::setFileDescriptorData): Specify the types for the std::min macro to avoid compiler errors
        under 64-bit builds.

2012-11-26  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        [GTK] GtkSocket is leaked until webview is destroyed.
        https://bugs.webkit.org/show_bug.cgi?id=102564

        Reviewed by Martin Robinson.

        Remove GtkSocket from its parent when pluginview is destroyed. Then,
        the GtkSocket and it's possible child widgets are realeased when it is
        no more needed.

        No new tests, already covered by existing tests.

        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::platformDestroy):

2012-11-26  Luke Macpherson   <macpherson@chromium.org>

        Make StyleResolver::applyProperty use isInherit in CSSPropertyWebkitMarquee instead of calculating equivalent in-place.
        https://bugs.webkit.org/show_bug.cgi?id=102446

        Reviewed by Tony Chang.

        !m_parentNode || !value->isInheritedValue() is equivalent to !isInherit (by De Morgan's law).

        No new tests / code is provably equivalent.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2012-11-26  Pratik Solanki  <psolanki@apple.com>

        Add ResourceBuffer::append(CFDataRef) to get code to compile with USE(NETWORK_CFDATA_ARRAY_CALLBACK)
        https://bugs.webkit.org/show_bug.cgi?id=102706

        Reviewed by Brent Fulgham.

        No new tests because the flag isn't enabled. Also the functionality should be covered by
        existing tests.

        * loader/ResourceBuffer.cpp:
        (WebCore):
        (WebCore::ResourceBuffer::append):
        * loader/ResourceBuffer.h:
        (ResourceBuffer):
        * loader/mac/ResourceLoaderMac.mm:

2012-11-26  Tony Chang  <tony@chromium.org>

        Move more functions from internals.settings to internals
        https://bugs.webkit.org/show_bug.cgi?id=102976

        Reviewed by Adam Barth.

        Move functions that don't have to do with Settings off of internals.settings.
        setPagination and configurationForViewport were defined on internals, so we
        can inline the functions (no test change).

        setEnableMockPagePopup is moved to Internals.

        No new tests, this is a refactor.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::reset): Move reset code into Internals.
        * testing/InternalSettings.h:
        (InternalSettings): Remove code for setPagination, configurationForViewport and setEnableMockPagePopup.
        * testing/InternalSettings.idl: Remove setPagination and setEnableMockPagePopup.
        * testing/Internals.cpp:
        (WebCore): Use a static to keep track of the MockPagePopupDriver.
        (WebCore::Internals::resetToConsistentState): Code from InternalSettings::reset
        (WebCore::Internals::setEnableMockPagePopup): Code copied from InternalSettings.
        (WebCore::Internals::pagePopupController): Code copied from InternalSettings.
        (WebCore::Internals::setPagination): Code copied from InternalSettings.
        (WebCore::Internals::configurationForViewport): Code copied from InternalSettings.
        * testing/Internals.h:
        (Internals): Add setEnableMockPagePopup.
        * testing/Internals.idl: Add setEnableMockPagePopup.

2012-11-26  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
        https://bugs.webkit.org/show_bug.cgi?id=101332

        Reviewed by David Hyatt.

        Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
        the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
        including two new members, the containing Region for the line and a boolean that states if the line was laid out in a Region or not.
        The flag is necessary because the sanitize function on LineFragmentationData resets the containing Region to 0 if the Region was removed from
        chain (so a value of 0 for the containing Region means two things). The sanitize function should prevent access to an invalid address.
        The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
        styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
        A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
        the task of updating the containing Region to the block.

        Tests: fast/regions/line-containing-region-crash.html

        * rendering/InlineFlowBox.cpp:
        (SameSizeAsInlineFlowBox):
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::InlineFlowBox):
        (InlineFlowBox):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
        (WebCore::RenderBlock::linkToEndLineIfNeeded):
        (WebCore::RenderBlock::determineStartPosition):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::RootInlineBox):
        (WebCore::RootInlineBox::setContainingRegion):
        (WebCore):
        (WebCore::RootInlineBox::LineFragmentationData::sanitize): This is an O(1) function that checks if the containig Region is still valid pointer.
        * rendering/RootInlineBox.h:
        (WebCore):
        (WebCore::RootInlineBox::paginationStrut):
        (WebCore::RootInlineBox::setPaginationStrut):
        (WebCore::RootInlineBox::isFirstAfterPageBreak):
        (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
        (WebCore::RootInlineBox::paginatedLineWidth):
        (WebCore::RootInlineBox::setPaginatedLineWidth):
        (RootInlineBox):
        (WebCore::RootInlineBox::containingRegion):
        (WebCore::RootInlineBox::hasContainingRegion): Use this to determine if the line has a region or not.
        (WebCore::RootInlineBox::ensureLineFragmentationData):
        (LineFragmentationData):
        (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):


2012-11-26  Michelangelo De Simone  <michelangelo@webkit.org>

        [CSS Shaders] Add IDL file and bindings for mix function
        https://bugs.webkit.org/show_bug.cgi?id=93011

        Reviewed by Dean Jackson.

        JavaScript bindings have been added for the Custom Filter mix()
        function (WebKitCSSMixFunctionValue). As of now, this is only a
        placeholder that extends CSSValueList without adding any new
        property.

        Test: css3/filters/custom/custom-filter-mix-bindings.html

        * CMakeLists.txt: mix() IDL has been added to the Generator;
        DerivedSources have been included.
        * DerivedSources.cpp: Ditto.
        * DerivedSources.make: Ditto.
        * DerivedSources.pri: Ditto.
        * GNUmakefile.list.am: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS): return a JSC DOM wrapper for WebKitCSSMixFunctionValue.
        * bindings/v8/custom/V8CSSValueCustom.cpp:
        (WebCore::V8CSSValue::dispatchWrapCustom): Ditto, for V8.
        * css/WebKitCSSMixFunctionValue.idl: Added.

2012-11-26  Simon Fraser  <simon.fraser@apple.com>

        Optimize layer updates after scrolling
        https://bugs.webkit.org/show_bug.cgi?id=102635

        Reviewed by Sam Weinig.

        updateLayerPositionsAfterScroll() previously unconditionally cleared clip
        rects, and recomputed repaint rects too often. Recomputing both of these
        can be very expensive, as they involve tree walks up to the root.
        
        We can optimize layer updates after document scrolling by only clearing clip
        rects, and recomputing repaint rects, if we encounter a fixed- or sticky-position
        element. For overflow scroll, we have to clear clip rects and recompute repaint rects.

        * page/FrameView.cpp:
        (WebCore::FrameView::repaintFixedElementsAfterScrolling): Call updateLayerPositionsAfterDocumentScroll().
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions): Call clearClipRects() because
        updateLayerPosition() no longer does.
        (WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll): Version of updateLayerPositionsAfterScroll()
        that is for document scrolls. It has no need to push layers to the geometry map.
        (WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll): Pushes layers to the geometry map,
        and calls updateLayerPositionsAfterScroll() with the IsOverflowScroll flag.
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Set the HasChangedAncestor flag
        if our location changed, and use that as a hint to clear cached rects. Be more conservative
        than before about when to clear cached clip rects.
        (WebCore::RenderLayer::updateLayerPosition):  Move responsibility for calling
        clearClipRects() ouf of this function and into callers.
        (The one caller outside RenderLayer will be removed via bug 102624).
        Return a bool indicating whether our position changed.
        (WebCore::RenderLayer::scrollTo): Call updateLayerPositionsAfterOverflowScroll().
        (WebCore::RenderLayer::updateClipRects): Added some #ifdeffed out code that is useful
        to verify that cached clips are correct; it's too slow to leave enabled in debug builds.
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::setLocation): Change to take a LayoutPoint, rather than separate
        x and y.

2012-11-26  Rafael Brandao  <rafael.lobo@openbossa.org>

        [Cairo] Surface should not be destroyed before its usage
        https://bugs.webkit.org/show_bug.cgi?id=103273

        Reviewed by Brent Fulgham.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawRepaintCounter): There's some calls to get
        the bits and stride from surface right after its destructions. It should
        be postponed to avoid annoying bugs.

2012-11-26  Julien Chaffraix  <jchaffraix@webkit.org>

        RenderBox::computePercentageLogicalHeight should use containingBlockLogicalWidthForContent
        https://bugs.webkit.org/show_bug.cgi?id=103075

        Reviewed by Ojan Vafai.

        Using the containing block's content logical block was working for most renderers but 2 renderers
        were special and were broken in orthogonal writing modes:
        - captions as they override containingBlockLogicalWidthForContent to return the table's logical width.
        - multi-column renderers as they override availableLogicalWidth to constrain the child to the column logical width.

        By switching to containingBlockLogicalWidthForContent, we got those 2 cases covered.

        Tests: fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html
               fast/table/caption-orthogonal-writing-mode-sizing.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePercentageLogicalHeight):
        Updated the function to track which renderer's containing block we use and call
        containingBlockLogicalWidthForContent on it.

2012-11-26  Abhishek Arya  <inferno@chromium.org>

        Crash in Frame::dispatchVisibilityStateChangeEvent.
        https://bugs.webkit.org/show_bug.cgi?id=102053

        Reviewed by Adam Barth.

        Child frame can go away inside webkitvisibilitychange
        event handler. Store it in a ref counted vector.

        Test: fast/frames/page-visibility-crash.html

        * page/Frame.cpp:
        (WebCore::Frame::dispatchVisibilityStateChangeEvent):

2012-11-26  Hurnjoo Lee  <hurnjoo.lee@samsung.com>

        [Cairo] fillRectWithColor with Color::transparent doesn't perform anything
        https://bugs.webkit.org/show_bug.cgi?id=101911

        Reviewed by Kenneth Rohde Christiansen.

        fillRectWithColor with Color::transparent doesn't perform anything
        because fillRectWithColor does early-return if the alpha value of
        color is zero. But we expect that fill the rect with transparent color
        in case the cairo_operator is CAIRO_OPERATOR_SOURCE.

        Covered by existing tests.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::fillRectWithColor):Add condition to prevent early-return if
        cairo_operator is not CAIRO_OPERATOR_OVER

2012-11-26  Jae Hyun Park  <jae.park@company100.net>

        Remove redundant assignment in TextureMapperLayer::flushCompositingStateSelf
        https://bugs.webkit.org/show_bug.cgi?id=103233

        Reviewed by Noam Rosenthal.

        This patch removes redundant assignment in TextureMapperLayer::flushCompositingStateSelf.

        No new tests, because no change in bahavior.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingStateSelf):

2012-11-26  Tamas Czene  <tczene@inf.u-szeged.hu>

        OpenCL version of SourceAlpha, SourceGraphics and FETurbulence filter effects 
        https://bugs.webkit.org/show_bug.cgi?id=99829

        Reviewed by Zoltan Herczeg.

        This patch contains the OpenCL implementation of SourceAlpha, SourceGraphic, FETurbulence and a simple OpenCL environment. 
        At the moment only the Qt build system is supported 
        ~3x speed-up (depending on hardware configuration)

        * Target.pri:
        * WebCore.pri:
        * platform/graphics/filters/FETurbulence.h: Added platformApplyOpenCL() virtual function.
        (FETurbulence):
        * platform/graphics/filters/FilterEffect.cpp: Added platform specific apply.
        (WebCore::FilterEffect::apply):
        (WebCore):
        (WebCore::FilterEffect::platformApplyOpenCL): A function to use software computing if a filter is not implemented on OpenCL. It will be deleted after all of the filters are implemented.
        (WebCore::FilterEffect::clearResult):
        (WebCore::FilterEffect::asImageBuffer):
        (WebCore::FilterEffect::openCLImageToImageBuffer): Gets the result of the filter from the OpenCL device and converts it to ImageBuffer type.
        (WebCore::FilterEffect::createOpenCLImageResult): Allocates memory on OpenCL device and if it gets an image as a parameter, it uploads the image to the OpenCL device.
        (WebCore::FilterEffect::transformResultColorSpace): 
        * platform/graphics/filters/FilterEffect.h:
        (FilterEffect):
        (WebCore::FilterEffect::openCLImage):
        (WebCore::FilterEffect::setOpenCLImage):
        (WebCore::FilterEffect::hasResult):
        * platform/graphics/filters/SourceAlpha.h:
        (SourceAlpha):
        * platform/graphics/filters/SourceGraphic.h:
        (SourceGraphic):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp: Added.
        (WebCore):
        (WebCore::FilterContextOpenCL::context): Configures the OpenCL environment.
        (WebCore::FilterContextOpenCL::createOpenCLImage): Allocates memory on OpenCL device.
        (WebCore::FilterContextOpenCL::openCLTransformColorSpace): OpenCL implementation of transformColorSpace.
        (WebCore::FilterContextOpenCL::compileProgram):
        * platform/graphics/gpu/opencl/FilterContextOpenCL.h: Added.
        (WebCore):
        (FilterContextOpenCL):
        (WebCore::FilterContextOpenCL::deviceId):
        (WebCore::FilterContextOpenCL::deviceContext):
        (WebCore::FilterContextOpenCL::commandQueue):
        (RunKernel):
        (WebCore::FilterContextOpenCL::RunKernel::RunKernel):
        (WebCore::FilterContextOpenCL::RunKernel::addArgument):
        (WebCore::FilterContextOpenCL::RunKernel::run):
        (WebCore::FilterContextOpenCL::kernelByName): Returns the reference of a function in the OpenCL program.
        * platform/graphics/gpu/opencl/OpenCLFESourceAlpha.cpp: Added.
        (WebCore):
        (WebCore::SourceAlpha::platformApplyOpenCL):
        * platform/graphics/gpu/opencl/OpenCLFESourceGraphic.cpp: Added.
        (WebCore):
        (WebCore::SourceGraphic::platformApplyOpenCL):
        * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp: Added.
        (WebCore):
        (WebCore::FilterContextOpenCL::compileFETurbulence):
        (WebCore::FilterContextOpenCL::applyFETurbulence):
        (WebCore::FETurbulence::platformApplyOpenCL):
        * platform/graphics/gpu/opencl/OpenCLHandle.h: Added.
        (WebCore):
        (OpenCLHandle):
        (WebCore::OpenCLHandle::OpenCLHandle):
        (WebCore::OpenCLHandle::operator cl_mem):
        (WebCore::OpenCLHandle::operator=):
        (WebCore::OpenCLHandle::operator UnspecifiedBoolType):
        (WebCore::OpenCLHandle::handleAddress):
        (WebCore::OpenCLHandle::clear):

2012-11-26  'Pavel Feldman'  <pfeldman@chromium.org>

        Not reviewed: follow up for r135720, fixing node highlight.

        * inspector/InspectorOverlayPage.html:

2012-11-26  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        [EFL] Crashes in compositing layout tests with AC on.
        https://bugs.webkit.org/show_bug.cgi?id=103144

        Reviewed by Noam Rosenthal.

        Application could leave texture packing parameters in non-zero state before
        texture mapper drawing/texture uploading. To avoid crash texture upload should
        specify packing parameters before each texture upload if packing is supported.

        Covered by existing tests.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):

2012-11-26  George Staikos  <staikos@webkit.org>

        [BlackBerry] Remove a lot of unnecessary and incorrect code causing crashes
        https://bugs.webkit.org/show_bug.cgi?id=103199

        Reviewed by Yong Li.

        This is the first big step to unforking this code.  It's very close to
        where it needs to be now, but the first step is to get rid of the
        crashes by deleting code that isn't needed and makes bad assumptions
        about object lifetime.  Crashes were found by automation without
        test case or reproduction steps.

        * loader/blackberry/CookieJarBlackBerry.cpp:
        (WebCore::cookies): delete most code
        (WebCore::setCookies): delete most code

2012-11-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        Viewport CSS rules should not clamp values like Viewport META
        https://bugs.webkit.org/show_bug.cgi?id=103068

        Reviewed by Kenneth Rohde Christiansen.

        CSS Device Adaption does not clamp the length and zoom values the
        same way as the Viewport META. In fact, they are not clamped at all,
        but instead, we just make sure that length values are at least 1px.

        Tests: css3/device-adapt/opera/constrain-018.xhtml
               css3/device-adapt/opera/constrain-019.xhtml
               css3/device-adapt/opera/constrain-023.xhtml
               css3/device-adapt/opera/constrain-024.xhtml

        * dom/ViewportArguments.cpp:
        (WebCore::ViewportArguments::resolve):

2012-11-26  Mike West  <mkwst@chromium.org>

        Web Inspector: URLs containing '^' are improperly linked in console messages.
        https://bugs.webkit.org/show_bug.cgi?id=103248

        Reviewed by Yury Semikhatsky.

        This patch adds '^' to WebInspector's regex of acceptable characters for
        URLs that it knows how to display.

        Test: http/tests/inspector/network/script-as-text-loading-with-caret.html

        * inspector/front-end/ResourceUtils.js:
        (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):

2012-11-26  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Fix Qt minimal compilation after r135713.

        * inspector/InspectorController.h: hid file content behind ENABLE(INSPECTOR)

2012-11-26  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: object preview does not render node id, className; logs too many functions for jQuery.
        https://bugs.webkit.org/show_bug.cgi?id=103222

        Reviewed by Yury Semikhatsky.

        - Added node class name and id into the preview
        - Now keeps track of properties separately from array indexes.

        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/InspectorOverlayPage.html:
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):

2012-11-26  Florin Malita  <fmalita@chromium.org>

        RenderSVGResourceContainer does not clear cached data on removal
        https://bugs.webkit.org/show_bug.cgi?id=102620

        Reviewed by Dirk Schulze.

        RenderSVGResourceContainer::removeClient needs to also remove the client from specialized
        caches, otherwise we can end up with stale references.

        Test: svg/custom/stale-resource-data-crash.svg

        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::removeClient):

2012-11-26  'Pavel Feldman'  <pfeldman@chromium.org>

        Not reviewed: rolling out r135714 and r135712 for breaking debug tests.

        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/InspectorOverlayPage.html:
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):

2012-11-26  Zeno Albisser  <zeno@webkit.org>

        [Qt][Win] buildfix after r135706.
        https://bugs.webkit.org/show_bug.cgi?id=103249

        The Windows implementation of GraphicsSurface cannot use
        m_size anymore, as this member has been removed.
        Further it needs to implement a platformSize() function.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
        (WebCore::GraphicsSurfacePrivate::size):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
        (WebCore::GraphicsSurface::platformSize):
        (WebCore):

2012-11-26  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: unify agents handling in Page and Worker inspector controllers
        https://bugs.webkit.org/show_bug.cgi?id=103238

        Reviewed by Alexander Pavlov.

        Introduced a class that represents a collection of inspector agents and allows
        to call methods declared on InspectorAgentBaseInterface for all registered agents.
        InspectorController and WorkerInspectorController switched to this class.

        * inspector/InspectorBaseAgent.cpp:
        (WebCore::InspectorAgentRegistry::append):
        (WebCore):
        (WebCore::InspectorAgentRegistry::setFrontend):
        (WebCore::InspectorAgentRegistry::clearFrontend):
        (WebCore::InspectorAgentRegistry::restore):
        (WebCore::InspectorAgentRegistry::registerInDispatcher):
        (WebCore::InspectorAgentRegistry::discardAgents):
        * inspector/InspectorBaseAgent.h:
        (InspectorAgentRegistry):
        (WebCore):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::~InspectorController):
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::disconnectFrontend):
        (WebCore::InspectorController::reconnectFrontend):
        * inspector/InspectorController.h:
        (InspectorController):

2012-11-26  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: object preview does not render node id, className; logs too many functions for jQuery.
        https://bugs.webkit.org/show_bug.cgi?id=103222

        Reviewed by Yury Semikhatsky.

        - Added node class name and id into the preview
        - Now keeps track of properties separately from array indexes.

        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/InspectorOverlayPage.html:
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):

2012-11-26  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [WebGL] Save WebGL extensions and restore on replay
        https://bugs.webkit.org/show_bug.cgi?id=103141

        Reviewed by Yury Semikhatsky.

        Save WebGL extensions that were enabled by the application, and restore it before the replay.
        Drive-by: remove redundant if- checks in WebGL custom function wrappers (similar to 2D canvas).

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-11-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        HitTestResult should not be a HitTestLocation
        https://bugs.webkit.org/show_bug.cgi?id=101590

        Reviewed by Sam Weinig.

        Change HitTestResult from being a HitTestLocation to having a HitTestLocation. 
        A result of a test should not be a special case of the location of the test.

        No change in functionality. No new tests.

        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::HitTestResult):
        (WebCore::HitTestResult::operator=):
        (WebCore::HitTestResult::isSelected):
        (WebCore::HitTestResult::spellingToolTip):
        (WebCore::HitTestResult::replacedString):
        * rendering/HitTestResult.h:
        (WebCore::HitTestResult::isRectBasedTest):
        (WebCore::HitTestResult::pointInInnerNodeFrame):
        (WebCore::HitTestResult::hitTestLocation):
        (HitTestResult):

2012-11-26  Marja Hölttä  <marja@chromium.org>

        Circular reference between Document and MediaQueryMatcher.
        https://bugs.webkit.org/show_bug.cgi?id=103242

        Reviewed by Kenneth Rohde Christiansen.

        It's not enough to clean up listeners in MediaQueryMatcher in ~Document,
        since MediaQueryListListener keeps the Document alive. This caused
        www.crbug.com/113983.

        No new tests: No visible change in behavior (except that it doesn't leak memory).

        * dom/Document.cpp:
        (WebCore::Document::~Document):
        (WebCore::Document::detach):

2012-11-26  Eugene Klyuchnikov  <eustas@chromium.org>

        Web Inspector: HeapProfiler: remove snapshotView reference from data-grids.
        https://bugs.webkit.org/show_bug.cgi?id=103240

        Reviewed by Yury Semikhatsky.

        Cleanup: remove redundant dependency.

        * inspector/front-end/HeapSnapshotDataGrids.js: Do not store view ref.
        * inspector/front-end/HeapSnapshotGridNodes.js:
        Removed unused assignments.
        * inspector/front-end/HeapSnapshotView.js:
        Do not pass self to data-grids.

2012-11-26  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurface should only store its size in a single place.
        https://bugs.webkit.org/show_bug.cgi?id=103143

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
            Cosmetics only.
        * platform/graphics/surfaces/GraphicsSurface.cpp:
        (WebCore::GraphicsSurface::size):
            Return the size as received from the platform abstraction.
        (WebCore):
        (WebCore::GraphicsSurface::GraphicsSurface):
        * platform/graphics/surfaces/GraphicsSurface.h:
        (GraphicsSurface):
            Remove data member m_size.
        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
            Always take the size of the GraphicsSurface as an argument.
        (WebCore::GraphicsSurfacePrivate::size):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
            Retrieve the size from GraphicsSurfacePrivate where necessary.
        (WebCore::GraphicsSurface::platformSize):
        (WebCore):
        (WebCore::GraphicsSurface::platformImport):
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
            Add a constructor that takes a window id as an argument
            for the receiving side of the GraphcisSurface.
            The GraphicsSurface can then determine its dimensions
            from the provided XWindow.
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::size):
            Query the size of the GraphicsSurface backing from X.
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
            Retrieve the size from GraphicsSurfacePrivate where necessary.
        (WebCore::GraphicsSurface::platformSize):
        (WebCore):
        (WebCore::GraphicsSurface::platformImport):

2012-11-26  Thiago Santos  <thiago.sousa.santos@collabora.com>

        [GStreamer] Floating reference handling fix
        https://bugs.webkit.org/show_bug.cgi?id=101349

        Reviewed by Philippe Normand.

        GStreamer 0.10 and 1.0 differ when creating GstGhostPad from pad
        templates, the 1.0 doesn't take ownership on the passed
        GstPadTemplate, while 0.10 does. So this patch adds a
        GStreamerVersioning function to handle this different approach
        transparently in Webkit gstreamer elements.

        Existing media tests cover this change.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (webkit_web_audio_src_init):
        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (webkitGstGhostPadFromStaticTemplate):
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webkit_web_src_init):

2012-11-26  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove WorkerContextExecutionProxy
        https://bugs.webkit.org/show_bug.cgi?id=103210

        Reviewed by Adam Barth.

        This patch moves all methods in WorkerContextExecutionProxy
        to WorkerScriptController.

        Due to the dependency between WorkerContextExecutionProxy's methods,
        it is a bit difficult to split this patch into pieces.
        This patch simply moves methods without changing their logic.
        Also this patch doesn't remove empty WorkerContextExecutionProxy.{h,cpp}
        to keep the diff sane. I will address these issues in a follow-up patch.

        Tests: fast/worker/*

        * bindings/v8/ScriptState.cpp:
        (WebCore::scriptStateFromWorkerContext):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toV8Context):
        * bindings/v8/V8WorkerContextEventListener.cpp:
        (WebCore::V8WorkerContextEventListener::handleEvent):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        * bindings/v8/WorkerContextExecutionProxy.h:
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::WorkerScriptController):
        (WebCore::WorkerScriptController::~WorkerScriptController):
        (WebCore::WorkerScriptController::dispose):
        (WebCore):
        (WebCore::WorkerScriptController::initializeIfNeeded):
        (WebCore::WorkerScriptController::evaluate):
        (WebCore::WorkerScriptController::setEvalAllowed):
        (WebCore::WorkerScriptController::disableEval):
        * bindings/v8/WorkerScriptController.h:
        (WebCore):
        (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
        (WorkerContextExecutionState):
        (WorkerScriptController):
        (WebCore::WorkerScriptController::context):
        * bindings/v8/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::addListener):
        * bindings/v8/custom/V8WorkerContextCustom.cpp:
        (WebCore::SetTimeoutOrInterval):
        (WebCore::toV8):

2012-11-26  Hajime Morrita  <morrita@google.com>

        [Refactoring] Some Node::isDescendant calls can be replaced with Node::contains()
        https://bugs.webkit.org/show_bug.cgi?id=103211

        Reviewed by Daniel Bates.

        A couple of call sites of isDescendant() does same as Node::contains().
        This change replaces these locations with Node::contains().

        No new tests, no behavior change.

        * dom/Node.cpp:
        (WebCore::checkAcceptChild):
        * dom/Range.cpp:
        (WebCore::Range::surroundContents):

2012-11-26  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        [Chromium] Enable input type datetime-local
        https://bugs.webkit.org/show_bug.cgi?id=103213

        Reviewed by Kent Tamura.

        This patch enables <input type=datetime-local> for Chromium.

        No new tests. Covered by existing tests.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore): Changed RuntimeEnabledFeatures::isInputTypeDateTimeLocalEnabled to true
        if INPUT_TYPE_DATETIMELOCAL is enabled.

2012-11-26  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Implement Element::createShadowRoot()
        https://bugs.webkit.org/show_bug.cgi?id=102911

        Reviewed by Kentaro Hara.

        Added an API implementation and exposed it.

        This is basically an alias of the ShadowRoot constructor, which
        will be removed as bug 102913.

        Test: fast/dom/shadow/shadow-aware-create-shdow-root.html

        * bindings/gobject/GNUmakefile.am:
        * dom/Element.cpp:
        (WebCore::Element::createShadowRoot):
        (WebCore):
        * dom/Element.h:
        (Element):
        * dom/Element.idl:

2012-11-26  Jon Lee  <jonlee@apple.com>

        Extend EventDispatcher::dispatchSimulatedClick to allow sending a mouseover event
        https://bugs.webkit.org/show_bug.cgi?id=102610
        <rdar://problem/12725663>

        Reviewed by Darin Adler.

        Update the dispatchSimulatedClick() to take option enums for dispatching events.

        * dom/SimulatedClickOptions.h: Added. Define two options enums. One tracks which mouse
        events to send. The other determines whether to force the element to repaint.

        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchSimulatedClick): Refactor to use the option enums.
        * dom/EventDispatcher.h:
        (EventDispatcher): Update function signature.

        * dom/Node.cpp: Refactor parameters to use the options enums rather than booleans.
        (WebCore::Node::dispatchSimulatedClick):
        * dom/Node.h:

        Refactor. Remove redundant comments.
        * html/BaseCheckableInputType.cpp:
        (WebCore::BaseCheckableInputType::accessKeyAction):
        * html/BaseClickableWithKeyInputType.cpp:
        (WebCore::BaseClickableWithKeyInputType::accessKeyAction):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::accessKeyAction):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::accessKeyAction):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::click):
        (WebCore::HTMLElement::accessKeyAction):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::accessKeyAction):
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::handleKeydownEvent):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::accessKeyAction):

        Add SimulatedClickOptions.h.
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2012-11-26  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Attaching children of a shadow host takes O(N^2) where N is the number of host children
        https://bugs.webkit.org/show_bug.cgi?id=103017

        Reviewed by Hajime Morita.

        Since ContentDistribution was just a Vector, ContentDistribution::find() took O(N). Each child of shadow host calls it.
        As a result, attaching children of shadow host takes O(N^2) at all.

        In this patch, we make ContentDistribution::find() O(1) amortizedly. We introduce HashMap from a Node to Vector index,
        and use it for ContentDistribution::find().

        No new tests, covered by existing tests.

        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistribution::swap):
        (WebCore):
        (WebCore::ContentDistribution::append):
        (WebCore::ContentDistribution::find):
        (WebCore::ContentDistributor::distributeSelectionsTo):
        * html/shadow/ContentDistributor.h:
        (ContentDistribution): ContentDistribution now contains Vector and a reverse map.
        (WebCore::ContentDistribution::first):
        (WebCore::ContentDistribution::last):
        (WebCore::ContentDistribution::at):
        (WebCore::ContentDistribution::size):
        (WebCore::ContentDistribution::isEmpty):
        (WebCore::ContentDistribution::clear):
        (WebCore::ContentDistribution::contains):
        (WebCore::ContentDistribution::nodes):

2012-11-26  Dan Carney  <dcarney@google.com>

        [V8] Give isolated shells a lifecycle like that of main shells
        https://bugs.webkit.org/show_bug.cgi?id=96522

        Reviewed by Adam Barth.

        Refactored the isolated shells in ScriptController
        to be cleaned up the same way the main shell is.

        No new tests. No change in functionality.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::~ScriptController):
        (WebCore::ScriptController::clearForOutOfMemory):
        (WebCore::ScriptController::clearForClose):
        (WebCore::ScriptController::clearWindowShell):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
        (WebCore::V8DOMWindowShell::clearForClose):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):

2012-11-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135656.
        http://trac.webkit.org/changeset/135656
        https://bugs.webkit.org/show_bug.cgi?id=103218

        Made a few SVG tests crash on all platforms (Requested by
        apavlov on #webkit).

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForFamily):
        * css/CSSValuePool.cpp:
        (WebCore::CSSValuePool::createFontFamilyValue):

2012-11-25  Takashi Sakamoto  <tasak@google.com>

        WebCore::RenderBlock::determineStartPosition crash
        https://bugs.webkit.org/show_bug.cgi?id=98993

        Reviewed by Brent Fulgham.

        If we move some node and the node has some text,
        InlineFlowBox::removeChild() is invoked. The method invokes
        RootInlineBox::childRemoved(). childRemoved() checks whether the
        removed inlinebox has the renderer of its parent's line break object.
        If so, use setLineBreakInfo to make the parent's line break info to
        be 0. However in RenderBlock::determineStartPosition(), the code
        assume that all line break info is solved, i.e.
        prevRootBox->lineBreakObj()->isText(). Since lineBreakObj() returns 0
        because of removeChild(), determineStartPosition crash occurs.

        Test: fast/inline/inline-box-append-child-crash.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::determineStartPosition):
        Checks whether lineBreakObj() is 0 or not before using lineBreakObj().

2012-11-25  Nikita Vasilyev  <me@elv1s.ru>

        Web Inspector: use native Element.prototype.normalize instead of custom defined Element.prototype.pruneEmptyTextNodes
        https://bugs.webkit.org/show_bug.cgi?id=103205

        Reviewed by Pavel Feldman.

        * inspector/front-end/DOMExtension.js:
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.clearAutoComplete):
        (WebInspector.TextPrompt.prototype._completionsReady):
        (WebInspector.TextPrompt.prototype.applySuggestion):

2012-11-25  Nikita Vasilyev  <me@elv1s.ru>

        Web Inspector: remove unused DOM methods
        https://bugs.webkit.org/show_bug.cgi?id=103204

        Reviewed by Pavel Feldman.

        * inspector/front-end/DOMExtension.js:

2012-11-25  Nikita Vasilyev  <me@elv1s.ru>

        Web Inspector: Remove unused Array.convert method
        https://bugs.webkit.org/show_bug.cgi?id=103202

        Reviewed by Daniel Bates.

        * inspector/front-end/utilities.js:

2012-11-25  Chris Fleizach  <cfleizach@apple.com>

        AX: file upload input cannot be activated with VoiceOver
        https://bugs.webkit.org/show_bug.cgi?id=100343

        Reviewed by Sam Weinig.

        Simulated events were not allowed to be processed in the file input type in the DOMActivate handler.
        This was a problem for accessibility clients which rely on simulated events.

        The solution is to mark the UserGestureIndicator as definitely processing an event.

        Test: accessibility/file-upload-button-with-axpress.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::press):

2012-11-25  Nikita Vasilyev  <me@elv1s.ru>

        Web Inspector: dispatch an event upon heap snapshot filter change
        https://bugs.webkit.org/show_bug.cgi?id=103201

        Reviewed by Pavel Feldman.

        Dispatch heapSnapshotFilterChanged event so it can be received by third parties.

        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapSnapshotView.prototype._changeFilter):
        * inspector/front-end/UserMetrics.js:

2012-11-25  Kent Tamura  <tkent@chromium.org>

        Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
        https://bugs.webkit.org/show_bug.cgi?id=103195

        Reviewed by Kentaro Hara.

        HTMLInputElement::subtreeHasChanged is called only if the input is
        a text field. The code should be moved to TextFieldInputType.

        No new tests. This should not change any behavior.

        * html/HTMLInputElement.cpp:
        - Remove unnecessary NumberInputType.h inclusion.
        - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
        (WebCore::HTMLInputElement::subtreeHasChanged):
        Move the code to TextFieldInputType::subtreeHasChanged except
        calculateAndAdjustDirectionality, which is a protected member of
        HTMLElement.
        * html/HTMLInputElement.h:
        (HTMLInputElement): Remove convertFromVisibleValue.

        * html/InputType.cpp:
        Move convertFromVisibleValue to TextFieldInputType.
        (WebCore::InputType::subtreeHasChanged):
        Add ASSERT_NOT_REACHED.
        * html/InputType.h:
        (InputType): Remove convertFromVisibleValue.

        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::convertFromVisibleValue):
        Moved from InputType.
        (WebCore::TextFieldInputType::subtreeHasChanged):
        Moved from HTMLInputElement. A latter part is moved to
        didSetValueByUserEdit to be hooked by SearchInputType.
        (WebCore::TextFieldInputType::didSetValueByUserEdit):
        Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
        * html/TextFieldInputType.h:
        (TextFieldInputType):
        - Move convertFromVisibleValue from InputType.
        - Add didSetValueByUserEdit and subtreeHasChanged.

        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::didSetValueByUserEdit):
        Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
        * html/SearchInputType.h:
        (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.

2012-11-22  Kentaro Hara  <haraken@chromium.org>

        [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
        https://bugs.webkit.org/show_bug.cgi?id=103061

        Reviewed by Adam Barth.

        This is an incremental step to remove WorkerExecutionContextProxy.
        This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
        This patch also renames methods so that the names become consistent
        between the main thread and workers.

        No tests. No change in behavior.

        * bindings/v8/V8Initializer.cpp:
        (WebCore::reportFatalErrorInMainThread):
        (WebCore::messageHandlerInMainThread):
        (WebCore::failedAccessCheckCallbackInMainThread):
        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
        (WebCore::reportFatalErrorInWorker):
        (WebCore):
        (WebCore::messageHandlerInWorker):
        (WebCore::V8Initializer::initializeWorkerIfNeeded):
        * bindings/v8/V8Initializer.h:
        (V8Initializer):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
        * bindings/v8/WorkerContextExecutionProxy.h:
        (WorkerContextExecutionProxy):

2012-11-25  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
        https://bugs.webkit.org/show_bug.cgi?id=103189

        Reviewed by Kenneth Rohde Christiansen.

        Check if the entry size and type changed in
        RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
        useless processing if one of them did not change.

        Remove useless call to cairo_surface_finish() since
        we are using a smart pointer for the surface.

        Resize the edge object *after* loading its content
        from the theme file as it seems more logical this
        way.

        No new tests, no behavior change for layout tests.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
        * platform/efl/RenderThemeEfl.h:
        (ThemePartCacheEntry):

2012-11-25  Ryosuke Niwa  <rniwa@webkit.org>

        Rename DynamicNodeList to LiveNodeList
        https://bugs.webkit.org/show_bug.cgi?id=103197

        Reviewed by Ojan Vafai.

        Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
        http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
        "A collection (either NodeList or HTMLCollection) can be either live or static".

        Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
        into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
        is the former calling registerNodeListCache and unregisterNodeListCache on Document.

        This patch completes the series of simplification of NodeList/HTMLCollection classes.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::getNamedItems):
        * bindings/js/JSNodeListCustom.cpp:
        (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::opaqueRootForGC):
        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::ChildNodeList):
        (WebCore::ChildNodeList::nodeMatches):
        * dom/ChildNodeList.h:
        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList):
        * dom/ClassNodeList.h:
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp:
        (WebCore::Document::registerNodeListCache):
        (WebCore::Document::unregisterNodeListCache):
        (WebCore):
        * dom/Document.h:
        (WebCore):
        (Document):
        * dom/DynamicNodeList.cpp: Removed.
        * dom/DynamicNodeList.h: Removed.
        * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
        (WebCore::LiveNodeListBase::rootNode):
        (WebCore::LiveNodeListBase::invalidateCache):
        (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
        (WebCore::LiveNodeListBase::reportMemoryUsage):
        (WebCore::LiveNodeList::namedItem):
        * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
        (WebCore::LiveNodeListBase::LiveNodeListBase):
        (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
        (WebCore::LiveNodeList::LiveNodeList):
        (WebCore::LiveNodeList::~LiveNodeList):
        (LiveNodeList):
        * dom/MicroDataItemList.cpp:
        (WebCore::MicroDataItemList::MicroDataItemList):
        * dom/MicroDataItemList.h:
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        * dom/NameNodeList.h:
        * dom/Node.cpp:
        (WebCore::shouldInvalidateNodeListCachesForAttr):
        (WebCore::Document::invalidateNodeListCaches):
        * dom/Node.h:
        (WebCore):
        * dom/NodeList.h:
        (WebCore::NodeList::isLiveNodeList):
        * dom/NodeRareData.h:
        (NodeListsNodeData):
        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
        (WebCore::NodeListsNodeData::removeCacheWithName):
        (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
        (WebCore::NodeListsNodeData::adoptTreeScope):
        * dom/PropertyNodeList.cpp:
        (WebCore::PropertyNodeList::PropertyNodeList):
        * dom/PropertyNodeList.h:
        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::TagNodeList):
        * dom/TagNodeList.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::LiveNodeListBase::iterateForNextNode):
        (WebCore::LiveNodeListBase::itemBeforeOrAfter):
        (WebCore::LiveNodeListBase::itemBefore):
        (WebCore::LiveNodeListBase::itemAfter):
        (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
        (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
        (WebCore::LiveNodeListBase::setItemCache):
        (WebCore::LiveNodeListBase::length):
        (WebCore::LiveNodeListBase::item):
        (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
        * html/HTMLCollection.h:
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::LabelsNodeList):
        * html/LabelsNodeList.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::RadioNodeList):
        * html/RadioNodeList.h:

2012-10-08  Robert Hogan  <robert@webkit.org>

        Changing position:relative to position:static results in mis-positioned div
        https://bugs.webkit.org/show_bug.cgi?id=26397

        Reviewed by Ojan Vafai.

        When a block changes position from relative to static it is no longer the containing block for any
        positioned objects it may have. If any of those positioned objects actually have a position specified
        they are going to need a layout as their new containing block will likely have a different location they
        need to offset from. Positioned objects without a specified position always get a layout anyway 
        in layoutPositionedObjects() so no need to worry about them in this situation. 

        Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::styleWillChange):
        (WebCore::RenderBlock::layoutPositionedObjects):
        (WebCore::RenderBlock::removePositionedObjects):
        * rendering/RenderBlock.h:
        (RenderBlock):

2012-11-24  Antti Koivisto  <antti@apple.com>

        Make renderer construction less generic
        https://bugs.webkit.org/show_bug.cgi?id=103175

        Reviewed by Ojan Vafai.

        The renderer construction code currently operates on Nodes and is very generic. In reality
        only Element and Text nodes can have renderers and the Text case is much simpler.

        This patch separates the Text and Element renderer construction paths and makes it statically
        known that other Node types can't have renderers. Less generic code is less branchy and enables
        further optimizations.

        * dom/CharacterData.cpp:
        (WebCore::CharacterData::parserAppendData):
        (WebCore::CharacterData::setDataAndUpdate):
        (WebCore):
        (WebCore::CharacterData::rendererIsNeeded):
        (WebCore::CharacterData::createRenderer):
        
            Only Text subclass of CharacterData can have renderers.

        * dom/CharacterData.h:
        (CharacterData):
        * dom/ContainerNode.h:
        (WebCore::ContainerNode::childShouldCreateRenderer):
        
            Move childShouldCreateRenderer from Node to ContainerNode.

        (ContainerNode):
        * dom/Element.cpp:
        (WebCore::Element::rendererIsNeeded):
        (WebCore):
        (WebCore::Element::attach):
        (WebCore::Element::childShouldCreateRenderer):
        * dom/Element.h:
        
            Move rendererIsNeeded and createRenderer from Node to Element.

        (Element):
        * dom/Node.cpp:
        (WebCore::Node::attach):
        (WebCore):
        * dom/Node.h:
        (Node):
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
        (WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
        
            Separate the Element and Text renderer creation paths. Both are less branchy.
            The Text path is much simpler and avoids a bunch of virtual calls.

        (WebCore):
        * dom/NodeRenderingContext.h:
        (NodeRenderingContext):
        * dom/Text.cpp:
        (WebCore::Text::textRendererIsNeeded):
        (WebCore::Text::createTextRendererIfNeeded):
        (WebCore):
        (WebCore::Text::createTextRenderer):
        (WebCore::Text::attach):
        (WebCore::Text::updateTextRenderer):
        * dom/Text.h:
        
                Add non-virtual Text specific functions.

        (WebCore):
        (Text):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::clone):

2012-11-22  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r135493): HTMLCollection and DynamicNodeList have two vtable pointers
        https://bugs.webkit.org/show_bug.cgi?id=103096

        Reviewed by Sam Weinig.

        Co-authored by Ilya Tikhonovsky.

        Made DynamicNodeListCacheBase inherit from NodeList. While HTMLCollection doesn't inherit
        from NodeList in IDL, it makes a lot of sense for the C++ implementation to do so via
        DynamicNodeListCacheBase since HTMLCollection and live NodeList share a lot of code in
        DynamicNodeListCacheBase.

        This lets remove proxies for item() and length() in DynamicNodeList and HTMLCollection
        and directly implement them in DynamicNodeListCacheBase which used to provide itemCommon()
        and lengthCommon().

        Also renamed NodeList::itemWithName() to NodeList::namedItem() to match HTMLCollection's
        naming convention.

        Finally, removed reportMemoryUsage in DynamicNodeList::reportMemoryUsage since DynamicNodeList
        now uses single inheritance.

        * bindings/js/JSNodeListCustom.cpp:
        (WebCore::JSNodeList::canGetItemsForName): Calls namedItem, which has been renamed from
        itemWithName.
        (WebCore::JSNodeList::nameGetter): Ditto.
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::namedPropertyGetter): Ditto.
        * bindings/v8/custom/V8NamedNodesCollection.cpp:
        (WebCore::V8NamedNodesCollection::namedItem): Renamed from itemWithName.
        * bindings/v8/custom/V8NamedNodesCollection.h:
        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::nodeMatches): Updated comment.
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeList::namedItem): Renamed from itemWithName.
        * dom/DynamicNodeList.h:
        (DynamicNodeListCacheBase): Inhertis from NodeList and renamed lengthCommon and itemCommon
        to virtual length and item respectively.
        (DynamicNodeList): Now inherits from just DynamicNodeListCacheBase instead of NodeList
        and DynamicNodeListCacheBase since the former now inhertis from NodeList. Also removed
        length() and item() since they're implemented in DynamicNodeListCacheBase now and renamed
        itemWithName() to namedItem() to match HTMLCollection's naming convention.
        * dom/NodeList.h:
        (NodeList::namedItem): Renamed from itemWithName. Note that this member function is not
        exposed via IDL. It's merely used in the binding code.
        * dom/StaticHashSetNodeList.cpp:
        (WebCore::StaticHashSetNodeList::namedItem): Ditto.
        * dom/StaticHashSetNodeList.h:
        (StaticHashSetNodeList::namedItem): Ditto.
        * dom/StaticNodeList.cpp:
        (WebCore::StaticNodeList::namedItem): Ditto.
        * dom/StaticNodeList.h:
        (StaticNodeList::namedItem): Ditto.
        * html/HTMLCollection.cpp:
        (WebCore::DynamicNodeListCacheBase::length): Renamed from lengthCommon.
        (WebCore::DynamicNodeListCacheBase::item): Renamed from itemCommon.
        * html/HTMLCollection.h:
        (HTMLCollection): Inherits from DynamicNodeListCacheBase since DynamicNodeListCacheBase
        is already RefCount'ed and NodeList, from which DynamicNodeListCacheBase inherits,
        inherits from ScriptWrappable.

2012-11-24  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Refactor RenderThemeEfl::paintThemePart()
        https://bugs.webkit.org/show_bug.cgi?id=103192

        Reviewed by Kenneth Rohde Christiansen.

        Refactor RenderThemeEfl::paintThemePart() so that:
        - Some C'ism is removed
        - RTL related code is moved to applyEdjeRTLState()
        - evas_render() is called instead of evas_render_updates()
          to avoid creating uselessly update rects.

        No new tests, no behavior change for layout tests.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::applyEdjeRTLState):
        (WebCore):
        (WebCore::RenderThemeEfl::paintThemePart):
        * platform/efl/RenderThemeEfl.h:
        (RenderThemeEfl):

2012-11-24  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Avoid access violation when frame is NULL.
        https://bugs.webkit.org/show_bug.cgi?id=68753

        BitmapImage::drawFrameMatchingSourceSize causes an access violation
        if BitmapImage::frameAtIndex returns NULL. (Found by David Delaune).

        Reviewed by Simon Fraser.

        * platform/graphics/win/ImageCairoWin.cpp:
        (WebCore::BitmapImage::drawFrameMatchingSourceSize): Check for null
        cairo_surface_t pointer and avoid dereferencing.

2012-11-24  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Refactor RenderThemeEfl::getThemePartFromCache()
        https://bugs.webkit.org/show_bug.cgi?id=103186

        Reviewed by Kenneth Rohde Christiansen.

        Refactor getThemePartFromCache() so that a list is used
        for the cache instead of a vector. The function moves
        items to the head of the container which is much more
        efficient with a list than a vector.

        The list ordering is also slightly altered so that the
        cached parts that were used last come first. Previously,
        they were sorted by creation time which may cause an
        item to be removed from the cache because it is older
        even if is was used recently.

        This patch also gets rid of some code duplication at the
        end of the function.

        No new tests, no behavior change.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create): Return
        a smart pointer instead of a raw pointer.
        (WebCore::RenderThemeEfl::getThemePartFromCache):
        (WebCore::RenderThemeEfl::clearThemePartCache): Rename 
        flushThemePartCache to clearThemePartCache for clarity.
        (WebCore::RenderThemeEfl::loadTheme):
        (WebCore::RenderThemeEfl::RenderThemeEfl):
        (WebCore::RenderThemeEfl::~RenderThemeEfl):
        * platform/efl/RenderThemeEfl.h:
        (ThemePartCacheEntry):
        (RenderThemeEfl):

2012-11-24  Liam Quinn  <lquinn@rim.com>

        [BlackBerry] RTSP should use the same MediaDocument as HTTP videos.
        https://bugs.webkit.org/show_bug.cgi?id=103185
        RIM PR 250114

        Reviewed by George Staikos.

        Make our MediaPlayer implementation indicate that it supports RTSP. That way, DOMImplementation::createDocument will create the same MediaDocument as is used for HTTP videos.

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::supportsType):

2012-11-24  Andreas Kling  <akling@apple.com>

        Put computed style 'font-family' values in the CSSValuePool.
        <http://webkit.org/b/103184>

        Reviewed by Ojan Vafai.

        Use CSSValuePool::createFontFamilyValue() when handing out 'font-family' values from CSSComputedStyleDeclaration.
        This avoids creating extra CSSPrimitiveValue objects since we already have these in the pool from parsing.
        Also added a max capacity to the font-family cache (using random eviction.)

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForFamily):
        * css/CSSValuePool.cpp:
        (WebCore::CSSValuePool::createFontFamilyValue):

2012-11-24  Hayato Ito  <hayato@chromium.org>

        It's confusing that return values of 'bool Node::dispatchEvent(...)' and 'bool Node::dispatchMouseEvent(..)' have the opposite meanings.
        https://bugs.webkit.org/show_bug.cgi?id=103058

        Reviewed by Ojan Vafai.

        Refactor MouseEventDispatchMediator::dispatchEvent() and
        EventHandler::dispatchMouseEvent() so that they return bool
        which has the same meaning of the return value of
        Node::dispatchEvent().

        No tests. No change in behavior.

        * dom/MouseEvent.cpp:
        (WebCore::MouseEventDispatchMediator::dispatchEvent):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseDoubleClickEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::dispatchMouseEvent):
        (WebCore::EventHandler::sendContextMenuEvent):
        (WebCore::EventHandler::sendContextMenuEventForKey):

2012-11-23  Kangil Han  <kangil.han@samsung.com>

        Fix unused parameter compile warnings
        https://bugs.webkit.org/show_bug.cgi?id=103167

        Reviewed by Gyuyoung Kim.

        Remove compile warning messages by omitting parameter name and using UNUSED_PARAM.

        * accessibility/atk/WebKitAccessibleHyperlink.cpp:
        (webkitAccessibleHyperlinkIsSelectedLink):
        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
        (webkitAccessibleTextGetTextAfterOffset):
        (webkitAccessibleTextGetTextAtOffset):
        (webkitAccessibleTextGetTextBeforeOffset):
        (webkitAccessibleTextGetOffsetAtPoint):

2012-11-23  Michael Saboff  <msaboff@apple.com>

        listMarkerText() should create 8 bit strings when possible
        https://bugs.webkit.org/show_bug.cgi?id=103011

        Reviewed by Filip Pizlo.

        Made processing of marker text items use 8 bit strings where possible in order to reduce 16 bit strings.

        Changes covered by existing tests.

        * rendering/RenderListMarker.cpp:
        (WebCore::toRoman): Changed character constants and buffer to build string to LChar's
        (WebCore::toAlphabeticOrNumeric): Made a template based on character type.
        (WebCore::toSymbolic): Made a template based on character type.
        (WebCore::toAlphabetic): Made a template based on character type.
        (WebCore::toNumeric): Added character type template parameter.
        (WebCore::listMarkerText): Changed character constants to LChar where possible.

2012-11-23  Robert Kroeger  <rjkroege@chromium.org>

        Remove unused ScrollByPixelVelocity
        https://bugs.webkit.org/show_bug.cgi?id=102840

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=80311 wrongly introduced a new
        kind of scroll: "ScrollByPixelVelocity". This code is not used on any platform
        and will not be of use in the future so this patch removes it.

        No new tests: code removal/cleanup.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::defaultWheelEventHandler):
        (WebCore::EventHandler::handleGestureEvent):
        * platform/PlatformWheelEvent.h:
        * platform/ScrollAnimator.cpp:
        (WebCore::ScrollAnimator::handleWheelEvent):
        * platform/ScrollAnimatorNone.cpp:
        (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
        (WebCore::ScrollAnimatorNone::scroll):
        (WebCore::ScrollAnimatorNone::cancelAnimations):
        (WebCore::ScrollAnimatorNone::animationTimerFired):
        * platform/ScrollAnimatorNone.h:
        (ScrollAnimatorNone):
        * platform/ScrollTypes.h:
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::scroll):

2012-11-23  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Removing unnecessary RenderBox friend access in RenderObject
        https://bugs.webkit.org/show_bug.cgi?id=103159

        Reviewed by Eric Seidel.

        RenderObject has several classes marked as friend, between them,
        there is RenderBox which is derived from it indirectly and is not accessing
        its forefather private data making unnecessary the 'friend' access level.

        No new tests, no changes in functionality.

        * rendering/RenderObject.h:
        (RenderObject):

2012-11-23  Alexis Menard  <alexis@webkit.org>

        [CSS3 Backgrounds and Borders] Implement new CSS3 background-position parsing.
        https://bugs.webkit.org/show_bug.cgi?id=102104

        Reviewed by Julien Chaffraix.

        Implement the parsing of the CSS3 background-position property which
        allows to specify up to four values to position the background. It is
        documented here :
        http://www.w3.org/TR/css3-background/#the-background-position . I
        decided to split up the patch is two pieces, the parsing and later I
        will do the rendering. I kept the old code as much as possible (i.e.
        the two values parsing) as it is used not only by background-position
        but by few other properties. The new four values support is only valid
        on the property itself but does not work on the shorthand.

        Opera has already implemented this feature.

        I extended backgrounds/background-position-parsing-2.html to cover the
        new possible values as well as buggy values.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:
        * GNUmakefile.features.am:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFillPositionComponent): Modify this function
        to allow creation of CSS primitive values with not only percentage or
        length but with keywords also as the new <position> type allows to
        specify keywords, for example top 30px right 20px.
        (WebCore):
        (WebCore::isValueConflictingWithCurrentEdge):
        (WebCore::isBackgroundPositionKeyword):
        (WebCore::CSSParser::parse3ValuesBackgroundPosition):
        (WebCore::CSSParser::parse4ValuesBackgroundPosition):
        (WebCore::CSSParser::parseFillBackgroundPosition): This function counts
        the number of words for the property value and call dedicated parsing
        functions for each case. Note that in case of two values we just call the old CSS 2.1
        method.
        (WebCore::CSSParser::parseFillPosition):
        (WebCore::CSSParser::parseFillProperty): Only call the new parsing
        function if the feature is activated otherwise fallback to the old code
        path.
        * css/CSSParser.h:

2012-11-23  Justin Novosad  <junov@google.com>

        Adding occlusion detection to reduce overdraw in RenderBox background rendering
        https://bugs.webkit.org/show_bug.cgi?id=102557

        Reviewed by Stephen White.

        Adding hasAlpha method to all classes dervived from CSSImageValue and
        StyleImage, in order to support occlusion testing. 
        This allows the FillLayer recursion to stop early when an opaque layer
        is encountered while applying a CSS background style. This also allows
        the elimination of background color application when the background is
        completely covered by an image.  The optimization also skips the
        clearing of the page's root element when the page background is
        entirely covered by an image (e.g a tiled bitmap or a gradient)

        Test: fast/backgrounds/background-opaque-images-over-color.html

        * css/CSSCrossfadeValue.cpp:
        (WebCore::subimageHasAlpha):
        (WebCore):
        (WebCore::CSSCrossfadeValue::isPending):
        (WebCore::CSSCrossfadeValue::hasAlpha):
        * css/CSSCrossfadeValue.h:
        (CSSCrossfadeValue):
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::hasAlpha):
        (WebCore):
        * css/CSSGradientValue.h:
        (CSSGradientValue):
        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::hasAlpha):
        (WebCore):
        * css/CSSImageGeneratorValue.h:
        (CSSImageGeneratorValue):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::hasAlpha):
        (WebCore):
        * css/CSSImageValue.h:
        (WebCore):
        (CSSImageValue):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::currentFrameHasAlpha):
        Test whether a cached image has alpha, with side effect of ensuring
        the image is in cache. (new method)
        (WebCore):
        * loader/cache/CachedImage.h:
        (CachedImage):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintFillLayers):
        Added layer recursion early exit when an opaque layer is encountered.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        Eliminated background color fill when the layer contains an opaque
        image that covers the entire RenderBox.
        * rendering/style/FillLayer.cpp:
        (WebCore::FillLayer::hasOpaqueImage):
        Returns true if the layer's image is known to be fully opaque.
        (WebCore):
        (WebCore::FillLayer::hasRepeatXY):
        * rendering/style/FillLayer.h:
        (FillLayer):
        * rendering/style/StyleCachedImage.cpp:
        (WebCore::StyleCachedImage::hasAlpha):
        (WebCore):
        * rendering/style/StyleCachedImage.h:
        (StyleCachedImage):
        * rendering/style/StyleCachedImageSet.cpp:
        (WebCore::StyleCachedImageSet::hasAlpha):
        (WebCore):
        * rendering/style/StyleCachedImageSet.h:
        (StyleCachedImageSet):
        * rendering/style/StyleGeneratedImage.cpp:
        (WebCore::StyleGeneratedImage::hasAlpha):
        (WebCore):
        * rendering/style/StyleGeneratedImage.h:
        (StyleGeneratedImage):
        * rendering/style/StyleImage.h:
        (StyleImage):
        * rendering/style/StylePendingImage.h:
        (WebCore::StylePendingImage::hasAlpha):

2012-11-23  Justin Novosad  <junov@google.com>

        Page background color bleeds through inner edge of div border with rounded edges
        https://bugs.webkit.org/show_bug.cgi?id=103089

        Reviewed by Stephen White.

        Test that verifies whether a RenderBoxEdge is more than 2 pixels wide
        was applying the content scale factor backwards, so the
        obscuresBackgroundEdge was falsely passing for downsized boxes.

        Test: fast/backgrounds/gradient-background-leakage-2.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::BorderEdge::obscuresBackgroundEdge):

2012-11-23  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Remove dependency of TextureMapperLayer on GraphicsLayerTextureMapper.
        https://bugs.webkit.org/show_bug.cgi?id=103046

        Reviewed by Noam Rosenthal.

        It is a preparation patch for Threaded Coordinated Graphics on WK1.

        We want to make TextureMapperLayer into an actor model. After making an actor
        model, GraphicsLayerTextureMapper and LayerTreeRenderer will communicate with
        TextureMapperLayer using message passing. In the first step, we want to hide
        GraphicsLayerTextureMapper from TextureMapperLayer.

        There are 2 kinds of dependencies of TextureMapperLayer in GraphicsLayerTextureMapper.
        1. To query layer states
        2. To paint layer contents

        In this patch, we removed the second dependency. Currently, TextureMapperLayer
        requests painting contents to GraphicsLayerTextureMapper in WK1 while
        Coordinated Graphics prepares the contents in LayerTreeRenderer. This patch
        makes WK1 prepare the contents in GraphicsLayerTextureMapper like
        LayerTreeRenderer.

        We will remove the first dependency in a follow-up patch.

        Covered by existing layout tests.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
        (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
        (WebCore):
        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingStateRecursive):
        (WebCore::GraphicsLayerTextureMapper::updateBackingStore):
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
        (WebCore::GraphicsLayerTextureMapper::shouldHaveBackingStore):
        (WebCore::GraphicsLayerTextureMapper::drawRepaintCounter):
        (WebCore::GraphicsLayerTextureMapper::setDebugBorder):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::setHasOwnBackingStore):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::rootLayer):
        (WebCore::TextureMapperLayer::paintSelf):
        (WebCore::TextureMapperLayer::textureMapper):
        (WebCore):
        (WebCore::TextureMapperLayer::flushCompositingState):
        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore):
        (WebCore::TextureMapperLayer::TextureMapperLayer):
        (TextureMapperLayer):
        (WebCore::TextureMapperLayer::setBackingStore):
        (State):
        (WebCore::TextureMapperLayer::State::State):

2012-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>

        [ENCHANT] Infinite loop when end word position is not found
        https://bugs.webkit.org/show_bug.cgi?id=103139

        Reviewed by Martin Robinson.

        Covered by existing tests in editing/spelling.

        * editing/visible_units.cpp:
        (WebCore::isLogicalStartOfWord): Make it private again.
        (WebCore::islogicalEndOfWord): Ditto.
        * editing/visible_units.h:
        * platform/text/enchant/TextCheckerEnchant.cpp:
        (WebCore::TextCheckerEnchant::checkSpellingOfWord): Helper funtion
        to check a word inside a string using the loaded dictionaries.
        (WebCore::TextCheckerEnchant::checkSpellingOfString): Optimize and
        simply the code by using the word iterator to iterate the
        words.
        * platform/text/enchant/TextCheckerEnchant.h:
        (TextCheckerEnchant):

2012-11-23  Zeno Albisser  <zeno@webkit.org>

        [Qt] GraphicsContext3DQt makes wrong surface current.
        https://bugs.webkit.org/show_bug.cgi?id=103136

        blitMultisampleFramebufferAndRestoreContext restores
        the wrong surface in case the currentContext is the same
        as m_platformContext.
        In this case we would reset the bound surface to NULL.
        Instead we should just leave the context unchanged.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):

2012-11-23  Alexei Filippov  <alph@chromium.org>

        Web Inspector: remove total item from NMI snapshot grid
        https://bugs.webkit.org/show_bug.cgi?id=101926

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotDataGrid):

2012-11-23  Zeno Albisser  <zeno@webkit.org>

        [Qt] GraphicsContext3DQt should not overwrite glClearColor of sharing context.
        https://bugs.webkit.org/show_bug.cgi?id=103135

        In case we use GraphicsContext3DQt to render into or
        read from an existing context, we should not reset
        the glClearColor on construction.
        Otherwise we might overwrite an existing definition from
        the sharing context.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):

2012-11-23  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: damaging last chunk does not remove its garbage from DOM
        https://bugs.webkit.org/show_bug.cgi?id=103132

        Reviewed by Vsevolod Vlasov.

        Removing everything between undamaged chunks, not registered chunk rows.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
        (WebInspector.TextEditorMainChunk.prototype.updateCollapsedLineRow):
        (WebInspector.TextEditorMainChunk.prototype.firstElement):
        (WebInspector.TextEditorMainChunk.prototype.lastElement):

2012-11-23  Ilya Tikhonovsky  <loislo@chromium.org>

        RenderLayer minor clean-up: replace raw pointers with OwnPtrs.
        https://bugs.webkit.org/show_bug.cgi?id=103134

        Reviewed by Eric Seidel.

        I found that RenderLayer still uses raw pointers to the objects which it owns.
        Looks like these pointers could be replaced with OwnPtrs.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::~RenderLayer):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::updateNormalFlowList):
        (WebCore::RenderLayer::collectLayers):
        (WebCore::RenderLayer::styleChanged):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::marquee):
        (WebCore::RenderLayer::posZOrderList):
        (WebCore::RenderLayer::negZOrderList):
        (WebCore::RenderLayer::normalFlowList):
        (RenderLayer):
        (WebCore::RenderLayer::clearZOrderLists):

2012-11-23  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][AC] Mouse cursor is not updated when accelerated compositing is enabled
        https://bugs.webkit.org/show_bug.cgi?id=103131

        Reviewed by Kenneth Rohde Christiansen.

        Make sure we try to get the Ecore_X_Window using ecore_evas_gl_x11_window_get()
        in applyFallbackCursor() if accelerated compositing is enabled instead of
        using ecore_evas_software_x11_window_get(). This fixes mouse cursor update
        when accelerated compositing is enabled.

        No new tests, no behavior change for layout tests.

        * platform/efl/EflScreenUtilities.cpp:
        (WebCore::applyFallbackCursor):

2012-11-16  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: extract MemoryObjectInfo declaration into a separate file
        https://bugs.webkit.org/show_bug.cgi?id=102510

        Reviewed by Pavel Feldman.

        Added necessary includes where MemoryObjectInfo declaration is required.

        * platform/audio/FFTFrame.cpp:
        * rendering/style/RenderStyle.cpp:
        * rendering/style/StyleRareInheritedData.cpp:
        * rendering/style/StyleRareNonInheritedData.cpp:

2012-11-23  Dan Carney  <dcarney@google.com>

        Remove V8DOMWindowShell::getEntered
        https://bugs.webkit.org/show_bug.cgi?id=96637

        Reviewed by Adam Barth.

        V8DOMWindowShell::getEntered was refactored so that the window shell
        no longer has to be kept alive by a v8 context. Instead, only
        the DOMWrapperWorld will be kept alive.

        No new tests. No change in functionality.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::isolatedWorldWeakCallback):
        (WebCore):
        (WebCore::DOMWrapperWorld::makeContextWeak):
        (WebCore::DOMWrapperWorld::setIsolatedWorldField):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isolated):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::existingWindowShell):
        (WebCore::ScriptController::windowShell):
        (WebCore::ScriptController::evaluateInIsolatedWorld):
        (WebCore::ScriptController::currentWorldContext):
        (WebCore::ScriptController::collectIsolatedContexts):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        * bindings/v8/V8Binding.h:
        (WebCore::worldForEnteredContextIfIsolated):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
        (WebCore::V8DOMWindowShell::disposeContext):
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        * bindings/v8/V8PerContextData.h:
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Refine JsDoc in ProfilesPanel.js
        https://bugs.webkit.org/show_bug.cgi?id=103042

        Reviewed by Yury Semikhatsky.

        I'm going to make profiler output typed.

        This will require some amount of refactoring.

        Before refactoring I would like to make things
        unambiguous by adding JsDoc where they are missing.

        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._onToggleProfiling):
        Added to eliminate parameter type ambiguity.

2012-11-23  Kent Tamura  <tkent@chromium.org>

        Correct input[type=number] value sanitization for user-input
        https://bugs.webkit.org/show_bug.cgi?id=103018

        Reviewed by Kentaro Hara.

        If a number field has non-number string, HTMLInputElement::value is not
        updated and returns the past valid value. It doesn't match to the value
        sanitization algorithm defined by the HTML standard [1], and Opera's
        behavior. We should sanitize non-number strings to "".

        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
        > The value sanitization algorithm is as follows: If the value of the
        > element is not a valid floating-point number, then set it to the empty
        > string instead.

        No new tests. Update existing tests;
        fast/forms/number/number-commit-valid-only.html and
        fast/forms/number/number-unacceptable-style.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::subtreeHasChanged):
        Remove isAcceptableValue check.

        * html/HTMLInputElement.h:
        (HTMLInputElement): isAcceptableValue is no longer needed.
        * html/InputType.cpp: Remove isAcceptableValue.
        * html/InputType.h: Ditto.
        * html/NumberInputType.cpp: Ditto.
        (WebCore::NumberInputType::hasUnacceptableValue):
        Fold the isAcceptableValue content into this.
        * html/NumberInputType.h:
        (NumberInputType): Remove isAcceptableValue.

2012-11-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135592.
        http://trac.webkit.org/changeset/135592
        https://bugs.webkit.org/show_bug.cgi?id=103126

        broke Chromium Mac compilation (Requested by yurys on
        #webkit).

        * WebCore.gypi:

2012-11-23  Yury Semikhatsky  <yurys@chromium.org>

        Remove references to non-chromium entries from WebCore.gypi (part 2)
        https://bugs.webkit.org/show_bug.cgi?id=103124

        Reviewed by Pavel Feldman.

        * WebCore.gypi: removed references to gtk, cocoa, posix, ios, cf, win and mac

2012-11-23  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] add startCapturing and stopCapturing methods to protocol
        https://bugs.webkit.org/show_bug.cgi?id=103053

        Reviewed by Pavel Feldman.

        Add startCapturing and stopCapturing methods to the protocol to instrument several canvas frames in a row.
        Drive-by: support start offset index in retrieving trace logs in the backend as well as "alive" flag.

        * inspector/InjectedScriptCanvasModule.cpp:
        (WebCore::InjectedScriptCanvasModule::captureFrame):
        (WebCore):
        (WebCore::InjectedScriptCanvasModule::startCapturing):
        (WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
        (WebCore::InjectedScriptCanvasModule::stopCapturing):
        (WebCore::InjectedScriptCanvasModule::dropTraceLog):
        (WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
        (WebCore::InjectedScriptCanvasModule::traceLog):
        * inspector/InjectedScriptCanvasModule.h:
        (InjectedScriptCanvasModule):
        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorCanvasAgent.cpp:
        (WebCore::InspectorCanvasAgent::startCapturing):
        (WebCore):
        (WebCore::InspectorCanvasAgent::stopCapturing):
        (WebCore::InspectorCanvasAgent::getTraceLog):
        * inspector/InspectorCanvasAgent.h:
        (InspectorCanvasAgent):
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):

2012-11-23  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: dispatch events upon certain user actions on inspector's notification services
        https://bugs.webkit.org/show_bug.cgi?id=103114

        Reviewed by Pavel Feldman.

        Add a bunch of WebInspector.UserMetrics.UserAction, so platform-specific code can wire to user actions
        without breaking too often.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._setPseudoClassForNodeId):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
        * inspector/front-end/NetworkItemView.js:
        (WebInspector.NetworkItemView.prototype._tabSelected.set WebInspector):
        (WebInspector.NetworkItemView.prototype._tabSelected):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._sortItems):
        (WebInspector.NetworkDataGridNode.prototype.select):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.addProfileHeader):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._showSourceLine):
        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.revertToOriginal):
        (WebInspector.UISourceCode.prototype.revertAndClearHistory):
        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
        * inspector/front-end/UserMetrics.js:
        * inspector/front-end/externs.js:
        * inspector/front-end/inspector.js:
        (WebInspector._requestZoom.set var):
        (WebInspector._requestZoom):

2012-11-23  Christophe Dumez  <christophe.dumez@intel.com>

        WebSocket's MessageEvent.origin attribute is an empty string
        https://bugs.webkit.org/show_bug.cgi?id=102889

        Reviewed by Kentaro Hara.

        Fix WebSocket implementation so that the message event's origin
        attribute is properly set to the Unicode serialization of the
        origin of the URL that was passed to the WebSocket object's
        constructor, instead of an empty string.

        The new behavior is according to the specification:
        http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#feedback-from-the-protocol

        It also matches the behavior of Firefox.

        Tests: http/tests/websocket/tests/hybi/send-blob-onmessage-origin.html
               http/tests/websocket/tests/hybi/send-onmessage-origin.html

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::didReceiveMessage):
        (WebCore::WebSocket::didReceiveBinaryData):
        * dom/MessageEvent.cpp:
        (WebCore::MessageEvent::MessageEvent):
        * dom/MessageEvent.h:
        (WebCore::MessageEvent::create):
        (MessageEvent):

2012-11-22  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: No "Save Heap Snapshot" option after canceling save to file dialog.
        https://bugs.webkit.org/show_bug.cgi?id=100916

        Reviewed by Yury Semikhatsky.

        Fixed order of operations - now receiver is assigned only when save
        dialog responds.

        * inspector/front-end/HeapSnapshotView.js: Fixed order of operations.

2012-11-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] REGRESSION(r135507): It made 13 tests fail
        https://bugs.webkit.org/show_bug.cgi?id=103069

        Reviewed by Simon Hausmann.

        The subframe loading logic depends on that script extensions are not recognized,
        so avoid recognizing them in getMIMETypeForExtension which is used for pre-load
        mimetype detection.

        * platform/qt/MIMETypeRegistryQt.cpp:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):

2012-11-23  Jochen Eisinger  <jochen@chromium.org>

        REGRESSION (r135455): Compilation without SVG enabled broken
        https://bugs.webkit.org/show_bug.cgi?id=103108

        Reviewed by Yury Semikhatsky.

        Move SVG-only code behind #if ENABLE(SVG) that was accidentially moved
        outside of the #if block during the refactoring.

        * platform/graphics/filters/FilterOperation.h:
        (ReferenceFilterOperation):

2012-11-23  Julian Pastarmov  <pastarmovj@chromium.org>

        REGRESSION (r128633): td changes size during re-layout of table although it shouldn't
        https://bugs.webkit.org/show_bug.cgi?id=102802

        Reviewed by Ojan Vafai.

        The bug was caused by incorrectly rewriting a nested condition which caused the else
        clause to trigger in wrong cases.

        Test: fast/table/nested-tables-with-div-offset.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePercentageLogicalHeight):
        Reverted wrong combination of nested if statements.

2012-11-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] REGRESSION(r135507): It made 13 tests fail
        https://bugs.webkit.org/show_bug.cgi?id=103069

        Reviewed by Simon Hausmann.

        Fix regression in recognizing MHTML on some platforms.

        * platform/qt/MIMETypeRegistryQt.cpp:
        (ExtensionMap):
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
        (WebCore::MIMETypeRegistry::getMIMETypeForPath):

2012-11-22  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: ctrl+end in editor does not select the last symbol.
        https://bugs.webkit.org/show_bug.cgi?id=103078

        Reviewed by Vsevolod Vlasov.

        Test: inspector/editor/text-editor-selection.html

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype._handleScrollChanged):
        (WebInspector.DefaultTextEditor.prototype.overrideViewportForTest):
        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
        (WebInspector.TextEditorChunkedPanel.prototype._scrollTop):
        (WebInspector.TextEditorChunkedPanel.prototype._clientHeight):
        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
        (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
        (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):

2012-11-23  Yury Semikhatsky  <yurys@chromium.org>

        Remove references to non-chromium entries from WebCore.gypi
        https://bugs.webkit.org/show_bug.cgi?id=103103

        Reviewed by Pavel Feldman.

        * WebCore.gypi: Removed references to files specific for wince, cairo, qt, wx and efl.

2012-11-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: inspector overlay is always updated when inspector is open
        https://bugs.webkit.org/show_bug.cgi?id=103106

        Reviewed by Pavel Feldman.

        Provide empty size into the InspectorOverlay if the metrics emulation is disabled,
        so that it will not get painted in all cases.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::webViewResized): Call InspectorPageAgent::webViewResized() rather than InspectorOverlay::resize().
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::webViewResized): Provide empty size into InspectorOverlay::resize() if device metrics are not emulated.
        * inspector/InspectorPageAgent.h:

2012-11-23  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Platform support for Accessibility feature.
        https://bugs.webkit.org/show_bug.cgi?id=100848

        Reviewed by Gyuyoung Kim.

        Add EFL platform's definitions to enable proper accessibility routines.

        No new tests. Covered by existing layout tests.

        * PlatformEfl.cmake: Add accessibility/atk content to compilation.
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::AccessibilityObject):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):
        * accessibility/efl/AccessibilityObjectEfl.cpp: Removed. No needed platform specific implementation. ATK shared implementation will be used.

2012-11-23  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        Expose DOM interface for CSS Device Adaptation
        https://bugs.webkit.org/show_bug.cgi?id=95966

        Reviewed by Kenneth Rohde Christiansen.

        Added V8 and JSC bindings for CSS Device Adapation.

        Test: css3/device-adapt/opera/cssom-001.xhtml

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/objc/DOMCSS.mm:
        (kitClass):
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::wrap):
        * css/CSSRule.idl:
        * css/WebKitCSSViewportRule.idl: Added.
        * page/DOMWindow.idl:

2012-11-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135549.
        http://trac.webkit.org/changeset/135549
        https://bugs.webkit.org/show_bug.cgi?id=103102

        Multiple layout test crashes (Requested by yurys on #webkit).

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        * rendering/RenderTable.h:
        (RenderTable):

2012-11-22  Rick Byers  <rbyers@chromium.org>

        window is missing Touch and TouchList - touch event conformance test failure
        https://bugs.webkit.org/show_bug.cgi?id=96295

        Reviewed by Adam Barth.

        Add Touch and TouchList constructors to window for ENABLE(TOUCH_EVENTS).

        Tests: fast/js/global-constructors.html
               fast/events/touch/document-create-touch-list.html

        * page/DOMWindow.idl:

2012-11-22  Dan Carney  <dcarney@google.com>

        [V8] Make worker context prototype chain match other browsers
        https://bugs.webkit.org/show_bug.cgi?id=103057

        Reviewed by Adam Barth.

        The following should be defined in a worker:
        Object.getOwnPropertyDescriptor(this.__proto__, "postMessage")
        It is currently undefined in chrome only. This patch fixes that.

        No new tests. No change in functionality.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementation):

2012-11-22  Rafael Brandao  <rafael.lobo@openbossa.org>

        Remove PLATFORM(HAIKU) leftovers code
        https://bugs.webkit.org/show_bug.cgi?id=103086

        Reviewed by Antti Koivisto.

        * platform/PlatformWheelEvent.h:
        (PlatformWheelEvent):

2012-11-22  Dirk Schulze  <krit@webkit.org>

        -webkit-mask shorthand switches -webkit-mask-clip and -webkit-mask-origin values
        https://bugs.webkit.org/show_bug.cgi?id=103083

        Reviewed by Antti Koivisto.

        The order of CSSPropertyWebkitMaskOrigin and CSSPropertyWebkitMaskClip was not correct
        for property value. Just changed the order in the property array to match behavior of
        background and CSS Masking spec.

        Test: fast/masking/parsing-mask.html

        * css/StylePropertyShorthand.cpp:
        (WebCore::webkitMaskShorthand):

2012-11-22  John Mellor  <johnme@chromium.org>

        Text Autosizing: Improve handling of nested comments on reddit.com
        https://bugs.webkit.org/show_bug.cgi?id=102409

        Reviewed by Kenneth Rohde Christiansen.

        No longer consider overflow != visible as requiring an independent
        cluster. Some sites (e.g. reddit.com) wrap ordinary blocks (such as
        comments) in overflow:hidden or overflow:auto, for various reasons
        (like allowing it to be scrollable, or clipping an element that sticks
        out). These reasons are not sufficient justification for a new cluster.

        On reddit.com this means that comments will all get the same multiplier,
        rather than being independently assigned a variety of multipliers based
        on how much text each comment contains (etc), which significantly
        improves the look.

        Test: fast/text-autosizing/cluster-narrow-in-wide-ohidden.html

        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::isAutosizingCluster):

2012-11-22  Pravin D  <pravind.2k4@gmail.com>

        max-height property not respected in case of tables
        https://bugs.webkit.org/show_bug.cgi?id=98633

        Reviewed by Julien Chaffraix.

        The max-height property determines the maximum computed height an element can have. In case of tables
        the computed height was not being limited by the max-height property. The current patch fixes the same.

        Test: fast/table/css-table-max-height.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
          Helper function to compute height from the given style height.
          This function handles style height of type fixed, percent and viewport percent.
          As height of type 'calculated' gets internally resolved to either fixed or percent
          there is no special handling required for the same.

        (WebCore):
        (WebCore::RenderTable::layout):
          Logic to compute the logical height of an element such that it does not exceed the max-height value given that
          min-width < Content height < max-height, when min-height < max-height.
          However max-height value is not respected if either min-height > max-height or Content height > max-height.

        * rendering/RenderTable.h:
        (RenderTable):
          Function definition for the newly add function convertStyleLogicalHeightToComputedHeight().

2012-11-22  Kentaro Hara  <haraken@chromium.org>

        Remove 'module' from IDL parser
        https://bugs.webkit.org/show_bug.cgi?id=102670

        Reviewed by Adam Barth.

        The Web IDL spec no longer supports 'module'. We already removed
        'module's from WebKit IDL files. So this patch removes 'module'
        from the IDL parser.

        No tests. No change in behavior.

        * bindings/scripts/IDLParser.pm:
        (Parse):
        (parseDefinitionOld):

2012-11-22  Dan Carney  <dcarney@google.com>

        [V8] fix DOMWrapperWorld destructor
        https://bugs.webkit.org/show_bug.cgi?id=103066

        Reviewed by Jochen Eisinger.

        DOMWrapperWorld had a workaround in place during deletion.
        This patch brings it in line with WebKit standards.

        No new tests: refactor.

        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isolatedWorldDOMDataStore):

2012-11-22  Antti Koivisto  <antti@apple.com>

        Remove SVGShadowText class
        https://bugs.webkit.org/show_bug.cgi?id=103088

        Reviewed by Ryosuke Niwa.

        Remove SVGShadowText class and merge the little functionality it has to Text.

        * dom/Text.cpp:
        (WebCore):
        (WebCore::isSVGShadowText):
        
            Figure out if we are a SVGShadowText from the context.

        (WebCore::isSVGText):
        (WebCore::Text::createRenderer):
        (WebCore::Text::recalcTextStyle):
        
            Factor SVG special case testing to functions.

        * dom/Text.h:
        (Text):

            Get rid of the now unnecessary willRecalcTextStyle mechanism.

        * svg/SVGTRefElement.cpp:
        (WebCore):
        (WebCore::SVGTRefElement::updateReferencedText):

2012-11-22  Andreas Kling  <akling@apple.com>

        Style sharing: Remove O(n^2) presentation attribute checks that never found anything anyway.
        <http://webkit.org/b/103019>

        Reviewed by Ojan Vafai.

        Rely on the global presentation attribute cache and remove the slow-path code that compares
        the full StylePropertySets for attribute-derived style.
        There are virtually no cases of logically equivalent presentation attribute styles that don't
        already share the same memory address. (Zero hits on Apple and Chromium PLT content.)

        * css/StyleResolver.cpp:
        (WebCore::haveIdenticalStyleAffectingAttributes):
        (WebCore::StyleResolver::canShareStyleWithElement):

2012-11-22  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: evaluate on hover regressed with the editor change
        https://bugs.webkit.org/show_bug.cgi?id=103063

        Reviewed by Vsevolod Vlasov.

        We are no longer mutating the editor's dom from outside.

        * inspector/front-end/DOMExtension.js:
        (Element.prototype.remove):
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.highlightRangesWithStyleClass):
        (WebInspector.DefaultTextEditor.prototype.highlightExpression):
        (WebInspector.DefaultTextEditor.prototype.hideHighlightedExpression):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._getPopoverAnchor):
        (WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):
        (WebInspector.JavaScriptSourceFrame.prototype._highlightExpression):

2012-09-26  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] Split SVG from WebCore to work-around make limitation
        https://bugs.webkit.org/show_bug.cgi?id=97735

        Reviewed by Carlos Garcia Campos.

        Add a new libtool convenience library, libWebCoreSVG.la, to work-around
        make limitation when linking libWebCore.

        * GNUmakefile.am: new libWebCoreSVG.la library.
        * GNUmakefile.list.am: move SVG-related files to be part of the new library.

2012-11-22  Pan Deng  <pan.deng@intel.com>

        [Web Inspector]Code Style changes in TimelinePresentationModel.js.
        https://bugs.webkit.org/show_bug.cgi?id=102885.

        Reviewed by Pavel Feldman.

        This patch changes "switch" code style for TimelinePresentationModel.js, no functionality update.

        No new tests.

        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):

2012-11-22  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix attempt.

        * html/HTMLCollection.h:
        (HTMLCollection):

2012-11-22  Ryosuke Niwa  <rniwa@webkit.org>

        Get rid of HTMLCollectionCacheBase
        https://bugs.webkit.org/show_bug.cgi?id=103085

        Reviewed by Sam Weinig.

        Merged HTMLCollectionCacheBase into HTMLCollection now that DynamicNodeList and HTMLCollection
        share one implementation.

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeListCacheBase::rootNode): Merged ownerNodeHasItemRefAttribute since this was
        the only caller of this function, and the function name didn't match what it was checking.
        (WebCore::DynamicNodeListCacheBase::invalidateCache):
        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
        * dom/DynamicNodeList.h:
        (WebCore):
        (WebCore::DynamicNodeListCacheBase::cachedItemOffset):
        (DynamicNodeListCacheBase):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::DynamicNodeListCacheBase::setItemCache):
        (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfterCachedItem): Merged cachedElementsArrayOffset()
        now that this is the only caller.
        (WebCore::HTMLCollection::append):
        * html/HTMLCollection.h:
        (HTMLCollection):
        (WebCore::HTMLCollection::idCache): Moved from HTMLCollectionCacheBase.
        (WebCore::HTMLCollection::nameCache): Ditto.
        (WebCore::HTMLCollection::appendIdCache): Ditto.
        (WebCore::HTMLCollection::appendNameCache): Ditto.

2012-11-22  Antti Koivisto  <antti@apple.com>

        Merge EditingText into Text
        https://bugs.webkit.org/show_bug.cgi?id=103060

        Reviewed by Ryosuke Niwa.

        Remove the EditingText class. Its only function beyond the regular Text is that it always creates a renderer.
        It can be replaced with a bit.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/CDATASection.cpp:
        (WebCore::CDATASection::CDATASection):
        * dom/Document.cpp:
        (WebCore::Document::createEditingTextNode):
        * dom/Document.h:
        (WebCore):
        (Document):
        * dom/EditingText.cpp: Removed.
        * dom/EditingText.h: Removed.
        * dom/Node.h:
        (WebCore::Node::hasName):
        (WebCore::Node::isEditingText):
        (WebCore::Node::setHasName):
        
            Use the same bit as hasName() which is Element specific.

        * dom/Text.cpp:
        (WebCore::Text::create):
        (WebCore):
        (WebCore::Text::createEditingText):
        (WebCore::Text::rendererIsNeeded):
        * dom/Text.h:
        (Text):
        (WebCore::Text::Text):
        * editing/Editor.cpp:
        * editing/InsertTextCommand.cpp:
        * editing/ReplaceSelectionCommand.cpp:
        * editing/htmlediting.cpp:
        * editing/mac/EditorMac.mm:
        * page/Frame.cpp:

2012-11-22  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: Disclosure arrows rendered underneath frame boundaries
        https://bugs.webkit.org/show_bug.cgi?id=101053

        Reviewed by Yury Semikhatsky.

        In Timeline, when in "frames" mode, event disclosure arrows are rendered
        below the dividing lines for the frame (div.timeline-frame-divider).
        When this happens, the frame divider can capture mouse clicks and make
        it difficult to open the disclosure arrow.

        * inspector/front-end/timelinePanel.css:
        (#timeline-grid-header): Render dividers under timeline bars.

2012-11-22  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Reduce public methods of TextureMapperTiledBackingStore.
        https://bugs.webkit.org/show_bug.cgi?id=103032

        Reviewed by Noam Rosenthal.

        This patch makes two methods private and removes one method.

        No new tests, refactoring only.

        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (WebCore::TextureMapperTiledBackingStore::create):
        (TextureMapperTiledBackingStore):
        (WebCore::TextureMapperTiledBackingStore::setContentsToImage):
        (WebCore::TextureMapperTiledBackingStore::rect):

2012-11-22  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi <pierre.rossi@digia.com>

        [Qt] Separate QWidget dependant code into separate WebKitWidgets static library
        https://bugs.webkit.org/show_bug.cgi?id=102800

        Reviewed by Tor Arne Vestbø.

        This patch separates code that needs to use QWidget related APIs in
        WebKit/qt/WebCoreSupport and Api from code that doesn't. This means for
        example FrameLoaderClientQt.cpp remains in the WebKit1 static library,
        while qwebpage.cpp and qwebframe.cpp become part of the WebKitWidgets
        static library. WebKit1 is compiled without QT += widgets and therefore
        any widget related dependency has been moved "up" and out of WebKit1 into
        the WebKitWidgets library.

        Between the code in WebKit.a and WebKitWidgets.a new adapters and
        interfaces have been introduced, such as QWebPageAdapter and
        QWebFrameAdapter. QWebPageAdapter, when used from WebKit1, is a way to
        call out into the API layer, implemented by QWebPage (QWebPagePrivate).
        The other way around if QWebPage wants to access WebCore or
        WebCoreSupport related functionality, it will go through
        QWebPageAdapater (as base class). The separation in the direction up
        into the API layer is complete with this patch, no code in WebKit1
        depends on QtWidgets. The separation the other way around, code in the
        API layer not using any WebCore types, is not complete yet.

        Some classes such as QWebSettings, QWebElement or
        DumpRenderTreeSupportQt remain in WebKit1. While they are API layer,
        they do not depend on widget related Qt APIs and they make much more
        use of WebCore internal APIs and therefore are easier to keep in
        WebKit1.

        In the future we plan to place a real shared library boundary between
        WebKit1 and WebKitWidgets, by keeping the WebKit1 static library as
        part of the QtWebKit shared library and by turning the WebKitWidgets
        static library into a shared one.

        * platform/qt/QWebPageClient.h:
        (QWebPageClient):

2012-11-22  Dan Carney  <dcarney@google.com>

        [V8] Add context checks to WorldContextHandle and V8DOMWindowShell
        https://bugs.webkit.org/show_bug.cgi?id=101573

        Reviewed by Adam Barth.

        Added a bunch of assertions to ensure the problems with IndexedDB
        contexts cannot reemerge.

        No new tests. No change in functionality.

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore):
        (WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        (WebCore::V8DOMWindowShell::isolated):
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Correct extensions on preferredFilename
        https://bugs.webkit.org/show_bug.cgi?id=103054

        Reviewed by Simon Hausmann.

        When guessing a filename we will now ensure it has an extension that is valid for its mimetype.
        To do this the two missing methods getExtensionsForMIMEType and getPreferredExtensionForMIMEType
        have been added to the Qt implementation of MIMETypeRegistry.

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
        * platform/qt/MIMETypeRegistryQt.cpp:
        (WebCore::MIMETypeRegistry::getExtensionsForMIMEType):
        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):

2012-11-22  Kent Tamura  <tkent@chromium.org>

        INPUT_MULTIPLE_FIELDS_UI: Refactoring: Do not call updateInnerTextValue if only read-only sub-fields have values
        https://bugs.webkit.org/show_bug.cgi?id=103033

        Reviewed by Kentaro Hara.

        input[type=time] can have read-only sub fields. If only read-only fields
        have values, we don't need to call updateInnerTextValue when
        HTMLInputElement::value is set to "".

        Tests: this patch doesn't change any visible behavior, but we add test cases to
        fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
        just in case.

        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement): Declare anyEditableFieldsHaveValues.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
        Added. This function checks value existence against only editable sub-fields.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
        Call DateTimeEditElement::anyEditableFieldsHaveValues() instead of
        DateTimeFieldsState::hasAnyValue().
        * html/DateTimeFieldsState.h: Remove hasAnyValue.

2012-11-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Lookup mimetypes using QMimeDatabase
        https://bugs.webkit.org/show_bug.cgi?id=102667

        Reviewed by Simon Hausmann.

        The Qt backend of MIMETypeRegistry now looks up using QMimeDatabase.

        * loader/archive/ArchiveFactory.cpp:
        (WebCore::archiveMIMETypes):
            Also map the preferred freedesktop mimetype for MIME archives to MIME archive constructor.
        * platform/MIMETypeRegistry.cpp:
        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
        * platform/qt/MIMETypeRegistryQt.cpp:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
        (WebCore::MIMETypeRegistry::getMIMETypeForPath):
        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):

2012-11-22  Cosmin Truta  <ctruta@rim.com>

        Move URL-checking code into Frame
        https://bugs.webkit.org/show_bug.cgi?id=103014

        Reviewed by Ojan Vafai.

        Move the common URL checking logic from HTMLFrameElementBase::isURLAllowed
        and HTMLPlugInImageElement::allowedToLoadFrameURL into Frame::isURLAllowed.

        No new tests. Refactoring.

        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::isURLAllowed): Call Frame::isURLAllowed.
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL): Call Frame::isURLAllowed.
        * page/Frame.cpp:
        (WebCore::Frame::isURLAllowed): Added.
        * page/Frame.h:
        (Frame): Added isURLAllowed.

2012-11-22  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename toWebCoreStringWithNullOrUndefinedCheck() with toWebCoreStringWithUndefinedOrNullCheck()
        https://bugs.webkit.org/show_bug.cgi?id=103013

        Reviewed by Adam Barth.

        IDL attributes and other V8 and JSC files use "UndefinedOrNull" instead of "NullOrUndefined".

        No tests. No change in behavior.

        * bindings/v8/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::functionName):
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::setScriptSource):
        (WebCore::ScriptDebugServer::dispatchDidParseSource):
        (WebCore::ScriptDebugServer::compileScript):
        (WebCore::ScriptDebugServer::runScript):
        * bindings/v8/ScriptEventListener.cpp:
        (WebCore::eventListenerHandlerLocation):
        * bindings/v8/V8Binding.h:
        (WebCore::toWebCoreStringWithUndefinedOrNullCheck):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::showModalDialogCallback):
        (WebCore::V8DOMWindow::openCallback):
        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
        (WebCore::V8JavaScriptCallFrame::evaluateCallback):

2012-11-22  Harald Alvestrand  <hta@google.com>

        Name enumerator function for GetStats RTCStatsElement
        https://bugs.webkit.org/show_bug.cgi?id=102933

        Reviewed by Adam Barth.

        Tested by extensions to the RTCPeerConnection-stats test.

        * Modules/mediastream/RTCStatsElement.cpp:
        (WebCore::RTCStatsElement::names):
        (WebCore):
        * Modules/mediastream/RTCStatsElement.h:
        (RTCStatsElement):
        * Modules/mediastream/RTCStatsElement.idl:

2012-11-22  Kentaro Hara  <haraken@chromium.org>

        Rename the "eden" bit to something more descriptive
        https://bugs.webkit.org/show_bug.cgi?id=102985

        Reviewed by Adam Barth.

        InEdenFlag is not descriptive. Per the discussion in IRC,
        we rename InEdenFlag to V8CollectableDuringMinorGCFlag.

        No tests. No change in behavior.

        * bindings/v8/V8GCController.cpp:
        (WebCore::gcTree):
        (WebCore::V8GCController::didCreateWrapperForNode):
        (WebCore::V8GCController::minorGCPrologue):
        * dom/Node.h:
        (WebCore::Node::isV8CollectableDuringMinorGC):
        (WebCore::Node::setV8CollectableDuringMinorGC):

2012-11-22  Kentaro Hara  <haraken@chromium.org>

        [V8] Move AddMessageListener() from WorkerContextExecutionProxy::initializeIfNeeded() to WorkerContextExecutionProxy::initIsolate()
        https://bugs.webkit.org/show_bug.cgi?id=102998

        Reviewed by Adam Barth.

        This is an incremental step for moving initializeIfNeeded()
        to V8Initializer.h. Given that AddMessageListener() needs to
        be called once per Isolate, we can move AddMessageListener()
        from initializeIfNeeded() to initIsolate().

        No tests. No change in behavior.

        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initIsolate):
        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):

2012-11-22  Michael Saboff  <msaboff@apple.com>

        HTML integer parsing functions don't natively handle 8 bit strings
        https://bugs.webkit.org/show_bug.cgi?id=102997

        Reviewed by Filip Pizlo.

        In order to avoid unnecessary up convering of 8 bit strings to 16 bits, added 8 bit paths to
        parseHTMLInteger() and parseHTMLNonNegativeInteger() by breaking out the core logic into
        templated helper functions.  These methods are primarily used to process attribute values.

        No new tests needed, functionnality covered by existing tests.

        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::parseHTMLIntegerInternal):
        (WebCore::parseHTMLInteger):
        (WebCore::parseHTMLNonNegativeIntegerInternal):
        (WebCore::parseHTMLNonNegativeInteger):

2012-11-22  Kentaro Hara  <haraken@chromium.org>

        [V8] WebCoreStringResourceBase should be located in V8StringResource.h
        https://bugs.webkit.org/show_bug.cgi?id=103002

        Reviewed by Adam Barth.

        Currently WebCoreStringResourceBase is mis-located in V8ValueCache.h.
        It should be in V8StringResource.h.

        No tests. No change in behavior.

        * bindings/v8/V8StringResource.cpp:
        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
        (WebCore):
        (WebCore::WebCoreStringResourceBase::visitStrings):
        * bindings/v8/V8StringResource.h:
        (WebCore):
        (WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::webcoreString):
        (WebCore::WebCoreStringResourceBase::atomicString):
        (WebCore::WebCoreStringResourceBase::memoryConsumption):
        (WebCoreStringResource16):
        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
        (WebCoreStringResource8):
        (WebCore::WebCoreStringResource8::WebCoreStringResource8):
        * bindings/v8/V8ValueCache.cpp:
        * bindings/v8/V8ValueCache.h:
        (WebCore):

2012-11-21  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI add instrumentation to DynamicNodeList classes hierarchy.
        https://bugs.webkit.org/show_bug.cgi?id=103025

        Reviewed by Yury Semikhatsky.

        RNiwa changed pointer type in NodeRareData::NodeListAtomicNameCacheMap from the topmost
        DynamicSubtreeNodeList to the base DynamicNodeListCacheBase at r135429.
        As a result we got non zero count of pointers that don't match with tcmalloc data,
        because DynamicNodeList uses multiple inheritance.
        It could be fixed with help of explicit native memory instrumentation for DynamicNodeList class hierarchy.

        No change in behavior, so no new tests.

        * dom/Document.cpp: drive by fix.
        (WebCore::Document::reportMemoryUsage):
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeListCacheBase::reportMemoryUsage):
        (WebCore):
        (WebCore::DynamicNodeList::reportMemoryUsage):
        (WebCore::DynamicSubtreeNodeList::reportMemoryUsage):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeListCacheBase::~DynamicNodeListCacheBase):
        (DynamicNodeListCacheBase):
        (DynamicNodeList):
        (DynamicSubtreeNodeList):

2012-11-22  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r135482.
        http://trac.webkit.org/changeset/135482
        https://bugs.webkit.org/show_bug.cgi?id=103002

        It broke Chrome/Linux Debug build

        * bindings/v8/V8StringResource.cpp:
        * bindings/v8/V8StringResource.h:
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
        (WebCore):
        (WebCore::WebCoreStringResourceBase::visitStrings):
        * bindings/v8/V8ValueCache.h:
        (WebCore):
        (WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::webcoreString):
        (WebCore::WebCoreStringResourceBase::atomicString):
        (WebCore::WebCoreStringResourceBase::memoryConsumption):
        (WebCoreStringResource16):
        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
        (WebCoreStringResource8):
        (WebCore::WebCoreStringResource8::WebCoreStringResource8):

2012-11-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134927 and r134944.
        http://trac.webkit.org/changeset/134927
        http://trac.webkit.org/changeset/134944
        https://bugs.webkit.org/show_bug.cgi?id=103028

        Reverting the reverts after merging. (Requested by vsevik on
        #webkit).

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/AdvancedSearchController.js:
        * inspector/front-end/CallStackSidebarPane.js:
        (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._registerShortcuts):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        * inspector/front-end/ElementsPanelDescriptor.js:
        (WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
        * inspector/front-end/GoToLineDialog.js:
        (WebInspector.GoToLineDialog.install):
        * inspector/front-end/KeyboardShortcut.js:
        (WebInspector.KeyboardShortcut._keyName):
        * inspector/front-end/Panel.js:
        (WebInspector.Panel.prototype.registerShortcuts):
        (WebInspector.PanelDescriptor.prototype.panel):
        (WebInspector.PanelDescriptor.prototype.registerShortcuts):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
        (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
        * inspector/front-end/ScriptsPanelDescriptor.js:
        (WebInspector.ScriptsPanelDescriptor.prototype.registerShortcuts):
        * inspector/front-end/ShortcutsScreen.js:
        (WebInspector.ShortcutsScreen):
        (WebInspector.ShortcutsSection):
        (WebInspector.ShortcutsSection.prototype._renderKey):
        * inspector/front-end/StylesSidebarPane.js:
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._registerShortcuts):
        * inspector/front-end/TimelinePanelDescriptor.js: Copied from Source/WebCore/inspector/front-end/ScriptsPanelDescriptor.js.
        (WebInspector.TimelinePanelDescriptor):
        (WebInspector.TimelinePanelDescriptor.prototype.registerShortcuts):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:
        (WebInspector._panelDescriptors):
        (WebInspector._registerShortcuts):

2012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135433 and r135479.
        http://trac.webkit.org/changeset/135433
        http://trac.webkit.org/changeset/135479
        https://bugs.webkit.org/show_bug.cgi?id=103029

        "IDBRequestTest.EventsAfterStopping crashes" (Requested by
        yurys on #webkit).

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.cpp:
        * bindings/v8/DOMWrapperWorld.h:
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::existingWindowShell):
        (WebCore::ScriptController::windowShell):
        (WebCore::ScriptController::evaluateInIsolatedWorld):
        (WebCore::ScriptController::currentWorldContext):
        (WebCore::ScriptController::collectIsolatedContexts):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        * bindings/v8/V8Binding.h:
        (WebCore::worldForEnteredContextIfIsolated):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
        (WebCore::isolatedContextWeakCallback):
        (WebCore):
        (WebCore::V8DOMWindowShell::disposeContext):
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        (WebCore::V8DOMWindowShell::installDOMWindow):
        * bindings/v8/V8DOMWindowShell.h:
        (WebCore::V8DOMWindowShell::isolated):
        (V8DOMWindowShell):
        * bindings/v8/V8PerContextData.h:
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-21  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: simplify the _updateChunksForRanges routine
        https://bugs.webkit.org/show_bug.cgi?id=102927

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
        (WebInspector.TextEditorMainChunk.prototype.updateCollapsedLineRow):
        (WebInspector.TextEditorMainChunk.prototype.detachFromDOM):
        (WebInspector.TextEditorMainChunk.prototype.anchorElement):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        [V8] WebCoreStringResourceBase should be located in V8StringResource.h
        https://bugs.webkit.org/show_bug.cgi?id=103002

        Reviewed by Adam Barth.

        Currently WebCoreStringResourceBase is mis-located in V8ValueCache.h.
        It should be in V8StringResource.h.

        No tests. No change in behavior.

        * bindings/v8/V8StringResource.cpp:
        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
        (WebCore):
        (WebCore::WebCoreStringResourceBase::visitStrings):
        * bindings/v8/V8StringResource.h:
        (WebCore):
        (WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::webcoreString):
        (WebCore::WebCoreStringResourceBase::atomicString):
        (WebCore::WebCoreStringResourceBase::memoryConsumption):
        (WebCoreStringResource16):
        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
        (WebCoreStringResource8):
        (WebCore::WebCoreStringResource8::WebCoreStringResource8):
        * bindings/v8/V8ValueCache.cpp:
        * bindings/v8/V8ValueCache.h:
        (WebCore):

2012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135464.
        http://trac.webkit.org/changeset/135464
        https://bugs.webkit.org/show_bug.cgi?id=103026

        breaks gtk bot (Requested by morrita on #webkit).

        * dom/Element.cpp:
        * dom/Element.h:
        (Element):
        * dom/Element.idl:

2012-11-21  Dan Carney  <dcarney@google.com>

        Remove V8DOMWindowShell::getEntered
        https://bugs.webkit.org/show_bug.cgi?id=96637

        Reviewed by Adam Barth.

        V8DOMWindowShell::getEntered was refactored so that the window shell
        no longer has to be kept alive by a v8 context. Instead, only
        the DOMWrapperWorld will be kept alive.

        No new tests. No change in functionality.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::isolatedWorldWeakCallback):
        (WebCore):
        (WebCore::DOMWrapperWorld::makeContextWeak):
        (WebCore::DOMWrapperWorld::setIsolatedWorldField):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isolated):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::existingWindowShell):
        (WebCore::ScriptController::windowShell):
        (WebCore::ScriptController::evaluateInIsolatedWorld):
        (WebCore::ScriptController::currentWorldContext):
        (WebCore::ScriptController::collectIsolatedContexts):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        * bindings/v8/V8Binding.h:
        (WebCore::worldForEnteredContextIfIsolated):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
        (WebCore::V8DOMWindowShell::disposeContext):
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        * bindings/v8/V8PerContextData.h:
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-21  Cosmin Truta  <ctruta@rim.com>

        Numeric identifiers of events should not be globally sequential
        https://bugs.webkit.org/show_bug.cgi?id=102244

        Reviewed by Alexey Proskuryakov.

        The functions setTimeout, setInterval and navigator.geolocation.watchPosition
        are currently returning values that are unique across all JavaScript execution
        contexts, due to their dependency on global variables.
        Such a guarantee is unnecessarily strong. In this patch, we constrain uniqueness
        to these functions' own script execution context only.

        Tests: fast/dom/Geolocation/watchPosition-unique.html
               fast/dom/Window/setTimeout-setInterval-unique.html

        * Modules/geolocation/Geolocation.cpp:
        (WebCore): Remove firstAvailableWatchId.
        (WebCore::Geolocation::watchPosition): Get new watchID from script execution context.
        (WebCore::Geolocation::clearWatch): Invalid watchID means less than or equal to 0.
        * Modules/geolocation/Geolocation.h:
        (Geolocation): Renamed the argument of Geolocation::clearWatch to WatchID.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext): Update initialization.
        (WebCore::ScriptExecutionContext::newUniqueID): Add.
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext): Add m_sequentialID.
        (WebCore::ScriptExecutionContext::addTimeout): Inline.
        (WebCore::ScriptExecutionContext::removeTimeout): Inline.
        (WebCore::ScriptExecutionContext::findTimeout): Inline.
        * page/DOMTimer.cpp:
        (WebCore): Remove timeoutId.
        (WebCore::DOMTimer::DOMTimer): Get new timeoutId from script execution context.

2012-11-21  Ryosuke Niwa  <rniwa@webkit.org>

        CollectionType and DynamicNodeList::NodeListType should be merged
        https://bugs.webkit.org/show_bug.cgi?id=102983

        Reviewed by Antti Koivisto.

        Merged DynamicNodeList::NodeListType (for live NodeList) into CollectionType.

        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::~ClassNodeList):
        * dom/Document.cpp:
        (WebCore::Document::registerNodeListCache):
        (WebCore::Document::unregisterNodeListCache):
        (WebCore::Document::getItems):
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeListCacheBase::invalidateCache):
        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
        (WebCore::DynamicNodeListCacheBase::hasIdNameCache): Added. Returns iff this is a HTMLCollection.
        (WebCore::DynamicNodeListCacheBase::invalidateCache):
        (WebCore::DynamicNodeList::DynamicNodeList):
        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
        * dom/MicroDataItemList.cpp:
        (WebCore::MicroDataItemList::~MicroDataItemList):
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::~NameNodeList):
        * dom/Node.cpp:
        (WebCore::Node::getElementsByTagName):
        (WebCore::Node::getElementsByName):
        (WebCore::Node::getElementsByClassName):
        (WebCore::Node::radioNodeList):
        (WebCore::Node::propertyNodeList):
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::addCacheWithAtomicName): No longer converts CollectionType to
        a NodeListType equivalent since two enums have been merged.
        (WebCore::NodeListsNodeData::cacheWithAtomicName): Ditto.
        (WebCore::NodeListsNodeData::addCacheWithName): Ditto.
        (WebCore::NodeListsNodeData::removeCacheWithAtomicName): Ditto.
        (WebCore::NodeListsNodeData::removeCacheWithName): Ditto.
        (WebCore::NodeListsNodeData::namedNodeListKey): Ignore types before FirstNodeCollectionType
        to minimize the hash conflicts.
        * dom/PropertyNodeList.cpp:
        (WebCore::PropertyNodeList::~PropertyNodeList):
        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::~TagNodeList):
        * html/CollectionType.h:
        (WebCore::isNodeList): Added.
        * html/HTMLCollection.cpp:
        (WebCore::shouldOnlyIncludeDirectChildren):
        (WebCore::rootTypeFromCollectionType):
        (WebCore::invalidationTypeExcludingIdAndNameAttributes):
        (WebCore::isAcceptableElement):
        (WebCore::DynamicNodeListCacheBase::iterateForNextNode):
        (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
        * html/LabelableElement.cpp:
        (WebCore::LabelableElement::labels):
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::~LabelsNodeList):
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::~RadioNodeList):

2012-11-21  Michael Pruett  <michael@68k.org>

        IndexedDB: Obtain ScriptState from IDL binding generator
        https://bugs.webkit.org/show_bug.cgi?id=102552

        Reviewed by Kentaro Hara.

        Obtain ScriptState from IDL binding generator rather than directly
        calling ScriptState::current() since that method does not exist
        in JSC.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::update):
        * Modules/indexeddb/IDBCursor.h:
        (IDBCursor):
        * Modules/indexeddb/IDBCursor.idl:
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::add):
        (WebCore::IDBObjectStore::put):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::add):
        (WebCore::IDBObjectStore::put):
        (IDBObjectStore):
        * Modules/indexeddb/IDBObjectStore.idl:

2012-11-21  Filip Pizlo  <fpizlo@apple.com>

        Rename dataLog() and dataLogV() to dataLogF() and dataLogFV()
        https://bugs.webkit.org/show_bug.cgi?id=103001

        Rubber stamped by Dan Bernstein.

        No change in behavior, so no new tests.

        * platform/KURLWTFURL.cpp:
        (WebCore::KURL::print):

2012-11-21  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] Refactor GraphicsContext3DEFL.
        https://bugs.webkit.org/show_bug.cgi?id=101291.

        Reviewed by Kenneth Rohde Christiansen.

        GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
        GraphicsContext3DPrivate needs to handle the following cases:
        1) To provide an off-screen buffer for accelerated composition.
        2) Render to a current context.
        3) To render directly to host window. (currently not supported.)

        Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
        the other supported case. Evas acts as a glue layer to provide us with appropriate
        GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
        However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.

        It would be for our advantage to be able to take in to use any optimisations/extensions
        provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
        This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
        and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
        Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
        GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.

        GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
        It uses GL extension ARB_robustness (when available) to detect driver resets.
        It defines a simple interface for things that need to be handled by the context. Support
        for multi-threaded usage and shared context-group would be added later.

        GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
        It defines a simple interface for things that need to be handled by the surface.
        It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
        can be used to render into this off-screen area.

        This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.

        * PlatformEfl.cmake:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::create):
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):
        (WebCore::GraphicsContext3D::makeContextCurrent):
        (WebCore::GraphicsContext3D::setContextLostCallback):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (GraphicsContext3DPrivate::releaseResources):
        (GraphicsContext3DPrivate::setContextLostCallback):
        (GraphicsContext3DPrivate::platformGraphicsContext3D):
        (GraphicsContext3DPrivate::makeContextCurrent):
        (GraphicsContext3DPrivate::createGraphicsSurfaces):
        (GraphicsContext3DPrivate::copyToGraphicsSurface):
        (GraphicsContext3DPrivate::graphicsSurfaceToken):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):
        * platform/graphics/opengl/GLDefs.h: Added.
        (WebCore):
        * platform/graphics/opengl/GLPlatformContext.cpp: Added.
        (WebCore):
        (WebCore::GLPlatformContext::createContext):
        (WebCore::GLPlatformContext::createOffScreenContext):
        (WebCore::GLPlatformContext::createCurrentContextWrapper):
        (WebCore::GLPlatformContext::GLPlatformContext):
        (WebCore::GLPlatformContext::~GLPlatformContext):
        (WebCore::GLPlatformContext::makeCurrent):
        (WebCore::GLPlatformContext::isValid):
        (WebCore::GLPlatformContext::releaseCurrent):
        (WebCore::GLPlatformContext::handle):
        (WebCore::GLPlatformContext::isCurrentContext):
        (WebCore::GLPlatformContext::initialize):
        (WebCore::GLPlatformContext::getCurrent):
        (WebCore::GLPlatformContext::platformMakeCurrent):
        (WebCore::GLPlatformContext::platformReleaseCurrent):
        (WebCore::GLPlatformContext::destroy):
        * platform/graphics/opengl/GLPlatformContext.h: Added.
        (WebCore):
        (GLPlatformContext):
        * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
        (WebCore):
        (WebCore::GLPlatformSurface::createOffscreenSurface):
        (WebCore::GLPlatformSurface::createTransportSurface):
        (WebCore::GLPlatformSurface::GLPlatformSurface):
        (WebCore::GLPlatformSurface::~GLPlatformSurface):
        (WebCore::GLPlatformSurface::handle):
        (WebCore::GLPlatformSurface::geometry):
        (WebCore::GLPlatformSurface::sharedDisplay):
        (WebCore::GLPlatformSurface::configuration):
        (WebCore::GLPlatformSurface::swapBuffers):
        (WebCore::GLPlatformSurface::copyTexture):
        (WebCore::GLPlatformSurface::updateContents):
        (WebCore::GLPlatformSurface::setGeometry):
        (WebCore::GLPlatformSurface::destroy):
        * platform/graphics/opengl/GLPlatformSurface.h: Added.
        (WebCore):
        (GLPlatformSurface):
            GLXOffScreenContext creates an off-screen context. This is used when
            renderstyle is RenderOffscreen.
            It uses GL extension GLX_ARB_create_context (when available)
            to create a context else falls back to use glXCreateNewContext.
        * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
        (WebCore):
        (WebCore::initializeARBExtensions):
        (WebCore::GLXOffScreenContext::GLXOffScreenContext):
        (WebCore::GLXOffScreenContext::initialize):
        (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
        (WebCore::GLXOffScreenContext::isCurrentContext):
        (WebCore::GLXOffScreenContext::platformMakeCurrent):
        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
        (WebCore::GLXOffScreenContext::freeResources):
        (WebCore::GLXOffScreenContext::destroy):
            GLXCurrentContextWrapper acts as a wrapper for current context.
            This is used when renderstyle is RenderToCurrentGLContext.
        * platform/graphics/surfaces/glx/GLXContext.h: Added.
        (WebCore):
        (GLXCurrentContextWrapper):
        (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
        (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
        (GLXOffScreenContext):
        * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
        (WebCore):
        (WebCore::GLXSurface::GLXSurface):
        (WebCore::GLXSurface::~GLXSurface):
        (WebCore::GLXSurface::visualInfo):
        (WebCore::GLXSurface::xWindow):
        (WebCore::GLXSurface::pBufferConfiguration):
        (WebCore::GLXSurface::transportSurfaceConfiguration):
        (WebCore::GLXSurface::isXRenderExtensionSupported):
            GLXTransportSurface creates Window and uses it as an off-screen surface.
            Any GLContext that was created with respect to configuration can be used
            to render into this.
            This is used when contents of the buffer are to be provided to UI Process
            for display.
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        (WebCore::GLXTransportSurface::~GLXTransportSurface):
        (WebCore::GLXTransportSurface::configuration):
        (WebCore::GLXTransportSurface::swapBuffers):
        (WebCore::GLXTransportSurface::setGeometry):
        (WebCore::GLXTransportSurface::initialize):
        (WebCore::GLXTransportSurface::destroy):
        (WebCore::GLXTransportSurface::freeResources):
           GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
           Any GLContext that was created with respect to configuration can be used
           to render into this.
        (WebCore::GLXPBuffer::GLXPBuffer):
        (WebCore::GLXPBuffer::~GLXPBuffer):
        (WebCore::GLXPBuffer::initialize):
        (WebCore::GLXPBuffer::configuration):
        (WebCore::GLXPBuffer::destroy):
        (WebCore::GLXPBuffer::freeResources):
        * platform/graphics/surfaces/glx/GLXSurface.h: Added.
        (WebCore):
            Creates X resources which are shared between surface and context.
        (SharedX11Resources):
        (WebCore::SharedX11Resources::create):
        (WebCore::SharedX11Resources::deref):
        (WebCore::SharedX11Resources::getXWindow):
        (WebCore::SharedX11Resources::display):
        (WebCore::SharedX11Resources::visualInfo):
        (WebCore::SharedX11Resources::createConfig):
        (WebCore::SharedX11Resources::pBufferContextConfig):
        (WebCore::SharedX11Resources::surfaceContextConfig):
        (WebCore::SharedX11Resources::isXRenderExtensionSupported):
        (WebCore::SharedX11Resources::SharedX11Resources):
        (WebCore::SharedX11Resources::~SharedX11Resources):
        (GLXSurface):
        (GLXTransportSurface):
        (GLXPBuffer):

2012-11-21  Andreas Kling  <akling@apple.com>

        Re-virtualize CSSRule.
        <http://webkit.org/b/103003>

        Reviewed by Anders Carlsson.

        Make CSSRule virtual once again, since it's no longer important to keep it as small as possible.
        StyleRuleBase and its various subclasses are the relevant ones now.

        * css/CSSCharsetRule.cpp:
        (WebCore::CSSCharsetRule::CSSCharsetRule):
        (WebCore::CSSCharsetRule::reportMemoryUsage):
        * css/CSSCharsetRule.h:
        (WebCore::CSSCharsetRule::~CSSCharsetRule):
        (WebCore::CSSCharsetRule::encoding):
        (WebCore::CSSCharsetRule::setEncoding):
        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::CSSFontFaceRule):
        (WebCore::CSSFontFaceRule::reattach):
        (WebCore::CSSFontFaceRule::reportMemoryUsage):
        * css/CSSFontFaceRule.h:
        (CSSFontFaceRule):
        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::CSSImportRule):
        (WebCore::CSSImportRule::reportMemoryUsage):
        (WebCore::CSSImportRule::reattach):
        (WebCore):
        * css/CSSImportRule.h:
        (CSSImportRule):
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::CSSMediaRule):
        (WebCore::CSSMediaRule::reattach):
        (WebCore::CSSMediaRule::reportMemoryUsage):
        * css/CSSMediaRule.h:
        (CSSMediaRule):
        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::CSSPageRule):
        (WebCore::CSSPageRule::reattach):
        (WebCore::CSSPageRule::reportMemoryUsage):
        * css/CSSPageRule.h:
        (CSSPageRule):
        * css/CSSRule.cpp:
        (SameSizeAsCSSRule):
        (WebCore::CSSRule::reportMemoryUsage):
        * css/CSSRule.h:
        (WebCore::CSSRule::~CSSRule):
        (CSSRule):
        (WebCore::CSSRule::CSSRule):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::CSSStyleRule):
        (WebCore::CSSStyleRule::reattach):
        (WebCore::CSSStyleRule::reportMemoryUsage):
        * css/CSSStyleRule.h:
        (CSSStyleRule):
        (WebCore::CSSStyleRule::type):
        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::rules):
        * css/CSSUnknownRule.h:
        (WebCore::CSSUnknownRule::CSSUnknownRule):
        (WebCore::CSSUnknownRule::~CSSUnknownRule):
        * css/StyleResolver.cpp:
        (WebCore::collectCSSOMWrappers):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
        (WebCore::WebKitCSSKeyframeRule::reportMemoryUsage):
        (WebCore::WebKitCSSKeyframeRule::reattach):
        (WebCore):
        * css/WebKitCSSKeyframeRule.h:
        (WebKitCSSKeyframeRule):
        * css/WebKitCSSKeyframesRule.cpp:
        (WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
        (WebCore::WebKitCSSKeyframesRule::reattach):
        (WebCore::WebKitCSSKeyframesRule::reportMemoryUsage):
        * css/WebKitCSSKeyframesRule.h:
        (WebKitCSSKeyframesRule):
        * css/WebKitCSSRegionRule.cpp:
        (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
        (WebCore::WebKitCSSRegionRule::reattach):
        (WebCore::WebKitCSSRegionRule::reportMemoryUsage):
        * css/WebKitCSSRegionRule.h:
        (WebKitCSSRegionRule):
        * css/WebKitCSSViewportRule.cpp:
        (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
        (WebCore::WebKitCSSViewportRule::reattach):
        (WebCore::WebKitCSSViewportRule::reportMemoryUsage):
        * css/WebKitCSSViewportRule.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::asCSSStyleRule):
        (WebCore::InspectorCSSAgent::collectStyleSheets):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::asCSSRuleList):
        (WebCore::fillMediaListChain):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeCSSStyleSheet):

2012-11-21  Hajime Morrita  <morrita@google.com>

        [Shadow DOM] Implement Element::createShadowRoot()
        https://bugs.webkit.org/show_bug.cgi?id=102911

        Reviewed by Kentaro Hara.

        Added an API implementation and exposed it.

        This is basically an alias of the ShadowRoot constructor, which
        will be removed as bug 102913.

        Test: fast/dom/shadow/shadow-aware-create-shdow-root.html

        * dom/Element.cpp:
        (WebCore::Element::createShadowRoot):
        (WebCore):
        * dom/Element.h:
        (Element):
        * dom/Element.idl:

2012-11-20  James Simonsen  <simonjam@chromium.org>

        [Resource Timing] Populate PerformanceResourceTiming structs with timing data
        https://bugs.webkit.org/show_bug.cgi?id=102862

        Reviewed by Tony Gentilcore.

        This allows CachedResourceLoader to pass in all of the necessary values and populates
        them in the PerformanceResourceTiming struct. A follow up patch will actually call
        addResourceTiming() as necessary.

        Tests: http/tests/w3c/webperf/submission/resource-timing

        * page/Performance.cpp:
        (WebCore::Performance::addResourceTiming): Accept all necessary timing data.
        * page/Performance.h:
        (WebCore):
        (Performance):
        * page/PerformanceEntry.cpp:
        (WebCore::PerformanceEntry::PerformanceEntry):
        * page/PerformanceEntry.h:
        (PerformanceEntry):
        * page/PerformanceResourceTiming.cpp:
        (WebCore::monotonicTimeToDocumentMilliseconds):
        (WebCore):
        (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
        (WebCore::PerformanceResourceTiming::initiatorType): Return the spec'd values.
        (WebCore::PerformanceResourceTiming::fetchStart):
        (WebCore::PerformanceResourceTiming::domainLookupStart):
        (WebCore::PerformanceResourceTiming::domainLookupEnd):
        (WebCore::PerformanceResourceTiming::connectStart):
        (WebCore::PerformanceResourceTiming::connectEnd):
        (WebCore::PerformanceResourceTiming::secureConnectionStart):
        (WebCore::PerformanceResourceTiming::requestStart):
        (WebCore::PerformanceResourceTiming::responseStart):
        (WebCore::PerformanceResourceTiming::responseEnd):
        (WebCore::PerformanceResourceTiming::resourceTimeToDocumentMilliseconds):
        * page/PerformanceResourceTiming.h:
        (WebCore::PerformanceResourceTiming::create):
        (PerformanceResourceTiming):

2012-11-21  Hajime Morrita  <morrita@google.com>

        [Shadow DOM][V8] Assertion failure when shadow host is reclaimed before ShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=102893

        Reviewed by Kentaro Hara.

        Due to bug 88834, shadow hosts can be reclaimed before
        corresponding ShadowRoots are.  This breaks an invariant, that is,
        the host is always available for any ShadowRoot.  This change adds
        guards for the possibly broken invariant.

        Since bug 88834 is planned to be fixed shortly, this change
        doesn't aim to fix this problem by make it work correctly, but
        just lays a safety net which is needed until the root cause is
        gone.

        Test: fast/dom/shadow/host-wrapper-reclaimed.html

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::setInnerHTML):
        (WebCore::ShadowRoot::setApplyAuthorStyles):
        (WebCore::ShadowRoot::setResetStyleInheritance):
        (WebCore::ShadowRoot::childrenChanged):

2012-11-21  Dirk Schulze  <krit@webkit.org>

        Make CachedSVGDocumentReference independent of FilterOperation
        https://bugs.webkit.org/show_bug.cgi?id=102967

        Reviewed by Antti Koivisto.

        Make CachedSVGDocumentReference independent of FilterOperation to reuse the code for clip-path and masking.

        No new tests, refactoring.

        * GNUmakefile.list.am: Move CachedSVGDocumentReference to it's proper location and it to the projects. 
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingSVGDocuments):
        (WebCore::StyleResolver::createFilterOperations):
        * loader/cache/CachedSVGDocumentReference.h: Renamed from Source/WebCore/css/CachedSVGDocumentReference.h.
        (WebCore):
        (CachedSVGDocumentReference):
        (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
        (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
        (WebCore::CachedSVGDocumentReference::document):
        * platform/graphics/filters/FilterOperation.h: Rename data() and setData() to
            cachedSVGDocumentReference() and its setter. Adapt other classes.
        (WebCore::FilterOperation::ReferenceFilterOperation::cachedSVGDocumentReference):
        (WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
        (ReferenceFilterOperation):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        * rendering/RenderLayerFilterInfo.cpp:
        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):

2012-11-21  James Simonsen  <simonjam@chromium.org>

        Remove the concept of initiatorDocument from CachedResourceRequest
        https://bugs.webkit.org/show_bug.cgi?id=102855

        Reviewed by Sam Weinig.

        It turns out this isn't necessary for the new implementation of Resource Timing. Instead,
        we can get at it from the CachedResourceLoader. I don't think anyone else needed it either.

        No new tests. This was never used.

        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::cachedFont):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::cachedImageSet):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::cachedImage):
        * css/StyleRuleImport.cpp:
        (WebCore::StyleRuleImport::requestStyleSheet):
        * css/WebKitCSSSVGDocumentValue.cpp:
        (WebCore::WebKitCSSSVGDocumentValue::load):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::cachedShader):
        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::emitRule):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::preload):
        * loader/cache/CachedResourceRequest.cpp:
        (WebCore::CachedResourceRequest::setInitiator):
        * loader/cache/CachedResourceRequest.h:
        (CachedResourceRequest):
        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::startLoading):

2012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135437.
        http://trac.webkit.org/changeset/135437
        https://bugs.webkit.org/show_bug.cgi?id=102986

        This patch causes crash to some layout tests (Requested by
        jianli on #webkit).

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::createRendererIfNeeded):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):

2012-11-21  Andreas Kling  <akling@apple.com>

        Style sharing: Compare class lists via SpaceSplitString instead of string comparison.
        <http://webkit.org/b/102982>

        Reviewed by Antti Koivisto.

        Add an operator!= to SpaceSplitString and use that check if two elements are eligible
        for style sharing instead of comparing the fastGetAttribute(classAttr) return values.
        This works because SpaceSplitString maps equal strings to the same data internally.

        * css/StyleResolver.cpp:
        (WebCore::haveIdenticalStyleAffectingAttributes):
        * dom/SpaceSplitString.h:
        (WebCore::SpaceSplitString::operator!=):
        (SpaceSplitString):

2012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135338, r135359, and r135378.
        http://trac.webkit.org/changeset/135338
        http://trac.webkit.org/changeset/135359
        http://trac.webkit.org/changeset/135378
        https://bugs.webkit.org/show_bug.cgi?id=102981

        Likely caused a 10% regression in
        dromaeo_domcoreattr/dom_attr_getAttribute (Requested by abarth
        on #webkit).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateEventConstructorCallback):
        (ConvertToV8Parameter):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
        (WebCore::TestObjV8Internal::strictFunctionCallback):
        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/V8BindingMacros.h:
        * bindings/v8/V8StringResource.h:
        (WebCore::V8Parameter::V8Parameter):
        (V8Parameter):
        (WebCore::V8Parameter::prepareBase):
        (WebCore::V8Parameter::object):
        (WebCore::::prepare):
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::profileCallback):
        (WebCore::V8Console::profileEndCallback):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::V8WebGLRenderingContext::getExtensionCallback):

2012-11-21  Tien-Ren Chen  <trchen@chromium.org>

        Invalidate non-composited content host when page scale factor changes
        https://bugs.webkit.org/show_bug.cgi?id=100718

        Reviewed by Adam Barth.

        During a scale change, non-composited content layer doesn't get invalidated
        automatically by the transformation change on RenderView. Need to force
        update non-composited contents ourself.

        Test: compositing/repaint/page-scale-repaint.html

        * page/Page.cpp:
        (WebCore::Page::setPageScaleFactor):

2012-11-21  Ryosuke Niwa  <rniwa@webkit.org>

        Yet another EFL & GTK+ build fix after r135429.

        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::create):

2012-11-21  Elliott Sprehn  <esprehn@chromium.org>

        Node::createRenderer should never return null
        https://bugs.webkit.org/show_bug.cgi?id=102975

        Reviewed by Ojan Vafai.

        Node::createRenderer should never return null, instead Node::rendererIsNeeded
        should return false if a node doesn't wish to have a renderer. This method
        never actually returns null right now, but the code makes it look like it
        could.

        No new tests, just refactoring.

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::createRendererIfNeeded):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):

2012-11-21  Fady Samuel  <fsamuel@chromium.org>

        Clear MousePressed state on context menu to avoid initiating a drag
        https://bugs.webkit.org/show_bug.cgi?id=101786

        Reviewed by Ojan Vafai.

        If a user initiates a drag via left mouse down, brings up the context menu,
        and then cancels the context menu while keeping the left mouse button down,
        then the drag operation will continue. This does not match the platform
        conventions on Windows, Linux or Mac .

        This change cancels the drag if the context menu is about to be displayed.

        Test: fast/events/context-nodrag.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::sendContextMenuEvent):

2012-11-21  Patrick Gansterer  <paroga@webkit.org>

        Use MIMETypeRegistryWin for WinCE port too
        https://bugs.webkit.org/show_bug.cgi?id=102977

        Reviewed by Laszlo Gombos.

        r135217 made MIMETypeRegistryWin compile on WinCE too,
        which allows us to get rid of MIMETypeRegistryWinCE.

        * PlatformWinCE.cmake:
        * WebCore.gypi:
        * platform/wince/MIMETypeRegistryWinCE.cpp: Removed.

2012-11-21  Dan Carney  <dcarney@google.com>

        [V8] Add context checks to WorldContextHandle and V8DOMWindowShell
        https://bugs.webkit.org/show_bug.cgi?id=101573

        Reviewed by Adam Barth.

        Added a bunch of assertions to ensure the problems with IndexedDB
        contexts cannot reemerge.

        No new tests. No change in functionality.

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore):
        (WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        (WebCore::V8DOMWindowShell::isolated):
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-21  Elliott Sprehn  <esprehn@chromium.org>

        Remove unnecessary ternaries in createRendererIfNeeded
        https://bugs.webkit.org/show_bug.cgi?id=102974

        Reviewed by Ojan Vafai.

        parentRenderer, nextRenderer and previousRenderer all handle flow
        threads automatically so there's no reason to duplicate the check in 
        createRendererIfNeeded.

        Note that while these methods first check the node for a renderer and
        then delegate to the flow thread the node never has a renderer when
        calling createRendererIfNeeded per the assertion at the top so this
        change is equivalent.

        No new tests, just refactoring.

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::createRendererIfNeeded):

2012-11-21  Ryosuke Niwa  <rniwa@webkit.org>

        EFL and GTK+ build fix after r135429.

        * dom/Element.cpp:
        (WebCore::ElementRareData::ensureCachedHTMLCollection):

2012-11-20  Ryosuke Niwa  <rniwa@webkit.org>

        HTMLCollection should use the same storage as DynamicNodeList
        https://bugs.webkit.org/show_bug.cgi?id=102886

        Reviewed by Antti Koivisto.

        This patch removes ElementRareData::m_collection. HTMLCollections are now held by
        NodeListNodeData in NodeRareData like DynamicNodeLists. This simplifies several
        Element and Node functions where we used to call into both ElementRareData and
        NodeRareData to invalidate caches.

        This is a refactoring and there should be no behavioral change.

        * dom/DynamicNodeList.h:
        * dom/Element.cpp:
        (WebCore::ElementRareData::ensureCachedHTMLCollection):
        * dom/ElementRareData.cpp:
        (WebCore::ElementRareData::reportMemoryUsage):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::cachedHTMLCollection):
        (WebCore::ElementRareData::removeCachedHTMLCollection):
        * dom/Node.cpp:
        (WebCore::Node::invalidateNodeListCachesInAncestors):
        * dom/NodeRareData.h:
        (NodeListsNodeData):
        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
        (WebCore::NodeListsNodeData::cacheWithAtomicName):
        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
        (WebCore::NodeListsNodeData::adoptTreeScope):
        (WebCore::NodeListsNodeData::namedNodeListKey):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::create):
        * html/HTMLFormControlsCollection.h:
        (HTMLFormControlsCollection):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::create):
        * html/HTMLOptionsCollection.h:
        (HTMLOptionsCollection::create):
        * html/HTMLPropertiesCollection.h:
        (HTMLPropertiesCollection::create):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::create):
        * html/HTMLTableRowsCollection.h:
        (HTMLTableRowsCollection):

2012-11-21  Andreas Kling  <akling@apple.com>

        Update incorrect assertion in ImmutableElementAttributeData(MutableElementAttributeData).
        <http://webkit.org/b/102972>

        Reviewed by Antti Koivisto.

        Manipulation by editing code may cause an element to have mutable inline style, and this is fine.

        Change the assertion to confirm that the inline style doesn't have a CSSOM wrapper attached,
        which is where real problems would happen. 

        Fixes an assertion on editing/undo/replace-by-span-then-remove.html

        * dom/ElementAttributeData.cpp:
        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        Remove $outputDir and $outputHeadersDir from global variables of code generators
        https://bugs.webkit.org/show_bug.cgi?id=102492

        Reviewed by Adam Barth.

        $outputDir and $outputHeadersDir are used in WriteData() only.
        We don't need to use global variables for them.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ProcessDocument):
        (FileNamePrefix):
        * bindings/scripts/CodeGeneratorCPP.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (new):
        (WriteData):
        (GenerateInterface):
        * bindings/scripts/CodeGeneratorJS.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorV8.pm:
        (new):
        (GenerateInterface):
        (WriteData):

2012-11-21  Joshua Bell  <jsbell@chromium.org>

        Remove IDBDatabaseException
        https://bugs.webkit.org/show_bug.cgi?id=102514

        Reviewed by Adam Barth.

        After the WebKit implementation landed, the IndexedDB spec changed from defining new
        exception codes with constants hanging off an interface to using DOM4-styled named
        DOMExceptions. Remove the IDBDatabaseException interface and set codes for IDB-specific
        exceptions to 0. (The .idl file is retained pending general ExceptionCode cleanup.)

        Also remove IDBRequest.errorCode which was used for reporting asynchronous errors;
        IDBRequest.error - a DOMError - should be used instead.

        No new tests - covered by plenty of existing tests which have been updated.

        * Modules/indexeddb/DOMWindowIndexedDatabase.idl: Don't expose the interface.
        * Modules/indexeddb/IDBCursor.idl: Remove reference to IDBDatabaseException.
        * Modules/indexeddb/IDBDatabase.idl: Ditto.
        * Modules/indexeddb/IDBDatabaseException.cpp:
        (IDBDatabaseExceptionNameDescription): Use either a DOMException code or 0.
        (WebCore::IDBDatabaseException::initializeDescription):
        (WebCore::IDBDatabaseException::getLegacyErrorCode):
        * Modules/indexeddb/IDBFactory.idl: Remove reference to IDBDatabaseException.
        * Modules/indexeddb/IDBIndex.idl: Ditto.
        * Modules/indexeddb/IDBKeyRange.idl: Ditto.
        * Modules/indexeddb/IDBObjectStore.idl: Ditto.
        * Modules/indexeddb/IDBRequest.idl: Ditto.
        * Modules/indexeddb/IDBTransaction.idl: Ditto.
        * Modules/indexeddb/WorkerContextIndexedDatabase.idl: Don't expose the interface.
        * bindings/v8/IDBBindingUtilities.cpp: Remove unneeded #include.

2012-11-21  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Fix indenting in RenderThemeChromiumSkia.h.
        https://bugs.webkit.org/show_bug.cgi?id=102965

        Reviewed by Adam Barth.

        Much of RenderThemeChromiumSkia.h was indented too far, making the
        file confusing to read. This CL removes the extra indents.

        * rendering/RenderThemeChromiumSkia.h:
        (RenderThemeChromiumSkia):

2012-11-21  Andreas Kling  <akling@apple.com>

        Make it possible for elements with different tag names to share attribute data.
        <http://webkit.org/b/102845>

        Reviewed by Antti Koivisto.

        Allow all elements to share ElementAttributeData with one another. This means that the elements
        in this hypothetical markup will all point to the same attribute data:

            <div class="foo">
                <span class="foo">
                    <hr class="foo"/>
                </span>
            </div>

        This optimization happens at the expense of an old one. We no longer share attribute data
        between elements that have presentation attributes, since they map to different CSS properties
        depending on what tag they're attached to. These are mostly used in ye olde web 1.0 content
        though, and we should prefer optimizing in favor of modern markup. The global cache for
        presentation attribute style in StyledElement.cpp still prevents redundant parsing.

        On the upside, excluding elements with presentation attributes from the data cache means that
        we can move one pointer (m_presentationAttributeStyle) from ImmutableElementAttributeData
        to MutableElementAttributeData.

        800kB progression on Membuster3.

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::ImmutableAttributeDataCacheKey::ImmutableAttributeDataCacheKey):
        (WebCore::ImmutableAttributeDataCacheKey::operator!=):
        (WebCore::ImmutableAttributeDataCacheKey::hash):
        (ImmutableAttributeDataCacheKey):
        (WebCore::Document::cachedImmutableAttributeData):
        * dom/Element.cpp:
        (WebCore::Element::parserSetAttributes):

            Don't use the element's tag name in the key for the immutable attribute data cache.

        (WebCore::Element::cloneAttributesFromElement):

            Prevent cloneNode() from converting mutable attribute data to immutable if it has
            presentation attributes.

        * dom/ElementAttributeData.cpp:
        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):

            Add an assertion that mutable-to-immutable conversion never happens with presentation
            attribute style present.

        (WebCore::ElementAttributeData::ElementAttributeData):
        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
        (WebCore::ElementAttributeData::reportMemoryUsage):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        (MutableElementAttributeData):
        (WebCore::ElementAttributeData::presentationAttributeStyle):
        (WebCore):
        (WebCore::ElementAttributeData::setPresentationAttributeStyle):

            Move the RefPtr<StylePropertySet> that holds presentation attribute-derived style
            from the common ElementAttributeData base class to MutableElementAttributeData.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):

            Always dirty the presentation attribute style when a presentation attribute changes.

        (WebCore::StyledElement::rebuildPresentationAttributeStyle):

            Force promotion to mutable attribute data when it turns out that we need to hang a
            StylePropertySet with the presentation attribute style off of it.

2012-11-21  Antti Koivisto  <antti@apple.com>

        Replace NodeRendererFactory class with a function
        https://bugs.webkit.org/show_bug.cgi?id=102950

        Reviewed by Andreas Kling.

        Simplify the code by turning NodeRendererFactory single-use class into function of NodeRenderingContext.

        * dom/Node.cpp:
        (WebCore::Node::createRendererIfNeeded):
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::NodeRenderingContext):
        (WebCore):
        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
        (WebCore::NodeRenderingContext::createRendererIfNeeded):
        * dom/NodeRenderingContext.h:
        (NodeRenderingContext):
        (WebCore::NodeRenderingContext::style):
        (WebCore):

2012-11-21  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Change default tap highlight color for Chromium Windows & Linux.
        https://bugs.webkit.org/show_bug.cgi?id=102939

        Reviewed by Adam Barth.

        Change default tap highlight colour on Chromium Win/Linux to be 18% black.

        * rendering/RenderThemeChromiumSkia.h:
        (RenderThemeChromiumSkia): Override platformTapHighlightColor() to change default highlight colour.

2012-11-21  Tony Chang  <tony@chromium.org>

        Relayout the slider track when a data list is set
        https://bugs.webkit.org/show_bug.cgi?id=102851

        Reviewed by Ojan Vafai.

        Previously, we would relayout the <input>.  Once we fix bug 102352, this
        causes the slider track to not relayout.  It should relayout because it
        draws the data list tick marks and needs to provide space for them.

        No new tests, not testable until bug 102352 is fixed. Specifically,
        fast/forms/datalist/update-range-with-datalist.html reveals the bug.

        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::listAttributeTargetChanged):

2012-11-21  Kevin Ellis  <kevers@chromium.org>

        [chromium] Add flag to enable/disable touch adjustment at runtime.
        https://bugs.webkit.org/show_bug.cgi?id=102534

        Reviewed by Antonio Gomes.

        Add setting for enabling or disabling touch adjustment.  Note that for
        touch adjustment to apply, the compile flag must also be enabled.  A
        compile only option is insufficient as it does not allow developers to
        quickly test the impact of touch adjustemnt without recompiling.  Nor
        does it allow end users to disable touch adjustemnt if they find that
        touch adjustment is not working well for a particular site.

        No new tests required.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent): Move enable check to adjustGesturePosition.
        (WebCore::EventHandler::handleGestureTap): Move enable check to adjustGesturePosition.
        (WebCore::EventHandler::shouldApplyTouchAdjustment): Checks if touch adjustment is enabled.
        (WebCore):
        (WebCore::EventHandler::adjustGesturePosition): Add check for enabling of touch adjustment.
        (WebCore::EventHandler::sendContextMenuEventForGesture): Move enable check to adjustGesturePosition.
        * page/EventHandler.h:
        (EventHandler):
        * page/Settings.in:

2012-11-21  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, build fix after r135410.

        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::addCue): Prevent unused parameter error.

2012-11-21  Andrey Lushnikov  <lushnikov@chromium.com>

        Web Inspector: Ctrl+A closes breakpoint condition editor
        https://bugs.webkit.org/show_bug.cgi?id=102906

        Reviewed by Pavel Feldman.

        Check if e.target has no ancestors with className
        "webkit-line-decorations" in DefaultTextEditor._handleKeyDown

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Add check

2012-11-21  Tom Hudson  <tomhudson@chromium.org>

        Avoid creating degenerate cubics at corners of rounded rects.
        https://bugs.webkit.org/show_bug.cgi?id=102945

        Reviewed by Stephen White.

        Covered by existing layout tests.

        * platform/graphics/Path.cpp:
        (Path::addBeziersForRoundedRect):

2012-11-21  Eric Carlson  <eric.carlson@apple.com>

        In-band text tracks infrastructure
        https://bugs.webkit.org/show_bug.cgi?id=102830

        Reviewed by Philippe Normand.

        Add the infrastructure necessary to allow a port-specific media engine to expose in-band text
        tracks.

        No new tests, this patch only adds plumbing. Existing tests verify that these changes don't
        break existing functionality.

        * CMakeLists.txt: Add new project files.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setReadyState): Call processInbandTextTracks when readyState reaches
            HAVE_METADATA
        (WebCore::HTMLMediaElement::processInbandTextTracks): Fetch the in-band text tracks from the 
            media player and processes them.
        * html/HTMLMediaElement.h:

        * html/track/InbandTextTrack.cpp: Added.
        * html/track/InbandTextTrack.h: Added.
        * html/track/InbandTextTrackPrivate.h: Added.

        * html/track/TextTrack.h:
        (TextTrack):
        (WebCore::TextTrack::clearClient): Remove virtual, it is unnecessary
        (WebCore::TextTrack::mode): Make virtual so derived classes can override.
        (WebCore::TextTrack::setMode): Ditto.

        * html/track/TextTrackList.cpp:
        (TextTrackList::length): Update to deal with in-band tracks.
        (TextTrackList::getTrackIndex): Ditto.
        (TextTrackList::getTrackIndexRelativeToRenderedTracks): Ditto.
        (TextTrackList::item): Ditto.
        (TextTrackList::invalidateTrackIndexesAfterTrack): New, invalidate the cached track indexes of
            all tracks after another.
        (TextTrackList::append): Update to deal with in-band tracks.
        (TextTrackList::remove): Update to deal with in-band tracks.
        (TextTrackList::scheduleAddTrackEvent): Remove typo.
        * html/track/TextTrackList.h:

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::getTextTracks): New, pass through to the media engine.
        (WebCore::MediaPlayer::setTextTrackClient):
        * platform/graphics/MediaPlayer.h:

        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::setPreload): Cleanup.
        (WebCore::MediaPlayerPrivateInterface::sourceEndOfStream): Ditto.
        (WebCore::MediaPlayerPrivateInterface::getTextTracks): New client method.
        (WebCore::MediaPlayerPrivateInterface::setTextTrackClient): Ditto.

2012-11-21  Kai Koehne  <kai.koehne@digia.com>

        [Qt] MinGW: Explicitly add OpenGL library dependencies
        https://bugs.webkit.org/show_bug.cgi?id=102924

        Reviewed by Simon Hausmann.

        Adding the dependencies to WebKit1 is too late, because linking will have already failed. Also make sure that 
        the we link against OpenGLES1 e.g. for Angle.

        * WebCore.pri:

2012-11-21  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Disambiguate innerNodeFramePoint and mainFramePoint
        https://bugs.webkit.org/show_bug.cgi?id=98139

        Reviewed by Julien Chaffraix.

        Splits the point() method in HitTestResult into two, innerNodeFramePoint and mainFramePoint().
        To do this HitTestResult no longer inherits publically from HitTestLocation, which should also
        help to later separate the two classes completely.

        Many of the call-sites of hitTestResultAtPoint confuses which coordinates the point is in.
        These have not have been fixed in this patch, and they should be audited by the individual ports.

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::nodesFromRect):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::eventMayStartDrag):
        (WebCore::EventHandler::hitTestResultAtPoint):
            Set and maintain pointInMainFrame on the HitTestResult.
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::HitTestResult):
            Construct pointInMainFrame as a copy of pointInInnerNodeFrame. This is correct
            for all hit-tests outside of the recursion in EventHandler::hitTestResultAtPoint.
        (WebCore::HitTestResult::operator=):
        (WebCore::HitTestResult::innerNodeFrame):
        (WebCore::HitTestResult::append):
        * rendering/HitTestResult.h:
        (WebCore::HitTestLocation::point):
        (HitTestResult):
            Inherits protected now from HitTestLocation to avoid exposing the ambiguous
            point() and roundedPoint() methods. 
            HitTestResult will be split completely from HitTestLocation in a later patch.
        (WebCore::HitTestResult::isRectBasedTest):
        (WebCore::HitTestResult::pointInMainFrame):
        (WebCore::HitTestResult::roundedPointInMainFrame):
        (WebCore::HitTestResult::setPointInMainFrame):
        (WebCore::HitTestResult::pointInInnerNodeFrame):
        (WebCore::HitTestResult::roundedPointInInnerNodeFrame):
        (WebCore::HitTestResult::localPoint):
        (WebCore::HitTestResult::setLocalPoint):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTest):

2012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135383.
        http://trac.webkit.org/changeset/135383
        https://bugs.webkit.org/show_bug.cgi?id=102935

        IDBRequestTest.* unit tests are failing (Requested by yurys on
        #webkit).

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::installDOMWindow):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        (WebCore::V8DOMWindowShell::isolated):
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][WK2] Support Context Menu
        https://bugs.webkit.org/show_bug.cgi?id=96200

        Reviewed by Laszlo Gombos.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::populate):
        EFL port also doesn't hide unavailable menus as gtk port.

2012-11-21  Florin Malita  <fmalita@chromium.org>

        [Chromium] Unreviewed Mac build fix after http://trac.webkit.org/changeset/135390.

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::drawInnerPath):

2012-11-21  Florin Malita  <fmalita@chromium.org>

        [Skia] Encapsulate access to PlatformContextSkia's SkCanvas
        https://bugs.webkit.org/show_bug.cgi?id=102694

        Reviewed by Stephen White.

        Add SkCanvas-equivalent methods to PlatformContextSkia, and refactor direct canvas call
        sites to use these wrappers instead. This reduces the number of canvas() users from 90+
        to 22 (mostly theme/ui code).

        No new tests: refactoring only.

        * platform/chromium/PlatformThemeChromiumLinux.cpp:
        (WebCore::PlatformThemeChromiumLinux::paintArrowButton):
        * platform/graphics/chromium/FontChromiumWin.cpp:
        * platform/graphics/chromium/TransparencyWin.cpp:
        (WebCore::TransparencyWin::computeLayerSize):
        (WebCore::TransparencyWin::compositeOpaqueComposite):
        (WebCore::TransparencyWin::compositeTextComposite):
        (WebCore::TransparencyWin::makeLayerOpaque):
        * platform/graphics/filters/skia/FEBlendSkia.cpp:
        (WebCore::FEBlend::platformApplySkia):
        * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
        (WebCore::FEColorMatrix::platformApplySkia):
        * platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
        (WebCore::FEComponentTransfer::platformApplySkia):
        * platform/graphics/filters/skia/FELightingSkia.cpp:
        (WebCore::FELighting::platformApplySkia):
        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
        (WebCore::Font::drawGlyphs):
        (WebCore::Font::drawComplexText):
        * platform/graphics/skia/FontSkia.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::addInnerRoundedRectClip):
        (WebCore::GraphicsContext::clearRect):
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::clipOut):
        (WebCore::GraphicsContext::clipPath):
        (WebCore::GraphicsContext::concatCTM):
        (WebCore::GraphicsContext::setCTM):
        (WebCore::GraphicsContext::drawConvexPolygon):
        (WebCore::GraphicsContext::clipConvexPolygon):
        (WebCore::GraphicsContext::drawEllipse):
        (WebCore::drawOuterPath):
        (WebCore::GraphicsContext::drawLine):
        (WebCore::GraphicsContext::drawLineForDocumentMarker):
        (WebCore::GraphicsContext::drawLineForText):
        (WebCore::GraphicsContext::fillPath):
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::fillRoundedRect):
        (WebCore::GraphicsContext::getCTM):
        (WebCore::GraphicsContext::scale):
        (WebCore::GraphicsContext::strokeArc):
        (WebCore::GraphicsContext::strokePath):
        (WebCore::GraphicsContext::strokeRect):
        (WebCore::GraphicsContext::rotate):
        (WebCore::GraphicsContext::translate):
        (WebCore::GraphicsContext::platformFillEllipse):
        (WebCore::GraphicsContext::platformStrokeEllipse):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::getImageData):
        (WebCore::ImageBuffer::getUnmultipliedImageData):
        (WebCore::ImageBuffer::getPremultipliedImageData):
        (WebCore::ImageBuffer::putByteArray):
        (WebCore::ImageBuffer::toDataURL):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::drawResampledBitmap):
        (WebCore::hasNon90rotation):
        (WebCore::paintSkBitmap):
        (WebCore::Image::drawPattern):
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::save):
        (WebCore::PlatformContextSkia::beginLayerClippedToImage):
        (WebCore::PlatformContextSkia::restore):
        (WebCore::PlatformContextSkia::drawRect):
        (WebCore::PlatformContextSkia::couldUseLCDRenderedText):
        * platform/graphics/skia/PlatformContextSkia.h:
        (PlatformContextSkia):
        (WebCore::PlatformContextSkia::layerBitmap):
        (WebCore):
        (WebCore::PlatformContextSkia::readPixels):
        (WebCore::PlatformContextSkia::writePixels):
        (WebCore::PlatformContextSkia::isDrawingToLayer):
        (WebCore::PlatformContextSkia::isVector):
        (WebCore::PlatformContextSkia::clipPath):
        (WebCore::PlatformContextSkia::clipRect):
        (WebCore::PlatformContextSkia::getClipBounds):
        (WebCore::PlatformContextSkia::setMatrix):
        (WebCore::PlatformContextSkia::getTotalMatrix):
        (WebCore::PlatformContextSkia::concat):
        (WebCore::PlatformContextSkia::rotate):
        (WebCore::PlatformContextSkia::scale):
        (WebCore::PlatformContextSkia::translate):
        (WebCore::PlatformContextSkia::drawBitmap):
        (WebCore::PlatformContextSkia::drawBitmapRect):
        (WebCore::PlatformContextSkia::drawOval):
        (WebCore::PlatformContextSkia::drawPath):
        (WebCore::PlatformContextSkia::drawPoints):
        (WebCore::PlatformContextSkia::drawRect):
        (WebCore::PlatformContextSkia::drawIRect):
        (WebCore::PlatformContextSkia::drawPosText):
        (WebCore::PlatformContextSkia::drawPosTextH):
        (WebCore::PlatformContextSkia::drawTextOnPath):
        * platform/graphics/skia/SkiaFontWin.cpp:
        (WebCore::skiaDrawText):
        (WebCore::paintSkiaText):
        * platform/graphics/skia/SkiaUtils.cpp:
        (WebCore::ClipRectToCanvas):
        * platform/graphics/skia/SkiaUtils.h:
        (WebCore):

2012-11-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Reset the slider thumb location before every layout of the slider container
        https://bugs.webkit.org/show_bug.cgi?id=102817

        Reviewed by Tony Chang.

        The location of the slider thumb is set by the slider container
        assuming the slider thumb has been laid out. When this happens,
        the location of the slider thumb is reset during the layout
        ignoring any previous location set. If the slider thumb is not
        laid out, the previous value is added to the new one by the slider
        container.

        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderContainer::layout): Reset the location of
        the slider thumb before calling RenderFlexibleBox::layout().

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r135340.
        http://trac.webkit.org/changeset/135340
        https://bugs.webkit.org/show_bug.cgi?id=102492

        It broke Safari's internal build

        * bindings/scripts/CodeGenerator.pm:
        (ProcessDocument):
        (FileNamePrefix):
        * bindings/scripts/CodeGeneratorCPP.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (new):
        (WriteData):
        (GenerateInterface):
        * bindings/scripts/CodeGeneratorJS.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorV8.pm:
        (new):
        (GenerateInterface):
        (WriteData):

2012-11-21  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: reparenting view does not detach from the previous parent.
        https://bugs.webkit.org/show_bug.cgi?id=102902

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/View.js:
        (WebInspector.View.prototype.show):

2012-11-21  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI add instrumentation to widely used ActiveDOMObjects. XMLHttpRequest, Prerenderer, HTMLMediaElement and DOMTimer.
        https://bugs.webkit.org/show_bug.cgi?id=102818

        Reviewed by Vsevolod Vlasov.

        Our test bot counts pointers which don't match with objects allocated by tcmalloc.
        This counter becomes nonzero after instrumenting ActiveDOMObject class.
        It happens because it is the base class for many other classes (~30).
        And almost all these classes use multiple inheritance.

        * dom/Document.cpp:
        (WebCore::Document::reportMemoryUsage):
        * dom/DocumentEventQueue.cpp:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::reportMemoryUsage):
        (WebCore):
        * html/HTMLMediaElement.h:
        * loader/Prerenderer.cpp:
        (WebCore::Prerenderer::reportMemoryUsage):
        (WebCore):
        * loader/Prerenderer.h:
        (Prerenderer):
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::reportMemoryUsage):
        (WebCore):
        * page/DOMTimer.h:
        (DOMTimer):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::reportMemoryUsage):
        (WebCore):
        * xml/XMLHttpRequest.h:
        (XMLHttpRequest):

2012-11-21  Dan Carney  <dcarney@google.com>

        [V8] Add context checks to WorldContextHandle and V8DOMWindowShell
        https://bugs.webkit.org/show_bug.cgi?id=101573

        Reviewed by Adam Barth.

        Added a bunch of assertions to ensure the problems with IndexedDB
        contexts cannot reemerge.

        No new tests. No change in functionality.

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore):
        (WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        (WebCore::V8DOMWindowShell::isolated):
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-21  Harald Alvestrand  <hta@google.com>

        WebMediaStreamComponent: Add assignment and copy operators
        https://bugs.webkit.org/show_bug.cgi?id=102915

        Reviewed by Adam Barth.

        Tests that use this functionality are being submitted to Chrome.

        * platform/chromium/support/WebMediaStreamComponent.cpp:
        (WebKit::WebMediaStreamComponent::assign):
        (WebKit):
        * platform/chromium/support/WebMediaStreamDescriptor.cpp:

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
        https://bugs.webkit.org/show_bug.cgi?id=102917

        Reviewed by Adam Barth.

        Now EXCEPTION_BLOCK() and STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
        are equivalent. We can remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK().
        To make a code generate change smaller, this patch also renames
        STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID() to EXCEPTION_BLOCK_VOID().
        I will rename these macros in a follow-up patch.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateEventConstructorCallback):
        (ConvertToV8Parameter):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
        (WebCore::TestObjV8Internal::strictFunctionCallback):
        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/V8BindingMacros.h:
        * bindings/v8/V8StringResource.h:
        (V8Parameter):
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::profileCallback):
        (WebCore::V8Console::profileEndCallback):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):
        * bindings/v8/custom/V8IntentCustom.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::V8WebGLRenderingContext::getExtensionCallback):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        [V8] Move V8DOMWindowShell::initializeV8IfNeeded() to V8Initializer
        https://bugs.webkit.org/show_bug.cgi?id=102899

        Reviewed by Adam Barth.

        This is an incremental step to kill WorkerContextExecutionProxy.
        As commented by abarth in bug 97066, we move
        V8DOMWindowShell::initializeV8IfNeeded() to V8Initializer.
        This patch renames initializeV8IfNeeded() to initializeMainThreadIfNeeded()
        because we will add initializeWorkerIfNeeded() in a follow-up patch.

        No tests. No change in behavior.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8Initializer.cpp: Added.
        (WebCore):
        (WebCore::findFrame):
        (WebCore::reportFatalError):
        (WebCore::reportUncaughtException):
        (WebCore::reportUnsafeJavaScriptAccess):
        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
        * bindings/v8/V8Initializer.h: Added.
        (WebCore):
        (V8Initializer):

2012-11-21  Alexander Pavlov  <apavlov@chromium.org>

        Turn -webkit-text-emphasis into a shorthand property
        https://bugs.webkit.org/show_bug.cgi?id=102879

        Reviewed by Antti Koivisto.

        -webkit-text-emphasis value is no longer empty.

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::getPropertyValue): Reconstruct the -webkit-text-emphasis value based on the longhands.

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Build fix.

        * bindings/v8/custom/V8BlobCustom.cpp:
        (WebCore::V8Blob::constructorCallbackCustom):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename v8/custom/*Constructor.cpp to v8/custom/*Custom.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102881

        Reviewed by Adam Barth.

        Writing constructorCallback()s in *Custom.cpp is a convention of
        custom bindings of JSC and V8. We can rename v8/custom/*Constructor.cpp
        to v8/custom/*Custom.cpp.

        No tests. No change in behavior.

        * UseV8.cmake: This file is already out of sync.
        * WebCore.gypi:
        * bindings/v8/custom/V8IntentCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentConstructor.cpp.
        (WebCore):
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8MessageChannelCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp.
        (WebCore):
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8WebKitPointCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp.
        (WebCore):
        (WebCore::V8WebKitPoint::constructorCallbackCustom):

2012-11-21  Dan Carney  <dcarney@google.com>

        [V8] Inspector does not callback IDB methods in context
        https://bugs.webkit.org/show_bug.cgi?id=101725

        Reviewed by Adam Barth.

        Inserted v8 context before calling out to IDB.

        No new tests.

        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
        (WebCore::InspectorIndexedDBAgent::requestDatabase):
        (WebCore::InspectorIndexedDBAgent::requestData):

2012-11-21  Huang Dongsung  <luxtella@company100.net>

        REGRESSION(134048): TiledBackingStore must create tiles when the contents rect is changed.
        https://bugs.webkit.org/show_bug.cgi?id=102035

        Reviewed by Kenneth Rohde Christiansen.

        Before r134048, the visibleRect contained information of both the viewport and
        the contents rect. Now the visible rect is related to only the viewport. So
        TiledBackingStore::coverWithTilesIfNeeded() early returns even if the contents
        rect is changed, because changing the contents rect is independent on changing
        both a trajectory vector and the visible rect.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):

2012-11-21  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Request preview tuning: enable json preview for text/html XHRs
        https://bugs.webkit.org/show_bug.cgi?id=102892

        Reviewed by Alexander Pavlov.

        * inspector/front-end/RequestPreviewView.js:
        (WebInspector.RequestPreviewView.prototype._jsonView):
        (WebInspector.RequestPreviewView.prototype._htmlView):
        (WebInspector.RequestPreviewView.prototype._createPreviewView):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove manually written v8::TryCatches in custom bindings
        https://bugs.webkit.org/show_bug.cgi?id=102883

        Reviewed by Adam Barth.

        We can replace them with the EXCEPTION_BLOCK() macro or its friends.

        No new tests. This patch shouldn't change any behavior.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::addCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r135358.
        http://trac.webkit.org/changeset/135358
        https://bugs.webkit.org/show_bug.cgi?id=102881

        It broke Chromium/Linux build

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementCustom.cpp.
        (WebCore):
        (WebCore::v8HTMLImageElementConstructorCallback):
        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
        * bindings/v8/custom/V8HTMLImageElementConstructor.h: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementCustom.h.
        (WebCore):
        (V8HTMLImageElementConstructor):
        * bindings/v8/custom/V8IntentConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentCustom.cpp.
        (WebCore):
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8MessageChannelConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelCustom.cpp.
        (WebCore):
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8WebKitPointConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointCustom.cpp.
        (WebCore):
        (WebCore::V8WebKitPoint::constructorCallbackCustom):

2012-11-21  KyungTae Kim  <ktf.kim@samsung.com>

        Unused parameters on ScrollingCoordinator.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102884

        Reviewed by Kentaro Hara.

        Because the 'scrollingLayerPositionAction' parameter is not used when !USE(ACCELERATED_COMPOSITING),
        use UNUSED_PARAM macro to fix build warning -Wunused-parameter

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace V8Parameter::prepare() with V8Parameter::operator=()
        https://bugs.webkit.org/show_bug.cgi?id=102870

        Reviewed by Adam Barth.

        This is an incremental step for V8Parameter refactoring.
        By replacing V8Parameter::prepare() with V8Parameter::operator=(),
        we can make EXCEPTION_BLOCK() and STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
        equivalent (except for a return value).

        Tests: fast/workers/worker-constructor.html
               storage/websql/sql-error-codes.html
               inspector/console/alert-toString-exception.html
               http/tests/websocket/tests/hybi/send-throw.html

        * bindings/v8/V8BindingMacros.h:
        * bindings/v8/V8StringResource.h:
        (WebCore::V8Parameter::V8Parameter):
        (V8Parameter):
        (WebCore::=):

2012-11-21  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename v8/custom/*Constructor.cpp to v8/custom/*Custom.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102881

        Reviewed by Adam Barth.

        Writing constructorCallback()s in *Custom.cpp is a convention of
        custom bindings of JSC and V8. We can rename v8/custom/*Constructor.cpp
        to v8/custom/*Custom.cpp.

        No tests. No change in behavior.

        * UseV8.cmake: This file is already out of sync.
        * WebCore.gypi:
        * bindings/v8/custom/V8HTMLImageElementCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp.
        (WebCore):
        (WebCore::v8HTMLImageElementConstructorCallback):
        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
        * bindings/v8/custom/V8HTMLImageElementCustom.h: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.h.
        (WebCore):
        (V8HTMLImageElementConstructor):
        * bindings/v8/custom/V8IntentCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentConstructor.cpp.
        (WebCore):
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8MessageChannelCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp.
        (WebCore):
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8WebKitPointCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp.
        (WebCore):
        (WebCore::V8WebKitPoint::constructorCallbackCustom):

2012-11-21  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] throttle wait icon in the ui
        https://bugs.webkit.org/show_bug.cgi?id=102685

        Reviewed by Vsevolod Vlasov.

        Do not show the wait icon for small operations during the replay to reduce flickering.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):

2012-11-21  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Enable datalist UI for input types datetime and datetime-local
        https://bugs.webkit.org/show_bug.cgi?id=102882

        Reviewed by Kent Tamura.

        Enabling datalist UI for input types datetime and datetime-local.

        No new tests yet. Tests will be added later in Bug 102888.

        * platform/text/PlatformLocale.cpp:
        (WebCore::Locale::formatDateTime): Support datetime and datetime-local types.
        * rendering/RenderThemeChromiumCommon.cpp:
        (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add datetime and datetimelocal to the list.

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove v8/custom/V8XMLHttpRequestConstructor.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102876

        Reviewed by Sam Weinig.

        It doesn't make sense to have one custom cpp file for
        XXX::constructorCallback() only. We can move XXX::constructorCallback()
        in v8/custom/V8XXXConstructor.cpp to v8/custom/V8XXXCustom.cpp
        and thus remove v8/custom/V8XXXConstructor.cpp.

        Note: Some XXX::constructorCallback()s are already written in
        v8/custom/V8XXXCustom.cpp. JSC already has almost all
        XXX::constructorCallback()s in js/JSXXXCustom.cpp.

        No tests. No change in behavior.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: Removed.
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
        (WebCore):

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
        * bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.cpp:
        * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
        * bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.cpp:
        * bindings/scripts/test/CPP/WebDOMTestEventConstructor.cpp:
        * bindings/scripts/test/CPP/WebDOMTestEventTarget.cpp:
        * bindings/scripts/test/CPP/WebDOMTestException.cpp:
        * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
        * bindings/scripts/test/CPP/WebDOMTestMediaQueryListListener.cpp:
        * bindings/scripts/test/CPP/WebDOMTestNamedConstructor.cpp:
        * bindings/scripts/test/CPP/WebDOMTestNode.cpp:
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp:
        * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetter):
        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetter):
        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
        (WebCore::TestObjV8Internal::withScriptStateVoidCallback):
        (WebCore::TestObjV8Internal::withScriptStateObjCallback):
        (WebCore::TestObjV8Internal::withScriptStateVoidExceptionCallback):
        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateCallback):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        [V8] Introduce constructorCallbackCustom()
        https://bugs.webkit.org/show_bug.cgi?id=102763

        Reviewed by Adam Barth.

        Currently custom constructors have the following code:

          v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
            INC_STATS("DOM.XXX.Constructor");
            if (!args.IsConstructCall())
              return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate());
            if (ConstructorMode::current() == ConstructorMode::WrapExistingObject)
              return args.Holder();

            /* body of the constructor */;
          }

        To avoid duplicating the same logic in all custom constructors,
        this patch changes the generated code as follows:

          // Generated automatically
          v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
            INC_STATS("DOM.XXX.Constructor");
            ${maybeObserveFeature}  // Newly supported for custom constructors.
            if (!args.IsConstructCall())
              return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate());
            if (ConstructorMode::current() == ConstructorMode::WrapExistingObject)
              return args.Holder();

            V8XXX::constructorCallbackCustom(args);
          }

          // Written manually
          v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
            /* body of the constructor */;
          }

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (HasCustomConstructor):
        (GenerateCustomConstructorCallback):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructorCallback):
        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallbackCustom):
        * bindings/v8/custom/V8BlobCustom.cpp:
        (WebCore::V8Blob::constructorCallbackCustom):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::constructorCallbackCustom):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::constructorCallbackCustom):
        * bindings/v8/custom/V8IntentConstructor.cpp:
        (WebCore::V8Intent::constructorCallbackCustom):
        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
        (WebCore::V8MessageChannel::constructorCallbackCustom):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallbackCustom):
        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
        (WebCore::V8WebKitPoint::constructorCallbackCustom):
        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):

2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        REGRESSION(r135263): Fix a wrong argument for udat_close
        https://bugs.webkit.org/show_bug.cgi?id=102856

        Reviewed by Kent Tamura.

        Fixed a bug that passed wrong pointer to udat_close.

        No new tests. No changes in behavior.

        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::initializeDateTimeFormat): Close correct object.

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        Remove $outputDir and $outputHeadersDir from global variables of code generators
        https://bugs.webkit.org/show_bug.cgi?id=102492

        Reviewed by Adam Barth.

        $outputDir and $outputHeadersDir are used in WriteData() only.
        We don't need to use global variables for them.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ProcessDocument):
        (FileNamePrefix):
        * bindings/scripts/CodeGeneratorCPP.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (new):
        (WriteData):
        (GenerateInterface):
        * bindings/scripts/CodeGeneratorJS.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (new):
        (GenerateInterface):
        (WriteData):
        * bindings/scripts/CodeGeneratorV8.pm:
        (new):
        (GenerateInterface):
        (WriteData):

2012-11-20  Adam Barth  <abarth@webkit.org>

        7% regression in dromaeo_domcorequery/dom_query_getElementsByTagName__not_in_document
        https://bugs.webkit.org/show_bug.cgi?id=102852

        Reviewed by Kentaro Hara.

        In http://trac.webkit.org/changeset/135208/, we lost the early-exit
        check for whether isolatedWorldsExist() in this code path. This
        regression points to benchmarks that we can further improve by
        continuing to merge the general ScriptWrappable code path with the Node
        code path.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        [V8] Change a return type of V8Parameter::prepare() from bool to void
        https://bugs.webkit.org/show_bug.cgi?id=102805

        Reviewed by Adam Barth.

        This is an incremental step for V8Parameter refactoring.

        V8Parameter::prepare() is always called just after V8Parameter's
        constructor. So I want to move the logic of V8Parameter::prepare()
        to V8Parameter's constructor. In preparation for that (i.e. because
        a constructor cannot return any value), this patch changes the return
        type of V8Parameter::prepare() from bool to void.

        Tests: fast/workers/worker-constructor.html
               storage/websql/sql-error-codes.html
               inspector/console/alert-toString-exception.html
               http/tests/websocket/tests/hybi/send-throw.html
               etc

        * bindings/v8/V8BindingMacros.h:
        * bindings/v8/V8StringResource.h:
        (V8Parameter):
        (WebCore::V8Parameter::prepareBase): This patch removes a TryCatch block.
        This change is safe because (1) all V8Parameter::prepareBase() in the code base
        is called inside STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(), and because
        (2) STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() has a TryCatch block.
        (Note: In a follow-up patch I'm planning to refactor the macros.)
        (WebCore::::prepare): I will remove this method shortly.

2012-11-20  Adam Klein  <adamk@chromium.org>

        [JSC] MutationObserver wrapper should not be collected while still observing
        https://bugs.webkit.org/show_bug.cgi?id=102744

        Reviewed by Adam Barth.

        This is the JSC side of the change landed for V8 in r135228.
        It ensures MutationObserver wrapper objects are kept alive as long as
        any observed nodes.

        * bindings/js/JSMutationObserverCustom.cpp:
        (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots): Keep MutationObserver wrappers alive
        if any of their observed nodes' roots is an opaque root.
        * dom/MutationObserver.idl: Add JSCustomIsReachable

2012-11-20  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Move control of transaction completion to front end
        https://bugs.webkit.org/show_bug.cgi?id=100903

        Reviewed by Tony Chang.

        "When a transaction can no longer become active, the implementation must attempt to
        commit it" - that is, all requests have dispatched success/error events and no further
        requests have been made. Previously, this was done by the back end waiting for events
        from the front end, but the front end can more efficiently make the decision.

        There should be no detectable behavior change.

        Tests: storage/indexeddb/transaction-*.html

        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::IDBTransaction):
        (WebCore::IDBTransaction::setActive):
        (WebCore::IDBTransaction::registerRequest):
        * Modules/indexeddb/IDBTransaction.h:
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::hasPendingTasks): Added.
        (WebCore::IDBTransactionBackendImpl::didCompleteTaskEvents):
        (WebCore::IDBTransactionBackendImpl::run):
        (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::constructorCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructorCallback):

2012-11-20  Alpha Lam  <hclam@chromium.org>

        Unreviewed. Chromium build fix.

        Removed unnecessary mutex unlock that triggered crash on Linux debug build.

        Chromium Linux Debug layout tests should be green:
        platform/chromium/virtual/deferred/fast/images/image-in-map.html

        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::onLockPixels):

2012-11-20  Ryosuke Niwa  <rniwa@webkit.org>

        Fix another typo. I need to checking that type() != NodeListCollectionType,
        not that type() >= FirstNodeCollectionType.

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeListCacheBase::invalidateCache):

2012-11-20  Michael Pruett  <michael@68k.org>

        [V8] Pass ScriptState::current() to functions marked with CallWith=ScriptState
        https://bugs.webkit.org/show_bug.cgi?id=102739

        Reviewed by Kentaro Hara.

        Previously EmptyScriptState rather than ScriptState::current()
        was passed to functions marked with [CallWith=ScriptState].
        Since the EmptyScriptState has a null v8::Context, any functions
        which depended upon a valid v8::Context would fail.

        No new tests. Covered by existing tests.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateCallWith):
        (GenerateFunctionCallString):
        * bindings/v8/ScriptState.h:
        (WebCore::ScriptState::clearException): Added.

2012-11-20  Brent Fulgham  <bfulgham@webkit.org>

        [Qt] Build fix after r135217.
        https://bugs.webkit.org/show_bug.cgi?id=102787

        * platform/win/WindowsExtras.h: Switch to direct include of
          <ObjBase.h>, as is done in other <shlwapi.h> includes.

2012-11-20  Ryosuke Niwa  <rniwa@webkit.org>

        Fix typos. Apparently XCode failed to text-replace earlier when it was busy making a snapshot :(

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeListCacheBase::invalidateCache):
        (DynamicNodeListCacheBase):

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        [V8] Introduce GenerateConstructorHeader() to CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102806

        Reviewed by Adam Barth.

        This is an incremental step for introducing constructorCallbackCustom().
        (See bug 102763.) This patch adds GenerateConstructorHeader()
        that generates a common code for constructors.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateOverloadedConstructorCallback):
        (GenerateSingleConstructorCallback):
        (GenerateEventConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateConstructorHeader):

2012-11-20  Ryosuke Niwa  <rniwa@webkit.org>

        HTMLCollection's cache should not be invalidated when id or name attributes are changed
        https://bugs.webkit.org/show_bug.cgi?id=102843

        Reviewed by Eric Seidel.

        When an id or name attribute changes, only invaliate id and name cache maps when the collection
        doesn't depend on id and name attributes (e.g. document.images).

        Unfortunately, I could not create a reliable test for this performance problem.

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeListCacheBase::invalidateCache):
        (DynamicNodeListCacheBase):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::clearHTMLCollectionCaches):
        * html/HTMLCollection.cpp:
        (WebCore::invalidationTypeExcludingIdAndNameAttributes):

2012-11-20  Adam Klein  <adamk@chromium.org>

        [v8] Avoid unnecessary call to ToObject() in Callback constructors
        https://bugs.webkit.org/show_bug.cgi?id=102831

        Reviewed by Adam Barth.

        The code already asserted that the argument was an object, so calling
        ToObject() is unnecessary: a simple Cast() suffices.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallbackHeader):
        * bindings/scripts/test/V8/V8TestCallback.h:
        (WebCore::V8TestCallback::create):

2012-11-20  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Build fix after r135316

        * platform/network/curl/AuthenticationChallenge.h: Update stub
          implementations to match Apple Windows port.
        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Add
          missing identifier argument.
        (WebCore::AuthenticationChallenge::setAuthenticationClient): Supply
          missing set method.

2012-11-20  Tony Chang  <tony@chromium.org>

        When calling DocumentStyleSheetCollection::addUserSheet, pass in a user sheet
        https://bugs.webkit.org/show_bug.cgi?id=102835

        Reviewed by Ojan Vafai.

        After r135082, Chromium browser_tests were triggering the ASSERT in
        StyleResolver::collectRulesFromUserStyleSheets. Add an ASSERT that will
        trigger earlier and make it clear in the Chromium code that we're always
        inserting user level styles.

        No new tests, no behavior change except no longer triggering the StyleResolver ASSERT
        in Chromium browser_tests.

        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::addUserSheet):

2012-11-20  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] Support outside-shape value on shape-inside
        https://bugs.webkit.org/show_bug.cgi?id=101108

        Reviewed by Dirk Schulze.

        Shape-inside can potentially be: 'auto' | 'outside-shape' | <shape> | <url>.
        Webkit currently supports the value 'auto' (null) and <shape> (a BasicShape*).
        This patch adds support for the value 'outside-shape.' It adds the ExclusionShapeValue
        class, which may be any of the three values: 'auto', 'outside-shape', or <shape>.
        Bug 102738 tracks adding <url> support.

        Modifying existing tests:
        LayoutTests/fast/exclusions/parsing-wrap-shape-inside.html
        LayoutTests/fast/exclusions/parsing-wrap-shape-outside.html

        * GNUmakefile.list.am: Adding ExclusionShapeValue.h to the build files.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        (WebCore):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Modifying code to use
        ExclusionShapeValue* rather than the previous BasicShape* values.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Handle the outside-shape value.
        * css/CSSValueKeywords.in: Adding outside-shape value.
        * css/StyleBuilder.cpp:
        (WebCore):
        (WebCore::ApplyPropertyExclusionShape::setValue): Modify code to use
        ExclusionShapeValue* rather than BasicShape*.
        (WebCore::ApplyPropertyExclusionShape::applyValue): Ditto.
        (WebCore::ApplyPropertyExclusionShape::createHandler): Ditto.
        * page/animation/CSSPropertyAnimation.cpp: Ditto.
        (WebCore::blendFunc): Ditto.
        (WebCore::PropertyWrapperExclusionShape::PropertyWrapperExclusionShape): Ditto.
        (WebCore::CSSPropertyAnimation::ensurePropertyMap): Ditto.
        * rendering/ExclusionShapeInsideInfo.cpp:
        (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock):
        Ditto.
        (WebCore::ExclusionShapeInsideInfo::computeShapeSize): Ditto.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Ditto.
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/style/ExclusionShapeValue.h: Added.
        (WebCore):
        (ExclusionShapeValue): New type to represent the possible values of shape-inside
        and shape-outside. Only shape-inside can have a value of 'outside-shape.'
        (WebCore::ExclusionShapeValue::~ExclusionShapeValue):
        (WebCore::ExclusionShapeValue::type): Returns the value type.
        (WebCore::ExclusionShapeValue::shape): Returns <shape> value's BasicShape*.
        (WebCore::ExclusionShapeValue::operator==):
        (WebCore::ExclusionShapeInfo::createShapeValue):
        (WebCore::ExclusionShapeInfo::createOutsideValue):
        (WebCore::ExclusionShapeValue::ExclusionShapeValue):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareNonInheritedData.h:
        (StyleRareNonInheritedData):

2012-11-20  Alpha Lam  <hclam@chromium.org>

        [chromium] Make lazy image decoding thread-safe
        https://bugs.webkit.org/show_bug.cgi?id=102721

        Reviewed by Stephen White.

        Added mutex to LazyDecodingPixelRef such that there is no parallel
        onLockPixels() running on multiple threads.

        Added mutex to ImageFrameGenerator to protect the use of raw image
        data.

        The result is that we can decode on threads other than the main
        thread while data is being supplied on the main thread.

        New unit test:
        DeferredImageDecoderTest.decodeOnOtherThread

        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::setData):
        (WebCore::ImageFrameGenerator::decodeAndScale):
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (ImageFrameGenerator):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (LazyDecodingPixelRef):

2012-11-20  Brent Fulgham  <bfulgham@webkit.org>

        [Qt] Build fix after r135217.
        https://bugs.webkit.org/show_bug.cgi?id=102787

        * platform/win/WindowsExtras.h: Add #undef of NOSHLWAPI to
        allow include of <ObjBase.h> needed by Qt build.

2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135295.
        http://trac.webkit.org/changeset/135295
        https://bugs.webkit.org/show_bug.cgi?id=102834

        This patch causes assertion to some layout tests on chromium
        (Requested by jianli on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/FrameLoadRequest.cpp: Removed.
        * loader/FrameLoadRequest.h:
        (WebCore::FrameLoadRequest::FrameLoadRequest):
        (FrameLoadRequest):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load):
        * loader/FrameLoader.h:
        (FrameLoader):
        * page/DragController.cpp:
        (WebCore::DragController::performDrag):
        * plugins/PluginView.cpp:
        (WebCore::PluginView::performRequest):

2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135293.
        http://trac.webkit.org/changeset/135293
        https://bugs.webkit.org/show_bug.cgi?id=102832

        This patch causes crash to some layout tests on chromium
        (Requested by jianli on #webkit).

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.cpp:
        * bindings/v8/DOMWrapperWorld.h:
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::existingWindowShell):
        (WebCore::ScriptController::windowShell):
        (WebCore::ScriptController::evaluateInIsolatedWorld):
        (WebCore::ScriptController::currentWorldContext):
        (WebCore::ScriptController::collectIsolatedContexts):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        * bindings/v8/V8Binding.h:
        (WebCore::worldForEnteredContextIfIsolated):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
        (WebCore):
        (WebCore::isolatedContextWeakCallback):
        (WebCore::V8DOMWindowShell::disposeContext):
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8DOMWindowShell.h:
        (WebCore::V8DOMWindowShell::isolated):
        (V8DOMWindowShell):
        * bindings/v8/V8PerContextData.h:
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-20  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Remove legacy enum-based constants from IDL
        https://bugs.webkit.org/show_bug.cgi?id=85315

        Reviewed by Adam Barth.

        These were only present in an earlier working draft of the spec and have
        been removed for 8 months. See
        http://lists.w3.org/Archives/Public/public-webapps/2012JanMar/0957.html

        Tests - legacy-constants.html

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::stringToDirection):
        * Modules/indexeddb/IDBCursor.idl:
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::stringToMode):
        * Modules/indexeddb/IDBTransaction.idl:

2012-11-20  Elliott Sprehn  <esprehn@chromium.org>

        Store MutationObserver callback in a hidden property for V8
        https://bugs.webkit.org/show_bug.cgi?id=102555

        Reviewed by Adam Barth.

        To prevent circular reference leaks we should store the MutationObserver
        callback in a hidden property on the wrapper of the observer.

        This is done by extending the code generator to support a new owner
        argument to ::create() that lets you set the owner of the callback where
        the hidden property should be stored.

        Test: ManualTests/leak-cycle-observer-wrapper.html

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallbackHeader):
        (GenerateCallbackImplementation):
        * bindings/scripts/test/V8/V8TestCallback.cpp: rebaselined.
        * bindings/scripts/test/V8/V8TestCallback.h: rebaselined.
        * bindings/v8/V8HiddenPropertyName.h:
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallback):

2012-11-20  Abhishek Arya  <inferno@chromium.org>

        Crash in FrameLoader::stopLoading.
        https://bugs.webkit.org/show_bug.cgi?id=99504

        Reviewed by Nate Chapin.

        Frame can be blown away in unload event handler. Need
        to protect it with a RefPtr.

        Test: fast/frames/frame-unload-crash2.html

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::commitProvisionalLoad):

2012-11-20  Dirk Schulze  <krit@webkit.org>

        Remove unnecessary FilterOperations header from RenderBoxModelObject
        https://bugs.webkit.org/show_bug.cgi?id=102821

        Reviewed by Ojan Vafai.

        No new tests, simple refactoring.

        * rendering/RenderBoxModelObject.cpp:

2012-11-20  Tom Sepez  <tsepez@chromium.org>

        XSSAuditor::decodedSnippetForJavaScript stopping when comma encountered.
        https://bugs.webkit.org/show_bug.cgi?id=102587

        Reviewed by Adam Barth.

        Rather than returning an empty fragment, continue processing the body
        of a script tag when the decoded fragment reduces to nothing.

        Test: http/tests/security/xssAuditor/script-tag-with-actual-comma.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::decodedSnippetForJavaScript):

2012-11-20  James Simonsen  <simonjam@chromium.org>

        Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
        https://bugs.webkit.org/show_bug.cgi?id=102151

        Reviewed by Adam Barth.

        There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
        There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
        the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
        the refactoring done with CachedResourceRequest and CachedResourceLoader.

        No new tests. No change in functionality.

        * WebCore.exp.in:
        * loader/FrameLoadRequest.h:
        (WebCore::FrameLoadRequest::FrameLoadRequest):
        (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
        (WebCore::FrameLoadRequest::lockHistory): Ditto.
        (FrameLoadRequest):
        (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
        (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
        (WebCore::FrameLoadRequest::substituteData): Ditto.
        (WebCore::FrameLoadRequest::setSubstituteData): Ditto.
        (WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
        * loader/FrameLoader.h:
        (FrameLoader):
        * page/DragController.cpp:
        (WebCore::DragController::performDrag):

2012-11-20  Dan Carney  <dcarney@google.com>

        Remove V8DOMWindowShell::getEntered
        https://bugs.webkit.org/show_bug.cgi?id=96637

        Reviewed by Adam Barth.

        V8DOMWindowShell::getEntered was refactored so that the window shell
        no longer has to be kept alive by a v8 context. Instead, only
        the DOMWrapperWorld will be kept alive.

        No new tests. No change in functionality.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::isolatedWorldWeakCallback):
        (WebCore):
        (WebCore::DOMWrapperWorld::makeContextWeak):
        (WebCore::DOMWrapperWorld::setIsolatedWorldField):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isolated):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::existingWindowShell):
        (WebCore::ScriptController::windowShell):
        (WebCore::ScriptController::evaluateInIsolatedWorld):
        (WebCore::ScriptController::currentWorldContext):
        (WebCore::ScriptController::collectIsolatedContexts):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        * bindings/v8/V8Binding.h:
        (WebCore::worldForEnteredContextIfIsolated):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
        (WebCore::V8DOMWindowShell::disposeContext):
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        * bindings/v8/V8PerContextData.h:
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):

2012-11-20  Mike West  <mkwst@chromium.org>

        Remove '#include "ScriptCallStackFactory.h"' include when unnecessary.
        https://bugs.webkit.org/show_bug.cgi?id=102812

        Reviewed by Jochen Eisinger.

        "ScriptCallStackFactory.h" is included in a few files where it doesn't
        seem to be required. Since I'm in the process of centralizing stack
        trace generation anyway, I'll just clean this up as a drive-by.

        * bindings/js/JSConsoleCustom.cpp:
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        * bindings/v8/custom/V8WorkerContextCustom.cpp:
        * loader/FrameLoader.cpp:
            Removed "ScriptCallStackFactory.h".
        * bindings/js/ScheduledAction.cpp:
            This also included (but didn't use) "ScriptCallStack.h". I've
            removed it as well.

2012-11-20  Elliott Sprehn  <esprehn@chromium.org>

        Merge checks for creating renderers into shouldCreateRenderer
        https://bugs.webkit.org/show_bug.cgi?id=102768

        Reviewed by Ojan Vafai.

        Merge the checks for if renderers should be created into shouldCreateRenderer
        so simplify the code and ensure correctness if doing
        NodeRenderingContext(node).shouldCreateRenderer() in other places in webkit.

        No new tests, just refactoring.

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::shouldCreateRenderer):
        (WebCore::NodeRendererFactory::createRendererIfNeeded):

2012-11-19  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: simplify? damaged region computation in the editor
        https://bugs.webkit.org/show_bug.cgi?id=102688

        Reviewed by Vsevolod Vlasov.

        This change simplifies the damaged region computation. Drive-by make _getSelection work properly.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor):
        (WebInspector.DefaultTextEditor.prototype._handleCut):
        (WebInspector.TextEditorChunkedPanel.prototype._findFirstVisibleLineNumber.compareLineRowOffsetTops):
        (WebInspector.TextEditorChunkedPanel.prototype._findFirstVisibleLineNumber):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
        (WebInspector.TextEditorMainPanel.prototype._getSelection):
        (WebInspector.TextEditorMainPanel.prototype._restoreSelection):
        (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
        (WebInspector.TextEditorMainPanel.prototype._positionToSelection):
        (WebInspector.TextEditorMainPanel.prototype._handleMutations):
        (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
        (WebInspector.TextEditorMainPanel.prototype._assertDOMMatchesTextModel):
        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
        (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):
        (WebInspector.TextEditorMainChunk):
        (WebInspector.TextEditorMainChunk.prototype.addDecoration):
        (WebInspector.TextEditorMainChunk.prototype.get endLine):
        (WebInspector.TextEditorMainChunk.prototype.lineRowContainingLine):
        (WebInspector.TextEditorMainChunk.prototype.expandedLineRow):

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Remove historical enums from ExceptionCode.h
        https://bugs.webkit.org/show_bug.cgi?id=102095

        Reviewed by Ojan Vafai.

        Remove unused enums from ExceptionCode.

        No new tests. No tests affected.

        * Modules/intents/NavigatorIntents.cpp:
        (WebCore::NavigatorIntents::webkitStartActivity): The error type for this is unspecified.
        * dom/DOMCoreException.cpp:
        * dom/ExceptionCode.h:

2012-11-20  Keishi Hattori  <keishi@webkit.org>

        Week picker width is too small
        https://bugs.webkit.org/show_bug.cgi?id=102766

        Reviewed by Kent Tamura.

        The width of week picker was too small because we were forgetting about
        the week number column when calculating the desired width.

        No new tests. Covered by week-picker-appearance*.html.

        * Resources/pagepopups/calendarPicker.css:
        (.week-mode .week-column): Needs to be table-cell.
        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker.prototype.fixWindowSize):

2012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] no volume slider in HTML5 media element controls
        https://bugs.webkit.org/show_bug.cgi?id=97192

        Reviewed by Philippe Normand.

        r115829 was causing this regression so it was partially
        reverted. The revert causes some small regressions, in the tests
        but it is better to have the volume slider shown.

        * css/mediaControlsGtk.css:
        (audio::-webkit-media-controls-panel)
        (video::-webkit-media-controls-panel): Partially reverted
        r115829.

2012-11-19  Antti Koivisto  <antti@apple.com>

        Collect user style sheets in DocumentStyleSheetCollection
        https://bugs.webkit.org/show_bug.cgi?id=102683

        Reviewed by Andreas Kling.

        Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
        
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
        (WebCore::collectCSSOMWrappers):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
        (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
        (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
        (WebCore::collectActiveStyleSheetsFromSeamlessParents):
        (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
        
            Factor the StyleResolver updating code to function.

        (WebCore):
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        
            Collect the user style sheets. Some renaming and other minor refactoring.

        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.h:
        (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
        
            Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
            similar to activeAuthorStyleSheets.

        (DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):

2012-11-20  Elliott Sprehn  <esprehn@chromium.org>

        Remove unneeded optimization in Element::isInTopLayer
        https://bugs.webkit.org/show_bug.cgi?id=102772

        Reviewed by Andreas Kling.

        There's no reason to worry about calling elementRareData() multiple
        times in this non performance sensitive code path as it's only used
        in HTMLDialogElement's showModal and close methods.

        No new tests, just simplification.

        * dom/Element.cpp:
        (WebCore::Element::setIsInTopLayer):

2012-11-20  Elliott Sprehn  <esprehn@chromium.org>

        Simplify Element::isSpellCheckingEnabled
        https://bugs.webkit.org/show_bug.cgi?id=102779

        Reviewed by Andreas Kling.

        isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
        and can be simplified by just calling that.

        No new tests, just simplification.

        * dom/Element.cpp:
        (WebCore::Element::isSpellCheckingEnabled):

2012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>

        Apply DeviceController as parent class of DeviceMotionController.
        https://bugs.webkit.org/show_bug.cgi?id=102578

        Reviewed by Hajime Morita.

        DeviceController needs to be applied as parent class of DeviceMotionController
        because DeviceController which is extracted as parent class of
        DeviceMotionController and DeviceOrientationController is already added.
        Therefore duplicated implementation can be removed.

        Covered by existing tests.

        * dom/DeviceMotionClient.h:
        * dom/DeviceMotionController.cpp:
        (WebCore::DeviceMotionController::DeviceMotionController):
        (WebCore::DeviceMotionController::didChangeDeviceMotion):
        (WebCore::DeviceMotionController::deviceMotionClient):
        (WebCore::DeviceMotionController::hasLastData):
        (WebCore::DeviceMotionController::getLastEvent):
        (WebCore::DeviceMotionController::from):
        (WebCore):
        * dom/DeviceMotionController.h:
        (WebCore):
        (WebCore::DeviceMotionController::~DeviceMotionController):
        (DeviceMotionController):
        * dom/Document.cpp:
        Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
        Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
        (WebCore::Document::suspendActiveDOMObjects):
        (WebCore::Document::resumeActiveDOMObjects):
        * loader/EmptyClients.h:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):

2012-11-20  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove V8ParameterBase
        https://bugs.webkit.org/show_bug.cgi?id=102774

        Reviewed by Adam Barth.

        V8ParameterBase is a redundant indirection.
        We can flatten methods of V8ParameterBase to V8Parameter.

        No tests. No change in behavior.

        * bindings/v8/V8StringResource.h:
        (WebCore::V8Parameter::V8Parameter):
        (V8Parameter):
        (WebCore::V8Parameter::toString):
        (WebCore::::prepare):

2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Use localized date-time format in datetime input
        https://bugs.webkit.org/show_bug.cgi?id=102769

        Reviewed by Kent Tamura.

        Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
        to its subclasses and use platform-specific methods to get date-time pattern.
        Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
        pattern for Windows.

        Test: fast/forms/datetime/datetime-appearance-l10n.html

        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
        (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
        (WebCore):
        (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
        * platform/text/LocaleICU.h:
        (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
        * platform/text/LocaleNone.cpp:
        (LocaleNone):
        (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
        (WebCore):
        (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
        * platform/text/PlatformLocale.cpp:
        (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
        * platform/text/PlatformLocale.h:
        (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
        * platform/text/mac/LocaleMac.h:
        (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
        (WebCore):
        (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
        (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
        (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
        * platform/text/win/LocaleWin.cpp:
        (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
        (WebCore):
        (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
        * platform/text/win/LocaleWin.h:
        (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.

2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135257.
        http://trac.webkit.org/changeset/135257
        https://bugs.webkit.org/show_bug.cgi?id=102777

        Broke Chromium Debug compilation (Requested by yurys on
        #webkit).

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::getNode):

2012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Revert r133149: breaks revision reverting
        https://bugs.webkit.org/show_bug.cgi?id=102672

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
        (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
        (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):

2012-11-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt][Win] Unreviewed speculative buildfix after r135217.

        * platform/win/WindowsExtras.h:

2012-11-19  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Fix Chromium Win compilation after r135255.
        https://bugs.webkit.org/show_bug.cgi?id=97803

        * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
        was deleted in the aforementioned change.

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        [V8] Merge getCachedWrapper(Node*) into DOMDataStore
        https://bugs.webkit.org/show_bug.cgi?id=102158

         Reviewed by Adam Barth.

        A follow-up patch for r135230. This patch adds a correct ASSERTION.

        No tests. No change in behavior.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::getNode):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
        https://bugs.webkit.org/show_bug.cgi?id=102757

        Reviewed by Adam Barth.

        In CodeGeneratorJS.pm $implClassName and $interfaceName are
        equivalent. We're using them interchangeably. We should replace
        $implClassName with $interfaceName.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (AddClassForwardIfNeeded):
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateOverloadedFunction):
        (GenerateImplementation):
        (GenerateParametersCheck):
        (GenerateImplementationFunctionCall):
        (NativeToJSValue):

2012-11-19  Patrick Gansterer  <paroga@webkit.org>

        Port DragDataWin.cpp to WinCE
        https://bugs.webkit.org/show_bug.cgi?id=97803

        Reviewed by Brent Fulgham.

        Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.

        * PlatformWinCE.cmake:
        * platform/win/DragDataWin.cpp:
        (WebCore::DragData::containsFiles):
        (WebCore::DragData::numberOfFiles):
        (WebCore::DragData::asFilenames):
        * platform/wince/DragDataWinCE.cpp: Removed.

2012-11-19  Pan Deng  <pan.deng@intel.com>

        [Web Inspector] This patch makes script line number search-able in Timeline panel.
        https://bugs.webkit.org/show_bug.cgi?id=101910.

        Reviewed by Pavel Feldman.

        Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.

        No new tests. 

        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelineRecordListRow.prototype.update):
        (WebInspector.TimelineRecordListRow.testContentMatching):
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
        (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
        (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
        (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):

2012-11-19  Elliott Sprehn  <esprehn@chromium.org>

        Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
        https://bugs.webkit.org/show_bug.cgi?id=102765

        Reviewed by Ojan Vafai.

        If parentRenderer() was null then we return early from
        createRendererIfNeeded() because shouldCreateRenderer() will return false
        so there's no reason to check for it again.

        Additionally if either parentRenderer() or style() is null then
        implementations of rendererIsNeeded() will crash, so add asserts to
        make this assumption more clear.

        No new tests, just simplification.

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRendererFactory::createRendererIfNeeded):

2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Remove WebCore::isInsertionPoint(Node*)
        https://bugs.webkit.org/show_bug.cgi?id=102756

        Reviewed by Hajime Morita.

        Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.

        No new tests, simple refactoring.

        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
        * dom/ContainerNode.cpp:
        (WebCore::childAttachedAllowedWhenAttachingChildren):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::invalidate):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::isActive):
        * html/shadow/InsertionPoint.h:
        (WebCore::toInsertionPoint):
        (WebCore::isActiveInsertionPoint):
        (WebCore::isLowerEncapsulationBoundary):
        (WebCore::parentNodeForDistribution):
        * testing/Internals.cpp:
        (WebCore::Internals::isValidContentSelect):

2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
        https://bugs.webkit.org/show_bug.cgi?id=101703

        Reviewed by Hajime Morita.

        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
        setPseudo()/pseudo() instead.

        No new tests, simple refactoring.

        * html/shadow/ProgressShadowElement.cpp:
        (WebCore::ProgressInnerElement::ProgressInnerElement):
        * html/shadow/ProgressShadowElement.h:
        (ProgressInnerElement):
        (WebCore::ProgressBarElement::ProgressBarElement):
        (ProgressBarElement):
        (WebCore::ProgressValueElement::ProgressValueElement):

2012-11-19  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Fix Chromium Debug compilation after r135230.
        https://bugs.webkit.org/show_bug.cgi?id=102158

        Removed ASSERT that used instance field in a static method.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::getWrapperFromObject):

2012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>

        [Blackberry] When a frame is being detached, cancel all its network jobs.
        https://bugs.webkit.org/show_bug.cgi?id=102758

        Reviewed by George Staikos.

        I use FrameDestructionObserver to refactor Networkjob code.
        NetworkJob is inheriting from FrameDestructionObserver to be
        aware of frame's destroyed. When a frame is being detached,
        the willDetachPage() can be called in which we can cancel 
        the job. This patch reverted the fix for RIM PR134207 as well.

        Manually test is on 
        "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
        which triggers a ping loader.

        No behavior changed, no new layout tests.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::NetworkJob):
        (WebCore::NetworkJob::initialize):
        (WebCore::NetworkJob::handleNotifyHeaderReceived):
        (WebCore::NetworkJob::startNewJobWithRequest):
        (WebCore::NetworkJob::frameDestroyed):
        (WebCore):
        (WebCore::NetworkJob::willDetachPage):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::NetworkManager::startJob):
        * platform/network/blackberry/NetworkManager.h:
        (NetworkManager):
        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):

2012-11-19  Matt Falkenhagen  <falken@chromium.org>

        Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
        https://bugs.webkit.org/show_bug.cgi?id=84796

        Reviewed by Julien Chaffraix.

        This adds the top layer element stack to Document. The Fullscreen
        specification mandates that we track the ordering of the DOM nodes in
        the top layer, not the renderers. That makes it hard to implement on
        the rendering side only.

        Elements in the top layer get a layer. Layers in the top layer are
        added to the root layer's child list after normal layers and in the
        order of the top layer stack. This way, the top layer appears above
        all other stacking contexts and in the desired order.

        In addition, top layer renderers are added as children of RenderView
        in top layer order. This is to satisfy requirements such as the
        containing block of an element in the top layer is the initial
        containing block. It also allows RenderLayer to know the proper
        stacking order of the layers without going directly from the top layer
        elements to their layers.

        So far, only modal dialog elements can be added to the top layer.
        The plan is to make the Fullscreen API also use the top layer.

        Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
               fast/dom/HTMLDialogElement/top-layer-display-none.html
               fast/dom/HTMLDialogElement/top-layer-nesting.html
               fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
               fast/dom/HTMLDialogElement/top-layer-stacking.html

        * WebCore.exp.in:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
        * dom/Document.cpp:
        (WebCore):
        (WebCore::Document::addToTopLayer):
        (WebCore::Document::removeFromTopLayer):
        * dom/Document.h:
        (Document):
        (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
        * dom/Element.cpp:
        (WebCore::Element::removedFrom):
        (WebCore):
        (WebCore::Element::isInTopLayer):
        (WebCore::Element::setIsInTopLayer):
        * dom/Element.h:
        * dom/ElementRareData.h:
        (ElementRareData):
        * dom/Node.cpp:
        (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
        regular position in the render tree.
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        (WebCore::NodeRareData::isInTopLayer):
        (WebCore::NodeRareData::setIsInTopLayer):
        * dom/NodeRenderingContext.cpp:
        (WebCore):
        (WebCore::adjustInsertionPointForTopLayerElement):
        (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
        in top layer stacking order.
        * html/HTMLDialogElement.cpp:
        (WebCore::HTMLDialogElement::close):
        (WebCore::HTMLDialogElement::showModal):
        * rendering/RenderLayer.cpp:
        (WebCore):
        (WebCore::RenderLayer::isInTopLayer):
        (WebCore::RenderLayer::isInTopLayerSubtree):
        (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
        (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
        * rendering/RenderLayer.h:
        (RenderLayer):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        In CodeGeneratorObj.pm we should rename $dataNode to $interface.
        https://bugs.webkit.org/show_bug.cgi?id=102749

        Reviewed by Adam Barth.

        $dataNode is misnamed. It should be renamed to $interface.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateInterface):
        (GetParentImplClassName):
        (GetParentAndProtocols):
        (GenerateHeader):
        (GenerateImplementation):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        In CodeGeneratorV8.pm, we should rename $dataNode to $interface
        https://bugs.webkit.org/show_bug.cgi?id=102747

        Reviewed by Adam Barth.

        $dataNode is misnamed. It should be $interface.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateInterface):
        (NeedsCustomOpaqueRootForGC):
        (GetGenerateIsReachable):
        (GetCustomIsReachable):
        (GenerateOpaqueRootForGC):
        (GenerateHeader):
        (GetInternalFields):
        (GenerateHeaderCustomInternalFieldIndices):
        (GenerateHeaderNamedAndIndexedPropertyAccessors):
        (GenerateHeaderCustomCall):
        (IsConstructable):
        (GenerateConstructorGetter):
        (GenerateNormalAttrGetter):
        (GenerateReplaceableAttrSetter):
        (GenerateNormalAttrSetter):
        (GenerateOverloadedFunctionCallback):
        (GenerateFunctionCallback):
        (GenerateArgumentsCountCheck):
        (GenerateOverloadedConstructorCallback):
        (GenerateSingleConstructorCallback):
        (GenerateConstructorCallback):
        (GenerateEventConstructorCallback):
        (GenerateTypedArrayConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateBatchedAttributeData):
        (IsStandardFunction):
        (GenerateNonStandardFunction):
        (GenerateImplementationIndexer):
        (GenerateImplementationNamedPropertyGetter):
        (GenerateImplementationCustomCall):
        (GenerateImplementationMasqueradesAsUndefined):
        (GenerateImplementation):
        (GenerateHeaderContentHeader):
        (GenerateImplementationContentHeader):
        (GenerateCallbackHeader):
        (GenerateCallbackImplementation):
        (BaseInterfaceName):
        (GenerateToV8Converters):
        (GetNativeTypeForConversions):
        (GetTypeNameOfExternalTypedArray):
        (WriteData):

2012-11-19  Keishi Hattori  <keishi@webkit.org>

        Move in animation should be disabled until the calendar picker is loaded.
        https://bugs.webkit.org/show_bug.cgi?id=102661

        Reviewed by Kent Tamura.

        On weeks where the first day is in the previous month (e.x. 2013-W01)
        the move in animation happens when you open the calendar picker. This
        patch disables the move in animation until the calendar picker is fully
        loaded.

        No new tests.

        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker):
        (CalendarPicker.prototype._handleWindowResize):
        (DaysTable.prototype._startMoveInAnimation):

2012-11-19  Elliott Sprehn  <esprehn@chromium.org>

        Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
        https://bugs.webkit.org/show_bug.cgi?id=102743

        Reviewed by Hajime Morita.

        Clean up while (true) loops in NodeRenderingContext reducing the
        amount of code and the need for ASSERT_NOT_REACHED.

        No new tests, just simplifcation.

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):

2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
        https://bugs.webkit.org/show_bug.cgi?id=102753

        Reviewed by Hajime Morita.

        The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
        no value is set.

        Test: fast/dom/shadow/pseudo-attribute.html

        * dom/Element.idl:

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        In CodeGeneratorGObject.pm we should rename $dataNode to $interface
        https://bugs.webkit.org/show_bug.cgi?id=102751

        Reviewed by Adam Barth.

        $dataNode is misnamed. It should be $interface.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetParentClassName):
        (GetParentGObjType):
        (GenerateProperties):
        (GenerateFunctions):
        (GenerateCFile):
        (GenerateEventTargetIface):
        (Generate):
        (WriteData):
        (GenerateInterface):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        In CodeGenerator.pm we should rename $dataNode to $interface
        https://bugs.webkit.org/show_bug.cgi?id=102754

        Reviewed by Adam Barth.

        $dataNode is misnamed. It should be $interface.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ForAllParents):
        (AddMethodsConstantsAndAttributesFromParentInterfaces):
        (FindSuperMethod):
        (IsConstructorTemplate):
        (LinkOverloadedFunctions):
        (GenerateCompileTimeCheckForEnumsIfNeeded):
        (GetVisibleInterfaceName):
        (IsSubType):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        In CodeGeneratorCPP.pm we should rename $dataNode to $interface
        https://bugs.webkit.org/show_bug.cgi?id=102752

        Reviewed by Adam Barth.

        $dataNode is misnamed. It should be $interface.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateInterface):
        (GetParentImplClassName):
        (GetParent):
        (GenerateHeader):
        (GenerateImplementation):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        In CodeGeneratorJS.pm we should rename $dataNode to $interface
        https://bugs.webkit.org/show_bug.cgi?id=102748

        Reviewed by Adam Barth.

        $dataNode is misnamed. It should be $interface.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateInterface):
        (GetParentClassName):
        (GetGenerateIsReachable):
        (GetCustomIsReachable):
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeaderContentHeader):
        (GenerateImplementationContentHeader):
        (ShouldGenerateToJSDeclaration):
        (ShouldGenerateToJSImplementation):
        (GenerateHeader):
        (GenerateAttributesHashTable):
        (GenerateOverloadedFunction):
        (GenerateImplementation):
        (GenerateArgumentsCountCheck):
        (GenerateParametersCheck):
        (GenerateCallbackHeader):
        (GenerateCallbackImplementation):
        (WriteData):
        (GenerateConstructorDeclaration):
        (GenerateConstructorDefinition):
        (IsConstructable):

2012-11-19  Adam Barth  <abarth@webkit.org>

        [V8] Merge getCachedWrapper(Node*) into DOMDataStore
        https://bugs.webkit.org/show_bug.cgi?id=102158

        Reviewed by Eric Seidel.

        This patch is an incremental step towards fully merging the Node code
        path with the general code path. After this patch, at least Nodes flow
        through the same class.

        * Modules/indexeddb/IDBTransactionCoordinator.h:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateToV8Converters):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::getNode):
        (DOMDataStore):
        (WebCore::DOMDataStore::getWrapperFromObject):
        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
        (WebCore):
        * bindings/v8/DOMWrapperWorld.h:
        (WebCore):
        (DOMWrapperWorld):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        In the IDL parser, we should rename $dataNode to $interface
        https://bugs.webkit.org/show_bug.cgi?id=102746

        Reviewed by Adam Barth.

        $dataNode is misnamed. It should be $interface.

        No tests. No change in behavior.

        * bindings/scripts/IDLParser.pm:
        (parseInterface):
        (parseException):
        (parseAttributeOrOperationRest):
        (parseOperationOrIterator):
        (parseSpecialOperation):
        (parseInterfaceOld):
        (parseExceptionOld):
        (parseAttributeOrOperationOrIteratorOld):
        (parseAttributeOrOperationRestOld):
        (applyMemberList):
        (applyExtendedAttributeList):
        * bindings/scripts/generate-bindings.pl:
        * bindings/scripts/preprocess-idls.pl:
        (checkIDLAttributes):

2012-11-19  Adam Klein  <adamk@chromium.org>

        MutationObserver wrapper should not be collected while still observing
        https://bugs.webkit.org/show_bug.cgi?id=102328

        Reviewed by Adam Barth.

        Use the new opaqueRootForGC helper in V8GCController to put each
        MutationObserver wrapper in the same object group as the nodes it's
        observing.

        Only includes V8 impl for now, JSC impl coming soon.

        Tests: fast/mutation/observer-wrapper-dropoff-transient.html
               fast/mutation/observer-wrapper-dropoff.html

        * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
        with a FIXME to move this out once we update the opaque roots API.
        * dom/MutationObserver.cpp:
        (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
        to the GC controller.
        (WebCore):
        * dom/MutationObserver.h:
        * dom/MutationObserverRegistration.cpp:
        (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
        (WebCore):
        * dom/MutationObserverRegistration.h:
        (MutationObserverRegistration):

2012-11-19  Tony Chang  <tony@chromium.org>

        Move more non-settings out of InternalSettings
        https://bugs.webkit.org/show_bug.cgi?id=102711

        Reviewed by Adam Barth.

        Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
        from internal.settings since they are already exposed by window.internals (in
        fact, no one calls the internal.settings version).

        Move setUsesOverlayScrollbars from internals.settings to internals because it is
        a global (static) setting and not tied to the lifetime of the Settings object.

        No new tests, there should be no behavior change since this is a refactor.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::reset): Remove custom reset code.
        (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
        * testing/InternalSettings.h:
        * testing/InternalSettings.idl: Remove unnecessary methods.
        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
        (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
        (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
        (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
        (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.

2012-11-19  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
        https://bugs.webkit.org/show_bug.cgi?id=101810

        Reviewed by Tony Chang.

        Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        The condition tested by this assert is a valid state.

2012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>

        Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
        https://bugs.webkit.org/show_bug.cgi?id=102637

        Reviewed by Timothy Hatcher.

        Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.

        No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
        worker inspector window.

        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::createCallFrame):
        (WebCore::ScriptDebugServer::callEvent):
        (WebCore::ScriptDebugServer::willExecuteProgram):
        * bindings/js/ScriptDebugServer.h:
        (ScriptDebugServer):
        * bindings/js/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::willExecuteProgram):
        (WebCore):
        * bindings/js/WorkerScriptDebugServer.h:
        (WorkerScriptDebugServer):

2012-11-19  Pratik Solanki  <psolanki@apple.com>

        For single element arrays use the pointer into the CFDataRef instead of copying data
        https://bugs.webkit.org/show_bug.cgi?id=102306

        Reviewed by Brent Fulgham.

        Address review comments for slightly nicer code.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::data):
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::singleDataArrayBuffer):

2012-11-19  Chris Rogers  <crogers@google.com>

        Remove empirical bass-boost for HRTF spatialization
        https://bugs.webkit.org/show_bug.cgi?id=102745

        Reviewed by Kenneth Russell.

        Some empirically-based post-processing is being removed so that we'll
        now process with the exact HRTF impulse response measurements.
        Listening tests have determined that this post-processing is not necessary.

        * platform/audio/HRTFElevation.cpp:
        (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
        * platform/audio/HRTFKernel.cpp:
        (WebCore::HRTFKernel::HRTFKernel):
        * platform/audio/HRTFKernel.h:
        (WebCore::HRTFKernel::create):
        (HRTFKernel):

2012-11-19  Adam Barth  <abarth@webkit.org>

        DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
        https://bugs.webkit.org/show_bug.cgi?id=102755

        Reviewed by Sam Weinig.

        WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
        how this compiles.

        * Modules/indexeddb/IDBBackingStore.h:
        (RecordIdentifier):

2012-11-19  Chris Rogers  <crogers@google.com>

        Implement .detune attribute for BiquadFilterNode
        https://bugs.webkit.org/show_bug.cgi?id=102737

        Reviewed by Kenneth Russell.

        Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute

        Tests changed: webaudio/biquad-lowpass.html

        * Modules/webaudio/BiquadDSPKernel.cpp:
        (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
        * Modules/webaudio/BiquadFilterNode.h:
        (WebCore::BiquadFilterNode::detune):
        * Modules/webaudio/BiquadFilterNode.idl:
        * Modules/webaudio/BiquadProcessor.cpp:
        (WebCore::BiquadProcessor::BiquadProcessor):
        (WebCore::BiquadProcessor::checkForDirtyCoefficients):
        * Modules/webaudio/BiquadProcessor.h:
        (WebCore::BiquadProcessor::parameter4):
        (BiquadProcessor):

2012-11-19  Patrick Gansterer  <paroga@webkit.org>

        [WIN] Add WebCore::getRegistryValue()
        https://bugs.webkit.org/show_bug.cgi?id=97828

        Reviewed by Brent Fulgham.

        The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
        Changing the existing files allows us to share more code between WinCE and WinNT in a next step.

        * platform/win/MIMETypeRegistryWin.cpp:
        (WebCore::mimeTypeForExtension):
        (WebCore):
        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
        * platform/win/WindowsExtras.h:
        (WebCore::getRegistryValue):
        (WebCore):
        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::addPluginPathsFromRegistry):
        (WebCore::addWindowsMediaPlayerPluginDirectory):
        (WebCore::addQuickTimePluginDirectory):
        (WebCore::addAdobeAcrobatPluginDirectory):
        (WebCore::addJavaPluginDirectory):

2012-11-19  Alpha Lam  <hclam@chromium.org>

        Not reviewed. Build fix for Chromium.

        Added SkTypes.h includes for Windows.

        * platform/graphics/chromium/ImageDecodingStore.h:
        * platform/graphics/chromium/ImageFrameGenerator.h:
        * platform/graphics/chromium/LazyDecodingPixelRef.h:

2012-11-19  Adam Barth  <abarth@webkit.org>

        [V8] Simplify V8DOMWindowShell::getEntered
        https://bugs.webkit.org/show_bug.cgi?id=102156

        Reviewed by Eric Seidel.

        This patch is an incremental step towards merging
        V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
        up DOM wrappers. In order to merge with the general case, we need to
        get down to calling v8::Context::GetCurrent once, which means we need
        to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.

        As a side-benefit to this change, we can remove some redundant checks
        for isolatedWorldsExist and v8::Context::InContext from callers of
        V8DOMWindowShell::getEntered, including in getCachedWrapper.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
        (WebCore::ScriptController::currentWorldContext):
        * bindings/v8/V8DOMWindowShell.h:
        (WebCore::V8DOMWindowShell::isolated):
        (WebCore::V8DOMWindowShell::perContextData):
        (WebCore::V8DOMWindowShell::world):
        (V8DOMWindowShell):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):
        * bindings/v8/WorldContextHandle.cpp:
        (WebCore::WorldContextHandle::WorldContextHandle):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::dispatchWrapCustom):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::dispatchWrapCustom):
        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
        (WebCore::V8SVGDocument::dispatchWrapCustom):
        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallback):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
        https://bugs.webkit.org/show_bug.cgi?id=102671

        Reviewed by Adam Barth.

        Most part of code generators use 'interface'. The spec uses 'interface'.
        Thus, the IDL parser should use 'interface' instead of 'class'.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ProcessDocument):
        (AddMethodsConstantsAndAttributesFromParentInterfaces):
        (ParseInterface):
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateFunctionCallback):
        * bindings/scripts/IDLParser.pm:
        (Parse):
        (parseModule):
        * bindings/scripts/generate-bindings.pl:

2012-11-19  Eric Carlson  <eric.carlson@apple.com>

        HTMLMediaElement::configureTextTracks should configure all text tracks
        https://bugs.webkit.org/show_bug.cgi?id=102561

        Reviewed by Philippe Normand.

        No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
        (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
        (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
        (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
        * html/HTMLMediaElement.h:

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
        (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
        (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
            "default" argument.
        * html/HTMLTrackElement.h:

        * html/track/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
        * html/track/LoadableTextTrack.h: 
        (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
            can be flagged as default.
        (WebCore::TextTrack::setIsDefault): Ditto.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
        * html/track/TextTrack.h:
        (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
            need know what type of track it is calling.
        (WebCore::TextTrack::setHasBeenConfigured): Ditto.
        (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
            can be "default".
        (WebCore::TextTrack::setIsDefault): Ditto.

2012-11-19  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
        https://bugs.webkit.org/show_bug.cgi?id=102664

        Reviewed by Noam Rosenthal.

        As refactoring Coordinated Graphics in WebKit2, code related to
        TextureMapper is changed.

        No new tests. Refactoring only.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::platformLayerSize):
            We need to know the size of a texture mapper platform layer.
        (WebCore):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
          Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
          lifecycle, TextureMapperSurfaceBackingStore does not need to know
          GraphicsSurfaceToken.
        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (TextureMapperSurfaceBackingStore):
        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
        (WebCore::TextureMapperPlatformLayer::platformLayerSize):

2012-11-19  Alpha Lam  <hclam@chromium.org>

        [chromium] Lazy image decoding without cache
        https://bugs.webkit.org/show_bug.cgi?id=102021

        Reviewed by Stephen White.

        Goal of this change is to make image decoding in ImageFrameGenerator
        completely lazy without caching. Image decoding logic is then removed
        from ImageDecodingStore.

        These methods are removed.
        - ImageDecodingStore::lockPixels
        - ImageDecodingStore::unlockPixels

        Instead image decoding and scaling is done in
        ImageFrameGenerator::decodeAndScale().

        Unit tests are updated:
        DeferredImageDecoderTest::drawIntoSkPicture
        DeferredImageDecoderTest::drawScaledIntoSkPicture

        Also covered by layout tests:
        platform/chromium/virtual/deferred

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
        * platform/graphics/chromium/ImageDecodingStore.h:
        (ImageDecodingStore):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::setData):
        (WebCore::ImageFrameGenerator::decodeAndScale):
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (WebCore::ImageFrameGenerator::create):
        (ImageFrameGenerator):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        * platform/graphics/chromium/LazyDecodingPixelRef.h:
        (LazyDecodingPixelRef):

2012-11-19  Abhishek Arya  <inferno@chromium.org>

        Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
        https://bugs.webkit.org/show_bug.cgi?id=100150

        Reviewed by Ryosuke Niwa.

        RefPtr startDummySpanAncestor and endDummySpanAncestor since
        they can go away inside fixRangeAndApplyInlineStyle call.

        Test: editing/style/apply-style-crash.html

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyInlineStyle):

2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135172.
        http://trac.webkit.org/changeset/135172
        https://bugs.webkit.org/show_bug.cgi?id=102710

        Broke some WebKit2 api tests :( (Requested by japhet on
        #webkit).

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::DocumentLoader):
        (WebCore::DocumentLoader::~DocumentLoader):
        (WebCore::DocumentLoader::finishedLoading):
        (WebCore::DocumentLoader::clearMainResourceLoader):
        (WebCore::DocumentLoader::isLoadingInAPISense):
        (WebCore::DocumentLoader::documentURL):
        (WebCore::DocumentLoader::isLoadingMainResource):
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/DocumentLoader.h:
        (DocumentLoader):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader):
        (WebCore::FrameLoader::init):
        * loader/FrameLoaderStateMachine.cpp:
        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
        * loader/FrameLoaderStateMachine.h:
        * loader/MainResourceLoader.cpp:
        (WebCore::shouldLoadAsEmptyDocument):
        (WebCore):
        (WebCore::MainResourceLoader::continueAfterContentPolicy):
        (WebCore::MainResourceLoader::didReceiveResponse):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::handleEmptyLoad):
        (WebCore::MainResourceLoader::loadNow):
        (WebCore::MainResourceLoader::load):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):

2012-11-19  Tony Chang  <tony@chromium.org>

        Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
        https://bugs.webkit.org/show_bug.cgi?id=102548

        Reviewed by Adam Barth.

        This allows us to use Settings.in to generate the code for this.

        I didn't rename any of the WebKit API methods with similar names because that would
        probably break consumers.  It turns out that the getter is only called from
        Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).

        No new tests, just a refactor.

        * WebCore.exp.in: Remove symbols that are now inlined.
        * WebCore.order: Remove symbols that are now inlined.
        * dom/Document.cpp:
        (WebCore::Document::initSecurityContext): Rename.
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Remove code since it will be generated.
        * page/Settings.h:
        (Settings): Remove code since it will be generated.
        * page/Settings.in: Add entries to be generated.
        * page/SpatialNavigation.cpp:
        (WebCore::isSpatialNavigationEnabled): Fix caller.

2012-11-19  Yael Aharon  <yael.aharon@intel.com>

        [EFL][TexMap] Complie error when considering warnings as errors
        https://bugs.webkit.org/show_bug.cgi?id=102705

        Reviewed by Kenneth Rohde Christiansen.

        Change GaussianKernelHalfWidth to unsigned.

        No new tests.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore):

2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134830.
        http://trac.webkit.org/changeset/134830
        https://bugs.webkit.org/show_bug.cgi?id=102701

        ActiveDOMObject is not applicable to MutationObservers due to
        being tied to a Document (Requested by aklein on #webkit).

        * bindings/js/JSMutationObserverCustom.cpp:
        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallback):
        * dom/MutationObserver.cpp:
        (WebCore::MutationObserver::create):
        (WebCore::MutationObserver::MutationObserver):
        (WebCore::MutationObserver::observationStarted):
        (WebCore::MutationObserver::observationEnded):
        * dom/MutationObserver.h:
        (WebCore):
        * dom/MutationObserver.idl:

2012-11-19  Brady Eidson  <beidson@apple.com>

        NetworkProcess Authentication.
        https://bugs.webkit.org/show_bug.cgi?id=102592

        Reviewed by Alexey Proskuryakov.

        Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.

        Also export some more stuff.

        No new tests (Platform support, no effect in tested configs).

        * WebCore.exp.in:

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
          there is a handle.

2012-11-19  Alec Flett  <alecflett@chromium.org>

        IndexedDB: simplify RecordIdentifier
        https://bugs.webkit.org/show_bug.cgi?id=102018

        Reviewed by Tony Chang.

        Make IDBBackingStore's RecordIdentifier be a simple
        class, existing only as an inline or stack-based instance.
        This makes much of the copy semantics more explicit, and
        removes refcounting from an object that only ever had a refcount
        of 1 or 2.

        No new tests, just a refactor.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBBackingStore::putRecord):
        (WebCore::IDBBackingStore::deleteRecord):
        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::keyExistsInObjectStore):
        (WebCore::IDBBackingStore::putIndexDataForRecord):
        (WebCore::IDBBackingStore::deleteIndexDataForRecord):
        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
        (ObjectStoreCursorImpl):
        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
        (WebCore::IndexKeyCursorImpl::recordIdentifier):
        (WebCore::IndexCursorImpl::recordIdentifier):
        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
        (WebCore::IDBBackingStore::RecordIdentifier::isValid):
        (WebCore::IDBBackingStore::RecordIdentifier::reset):
        (RecordIdentifier):
        (IDBBackingStore):
        (WebCore::IDBBackingStore::Cursor::recordIdentifier):
        (WebCore::IDBBackingStore::Cursor::Cursor):
        (Cursor):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):

2012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>

        Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
        https://bugs.webkit.org/show_bug.cgi?id=100927

        Reviewed by Alexey Proskuryakov.

        This patch adds ParsedContentType class that represents contents of parsed
        content type string. isValidContentType function could be used to check if
        format of the content type string is acorrding to RFC 2616 section 4.2.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/network/MIMEHeader.cpp:
        (WebCore::MIMEHeader::parseHeader):
        * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
        (WebCore):
        (EmptyParsedContentType):
        (WebCore::EmptyParsedContentType::setContentType):
        (WebCore::EmptyParsedContentType::setContentTypeParameter):
        (WebCore::skipSpaces):
        (WebCore::isTokenCharacter):
        (WebCore::parseToken):
        (WebCore::parseQuotedString):
        (WebCore::substringForRange):
        (WebCore::parseContentType):
        (WebCore::isValidContentType):
        (WebCore::ParsedContentType::ParsedContentType):
        (WebCore::ParsedContentType::charset):
        (WebCore::ParsedContentType::parameterValueForName):
        (WebCore::ParsedContentType::parameterCount):
        (WebCore::ParsedContentType::setContentType):
        (WebCore::ParsedContentType::setContentTypeParameter):
        * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
        (WebCore):
        (ParsedContentType):
        (WebCore::ParsedContentType::mimeType):

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: InvalidNodeTypeError
        https://bugs.webkit.org/show_bug.cgi?id=102519

        Reviewed by Kentaro Hara.

        Patch 24 of 25 to update DOMException name to match the spec and Firefox.

        No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.

        * dom/DOMCoreException.cpp:

2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>

        Changing id, className, or attribute should invalidate distribution
        https://bugs.webkit.org/show_bug.cgi?id=100738

        Reviewed by Dimitri Glazkov.

        When id, className, or attribute is changed, we might have to invalidate distribution.
        However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
        to invalidate distribution only if necessary.

        For the code that className is changed, we can share a lot of code between invalidating distribution and
        invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.

        Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
        whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
        shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
        for this purpose.

        We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
        DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
        will be the most affected by this patch. However, it's only 2% performance regression.

        DOM/ModifyAttribute.html
        Before this patch:
                median  stdev    min    max    [ms]
          1st    494.0   3.36  490.0  502.0
          2nd    503.5   3.44  497.0  512.0
          3rd    494.0   3.48  488.0  499.0

        After this patch:
                median  stdev  min      max    [ms]
          1st    504.0   2.00  501.0  509.0
          2nd    505.5   3.08  500.0  513.0
          3rd    507.0   2.32  502.0  510.0

        Tests: fast/dom/shadow/distribution-attribute-modified.html
               fast/dom/shadow/distribution-className-modified.html
               fast/dom/shadow/distribution-id-modified.html
               fast/dom/shadow/reprojection-attribute-modified.html
               fast/dom/shadow/reprojection-className-modified.html
               fast/dom/shadow/reprojection-id-modified.html

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
        (HasSelectorForClassStyleFunctor):
        (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
        (WebCore):
        (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
        (HasSelectorForClassDistributionFunctor):
        (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
        (WebCore::checkFunctorForClassChange):
        (WebCore::checkNeedsStyleInvalidationForClassChange):
        (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
        * dom/Element.h:
        (Element):
        * dom/Node.h:
        (WebCore::Node::isInsertionPoint):
        * html/HTMLElement.h:
        (HTMLElement):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::InsertionPoint):
        * html/shadow/InsertionPoint.h:
        (InsertionPoint):
        (WebCore::isInsertionPoint):
        (WebCore::shadowOfParentForDistribution):
        (WebCore::resolveReprojection):

2012-11-19  Nate Chapin  <japhet@chromium.org>

        Move empty loading to DocumentLoader, simplify FrameLoader::init()
        https://bugs.webkit.org/show_bug.cgi?id=101512

        Reviewed by Adam Barth.

        No new tests, though several outputs changed because we no longer send resource
            load callbacks for empty loads.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::DocumentLoader):
        (WebCore::DocumentLoader::~DocumentLoader):
        (WebCore::DocumentLoader::finishedLoading):
        (WebCore::DocumentLoader::clearMainResourceLoader):
        (WebCore::DocumentLoader::isLoadingInAPISense):
        (WebCore::DocumentLoader::isLoadingMainResource):
        (WebCore::DocumentLoader::maybeLoadEmpty):
        (WebCore):
        (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
             loads directly here.
        * loader/DocumentLoader.h:
        (DocumentLoader):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
            were previously being reset in init(). Given that the FrameLoader is in
            an inconsistent state before init() is called anyway, there doesn't seem
            to be a disadvantage to just initializing them to their post-init() values.
        (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
            doing a bunch of direct calls to functions FrameLoader shouldn't know about.
        * loader/FrameLoaderStateMachine.cpp:
        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
        * loader/FrameLoaderStateMachine.h:
        * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
        (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
            load got deferred, which won't happen now. Return void and always treat
            as returning false.
        * loader/MainResourceLoader.h:
        (MainResourceLoader):

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: TimeoutError
        https://bugs.webkit.org/show_bug.cgi?id=102513

        Reviewed by Kentaro Hara.

        Patch 23 of 25 to update DOMException name to match the spec and Firefox.

        No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.

        * dom/DOMCoreException.cpp:

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: DataCloneError
        https://bugs.webkit.org/show_bug.cgi?id=102521

        Reviewed by Kentaro Hara.

        Patch 25 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-19  Tom Hudson  <tomhudson@chromium.org>

        Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
        https://bugs.webkit.org/show_bug.cgi?id=98660

        Reviewed by Simon Fraser.

        Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
        and paintTranslucentBorderSides() so that we don't do unnecessary work.

        If we can avoid setting up and tearing down an unnecessary transparent layer we save
        30ms on some mobile platforms.

        * rendering/RenderBoxModelObject.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBorder):
        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):

2012-11-19  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
        https://bugs.webkit.org/show_bug.cgi?id=100765

        Reviewed by Dirk Schulze.

        ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
        isn't null, since the caller is expected to ensure as much.  No new tests were
        needed since this is a near-trivial cleanup.

        * rendering/ExclusionShape.cpp:
        (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.

2012-11-19  Sami Kyostila  <skyostil@chromium.org>

        Use device scale factor instead of physical screen DPI for screen DPI
        https://bugs.webkit.org/show_bug.cgi?id=101769

        Reviewed by Adam Barth.

        Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
        the dots per CSS inch[1] value for the "screen" media type. On Chromium these
        functions currently return the physical screen DPI, which is wrong. To fix
        this, we remove both of these functions entirely and make media queries use
        the device scale factor multiplied by 96 on all ports.

        [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0

        * page/Screen.cpp:
        (WebCore::Screen::horizontalDPI):
        (WebCore::Screen::verticalDPI):
        * platform/PlatformScreen.h:
        (WebCore):
        * platform/blackberry/PlatformScreenBlackBerry.cpp:
        * platform/chromium/PlatformScreenChromium.cpp:
        * platform/efl/PlatformScreenEfl.cpp:
        * platform/gtk/PlatformScreenGtk.cpp:
        * platform/mac/PlatformScreenMac.mm:
        * platform/qt/PlatformScreenQt.cpp:
        * platform/win/PlatformScreenWin.cpp:
        * platform/wx/ScreenWx.cpp:

2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>

        Computed grid items' positions shouldn't be using Length
        https://bugs.webkit.org/show_bug.cgi?id=102537

        Reviewed by Tony Chang.

        This change refactors how we store the grid items' position to use
        a new type GridPosition. Length was a temporary type as it supported
        'auto' | <integer> but it was starting to get more and more confusing
        as we were implementing the layout routines.

        No change in behavior.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Added the new file to the build systems.

        * rendering/style/RenderStyle.h:
        Updated after the type change. Also made some getters
        return a const reference instead of forcing a copy.

        * rendering/style/StyleGridItemData.h:
        (StyleGridItemData):
        Ditto, also removed a comment about adding a new type.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridPosition):
        * css/StyleResolver.cpp:
        (WebCore::createGridPosition):
        (WebCore::StyleResolver::applyProperty):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::resolveGridPosition):
        Updated these sites after switching to GridPosition.

        * rendering/RenderGrid.h:
        Changed resolveGridPosition signature: it now takes a GridPosition.

        * rendering/style/GridPosition.h: Added.
        (WebCore::GridPosition::GridPosition):
        Default constructor, creates an 'auto' position.

        (WebCore::GridPosition::isPositive):
        (WebCore::GridPosition::type):
        (WebCore::GridPosition::isAuto):
        (WebCore::GridPosition::setIntegerPosition):
        (WebCore::GridPosition::integerPosition):
        Helper functions.

        (WebCore::GridPosition::operator==):
        Required comparison operator for StyleGridItemData.

2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        Apply the resolved viewport rules
        https://bugs.webkit.org/show_bug.cgi?id=95964

        Reviewed by Kenneth Rohde Christiansen.

        This patch implements the CSS Device Adaptation specification. The
        WebKit implementation relies on the already implemented Viewport Meta
        infrastructure to notify the browser of viewport changes.

        The implementation was tests with success on the Qt and EFL ports, but
        basically every port supporting Viewport Meta should be fine.

        The usage of @-webkit-viewport inside media queries (more tests coming
        to map all the corner cases) is currently limited when the media query
        depends on the viewport dimensions itself. Defining the width and height
        based on screen size will fail on ports reporting the screen
        size as the size of the browser window instead of the device screen.

        Tests: css3/device-adapt/opera/cascading-001.xhtml
               css3/device-adapt/opera/cascading-002.xhtml
               css3/device-adapt/opera/cascading-003.xhtml
               css3/device-adapt/opera/cascading-004.xhtml
               css3/device-adapt/opera/constrain-001.xhtml
               css3/device-adapt/opera/constrain-002.xhtml
               css3/device-adapt/opera/constrain-003.xhtml
               css3/device-adapt/opera/constrain-004.xhtml
               css3/device-adapt/opera/constrain-005.xhtml
               css3/device-adapt/opera/constrain-006.xhtml
               css3/device-adapt/opera/constrain-007.xhtml
               css3/device-adapt/opera/constrain-008.xhtml
               css3/device-adapt/opera/constrain-009.xhtml
               css3/device-adapt/opera/constrain-010.xhtml
               css3/device-adapt/opera/constrain-011.xhtml
               css3/device-adapt/opera/constrain-012.xhtml
               css3/device-adapt/opera/constrain-013.xhtml
               css3/device-adapt/opera/constrain-014.xhtml
               css3/device-adapt/opera/constrain-015.xhtml
               css3/device-adapt/opera/constrain-016.xhtml
               css3/device-adapt/opera/constrain-017.xhtml
               css3/device-adapt/opera/constrain-020.xhtml
               css3/device-adapt/opera/syntax-001.xhtml
               css3/device-adapt/opera/syntax-002.xhtml
               css3/device-adapt/opera/syntax-003.xhtml

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/RuleSet.cpp:
        (WebCore::RuleSet::addRulesFromSheet):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::appendAuthorStyleSheets):
        (WebCore::StyleResolver::~StyleResolver):
        * css/StyleResolver.h:
        (StyleResolver):
        (WebCore::StyleResolver::viewportStyleResolver):
        * css/ViewportStyleResolver.cpp: Added.
        (WebCore):
        (WebCore::ViewportStyleResolver::ViewportStyleResolver):
        (WebCore::ViewportStyleResolver::addViewportRule):
        (WebCore::ViewportStyleResolver::clearDocument):
        (WebCore::ViewportStyleResolver::resolve):
        (WebCore::ViewportStyleResolver::getViewportArgumentValue):
        * css/ViewportStyleResolver.h: Added.
        (WebCore):
        (ViewportStyleResolver):
        (WebCore::ViewportStyleResolver::create):
        * dom/Document.h:
        (WebCore::Document::setViewportArguments):
        * dom/ViewportArguments.cpp:
        (WebCore::compareIgnoringAuto):
        (WebCore):
        (WebCore::ViewportArguments::resolve):
        * dom/ViewportArguments.h:
        (ViewportAttributes):
        (WebCore::ViewportArguments::ViewportArguments):
        (ViewportArguments):
        (WebCore::ViewportArguments::operator==):

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: SecurityError
        https://bugs.webkit.org/show_bug.cgi?id=102437

        Reviewed by Kentaro Hara.

        Patch 18 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: URLMismatchError
        https://bugs.webkit.org/show_bug.cgi?id=102511

        Reviewed by Kentaro Hara.

        Patch 21 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:
        (WebCore):

2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>

        Add PROXIMITY_EVENTS feature
        https://bugs.webkit.org/show_bug.cgi?id=102658

        Reviewed by Kentaro Hara.

        Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.

        No new tests. Just add a new feature.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.features.am:

2012-11-19  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Dim a component's subitems' color in NMI snapshot
        https://bugs.webkit.org/show_bug.cgi?id=102224

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
        * inspector/front-end/nativeMemoryProfiler.css:
        (.native-snapshot-view .data-grid .dimmed div.size-bar):

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: NetworkError
        https://bugs.webkit.org/show_bug.cgi?id=102503

        Reviewed by Kentaro Hara.

        Patch 19 of 25 to update DOMException name to match the spec and Firefox.

        No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.

        * dom/DOMCoreException.cpp:

2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>

        webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
        https://bugs.webkit.org/show_bug.cgi?id=102649

        Reviewed by Adam Barth.

        AudioContext uses m_document only as a pointer to ScriptExecutionContext.
        It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
        The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.

        No new tests as there is no new functionality.

        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::looping):
        (WebCore::AudioBufferSourceNode::setLooping):
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::AudioContext):
        (WebCore::AudioContext::stop):
        (WebCore::AudioContext::scriptExecutionContext):
        (WebCore::AudioContext::fireCompletionEvent):
        (WebCore::AudioContext::reportMemoryUsage):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/ScriptProcessorNode.cpp:
        (WebCore::ScriptProcessorNode::fireProcessEvent):
        (WebCore::ScriptProcessorNode::scriptExecutionContext):

2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>

        webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
        https://bugs.webkit.org/show_bug.cgi?id=102356

        Reviewed by Adam Barth.

        A clean-up code was moved from uninitialize to clear method.
        AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
        m_isStopScheduled filters out second ActiveDOMObject::stop call.
        markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
        adoptRef was added in createOfflineContext method.
        A guard was added into deleteMarkedNodes.

        Test: inspector-protocol/nmi-webaudio-leak-test.html

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createOfflineContext):
        (WebCore::AudioContext::AudioContext):
        (WebCore::AudioContext::constructCommon):
        (WebCore::AudioContext::~AudioContext):
        (WebCore::AudioContext::clear):
        (WebCore::AudioContext::uninitialize):
        (WebCore::AudioContext::stopDispatch):
        (WebCore::AudioContext::stop):
        (WebCore::AudioContext::markForDeletion):
        (WebCore::AudioContext::scheduleNodeDeletion):
        (WebCore::AudioContext::deleteMarkedNodes):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallback):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:
        (PlatformMemoryInstrumentation):
        (WebCore):

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: QuotaExceededError
        https://bugs.webkit.org/show_bug.cgi?id=102512

        Reviewed by Kentaro Hara.

        Patch 22 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-19  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: AbortError
        https://bugs.webkit.org/show_bug.cgi?id=102508

        Reviewed by Kentaro Hara.

        Patch 20 of 25 to update DOMException name to match the spec and Firefox.

        No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.

        * dom/DOMCoreException.cpp:

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r135111.
        http://trac.webkit.org/changeset/135111
        https://bugs.webkit.org/show_bug.cgi?id=102356

        The patch caused crashes in several layout tests

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createOfflineContext):
        (WebCore::AudioContext::AudioContext):
        (WebCore::AudioContext::constructCommon):
        (WebCore::AudioContext::~AudioContext):
        (WebCore::AudioContext::uninitialize):
        (WebCore::AudioContext::uninitializeDispatch):
        (WebCore::AudioContext::stop):
        (WebCore::AudioContext::markForDeletion):
        (WebCore::AudioContext::scheduleNodeDeletion):
        (WebCore::AudioContext::deleteMarkedNodes):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallback):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r135116.
        http://trac.webkit.org/changeset/135116
        https://bugs.webkit.org/show_bug.cgi?id=102649

        Revert this patch to revert r135111, which caused crashes in
        several layout tests

        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::looping):
        (WebCore::AudioBufferSourceNode::setLooping):
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::AudioContext):
        (WebCore::AudioContext::stop):
        (WebCore::AudioContext::document):
        (WebCore):
        (WebCore::AudioContext::hasDocument):
        (WebCore::AudioContext::scriptExecutionContext):
        (WebCore::AudioContext::fireCompletionEvent):
        (WebCore::AudioContext::reportMemoryUsage):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/ScriptProcessorNode.cpp:
        (WebCore::ScriptProcessorNode::fireProcessEvent):
        (WebCore::ScriptProcessorNode::scriptExecutionContext):

2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
        https://bugs.webkit.org/show_bug.cgi?id=102673

        Reviewed by Vsevolod Vlasov.

        DebuggerScriptMapping calls public method "addScript" not defined
        in SourceMapping interface.

        To make things clear I've added ScriptSourceMapping interface that
        extends SourceMapping interface by adding "addScript" method.

        * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
        * inspector/front-end/CompilerScriptMapping.js:
        Updated "@implements" to ScriptSourceMapping.
        * inspector/front-end/ResourceScriptMapping.js: Ditto.
        * inspector/front-end/ScriptSnippetModel.js: Ditto.
        * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
        Removed useless code.

2012-11-19  Tim Horton  <timothy_horton@apple.com>

        Unreviewed, untested build fix.

        * bindings/scripts/IDLParser.pm:
        (parseModule):

2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>

        [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
        https://bugs.webkit.org/show_bug.cgi?id=102303

        Reviewed by Alexis Menard.

        Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
        into the isValidKeywordPropertyAndValue function, like the same kind of properties.
        This will help speed wise in JS.

        No new functionality, no new tests.

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):

2012-11-19  Keishi Hattori  <keishi@webkit.org>

        REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
        https://bugs.webkit.org/show_bug.cgi?id=102660

        Reviewed by Kent Tamura.

        The calendar picker used to animate when you press 't'.

        No new tests.

        * Resources/pagepopups/calendarPicker.js:
        (DaysTable.prototype.selectRange):

2012-11-19  Kent Tamura  <tkent@chromium.org>

        input.value="" should clear date/time input elements with partial values
        https://bugs.webkit.org/show_bug.cgi?id=102645

        Reviewed by Kentaro Hara.

        Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
               fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
               fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
               fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
               fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
        If the new value is an empty string and sub-fields has values, we should
        update the UI value to the empty state.
        * html/DateTimeFieldsState.h:
        (WebCore::DateTimeFieldsState::hasAnyValue):
        Added. It returns true if one or more sub-fields are not empty.

2012-11-19  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
        https://bugs.webkit.org/show_bug.cgi?id=102522

        Reviewed by Yury Semikhatsky.

        When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
        Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
        Drive-by: add more typification for the JS compiler.
        Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        Remove IDLStructure.pm
        https://bugs.webkit.org/show_bug.cgi?id=102642

        Reviewed by Adam Barth.

        Previously IDLStructure.pm was full of regular expressions to
        parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
        just contains several data structures for the IDL parser. We can
        move them to IDLParser.pm and thus remove IDLStructure.pm.

        No tests. No change in generated code.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.vcproj/MigrateScripts:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/IDLParser.pm:
        (Parse):
        (parseInterface):
        (parseException):
        (parseConst):
        (parseAttributeRest):
        (parseOperationRest):
        (parseOptionalOrRequiredArgument):
        (parseExceptionField):
        (parseInterfaceOld):
        (parseExceptionOld):
        (parseAttributeRestOld):
        (applyExtendedAttributeList):
        * bindings/scripts/IDLStructure.pm: Removed.

2012-11-19  Alexei Filippov  <alph@chromium.org>

        Web Inspector: refine time and bytes output formatting
        https://bugs.webkit.org/show_bug.cgi?id=102265

        Reviewed by Yury Semikhatsky.

        Add a space between number and unit, otherwise it's hard to read things like 88B.
        Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/CookiesTable.js:
        (WebInspector.CookiesTable.prototype._createGridNode):
        * inspector/front-end/UIUtils.js:
        (Number.secondsToString):
        (Number.bytesToString):

2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=102383

        Reviewed by Yury Semikhatsky.

        Fixed string presentation of event.

        * inspector/front-end/TimelinePresentationModel.js: Fixed string.

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        Remove IDLStructure.pm
        https://bugs.webkit.org/show_bug.cgi?id=102642

        Reviewed by Adam Barth.

        Previously IDLStructure.pm was full of regular expressions to
        parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
        just contains several data structures for the IDL parser. We can
        move them to IDLParser.pm and thus remove IDLStructure.pm.

        No tests. No change in generated code.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.vcproj/MigrateScripts:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/IDLParser.pm:
        (Parse):
        (parseInterface):
        (parseException):
        (parseConst):
        (parseAttributeRest):
        (parseOperationRest):
        (parseOptionalOrRequiredArgument):
        (parseExceptionField):
        (parseInterfaceOld):
        (parseExceptionOld):
        (parseAttributeRestOld):
        (applyExtendedAttributeList):
        * bindings/scripts/IDLStructure.pm: Removed.

2012-11-19  Alexei Filippov  <alph@chromium.org>

        Web Inspector: refine time and bytes output formatting
        https://bugs.webkit.org/show_bug.cgi?id=102265

        Reviewed by Yury Semikhatsky.

        Add a space between number and unit, otherwise it's hard to read things like 88B.
        Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/CookiesTable.js:
        (WebInspector.CookiesTable.prototype._createGridNode):
        * inspector/front-end/UIUtils.js:
        (Number.secondsToString):
        (Number.bytesToString):

2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=102383

        Reviewed by Yury Semikhatsky.

        Fixed string presentation of event.

        * inspector/front-end/TimelinePresentationModel.js: Fixed string.

2012-11-19  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r135114.
        http://trac.webkit.org/changeset/135114
        https://bugs.webkit.org/show_bug.cgi?id=102642

        it broke Qt build

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.vcproj/MigrateScripts:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/IDLParser.pm:
        (Parse):
        (parseInterface):
        (parseException):
        (parseConst):
        (parseAttributeRest):
        (parseOperationRest):
        (parseOptionalOrRequiredArgument):
        (parseExceptionField):
        (parseInterfaceOld):
        (parseExceptionOld):
        (parseAttributeRestOld):
        (applyExtendedAttributeList):
        * bindings/scripts/IDLStructure.pm: Added.

2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed inspector closure compilation fix.

        * inspector/front-end/ObjectPropertiesSection.js:
        * inspector/front-end/externs.js:

2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>

        webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
        https://bugs.webkit.org/show_bug.cgi?id=102649

        Reviewed by Adam Barth.

        AudioContext uses m_document only as a pointer to ScriptExecutionContext.
        It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
        The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.

        No new tests as there is no new functionality.

        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::looping):
        (WebCore::AudioBufferSourceNode::setLooping):
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::AudioContext):
        (WebCore::AudioContext::stop):
        (WebCore::AudioContext::fireCompletionEvent):
        (WebCore::AudioContext::reportMemoryUsage):
        * Modules/webaudio/AudioContext.h:
        (WebCore::AudioContext::scriptExecutionContext):
        (AudioContext):
        * Modules/webaudio/ScriptProcessorNode.cpp:
        (WebCore::ScriptProcessorNode::fireProcessEvent):
        (WebCore::ScriptProcessorNode::scriptExecutionContext):

2012-11-18  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove unused variables from CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102648

        Reviewed by Adam Barth.

        No tests. No change in generated code.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateInterface):
        (GenerateHeader):
        (GetInternalFields):
        (GenerateNormalAttrGetter):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementationCustomCall):
        (GenerateFunctionCallString):
        (CreateCustomSignature):
        (GetContextEnableFunction):

2012-11-18  Kentaro Hara  <haraken@chromium.org>

        Remove IDLStructure.pm
        https://bugs.webkit.org/show_bug.cgi?id=102642

        Reviewed by Adam Barth.

        Previously IDLStructure.pm was full of regular expressions to
        parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
        just contains several data structures for the IDL parser. We can
        move them to IDLParser.pm and thus remove IDLStructure.pm.

        No tests. No change in generated code.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.vcproj/MigrateScripts:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/IDLParser.pm:
        (Parse):
        (parseInterface):
        (parseException):
        (parseConst):
        (parseAttributeRest):
        (parseOperationRest):
        (parseOptionalOrRequiredArgument):
        (parseExceptionField):
        (parseInterfaceOld):
        (parseExceptionOld):
        (parseAttributeRestOld):
        (applyExtendedAttributeList):
        * bindings/scripts/IDLStructure.pm: Removed.

2012-11-18  Kentaro Hara  <haraken@chromium.org>

        [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102639

        Reviewed by Adam Barth.

        We can replace hard-coded "V8${interfaceName}" with $v8Interface.

        No tests. No change in generated code.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateFunctionCallback):
        (GenerateNamedConstructorCallback):
        (GenerateImplementationIndexer):
        (GenerateImplementationNamedPropertyGetter):
        (GenerateImplementation):

2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>

        webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
        https://bugs.webkit.org/show_bug.cgi?id=102356

        Reviewed by Adam Barth.

        A clean-up code was moved from uninitialize to clear method.
        AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
        m_isStopScheduled filters out second ActiveDOMObject::stop call.
        markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
        adoptRef was added in createOfflineContext method.

        Test: inspector-protocol/nmi-webaudio-leak-test.html

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createOfflineContext):
        (WebCore::AudioContext::AudioContext):
        (WebCore::AudioContext::constructCommon):
        (WebCore::AudioContext::~AudioContext):
        (WebCore::AudioContext::clear):
        (WebCore::AudioContext::uninitialize):
        (WebCore::AudioContext::stopDispatch):
        (WebCore::AudioContext::stop):
        (WebCore::AudioContext::markForDeletion):
        (WebCore::AudioContext::scheduleNodeDeletion):
        (WebCore::AudioContext::deleteMarkedNodes):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        (WebCore::V8AudioContext::constructorCallback):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:
        (PlatformMemoryInstrumentation):
        (WebCore):

2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        min/max/step support for calendar picker on datetime/datetime-local
        https://bugs.webkit.org/show_bug.cgi?id=102628

        Reviewed by Kent Tamura.

        Gray out dates with no allowed values on calendar picker for datetime/datetime-local
        when values are limited by min/max/step attributes.

        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html

        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker.prototype._stepMismatch):
        Returns true iff there are any allowed values in the given day.

2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>

        Remove non-existent directories from the make system
        https://bugs.webkit.org/show_bug.cgi?id=102632

        Reviewed by Adam Barth.

        Remove (non-existent) symbian references from the exclude list in gyp project files.

        No new tests as there is no new functionality.

        * WebCore.gyp/WebCore.gyp:

2012-11-18  Patrick Gansterer  <paroga@webkit.org>

        [WIN] Add a IMLangFontLinkType typedef
        https://bugs.webkit.org/show_bug.cgi?id=102584

        Reviewed by Brent Fulgham.

        Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.

        * platform/graphics/FontCache.h:
        (WebCore):
        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::getFontLinkInterface):
        (WebCore::getCJKCodePageMasks):
        (WebCore::createMLangFont):
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::containsCharacters):
        * platform/graphics/wince/FontCacheWinCE.cpp:
        (WebCore):
        (WebCore::FontCache::getFontLinkInterface):
        (WebCore::getCJKCodePageMasks):
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/wince/FontPlatformData.cpp:
        (WebCore::FontFamilyCodePageInfo::codePages):
        (WebCore::FixedSizeFontData::create):
        * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
        (WebCore::GlyphPage::fill):

2012-11-18  Mike West  <mkwst@chromium.org>

        Web Inspector: Remove unused ConsoleMessage constructor.
        https://bugs.webkit.org/show_bug.cgi?id=102590

        Reviewed by Brent Fulgham.

        We currently have a ConsoleMessage constructor that's unused. Let's
        kill it.

        * inspector/ConsoleMessage.cpp:
        * inspector/ConsoleMessage.h:
        (ConsoleMessage):
            Removing an unused constructor variant.

2012-11-18  Andreas Kling  <akling@apple.com>

        StyledElement: Make handling the "style" attribute a litte faster.
        <http://webkit.org/b/102623>

        Reviewed by Ojan Vafai.

        We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
        by hoisting the parseAttribute() logic up into attributeChanged().
        Did the same thing with Element::parseAttribute() for consistency.

        Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        * dom/Element.h:
        (WebCore::Element::parseAttribute):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        * dom/StyledElement.h:
        (StyledElement):

2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>

        [CMake] Consolidate common input files
        https://bugs.webkit.org/show_bug.cgi?id=101632

        Reviewed by Rob Buis.

        Consolidate and sort the list of files, move common source files
        into CMakeLists.txt from the port specific files.

        No new tests as there is no new functionality.

        * CMakeLists.txt:
        * PlatformBlackBerry.cmake:
        * PlatformEfl.cmake:
        * PlatformWinCE.cmake:

2012-11-18  Andreas Kling  <akling@apple.com>

        Tighten small SharedBuffers by reserving the exact amount of space needed.
        <http://webkit.org/b/102625>

        Reviewed by Anders Carlsson.

        When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
        amount of space needed instead of leaving it to Vector<char>::append().

        1.86MB progression on Membuster3.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::append):

2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>

        Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
        https://bugs.webkit.org/show_bug.cgi?id=101311

        Reviewed by Darin Adler.

        Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
        and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
        there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
        getter and namedItem return exactly one node or null as specified in HTML5:
        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0

        Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
        a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.

        Also got rid of Document::objects since it's not exposed in IDL or called anywhere.

        Test: fast/dom/html-collections-namedItem.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * UseJSC.cmake:
        * UseV8.cmake:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSHTMLAllCollectionCustom.cpp:
        (WebCore::getNamedItems):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
        (WebCore::toJS):
        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
        (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
        (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
        (WebCore::JSHTMLFormControlsCollection::nameGetter):
        (WebCore::JSHTMLFormControlsCollection::namedItem):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
        This is a bug. It should be a live NodeList instead.
        (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
        (WebCore::JSHTMLOptionsCollection::nameGetter):
        (WebCore::JSHTMLOptionsCollection::namedItem):
        * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
        * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
        (WebCore::getNamedItems): Added a comment about how we should be returning
        a HTMLCollection when there are multiple matches.
        (WebCore::getItem):
        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
        (WebCore::V8HTMLAllCollection::namedItemCallback):
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
        (WebCore::V8HTMLCollection::namedPropertyGetter):
        (WebCore::toV8):
        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
        (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
        (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
        (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
        This is a bug. It should be a live NodeList instead.
        (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
        (WebCore::V8HTMLOptionsCollection::namedItemCallback):
        * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
        * dom/Document.h:
        (Document):
        * dom/Element.cpp:
        (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
        a HTMLFormControlsCollection instead of a HTMLCollection.
        * html/CollectionType.h:
        * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
        * html/HTMLFieldSetElement.cpp:
        * html/HTMLFieldSetElement.h:
        * html/HTMLFormCollection.cpp: Removed.
        * html/HTMLFormCollection.h: Removed.
        * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
        (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
        (WebCore::HTMLFormControlsCollection::create):
        (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
        (WebCore::HTMLFormControlsCollection::formControlElements):
        (WebCore::HTMLFormControlsCollection::formImageElements):
        (WebCore::HTMLFormControlsCollection::virtualItemAfter):
        (WebCore::HTMLFormControlsCollection::namedItem):
        (WebCore::HTMLFormControlsCollection::updateNameCache):
        * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
        (HTMLFormControlsCollection):
        * html/HTMLFormControlsCollection.idl: Added.
        * html/HTMLFormElement.cpp:
        * html/HTMLFormElement.h:
        * html/HTMLOptionsCollection.idl:

2012-11-18  Kentaro Hara  <haraken@chromium.org>

        [V8] Rename $className to $v8InterfaceName
        https://bugs.webkit.org/show_bug.cgi?id=102487

        Reviewed by Adam Barth.

        In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
        We should rename $className to $v8InterfaceName. Also we can
        remove GetCallbackClassName().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GetHeaderClassInclude):
        (GenerateDomainSafeFunctionGetter):
        (GenerateDomainSafeFunctionSetter):
        (GenerateParametersCheck):
        (GenerateImplementation):
        (GenerateHeaderContentHeader):
        (GenerateImplementationContentHeader):
        (GenerateCallbackHeader):
        (GenerateCallbackImplementation):
        (GenerateToV8Converters):
        (GetPassRefPtrType):

2012-11-18  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102499

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateParametersCheckExpression):
        (GenerateParametersCheck):
        (GenerateFunctionCallString):
        (GetNativeTypeFromSignature):
        (TranslateParameter):
        (TypeCanFailConversion):
        (JSValueToNative):
        (NativeToJSValue):

2012-11-18  Kentaro Hara  <haraken@chromium.org>

        Remove GenerateModule() from all code generators
        https://bugs.webkit.org/show_bug.cgi?id=102490

        Reviewed by Adam Barth.

        WebKit IDL files no longer support modules. The Web IDL spec
        no longer supports modules. We can remove it from code generators.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ProcessDocument):
        * bindings/scripts/CodeGeneratorCPP.pm:
        * bindings/scripts/CodeGeneratorGObject.pm:
        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorObjC.pm:
        * bindings/scripts/CodeGeneratorV8.pm:

2012-11-18  Kentaro Hara  <haraken@chromium.org>

        [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102497

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateDomainSafeFunctionGetter):
        (GenerateNormalAttrGetter):
        (GenerateFunctionCallString):

2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r135074.
        http://trac.webkit.org/changeset/135074
        https://bugs.webkit.org/show_bug.cgi?id=102619

        Made most layout tests crash. (Requested by rakuco on
        #webkit).

        * PlatformEfl.cmake:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::create):
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):
        (WebCore::GraphicsContext3D::makeContextCurrent):
        (WebCore::GraphicsContext3D::setContextLostCallback):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::createSurface):
        (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
        (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
        (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):
        * platform/graphics/opengl/GLDefs.h: Removed.
        * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
        * platform/graphics/opengl/GLPlatformContext.h: Removed.
        * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
        * platform/graphics/opengl/GLPlatformSurface.h: Removed.
        * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
        * platform/graphics/surfaces/glx/GLXContext.h: Removed.
        * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
        * platform/graphics/surfaces/glx/GLXSurface.h: Removed.

2012-11-18  Antti Koivisto  <antti@apple.com>

        REGRESSION(r129644): User StyleSheet not applying
        https://bugs.webkit.org/show_bug.cgi?id=102110

        Reviewed by Andreas Kling.

        Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
        such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
        
        The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
        It also generally cleans up the code around injected and user stylesheets.

        Tests: userscripts/user-script-and-stylesheet.html
               userscripts/user-stylesheet-invalidate.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
        (WebCore::collectCSSOMWrappers):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/Document.cpp:
        (WebCore::Document::setCompatibilityMode):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
        (WebCore):
        (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
        (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
        (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
        (WebCore::DocumentStyleSheetCollection::addUserSheet):
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.h:
        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
        (DocumentStyleSheetCollection):
        * page/PageGroup.cpp:
        (WebCore::PageGroup::addUserStyleSheetToWorld):
        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
        (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
        (WebCore::PageGroup::removeAllUserContent):
        (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
        * page/PageGroup.h:
        (PageGroup):

2012-11-18  Adam Barth  <abarth@webkit.org>

        Unreviewed.

        Update run-bindings-tests baselines after
        http://trac.webkit.org/changeset/135063

        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        (JSTestActiveDOMObjectOwner):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        (JSTestCustomNamedGetterOwner):
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        (JSTestEventConstructorOwner):
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        (JSTestEventTargetOwner):
        * bindings/scripts/test/JS/JSTestException.h:
        (JSTestExceptionOwner):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (JSTestInterfaceOwner):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        (JSTestMediaQueryListListenerOwner):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        (JSTestNamedConstructorOwner):
        * bindings/scripts/test/JS/JSTestObj.h:
        (JSTestObjOwner):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        (JSTestOverloadedConstructorsOwner):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (JSTestSerializedScriptValueInterfaceOwner):

2012-11-18  Simon Fraser  <simon.fraser@apple.com>

        Make convertToLayerCoords iterative, rather than recursive
        https://bugs.webkit.org/show_bug.cgi?id=102618

        Reviewed by Antti Koivisto.

        RenderLayer::convertToLayerCoords() is a hot function on profiles.
        Change it to be iterative, rather than recursive, so that the
        bulk of the function can be inlined.
        
        Was tested with assertions against the old code during development.

        * rendering/RenderLayer.cpp:
        (WebCore::accumulateOffsetTowardsAncestor):
        (WebCore::RenderLayer::convertToLayerCoords):

2012-11-18  Andreas Kling  <akling@apple.com>

        Inline the StyledElement constructor.
        <http://webkit.org/b/102615>

        Reviewed by Antti Koivisto.

        StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
        Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.

        * dom/StyledElement.cpp:
        * dom/StyledElement.h:
        (WebCore::StyledElement::StyledElement):

2012-11-18  Andreas Kling  <akling@apple.com>

        HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
        <http://webkit.org/b/102614>

        Reviewed by Anders Carlsson.

        When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
        to know if it's present. If it's not present, 'value' argument will be null.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL] Refactor GraphicsContext3DEFL.
        https://bugs.webkit.org/show_bug.cgi?id=101291.

        Reviewed by Kenneth Rohde Christiansen.

        GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
        GraphicsContext3DPrivate needs to handle the following cases:
        1) To provide an off-screen buffer for accelerated composition.
        2) Render to a current context.
        3) To render directly to host window. (currently not supported.)

        Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
        the other supported case. Evas acts as a glue layer to provide us with appropriate
        GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
        However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.

        It would be for our advantage to be able to take in to use any optimisations/extensions
        provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
        This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
        and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
        Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
        GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.

        GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
        It uses GL extension ARB_robustness (when available) to detect driver resets.
        It defines a simple interface for things that need to be handled by the context. Support
        for multi-threaded usage and shared context-group would be added later.

        GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
        It defines a simple interface for things that need to be handled by the surface.
        It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
        can be used to render into this off-screen area.

        This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.

        * PlatformEfl.cmake:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::create):
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):
        (WebCore::GraphicsContext3D::makeContextCurrent):
        (WebCore::GraphicsContext3D::setContextLostCallback):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (GraphicsContext3DPrivate::releaseResources):
        (GraphicsContext3DPrivate::setContextLostCallback):
        (GraphicsContext3DPrivate::platformGraphicsContext3D):
        (GraphicsContext3DPrivate::makeContextCurrent):
        (GraphicsContext3DPrivate::createGraphicsSurfaces):
        (GraphicsContext3DPrivate::copyToGraphicsSurface):
        (GraphicsContext3DPrivate::graphicsSurfaceToken):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):
        * platform/graphics/opengl/GLDefs.h: Added.
        (WebCore):
        * platform/graphics/opengl/GLPlatformContext.cpp: Added.
        (WebCore):
        (WebCore::GLPlatformContext::createContext):
        (WebCore::GLPlatformContext::createOffScreenContext):
        (WebCore::GLPlatformContext::createCurrentContextWrapper):
        (WebCore::GLPlatformContext::GLPlatformContext):
        (WebCore::GLPlatformContext::~GLPlatformContext):
        (WebCore::GLPlatformContext::makeCurrent):
        (WebCore::GLPlatformContext::isValid):
        (WebCore::GLPlatformContext::releaseCurrent):
        (WebCore::GLPlatformContext::handle):
        (WebCore::GLPlatformContext::isCurrentContext):
        (WebCore::GLPlatformContext::initialize):
        (WebCore::GLPlatformContext::getCurrent):
        (WebCore::GLPlatformContext::platformMakeCurrent):
        (WebCore::GLPlatformContext::platformReleaseCurrent):
        (WebCore::GLPlatformContext::destroy):
        * platform/graphics/opengl/GLPlatformContext.h: Added.
        (WebCore):
        (GLPlatformContext):
        * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
        (WebCore):
        (WebCore::GLPlatformSurface::createOffscreenSurface):
        (WebCore::GLPlatformSurface::createTransportSurface):
        (WebCore::GLPlatformSurface::GLPlatformSurface):
        (WebCore::GLPlatformSurface::~GLPlatformSurface):
        (WebCore::GLPlatformSurface::handle):
        (WebCore::GLPlatformSurface::geometry):
        (WebCore::GLPlatformSurface::sharedDisplay):
        (WebCore::GLPlatformSurface::configuration):
        (WebCore::GLPlatformSurface::swapBuffers):
        (WebCore::GLPlatformSurface::copyTexture):
        (WebCore::GLPlatformSurface::updateContents):
        (WebCore::GLPlatformSurface::setGeometry):
        (WebCore::GLPlatformSurface::destroy):
        * platform/graphics/opengl/GLPlatformSurface.h: Added.
        (WebCore):
        (GLPlatformSurface):
            GLXOffScreenContext creates an off-screen context. This is used when
            renderstyle is RenderOffscreen.
            It uses GL extension GLX_ARB_create_context (when available)
            to create a context else falls back to use glXCreateNewContext.
        * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
        (WebCore):
        (WebCore::initializeARBExtensions):
        (WebCore::GLXOffScreenContext::GLXOffScreenContext):
        (WebCore::GLXOffScreenContext::initialize):
        (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
        (WebCore::GLXOffScreenContext::isCurrentContext):
        (WebCore::GLXOffScreenContext::platformMakeCurrent):
        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
        (WebCore::GLXOffScreenContext::freeResources):
        (WebCore::GLXOffScreenContext::destroy):
            GLXCurrentContextWrapper acts as a wrapper for current context.
            This is used when renderstyle is RenderToCurrentGLContext.
        * platform/graphics/surfaces/glx/GLXContext.h: Added.
        (WebCore):
        (GLXCurrentContextWrapper):
        (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
        (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
        (GLXOffScreenContext):
        * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
        (WebCore):
        (WebCore::GLXSurface::GLXSurface):
        (WebCore::GLXSurface::~GLXSurface):
        (WebCore::GLXSurface::visualInfo):
        (WebCore::GLXSurface::xWindow):
        (WebCore::GLXSurface::pBufferConfiguration):
        (WebCore::GLXSurface::transportSurfaceConfiguration):
        (WebCore::GLXSurface::isXRenderExtensionSupported):
            GLXTransportSurface creates Window and uses it as an off-screen surface.
            Any GLContext that was created with respect to configuration can be used
            to render into this.
            This is used when contents of the buffer are to be provided to UI Process
            for display.
        (WebCore::GLXTransportSurface::GLXTransportSurface):
        (WebCore::GLXTransportSurface::~GLXTransportSurface):
        (WebCore::GLXTransportSurface::configuration):
        (WebCore::GLXTransportSurface::swapBuffers):
        (WebCore::GLXTransportSurface::setGeometry):
        (WebCore::GLXTransportSurface::initialize):
        (WebCore::GLXTransportSurface::destroy):
        (WebCore::GLXTransportSurface::freeResources):
           GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
           Any GLContext that was created with respect to configuration can be used
           to render into this.
        (WebCore::GLXPBuffer::GLXPBuffer):
        (WebCore::GLXPBuffer::~GLXPBuffer):
        (WebCore::GLXPBuffer::initialize):
        (WebCore::GLXPBuffer::configuration):
        (WebCore::GLXPBuffer::destroy):
        (WebCore::GLXPBuffer::freeResources):
        * platform/graphics/surfaces/glx/GLXSurface.h: Added.
        (WebCore):
            Creates X resources which are shared between surface and context.
        (SharedX11Resources):
        (WebCore::SharedX11Resources::create):
        (WebCore::SharedX11Resources::deref):
        (WebCore::SharedX11Resources::getXWindow):
        (WebCore::SharedX11Resources::display):
        (WebCore::SharedX11Resources::visualInfo):
        (WebCore::SharedX11Resources::createConfig):
        (WebCore::SharedX11Resources::pBufferContextConfig):
        (WebCore::SharedX11Resources::surfaceContextConfig):
        (WebCore::SharedX11Resources::isXRenderExtensionSupported):
        (WebCore::SharedX11Resources::SharedX11Resources):
        (WebCore::SharedX11Resources::~SharedX11Resources):
        (GLXSurface):
        (GLXTransportSurface):
        (GLXPBuffer):

2012-11-18  Andreas Kling  <akling@apple.com>

        Element::parseAttribute() should take name & value as separate arguments.
        <http://webkit.org/b/102608>

        Reviewed by Antti Koivisto.

        Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
        of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
        creating a temporary Attribute is no longer necessary.

        This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.

        * bindings/js/ScriptEventListener.cpp:
        (WebCore::createAttributeEventListener):
        * bindings/js/ScriptEventListener.h:
        (WebCore):
        * bindings/v8/ScriptEventListener.cpp:
        (WebCore::createAttributeEventListener):
        * bindings/v8/ScriptEventListener.h:
        (WebCore):
        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        (WebCore::Element::parseAttribute):
        * dom/Element.h:
        (Element):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::parseAttribute):
        * dom/StyledElement.h:
        (StyledElement):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute):
        * html/HTMLAnchorElement.h:
        (HTMLAnchorElement):
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::parseAttribute):
        * html/HTMLAppletElement.h:
        (HTMLAppletElement):
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::parseAttribute):
        * html/HTMLAreaElement.h:
        (HTMLAreaElement):
        * html/HTMLBaseElement.cpp:
        (WebCore::HTMLBaseElement::parseAttribute):
        * html/HTMLBaseElement.h:
        (HTMLBaseElement):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseAttribute):
        * html/HTMLBodyElement.h:
        (HTMLBodyElement):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::parseAttribute):
        * html/HTMLButtonElement.h:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::parseAttribute):
        * html/HTMLCanvasElement.h:
        (HTMLCanvasElement):
        * html/HTMLDetailsElement.cpp:
        (WebCore::HTMLDetailsElement::parseAttribute):
        * html/HTMLDetailsElement.h:
        (HTMLDetailsElement):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseAttribute):
        (WebCore::HTMLElement::dirAttributeChanged):
        * html/HTMLElement.h:
        (HTMLElement):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseAttribute):
        * html/HTMLEmbedElement.h:
        (HTMLEmbedElement):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::parseAttribute):
        * html/HTMLFormControlElement.h:
        (HTMLFormControlElement):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::parseAttribute):
        * html/HTMLFormElement.h:
        (HTMLFormElement):
        * html/HTMLFrameElement.cpp:
        (WebCore::HTMLFrameElement::parseAttribute):
        * html/HTMLFrameElement.h:
        (HTMLFrameElement):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseAttribute):
        * html/HTMLFrameElementBase.h:
        (HTMLFrameElementBase):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::parseAttribute):
        * html/HTMLFrameSetElement.h:
        (HTMLFrameSetElement):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseAttribute):
        * html/HTMLIFrameElement.h:
        (HTMLIFrameElement):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseAttribute):
        * html/HTMLImageElement.h:
        (HTMLImageElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseAttribute):
        (WebCore::HTMLInputElement::parseMaxLengthAttribute):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::parseAttribute):
        * html/HTMLKeygenElement.h:
        (HTMLKeygenElement):
        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::parseAttribute):
        * html/HTMLLIElement.h:
        (HTMLLIElement):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::parseAttribute):
        * html/HTMLLinkElement.h:
        (HTMLLinkElement):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::parseAttribute):
        * html/HTMLMapElement.h:
        (HTMLMapElement):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLMediaElement.h:
        * html/HTMLMetaElement.cpp:
        (WebCore::HTMLMetaElement::parseAttribute):
        * html/HTMLMetaElement.h:
        (HTMLMetaElement):
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::parseAttribute):
        * html/HTMLMeterElement.h:
        (HTMLMeterElement):
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::parseAttribute):
        * html/HTMLOListElement.h:
        (HTMLOListElement):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseAttribute):
        * html/HTMLObjectElement.h:
        (HTMLObjectElement):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::parseAttribute):
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::parseAttribute):
        * html/HTMLOptionElement.h:
        (HTMLOptionElement):
        * html/HTMLOutputElement.cpp:
        (WebCore::HTMLOutputElement::parseAttribute):
        * html/HTMLOutputElement.h:
        (HTMLOutputElement):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::parseAttribute):
        * html/HTMLProgressElement.h:
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::parseAttribute):
        * html/HTMLScriptElement.h:
        (HTMLScriptElement):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::parseAttribute):
        (WebCore::HTMLSelectElement::parseMultipleAttribute):
        * html/HTMLSelectElement.h:
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::parseAttribute):
        * html/HTMLStyleElement.h:
        (HTMLStyleElement):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::parseAttribute):
        * html/HTMLTableCellElement.h:
        (HTMLTableCellElement):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::parseAttribute):
        * html/HTMLTableColElement.h:
        (HTMLTableColElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseAttribute):
        * html/HTMLTableElement.h:
        (HTMLTableElement):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::parseAttribute):
        * html/HTMLTextAreaElement.h:
        (HTMLTextAreaElement):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::parseAttribute):
        * html/HTMLTextFormControlElement.h:
        (HTMLTextFormControlElement):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::parseAttribute):
        * html/HTMLTrackElement.h:
        (HTMLTrackElement):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::parseAttribute):
        * html/HTMLVideoElement.h:
        (HTMLVideoElement):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::parseAttribute):
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::parseAttribute):
        * mathml/MathMLElement.h:
        (MathMLElement):
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::parseAttribute):
        * svg/SVGAElement.h:
        (SVGAElement):
        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::SVGAnimateMotionElement::parseAttribute):
        * svg/SVGAnimateMotionElement.h:
        (SVGAnimateMotionElement):
        * svg/SVGAnimateTransformElement.cpp:
        (WebCore::SVGAnimateTransformElement::parseAttribute):
        * svg/SVGAnimateTransformElement.h:
        (SVGAnimateTransformElement):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::parseAttribute):
        * svg/SVGAnimationElement.h:
        (SVGAnimationElement):
        * svg/SVGCircleElement.cpp:
        (WebCore::SVGCircleElement::parseAttribute):
        * svg/SVGCircleElement.h:
        (SVGCircleElement):
        * svg/SVGClipPathElement.cpp:
        (WebCore::SVGClipPathElement::parseAttribute):
        * svg/SVGClipPathElement.h:
        (SVGClipPathElement):
        * svg/SVGComponentTransferFunctionElement.cpp:
        (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
        * svg/SVGComponentTransferFunctionElement.h:
        (SVGComponentTransferFunctionElement):
        * svg/SVGCursorElement.cpp:
        (WebCore::SVGCursorElement::parseAttribute):
        * svg/SVGCursorElement.h:
        (SVGCursorElement):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::reportAttributeParsingError):
        (WebCore::SVGElement::parseAttribute):
        * svg/SVGElement.h:
        (SVGElement):
        * svg/SVGEllipseElement.cpp:
        (WebCore::SVGEllipseElement::parseAttribute):
        * svg/SVGEllipseElement.h:
        (SVGEllipseElement):
        * svg/SVGExternalResourcesRequired.cpp:
        (WebCore::SVGExternalResourcesRequired::parseAttribute):
        * svg/SVGExternalResourcesRequired.h:
        (SVGExternalResourcesRequired):
        * svg/SVGFEBlendElement.cpp:
        (WebCore::SVGFEBlendElement::parseAttribute):
        * svg/SVGFEBlendElement.h:
        (SVGFEBlendElement):
        * svg/SVGFEColorMatrixElement.cpp:
        (WebCore::SVGFEColorMatrixElement::parseAttribute):
        * svg/SVGFEColorMatrixElement.h:
        (SVGFEColorMatrixElement):
        * svg/SVGFEComponentTransferElement.cpp:
        (WebCore::SVGFEComponentTransferElement::parseAttribute):
        * svg/SVGFEComponentTransferElement.h:
        (SVGFEComponentTransferElement):
        * svg/SVGFECompositeElement.cpp:
        (WebCore::SVGFECompositeElement::parseAttribute):
        * svg/SVGFECompositeElement.h:
        (SVGFECompositeElement):
        * svg/SVGFEConvolveMatrixElement.cpp:
        (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
        * svg/SVGFEConvolveMatrixElement.h:
        (SVGFEConvolveMatrixElement):
        * svg/SVGFEDiffuseLightingElement.cpp:
        (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
        * svg/SVGFEDiffuseLightingElement.h:
        (SVGFEDiffuseLightingElement):
        * svg/SVGFEDisplacementMapElement.cpp:
        (WebCore::SVGFEDisplacementMapElement::parseAttribute):
        * svg/SVGFEDisplacementMapElement.h:
        (SVGFEDisplacementMapElement):
        * svg/SVGFEDropShadowElement.cpp:
        (WebCore::SVGFEDropShadowElement::parseAttribute):
        * svg/SVGFEDropShadowElement.h:
        (SVGFEDropShadowElement):
        * svg/SVGFEGaussianBlurElement.cpp:
        (WebCore::SVGFEGaussianBlurElement::parseAttribute):
        * svg/SVGFEGaussianBlurElement.h:
        (SVGFEGaussianBlurElement):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::parseAttribute):
        * svg/SVGFEImageElement.h:
        (SVGFEImageElement):
        * svg/SVGFELightElement.cpp:
        (WebCore::SVGFELightElement::parseAttribute):
        * svg/SVGFELightElement.h:
        (SVGFELightElement):
        * svg/SVGFEMergeNodeElement.cpp:
        (WebCore::SVGFEMergeNodeElement::parseAttribute):
        * svg/SVGFEMergeNodeElement.h:
        (SVGFEMergeNodeElement):
        * svg/SVGFEMorphologyElement.cpp:
        (WebCore::SVGFEMorphologyElement::parseAttribute):
        * svg/SVGFEMorphologyElement.h:
        (SVGFEMorphologyElement):
        * svg/SVGFEOffsetElement.cpp:
        (WebCore::SVGFEOffsetElement::parseAttribute):
        * svg/SVGFEOffsetElement.h:
        (SVGFEOffsetElement):
        * svg/SVGFESpecularLightingElement.cpp:
        (WebCore::SVGFESpecularLightingElement::parseAttribute):
        * svg/SVGFESpecularLightingElement.h:
        (SVGFESpecularLightingElement):
        * svg/SVGFETileElement.cpp:
        (WebCore::SVGFETileElement::parseAttribute):
        * svg/SVGFETileElement.h:
        (SVGFETileElement):
        * svg/SVGFETurbulenceElement.cpp:
        (WebCore::SVGFETurbulenceElement::parseAttribute):
        * svg/SVGFETurbulenceElement.h:
        (SVGFETurbulenceElement):
        * svg/SVGFilterElement.cpp:
        (WebCore::SVGFilterElement::parseAttribute):
        * svg/SVGFilterElement.h:
        (SVGFilterElement):
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        (SVGFilterPrimitiveStandardAttributes):
        * svg/SVGFitToViewBox.h:
        (WebCore::SVGFitToViewBox::parseAttribute):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::parseAttribute):
        * svg/SVGFontFaceElement.h:
        (SVGFontFaceElement):
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::parseAttribute):
        * svg/SVGFontFaceUriElement.h:
        (SVGFontFaceUriElement):
        * svg/SVGForeignObjectElement.cpp:
        (WebCore::SVGForeignObjectElement::parseAttribute):
        * svg/SVGForeignObjectElement.h:
        (SVGForeignObjectElement):
        * svg/SVGGElement.cpp:
        (WebCore::SVGGElement::parseAttribute):
        * svg/SVGGElement.h:
        (SVGGElement):
        * svg/SVGGlyphElement.cpp:
        (WebCore::SVGGlyphElement::parseAttribute):
        * svg/SVGGlyphElement.h:
        (SVGGlyphElement):
        * svg/SVGGlyphRefElement.cpp:
        (WebCore::SVGGlyphRefElement::parseAttribute):
        * svg/SVGGlyphRefElement.h:
        * svg/SVGGradientElement.cpp:
        (WebCore::SVGGradientElement::parseAttribute):
        * svg/SVGGradientElement.h:
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::parseAttribute):
        * svg/SVGImageElement.h:
        (SVGImageElement):
        * svg/SVGLangSpace.cpp:
        (WebCore::SVGLangSpace::parseAttribute):
        * svg/SVGLangSpace.h:
        (SVGLangSpace):
        * svg/SVGLineElement.cpp:
        (WebCore::SVGLineElement::parseAttribute):
        * svg/SVGLineElement.h:
        (SVGLineElement):
        * svg/SVGLinearGradientElement.cpp:
        (WebCore::SVGLinearGradientElement::parseAttribute):
        * svg/SVGLinearGradientElement.h:
        (SVGLinearGradientElement):
        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::parseAttribute):
        * svg/SVGMPathElement.h:
        (SVGMPathElement):
        * svg/SVGMarkerElement.cpp:
        (WebCore::SVGMarkerElement::parseAttribute):
        * svg/SVGMarkerElement.h:
        (SVGMarkerElement):
        * svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::parseAttribute):
        * svg/SVGMaskElement.h:
        (SVGMaskElement):
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::parseAttribute):
        * svg/SVGPathElement.h:
        (SVGPathElement):
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::parseAttribute):
        * svg/SVGPatternElement.h:
        (SVGPatternElement):
        * svg/SVGPolyElement.cpp:
        (WebCore::SVGPolyElement::parseAttribute):
        * svg/SVGPolyElement.h:
        (SVGPolyElement):
        * svg/SVGRadialGradientElement.cpp:
        (WebCore::SVGRadialGradientElement::parseAttribute):
        * svg/SVGRadialGradientElement.h:
        (SVGRadialGradientElement):
        * svg/SVGRectElement.cpp:
        (WebCore::SVGRectElement::parseAttribute):
        * svg/SVGRectElement.h:
        (SVGRectElement):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::parseAttribute):
        * svg/SVGSVGElement.h:
        (SVGSVGElement):
        * svg/SVGScriptElement.cpp:
        (WebCore::SVGScriptElement::parseAttribute):
        * svg/SVGScriptElement.h:
        (SVGScriptElement):
        * svg/SVGStopElement.cpp:
        (WebCore::SVGStopElement::parseAttribute):
        * svg/SVGStopElement.h:
        (SVGStopElement):
        * svg/SVGStyleElement.cpp:
        (WebCore::SVGStyleElement::parseAttribute):
        * svg/SVGStyleElement.h:
        (SVGStyleElement):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::parseAttribute):
        * svg/SVGStyledElement.h:
        (SVGStyledElement):
        * svg/SVGStyledTransformableElement.cpp:
        (WebCore::SVGStyledTransformableElement::parseAttribute):
        * svg/SVGStyledTransformableElement.h:
        (SVGStyledTransformableElement):
        * svg/SVGSymbolElement.cpp:
        (WebCore::SVGSymbolElement::parseAttribute):
        * svg/SVGSymbolElement.h:
        (SVGSymbolElement):
        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::parseAttribute):
        * svg/SVGTRefElement.h:
        (SVGTRefElement):
        * svg/SVGTests.cpp:
        (WebCore::SVGTests::parseAttribute):
        * svg/SVGTests.h:
        (SVGTests):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::parseAttribute):
        * svg/SVGTextContentElement.h:
        (SVGTextContentElement):
        * svg/SVGTextElement.cpp:
        (WebCore::SVGTextElement::parseAttribute):
        * svg/SVGTextElement.h:
        (SVGTextElement):
        * svg/SVGTextPathElement.cpp:
        (WebCore::SVGTextPathElement::parseAttribute):
        * svg/SVGTextPathElement.h:
        * svg/SVGTextPositioningElement.cpp:
        (WebCore::SVGTextPositioningElement::parseAttribute):
        * svg/SVGTextPositioningElement.h:
        (SVGTextPositioningElement):
        * svg/SVGURIReference.cpp:
        (WebCore::SVGURIReference::parseAttribute):
        * svg/SVGURIReference.h:
        (SVGURIReference):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::parseAttribute):
        * svg/SVGUseElement.h:
        (SVGUseElement):
        * svg/SVGViewElement.cpp:
        (WebCore::SVGViewElement::parseAttribute):
        * svg/SVGViewElement.h:
        (SVGViewElement):
        * svg/SVGZoomAndPan.h:
        (WebCore::SVGZoomAndPan::parseAttribute):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::parseAttribute):
        * svg/animation/SVGSMILElement.h:
        (SVGSMILElement):

2012-11-18  Andreas Kling  <akling@apple.com>

        StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
        <http://webkit.org/b/102596>

        Reviewed by Antti Koivisto.

        Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
        later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.

        * css/StyleResolver.cpp:
        (WebCore::haveIdenticalStyleAffectingAttributes):

2012-11-17  Jon Lee  <jonlee@apple.com>

        Simulated mouse events should return an accurate offset
        https://bugs.webkit.org/show_bug.cgi?id=102606
        <rdar://problem/12725627>

        Reviewed by Brady Eidson.

        A check to see if the event is simulated prior to calculating the offset has existed for a
        long time (since at least r14916). Back then the check was needed because the offset was
        incrementally adjusted when the target was assigned (through
        MouseRelatedEvent::receivedTarget()).

        Since r82225, we started calculating the offset only when needed, and calculating the offset
        from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
        the isSimulated check is irrelevant, and we should remove it.

        Tests are not possible because all uses of simulated mouse events provide no underlying
        event, so the offset is never recalculated.

        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.

2012-11-17  Simon Fraser  <simon.fraser@apple.com>

        Don't say there are dirty overlay scrollbars when they are clipped out
        https://bugs.webkit.org/show_bug.cgi?id=102609

        Reviewed by Brady Eidson.

        Painting overlay scrollbars involves a second painting pass over the entire
        RenderLayer subtree for a compositing layer, which can be very expensive.
        
        Avoid this when possible by detecting when overflow controls are not in
        the damage rect.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
        for the horizontal scrollbar.
        (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
        for the vertical scrollbar.
        (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
        and rectForVerticalScrollbar().
        (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
        of the present overflow controls intersect the given local rect.
        (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
        doesn't intersect any of the overflow controls.
        * rendering/RenderLayer.h:
        (RenderLayer):

2012-11-17  Adam Barth  <abarth@webkit.org>

        REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
        https://bugs.webkit.org/show_bug.cgi?id=101428

        Reviewed by Geoffrey Garen.

        JSNodeOwner has some smarts that wrappers of subclasses of Node need to
        call during garbage collection. This patch teaches subclasses of Node
        to have their JSMumbleOwner objects inherit from JSNodeOwner.

        The immediate benefit of this patch is that we correctly avoid
        collecting wrappers for HTMLAudioElements when they are reachable from
        the DOM.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):

2012-11-17  Elliott Sprehn  <esprehn@chromium.org>

        Expose JSObject::removeDirect and PrivateName to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=102546

        Reviewed by Geoffrey Garen.

        Add forwarding header for PrivateName, so JSDependentRetained works.

        No new tests, just adding headers.

        * ForwardingHeaders/runtime/PrivateName.h: Added.

2012-11-17  Simon Fraser  <simon.fraser@apple.com>

        Reduce the crazy number of parameters to RenderLayer clip-rect functions
        https://bugs.webkit.org/show_bug.cgi?id=102604

        Reviewed by Dan Bernstein.

        Many of the RenderLayer member functions related to clip rect computation
        took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
        that we pass to these functions
        
        No functional changes.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::updateClipRects):
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::parentClipRects):
        (WebCore::RenderLayer::backgroundClipRect):
        (WebCore::RenderLayer::calculateRects):
        (WebCore::RenderLayer::childrenClipRect):
        (WebCore::RenderLayer::selfClipRect):
        (WebCore::RenderLayer::localClipRect):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
        (ClipRectsContext):
        (RenderLayer):
        (WebCore::RenderLayer::clipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateCompositedBounds):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::addToOverlapMap):
        (WebCore::RenderLayerCompositor::clippedByAncestor):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::writeLayers):

2012-11-17  Simon Fraser  <simon.fraser@apple.com>

        Simplify bounds computation for the RenderView's layer
        https://bugs.webkit.org/show_bug.cgi?id=102597

        Reviewed by Anders Carlsson.

        Computing the bounds of the main layer (that of the RenderView) used to do
        a full RenderLayer walk, taking the union of the bounds of all the sublayers,
        which is very expensive on large pages.
        
        For the RenderView we can avoid that entirely and just use the RenderView's
        document rect. Since page scaling happens as a transform on this layer,
        we want the unscaled document rect.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateLayerBounds):

2012-11-17  Eric Seidel  <eric@webkit.org>

        Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
        https://bugs.webkit.org/show_bug.cgi?id=102601

        Reviewed by Adam Barth.

        From my investigations all of these classes exist only to be exposed
        to the web (via JavaScript) and are not used internally by WebCore.
        I beleive all of them always have wrappers.
        These were found using this code:
        https://bugs.webkit.org/show_bug.cgi?id=102539#c2

        Geolocation -- navigator.geolocation
        WebKitCSSMatrix -- represent matrixes in JS through various APIs
        DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
        Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
        ValidityState -- formControl.validity
        CanvasRenderingContext -- canvas.getContext()
        DOMApplicationCache -- window.appcache
        Screen -- window.screen
        DOMMimeTypeArray -- navigator.mimetypes
        DOMPlugin -- navigator.plugins[0]
        DOMPluginArray -- navigator.plugins

        * Modules/geolocation/Geolocation.h:
        * css/WebKitCSSMatrix.h:
        * dom/DOMStringMap.h:
        * dom/NamedNodeMap.h:
        * dom/NodeIterator.h:
        * dom/TreeWalker.h:
        * fileapi/Blob.h:
        * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
        (FileList):
        (WebCore::FileList::create):
        (WebCore::FileList::length):
        (WebCore::FileList::isEmpty):
        (WebCore::FileList::clear):
        (WebCore::FileList::append):
        * html/ValidityState.h:
        * html/canvas/CanvasRenderingContext.h:
        * loader/appcache/DOMApplicationCache.h:
        * page/Screen.h:
        * platform/graphics/wince/MediaPlayerProxy.cpp:
        (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
        * plugins/DOMMimeTypeArray.h:
        * plugins/DOMPlugin.h:
        * plugins/DOMPluginArray.h:

2012-11-17  Alexandru Chiculita  <achicu@adobe.com>

        [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
        https://bugs.webkit.org/show_bug.cgi?id=101801

        Reviewed by Noam Rosenthal.

        Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
        Also added a new API on TextureMapper that receives a notification when the shader
        is no longer needed.

        No new tests, the code is tested by existing tests.

        * platform/graphics/filters/CustomFilterOperation.h:
        (WebCore::CustomFilterOperation::setProgram):
        (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
        (WebCore):
        * platform/graphics/filters/CustomFilterValidatedProgram.h:
        (CustomFilterValidatedProgram):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore):
        (TextureMapper):
        (WebCore::TextureMapper::removeCachedCustomFilterProgram):
        Function to be called by the platform code, when the shader is no longer
        needed. This implementation is empty and overridden in TextureMapperGL.
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
        Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
        is no longer needed.
        (WebCore):
        (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
        shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
        * platform/graphics/texmap/TextureMapperGL.h:
        (WebCore):
        (TextureMapperGL):

2012-11-17  Brady Eidson  <beidson@apple.com>

        Add an integer identifier field to AuthenticationChallengeBase.
        https://bugs.webkit.org/show_bug.cgi?id=102593

        Reviewed by Darin Adler.

        This is to support linking two different challenges that might not compare as equal but that 
        represent the same logical authentication challenge.

        One example is in an IPC environment where the platform challenge can only exist in one process.

        No new tests (Platform support, no effect in tested configs).

        * WebCore.exp.in:

        * platform/network/AuthenticationChallengeBase.cpp:
        (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
        * platform/network/AuthenticationChallengeBase.h:
        (WebCore::AuthenticationChallengeBase::identifier):

        * platform/network/cf/AuthenticationChallenge.h:
        * platform/network/mac/AuthenticationMac.mm:
        (WebCore::generateUniqueIdentifier):
        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
          constructing a challenge from an NSURLAuthenticationChallenge.

        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::generateUniqueIdentifier):
        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
          constructing a challenge from a CFURLAuthChallengeRef.

        Implement the new constructor form for ports relevant to WebKit2:
        * platform/network/qt/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/soup/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/win/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):

2012-11-17  Simon Fraser  <simon.fraser@apple.com>

        Dump the tile cache extent in layout tests
        https://bugs.webkit.org/show_bug.cgi?id=102600

        Reviewed by Anders Carlsson.

        When dumping tiled layer stats in layout tests, also dump the extent
        of the tile grid. This will allow us to detect issues related
        to zooming, which is not possible with the existing tile coverage rect,
        which is dumped in layer (not tile) coordinates.

        * platform/graphics/TiledBacking.h: Added tileGridExtent().
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
        * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::getTileIndexRangeForRect):
        (WebCore::TileCache::tileGridExtent): Return a rect with the size of
        the grid as top,left width,height.

2012-11-17  Andreas Kling  <akling@apple.com>

        Avoid full style recalc when 'style' attribute changes.
        <http://webkit.org/b/78718>

        Reviewed by Anders Carlsson.

        Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
        to reduce the amount of work done in recalcStyle().

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::styleAttributeChanged):

2012-11-17  Li Yin  <li.yin@intel.com>

        Remove coneGain and distanceGain attributes from PannerNode.idl
        https://bugs.webkit.org/show_bug.cgi?id=102343

        Reviewed by Chris Rogers.

        Removing .coneGain and .distanceGain as publicly accessible values,
        since normally they only need to be calculated internally.

        No changes to tests, since these attributes were not tested and are being removed.

        * Modules/webaudio/PannerNode.idl:

2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>

        [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
        https://bugs.webkit.org/show_bug.cgi?id=102530

        Reviewed by Noam Rosenthal.

        GraphicsLayer::addAnimation is called no only when a new animation is created
        but also when resuming a paused animation. If this is a resumed animation we
        should remove the obsolate GraphicsLayerAnimation object.

        Tested by animations tests.

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::GraphicsLayerAnimations::add):

2012-11-17  Martin Robinson  <mrobinson@igalia.com>

        [Soup] CredentialStorage should only be used for HTTP-family requests
        https://bugs.webkit.org/show_bug.cgi?id=102582

        Reviewed by Gustavo Noronha Silva.

        Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
        only expects to handle requests in the HTTP family.

        No new tests. This is covered by existing tests.

        * platform/network/ResourceHandle.h:
        (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
        helper returns false when firstRequest() is a non-HTTP family request.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::applyAuthenticationToRequest): Use the new helper.
        (WebCore::createSoupRequestAndMessageForHandle): Ditto.
        (WebCore::ResourceHandle::start): Ditto.
        (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
        (WebCore::ResourceHandle::receivedCredential): Ditto.

2012-11-16  Patrick Gansterer  <paroga@webkit.org>

        Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintOverflowControls):

2012-11-16  Benjamin Poulain  <bpoulain@apple.com>

        Improve the performance of rect transform
        https://bugs.webkit.org/show_bug.cgi?id=101828

        Reviewed by Simon Fraser.

        Mapping a rect and a quad by a transform is a common operation because
        we use it to recompute the repaint rect, overflow rect, etc.

        The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
        Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
        and perform many comparison.
        Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
        too many.

        This patch just cut the intermediary calls.

        On ARM, putting the operation together also has the advantage of loading the matrix
        only once in registers and reusing it for every point.

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::mapPoint):
        (WebCore::TransformationMatrix::mapRect):
        * platform/graphics/transforms/TransformationMatrix.h:
        (WebCore):
        (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
        point project without doing isIdentityOrTranslation().

2012-11-16  Simon Fraser  <simon.fraser@apple.com>

        Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
        https://bugs.webkit.org/show_bug.cgi?id=102581

        Reviewed by Dan Bernstein.

        isBlockFlow() is a virtual function call, and shows up in profiles of
        Facebook pages as called from RenderBox::computeRectForRepaint().
        
        It's faster to do the hasColumns() bit-check first. Also replace
        a call to layer() with the hasLayer() bit-check.        

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint):

2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134817.
        http://trac.webkit.org/changeset/134817
        https://bugs.webkit.org/show_bug.cgi?id=102576

        Broke iframes and causing tons of crashes on ClusterFuzz
        (Requested by inferno-sec on #webkit).

        * dom/ContainerNode.cpp:
        (WebCore::willRemoveChildren):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildFrameDisconnector::collectDescendant):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
        (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
        (ChildFrameDisconnector):
        (WebCore::ChildFrameDisconnector::collectDescendant):
        (WebCore::ChildFrameDisconnector::disconnect):
        * dom/Node.cpp:
        * dom/Node.h:
        (Node):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::setContentFrame):
        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):

2012-11-16  Simon Fraser  <simon.fraser@apple.com>

        Fix overlay scrollbar painting in compositing layers
        https://bugs.webkit.org/show_bug.cgi?id=102442

        Reviewed by Beth Dakin.

        There were two issues with overlay scrollbar painting in
        compositing layers.
        
        First, we'd only ever call setContainsDirtyOverlayScrollbars()
        on the RenderView's layer, even when encountering an overlay scrollbar
        in some descendant compositing layer. This meant that we'd never
        run the paintOverlayScrollbars() code for those child compositing
        layers, so sometimes scrollbars were missing there.
        
        Even after fixing that, we would fail to render scrollbars that
        were not in the composited RenderLayer itself. This happened because
        we called into RenderLayer::paintOverlayScrollbars(), which called
        paintLayer() with flags that only said to paint the overlay scrollbars
        but not any descendants, so this paint path would not walk child
        RenderLayers.
        
        Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
        ScrollView which is no longer used.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
        (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
        * platform/ScrollView.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
        on the compositing ancestor or the root.
        Remove call to setContainsScrollableAreaWithOverlayScrollbars().
        (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
        scrollbars, no need to say we have transparency, and no need to use 
        temporary clip rects.
        (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
        check here was only needed because the compositing entrypoint to painting
        overlay scrollbars went via paintLayer(), which isn't normally used as
        a composited painting entry point. Now that we no longer call that, we
        don't need this special check.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
        painting via paintLayerContents(), not paintOverlayScrollbars(), since
        the latter does not traverse sublayers.

2012-11-16  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Assert hit when getting non-existent object store in version change transaction
        https://bugs.webkit.org/show_bug.cgi?id=102547

        Reviewed by Tony Chang.

        Code did not account for the not-found case in "versionchange" transactions, where all
        object stores are implicitly in scope.

        Test: storage/indexeddb/object-lookups-in-versionchange.html

        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::objectStore):

2012-11-12  Simon Fraser  <simon.fraser@apple.com>

        Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
        https://bugs.webkit.org/show_bug.cgi?id=101874

        Reviewed by Dave Hyatt.

        RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
        lot of time in computeRepaintRects(), which does two ancestor tree walks, once
        for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().

        Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
        a RenderGeometryMap as we traverse the layer tree, and then using it to map
        the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
        now that the RenderGeometryMap can do a better job.
        
        The clipped overflow rect cannot be mapped simply, so cannot yet make use of
        the geometry map.
        
        Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
        Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
        
        Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
        
        * page/FrameView.cpp:
        (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
        to updateLayerPositions(). For partial layouts, we have to push layers
        between the root and the enclosing layer of the layout subtree.
        The geometry map used for repainting does not use SnapOffsetForTransforms,
        so initialize it explicitly with just the UseTransforms flag.
        (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
        to pass along to updateLayerPositionsAfterScroll().
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
        parameter with an optional RenderGeometryMap, and it use to map the compute rect to
        repaintContainer coordinates.
        * rendering/RenderBox.h:
        * rendering/RenderGeometryMap.cpp:
        (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
        flags to use, so that its behavior can match that of mapLocalToContainer(). The
        pertinent flag is the confusingly named SnapOffsetForTransforms.
        (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
        a null container.
        (WebCore::RenderGeometryMap::absoluteRect): Ditto.
        (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
        asserting that we found it. Add point- and rect-based mapping methods
        akin to the old absoluteRect/absolutePoint.
        (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
        (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
        layers, ensure that the RenderView is pushed as the first step.
        * rendering/RenderGeometryMap.h:
        (RenderGeometryMap):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
        that makes the geometry map.
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
        that makes the geometry map.
        (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
        Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
        the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
        it to computeRepaintRects().
        (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
        geometry map, and pass it to computeRepaintRects().
        (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
        computation; this could use a geometry map in future if it is shown to be a bottleneck.
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
        was there because the older cached offsetFromRoot logic was sensitive to compositing,
        but convertToLayerCoords() is not affected by compositing so this check is not needed,
        and actually harmful.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
        used for overlap testing should not use SnapOffsetForTransforms, so initialize
        it explicitly with just the UseTransforms flag.
        * rendering/RenderObject.h:
        (WebCore::RenderObject::outlineBoundsForRepaint):
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
        * rendering/svg/RenderSVGModelObject.h:
        (RenderSVGModelObject):

2012-11-16  Alec Flett  <alecflett@chromium.org>

        Add tests for explicit serialization values
        https://bugs.webkit.org/show_bug.cgi?id=96818

        Reviewed by Adam Barth.

        Expose direct access to the serialization/deserialization mechanisms
        of SerializedScriptValue to DumpRenderTree.

        * testing/Internals.cpp:
        (WebCore::Internals::serializeObject):
        (WebCore):
        (WebCore::Internals::deserializeBuffer):
        * testing/Internals.h:
        (WebCore):
        * testing/Internals.idl:

2012-11-16  Andreas Kling  <akling@apple.com>

        Exploit shared attribute data to avoid parsing identical "style" attributes.
        <http://webkit.org/b/101163>

        Reviewed by Antti Koivisto.

        Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
        This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
        since the state is no longer per-Element.

        * css/StyleResolver.cpp:
        (WebCore::isCacheableInMatchedPropertiesCache):

            Disable the matched properties cache for styles with non-standard writing-mode.
            This is necessary because some CSS properties have different meaning depending on context -
            properties handled by CSSProperty::resolveDirectionAwareProperty().

            Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
            avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
            writing-modes in the matched properties cache.

        * dom/Node.h:
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::ElementAttributeData):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::ElementAttributeData):
        (ElementAttributeData):
        * dom/Element.h:
        (WebCore::Element::updateInvalidAttributes):
        * dom/Element.cpp:
        (WebCore::Element::getAttribute):
        (WebCore::Element::removeAttribute):
        * dom/StyledElement.h:
        (WebCore::StyledElement::invalidateStyleAttribute):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):

            Move "style attribute dirty" flag to ElementAttributeData.

        (WebCore::Element::cloneAttributesFromElement):

            Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
            automagically since cloning nodes just refs the original attribute data.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::setInlineStyleFromString):
        (WebCore::StyledElement::styleAttributeChanged):
        (WebCore::StyledElement::inlineStyleChanged):

            Avoid reparsing the inline style if the element's attribute data is immutable and already has
            a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
            to make the code more understandable.

2012-11-16  Simon Fraser  <simon.fraser@apple.com>

        Don't update layer positions on scrolling if we're in the middle of layout
        https://bugs.webkit.org/show_bug.cgi?id=102556

        Reviewed by Dan Bernstein.

        RenderLayer::scrollTo() can be called in the middle of layout. When
        that happens we should not waste time updating layer positions,
        compositing layers, or widget positions, because we'll do those at the
        end of layout anyway.
        
        This prevents us from having inconsistent RenderLayer state, which
        hinders future optimizations in this area.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo):

2012-11-16  Tony Chang  <tony@chromium.org>

        Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
        https://bugs.webkit.org/show_bug.cgi?id=102554

        Reviewed by Andreas Kling.

        As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
        we're going to revist this feature once additional vendor support is
        achieved.

        No new tests, just removing an unused define.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.features.am:

2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Remove cookie-related functions from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=99340

        Reviewed by Adam Barth.

        Move cookie-related functions out of PlatformSupport and implement
        new PlatformCookieJar interface via NetworkContext.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * loader/CookieJar.cpp:
        * loader/chromium/CookieJarChromium.cpp: Removed.
        * platform/chromium/PlatformSupport.h:
        (WebCore):
        (PlatformSupport):
        * platform/network/NetworkingContext.h:
        (WebKit):
        (NetworkingContext):
        * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
        (WebCore::setCookiesFromDOM):
        (WebCore::cookiesForDOM):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):

2012-11-16  Pablo Flouret  <pablof@motorola.com>

        [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
        https://bugs.webkit.org/show_bug.cgi?id=70574

        Reviewed by Geoffrey Garen.

        For scripts that use CORS (via the crossorigin attribute in this case),
        don't sanitize the information passed to the window's onerror handler (i.e.
        message, url, and line number). Useful for scripts hosted on CDNs.

        Tests: http/tests/security/script-crossorigin-onerror-information.html
               http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html

        * WebCore.exp.in:
        * WebCore.order:

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        * bindings/js/JSDOMBinding.h:
        (WebCore):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluateInWorld):
        * bindings/js/ScriptSourceCode.h:
        (WebCore::ScriptSourceCode::ScriptSourceCode):
        (WebCore::ScriptSourceCode::cachedScript):
        (ScriptSourceCode):
        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
            Keep a reference to the cached script in the ScriptSourceCode, so
            that it can be passed around and be available when reporting the
            exception.

        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::sanitizeScriptError):
        (WebCore::ScriptExecutionContext::reportException):
        (WebCore::ScriptExecutionContext::dispatchErrorEvent):
        * dom/ScriptExecutionContext.h:
        (WebCore):
        (ScriptExecutionContext):
            Check if the script passes the access control checks, and if so,
            don't sanitize the error information.

        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::processAttributes):
        (WebCore::PreloadTask::preload):
        (PreloadTask):
        (WebCore::PreloadTask::crossOriginModeAllowsCookies):
            When preloading script elements, check for the crossorigin attribute
            and adjust the request's allowCookies value accordingly. Otherwise
            when the script is loaded from the cache later on, the cross origin mode
            (anonymous/use-credentials) will be effectively ignored.

2012-11-16  Jon Lee  <jonlee@apple.com>

        Change visual look of placeholder
        https://bugs.webkit.org/show_bug.cgi?id=102149
        <rdar://problem/12695566>

        Reviewed by Darin Adler.

        Move the button to the lower-right corner. Move the theming into
        RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
        shadow DOM instead, and the metrics of the button are needed for click passthrough.

        * Resources/startButton.png: Added.
        * Resources/startButton@2x.png: Added.
        * Resources/startButtonPressed.png: Added.
        * Resources/startButtonPressed@2x.png: Added.
        * WebCore.xcodeproj/project.pbxproj: Add button images.

        Maintain variables to track whether the mouse is over the button, and the rect
        for the button. If the user clicks in the rect, we render a pressed button.
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore): Add named constant for bottom and right padding of the button.
        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
        (WebCore::RenderSnapshottedPlugIn::paintReplaced):
        (WebCore::startButtonImage): Returns button image.
        (WebCore::startButtonPressedImage): Returns pressed button image.
        (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
        lower right hand corner, but only if we are active or hovered.
        (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
        (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
        hovering over the plugin rect. With a mouse down event, calculate whether the
        mouse position is within the button rect.
        (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
        contents.
        * rendering/RenderSnapshottedPlugIn.h:

        Remove theming function for now.
        * rendering/RenderTheme.h:
        (RenderTheme):
        * rendering/RenderThemeMacShared.h:
        * rendering/RenderThemeMacShared.mm:

2012-11-16  Eric Seidel  <eric@webkit.org>

        Deploy ScriptWrappable to more always-wrapped objects
        https://bugs.webkit.org/show_bug.cgi?id=102539

        Reviewed by Adam Barth.

        Add the ScriptWrappable baseclass to:
        CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
        ClientRect (element.getBoundingClientRects)
        Event (Not all events end up wrapped, but any which live past dispatch do)
        NodeList (this covers Static and Dynamic node list types, like document.all)
        HTMLCollection (separate from NodeList, for things like table.rows)
        Storage (for window.storage, always wrapped)
        XMLHttpRequest (always wrapped, created from JS)

        This should be a small memory savings as the inline pointer is only 4-8 bytes
        instead of the hashmap entry which would be 8-16.  This may also show up
        on benchmarks which repeatedly access these objects (like window.storage).

        These were found by adding a couple lines of logging-code to
        WebCore::createWrapper when we were in the main world, but took the
        HashMap (instead of inline) storage path. I used sort and uniq -c
        to find the most-frequently wrapped objects (while surfing
        a few common sites) and came up with this list.  There are still a few
        more complicated objects (like CSSStyleDeclaration) which may benifit
        from inline-wrapper-access and will be covered in a later patch.

        * css/CSSStyleDeclaration.h:
        * dom/ClientRect.h:
        * dom/Event.h:
        * dom/NodeList.h:
        * html/HTMLCollection.h:
        * storage/Storage.h:
        * xml/XMLHttpRequest.h:

2012-11-16  Jon Lee  <jonlee@apple.com>

        Simulated events instances do not all have the same underlying event
        https://bugs.webkit.org/show_bug.cgi?id=102468
        <rdar://problem/12716331>

        Reviewed by Alexey Proskuryakov.

        The PassRefPtr with the underlying event is included as an argument for the mouse
        down, up, and click events. But the PassRefPtr loses its underlying pointer after
        the first simulated mouse down event because it gets assigned to that event's
        private m_underlyingEvent variable. We therefore send NULL to the other events.

        The fix is for this and related functions to pass the raw pointer.

        A layout test is not possible to put together because the call sites that use simulated
        events with an underlying event do not send mouse events, and those that send mouse
        events have a NULL underlying event.

        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
        * dom/EventDispatcher.h:
        * dom/Node.cpp:
        (WebCore::Node::dispatchSimulatedClick): Ditto.
        * dom/Node.h:

2012-11-16  Patrick Gansterer  <paroga@webkit.org>

        Build fix for WinCE after r134936.

        * platform/network/win/CookieJarWin.cpp:
        (WebCore::cookieRequestHeaderFieldValue):

2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r134986.
        http://trac.webkit.org/changeset/134986
        https://bugs.webkit.org/show_bug.cgi?id=102110

        Triggered ASSERT in fast/frames/seamless/seamless-inherited-
        origin.html.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
        (WebCore::collectCSSOMWrappers):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/Document.cpp:
        (WebCore::Document::setCompatibilityMode):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
        (WebCore):
        (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
        (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
        (WebCore::DocumentStyleSheetCollection::addUserSheet):
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.h:
        (DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::documentUserSheets):
        * page/PageGroup.cpp:
        (WebCore::PageGroup::addUserStyleSheetToWorld):
        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
        (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
        (WebCore::PageGroup::removeAllUserContent):
        (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
        * page/PageGroup.h:
        (PageGroup):

2012-11-16  Michael Pruett  <michael@68k.org>

        IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
        https://bugs.webkit.org/show_bug.cgi?id=102430

        Reviewed by Adam Barth.

        DOMRequestState is currently propagated to some but not all of
        the IndexedDB binding utility functions. In order to implement
        these functions for JSC, this state must be propagated to all
        of the utility functions.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::update):
        (WebCore::IDBCursor::setValueReady):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::generateIndexKeysForValue):
        (WebCore::IDBObjectStore::put):
        (WebCore):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBRequest.h:
        (WebCore::IDBRequest::requestState):
        (IDBRequest):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore::serializeIDBValue):
        (WebCore::injectIDBKeyIntoScriptValue):
        * bindings/v8/IDBBindingUtilities.h:
        (WebCore):

2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>

        Rebaselined run-bindings-tests.
        https://bugs.webkit.org/show_bug.cgi?id=102523

        Reviewed by Dimitri Glazkov.

        Expected results need to be updated after r134931

        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):

2012-11-16  Pratik Solanki  <psolanki@apple.com>

        For single element arrays use the pointer into the CFDataRef instead of copying data
        https://bugs.webkit.org/show_bug.cgi?id=102306
        <rdar://problem/12267471>

        Reviewed by Alexey Proskuryakov.

        We generally copy the data received from CFNetwork into our own buffers. But if the
        CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
        and access its memory directly and avoid making a copy.

        This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
        SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
        SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
        the memory in the data array.

        No new tests because no change in functionality.

        * loader/ResourceBuffer.cpp:
        (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
        * loader/ResourceBuffer.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::makePurgeable):
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::createPurgeableBuffer): Added.
        (WebCore::SharedBuffer::data):
        * platform/SharedBuffer.h:
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
        (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
        (WebCore::SharedBuffer::singleDataArrayBuffer): Added.

2012-11-16  Antti Koivisto  <antti@apple.com>

        REGRESSION(r129644): User StyleSheet not applying
        https://bugs.webkit.org/show_bug.cgi?id=102110

        Reviewed by Andreas Kling.

        Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
        such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
        
        The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
        It also generally cleans up the code around injected and user stylesheets.

        Tests: userscripts/user-script-and-stylesheet.html
               userscripts/user-stylesheet-invalidate.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
        (WebCore::collectCSSOMWrappers):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/Document.cpp:
        (WebCore::Document::setCompatibilityMode):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
        (WebCore):
        (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
        (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
        (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
        (WebCore::DocumentStyleSheetCollection::addUserSheet):
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.h:
        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
        (DocumentStyleSheetCollection):
        * page/PageGroup.cpp:
        (WebCore::PageGroup::addUserStyleSheetToWorld):
        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
        (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
        (WebCore::PageGroup::removeAllUserContent):
        (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
        * page/PageGroup.h:
        (PageGroup):

2012-11-16  Andreas Kling  <akling@apple.com>

        StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
        <http://webkit.org/b/102536>

        Reviewed by Antti Koivisto.

        Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
        relevant for sharing style between <input> elements.

        Also skip attribute comparisons for form control elements that share the same ElementAttributeData.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithControl):
        (WebCore::haveIdenticalStyleAffectingAttributes):

2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134867.
        http://trac.webkit.org/changeset/134867
        https://bugs.webkit.org/show_bug.cgi?id=102544

        Broke security fuzzier test (heap-buffer-overflow) (Requested
        by bfulgham on #webkit).

        * platform/audio/Biquad.cpp:
        (WebCore::Biquad::process):

2012-11-16  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update RTCPeerConnection states to match the latest editors draft
        https://bugs.webkit.org/show_bug.cgi?id=102382

        Reviewed by Adam Barth.

        Updating readyState & iceState, and adding iceGatheringState.
        Also safeguarding the event timer callback.

        Patch covered by existing tests.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::createOffer):
        (WebCore::RTCPeerConnection::createAnswer):
        (WebCore::RTCPeerConnection::setLocalDescription):
        (WebCore::RTCPeerConnection::localDescription):
        (WebCore::RTCPeerConnection::setRemoteDescription):
        (WebCore::RTCPeerConnection::remoteDescription):
        (WebCore::RTCPeerConnection::updateIce):
        (WebCore::RTCPeerConnection::addIceCandidate):
        (WebCore::RTCPeerConnection::readyState):
        (WebCore::RTCPeerConnection::iceGatheringState):
        (WebCore):
        (WebCore::RTCPeerConnection::iceState):
        (WebCore::RTCPeerConnection::addStream):
        (WebCore::RTCPeerConnection::close):
        (WebCore::RTCPeerConnection::didChangeIceGatheringState):
        (WebCore::RTCPeerConnection::stop):
        (WebCore::RTCPeerConnection::changeReadyState):
        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
        * Modules/mediastream/RTCPeerConnection.h:
        (RTCPeerConnection):
        * Modules/mediastream/RTCPeerConnection.idl:
        * dom/EventNames.h:
        (WebCore):
        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
        (RTCPeerConnectionHandlerClient):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
        (WebCore):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (RTCPeerConnectionHandlerChromium):

2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r134973.
        http://trac.webkit.org/changeset/134973
        https://bugs.webkit.org/show_bug.cgi?id=99340

        Broke compile on at least Mac and Linux.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * loader/CookieJar.cpp:
        * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
        (WebCore):
        (WebCore::setCookies):
        (WebCore::cookies):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):
        * platform/chromium/PlatformSupport.h:
        (WebCore):
        (PlatformSupport):
        * platform/network/NetworkingContext.h:
        * platform/network/chromium/CookieJarChromium.cpp: Removed.

2012-11-16  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=101843

        Reviewed by Gustavo Noronha Silva.

        Make GtkAuthenticationDialog more general, so that it can be subclassed in 
        WebKit2. We cannot use the WebCore authentication-related classes directly there.

        No new tests. This patch does not change behavior.

        * platform/gtk/GtkAuthenticationDialog.cpp:
        (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
        some field initializers.
        (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
        makes it simpler to subclass.
        (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
        and password here, so that it can be shared with subclasses.
        * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
        subclasses.

2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Remove cookie-related functions from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=99340

        Reviewed by Adam Barth.

        Move cookie-related functions out of PlatformSupport and implement
        new PlatformCookieJar interface via NetworkContext.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * loader/CookieJar.cpp:
        * loader/chromium/CookieJarChromium.cpp: Removed.
        * platform/chromium/PlatformSupport.h:
        (WebCore):
        (PlatformSupport):
        * platform/network/NetworkingContext.h:
        (WebKit):
        (NetworkingContext):
        * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
        (WebCore::setCookiesFromDOM):
        (WebCore::cookiesForDOM):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):

2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>

        Fix assertion bug of build fix r134961
        https://bugs.webkit.org/show_bug.cgi?id=102533

        Reviewed by Martin Robinson.

        Assertion condition should be '!d->m_currentWebChallenge.isNull()'

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):

2012-11-16  Tommy Widenflycht  <tommyw@google.com>

        [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
        https://bugs.webkit.org/show_bug.cgi?id=102386

        Reviewed by Adam Barth.

        Existing tests expanded to cover patch.

        * platform/mediastream/RTCDataChannelDescriptor.cpp:
        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
        (WebCore):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (WebKit):
        (RTCPeerConnectionHandlerChromium):

2012-11-16  Scott Violet  <sky@chromium.org>

        [chromium] Copy linux theme related files to default
        https://bugs.webkit.org/show_bug.cgi?id=102403

        Reviewed by Tony Chang

        Transitional patch that copies linux WebThemeEngine to default directory.

        No new tests, refactoring only.

        * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
        * WebCore.gypi: Adds new files.
        * platform/chromium/PlatformSupport.h:
        * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
        * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
        * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
        * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
        * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
        * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.

2012-11-16  Alec Flett  <alecflett@chromium.org>

        IndexedDB: add missing 'explicit' and fix backing store release
        https://bugs.webkit.org/show_bug.cgi?id=102450

        Reviewed by Tony Chang.

        A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
        which resulted in objects sticking around a bit longer than
        expected. This makes sure the LevelDBTransaction is released
        at the moment of commit/rollback rather than when IDBTransactionBackendImpl
        is destroyed.

        No new tests, this is just internal state that will affect
        some future refactoring.

        * Modules/indexeddb/IDBBackingStore.h:
        (Cursor):
        (Transaction):
        (WebCore::IDBBackingStore::Transaction::reset):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):

2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>

        [Chromium] One last tweak to WebCore.gypi to make Win build not sad.

        * WebCore.gypi: Removed one last mention of accessibility/gtk file.

2012-11-16  Robert Flack  <flackr@chromium.org>

        Handle gesture events on scrollbars.
        https://bugs.webkit.org/show_bug.cgi?id=101516

        Reviewed by Antonio Gomes.

        Adds a gesture event handler to scrollbars and sends gestures beginning
        over a scrollbar to this handler to allow touch scrolling scrollbars.

        Test: fast/events/touch/gesture/gesture-scrollbar.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::isScrollbarHandlingGestures):
        (WebCore):
        * page/EventHandler.h:
        (EventHandler):
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::Scrollbar):
        (WebCore):
        (WebCore::Scrollbar::gestureEvent):
        (WebCore::Scrollbar::mouseMoved):
        (WebCore::Scrollbar::mouseUp):
        (WebCore::Scrollbar::mouseDown):
        * platform/Scrollbar.h:
        (WebCore):
        (Scrollbar):
        * platform/ScrollbarTheme.h:
        (WebCore::ScrollbarTheme::hitTest):
        * platform/ScrollbarThemeComposite.cpp:
        (WebCore::ScrollbarThemeComposite::hitTest):
        * platform/ScrollbarThemeComposite.h:
        (ScrollbarThemeComposite):
        * platform/qt/ScrollbarThemeQStyle.cpp:
        (WebCore::ScrollbarThemeQStyle::hitTest):
        * platform/qt/ScrollbarThemeQStyle.h:
        (ScrollbarThemeQStyle):

2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>

        [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102444

        Reviewed by Adam Barth.

        No new tests. Have been covered by many existing layout tests.

        * html/shadow/MediaControlsChromiumAndroid.cpp:
        (WebCore::MediaControls::create): Calls createControls instead of itself.

2012-11-16  Andreas Kling  <akling@apple.com>

        StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
        <http://webkit.org/b/102507>

        Reviewed by Antti Koivisto.

        When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
        comparing the various attributes that would prevent sharing.

        If the two elements both share the same ElementAttributeData, we can skip all those checks
        since they are guaranteed to have equal attributes.

        Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.

        * css/StyleResolver.cpp:
        (WebCore::haveIdenticalStyleAffectingAttributes):
        (WebCore::StyleResolver::canShareStyleWithElement):

2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>

        [EFL][GTK] Build fix after r134955
        https://bugs.webkit.org/show_bug.cgi?id=102527

        Reviewed by Martin Robinson.

        Fix the EFL,GTK debug bulid fails after r134955.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):

2012-11-15  Alexey Proskuryakov  <ap@apple.com>

        Private Browsing is a per-page setting that sets a global value
        https://bugs.webkit.org/show_bug.cgi?id=67870

        Reviewed by Sam Weinig.

        Make ResourceHandle{Mac,CFNet} use context to access storage session.

        * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
        exports.

        * loader/FrameNetworkingContext.h: Added an OVERRIDE.

        * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
        no longer keeps track of a globally enabled private CFNetwork storage session.

        * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
        don't have a NetworkingContext pointer, and have to use whatever a client expects
        them to do. Perhaps we should move those methods away from WebCore eventually.

        * platform/network/NetworkingContext.h: Added storageSession().

        * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
        sessions.

        * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
        remember it post-creation to do things in willSendRequest. Alternatively, we could
        keep a reference to NetworkingContext itself.

        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
        there is no globally current one any more. Also, we don't really expect cookie
        stirage to be 0 when not using NSURLConnection.
        (WebCore::cookiesForDOM): Ditto.
        (WebCore::cookieRequestHeaderFieldValue): Ditto.
        (WebCore::cookiesEnabled): Ditto.
        (WebCore::getRawCookies): Ditto.
        (WebCore::deleteCookie): Ditto.
        (WebCore::getHostnamesWithCookies): Ditto.
        (WebCore::deleteCookiesForHostname): Ditto.
        (WebCore::deleteAllCookies): Ditto.
        * platform/network/cf/CookieStorageCFNet.cpp:
        (WebCore::currentCFHTTPCookieStorage): Use a context.
        (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
        this is implemented in a strategy.
        (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.

        * platform/network/cf/CookieStorageCFNet.h: Ditto.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willSendRequest): Use storage session from the context, not global one.
        (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
        function didn't really make any sense on its own.
        (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
        to match Mac.
        (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
        in, removed some seemingly nonsensical code that was getting and immediately re-applying
        cookie storage accept policy.
        (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
        (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
        (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
        access "d".
        (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
        (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
        It didn't match Mac, and nothing in makeFinalRequest should have affected the result.

        * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
        This function used to apply current storage session to every request for no apparent
        reason.

        * platform/network/mac/CookieJarMac.mm:
        (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
        (WebCore::cookieRequestHeaderFieldValue): Ditto.
        (WebCore::setCookiesFromDOM): Ditto.
        (WebCore::cookiesEnabled): Ditto.
        (WebCore::getRawCookies): Ditto.
        (WebCore::deleteCookie): Ditto.
        (WebCore::getHostnamesWithCookies): Ditto.
        (WebCore::deleteCookiesForHostname): Ditto.
        (WebCore::deleteAllCookies): Ditto.
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
        null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
        argument, so that the function can access current session.
        (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
        (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
        (WebCore::ResourceHandle::willLoadFromCache): Style fix.
        (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
        for use in willSendRequest. 
        (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.

2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>

        [Chromium] Land a proper fix for r134939.

        * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
        * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.

2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>

        [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.

2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>

        [Chromium] Updated WebCore.gypi after r134939.

        * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.

2012-11-16  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
        https://bugs.webkit.org/show_bug.cgi?id=101840

        Reviewed by Gustavo Noronha Silva.

        Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
        Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
        be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
        in the manner that the CFNet backend does.

        No new tests. There are tests for this behavior, but they cannot be activated until we finish
        plumbing this through to the API layer. Once that patch lands, the tests will be turned on.

        * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
        storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
        from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
        * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
        credentials to the persistent credential store.
        * platform/network/ResourceHandle.h:
        (ResourceHandle): Add a method which is used to continue asynchronously after looking for
        proposed credentials in the persistent credential store.
        * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
        an authentication succeeded.
        * platform/network/gtk/CredentialBackingStore.cpp:
        (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
        of stored credentials.
        (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
        (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
        * platform/network/gtk/CredentialBackingStore.h:
        (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
        * platform/network/soup/AuthenticationChallenge.h:
        (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
        can set proposed credentials from the persistent credential store.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
        if the authentication succeeded.
        (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
        in the request URI. This is the method that Soup uses to override any soup-stored session credential.
        (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
        authenticating requests from the session store.
        (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
        (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
        Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
        (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
        (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
        into this asynchronous bit.
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
        first looking in the persistent credential store.
        (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
        at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
        for storage later (see gotHeadersCallback).

2012-11-16  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: TypeMismatchError
        https://bugs.webkit.org/show_bug.cgi?id=102418

        Reviewed by Kentaro Hara.

        Patch 17 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:
        (WebCore):
        * dom/ExceptionCode.h:

2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>

        Coordinated Graphics: support the "freeze animations" API
        https://bugs.webkit.org/show_bug.cgi?id=100703

        Reviewed by Noam Rosenthal.

        Typo fix after previous patch.

        No new tests, it's just a typo that only takes effect in the browser.

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
        Initialize members.

2012-11-16  Dan Carney  <dcarney@google.com>

        add 7 bit strings capabilities to the v8 binding layer
        https://bugs.webkit.org/show_bug.cgi?id=91850

        Reviewed by Adam Barth.

        This change enables the v8 binding layer to make use of webkit's
        8 bit string capabilities. Using 8 bit strings leads to certain
        benchmark performance improvemnts as can be seen in
        https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.

        No new tests.  Test coverage already extensive.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::visitExternalStrings):
        * bindings/v8/V8StringResource.cpp:
        (StringTraits):
        (WebCore::false):
        (WebCore):
        (WebCore::true):
        (WebCore::v8StringToWebCoreString):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::makeExternalString):
        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
        (WebCore):
        (WebCore::WebCoreStringResourceBase::visitStrings):
        * bindings/v8/V8ValueCache.h:
        (WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::atomicString):
        (WebCore::WebCoreStringResourceBase::memoryConsumption):
        (WebCoreStringResource16):
        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
        (WebCore):
        (WebCoreStringResource8):
        (WebCore::WebCoreStringResource8::WebCoreStringResource8):

2012-11-16  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: InvalidAccessError
        https://bugs.webkit.org/show_bug.cgi?id=102400

        Reviewed by Kentaro Hara.

        Patch 15 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-16  Alexandru Chiculita  <achicu@adobe.com>

        [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
        https://bugs.webkit.org/show_bug.cgi?id=102414

        Reviewed by Noam Rosenthal.

        Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
        platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
        client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
        used to render any layer on the page. 

        Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
        are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
        extended and reused in the platform compositor.
        
        No new tests, existing tests for CSS Custom Filters already cover this path.

        * CMakeLists.txt:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.pri:
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore):
        * platform/graphics/filters/CustomFilterValidatedProgram.h:
        (WebCore):
        (CustomFilterValidatedProgram):
        * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
        (WebCore):
        (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
        (WebCore::CustomFilterValidatedProgram::platformInit):
        (WebCore::CustomFilterValidatedProgram::platformDestroy):
        * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
        (WebCore):
        (TextureMapperPlatformCompiledProgramClient):
        (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
        (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
        (TextureMapperPlatformCompiledProgram):
        Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
        the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
        (WebCore::TextureMapperPlatformCompiledProgram::create):
        (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
        (WebCore::TextureMapperPlatformCompiledProgram::client):
        (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):

2012-11-16  Andreas Kling  <akling@apple.com>

        Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
        <http://webkit.org/b/102498>

        Reviewed by Antti Koivisto.

        Add a fast path to hasEquivalentAttributes() that checks if both elements are using
        the same ElementAttributeData.

        * dom/Element.cpp:
        (WebCore::Element::hasEquivalentAttributes):

2012-11-16  Zeno Albisser  <zeno@webkit.org>

        [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
        https://bugs.webkit.org/show_bug.cgi?id=102360

        QOpenGLContext::currentContext() will return null, in case there is
        no current context. Therefore currentContext must be null-checked
        before it can be reused.
        Making a context current on a null-surface on the other hand is
        perfectly possible.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):

2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
        https://bugs.webkit.org/show_bug.cgi?id=102488

        Reviewed by Vsevolod Vlasov.

        Panels are lazily loaded / instantiated.
        Panel constructors register keyboard shortcuts.

        When user open shortcuts screen all panel should be loaded.
        Otherwise some shortcuts will be missing.

        * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
        * inspector/front-end/inspector.js:
        Provided callback that loads all panels.

2012-11-16  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove IsSubType() from CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102348

        Reviewed by Adam Barth.

        CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (IsSubType):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GetInternalFields):
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateFunctionCallback):
        (GenerateImplementationIndexer):
        (GenerateToV8Converters):

2012-11-16  Mario Sanchez Prada  <mario@webkit.org>

        [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
        https://bugs.webkit.org/show_bug.cgi?id=99578

        Reviewed by Martin Robinson.

        Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.

        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
        Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
        * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
        Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
        * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
        * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
        * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
        * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
        * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
        * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
        * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
        * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
        * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
        * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
        * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
        * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
        * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
        * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
        Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.

2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>

        Changing pseudoClass (:indeterminate) should cause distribution
        https://bugs.webkit.org/show_bug.cgi?id=101903

        Reviewed by Dimitri Glazkov.

        <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
        invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.

        For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
        progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.

        Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
               fast/dom/shadow/pseudoclass-update-indeterminate-progress.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        (WebCore::HTMLInputElement::setIndeterminate):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::didElementStateChange):

2012-11-16  Alexis Menard  <alexis@webkit.org>

        Factorize the creation of primitive values with a pair into a function.
        https://bugs.webkit.org/show_bug.cgi?id=102485

        Reviewed by Antti Koivisto.

        The pattern is already existing in various call sites inside CSSParser
        and more will be added in the future (see bug 102104).

        No new tests : It's a refactoring only, the tests should cover it.

        * css/CSSParser.cpp:
        (WebCore):
        (WebCore::createPrimitiveValuePair):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFillSize):
        (WebCore::CSSParser::parseBorderImageRepeat):
        (WebCore::CSSParser::parseBorderRadius):
        (WebCore::CSSParser::parseCounter):

2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>

        Expand PlatformCookieJar interface to allow for other ports
        https://bugs.webkit.org/show_bug.cgi?id=102456

        Reviewed by Adam Barth.

        Add firstParty and cookieURL arguments to several functions to
        prepare for integrating Chromium port into new PlatformCookieJar
        interface.

        * loader/CookieJar.cpp:
        (WebCore::cookiesEnabled):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::getRawCookies):
        * platform/network/PlatformCookieJar.h:
        (WebCore):
        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        * platform/network/curl/CookieJarCurl.cpp:
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        * platform/network/mac/CookieJarMac.mm:
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        * platform/network/qt/CookieJarQt.cpp:
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        * platform/network/win/CookieJarWin.cpp:
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):

2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>

        RenderGrid should have a function to resolve grid position
        https://bugs.webkit.org/show_bug.cgi?id=102441

        Reviewed by Ojan Vafai.

        The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
        Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
        on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
        support render areas and add a proper grid model to RenderGrid.

        No expected change in behavior.

        * rendering/RenderGrid.h:
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::resolveGridPosition):
        Added this new function to handle the conversion. We re-use Length but should never see
        a lot of the <length> values so I added some ASSERTs to enforce and catch that.

        (WebCore::RenderGrid::findChildLogicalPosition):
        Simplified the function now that it just use resolveGridPosition.

2012-11-16  Ulan Degenbaev  <ulan@chromium.org>

        [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
        https://bugs.webkit.org/show_bug.cgi?id=94463

        Reviewed by Kentaro Hara.

        Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.

        Test: ManualTests/typed-array-memory.html

        * bindings/v8/SerializedScriptValue.cpp:

2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134694.
        http://trac.webkit.org/changeset/134694
        https://bugs.webkit.org/show_bug.cgi?id=102481

        it made API test crash on EFL port (Requested by gyuyoung on
        #webkit).

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::fillColorsFromEdjeClass):
        (WebCore::RenderThemeEfl::setColorFromThemeClass):
        (WebCore::RenderThemeEfl::loadTheme):
        (WebCore::RenderThemeEfl::RenderThemeEfl):
        * platform/efl/RenderThemeEfl.h:
        (RenderThemeEfl):

2012-11-16  Mike West  <mkwst@chromium.org>

        Web Inspector: Move call stack generation out of bindings.
        https://bugs.webkit.org/show_bug.cgi?id=101331

        Reviewed by Yury Semikhatsky.

        Currently, we generate stack traces for console messages at each call
        site. Bug 100650 has the end goal of moving all stack trace generation
        inside of the Inspector in order to ensure that we never send a console
        message without a stack trace if it's possible to generate one. This
        also ensures that we never generate unused call stacks.

        This patch is the first step in that direction, moving stack trace
        generation out of the Console bindings, and into either Console or
        InspectorConsoleAgent.

        No visible change in behavior should result; this refactoring should
        continue to pass all existing inspector tests.

        * bindings/js/JSConsoleCustom.cpp:
        (WebCore::JSConsole::profile):
        (WebCore::JSConsole::profileEnd):
            Adjust custom JSC Console bindings to drop call stack generation.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateCallWith):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateCallWith):
            Drop call stack generation from JSC and V8 bindings.
        * bindings/scripts/CodeGeneratorGObject.pm:
            Skip timeEnd explicitly in these bindings; it used to include
            ScriptArguments, which autoskipped it. Now it doesn't, so it needs
            to be called out on its own.
        * bindings/v8/ScriptCallStackFactory.cpp:
        (WebCore::createScriptCallStackForConsole):
        (WebCore::createScriptCallStack):
        (WebCore):
        * bindings/v8/ScriptCallStackFactory.h:
        (WebCore):
            Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
            ScriptCallStackFactory in order to match JCS' implementation.
            It simply delegates to 'createScriptCallStackForConsole', which
            now also accepts a 'maxStackSize' parameter.
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::traceCallback):
        (WebCore::V8Console::assertCallback):
        (WebCore::V8Console::profileCallback):
        (WebCore::V8Console::profileEndCallback):
            Adjust custom V8 bindings to drop call stack generation.
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
            With the eventual goal of getting rid of the call stack parameter
            entirely, this patch drops it from one version of
            'addMessageToConsole' (replacing it with ScriptState*), and creates
            a new version that only accepts a call stack. We should be able to
            migrate most (all?) external call sites over to the arguments
            version in future patches.
        (WebCore):
        (WebCore::InspectorConsoleAgent::count):
            Count takes 'ScriptState*' instead of a call stack, and generates
            the stack as needed.
        * inspector/InspectorConsoleAgent.h:
        (InspectorConsoleAgent):
        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::addMessageToConsole):
        (WebCore):
        (WebCore::InspectorInstrumentation::consoleCount):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
        (WebCore::InspectorInstrumentation::consoleCountImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
            Changes the InspectorInstrumentation pipeline to match the
            InspectorConsoleAgent changes.
        * page/Console.cpp:
        (WebCore::Console::addMessage):
            We now (always) generate one frame of a stack trace in order to
            populate line numbers and caller URLs. If we need to print the whole
            trace here, we generate a full stack.
        (WebCore::Console::debug):
        (WebCore::Console::error):
        (WebCore::Console::info):
        (WebCore::Console::log):
        (WebCore::Console::warn):
        (WebCore::Console::dir):
        (WebCore::Console::dirxml):
        (WebCore::Console::clear):
        (WebCore::Console::trace):
        (WebCore::Console::assertCondition):
        (WebCore::Console::count):
        (WebCore::Console::markTimeline):
        (WebCore::Console::timeEnd):
        (WebCore::Console::timeStamp):
        (WebCore::Console::group):
        (WebCore::Console::groupCollapsed):
        (WebCore::Console::profile):
        (WebCore::Console::profileEnd):
            s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
            has been moved out of 'trace' and into 'addMessage'.
        * page/Console.h:
        (Console):
        * page/Console.idl:
            Drop the call stack, add the script state.
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::addMessageToWorkerConsole):
            Use the new, explicitly call stacked addMessageToConsole. We'll kill
            this in a future patch.

2012-11-16  Marja Hölttä  <marja@chromium.org>

        Add initiator to CachedResourceRequest.
        https://bugs.webkit.org/show_bug.cgi?id=101935

        Reviewed by Adam Barth.

        Motivation: Chromium needs to know which elements request a
        resource (such as an image or a script) (bug 92761). In addition,
        for exposing resource timing information (bug 84883) we need to
        store the initiator, and this is the first step towards it.

        No new tests: No visible change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::cachedImage):
        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::cachedFont):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::cachedImageSet):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::cachedImage):
        * css/CSSImageValue.h:
        (WebCore):
        (CSSImageValue):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingImage):
        * css/StyleRuleImport.cpp:
        (WebCore::StyleRuleImport::requestStyleSheet):
        * css/WebKitCSSSVGDocumentValue.cpp:
        (WebCore::WebKitCSSSVGDocumentValue::load):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::cachedShader):
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::requestScript):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):
        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::emitRule):
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::preload):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestImage):
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
        (WebCore):
        (WebCore::CachedResourceLoader::preload):
        * loader/cache/CachedResourceLoader.h:
        (WebCore):
        (CachedResourceLoader):
        * loader/cache/CachedResourceRequest.cpp:
        (WebCore::CachedResourceRequest::CachedResourceRequest):
        (WebCore):
        (WebCore::CachedResourceRequest::~CachedResourceRequest):
        (WebCore::CachedResourceRequest::setInitiator):
        (WebCore::CachedResourceRequest::initiatorName):
        (WebCore::CachedResourceRequest::initiatorDocument):
        (WebCore::CachedResourceRequest::initiatorElement):
        * loader/cache/CachedResourceRequest.h:
        (WebCore):
        (WebCore::CachedResourceRequest::setOptions):
        (WebCore::CachedResourceRequest::defer):
        (WebCore::CachedResourceRequest::setDefer):
        (CachedResourceRequest):
        * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
        (WebCore):
        (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
        * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
        (WebCore):
        (CachedResourceRequestInitiators):
        (WebCore::cachedResourceRequestInitiators):
        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::startLoading):
        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::ThreadGlobalData):
        * platform/ThreadGlobalData.h:
        (WebCore):
        (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
        (ThreadGlobalData):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::requestImageResource):
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::loadFont):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::svgAttributeChanged):

2012-11-16  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: don't show an Error when evaluating a watch expression results in an exception
        https://bugs.webkit.org/show_bug.cgi?id=102470

        Reviewed by Vsevolod Vlasov.

        Dim watch expression and show "<not available>" as its value in cases when it evaluates
        into an exception.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionTreeElement.prototype.update):
        * inspector/front-end/inspector.css:

2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
        https://bugs.webkit.org/show_bug.cgi?id=102476

        Unreviewed rolling out.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/AdvancedSearchController.js:
        * inspector/front-end/CallStackSidebarPane.js:
        (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._registerShortcuts):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype._registerShortcuts):
        * inspector/front-end/ElementsPanelDescriptor.js:
        * inspector/front-end/GoToLineDialog.js:
        (WebInspector.GoToLineDialog.install):
        * inspector/front-end/KeyboardShortcut.js:
        (WebInspector.KeyboardShortcut._keyName):
        * inspector/front-end/Panel.js:
        (WebInspector.Panel.prototype.registerShortcut):
        (WebInspector.Panel.prototype.unregisterShortcut):
        (WebInspector.PanelDescriptor.prototype.panel):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
        (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
        * inspector/front-end/ScriptsPanelDescriptor.js:
        * inspector/front-end/ShortcutsScreen.js:
        (WebInspector.ShortcutsScreen):
        (WebInspector.ShortcutsSection):
        (WebInspector.ShortcutsSection.prototype._renderKey):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._registerShortcuts):
        * inspector/front-end/TimelinePanelDescriptor.js: Removed.
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:
        (WebInspector._panelDescriptors):
        (WebInspector._registerShortcuts):

2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Memory Timeline Crash
        https://bugs.webkit.org/show_bug.cgi?id=102390

        Reviewed by Vsevolod Vlasov.

        Crash seems to be caused by IPC overflow.
        Messages "ParsedScriptSource" are routed to
        ResourceScriptMapping.prototype.addScript that process them in time
        linear to number of already registered non-anonymous non-inline scripts.

        Fixed this with replacing repreated filtering with "on-line" bucketing.

        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping):
        Removed duplicating initialization code.
        (WebInspector.ResourceScriptMapping.prototype.addScript):
        Added script bucketing by sourceURL/isInline parameters.
        (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
        Avoid filterfig.
        (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
        Added outgoing muatable array safeguard.
        (WebInspector.ResourceScriptMapping.prototype._reset):
        Added type information and added two new maps.

2012-11-16  Helder Correia  <helder.correia@nokia.com>

        [CoordGfx] Follow coding style on explicit constructors
        https://bugs.webkit.org/show_bug.cgi?id=102451

        Reviewed by Noam Rosenthal.

        Use the explicit keyword on single argument constructors.

        No new tests needed.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapper.h:
        (TextureMapper):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (WebCore::TextureMapperTile::TextureMapperTile):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
        (WebCore::TextureMapperGLData::TextureMapperGLData):
        * platform/graphics/texmap/TextureMapperGL.h:
        (BitmapTextureGL):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderManager):

2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>

        Add DeviceController base-class to remove duplication of DeviceXXXControler
        https://bugs.webkit.org/show_bug.cgi?id=96894

        Reviewed by Hajime Morita.

        Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
        And soon-to-be-added DeviceMotionController and ProximityController.

        Covered by existing tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DeviceOrientationClient.h:
        * dom/DeviceOrientationController.cpp:
        Remove member functions to move to DeviceController.
        - addListener(), removeListener(), removeAllListeners(), isActive()
        (WebCore::DeviceOrientationController::DeviceOrientationController):
        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
        (WebCore::DeviceOrientationController::client):
        (WebCore::DeviceOrientationController::hasLastData):
        (WebCore::DeviceOrientationController::getLastEvent):
        (WebCore::DeviceOrientationController::from):
        (WebCore):
        * dom/DeviceOrientationController.h:
        (WebCore):
        (WebCore::DeviceOrientationController::~DeviceOrientationController):
        (DeviceOrientationController):
        * dom/Document.cpp:
        Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
        These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
        (WebCore::Document::suspendActiveDOMObjects):
        (WebCore::Document::resumeActiveDOMObjects):
        * loader/EmptyClients.h:
        (EmptyDeviceClient):
        (WebCore::EmptyDeviceClient::startUpdating):
        (WebCore::EmptyDeviceClient::stopUpdating):
        (WebCore):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        * page/DeviceClient.h: Added.
        (WebCore):
        (DeviceClient):
        (WebCore::DeviceClient::~DeviceClient):
        * page/DeviceController.cpp: Added.
        DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
        - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
        All kind of device event controller which has DeviceClient can be inherited from DeviceController.
        (WebCore):
        (WebCore::DeviceController::DeviceController):
        (WebCore::DeviceController::addDeviceEventListener):
        (WebCore::DeviceController::removeDeviceEventListener):
        (WebCore::DeviceController::removeAllDeviceEventListeners):
        (WebCore::DeviceController::dispatchDeviceEvent):
        (WebCore::DeviceController::fireDeviceEvent):
        * page/DeviceController.h: Added.
        (WebCore):
        (DeviceController):
        (WebCore::DeviceController::~DeviceController):
        (WebCore::DeviceController::isActive):
        (WebCore::DeviceController::client):
        (WebCore::DeviceController::hasLastData):
        (WebCore::DeviceController::getLastEvent):

2012-11-16  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
        https://bugs.webkit.org/show_bug.cgi?id=102467

        Reviewed by Pavel Feldman.

        Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
        Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
        so that they will get restored only upon page navigation, not upon any agent enablement.

        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
        (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.

2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134908.
        http://trac.webkit.org/changeset/134908
        https://bugs.webkit.org/show_bug.cgi?id=102473

        Broke the Apple Windows Debug build. (Requested by dydx on
        #webkit).

        * WebCore.exp.in:
        * dom/ViewportArguments.cpp:
        (WebCore::computeViewportAttributes):
        * dom/ViewportArguments.h:
        (WebCore):

2012-11-16  Peter Rybin  <prybin@chromium.org>

        Web Inspector: show internal properties in inspector frontend
        https://bugs.webkit.org/show_bug.cgi?id=100021

        Reviewed by Yury Semikhatsky.

        New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.

        Test: inspector/debugger/properties-special.html

        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertiesSection.prototype.update.callback):
        (WebInspector.ObjectPropertiesSection.prototype.update):
        (.callback):
        (WebInspector.ObjectPropertyTreeElement.populate):
        (.processProperties):
        (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
        (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
        * inspector/front-end/RemoteObject.js:
        (WebInspector.RemoteObject.prototype.set else):

2012-11-06  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
        https://bugs.webkit.org/show_bug.cgi?id=93691

        Reviewed by Vsevolod Vlasov.

        - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
        both receiving a new, more light-weight design.
        - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/ContextMenu.js:
        (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
        * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
        (WebInspector.OverridesView.appendBlockTo):
        (WebInspector.OverridesView):
        (WebInspector.OverridesView.showInDrawer):
        (WebInspector.OverridesView.prototype.get listener):
        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
        (WebInspector.OverridesView.prototype._createInput):
        (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
        (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
        (WebInspector.OverridesView.prototype.):
        (WebInspector.OverridesView.prototype.set if):
        (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
        (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
        (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
        (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
        (WebInspector.OverridesView.prototype._setGeolocationPosition):
        (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
        (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
        (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
        (WebInspector.OverridesView.prototype._setDeviceOrientation):
        (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsTab):
        (WebInspector.SettingsTab.prototype._appendSection):
        (WebInspector.GenericSettingsTab):
        (WebInspector.ExperimentsSettingsTab):
        (WebInspector.SettingsController): Implement the popup menu upon the button click.
        (WebInspector.SettingsController.prototype.showOverrides):
        (WebInspector.SettingsController.prototype.showSettings):
        (WebInspector.SettingsController.prototype.appendApplicableItems):
        (WebInspector.SettingsController.prototype._buttonPressed):
        (WebInspector.SettingsController.prototype._onHideSettingsScreen):
        (WebInspector.SettingsController.prototype.showSettingsScreen):
        * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
        (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
        * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
        (WebInspector.SoftContextMenu.prototype.show):
        * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
        (WebInspector.TabbedPane.prototype.set verticalTabLayout):
        (WebInspector.TabbedPane.prototype._updateWidths):
        (WebInspector.TabbedPaneTab.prototype.setWidth):
        (WebInspector.TabbedPaneTab.prototype._createTabElement):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
        * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
        (.soft-context-menu-item):
        (.drawer-header):
        * inspector/front-end/inspector.html:

2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134865.
        http://trac.webkit.org/changeset/134865
        https://bugs.webkit.org/show_bug.cgi?id=102466

        Broke the Apple Windows Debug build. (Requested by dydx on
        #webkit).

        * WebCore.exp.in:
        * bindings/js/SerializedScriptValue.h:
        * testing/Internals.cpp:
        * testing/Internals.h:
        (WebCore):
        * testing/Internals.idl:

2012-11-16  Takashi Sakamoto  <tasak@google.com>

        ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
        https://bugs.webkit.org/show_bug.cgi?id=102116

        Reviewed by Alexander Pavlov.

        Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
        rules. Since there is no CSSOM wrapper for @host @-rules and
        ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
        this crash occurs.

        Tests: fast/css/at-host-cssom-crash.html
               inspector/styles/styles-include-host-rules-crash.html

        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        Return a CSSUnknownRule instance for StyleRuleHost rules instead of
        calling ASSERT_NOT_REACHED().

2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        Avoid copying of ViewportArguments in computeViewportAttributes function
        https://bugs.webkit.org/show_bug.cgi?id=102354

        Reviewed by Kenneth Rohde Christiansen.

        Since r134749 we do not need copying of ViewportArguments parameter in
        computeViewportAttributes() as it is not modified any more.

        Tested by existing tests fast/viewport.

        * WebCore.exp.in: Updated exported symbols for MAC.
        * dom/ViewportArguments.cpp:
        (WebCore::computeViewportAttributes):
        * dom/ViewportArguments.h:
        (WebCore):

2012-11-15  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
        https://bugs.webkit.org/show_bug.cgi?id=102384

        Reviewed by Pavel Feldman.

        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
        if the check fails.
        * inspector/MemoryInstrumentationImpl.h:
        (MemoryInstrumentationClientImpl):

2012-11-15  Jer Noble  <jer.noble@apple.com>

        Crash at WebCore::PluginData::pluginFileForMimeType const + 38
        https://bugs.webkit.org/show_bug.cgi?id=102454

        Reviewed by Dan Bernstein.

        NULL-check the return value of Page::pluginData().

        * loader/SubframeLoader.cpp:
        (WebCore::logPluginRequest):

2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] Unreviewed build fix attempt on win

        Include OpenTypeVerticalData.h

        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
        (WebCore):

2012-11-15  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r134881.
        http://trac.webkit.org/changeset/134881
        https://bugs.webkit.org/show_bug.cgi?id=102348

        http/tests/appcache tests on JSC platforms are broken

        * bindings/scripts/CodeGenerator.pm:
        (IsStrictSubtype):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GetInternalFields):
        (IsSubType):
        (IsNodeSubType):
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateFunctionCallback):
        (GenerateImplementationIndexer):
        (GenerateToV8Converters):

2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
        https://bugs.webkit.org/show_bug.cgi?id=102420

        Reviewed by Gyuyoung Kim.

        Moved out texture upload without swizzle to the separate method and changed
        drawRepaintCounter to use no-swizzle method. This also fixes blue background
        of repaint counters in Qt Minibrowser.
        Added condition for sub-image buffer creation to not create it if full image is
        uploaded. This should give noticeable improvement for platforms that do not
        support sub-image upload to texture.

        Covered by existing tests.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawRepaintCounter):
        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
        (WebCore):
        (WebCore::BitmapTextureGL::updateContents):
        * platform/graphics/texmap/TextureMapperGL.h:
        (BitmapTextureGL):

2012-11-15  Kent Tamura  <tkent@chromium.org>

        A Spin button should release mouse event capturing when a modal dialog opens
        https://bugs.webkit.org/show_bug.cgi?id=98007

        Reviewed by Hajime Morita.

        Description of bug:
        If the mouse left button is pressed on a spin button in
        input[type=number] and a 'change' event handler opens a modal dialog
        such as alert(), a repeating timer doesn't stop and mouse event
        capturing isn't released even though the mouse pointer isn't on the spin
        button.
        A user will see repeating alert dialogs for a document like <input
        type=number value=1 onchange="if (this.value==1) {alert(...);
        this.value=1;}"> by clicking the up button.

        How to solve:
        We should notify modal dialog or popup open to a spin button.
        This patch introduce PopupOpeningObserver. Chrome notifies it when
        any dialogs / popups is opening. SpinButtonElement implements
        PopupOpeningObserver and registers/unregisters itself to/from
        Chrome.

        No new tests. This is a behavior change, but it's very hard to make an
        automated test for timer-related behavior.

        * page/PopupOpeningObserver.h: Added.
        * GNUmakefile.list.am: Add PopupOpeningObserver.h
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * page/Chrome.cpp:
        (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
        (WebCore::Chrome::runJavaScriptConfirm): Ditto.
        (WebCore::Chrome::runJavaScriptPrompt): Ditto.
        (WebCore::Chrome::createColorChooser): Ditto.
        (WebCore::Chrome::openDateTimeChooser):
        Added. Calls notifyPopupOpeningObservers before calling
        ChromeClient::openDateTimeChooser.
        (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
        (WebCore::Chrome::createPopupMenu): Ditto.
        (WebCore::Chrome::createSearchPopupMenu): Ditto.
        (WebCore::Chrome::registerPopupOpeningObserver): Added.
        (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
        (WebCore::Chrome::notifyPopupOpeningObservers): Added.
        * page/Chrome.h: Added new members and required class/struct declarations.

        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
        Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
        * html/shadow/PickerIndicatorElement.cpp:
        (WebCore::PickerIndicatorElement::openPopup): Ditto.

        * html/shadow/SpinButtonElement.h:
        (SpinButtonElement): Declare willOpenPopup.
        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::defaultEventHandler):
        Change the order of timer start and changing the value so that we
        can cancel the timer correctly.
        Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
        (WebCore::SpinButtonElement::willOpenPopup):
        Release mouse event capturing before opening a modal dialog.
        (WebCore::SpinButtonElement::releaseCapture):
        Calls Chrome::unregisterPopupOpeningObserver.


2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>

        Chaging pseudoClass (:enabled) should cause distribution
        https://bugs.webkit.org/show_bug.cgi?id=101900

        Reviewed by Dimitri Glazkov.

        When element's 'enabled' state is changed, we have to invalidate distribution.

        According to the spec, :enabled matches anchor/area/link element having href attribute,
        and several form control elements which is not disabled. However, currently :enalbed does not match
        anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349

        Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
               fast/dom/shadow/pseudoclass-update-enabled-area.html
               fast/dom/shadow/pseudoclass-update-enabled-button.html
               fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
               fast/dom/shadow/pseudoclass-update-enabled-input.html
               fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
               fast/dom/shadow/pseudoclass-update-enabled-option.html
               fast/dom/shadow/pseudoclass-update-enabled-select.html
               fast/dom/shadow/pseudoclass-update-enabled-textarea.html

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::disabledAttributeChanged):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::parseAttribute):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::parseAttribute):

2012-11-15  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: ValidationError
        https://bugs.webkit.org/show_bug.cgi?id=102416

        Reviewed by Kentaro Hara.

        Patch 16 of 25 to update DOMException name to match the spec and Firefox.

        VALIDATION_ERR is historical and not used in any spec or our code.

        * dom/DOMCoreException.cpp:
        * dom/ExceptionCode.h:

2012-11-15  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove IsSubType() from CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102348

        Reviewed by Adam Barth.

        CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (IsSubType):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GetInternalFields):
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateFunctionCallback):
        (GenerateImplementationIndexer):
        (GenerateToV8Converters):

2012-11-15  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: NamespaceError
        https://bugs.webkit.org/show_bug.cgi?id=102395

        Reviewed by Kentaro Hara.

        Patch 14 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-15  Tien-Ren Chen  <trchen@chromium.org>

        Add Settings to disable custom scrollbars on main frame
        https://bugs.webkit.org/show_bug.cgi?id=102323

        Reviewed by Adam Barth.

        Custom scrollbars on main frame don't really work well on touch devices.
        Add a setting to inhibit their creation.

        No new tests. No change in default layout behavior.

        * page/FrameView.cpp:
        (WebCore::FrameView::createScrollbar):
        * page/Settings.in:

2012-11-15  Rick Byers  <rbyers@chromium.org>

        custom CSS cursors ignore hotspot values embedded in CUR files
        https://bugs.webkit.org/show_bug.cgi?id=100059

        Reviewed by Kenneth Russell.

        Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
        and plumb it through so that the existing calls to ImageSource::getHotSpot
        actually return the hot spot value when there is one.

        Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html

        * platform/graphics/ImageSource.cpp:
        (WebCore::ImageSource::getHotSpot):
        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::hotSpot):
        (WebCore::DeferredImageDecoder::hotSpotAtIndex):
        * platform/graphics/chromium/DeferredImageDecoder.h:
        (DeferredImageDecoder):
        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageDecoder::hotSpot):
        (WebCore::ImageDecoder::hotSpotAtIndex):
        (ImageDecoder):
        * platform/image-decoders/ico/ICOImageDecoder.cpp:
        (WebCore::ICOImageDecoder::hotSpot):
        (WebCore::ICOImageDecoder::hotSpotAtIndex):
        (WebCore::ICOImageDecoder::processDirectory):
        (WebCore::ICOImageDecoder::readDirectoryEntry):
        * platform/image-decoders/ico/ICOImageDecoder.h:
        (ICOImageDecoder):
        (IconDirectoryEntry):

2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>

        Make OpenTypeVerticalData be ref-counted
        https://bugs.webkit.org/show_bug.cgi?id=101971

        Reviewed by Tony Chang.

        FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
        OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
        via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
        SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
        delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
        it be ref-counted.

        No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.

        * platform/graphics/FontCache.cpp:
        (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
        (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
        (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
        * platform/graphics/FontCache.h:
        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):
        * platform/graphics/SimpleFontData.h:
        Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
        (WebCore::SimpleFontData::verticalData):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
        (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
        (FontPlatformData):
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
        (WebCore::FontPlatformData::verticalData): Ditto.
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
        (WebCore):
        (FontPlatformData):
        * platform/graphics/opentype/OpenTypeVerticalData.h:
        (WebCore::OpenTypeVerticalData::create): Added.
        (OpenTypeVerticalData):

2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>

        Optimize the multiply-add in Biquad.cpp::process
        https://bugs.webkit.org/show_bug.cgi?id=75528

        Reviewed by Brent Fulgham.

        Pipeline the multiply-add with SSE2 intrinsics.
        Get ~45% performance improvement for the function.

        * platform/audio/Biquad.cpp:
        (WebCore::Biquad::process):

2012-11-15  Alec Flett  <alecflett@chromium.org>

        Add tests for explicit serialization values
        https://bugs.webkit.org/show_bug.cgi?id=96818

        Reviewed by Adam Barth.

        Expose direct access to the serialization/deserialization mechanisms
        of SerializedScriptValue to DumpRenderTree.

        * testing/Internals.cpp:
        (WebCore::Internals::serializeObject):
        (WebCore):
        (WebCore::Internals::deserializeBuffer):
        * testing/Internals.h:
        (WebCore):
        * testing/Internals.idl:

2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>

        [GTK] Split WebCore/platform into a separate library
        https://bugs.webkit.org/show_bug.cgi?id=94435

        Reviewed by Martin Robinson.

        More people have been reporting problems when linking WebCore because
        the command line limit is being exceeded. Splitting WebCore a bit more
        is in order.

        * GNUmakefile.am: add new libWebCorePlatform convenience library.
        * GNUmakefile.list.am: move list of platform/* files to its own variable.

2012-11-15  Luke Macpherson   <macpherson@chromium.org>

        Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102036

        Reviewed by Darin Adler.

        Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.

        No tests added because code is unused, and compile is enough to verify that conculsively.

        * css/StyleResolver.cpp:

2012-11-15  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: SyntaxError
        https://bugs.webkit.org/show_bug.cgi?id=102279

        Reviewed by Kentaro Hara.

        Patch 12 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-15  Takashi Sakamoto  <tasak@google.com>

        [Win] key event's location does not work on Windows platform.
        https://bugs.webkit.org/show_bug.cgi?id=89742

        Reviewed by Brent Fulgham.

        As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
        directly provide a virtual keycode which distinguish between left-hand
        and right-hand keys. To obtain a virtual keycode, we have to look at
        lparam, i.e. scancode and extended key bit. So if the given virtual
        keycode is control, shift, or menu, use MapVirtualKey with scancode and
        extended key bit and recreate a virtual keycode which distinguishes
        between left-hand and right-hand.

        No new tests, because left-hand keys, right-hand keys layout tests
        have been already added.

        * platform/win/KeyEventWin.cpp:
        (WebCore::windowsKeycodeWithLocation):
        Use wparam and lparam to recreate a virtual keycode which distinguishes
        between left-hand and right-hand if the given wparam (=virtual keycode)
        is control, shift, or menu.
        (WebCore):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        Use the newly added function to obtain windows virtual keycode.

2012-11-15  Joe Mason  <jmason@rim.com>

        [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
        https://bugs.webkit.org/show_bug.cgi?id=102436

        Reviewed by Rob Buis.

        The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
        taking auth of its own. First we get a 407 from the proxy, and then when get past the
        proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
        type Proxy instead of HTTP.

        The correct thing to do when that happens is skip the "update the auth type in the
        credentials" step, since these are actually new credentials and not just credentials being
        reused for a different auth type on the same server.

        PR 241637

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyAuthReceived):

2012-11-15  Stephen Chenney  <schenney@chromium.org>

        mpath elements do not clear resource lists before destruction
        https://bugs.webkit.org/show_bug.cgi?id=101505

        Reviewed by Abhishek Arya.

        The destructor for SVGMPathElement should clear its resources before
        deletion, so as not to leave hanging pointers in resource lists.

        Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html

        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
        (WebCore):
        * svg/SVGMPathElement.h:
        (SVGMPathElement): Add destructor.

2012-11-15  Kentaro Hara  <haraken@chromium.org>

        Remove CodeGenerator::StripModule
        https://bugs.webkit.org/show_bug.cgi?id=102338

        Reviewed by Adam Barth.

        Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
        We can remove CodeGenerator::StripModule.
        This might break some internal builds if the internal builds are still
        using modules. Ping haraken@ you observe it.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ForAllParents):
        (AttributeNameForGetterAndSetter):
        (IsStrictSubtype):
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GetClassName):
        (GetImplClassName):
        (GetParentImplClassName):
        (GetParent):
        (ConversionNeeded):
        (GetCPPTypeGetter):
        (AddForwardDeclarationsForType):
        (AddIncludesForType):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetParentClassName):
        (GetParentGObjType):
        (GetClassName):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GetParentClassName):
        (AddIncludesForTypeInImpl):
        (AddIncludesForTypeInHeader):
        (GenerateParametersCheckExpression):
        (GenerateImplementation):
        (GenerateParametersCheck):
        (GetNativeTypeFromSignature):
        (JSValueToNative):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GetClassName):
        (GetImplClassName):
        (GetParentImplClassName):
        (GetParentAndProtocols):
        (GetPropertyAttributes):
        (ConversionNeeded):
        (GetObjCTypeGetter):
        (AddForwardDeclarationsForType):
        (AddIncludesForType):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (AddIncludesForType):
        (GenerateHeader):
        (IsSubType):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):
        (BaseInterfaceName):
        (GetTypeFromSignature):
        (IsWrapperType):

2012-11-15  Luke Macpherson   <macpherson@chromium.org>

        Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
        https://bugs.webkit.org/show_bug.cgi?id=101696

        Reviewed by Tony Chang.

        Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
        This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.

        No new tests / covered by all existing CSS tests.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2012-11-15  Kentaro Hara  <haraken@chromium.org>

        [V8] Remove redundant $interfaceName from function parameters
        https://bugs.webkit.org/show_bug.cgi?id=102334

        Reviewed by Adam Barth.

        'sub func { my $dataNode = shift; my $interfaceName = shift; }'
        is redundant. We can get $interfaceName by $dataNode->name.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateOpaqueRootForGC):
        (GenerateHeader):
        (GenerateConstructorGetter):
        (GenerateNormalAttrGetter):
        (GenerateReplaceableAttrSetter):
        (GenerateNormalAttrSetter):
        (GenerateOverloadedFunctionCallback):
        (GenerateFunctionCallback):
        (GenerateOverloadedConstructorCallback):
        (GenerateSingleConstructorCallback):
        (GenerateConstructorCallback):
        (GenerateEventConstructorCallback):
        (GenerateTypedArrayConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateBatchedAttributeData):
        (GenerateImplementation):
        (GenerateToV8Converters):
        (GetNativeTypeForConversions):

2012-11-15  Simon Fraser  <simon.fraser@apple.com>

        Ensure that scrollbar layers show debug borders
        https://bugs.webkit.org/show_bug.cgi?id=102429

        Reviewed by Anders Carlsson.

        After r133517, scrollbar layers no longer showed debug borders, which
        was very confusing. Fix this by explicitly calling setShowDebugBorder()
        on the scrollbar-related layers owned by RenderLayerCompositor
        and RenderLayerBacking.
        
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateDebugIndicators):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

2012-11-15  Andreas Kling  <akling@apple.com>

        ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
        <http://webkit.org/b/102423>

        Reviewed by Anders Carlsson.

        Use Element::getAttributeItem() to find out if the element has a given attribute
        instead of fastHasAttribute() since that causes assertions for the "style" attribute.

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

2012-11-15  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: DOMStringSizeError
        https://bugs.webkit.org/show_bug.cgi?id=102089

        Reviewed by Ojan Vafai.

        Patch 2 of 25 to update DOMException name to match the spec and Firefox.

        DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.

        * dom/DOMCoreException.cpp:
        * dom/ExceptionCode.h:

2012-11-15  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Indexing tests are flaky-crashing
        https://bugs.webkit.org/show_bug.cgi?id=102283

        Reviewed by Tony Chang.

        Processing the final task can cause IDBTransactionBackendImpl references to be released
        by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
        swapping queues) control would fall off the end of the function. The loop termination
        check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
        the method completes.

        Test: storage/indexeddb/transaction-crash-in-tasks.html

        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
        (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
        (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.

2012-11-15  Elliott Sprehn  <esprehn@chromium.org>

        MutationObserver wrapper should not be collected while still observing
        https://bugs.webkit.org/show_bug.cgi?id=102328

        Reviewed by Adam Barth.

        Make MutationObserver an ActiveDOMObject so that the wrapper is not
        collected while it is still observing the DOM. This is needed because
        the wrapper is passed into the callback and expandos on the wrapper
        should be preserved.

        Test: fast/mutation/observer-wrapper-dropoff.html

        * bindings/js/JSMutationObserverCustom.cpp:
        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallback):
        * dom/MutationObserver.cpp:
        (WebCore::MutationObserver::create):
        (WebCore::MutationObserver::MutationObserver):
        (WebCore::MutationObserver::observationStarted):
        (WebCore::MutationObserver::observationEnded):
        * dom/MutationObserver.h:
        (WebCore):
        * dom/MutationObserver.idl:

2012-11-15  Tony Chang  <tony@chromium.org>

        Generate Settings from a .in file
        https://bugs.webkit.org/show_bug.cgi?id=100393

        Reviewed by Adam Barth.

        Generate most settings from an .in file to reduce human mistakes and
        to make it easier to add/remove new settings.

        I only moved settings that are easy to move at this point.  There are many more that
        have some minor naming inconsistencies that we can also move to Settings.in, but I'll
        do that in a follow up patch.

        This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.

        No new tests, this is a refactor.

        * CMakeLists.txt:
        * DerivedSources.make: Run make_settings.pl.
        * DerivedSources.pri: Run make_settings.pl.
        * GNUmakefile.am: Run make_settings.pl.
        * GNUmakefile.list.am:
        * WebCore.exp.in: Remove functions that are now inline in the header.
        * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
        * WebCore.gyp/scripts/action_makenames.py:
        (main): Allow make_settings.pl.
        * WebCore.order: Remove functions that are now inline in the header.
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
        * page/Settings.h:
        (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
        * page/Settings.in: Added.
        * page/make_settings.pl: Added.
        (defaultItemFactory):
        (generateCode):
        (generateHeader): Use a similar model as make_names.pl.
        (printConditionalMacros):
        (printGettersAndSetters):
        (printMemberVariables):
        (printGetterAndSetter):
        (printInitializerList):
        (printInitializer):

2012-11-15  Alpha Lam  <hclam@chromium.org>

        [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
        https://bugs.webkit.org/show_bug.cgi?id=102019

        Reviewed by Stephen White.

        Goal of this change is to keep ImageDecodingStore clean and only do
        image caching. Logic of creating lazily decoded SkBitmaps is moved into
        DeferredImageDecoder.

        In particular these two methods are moved:
        - ImageDecodingStore::createLazyDecodedSkBitmap
        - ImageDecodingStore::resizeLazyDecodedSkBitmap

        No new tests. There is no new code (really). It is just moved from
        ImageDecodingStore to DeferredImageDecoder.

        No change in behavior. Code is tested with:
        Unit tests: webkit_unit_tests
        Layout test: platform/chromium/virtual/deferred

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::isLazyDecoded):
        (WebCore):
        (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
        (WebCore::DeferredImageDecoder::setData):
        (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
        * platform/graphics/chromium/DeferredImageDecoder.h:
        (WebCore):
        (DeferredImageDecoder):
        * platform/graphics/chromium/ImageDecodingStore.cpp:
        * platform/graphics/chromium/ImageDecodingStore.h:
        (ImageDecodingStore):
        * platform/graphics/chromium/ImageFrameGenerator.cpp:
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        * platform/graphics/chromium/ImageFrameGenerator.h:
        (WebCore::ImageFrameGenerator::create):
        (ImageFrameGenerator):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::resizedBitmap):

2012-11-15  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Build fix for Windows after r134767.

        Update vsprops and vcproj files to reflect changes to file locations in r134767.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/WebCoreCommon.vsprops:

2012-11-15  Elliott Sprehn  <esprehn@chromium.org>

        Track subframe count to avoid traversing the tree when there's no subframes
        https://bugs.webkit.org/show_bug.cgi?id=101821

        Reviewed by Ojan Vafai.

        Bug 101619 showed a 9-14% improvement from not walking the children during
        removeChild looking for frames when there's known to be no frames. The fix
        in that bug only avoids this walk when the whole document has no frames, this
        patch extends it to skip traversing subtrees that have no iframes by hooking
        the frame assignment to walk up the tree and keep track of the count of frames
        in the subtree on contentFrame assignment and then decrement it on disconnect.

        No new tests, this is just a perf refactor.

        * dom/ContainerNode.cpp:
        (WebCore::willRemoveChildren):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildFrameDisconnector::collectFrameOwners):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
        (ChildFrameDisconnector):
        (WebCore::ChildFrameDisconnector::collectFrameOwners):
          Renamed from collectDescendant() to better reflect what it really does.
        (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
          Renamed from disconnect() to better reflect what it really does.
        (WebCore::ChildFrameDisconnector::disconnect):
          New method that does the collection of frame owners on either the root
          or only it's descendants.
        * dom/Node.cpp:
        (WebCore::Node::connectedSubframeCount):
        (WebCore::Node::incrementConnectedSubframeCount):
        (WebCore::Node::decrementConnectedSubframeCount):
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::connectedSubframeCount):
        (WebCore::NodeRareData::incrementConnectedSubframeCount):
        (WebCore::NodeRareData::decrementConnectedSubframeCount):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::setContentFrame):
        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):

2012-11-15  Alpha Lam  <hclam@chromium.org>

        [chromium] WebGL texImage2D fails with deferred image decoding
        https://bugs.webkit.org/show_bug.cgi?id=102310

        Reviewed by Kenneth Russell.

        Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
        to decode an image. When deferred image decoding is enabled this class
        generates an ImageFrame marked as incomplete, which WebGL rejects. This results
        in failing of texImage2D.

        This change uses ImageDecoder directly instead of ImageSource. This skips
        the code path of deferred image decoding. This behavior is correct because
        GraphicsContext3D wants to decode the image differently with alpha not
        premultiplied and color profile applied optionally.

        Added a test to prove this change fixed the bug.

        Test: fast/images/webgl-teximage2d.html

        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
        (WebCore::GraphicsContext3D::getImageData):

2012-11-15  Jer Noble  <jer.noble@apple.com>

        Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.

        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):

2012-11-15  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix. Avoid implicit precision and unused parameter warnings.

        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
        (WebCore::WebCoreAVFResourceLoader::responseReceived):
        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):

2012-11-15  Adam Barth  <abarth@webkit.org>

        [V8] We shouldn't call deprecated V8 APIs
        https://bugs.webkit.org/show_bug.cgi?id=102407

        Reviewed by Eric Seidel.

        This patch was written by Sven Panne on the V8 team. He would prefer
        that we not call deprecated V8 APIs. This patch updates these call
        sites to more modern idioms.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateConstructorGetter):
        (GenerateImplementation):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::TestObjConstructorGetter):
        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::setContextDebugId):
        (WebCore::ScriptController::contextDebugId):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::objectByHeapObjectId):
            - This code doesn't seem to do anything anymore.
        * bindings/v8/V8DOMConfiguration.h:
        (WebCore::V8DOMConfiguration::configureAttribute):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::setInjectedScriptContextDebugId):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::maybeDOMWrapper):
        (WebCore::V8DOMWrapper::isWrapperOfType):
        * bindings/v8/V8EventListenerList.h:
        (WebCore::V8EventListenerList::doFindWrapper):
        (WebCore::V8EventListenerList::findOrCreateWrapper):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore::WrapperTypeInfo::unwrap):

2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134800 and r134805.
        http://trac.webkit.org/changeset/134800
        http://trac.webkit.org/changeset/134805
        https://bugs.webkit.org/show_bug.cgi?id=102417

        This patch broke chromium port (Requested by jianli on
        #webkit).

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::createOffer):
        (WebCore::RTCPeerConnection::createAnswer):
        (WebCore::RTCPeerConnection::setLocalDescription):
        (WebCore::RTCPeerConnection::localDescription):
        (WebCore::RTCPeerConnection::setRemoteDescription):
        (WebCore::RTCPeerConnection::remoteDescription):
        (WebCore::RTCPeerConnection::updateIce):
        (WebCore::RTCPeerConnection::addIceCandidate):
        (WebCore::RTCPeerConnection::readyState):
        (WebCore::RTCPeerConnection::iceState):
        (WebCore::RTCPeerConnection::addStream):
        (WebCore::RTCPeerConnection::close):
        (WebCore::RTCPeerConnection::stop):
        (WebCore::RTCPeerConnection::changeReadyState):
        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
        * Modules/mediastream/RTCPeerConnection.h:
        (RTCPeerConnection):
        * Modules/mediastream/RTCPeerConnection.idl:
        * dom/EventNames.h:
        (WebCore):
        * platform/mediastream/RTCDataChannelDescriptor.cpp:
        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
        (RTCPeerConnectionHandlerClient):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (RTCPeerConnectionHandlerChromium):

2012-11-15  Elliott Sprehn  <esprehn@chromium.org>

        Remove Node::aboutToUnload and be more explicit about what it was for
        https://bugs.webkit.org/show_bug.cgi?id=102357

        Reviewed by Ryosuke Niwa.

        Node::aboutToUnload was confusingly named because it was only called on
        the focused node, and it really only existed to support notifying the
        embedder that inputs should stop being editable on unload. Instead add
        a new method to HTMLInputElement that ends editing and call that
        explicitly in the FrameLoader so it's clear what this is about.

        No new tests, this is just a refactoring.

        * dom/Node.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::endEditing):
            New method that handles finishing editing.
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::handleBlurEvent):
            Use the new method to reduce code duplication.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
            Be explicit about what this check was for.

2012-11-15  Tommy Widenflycht  <tommyw@google.com>

        [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
        https://bugs.webkit.org/show_bug.cgi?id=102386

        Reviewed by Adam Barth.

        Existing tests expanded to cover patch.

        * platform/mediastream/RTCDataChannelDescriptor.cpp:
        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
        (WebCore):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (WebKit):
        (RTCPeerConnectionHandlerChromium):

2012-11-15  Rick Byers  <rbyers@chromium.org>

        No tests for changing mouse cursors
        https://bugs.webkit.org/show_bug.cgi?id=100550

        Reviewed by Brent Fulgham.

        Add infrastructure to keep track of the last set mouse cursor,
        and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
        we can reliably detect when an uninitialized Cursor object is used (such as
        the one that can be returned from OptionalCursor in the NoCursorChange scenario).

        Test: fast/events/mouse-cursor.html

        * WebCore.exp.in: Add Cursor copy ctor export
        * page/EventHandler.cpp:
        (WebCore::OptionalCursor::cursor):
        (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
        * page/EventHandler.h:
        (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
        * platform/Cursor.h:
        (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
        (WebCore::Cursor::type): Assert cursor type is valid.
        * testing/Internals.cpp:
        (WebCore::cursorTypeToString): Helper to convert cursor type to enum
        (WebCore):
        (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
        * testing/Internals.h: Declare getCurrentCursorInfo
        * testing/Internals.idl: Declare getCurrentCursorInfo

2012-11-13  Jer Noble  <jer.noble@apple.com>

        Support loading of blob URLs in AVFoundation.
        https://bugs.webkit.org/show_bug.cgi?id=102182

        Reviewed by Eric Carlson.

        Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.

        Test: media/video-src-blob.html

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
            media path if the key scheme is skp://.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
            the media engine requests it.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
        
        Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
        (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
        (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):

        Add a new helper class to manage loading the CachedRawResource and feed the incoming
        data to the AVAssetResourceLoader.
        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
        (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
        (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
        (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
        (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
        (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
        (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
            AVAssetResourceLoadingRequest.
        (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
        (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
            has completed.
        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
            field of the AVAssetResourceLoadingRequest.

        Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
        document's cachedResourceLoader.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::cachedResourceLoader):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):

        Add a convenience method to convert from MIME type -> UTI.
        * platform/network/mac/UTIUtilities.h:
        * platform/network/mac/UTIUtilities.mm:
        (WebCore::UTIFromMIMEType):

        Add new files to project.
        * WebCore.xcodeproj/project.pbxproj:

2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Remove initiallyFitToViewport attribute
        https://bugs.webkit.org/show_bug.cgi?id=102392

        Reviewed by Noam Rosenthal.

        Remove the initiallyFitToViewport which shouldn't have been
        added in the first place. We now reset userScalable to auto (-1)
        in case it was not explicitly set by the web author.

        Same behavior, covered by existing tests.

        * dom/ViewportArguments.cpp:
        (WebCore::ViewportArguments::resolve):
        * dom/ViewportArguments.h:
        (ViewportAttributes):

2012-11-15  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update RTCPeerConnection states to match the latest editors draft
        https://bugs.webkit.org/show_bug.cgi?id=102382

        Reviewed by Adam Barth.

        Updating readyState & iceState, and adding iceGatheringState.
        Also safeguarding the event timer callback.

        Patch covered by existing tests.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::createOffer):
        (WebCore::RTCPeerConnection::createAnswer):
        (WebCore::RTCPeerConnection::setLocalDescription):
        (WebCore::RTCPeerConnection::localDescription):
        (WebCore::RTCPeerConnection::setRemoteDescription):
        (WebCore::RTCPeerConnection::remoteDescription):
        (WebCore::RTCPeerConnection::updateIce):
        (WebCore::RTCPeerConnection::addIceCandidate):
        (WebCore::RTCPeerConnection::readyState):
        (WebCore::RTCPeerConnection::iceGatheringState):
        (WebCore):
        (WebCore::RTCPeerConnection::iceState):
        (WebCore::RTCPeerConnection::addStream):
        (WebCore::RTCPeerConnection::close):
        (WebCore::RTCPeerConnection::didChangeIceGatheringState):
        (WebCore::RTCPeerConnection::stop):
        (WebCore::RTCPeerConnection::changeReadyState):
        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
        * Modules/mediastream/RTCPeerConnection.h:
        (RTCPeerConnection):
        * Modules/mediastream/RTCPeerConnection.idl:
        * dom/EventNames.h:
        (WebCore):
        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
        (RTCPeerConnectionHandlerClient):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
        (WebCore):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (RTCPeerConnectionHandlerChromium):

2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134649 and r134665.
        http://trac.webkit.org/changeset/134649
        http://trac.webkit.org/changeset/134665
        https://bugs.webkit.org/show_bug.cgi?id=102413

        Broke a ton of downstream chromium tests (Requested by japhet
        on #webkit).

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::DocumentLoader):
        (WebCore::DocumentLoader::~DocumentLoader):
        (WebCore::DocumentLoader::finishedLoading):
        (WebCore::DocumentLoader::clearMainResourceLoader):
        (WebCore::DocumentLoader::isLoadingInAPISense):
        (WebCore::DocumentLoader::documentURL):
        (WebCore::DocumentLoader::isLoadingMainResource):
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/DocumentLoader.h:
        (DocumentLoader):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader):
        (WebCore::FrameLoader::init):
        * loader/FrameLoaderStateMachine.cpp:
        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
        * loader/FrameLoaderStateMachine.h:
        * loader/MainResourceLoader.cpp:
        (WebCore::shouldLoadAsEmptyDocument):
        (WebCore):
        (WebCore::MainResourceLoader::continueAfterContentPolicy):
        (WebCore::MainResourceLoader::didReceiveResponse):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::handleEmptyLoad):
        (WebCore::MainResourceLoader::loadNow):
        (WebCore::MainResourceLoader::load):
        * loader/MainResourceLoader.h:
        (MainResourceLoader):

2012-11-15  Kentaro Hara  <haraken@chromium.org>

        Correct syntax of old-style IDL files
        https://bugs.webkit.org/show_bug.cgi?id=102335

        Reviewed by Adam Barth.

        Recently tasak@ corrected an IDL syntax of almost all IDL files.
        We should correct the rest of them.

        No tests. No change in behavior.

        * html/canvas/OESElementIndexUint.idl:
        * page/PerformanceMark.idl:
        * page/PerformanceMeasure.idl:

2012-11-15  Elliott Sprehn  <esprehn@chromium.org>

        Remove isHTMLInputElement since it's unused and toInputElement exists 
        https://bugs.webkit.org/show_bug.cgi?id=102358

        Reviewed by Ojan Vafai.

        Remove isHTMLInputElement as no one uses it. Everyone just uses
        Node::toInputElement and checks for a 0 return value instead.

        toInputElement is also more reliable as there's no requirement that
        subclasses of HTMLInputElement have the tag name of inputTag so using
        this method in a check could potentially miss future subclasses with
        different tag names, though none exist right now.

        No new tests, this just deletes dead code.

        * html/HTMLInputElement.h:

2012-11-15  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: NotSupportedError
        https://bugs.webkit.org/show_bug.cgi?id=102139

        Reviewed by Ojan Vafai.

        Patch 9 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-15  Elliott Sprehn  <esprehn@chromium.org>

        Remove isHTMLInputElement since it's unused and toInputElement exists 
        https://bugs.webkit.org/show_bug.cgi?id=102358

        Reviewed by Ojan Vafai.

        Remove isHTMLInputElement as no one uses it. Everyone just uses
        Node::toInputElement and checks for a 0 return value instead.

        toInputElement is also more reliable as there's no requirement that
        subclasses of HTMLInputElement have the tag name of inputTag so using
        this method in a check could potentially miss future subclasses with
        different tag names, though none exist right now.

        No new tests, this just deletes dead code.

        * html/HTMLInputElement.h:

2012-11-15  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: NoModificationAllowedError
        https://bugs.webkit.org/show_bug.cgi?id=102134

        Reviewed by Ojan Vafai.

        Patch 7 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-15  Miguel Garcia  <miguelg@chromium.org>

        Remove unnecesary dependencies INPUT_TYPE_COLOR
        https://bugs.webkit.org/show_bug.cgi?id=102379

        Reviewed by Darin Adler.

        Platforms should be able to enable INPUT_TYPE_COLOR without enabling
        CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
        compile errors in such configuration.

        No new tests since this is not adding any extra functionality.

        * WebCore.gyp/WebCore.gyp:
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::shouldShowSuggestions):
        * make-file-arrays.py:
        (main):

2012-11-15  Eric Carlson  <eric.carlson@apple.com>

        Update computed line position algorithm
        https://bugs.webkit.org/show_bug.cgi?id=93779

        Reviewed by Philippe Normand.

        Compute the position of a text track relative to rendered tracks. This is needed to position
        cues correctly when there is more than one text track.

        Test: media/track/track-cue-container-rendering-position.html

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
        (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
            to other rendered tracks.
        * html/track/TextTrack.h:

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
            instead of trackIndex() so cues are positioned correctly.

        * html/track/TextTrackList.cpp:
        (TextTrackList::getTrackIndex): Change return type from unsigned to int.
        (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
        * html/track/TextTrackList.h:

2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
        https://bugs.webkit.org/show_bug.cgi?id=101323

        Reviewed by Martin Robinson.

        Removing ifdef since we bumped Harfbuzz dependency. This is the
        real fix replacing the previous workaround of having a Chromium
        specific ifdef here, since Chromium uses a newer HarfBuzz version
        already.

        No new tests, covered by css3/flexbox/inline-flex-crash.html
        which will not crash anymore even with the ifdef removed.

        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):

2012-11-15  Andreas Kling  <kling@webkit.org>

        REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
        <http://webkit.org/b/102304>

        Reviewed by Anders Carlsson.

        Test: fast/dom/cloneNode-below-body-attribute-merging.html

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

            Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
            we're merging attributes into.

        * dom/ElementAttributeData.h:
        (ElementAttributeData):

            Remove a now-unnecessary friend declaration.

2012-11-15  Elliott Sprehn  <esprehn@chromium.org>

        Prevent creation of detached frames in ShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=102333

        Reviewed by Dimitri Glazkov.

        Similar to Bug 94717 you can create a loaded iframe in a detached
        subtree using ShadowRoot. To fix this we just need to make
        SubframeLoadingDisabler traverse through shadow boundaries.

        Test: fast/frames/detached-shadow-frame.html

        * html/HTMLFrameOwnerElement.h:
        (WebCore::SubframeLoadingDisabler::canLoadFrame):

2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>

        Changing pseudoClass (:visited) should cause distribution.
        https://bugs.webkit.org/show_bug.cgi?id=101700

        Reviewed by Dimitri Glazkov.

        When href attribute of an anchor or area element is changed, we have to invalidate distribution.

        Since we would like to check a few pseudoClasses at once, we make the argument of
        SelectRuleFeatureSet::hasSelectorFor int.

        Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
               fast/dom/shadow/pseudoclass-update-visited-area.html

        * dom/ElementShadow.cpp:
        (WebCore::invalidateParentDistributionIfNecessary):
        * dom/ElementShadow.h:
        (WebCore):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute):
        * html/shadow/SelectRuleFeatureSet.h:
        (WebCore::SelectRuleFeatureSet::hasSelectorFor):

2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>

        Coordinated Graphics: support the "freeze animations" API
        https://bugs.webkit.org/show_bug.cgi?id=100703

        Reviewed by Noam Rosenthal.

        Make animations resumable in Coordinated Graphics.
        Pausing was already implemented.

        Tested with animations and transitions tests. No tests to be
        unskipped because these tests has been working without this API
        as well (although this is the preferred way).

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::GraphicsLayerAnimation::apply):
        (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
        Do not consider the time while we was suspended as part of
        the total running time.
        (WebCore):
        (WebCore::GraphicsLayerAnimation::resume):
        (WebCore::GraphicsLayerAnimations::suspend):
        (WebCore::GraphicsLayerAnimations::resume):
        * platform/graphics/GraphicsLayerAnimation.h:
        (GraphicsLayerAnimation):
        (GraphicsLayerAnimations):

2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>

        Relocate the ARM NEON SVG filter optimizations
        https://bugs.webkit.org/show_bug.cgi?id=102214

        Reviewed by Zoltan Herczeg.

        Relocate the ARM filter optimizations into platform/graphics/cpu/arm
        to keep them together with the others.
        From now all graphics optimization for ARM NEON should go here.

        * CMakeLists.txt:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.pri:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
        (WebCore):
        (FEBlendUtilitiesNEON):
        (WebCore::FEBlendUtilitiesNEON::div255):
        (WebCore::FEBlendUtilitiesNEON::normal):
        (WebCore::FEBlendUtilitiesNEON::multiply):
        (WebCore::FEBlendUtilitiesNEON::screen):
        (WebCore::FEBlendUtilitiesNEON::darken):
        (WebCore::FEBlendUtilitiesNEON::lighten):
        (WebCore::FEBlend::platformApplyNEON):
        * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
        (WebCore):
        (WebCore::FEComposite::computeArithmeticPixelsNeon):
        (WebCore::FEComposite::platformArithmeticNeon):
        * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
        (WebCore):
        (WebCore::boxBlurNEON):
        * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
        (WebCore):
        (WebCore::feLightingConstantsForNeon):
        (WebCore::FELighting::platformApplyNeonWorker):
        (WebCore::FELighting::getPowerCoefficients):
        * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
        (WebCore):
        (FELightingFloatArgumentsForNeon):
        (FELightingPaintingDataForNeon):
        (WebCore::FELighting::platformApplyNeon):
        * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
        (WebCore):
        (WebCore::loadRGBA8AsFloat):
        (WebCore::storeFloatAsRGBA8):

2012-11-15  Mike West  <mkwst@chromium.org>

        We should trigger a console warning when we encounter invalid sandbox flags.
        https://bugs.webkit.org/show_bug.cgi?id=101956

        Reviewed by Adam Barth.

        A developer who writes '<iframe sandbox="allowScripts">' probably has
        something in mind other than what the browser interprets. In these
        situations, we should log a console warning that notes 'allowScripts'
        is an invalid sandbox flag ('allow-scripts' is probably what she
        meant).

        This patch does the simplest thing possible: it throws a warning that
        lists the invalid flags encountered for sandbox attributes on iframes,
        and for sandbox Content Security Policy directives.

        Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
               http/tests/security/sandboxed-iframe-invalid.html

        * dom/SecurityContext.cpp:
        (WebCore::SecurityContext::parseSandboxPolicy):
        * dom/SecurityContext.h:
        (SecurityContext):
            Accept a new out parameter, invalidTokensErrorMessage. If invalid
            tokens are encountered, build an error message string, and pass it
            back to the caller through this parameter.
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseAttribute):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPDirectiveList::applySandboxPolicy):
            When applying a sandbox policy, pass a string into
            SecurityContext::parseSandboxPolicy to grab any errors that might
            be encountered, and log a warning in that event.
        (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
        (WebCore):
        * page/ContentSecurityPolicy.h:
            Adding a new method to report invalid sandbox flags.

2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rename member vars in ViewportArgument to match css-device-adapt
        https://bugs.webkit.org/show_bug.cgi?id=102355

        Reviewed by Gyuyoung Kim.

        No behavior change, thus no new tests.

        * dom/ViewportArguments.cpp:
        (WebCore::ViewportArguments::resolve):
        (WebCore::setViewportFeature):
        * dom/ViewportArguments.h:
        (WebCore::ViewportArguments::ViewportArguments):
        (ViewportArguments):
        (WebCore::ViewportArguments::operator==):

2012-11-15  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
        https://bugs.webkit.org/show_bug.cgi?id=102366

        Reviewed by Vsevolod Vlasov.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-11-15  Mark Rowe  <mrowe@apple.com>

        Build fix.

        Disable deprecation warnings in a few places that need it.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::drawRepaintCounter):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::showGlyphsWithAdvances):
        * platform/graphics/mac/WebLayer.mm:
        (drawLayerContents):

2012-11-15  Kent Tamura  <tkent@chromium.org>

        Support stand-alone month names in calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=102196

        Reviewed by Kentaro Hara.

        We have showed non stand-alone month names in any locales. However
        we should show stand-alone month names in some locales such as
        Russian.

        This patch introduce PagePopupController::formatMonth. It is
        exposed to page-popups, and format year-month pairs in the same
        way as input[type=month].

        No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.

        * Resources/pagepopups/calendarPicker.js:
        (Month.prototype.toLocaleString):
        Calls pagePopupController.formatMonth except Japanese locale.
        (handleArgumentsTimeout):
        Remove unnecessary default monthLabels.
        * page/PagePopupController.cpp:
        (WebCore::PagePopupController::formatMonth): Added.
        * page/PagePopupController.h:
        (PagePopupController): Declare formatMonth.
        * page/PagePopupController.idl: Add formatMonth.

2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Fix new JS compiler warnings.
        https://bugs.webkit.org/show_bug.cgi?id=102341

        Reviewed by Yury Semikhatsky.

        New version of compiler finds new inconsistencies.

        * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
        * inspector/front-end/DOMBreakpointsSidebarPane.js:
        Declared instance property on WebInspector.
        * inspector/front-end/Script.js: Normalized parameter notation.

2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Unreviewed build fix.

        * dom/ViewportArguments.cpp:
        (WebCore::convertToUserSpace): Add static

2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Refactor ViewportArguments to only use CSS units
        https://bugs.webkit.org/show_bug.cgi?id=102287

        Reviewed by Noam Rosenthal.

        Refactor the ViewportArgument code to use a member method for
        resolving the viewport. This new method only uses arguments in
        CSS units.

        This is preparation for adding the CSS Device Adaptation support.

        Tested by existing tests fast/viewport.

        * dom/ViewportArguments.cpp:
        (WebCore::clampLengthValue):
        (WebCore::clampScaleValue): New utility functions.
        (WebCore::ViewportArguments::resolve):
        (WebCore::convertToUserSpace): Added until everyone provides arguments
        only in CSS units and not device ones.
        (WebCore::computeViewportAttributes):
        (WebCore::computeMinimumScaleFactorForContentContained):
        (WebCore):
        (WebCore::restrictMinimumScaleFactorToViewportSize):
        * dom/ViewportArguments.h:
        (ViewportArguments):

2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 

        Changing pseudoClass (:disabled) should cause distribution.
        https://bugs.webkit.org/show_bug.cgi?id=101901

        Reviewed by Hajime Morita.

        We have to invalidate distribution when pseudo-class (:disabled) is changed.

        According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
        option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
        have 'disabled' state, but we need a command element to make it 'disabled' state.

        Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
               fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
               fast/dom/shadow/pseudoclass-update-disabled-input.html
               fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
               fast/dom/shadow/pseudoclass-update-disabled-option.html
               fast/dom/shadow/pseudoclass-update-disabled-select.html
               fast/dom/shadow/pseudoclass-update-disabled-textarea.html

        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::disabledAttributeChanged):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::parseAttribute):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::parseAttribute):

2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134691, r134703, r134715, r134716,
        and r134733.
        http://trac.webkit.org/changeset/134691
        http://trac.webkit.org/changeset/134703
        http://trac.webkit.org/changeset/134715
        http://trac.webkit.org/changeset/134716
        http://trac.webkit.org/changeset/134733
        https://bugs.webkit.org/show_bug.cgi?id=102342

        "Broke the Apple Windows Debug and GTK builds." (Requested by
        dydx on #webkit).

        * WebCore.exp.in:
        * bindings/js/SerializedScriptValue.h:
        * testing/Internals.cpp:
        * testing/Internals.h:
        (WebCore):
        * testing/Internals.idl:

2012-11-14  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: fixing inspector tests under Qt.

        * inspector/front-end/TestController.js:
        * inspector/front-end/utilities.js:
        (.):

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::toV8Fast):

2012-11-14  Simon Fraser  <simon.fraser@apple.com>

        Don't use temporary clip rects when hit testing
        https://bugs.webkit.org/show_bug.cgi?id=102329

        Reviewed by Beth Dakin.

        We now cache clip rects separately for painting, hit testing etc. Hit testing
        clip rects are always shrunk to exclude scrollbars (so that hit testing on
        the scrollbars works), so we no longer every need to use temporary clip rects
        during hit testing.

        Added an assertion that the scrollbar relevancy when we computed the clip rects
        is the same as that when using them.
        
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::updateClipRects):
        * rendering/RenderLayer.h:
        (WebCore::ClipRectsCache::ClipRectsCache):
        (ClipRectsCache):

2012-11-14  Dirk Schulze  <krit@webkit.org>

        Support animation of basic shape 'polygon'
        https://bugs.webkit.org/show_bug.cgi?id=102080

        Reviewed by Daniel Bates.

        The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
        patch http://trac.webkit.org/changeset/134352.
        This is a follow-up patch to make 'polygon' animatable as well, as long as the number
        of vertices between start and end polygon is the same.

        Added polygon animation test to existing test:
            fast/exclusions/shape-inside/shape-inside-animation.html
            css3/masking/clip-path-animation.html

        * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShape::canBlend): Polygons are allowed now.
        (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Fix code generator warnings.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):
        (GenerateImplementation):

2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>

        Changing pseudoClass (:checked) should cause distribution.
        https://bugs.webkit.org/show_bug.cgi?id=101902

        Reviewed by Dimitri Glazkov.

        When the 'checked' state is changed, we have to invalidate distribution.

        According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
        a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.

        Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
               fast/dom/shadow/pseudoclass-update-checked-option.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setChecked):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::setSelectedState):

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Kill $implClassName from CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=102312

        Reviewed by Adam Barth.

        $implClassName and $interfaceName are the same.
        Sometimes we are passing both $implClassName and $interfaceName to
        subroutines. We can kill $implClassName.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateOpaqueRootForGC):
        (GenerateHeader):
        (GenerateDomainSafeFunctionGetter):
        (GenerateDomainSafeFunctionSetter):
        (GenerateConstructorGetter):
        (GenerateNormalAttrGetter):
        (GenerateReplaceableAttrSetter):
        (GenerateNormalAttrSetter):
        (GenerateEventListenerCallback):
        (GenerateOverloadedFunctionCallback):
        (GenerateFunctionCallback):
        (GenerateParametersCheck):
        (GenerateOverloadedConstructorCallback):
        (GenerateSingleConstructorCallback):
        (GenerateConstructorCallback):
        (GenerateEventConstructorCallback):
        (GenerateTypedArrayConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        (GenerateFunctionCallString):

2012-11-14  Adam Barth  <abarth@webkit.org>

        [V8] We can shave one instruction off toV8Fast
        https://bugs.webkit.org/show_bug.cgi?id=102297

        Reviewed by Kentaro Hara.

        There's no reason to store info.Holder in a local variable. Calling
        Holder() is essentially free because it's inlined to an offset read.

        I doubt this patch moves the performance needle in any measurable way,
        but it makes the code slightly prettier.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::toV8Fast):

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Get rid of a redundant branch in JSValueToNative()
        https://bugs.webkit.org/show_bug.cgi?id=102311

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (JSValueToNative):
        (NativeToJSValue):

2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>

        Changing pseudoClass (:link) should cause distribution
        https://bugs.webkit.org/show_bug.cgi?id=101698

        Reviewed by Hajime Morita.

        CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
        we have to invalidate distribution.

        According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.

        Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
               fast/dom/shadow/pseudoclass-update-link-area.html

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute):

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        Remove unused functions from CodeGenerator.pm
        https://bugs.webkit.org/show_bug.cgi?id=102316

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (GenerateCompileTimeCheckForEnumsIfNeeded):

2012-11-14  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 225755
        Internally Reviewed by Eli Fidler.
        Update checkbox, radio and menulist button style. Adjust border width
        and line height.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
        * platform/blackberry/RenderThemeBlackBerry.h:
        (RenderThemeBlackBerry):

2012-11-14  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: InvalidModificationError
        https://bugs.webkit.org/show_bug.cgi?id=102281

        Reviewed by Kentaro Hara.

        Patch 13 of 25 to update DOMException name to match the spec and Firefox.

        DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.

        * dom/DOMCoreException.cpp:

2012-11-14  Adam Barth  <abarth@webkit.org>

        document variable in Document::axObjectCache is actually the topDocument
        https://bugs.webkit.org/show_bug.cgi?id=101966

        Reviewed by Chris Fleizach.

        Name change requested by Darin Adler.

        * dom/Document.cpp:
        (WebCore::Document::axObjectCache):

2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>

        [CF]: XMLHttpRequest "timeout" events firing as "error" events
        https://bugs.webkit.org/show_bug.cgi?id=102271

        Reviewed by David Kilzer.

        Initialize the tiemout flag if the error results from a timeout
        in the USE(CFNETWORK) cases.

        No new tests. This is covered by http/tests/xmlhttprequest/timeout
        tests on ports that USE(CFNETWORK).

        * platform/network/cf/ResourceErrorCF.cpp:
        (WebCore::ResourceError::ResourceError):
        * platform/network/mac/ResourceErrorMac.mm:
        (WebCore::ResourceError::ResourceError):

2012-11-14  Nico Weber  <thakis@chromium.org>

        [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
        https://bugs.webkit.org/show_bug.cgi?id=102282

        Reviewed by James Robinson.

        Chromium uses skia, and skia state is synced with CG context state at
        LocalCurrentGraphicsContext construction time. So delay that
        construction after context transforms have happened.
        (This regressed in http://trac.webkit.org/changeset/125830)

        Covered by the new pixel test fast/forms/zoomed-controls.html. I
        couldn't find an existing test for this.

        * platform/mac/ThemeMac.mm:
        (WebCore::paintCheckbox):
        (WebCore::paintRadio):
        (WebCore::paintButton):

2012-11-14  Mark Lam  <mark.lam@apple.com>

        Change JSEventListener::m_jsFunction to be a weak ref.
        https://bugs.webkit.org/show_bug.cgi?id=101989.

        Reviewed by Geoffrey Garen.

        No new tests.

        * ForwardingHeaders/heap/SlotVisitor.h: Added.
        * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::JSEventListener):
        (WebCore::JSEventListener::visitJSFunction):
        (WebCore::JSEventListener::operator==):
         - Removed the m_wrapper checks in operator==() because they are not
           needed. There is no longer any threat of m_jsFunction pointing to
           recycled memory. The use of weak refs will ensure that m_jsFunction
           is either still holding on to its old memory exclusively, or is 0'ed
           out when the GC collects it.
        * bindings/js/JSEventListener.h:
        (JSEventListener):
        (WebCore::JSEventListener::jsFunction):

2012-11-14  Dan Carney  <dcarney@google.com>

        [V8] Rename dispatchWrap
        https://bugs.webkit.org/show_bug.cgi?id=102240

        Reviewed by Adam Barth.

        Mostly a rename:
        dispatchWrap->wrap
        wrapSlow->createWrapper
        dispatchWrapCustom->wrap

        No new tests. No change in functionality.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (GenerateImplementation):
        (GenerateToV8Converters):
        * bindings/scripts/IDLAttributes.txt:
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::wrap):
        (WebCore::V8Float64Array::createWrapper):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (V8Float64Array):
        (WebCore):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::createWrapper):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (V8TestActiveDOMObject):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::createWrapper):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (V8TestCustomNamedGetter):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (V8TestEventConstructor):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::createWrapper):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (V8TestEventTarget):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::createWrapper):
        * bindings/scripts/test/V8/V8TestException.h:
        (V8TestException):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::createWrapper):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (V8TestMediaQueryListListener):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructor::createWrapper):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (V8TestNamedConstructor):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::createWrapper):
        * bindings/scripts/test/V8/V8TestNode.h:
        (V8TestNode):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        (WebCore::toV8Fast):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::createWrapper):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::createWrapper):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (V8TestOverloadedConstructors):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (V8TestSerializedScriptValueInterface):
        (WebCore::wrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/v8/custom/V8BlobCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8CSSValueCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8ElementCustom.cpp:
        (WebCore):
        (WebCore::wrap):
        * bindings/v8/custom/V8EntryCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8EntrySyncCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8EventCustom.cpp:
        (WebCore):
        (WebCore::wrap):
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8HTMLElementCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8ImageDataCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8SVGElementCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
        (WebCore::wrap):
        * bindings/v8/custom/V8StyleSheetCustom.cpp:
        (WebCore::wrap):
        * dom/make_names.pl:
        (printWrapperFunctions):
        (printWrapperFactoryCppFile):

2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL] Refactor theme to choose whether to support foreground color of selection
        https://bugs.webkit.org/show_bug.cgi?id=102037

        Reviewed by Gyuyoung Kim.

        RenderThemeEfl can change foreground color of selection using theme file.
        But it can not disable supports of foreground color to keep the text color
        which is selected.

        This patch refactors color classes of theme file from active/inactive classes
        to foreground/background classes so that RenderThemeEfl checks whether
        theme file supports foreground color class.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::fillColorsFromEdjeClass):
        (WebCore::RenderThemeEfl::setColorFromThemeClass):
        (WebCore::RenderThemeEfl::loadTheme):
        (WebCore::RenderThemeEfl::RenderThemeEfl):
        (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
        (WebCore):
        * platform/efl/RenderThemeEfl.h:
        (RenderThemeEfl):

2012-11-14  Tony Chang  <tony@chromium.org>

        Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
        https://bugs.webkit.org/show_bug.cgi?id=102295

        Reviewed by Andreas Kling.

        Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.

        No new tests because there should be no change in behavior.

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::CSSParser):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseColor):
        (WebCore::CSSParser::parseDeclaration):
        (WebCore):
        (WebCore::filterProperties):
        (WebCore::CSSParser::createStylePropertySet):
        (WebCore::CSSParser::addProperty):
        (WebCore::CSSParser::rollbackLastProperties):
        (WebCore::CSSParser::clearProperties):
        (WebCore::CSSParser::parse4Values):
        (WebCore::CSSParser::parseFlowThread):
        (WebCore::CSSParser::addTextDecorationProperty):
        (WebCore::CSSParser::createFloatingSelectorVector):
        (WebCore::CSSParser::sinkFloatingSelectorVector):
        (WebCore::CSSParser::createStyleRule):
        (WebCore::CSSParser::createFontFaceRule):
        (WebCore::CSSParser::createPageRule):
        (WebCore::CSSParser::setReusableRegionSelectorVector):
        (WebCore::CSSParser::startDeclarationsForMarginBox):
        (WebCore::CSSParser::endDeclarationsForMarginBox):
        (WebCore::CSSParser::deleteFontFaceOnlyValues):
        * css/CSSParser.h:
        (WebCore::CSSParser::hasProperties):
        (WebCore::CSSParser::reusableSelectorVector):
        (CSSParser):
        (WebCore::CSSParser::reusableRegionSelectorVector):
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::adoptSelectorVector):
        * css/CSSParserValues.h:
        (CSSParserSelector):
        * css/CSSSelectorList.cpp:
        (WebCore::CSSSelectorList::adoptSelectorVector):
        * css/CSSSelectorList.h:
        (CSSSelectorList):
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):
        * css/StyleRule.cpp:
        (WebCore::StyleRuleRegion::StyleRuleRegion):
        * css/StyleRule.h:
        (WebCore::StyleRule::parserAdoptSelectorVector):
        (WebCore::StyleRulePage::parserAdoptSelectorVector):
        (WebCore::StyleRuleRegion::create):
        (StyleRuleRegion):

2012-11-14  Alec Flett  <alecflett@chromium.org>

        Add tests for explicit serialization values
        https://bugs.webkit.org/show_bug.cgi?id=96818

        Reviewed by Adam Barth.

        Expose direct access to the serialization/deserialization mechanisms
        of SerializedScriptValue to DumpRenderTree.

        * testing/Internals.cpp:
        (WebCore::Internals::serializeObject):
        (WebCore):
        (WebCore::Internals::deserializeBuffer):
        * testing/Internals.h:
        (WebCore):
        * testing/Internals.idl:

2012-11-14  Michael Pruett  <michael@68k.org>

        IndexedDB: Add clear() method to JSC ScriptValue
        https://bugs.webkit.org/show_bug.cgi?id=102288

        Reviewed by Kentaro Hara.

        IndexedDB uses the ScriptValue::clear() method, which existed
        previously only in the V8 implementation of ScriptValue. This
        change is necessary to implement IndexedDB for JSC.

        Tests: storage/indexeddb/*

        * bindings/js/ScriptValue.h:
        (WebCore::ScriptValue::clear):
        (ScriptValue):

2012-11-14  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Indexing tests are flaky-crashing
        https://bugs.webkit.org/show_bug.cgi?id=102283

        Reviewed by Tony Chang.

        Don't commit the transaction if there are outstanding pre-emptive events
        from indexing operations.

        Speculative fix for the flakiness.

        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):

2012-11-14  Tony Chang  <tony@chromium.org>

        Crash in flexbox when removing absolutely positioned children
        https://bugs.webkit.org/show_bug.cgi?id=100465

        Reviewed by Ojan Vafai.

        We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
        This value gets set during flexbox layout. When we remove an absolutely
        positioned child, we don't relayout and this value would get stale.

        Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
        so the value doesn't get stale when we remove absolutely positioned children.
        Also change the loop in firstLineBoxBaseline to bail if we run off the end of
        the iterator.

        Test: css3/flexbox/crash-removing-out-of-flow-child.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
        (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
        (WebCore::RenderFlexibleBox::layoutBlock):
        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        * rendering/RenderFlexibleBox.h:

2012-11-14  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove magic numbers in record comparator, handle missing case
        https://bugs.webkit.org/show_bug.cgi?id=102255

        Reviewed by Tony Chang.

        For some ranges of metadata entries, a simple type byte comparison is sufficient
        for the backing store comparator. In two places those ranges used magic numbers,
        one of which was incorrect - which could lead to failed reads/writes.

        Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'

        * Modules/indexeddb/IDBLevelDBCoding.cpp:
        (IDBLevelDBCoding):
        (WebCore::IDBLevelDBCoding::compare):
        * Modules/indexeddb/IDBLevelDBCoding.h:

2012-11-14  Dirk Schulze  <krit@webkit.org>

        Cleanup BasicShape blending check
        https://bugs.webkit.org/show_bug.cgi?id=102289

        Reviewed by Daniel Bates.

        CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
        twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
        is a preparation for follow-up patches.

        Pure refactoring without behavior change, no new tests.

        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFunc): Call new canBlend method for blending verification.
        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
        (WebCore):
        * rendering/style/BasicShapes.h:

2012-11-14  Dirk Schulze  <krit@webkit.org>

        [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
        https://bugs.webkit.org/show_bug.cgi?id=102123

        Reviewed by Antti Koivisto.

        The '-webkit-shape-inside' propery takes a BasicShape as input like
        '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
        make '-webkit-shape-inside' animatable as well.

        Test: fast/exclusions/shape-inside/shape-inside-animation.html

        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
            input then '-webkit-clip-path'.
        (WebCore):
        (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
            '-webkit-shape-ourside' as well.
        (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
        (WebCore::CSSPropertyAnimation::ensurePropertyMap):

2012-11-14  Helder Correia  <helder.correia@nokia.com>

        [TexMap][Cairo] Accelerated compositing debug visuals
        https://bugs.webkit.org/show_bug.cgi?id=101883

        Reviewed by Kenneth Rohde Christiansen.

        No new tests, just introducing a debug feature.

        Add a Cairo implementation to complement the patch from bug 90116
        (http://trac.webkit.org/changeset/122275).

        For this feature to be enabled, the environment variable
        WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
        both repaint counters and tile borders will be painted.

        A Cairo-specific drawRepaintCounter() implementation was added to
        TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
        the counters. It is then uploaded to a BitmapTexture acquired
        from the pool and finally draw by TextureMapper. The actual compositing
        happens inside LayerBackingStore::paintToTextureMapper(). Each
        LayerBackingStoreTile has a repaint counter which gets incremented in
        LayerBackingStore::updateTile().

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawRepaintCounter):

2012-11-14  Michael Pruett  <michael@68k.org>

        IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
        https://bugs.webkit.org/show_bug.cgi?id=102268

        Reviewed by Geoffrey Garen.

        Add JSNoStaticTables attribute to IndexedDB interface
        definitions. This attribute must be specified in interfaces
        which can be accessed from workers.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBAny.idl:
        * Modules/indexeddb/IDBCursor.idl:
        * Modules/indexeddb/IDBCursorWithValue.idl:
        * Modules/indexeddb/IDBDatabase.idl:
        * Modules/indexeddb/IDBDatabaseException.idl:
        * Modules/indexeddb/IDBFactory.idl:
        * Modules/indexeddb/IDBIndex.idl:
        * Modules/indexeddb/IDBKey.idl:
        * Modules/indexeddb/IDBKeyRange.idl:
        * Modules/indexeddb/IDBObjectStore.idl:
        * Modules/indexeddb/IDBOpenDBRequest.idl:
        * Modules/indexeddb/IDBRequest.idl:
        * Modules/indexeddb/IDBTransaction.idl:
        * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
        * Modules/indexeddb/IDBVersionChangeEvent.idl:
        * Modules/indexeddb/IDBVersionChangeRequest.idl:
        * dom/DOMStringList.idl:

2012-11-14  Michael Pruett  <michael@68k.org>

        IndexedDB: Replace int64 with int64_t
        https://bugs.webkit.org/show_bug.cgi?id=102270

        Reviewed by Tony Chang.

        Cleaning up coding inconsistencies, no change in behavior.

        Tests: storage/indexeddb/*

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::deleteObjectStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::putInternal):

2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>

        [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
        https://bugs.webkit.org/show_bug.cgi?id=102000

        Reviewed by Noam Rosenthal.

        Add helper functions to clear viewport before painting. Those functions
        used by EFL Webkit2 port to set view background to match page background
        in order to reduce visibility of flicker during scrolling/scaling/repainting
        where page tiles are not ready.

        * platform/graphics/texmap/TextureMapper.h:
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawSolidColor):
        (WebCore):
        * platform/graphics/texmap/TextureMapperGL.h:
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::TextureMapperImageBuffer::drawSolidColor):
        (WebCore):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:

2012-11-14  Mark Lam  <mark.lam@apple.com>

        Fixed regressions due to adding JSEventListener::m_wrapper null checks.
        https://bugs.webkit.org/show_bug.cgi?id=102183.

        Reviewed by Geoffrey Garen.

        Fixed JSEventListener::operator==() to work within the contract that
        when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
        some typos in comments.

        No new tests.

        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::visitJSFunction):
        (WebCore::JSEventListener::operator==):
        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::jsFunction):

2012-11-14  Nate Chapin  <japhet@chromium.org>

        Fix chromium asserts from r134649.

        Rubber-stamped by Adam Barth.

        MainResourceLoader was calling releaseResources() twice when cancelled
        within MainResourceLoader::load(), so check reachedTerminalState() before
        calling releaseResources() there.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::load):

2012-11-14  Andreas Kling  <kling@webkit.org>

        Only resolve presentation attribute style once per shared ElementAttributeData.
        <http://webkit.org/b/100990>

        Reviewed by Antti Koivisto.

        Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
        This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
        since the state is no longer per-Element.

        I've left the presentation attribute cache in there for now, since it still covers the case where
        two elements have the same presentation attributes but different non-presentation attributes.
        It's likely that we're not gaining much from it anymore, but that's a topic for another patch.

        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
        * dom/StyledElement.h:
        (WebCore::StyledElement::presentationAttributeStyle):
        (WebCore::ElementAttributeData::ElementAttributeData):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::ElementAttributeData):
        (ElementAttributeData):
        * dom/Node.h:

            Move presentation attribute style dirty flag from Node to ElementAttributeData.

        * dom/ElementAttributeData.cpp:
        (SameSizeAsElementAttributeData):

            Add a compile-time object size assertion for ElementAttributeData.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):

            Don't mark the presentation attribute style dirty if the element is using an immutable (implies
            shared) ElementAttributeData and another element has already generated the StylePropertySet.
            The element itself is still marked for style recalc like before, this just avoids the process
            of converting the attributes to CSS properties.

2012-11-14  Scott Violet  <sky@chromium.org>

        [Chromium] Refactor theme font lookup into a factory
        https://bugs.webkit.org/show_bug.cgi?id=101949

        Reviewed by Tony Chang.

        This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.

        No new tests. Refactoring only.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * rendering/RenderThemeChromiumFontProvider.cpp: Added.
        (WebCore):
        (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
        * rendering/RenderThemeChromiumFontProvider.h: Added.
        (WTF):
        (WebCore):
        (RenderThemeChromiumFontProvider): This is the font related methods.
        * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
        (WebCore):
        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
        (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
        * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
        (WebCore):
        (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
        (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
        (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
        (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
        * rendering/RenderThemeChromiumSkia.cpp:
        (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
        (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
        (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
        * rendering/RenderThemeChromiumSkia.h:
        (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
        * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
        (WebCore):
        * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
        (RenderThemeChromiumWin):

2012-11-14  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: InUseAttributeError
        https://bugs.webkit.org/show_bug.cgi?id=102141

        Reviewed by Ojan Vafai.

        Patch 10 of 25 to update DOMException name to match the spec and Firefox.

        The name for this is not in the spec but the case was selected to match
        Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18

        INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.

        * dom/DOMCoreException.cpp:
        * dom/ExceptionCode.h:

2012-11-14  Lynn Neir  <lynn.neir@skype.net>

        [WinCairo] Incorrect line-height for styled menulist (select tag)
        in windows theme.
        https://bugs.webkit.org/show_bug.cgi?id=79435

        Reviewed by Brent Fulgham

        Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
        to Windows theme to fix issue.

        Tests: fast/forms/menulist-restrict-line-height.html
               fast/forms/control-restrict-line-height.html
               fast/forms/basic-selects.html

        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
        height to the correct initial height.

2012-11-14  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: WrongDocumentError
        https://bugs.webkit.org/show_bug.cgi?id=102096

        Reviewed by Ojan Vafai.

        Patch 4 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-14  Nate Chapin  <japhet@chromium.org>

        Move empty loading to DocumentLoader, simplify FrameLoader::init()
        https://bugs.webkit.org/show_bug.cgi?id=101512

        Reviewed by Adam Barth.

        No new tests, though several outputs changed because we no longer send resource
            load callbacks for empty loads.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
            loads directly here.
        * loader/DocumentLoader.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
            were previously being reset in init(). Given that the FrameLoader is in
            an inconsistent state before init() is called anyway, there doesn't seem
            to be a disadvantage to just initializing them to their post-init() values.
        (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
            doing a bunch of direct calls to functions FrameLoader shouldn't know about.
        * loader/FrameLoaderStateMachine.cpp:
        * loader/FrameLoaderStateMachine.h:
        * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
        (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
            load got deferred, which won't happen now. Return void and always treat
            as returning false.
        * loader/MainResourceLoader.h:

2012-11-14  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: InvalidStateError
        https://bugs.webkit.org/show_bug.cgi?id=102241

        Reviewed by Ojan Vafai.

        Patch 11 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-14  Joshua Bell  <jsbell@chromium.org>

        Rename NATIVE_TYPE_ERR to TypeError
        https://bugs.webkit.org/show_bug.cgi?id=102114

        Reviewed by Kentaro Hara.

        Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
        V8 binding code had colliding enum members, which required prefixing.

        No new tests - just internal renames.

        * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
        (WebCore::IDBCursor::advance):
        (WebCore::IDBCursor::stringToDirection):
        (WebCore::IDBCursor::directionToString):
        * Modules/indexeddb/IDBDatabase.cpp: Ditto.
        (WebCore::IDBDatabase::setVersion):
        * Modules/indexeddb/IDBFactory.cpp: Ditto.
        (WebCore::IDBFactory::open):
        (WebCore::IDBFactory::openInternal):
        (WebCore::IDBFactory::deleteDatabase):
        * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
        (WebCore::IDBObjectStore::createIndex):
        * Modules/indexeddb/IDBTransaction.cpp: Ditto.
        (WebCore::IDBTransaction::stringToMode):
        (WebCore::IDBTransaction::modeToString):
        * bindings/js/JSDOMBinding.cpp: Ditto.
        (WebCore::setDOMException):
        * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
        (WebCore::DateExtension::OnSleepDetected):
        * bindings/v8/NPV8Object.cpp: Ditto.
        (_NPN_SetException):
        * bindings/v8/V8Binding.cpp: Ditto.
        (WebCore::throwError):
        (WebCore::handleMaxRecursionDepthExceeded):
        * bindings/v8/V8Binding.h: Ditto.
        (WebCore):
        * bindings/v8/V8NPObject.cpp: Ditto.
        (WebCore::npObjectInvokeImpl):
        (WebCore::npObjectGetProperty):
        (WebCore::npObjectSetProperty):
        (WebCore::npObjectPropertyEnumerator):
        * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
        (WebCore::V8ThrowException::setDOMException):
        (WebCore::V8ThrowException::throwError):
        (WebCore::V8ThrowException::throwTypeError):
        (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
        * bindings/v8/V8ThrowException.h:
        (V8ThrowException):
        * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
        (WebCore::WorkerContextExecutionProxy::evaluate):
        * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
        (WebCore::V8ArrayBuffer::constructorCallback):
        * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
        (WebCore::constructWebGLArrayWithArrayBufferArgument):
        (WebCore::constructWebGLArray):
        (WebCore::setWebGLArrayHelper):
        * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
        (WebCore::V8AudioContext::constructorCallback):
        * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
        (WebCore::V8Blob::constructorCallback):
        * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
        (WebCore::V8Clipboard::clearDataCallback):
        (WebCore::V8Clipboard::setDragImageCallback):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
        (WebCore::V8DOMFormData::appendCallback):
        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
        (WebCore::V8SQLResultSetRowList::itemCallback):
        * dom/ExceptionCode.h: Add WebIDL exception types.

2012-11-14  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Style BB10 time input field font.
        https://bugs.webkit.org/show_bug.cgi?id=102260.

        Reviewed by Rob Buis.

        RIM PR 243355
        Adjust time input field font using BB10 system default font.

        * css/themeBlackBerry.css:
        (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):

2012-11-14  Li Yin  <li.yin@intel.com>

        createDelay should raise exception when the maxDelayTime parameter is incorrect.
        https://bugs.webkit.org/show_bug.cgi?id=102173

        Reviewed by Chris Rogers.

        Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
        The specified value must be greater than zero and less than three minutes or a
        NOT_SUPPORTED_ERR exception will be thrown.

        Tests: webaudio/delaynode-maxdelaylimit.html

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createDelay):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
        * Modules/webaudio/DelayNode.cpp:
        (WebCore):
        (WebCore::DelayNode::DelayNode):
        * Modules/webaudio/DelayNode.h:
        (WebCore::DelayNode::create):
        (DelayNode):

2012-11-14  Simon Fraser  <simon.fraser@apple.com>

        Don't pass a paintingRoot when painting from RenderLayerBacking
        https://bugs.webkit.org/show_bug.cgi?id=102256

        Reviewed by David Hyatt.

        The 'paintingRoot' parameter to the RenderLayer paint functions
        is used when painting just a subtree (e.g. when painting dragged
        selections). There is no need to pass it when a RenderLayerBacking
        paints its contents or overlay scrollbars.
        
        Passing it requires an expensive isDescendant() check, so passing
        null is more efficient.
        
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintIntoLayer):
        (WebCore::RenderLayerBacking::paintContents):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):

2012-11-14  Alec Flett  <alecflett@chromium.org>

        Add DOMRequestState to maintain world/ScriptExecutionContext state
        https://bugs.webkit.org/show_bug.cgi?id=102102

        Reviewed by Adam Barth.

        Introduce DOMRequestState, and convert IndexedDB over.

        No new tests, this is an abstraction layer for existing code.

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::IDBRequest):
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        * WebCore.gypi:
        * bindings/v8/DOMRequestState.h: Added.
        (WebCore):
        (DOMRequestState):
        (WebCore::DOMRequestState::DOMRequestState):
        (Scope):
        (WebCore::DOMRequestState::Scope::Scope):
        (WebCore::DOMRequestState::scope):

2012-11-14  Justin Novosad  <junov@google.com>

        Boxes with rounded corners and thin borders are too slow to draw
        https://bugs.webkit.org/show_bug.cgi?id=101974

        Reviewed by Simon Fraser.

        With the current implementation RenderBox::
        determineBackgroundBleedAvoidance() uses the slow path
        BackgroundBleedUseTransparencyLayer for some very common use cases,
        notably for drawing rectangles with rounded corners that have thin
        borders. This is because the BackgroundBleedShrinkBackground
        strategy requires a border at least two pixels wide on all sides. This
        patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
        This approach consists in drawing the border first, with an inset inner
        edge (for anti-aliased compositing to work well).  This approach only
        works with opaque solid edges and opaque single-layer backgrounds.
        By using this approach rather than BackgroundBleedUseTransparencyLayer,
        we save two clipPath, one save and one saveLayer on the
        GraphicsContext. This patch gets good coverage from existing layout
        tests. One additional test was added to exercise mitring, thick edges
        and anti-aliasing edge cases under the new painting algorithm.

        Test: fast/borders/border-radius-wide-border-05.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::determineBackgroundBleedAvoidance):
        Added selection criteria for BackgroundOverBorder
        (WebCore::RenderBox::paintBoxDecorations):
        Added a preliminary paintBorder pass for BackgroundOverBorder
        (WebCore::RenderBox::paintBackground):
        Insetting the background to to innerBorder when bleedAvoidance is
        BackgroundOverBorder.  This why BackgroundOverBorder only works for
        Opaque solid edges.
        (WebCore):
        (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
        Utility method use by determineBackgroundBleedAvoidance to test the
        background's eligibility for BackgroundOverBorder bleed avoidance
        strategy.  The reason the background must be a single layer is to avoid
        color bleeding from layer compositing along anti-aliased edges
        * rendering/RenderBox.h:
        (RenderBox):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
        (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
        Added support for BackgroundOverBorder by applying a one pixel inset.
        (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
        Set the background rect to the inner border for BackgroundOverBorder
        (WebCore):
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        Added support for BackgroundOverBorder by using 
        backgroundRoundedRectAdjustedForBleedAvoidance
        (WebCore::RenderBoxModelObject::paintBorderSides):
        Added support for BackgroundOverBorder by applying per-side inset
        adjustments.
        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
        (WebCore::RenderBoxModelObject::paintBorder):
        Added support for BackgroundOverBorder by using an adjusted inner
        border, but not if sides are painted individually.
        * rendering/RenderBoxModelObject.h:
        (RenderBoxModelObject):

2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>

        [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
        https://bugs.webkit.org/show_bug.cgi?id=76219

        Reviewed by Brent Fulgham.

        This patch is to fix a memory leak problem which occurs
        in every rendering process on Wincairo port.
        By applying this patch, the memory allocated in cairo 
        library will be released by calling cairo_destroy.

        * platform/graphics/win/GraphicsContextCairoWin.cpp:
        (WebCore::GraphicsContext::platformInit):

2012-11-14  Sami Kyostila  <skyostil@chromium.org>

        Optimize painting of composited scrolling layers
        https://bugs.webkit.org/show_bug.cgi?id=96087

        Reviewed by Simon Fraser.

        Don't completely repaint accelerated scrolling layers when the scroll offset
        changes.

        Test: compositing/overflow/scrolling-without-painting.html

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::setOffsetFromRenderer):
        * platform/graphics/GraphicsLayer.h:
        (GraphicsLayer):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2012-11-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: keep track of mutation observers and disconnect them upon upload
        https://bugs.webkit.org/show_bug.cgi?id=102239

        Reviewed by Vsevolod Vlasov.

        Otherwise we hit memory leaks.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.wasShown):
        (WebInspector.DefaultTextEditor.prototype.willHide):
        (WebInspector.TextEditorMainPanel.prototype._wasShown):
        (WebInspector.TextEditorMainPanel.prototype._willHide):
        (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
        (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
        * inspector/front-end/utilities.js:

2012-11-14  Sergio Villar Senin  <svillar@igalia.com>

        [Qt] Use a node image if there is no drag image set for Drag&Drop
        https://bugs.webkit.org/show_bug.cgi?id=102124

        Reviewed by Simon Hausmann.

        Use the nodeImage provided by the frame if there is no dragImage in
        the clipboard for the current drag&drop operation.

        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::createDragImage):

2012-11-14  Max Vujovic  <mvujovic@adobe.com>

        Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
        https://bugs.webkit.org/show_bug.cgi?id=101846

        Reviewed by Simon Fraser.

        If software-rendered CSS Filters have not been used in the document, avoid doing the second
        tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
        enclosing filter layer.

        No new tests. We now avoid a filters related code path for a performance improvement when
        we're not using filters.

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):
        * page/FrameView.h:
        (FrameView):
        (WebCore::FrameView::setHasSoftwareFilters):
        (WebCore::FrameView::hasSoftwareFilters):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containerForRepaint):

2012-11-14  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: NotFoundError
        https://bugs.webkit.org/show_bug.cgi?id=102137

        Reviewed by Ojan Vafai.

        Patch 8 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-14  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Updating BB Cookie database to use WAL
        https://bugs.webkit.org/show_bug.cgi?id=102237

        Reviewed by Rob Buis.

        The cookie database is accessed by one process only and should be updated to
        use the WAL journal mode for better I/O performance.

        PR 236553

        cookieCollection.db-wal is created after the conversion to WAL.
        Tested cookie persistence by logging on to random sites and restarting the browser and
        check if it automatically logs in.
        Also tested using Opera's cookie persistence test.

        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
        (WebCore::CookieDatabaseBackingStore::invokeOpen):

2012-11-14  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: IndexSizeError
        https://bugs.webkit.org/show_bug.cgi?id=102087

        Reviewed by Ojan Vafai.

        This is the first in a series of updates to DOMException name to match
        the spec and Firefox.

        Patch 1 of 25

        Updated existing tests.

        * dom/DOMCoreException.cpp:
        (WebCore):

2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>

        Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
        https://bugs.webkit.org/show_bug.cgi?id=102205

        Reviewed by Csaba Osztrogonác.

        Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.

        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
        (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
        (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
        (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):

2012-11-14  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: NoDataAllowedError
        https://bugs.webkit.org/show_bug.cgi?id=102132

        Reviewed by Darin Adler.

        Patch 6 of 25 to update DOMException name to match the spec and Firefox.

        NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.

        * dom/DOMCoreException.cpp:
        (WebCore):
        * dom/ExceptionCode.h:

2012-11-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
        https://bugs.webkit.org/show_bug.cgi?id=102219

        Reviewed by Alexander Pavlov.

        Force elements module load upon context menu invocation.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
        (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):

2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134523.
        http://trac.webkit.org/changeset/134523
        https://bugs.webkit.org/show_bug.cgi?id=102218

        brake chrome windows build, as it references a non existing
        header js/DOMRequestState.h (Requested by jochen__ on
        #webkit).

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::setValueReady):
        * Modules/indexeddb/IDBCursor.h:
        (IDBCursor):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::IDBRequest):
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::stop):
        (WebCore::IDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        * WebCore.gypi:
        * bindings/v8/DOMRequestState.h: Removed.
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::deserializeIDBValue):
        (WebCore::idbKeyToScriptValue):
        * bindings/v8/IDBBindingUtilities.h:
        (WebCore):

2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>

        Add platform implementation of remote web inspector server for GTK port.
        https://bugs.webkit.org/show_bug.cgi?id=88094 

        Reviewed by Gustavo Noronha Silva.

        Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
        Needed to pass remote inspector server socket connection. The change is tested with 
        inspector server API tests.

        * platform/network/soup/SocketStreamHandle.h:
        (WebCore::SocketStreamHandle::create):
        (SocketStreamHandle):
        * platform/network/soup/SocketStreamHandleSoup.cpp:
        (WebCore::SocketStreamHandle::SocketStreamHandle):
        (WebCore):
        (WebCore::SocketStreamHandle::connected):
        (WebCore::SocketStreamHandle::platformSend):
        (WebCore::SocketStreamHandle::platformClose):

2012-11-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
        https://bugs.webkit.org/show_bug.cgi?id=102212

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):

2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI add instrumentation for WebAudo related stuff.
        They use about 16Mb for shared data on pages with webaudio.
        As example Angry Birds app.
        https://bugs.webkit.org/show_bug.cgi?id=101729

        Reviewed by Yury Semikhatsky.

        Plain vanilla instrumentation for audio and webaudio classes.
        AudioContext is a kind of ActiveDOMObject. I found that these objects
        are accessible through ScriptExecutuionContext and ScriptExecutionContext
        is an ancestor of Document. Document class was instrumented earler.
        I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
        and now AudioContext and other ActiveDOMObjects are reacheable from Document.

        Test: inspector-protocol/nmi-webaudio.html

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::reportMemoryUsage):
        (WebCore):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/AudioNode.cpp:
        (WebCore::AudioNode::reportMemoryUsage):
        (WebCore):
        * Modules/webaudio/AudioNode.h:
        (AudioNode):
        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::reportMemoryUsage):
        (WebCore):
        * dom/ActiveDOMObject.h:
        (ActiveDOMObject):
        * dom/Document.cpp:
        (WebCore::Document::reportMemoryUsage):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::reportMemoryUsage):
        (WebCore):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
        * dom/SecurityContext.cpp:
        (WebCore::SecurityContext::reportMemoryUsage):
        (WebCore):
        * dom/SecurityContext.h:
        (SecurityContext):
        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryTypes):
        * platform/audio/AudioArray.h:
        (AudioArray):
        (WebCore::AudioArray::reportMemoryUsage):
        * platform/audio/FFTFrame.cpp:
        (WebCore::FFTFrame::reportMemoryUsage):
        (WebCore):
        * platform/audio/FFTFrame.h:
        (FFTFrame):
        * platform/audio/HRTFDatabase.cpp:
        (WebCore::HRTFDatabase::reportMemoryUsage):
        (WebCore):
        * platform/audio/HRTFDatabase.h:
        (HRTFDatabase):
        * platform/audio/HRTFDatabaseLoader.cpp:
        (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
        (WebCore):
        * platform/audio/HRTFDatabaseLoader.h:
        (HRTFDatabaseLoader):
        * platform/audio/HRTFElevation.cpp:
        (WebCore::HRTFElevation::reportMemoryUsage):
        (WebCore):
        * platform/audio/HRTFElevation.h:
        (HRTFElevation):
        * platform/audio/HRTFKernel.cpp:
        (WebCore::HRTFKernel::reportMemoryUsage):
        (WebCore):
        * platform/audio/HRTFKernel.h:
        (HRTFKernel):

2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Settings screen: close button overlays view title on mac.
        https://bugs.webkit.org/show_bug.cgi?id=102198

        Reviewed by Pavel Feldman.

        Added margin-left for mac. Adjusted title height and vertical positioning.

        * inspector/front-end/helpScreen.css:
        (.help-window-caption): Adjusted title height.
        (.help-window-title): Adjusted title vertical positioning. 
        (body.platform-mac .help-window-main .help-window-title): Fixed margin.

2012-11-13  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
        https://bugs.webkit.org/show_bug.cgi?id=101905

        Reviewed by Vsevolod Vlasov.

        Currently we use heuristics for detecting damaged model range upon DOM mutation.
        This change adds signals from the last selection and keyboard events in order to
        further improve the heuristics quality.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor):
        (WebInspector.DefaultTextEditor.EditInfo):
        (WebInspector.DefaultTextEditor.prototype._handleTextInput):
        (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
        (WebInspector.DefaultTextEditor.prototype.lastSelection):
        (WebInspector.DefaultTextEditor.prototype.wasShown):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
        (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextRange.prototype.compareTo):
        (WebInspector.TextRange.prototype.shift):
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2012-11-14  Dan Carney  <dcarney@google.com>

        [V8] use toV8Fast in all relevant Node getters
        https://bugs.webkit.org/show_bug.cgi?id=100851

        Reviewed by Kentaro Hara.

        The toV8Fast function for Node objects is now called in all getters
        instead of toV8.

        No new tests. Test coverage extensive.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (IsDOMNodeType):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::toV8Fast):

2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Clean up use of adjustWindowRect
        https://bugs.webkit.org/show_bug.cgi?id=102072

        Reviewed by Gyuyoung Kim.

        Tested by fast/dom/Window/open-window-min-size.html

        * loader/FrameLoader.cpp:
        (WebCore::createWindow):

            Validate the window size here so that it is not just done for
            .open, but also for .showModalDialog. This is compatible with
            other browsers such as IE and Firefox (though IE > 6, enforces
            a minimum width of 250 instead of 100 as Firefox and us.)

        * page/DOMWindow.cpp:
        (WebCore):
        (WebCore::DOMWindow::adjustWindowRect):

            Make it a static method which only takes page. It was never
            called from anywhere without a valid page, so the page check
            has been turned into an assert, and two of the arguments have
            been removed as they can be accessed via the page.

        (WebCore::DOMWindow::moveBy):
        (WebCore::DOMWindow::moveTo):
        (WebCore::DOMWindow::resizeBy):
        (WebCore::DOMWindow::resizeTo):

            Update use of adjustWindowRect.

        (WebCore::DOMWindow::open):

            Avoid modifying the WindowFeatures as the WebCore::createWindow
            validates and adjusts the arguments.

        * page/DOMWindow.h:
        (DOMWindow):

2012-11-14  Takashi Sakamoto  <tasak@google.com>

        Crash when replacing parts of text inputs with content: url(...)
        https://bugs.webkit.org/show_bug.cgi?id=101133

        Reviewed by Kent Tamura.

        Disable directly setting content of elements in an input element's
        shadow dom tree, because the setting breaks input element's behavior.

        Tests: fast/forms/number/number-content-url-crash.html
               fast/forms/search/search-content-url-crash.html

        * css/html.css:
        (input::-webkit-textfield-decoration-container):
        Use important to disable overriding an input element's content
        property.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::attach):
        Added ASSERTION. No content should be applied to
        input::-webkit-textfield-decoration-container.

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        (WebCore::V8TestOverloadedConstructors::wrapSlow):

2012-11-14  Anton Muhin  <antonm@chromium.org>

        Provide return types for custom WebGLRenderingContext methods
        https://bugs.webkit.org/show_bug.cgi?id=100777

        Reviewed by Kenneth Russell.

        No new tests as doesn't change generated code.

        * html/canvas/WebGLRenderingContext.idl:

2012-11-14  Kent Tamura  <tkent@chromium.org>

        Support for localization tests of calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=102181

        Reviewed by Kentaro Hara.

        Introduce DateTimeChooserParameters::locale to inform locale to
        DateTimeChooser implementations. However we pass defaultLanguage
        unless tests calls internals.settings.
        setLangAttributeAwareFormControlUIEnabled(true) explicitly.

        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
        Set DateTimeChooserParameters::locale up.
        * platform/DateTimeChooser.h:
        (DateTimeChooserParameters): Add 'locale' member.

2012-11-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: highlight is not updating as one edits CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=102191

        Reviewed by Alexander Pavlov.

        We should update highlight upon layout / style recalculation.

        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::InspectorPageAgent):
        (WebCore::InspectorPageAgent::enable):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::domContentEventFired):
        (WebCore::InspectorPageAgent::didPaint):
        (WebCore::InspectorPageAgent::didLayout):
        (WebCore::InspectorPageAgent::didScroll):
        (WebCore):
        (WebCore::InspectorPageAgent::didRecalculateStyle):
        * inspector/InspectorPageAgent.h:

2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134566.
        http://trac.webkit.org/changeset/134566
        https://bugs.webkit.org/show_bug.cgi?id=102197

        "it broke Chromium Android Release build" (Requested by
        haraken on #webkit).

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
        * platform/DateTimeChooser.h:
        (DateTimeChooserParameters):

2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: No content available for requests made from flash
        https://bugs.webkit.org/show_bug.cgi?id=101560

        Reviewed by Pavel Feldman.

        Network request data is now saved to inspector cache in following cases:
         - Error status code;
         - No cached resource available;
         - Cached resource has ShouldNotBufferData option set.
        Drive-by: refactored didReceiveResponse logic to be clearer.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::didReceiveResponse):
        (WebCore::InspectorResourceAgent::didReceiveData):
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::shouldBufferData):

2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>

        Changing pseudoClass (:target) should cause distribution
        https://bugs.webkit.org/show_bug.cgi?id=101699

        Reviewed by Hajime Morita.

        When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
        by consulting with SelectRuleFeatureSet.

        We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.

        Test: fast/dom/shadow/pseudoclass-update-target.html

        * dom/Document.cpp:
        (WebCore::Document::setCSSTarget):
        * dom/ElementShadow.cpp:
        (WebCore::invalidateParentDistributionIfNecessary):
        (WebCore):
        * dom/ElementShadow.h:
        (WebCore):
        * html/shadow/SelectRuleFeatureSet.h:
        (WebCore::SelectRuleFeatureSet::hasSelectorFor):
        (SelectRuleFeatureSet):

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        [V8] DOM wrapper objects should be collected in minor GC cycles
        https://bugs.webkit.org/show_bug.cgi?id=98725

        Reviewed by Adam Barth.

        Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
        have to survive two minor GC cycles, be promoted to the old space
        and wait for a heavy major GC cycle.

        This patch enables V8 to collect DOM Nodes in minor GC cycles.
        For real world applications, I confirmed that minor GC cycles
        reclaims a substantial amount of memory (24 MB for Facebook,
        235 MB for Google Calendar) with acceptable overhead (~10 ms
        per minor GC cycle). No performance regression in Dromaeo
        DOM tests.

        A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
        Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
        A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p

        * bindings/v8/IntrusiveDOMWrapperMap.h:
        (WebCore::IntrusiveDOMWrapperMap::set):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::initializeV8IfNeeded):
        * bindings/v8/V8GCController.cpp:
        (WebCore):
        (WebCore::gcTree):
        (WebCore::V8GCController::newWrapperBorn):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        (WebCore::V8GCController::gcEpilogue):
        (WebCore::V8GCController::minorGCEpilogue):
        (WebCore::V8GCController::majorGCEpilogue):
        * bindings/v8/V8GCController.h:
        (WebCore):
        (V8GCController):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initIsolate):
        * dom/Element.cpp:
        (WebCore::Element::focus):
        * dom/Node.h:
        (WebCore::Node::inEden):
        (WebCore::Node::setEden):
        (Node):

2012-11-14  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
        https://bugs.webkit.org/show_bug.cgi?id=101917

        Reviewed by Adam Barth.

        setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
        We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
        createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateConstructorCallback):
        (GenerateEventConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateToV8Converters):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::installDOMWindow):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::instantiateV8Object):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::createDOMWrapper):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
        (WebCore::V8ArrayBuffer::constructorCallback):
        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::wrapArrayBufferView):
        (WebCore::constructWebGLArray):
        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
        (WebCore::V8DOMFormData::constructorCallback):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore::V8DataView::constructorCallback):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):
        * bindings/v8/custom/V8IntentConstructor.cpp:
        (WebCore::V8Intent::constructorCallback):
        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
        (WebCore::V8MessageChannel::constructorCallback):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallback):
        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
        (WebCore::V8WebKitPoint::constructorCallback):
        * bindings/v8/custom/V8WebSocketCustom.cpp:
        (WebCore::V8WebSocket::constructorCallback):
        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallback):

2012-11-14  Kent Tamura  <tkent@chromium.org>

        Support for localization tests of calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=102181

        Reviewed by Kentaro Hara.

        Introduce DateTimeChooserParameters::locale to inform locale to
        DateTimeChooser implementations. However we pass defaultLanguage
        unless tests calls internals.settings.
        setLangAttributeAwareFormControlUIEnabled(true) explicitly.

        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
        Set DateTimeChooserParameters::locale up.
        * platform/DateTimeChooser.h:
        (DateTimeChooserParameters): Add 'locale' member.

2012-11-14  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Show total memory in the NMI snapshot header
        https://bugs.webkit.org/show_bug.cgi?id=101922

        Reviewed by Pavel Feldman.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):

2012-11-14  Jan Keromnes  <janx@linux.com>

        Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
        https://bugs.webkit.org/show_bug.cgi?id=102142

        Reviewed by Pavel Feldman.

        Calling revealLine in highlightLine like in DefaultTextEditor does the trick.

        * inspector/front-end/CodeMirrorTextEditor.js:
        (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):

2012-11-13  Kent Tamura  <tkent@chromium.org>

        Use menulist-button instead of menulist for date/time input types
        https://bugs.webkit.org/show_bug.cgi?id=101886

        Reviewed by Hajime Morita.

        Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
        not menulist. We had better apply common one by default.

        No new tests. Covered by fast/forms/*/*-appearance-*.html.

        * css/html.css:
        (input[type="date"]): Switch menulist-button from menulist.
        (input[type="datetime"]): Ditto.
        (input[type="datetime-local"]): Ditto.
        (input[type="month"]): Ditto.
        (input[type="time"]): Ditto.
        (input[type="week"]): Ditto.
        (input::-webkit-date-and-time-value):
        Add top, right, bottom margins. The right margin is important when
        dir=rtl is specified.
        whitespace:pre is needed to align baseline in a case of empty values.
        * css/themeChromiumAndroid.css:
        Remove redundant style declaration.
        * css/themeWin.css:
        Remove padding adjustment for date/time input types. It is for
        textfields.

2012-11-13  Vincent Scheib  <scheib@chromium.org>

        Remove RuntimeEnabledFeatures::isPointerLockEnabled.
        https://bugs.webkit.org/show_bug.cgi?id=102107

        Reviewed by Adam Barth.

        The runtime flag is always true now that the feature is enabled by default in Chromium.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/MouseEvent.idl:

2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: JsDoc-annotate KeyboardShortcuts
        https://bugs.webkit.org/show_bug.cgi?id=101301

        Reviewed by Pavel Feldman.

        JsDoc-annotate KeyboardShortcuts to improve readability.

        * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
        * inspector/front-end/KeyboardShortcut.js: Add annotations.
        * inspector/front-end/Panel.js: Make event parameter typed.
        * inspector/front-end/inspector.js: Ditto.

2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
        https://bugs.webkit.org/show_bug.cgi?id=101907

        Reviewed by Pavel Feldman.

        Status bar control element should have common interface for
        easier management.
        In this patch getter/setter for StatusBarButton "disabled" are replaced
        with regular functions "enabled"/"setEnabled"; added "setEnabled"
        to StatusBarCombo; added new base class StatusBarItem with
        method "setEnabled" and member "element".

        * inspector/front-end/CPUProfileView.js: Adopted refactoring.
        * inspector/front-end/DockController.js: Ditto.
        * inspector/front-end/ScriptsPanel.js: Ditto.
        * inspector/front-end/TimelinePanel.js: Ditto.
        * inspector/front-end/inspector.js: Ditto.
        * inspector/front-end/StatusBarButton.js:
        (WebInspector.StatusBarItem): Added.
        (WebInspector.StatusBarButton): Replaced getter/setter with
        regular functions.
        (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.

2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Console: update tab/shift-tab shortcut description.
        https://bugs.webkit.org/show_bug.cgi?id=102175

        Reviewed by Pavel Feldman.

        For "Tab / Shift-Tab" it said "Next/previous suggestion".
        Actually, shift-tab to do nothing, and tab auto-completes common prefix.

        * English.lproj/localizedStrings.js: Replaced string.
        * inspector/front-end/ConsoleView.js: Updated shortcut registration.

2012-11-13  Dana Jansens  <danakj@chromium.org>

        [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
        https://bugs.webkit.org/show_bug.cgi?id=102130

        Reviewed by James Robinson.

        The current method of setting debug borders on GraphicsLayers requires
        every GraphicsLayerClient to set the value on the layer(s) it
        represents. This skips the NonCompositedContentHost as well as any
        other clients other than RenderLayerBacking - including layers from the
        inspector.

        Instead, pass the debug border setting directly to the
        WebLayerTreeSettings where the compositor can use the flag to enable
        borders on all layers globally.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
        (WebCore::GraphicsLayerChromium::updateMasksToBounds):
        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
        (WebCore::GraphicsLayerChromium::setupContentsLayer):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        (GraphicsLayerChromium):

2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Enable calendar picker for input types datetime/datetime-local
        https://bugs.webkit.org/show_bug.cgi?id=101889

        Reviewed by Kent Tamura.

        This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
        When a user choose a date from calendar picker, year/month/day fields of the input
        element are updated and hour/minute/second fields are unchanged.

        Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
               platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html

        * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
        If the given value is not valid for the element, try to parse it as a date string.
        * html/DateTimeInputType.cpp:
        (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
        * html/DateTimeLocalInputType.cpp:
        (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
        (WebCore):
        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement):
        * rendering/RenderThemeChromiumCommon.cpp:
        (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.

2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134524.
        http://trac.webkit.org/changeset/134524
        https://bugs.webkit.org/show_bug.cgi?id=102177

        "Chromiium build broken" (Requested by haraken on #webkit).

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
        * rendering/RenderThemeChromiumFontProvider.h: Removed.
        * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
        * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
        * rendering/RenderThemeChromiumSkia.cpp:
        (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
        (WebCore::RenderThemeChromiumSkia::systemFont):
        (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
        * rendering/RenderThemeChromiumSkia.h:
        (RenderThemeChromiumSkia):
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore):
        (WebCore::getNonClientMetrics):
        (WebCore::systemFontSize):
        (WebCore::pointsToPixels):
        (WebCore::RenderThemeChromiumWin::systemFont):
        (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
        * rendering/RenderThemeChromiumWin.h:
        (RenderThemeChromiumWin):

2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>

        Fix compile warning [-Wsign-compare]
        https://bugs.webkit.org/show_bug.cgi?id=101458

        Reviewed by Alexey Proskuryakov.

        Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
        However, it leads -Wsign-compare compile warning.
        Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.

        * platform/posix/SharedBufferPOSIX.cpp:
        (WebCore::SharedBuffer::createWithContentsOfFile):

2012-11-13  Keishi Hattori  <keishi@webkit.org>

        Enable datalist UI for input types week and month
        https://bugs.webkit.org/show_bug.cgi?id=102041

        Reviewed by Kent Tamura.

        Enabling datalist UI for input types week and month.

        No new tests. Tests will be added later in Bug 102039 and Bug 102040.

        * rendering/RenderThemeChromiumCommon.cpp:
        (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.

2012-11-13  Eberhard Graether  <egraether@google.com>

        checkbox to toggle FPS counter in the inspector's settings
        https://bugs.webkit.org/show_bug.cgi?id=99660

        Reviewed by Pavel Feldman.

        Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.

        No new tests.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::canShowFPSCounter):
        (WebCore::InspectorClient::setShowFPSCounter):
        (InspectorClient):
        * inspector/InspectorPageAgent.cpp:
        (PageAgentState):
        (WebCore::InspectorPageAgent::enable):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::canShowFPSCounter):
        (WebCore):
        (WebCore::InspectorPageAgent::setShowFPSCounter):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):
        (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
        * inspector/front-end/inspector.js:
        (WebInspector.doLoadedDone):

2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>

        Collect necessary features for SelectRuleFeatureSet
        https://bugs.webkit.org/show_bug.cgi?id=102160

        Reviewed by Dimitri Glazkov.

        When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
        distribution, we would like to collect RuleFeature from select attributes.

        According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
        indeterminate, link, target, and visited. We collect them in this patch.

        Test: fast/dom/shadow/shadow-select-attribute-featureset.html

        * html/shadow/SelectRuleFeatureSet.cpp:
        (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
        (WebCore::SelectRuleFeatureSet::add):
        (WebCore::SelectRuleFeatureSet::clear):
        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
        * html/shadow/SelectRuleFeatureSet.h:
        (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
        (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
        (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
        (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
        (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
        (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
        (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
        (SelectRuleFeatureSet):
        (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
        (WebCore::SelectRuleFeatureSet::hasSelectorFor):
        * testing/Internals.cpp:
        (WebCore::Internals::hasSelectorForPseudoClassInShadow):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-11-13  Andreas Kling  <kling@webkit.org>

        Move inline style logic from ElementAttributeData to StyledElement.
        <http://webkit.org/b/102120>

        Reviewed by Antti Koivisto.

        Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
        No difference in behavior, just making ElementAttributeData dumber.

        * css/StylePropertySet.cpp:
        * css/StylePropertySet.h:
        (WebCore::StylePropertySet::hasCSSOMWrapper):
        (WebCore::StylePropertySet::cssStyleDeclaration):

            Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
            to instantiate a CSSOM wrapper unnecessarily.

        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyle):
        * dom/ElementAttributeData.cpp:
        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
        (WebCore::ElementAttributeData::reportMemoryUsage):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::inlineStyle):
        (ElementAttributeData):

            Renamed m_inlineStyleDecl to m_inlineStyle. Finally.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::~StyledElement):

            Detach the CSSOM wrapper from the inline style if there is one.

        (WebCore::StyledElement::ensureMutableInlineStyle):
        (WebCore::StyledElement::style):

            Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
            actually does. Update call sites accordingly.

        (WebCore::StyledElement::inlineStyleCSSOMWrapper):

            Added helper to get the CSSOM wrapper for the element's inline style if there is one.

        (WebCore::StyledElement::styleAttributeChanged):

            Do the work to parse/update/replace the inline style attribute here instead of
            in an ElementAttributeData method.

        (WebCore::StyledElement::setInlineStyleProperty):
        (WebCore::StyledElement::removeInlineStyleProperty):
        (WebCore::StyledElement::removeAllInlineStyleProperties):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
        * html/canvas/CanvasStyle.cpp:
        (WebCore::currentColor):

            s/ensureInlineStyle/ensureMutableInlineStyle/

2012-11-13  Li Yin  <li.yin@intel.com>

        fast/forms/file/input-file-write-files.html should cover correct setting value
        https://bugs.webkit.org/show_bug.cgi?id=100085

        Reviewed by Kentaro Hara.

        Fix the GObject and Objective C bindings comparibility issue. Preserving existing
        behavior for those may be important in idl.

        No new tests, because fast/forms/file/input-file-value.html has covered it.

        * html/HTMLInputElement.idl:

2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>

        [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102061

        Reviewed by Gyuyoung Kim.

        The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.

        * platform/network/efl/NetworkStateNotifierEfl.cpp:
        (WebCore::readSocketCallback):

2012-11-13  Sami Kyostila  <skyostil@chromium.org>

        Don't mark scrolling contents as dirty if RenderLayerBacking is going away
        https://bugs.webkit.org/show_bug.cgi?id=101947

        Reviewed by Simon Fraser.

        When a scrolling contents graphics layer is created or destroyed, the
        associated graphics layer is marked as needing display because some of
        the painted content may have migrated between the primary graphics layer
        and the scrolling layer.

        This causes a problem when the RenderLayerBacking is being destroyed,
        because setNeedsDisplay() needs to check from the compositor whether to
        track repaints or not. If the RenderLayerBacking is being destroyed, the
        value returned by compositor() is garbage and this causes a crash.

        This patch fixes the problem by making RenderLayer::compositor() return a null
        pointer when the renderer no longer has a view.

        Covered by existing layout tests in compositing/overflow/.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::compositor):

2012-11-13  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: InvalidCharacterError
        https://bugs.webkit.org/show_bug.cgi?id=102128

        Reviewed by Darin Adler.

        Patch 5 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-13  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Run multiple tasks per transaction tick
        https://bugs.webkit.org/show_bug.cgi?id=97738

        Reviewed by Tony Chang.

        Process multiple tasks from the pending queue(s) when the timer fires. The
        task may initiate new tasks that change which queue is active (e.g. indexing
        operations) so the loop must re-check each tick which queue to use.

        In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
        in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).

        No new tests - just perf improvements, covered by (nearly) all existing IDB tests.

        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
        (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.

2012-11-13  Elliott Sprehn  <esprehn@chromium.org>

        Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
        https://bugs.webkit.org/show_bug.cgi?id=102012

        Reviewed by Ojan Vafai.

        Previously if you modified the subtree that was being removed from a
        removeChild from inside an unload handler on an <iframe> inside the
        subtree you'd get an exception which is wrong. Instead we just need to
        disable all frame loading there.

        This works because either the subtree will be removed and the frame never
        loading doesn't matter, or some section of the subtree that contains the
        frame will be moved to another part of the document which will cause the
        frame to load when it's inserted there.

        I also added a check for <object> elements. It doesn't seem this is actually
        reachable in the existing code, but I'm not entirely sure since the frame
        loading and object/plugin handling is very confusing.

        A better fix could be to repeatedly walk the subtree until all frames
        were disconnected or some iteration limit was hit and then force all leftover
        subframes to disconnect without firing unload handlers but this is such an
        edge case I don't think the complexity is necessary.

        Test: fast/frames/modifications-in-subtree-unload.html

        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
        (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
        (ChildFrameDisconnector):
        (WebCore::ChildFrameDisconnector::disconnect):
        * dom/Node.cpp:
        (WebCore::checkAcceptChild): Removed exception.
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
        * html/HTMLFrameOwnerElement.h:
        (SubframeLoadingDisabler):
        (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
        (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
        (WebCore::SubframeLoadingDisabler::canLoadFrame):
          Returns true if frames can be loaded in the subtree.
        (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateWidget):
          Check canLoadFrame(). I think this case is impossible, but it's better
          to be safe than sorry later.

2012-11-13  Joshua Bell  <jsbell@chromium.org>

        [V8] Add missing ENABLE(SVG) test in header
        https://bugs.webkit.org/show_bug.cgi?id=102143

        Reviewed by Kentaro Hara.

        Need to wrap the #include of a header that's only conditionally generated.

        Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"

        * bindings/v8/custom/V8ElementCustom.cpp:

2012-11-13  Jon Lee  <jonlee@apple.com>

        Automatically run small plugins
        https://bugs.webkit.org/show_bug.cgi?id=102148
        <rdar://problem/12695560>

        Reviewed by Darin Adler.

        * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
        * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
        (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
        If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
        display state to Playing. Assuming we will always layout before first paint, changing the state here
        should be safe.
        * rendering/RenderSnapshottedPlugIn.h:

2012-11-13  Kenneth Russell  <kbr@google.com>

        Notify embedder of lost contexts and allow overriding of WebGL support
        https://bugs.webkit.org/show_bug.cgi?id=101826

        Reviewed by Adam Barth.

        Add hooks notifying the embedder when OpenGL contexts are lost and
        allowing overriding of WebGL support on a per-frame basis.

        No tests yet; don't know how to test this solely within WebKit.
        Currently developing tests in the Chromium port exercising the
        notifications end-to-end. Once those are in place, I'm prepared to
        investigate adding tests for all ports.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::create):
          Check whether embedder vetoes creation of new WebGL contexts.
        (WebCore::WebGLRenderingContext::loseContextImpl):
          Notify embedder that context was lost.
        (WebCore::WebGLRenderingContext::maybeRestoreContext):
          Check whether embedder vetoes restoration of existing WebGL contexts.
        * loader/FrameLoaderClient.h:
        (FrameLoaderClient):
        (WebCore::FrameLoaderClient::allowWebGL):
        (WebCore::FrameLoaderClient::didLoseWebGLContext):
          Hooks notifying embedder of lost contexts and asking permission to run WebGL.

2012-11-13  Scott Violet  <sky@chromium.org>

        [Chromium] Refactor theme font lookup into a factory
        https://bugs.webkit.org/show_bug.cgi?id=101949

        Reviewed by Tony Chang.

        This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.

        No new tests. Refactoring only.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * rendering/RenderThemeChromiumFontProvider.cpp: Added.
        (WebCore):
        (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
        * rendering/RenderThemeChromiumFontProvider.h: Added.
        (WTF):
        (WebCore):
        (RenderThemeChromiumFontProvider): This is the font related methods.
        * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
        (WebCore):
        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
        (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
        * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
        (WebCore):
        (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
        (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
        (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
        (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
        * rendering/RenderThemeChromiumSkia.cpp:
        (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
        (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
        (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
        * rendering/RenderThemeChromiumSkia.h:
        (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
        * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
        (WebCore):
        * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
        (RenderThemeChromiumWin):

2012-11-13  Alec Flett  <alecflett@chromium.org>

        Add DOMRequestState to maintain world/ScriptExecutionContext state
        https://bugs.webkit.org/show_bug.cgi?id=102102

        Reviewed by Adam Barth.

        Introduce DOMRequestState, and convert IndexedDB over.

        No new tests, this is an abstraction layer for existing code.

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::IDBRequest):
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        * WebCore.gypi:
        * bindings/v8/DOMRequestState.h: Added.
        (WebCore):
        (DOMRequestState):
        (WebCore::DOMRequestState::DOMRequestState):
        (Scope):
        (WebCore::DOMRequestState::Scope::Scope):
        (WebCore::DOMRequestState::scope):

2012-11-13  Robert Sesek  <rsesek@chromium.org>

        Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
        https://bugs.webkit.org/show_bug.cgi?id=101634

        Reviewed by Adam Barth.

        This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
        into RenderThemeMacShared.

        No new tests, just refactoring.

        * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
        * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
        * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
        * rendering/RenderThemeChromiumMac.h:
        * rendering/RenderThemeChromiumMac.mm:
        (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
        (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
        (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
        * rendering/RenderThemeMac.h:
        (RenderThemeMac):
        * rendering/RenderThemeMac.mm:
        (WebCore):
        (WebCore::RenderTheme::themeForPage):
        (WebCore::RenderThemeMac::create):
        (WebCore::RenderThemeMac::RenderThemeMac):
        (WebCore::RenderThemeMac::~RenderThemeMac):
        (WebCore::RenderThemeMac::documentViewFor):
        (WebCore::mediaControllerTheme):
        (WebCore::RenderThemeMac::paintMediaSliderTrack):
        (WebCore::RenderThemeMac::paintMediaRewindButton):
        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
        (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
        (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
        * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
        (WebCore):
        (RenderThemeMacShared):
        (WebCore::RenderThemeMacShared::supportsControlTints):
        (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
        (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
        (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
        (WebCore::RenderThemeMacShared::updateActiveState):
        * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
        (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
        (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
        (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
        (WebCore):
        (WebCore::RenderThemeMacShared::RenderThemeMacShared):
        (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
        (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeMacShared::platformFocusRingColor):
        (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
        (WebCore::toFontWeight):
        (WebCore::RenderThemeMacShared::systemFont):
        (WebCore::convertNSColorToColor):
        (WebCore::menuBackgroundColor):
        (WebCore::RenderThemeMacShared::platformColorsDidChange):
        (WebCore::RenderThemeMacShared::systemColor):
        (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
        (WebCore::RenderThemeMacShared::isControlStyled):
        (WebCore::RenderThemeMacShared::adjustRepaintRect):
        (WebCore::RenderThemeMacShared::inflateRect):
        (WebCore::RenderThemeMacShared::convertToPaintingRect):
        (WebCore::RenderThemeMacShared::updateCheckedState):
        (WebCore::RenderThemeMacShared::updateEnabledState):
        (WebCore::RenderThemeMacShared::updateFocusedState):
        (WebCore::RenderThemeMacShared::updatePressedState):
        (WebCore::RenderThemeMacShared::controlSupportsTints):
        (WebCore::RenderThemeMacShared::controlSizeForFont):
        (WebCore::RenderThemeMacShared::setControlSize):
        (WebCore::RenderThemeMacShared::sizeForFont):
        (WebCore::RenderThemeMacShared::sizeForSystemFont):
        (WebCore::RenderThemeMacShared::setSizeFromFont):
        (WebCore::RenderThemeMacShared::setFontFromControlSize):
        (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
        (WebCore::RenderThemeMacShared::paintTextField):
        (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
        (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
        (WebCore::RenderThemeMacShared::paintTextArea):
        (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
        (WebCore::RenderThemeMacShared::popupButtonMargins):
        (WebCore::RenderThemeMacShared::popupButtonSizes):
        (WebCore::RenderThemeMacShared::popupButtonPadding):
        (WebCore::RenderThemeMacShared::paintMenuList):
        (WebCore::RenderThemeMacShared::meterSizeForBounds):
        (WebCore::RenderThemeMacShared::paintMeter):
        (WebCore::RenderThemeMacShared::supportsMeter):
        (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
        (WebCore::RenderThemeMacShared::levelIndicatorFor):
        (WebCore::RenderThemeMacShared::progressBarSizes):
        (WebCore::RenderThemeMacShared::progressBarMargins):
        (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
        (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
        (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
        (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
        (WebCore::RenderThemeMacShared::paintProgressBar):
        (WebCore::TopGradientInterpolate):
        (WebCore::BottomGradientInterpolate):
        (WebCore::MainGradientInterpolate):
        (WebCore::TrackGradientInterpolate):
        (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
        (WebCore::RenderThemeMacShared::paintMenuListButton):
        (WebCore::menuListButtonSizes):
        (WebCore::RenderThemeMacShared::adjustMenuListStyle):
        (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
        (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
        (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
        (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
        (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
        (WebCore::RenderThemeMacShared::setPopupButtonCellState):
        (WebCore::RenderThemeMacShared::menuListSizes):
        (WebCore::RenderThemeMacShared::minimumMenuListSize):
        (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
        (WebCore::RenderThemeMacShared::paintSliderTrack):
        (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
        (WebCore::RenderThemeMacShared::paintSliderThumb):
        (WebCore::RenderThemeMacShared::paintSearchField):
        (WebCore::RenderThemeMacShared::setSearchCellState):
        (WebCore::RenderThemeMacShared::searchFieldSizes):
        (WebCore::RenderThemeMacShared::setSearchFieldSize):
        (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
        (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMacShared::cancelButtonSizes):
        (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeMacShared::resultsButtonSizes):
        (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
        (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
        (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
        (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
        (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
        (WebCore::RenderThemeMacShared::sliderTickSize):
        (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
        (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
        (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
        (WebCore::RenderThemeMacShared::popupButton):
        (WebCore::RenderThemeMacShared::search):
        (WebCore::RenderThemeMacShared::searchMenuTemplate):
        (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
        (WebCore::RenderThemeMacShared::sliderThumbVertical):
        (WebCore::RenderThemeMacShared::textField):
        (WebCore::RenderThemeMacShared::fileListNameForWidth):
        (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):

2012-11-13  Tab Atkins  <tabatkins@google.com>

        CSS @charset parsing is too loose, doesn't match other browsers
        https://bugs.webkit.org/show_bug.cgi?id=101527

        Reviewed by Alexey Proskuryakov.

        Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
        IE and FF have changed to be strict about @charset parsing,
        as the CSS 2.1 spec requires.
        Since @charset use is very uncommon anyway,
        we should match the new behavior and the spec for platform consistency.

        Test: fast/encoding/css-charset-evil/css-charset-evil.html

        * loader/TextResourceDecoder.cpp:
        (WebCore::bytesEqual):
        (WebCore::TextResourceDecoder::checkForCSSCharset):

2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>

        [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
        https://bugs.webkit.org/show_bug.cgi?id=101569

        Reviewed by Alexey Proskuryakov.

        Replace unpaired surrogates with replacing character (U+FFFD) when
        encoding text messages and close reasons. This change is aimed at
        following the changes on the WebSocket API specification.

        Test: http/tests/websocket/tests/hybi/close-reason-too-long.html

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::close):
        Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
        text message. Remove invalid utf-8 check.
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::send):
        Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
        close reason. Remove invalid utf-8 check.

2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>

        Make HTMLLegendElement.form behave according to specification
        https://bugs.webkit.org/show_bug.cgi?id=101044

        Reviewed by Kent Tamura.

        According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
        The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
        not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
        same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.

        This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
        not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
        return the same value as the parent fieldset's form attribute.

        Test: fast/forms/legend/legend-form.html

        * html/HTMLLegendElement.cpp:
        (WebCore):
        (WebCore::HTMLLegendElement::virtualForm):
        * html/HTMLLegendElement.h:
        (HTMLLegendElement):

2012-11-13  Mark Lam  <mark.lam@apple.com>

        Make an assertion in JSEventListener::jsFunction() more useful.
        https://bugs.webkit.org/show_bug.cgi?id=101985.

        Reviewed by Geoffrey Garen.

        The assertion was weakened in r134495. This strengthens it again.

        No new tests.

        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::jsFunction):

2012-11-13  Dean Jackson  <dino@apple.com>

        Support list of tracks in caption media controls
        https://bugs.webkit.org/show_bug.cgi?id=101669

        Reviewed by Eric Carlson.

        Attempt four of commit. The first two times caused build failures on Chromium. The third time
        crashed the Windows test bot. It's also been rebased since r134488.

        Add some new elements to the media control shadow DOM that display the list of available
        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
        where it is given a very basic design. At the moment only the list of available tracks
        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670

        No new tests - this doesn't expose any testable surface.

        * css/mediaControls.css: Added default rules that hide the new elements.
        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
        (WebCore::MediaControlClosedCaptionsContainerElement::create):
        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
        * html/shadow/MediaControlElements.h:
        (MediaControlElement):
        (MediaControlToggleClosedCaptionsButtonElement):
        (MediaControlClosedCaptionsContainerElement):
        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsApple::MediaControlsApple):
        (WebCore::MediaControlsApple::create): New track container and list elements created.
        (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
        (WebCore::MediaControlsApple::hide):
        (WebCore::MediaControlsApple::makeTransparent):
        (WebCore::MediaControlsApple::reset):
        (WebCore::MediaControlsApple::reportedError):
        (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
        (WebCore):
        * html/shadow/MediaControlsApple.h:
        (MediaControlsApple):
        * html/shadow/MediaControlsChromium.cpp:
        (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
        * html/shadow/MediaControls.h:
        (MediaControls):
        * platform/Language.cpp:
        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
        * platform/Language.h:
        (WebCore):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
        * rendering/RenderMediaControlsChromium.cpp:
        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.

2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r134377.
        http://trac.webkit.org/changeset/134377
        https://bugs.webkit.org/show_bug.cgi?id=101133

        Caused a mysterious Android Clang build failure, needs
        investigation before landing again.

        * css/html.css:
        (input::-webkit-textfield-decoration-container):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::attach):

2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134482.
        http://trac.webkit.org/changeset/134482
        https://bugs.webkit.org/show_bug.cgi?id=102140

        The patch causes fast/regions/moved-content-node-crash.html to
        crash in Debug mode due to ASSERTION. (Requested by abucur on
        #webkit).

        * rendering/InlineFlowBox.cpp:
        (SameSizeAsInlineFlowBox):
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::InlineFlowBox):
        (InlineFlowBox):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
        (WebCore::RenderBlock::linkToEndLineIfNeeded):
        (WebCore::RenderBlock::determineStartPosition):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::RootInlineBox):
        * rendering/RootInlineBox.h:
        (WebCore):
        (WebCore::RootInlineBox::paginationStrut):
        (WebCore::RootInlineBox::setPaginationStrut):
        (WebCore::RootInlineBox::isFirstAfterPageBreak):
        (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
        (WebCore::RootInlineBox::paginatedLineWidth):
        (WebCore::RootInlineBox::setPaginatedLineWidth):
        (RootInlineBox):

2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>

        Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
        https://bugs.webkit.org/show_bug.cgi?id=102108

        Reviewed by Adam Barth.

        No new tests. Fix clang build break.

        * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"

2012-11-13  Chris Fleizach  <cfleizach@apple.com>

        AX: MathML types need to be semantically identified in AX tree
        https://bugs.webkit.org/show_bug.cgi?id=101263

        Reviewed by Beth Dakin.

        Semantically identify various MathML elements within the AX tree. This will allow
        screen readers to identify math types so that equations can be output more accurately.

        Test: platform/mac/accessibility/mathml-elements.html

        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):
        (WebCore::AccessibilityObject::isMathElement):
        (WebCore::AccessibilityObject::isMathFraction):
        (WebCore::AccessibilityObject::isMathFenced):
        (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
        (WebCore::AccessibilityObject::isMathRow):
        (WebCore::AccessibilityObject::isMathUnderOver):
        (WebCore::AccessibilityObject::isMathRoot):
        (WebCore::AccessibilityObject::isMathSquareRoot):
        (WebCore::AccessibilityObject::isMathText):
        (WebCore::AccessibilityObject::isMathNumber):
        (WebCore::AccessibilityObject::isMathOperator):
        (WebCore::AccessibilityObject::isMathFenceOperator):
        (WebCore::AccessibilityObject::isMathSeparatorOperator):
        (WebCore::AccessibilityObject::isMathIdentifier):
        (WebCore::AccessibilityObject::isMathTable):
        (WebCore::AccessibilityObject::isMathTableRow):
        (WebCore::AccessibilityObject::isMathTableCell):
        (WebCore::AccessibilityObject::mathRadicandObject):
        (WebCore::AccessibilityObject::mathRootIndexObject):
        (WebCore::AccessibilityObject::mathUnderObject):
        (WebCore::AccessibilityObject::mathOverObject):
        (WebCore::AccessibilityObject::mathNumeratorObject):
        (WebCore::AccessibilityObject::mathDenominatorObject):
        (WebCore::AccessibilityObject::mathBaseObject):
        (WebCore::AccessibilityObject::mathSubscriptObject):
        (WebCore::AccessibilityObject::mathSuperscriptObject):
        (WebCore::AccessibilityObject::mathFencedOpenString):
        (WebCore::AccessibilityObject::mathFencedCloseString):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::startOfContinuations):
            Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
        (WebCore::AccessibilityRenderObject::textUnderElement):
            Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
            Handle ignored cases for math elements
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        (WebCore::AccessibilityRenderObject::isMathElement):
        (WebCore::AccessibilityRenderObject::isMathFraction):
        (WebCore::AccessibilityRenderObject::isMathFenced):
        (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
        (WebCore::AccessibilityRenderObject::isMathRow):
        (WebCore::AccessibilityRenderObject::isMathUnderOver):
        (WebCore::AccessibilityRenderObject::isMathSquareRoot):
        (WebCore::AccessibilityRenderObject::isMathRoot):
        (WebCore::AccessibilityRenderObject::isMathOperator):
        (WebCore::AccessibilityRenderObject::isMathFenceOperator):
        (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
        (WebCore::AccessibilityRenderObject::isMathText):
        (WebCore::AccessibilityRenderObject::isMathNumber):
        (WebCore::AccessibilityRenderObject::isMathIdentifier):
        (WebCore::AccessibilityRenderObject::isMathTable):
        (WebCore::AccessibilityRenderObject::isMathTableRow):
        (WebCore::AccessibilityRenderObject::isMathTableCell):
        (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
            Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
        (WebCore::AccessibilityRenderObject::mathRadicandObject):
        (WebCore::AccessibilityRenderObject::mathRootIndexObject):
        (WebCore::AccessibilityRenderObject::mathNumeratorObject):
        (WebCore::AccessibilityRenderObject::mathDenominatorObject):
        (WebCore::AccessibilityRenderObject::mathUnderObject):
        (WebCore::AccessibilityRenderObject::mathOverObject):
        (WebCore::AccessibilityRenderObject::mathBaseObject):
        (WebCore::AccessibilityRenderObject::mathSubscriptObject):
        (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
        (WebCore::AccessibilityRenderObject::mathFencedOpenString):
        (WebCore::AccessibilityRenderObject::mathFencedCloseString):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
        (createAccessibilityRoleMap):
        (-[WebAccessibilityObjectWrapper subrole]):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
        (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
        (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
        (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
        (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
        (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
        (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
        (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
            Add ability to identify anonymous render blocks as items that AX should ignore.
        (RenderMathMLBlock):
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::createMathMLOperator):
            Identify which kind of math operator is being created on the fly (Fence or Separator)
        (WebCore::RenderMathMLFenced::makeFences):
        (WebCore::RenderMathMLFenced::addChild):
        * rendering/mathml/RenderMathMLFenced.h:
        (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
        (RenderMathMLFenced):
        * rendering/mathml/RenderMathMLFraction.h:
        (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::createGlyph):
             Mark anonymous render blocks as AX ignored.
        * rendering/mathml/RenderMathMLOperator.h:
        (WebCore::RenderMathMLOperator::setOperatorType):
        (WebCore::RenderMathMLOperator::operatorType):
        (RenderMathMLOperator):
        * rendering/mathml/RenderMathMLRoot.h:
        (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
        * rendering/mathml/RenderMathMLSquareRoot.h:
        (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
        * rendering/mathml/RenderMathMLSubSup.h:
        (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
        * rendering/mathml/RenderMathMLUnderOver.h:
        (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
        
2012-11-13  Mark Lam  <mark.lam@apple.com>

        JSEventListener should not access m_jsFunction when its wrapper is gone.
        https://bugs.webkit.org/show_bug.cgi?id=101985.

        Reviewed by Geoffrey Garen.

        Added a few null checks for m_wrapper before we do anything with m_jsFunction.

        No new tests.

        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::initializeJSFunction):
        - Removed a now invalid assertion. m_wrapper is expected to have a
          valid non-zero value when jsFunction is valid. However, in the case
          of JSLazyEventListener (which extends JSEventListener), m_wrapper is
          initially 0 when m_jsFunction has not been realized yet. When
          JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
          it will set m_wrapper to an appropriate wrapper object.

          For this reason, JSEventListener::jsFunction() cannot do the null
          check on m_wrapper until after the call to initializeJSFunction.

          This, in turns, means that in the case of the non-lazy
          JSEventListener, initializeJSFunction() will also be called, and
          if the GC has collected the m_wrapper but the JSEventListener has
          not been removed yet, it is possible to see a null m_wrapper while
          m_jsFunction contains a non-zero stale value.

          Hence, this assertion of (m_wrapper || !m_jsFunction) in
          JSEventListener::initializeJSFunction() is not always true and
          should be removed.

        (WebCore::JSEventListener::visitJSFunction):
        (WebCore::JSEventListener::operator==):
        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::jsFunction):

2012-11-13  Adam Barth  <abarth@webkit.org>

        [V8] instantiateV8Object should encapulate the tricky creationContext logic
        https://bugs.webkit.org/show_bug.cgi?id=102117

        Reviewed by Eric Seidel.

        The logic around creationContext is tricky. Rather than putting the
        logic in the code generator, we can centralize the logic in
        instantiateV8Object.

        This patch shouldn't have any behavior change.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateToV8Converters):
        * bindings/v8/V8DOMWrapper.cpp:
        (V8WrapperInstantiationScope):
        (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
        (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
        (WebCore::V8WrapperInstantiationScope::context):
        (WebCore):
        (WebCore::V8DOMWrapper::instantiateV8Object):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):

2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>

        Clean up the inheritance tree under the MediaControls Class.
        https://bugs.webkit.org/show_bug.cgi?id=88871

        Reviewed by Eric Carlson.

        This patch removes code duplication between the Chromium and Safari
        media controls shadow DOMs.
        This is achieved by pulling common functions that are identical (or
        almost identical) between the different platforms into the base class.
        The derived classes are renamed based on their platform:
        - MediaControlRootElement                to MediaControlsApple.
        - MediaControlRootElementChromium        to MediaControlsChromium.
        - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
        MediaControls is now no longer an abstract base class, but its "create"
        function is only implemented in the port-specific header file, so it's
        on purpose incomplete in the MediaControls.cpp file.

        No new tests because this is refactoring work only.

        * CMakeLists.txt:
          Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
        * GNUmakefile.list.am:
          Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
        * Target.pri:
          Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
        * WebCore.gypi:
          Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
        * WebCore.order:
          Rename MediaControlRootElement symbols to MediaControlsApple symbols.
        * WebCore.vcproj/WebCore.vcproj:
          Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
        * WebCore.xcodeproj/project.pbxproj:
          Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTimelineElement::defaultEventHandler):
          Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
          Rename updateTimeDisplay() to updateCurrentTimeDisplay().
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::MediaControls):
          Added initialization for media elements that all platform controls share.
        (WebCore):
          Removed include files that are already included in header file.
        (WebCore::MediaControls::setMediaController):
          Added controller assignment for media elements that all platform controls share.
        (WebCore::MediaControls::reset):
          Added resets for media elements that all platform controls share.
        (WebCore::MediaControls::reportedError):
          Added error handling for media elements that all platform controls share.
        (WebCore::MediaControls::loadedMetadata):
          Added default action for loadedMetadata event.
        (WebCore::MediaControls::show):
        (WebCore::MediaControls::hide):
        (WebCore::MediaControls::makeOpaque):
        (WebCore::MediaControls::makeTransparent):
        (WebCore::MediaControls::shouldHideControls):
        (WebCore::MediaControls::bufferingProgressed):
        (WebCore::MediaControls::playbackStarted):
        (WebCore::MediaControls::playbackProgressed):
        (WebCore::MediaControls::playbackStopped):
        (WebCore::MediaControls::updateCurrentTimeDisplay):
        (WebCore::MediaControls::showVolumeSlider):
        (WebCore::MediaControls::changedMute):
        (WebCore::MediaControls::changedVolume):
        (WebCore::MediaControls::changedClosedCaptionsVisibility):
        (WebCore::MediaControls::enteredFullscreen):
        (WebCore::MediaControls::exitedFullscreen):
        (WebCore::MediaControls::defaultEventHandler):
        (WebCore::MediaControls::hideFullscreenControlsTimerFired):
        (WebCore::MediaControls::startHideFullscreenControlsTimer):
        (WebCore::MediaControls::stopHideFullscreenControlsTimer):
        (WebCore::MediaControls::shadowPseudoId):
        (WebCore::MediaControls::containsRelatedTarget):
        (WebCore::MediaControls::createTextTrackDisplay):
        (WebCore::MediaControls::showTextTrackDisplay):
        (WebCore::MediaControls::hideTextTrackDisplay):
        (WebCore::MediaControls::updateTextTrackDisplay):
          Added default actions for all these media controls member functions.
        * html/shadow/MediaControls.h:
        (WebCore):
          Added include files and forward class declarations that all media controls share.
        (MediaControls):
          Make all pure virtual functions that have default implementations just virtual.
        (WebCore::MediaControls::updateStatusDisplay):
          Add an empty virtual updateStatusDisplay function which is used by media elements.
        * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
          Reduced Apple-specific media control functions by relying on default implementations in the base class.
        * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
          Reduced Apple-specific media control elements by relying on some elements in the base class.
        * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
          Reduced Chromium-specific media control functions by relying on default implementations in the base class.
        * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
          Reduced Chromium-specific media control functions by relying on default implementations in the base class.
        * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
          Renamed class name and base class name.
        * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
          Renamed class name and base class name.
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
          Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.

2012-11-13  Benjamin Poulain  <benjamin@webkit.org>

        CSSParser::setStyleSheet() should be inline
        https://bugs.webkit.org/show_bug.cgi?id=101829

        Reviewed by Andreas Kling.

        * css/CSSParser.cpp:
        * css/CSSParser.h:
        (WebCore::CSSParser::setStyleSheet):
        CSSParser::setStyleSheet() just assign a pointer, it does not even
        change a ref-count. The function should probably be in the header.

2012-11-13  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
        https://bugs.webkit.org/show_bug.cgi?id=101332

        Reviewed by David Hyatt.

        Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
        the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
        including a new member, the containing Region for the line.
        The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
        styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
        A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
        the task of updating the containing Region to the block.

        Tests: No new tests because there is no functional change.

        * rendering/InlineFlowBox.cpp:
        (SameSizeAsInlineFlowBox):
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::InlineFlowBox):
        (InlineFlowBox):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
        (WebCore::RenderBlock::linkToEndLineIfNeeded):
        (WebCore::RenderBlock::determineStartPosition):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::RootInlineBox):
        (WebCore::RootInlineBox::setContainingRegion):
        (WebCore):
        * rendering/RootInlineBox.h:
        (WebCore):
        (WebCore::RootInlineBox::paginationStrut):
        (WebCore::RootInlineBox::setPaginationStrut):
        (WebCore::RootInlineBox::isFirstAfterPageBreak):
        (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
        (WebCore::RootInlineBox::paginatedLineWidth):
        (WebCore::RootInlineBox::setPaginatedLineWidth):
        (RootInlineBox):
        (WebCore::RootInlineBox::containingRegion):
        (WebCore::RootInlineBox::ensureLineFragmentationData):
        (LineFragmentationData):
        (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):

2012-11-13  Milian Wolff  <milian.wolff@kdab.com>

        [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
        https://bugs.webkit.org/show_bug.cgi?id=98038

        Reviewed by Simon Hausmann.

        Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.

        * platform/graphics/OpenGLShims.cpp:
        (WebCore):

2012-11-13  Chris Fleizach  <cfleizach@apple.com>

        WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
        https://bugs.webkit.org/show_bug.cgi?id=101616

        Reviewed by Beth Dakin.

        If the rowheader role is exposed because the element is not within a table, the mac platform
        should map that to a generic group.

        Test: platform/mac/accessibility/rowheader-outside-table-role.html

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (createAccessibilityRoleMap):

2012-11-13  Stephen White  <senorblanco@chromium.org>

        [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
        https://bugs.webkit.org/show_bug.cgi?id=101952

        Reviewed by James Robinson.

        With these changes, all of the css3/filters tests pass when the
        if-test in GraphicsLayerChromium::setFilters() is forced true (for
        now, it remains true only if there's a reference filter in the chain).

        Covered by the css3/filters tests (when the switch is thrown in
        GraphicsLayerChromium::setFilters()).

        * WebCore.gypi:
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        Drop to software rendering if there's a custom filter in the chain.
        This is the same as the WebFilterOperations path is doing.
        * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
        * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
        New implementation of drop-shadow filter; equivalent to
        the path in cc/render_surface_filters.cc.
        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
        Fix the sepia and grayscale filters (value was inverted).

2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134442.
        http://trac.webkit.org/changeset/134442
        https://bugs.webkit.org/show_bug.cgi?id=102111

        Does not compile on apple-mac (Requested by abarth on
        #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::cachedImage):
        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::cachedFont):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::cachedImageSet):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::cachedImage):
        * css/CSSImageValue.h:
        (WebCore):
        (CSSImageValue):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingImage):
        * css/StyleRuleImport.cpp:
        (WebCore::StyleRuleImport::requestStyleSheet):
        * css/WebKitCSSSVGDocumentValue.cpp:
        (WebCore::WebKitCSSSVGDocumentValue::load):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::cachedShader):
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::requestScript):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):
        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::emitRule):
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::preload):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestImage):
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
        (WebCore):
        (WebCore::CachedResourceLoader::preload):
        * loader/cache/CachedResourceLoader.h:
        (WebCore):
        (CachedResourceLoader):
        * loader/cache/CachedResourceRequest.cpp:
        (WebCore::CachedResourceRequest::CachedResourceRequest):
        * loader/cache/CachedResourceRequest.h:
        (CachedResourceRequest):
        (WebCore::CachedResourceRequest::defer):
        (WebCore::CachedResourceRequest::setDefer):
        * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
        * loader/cache/CachedResourceRequestInitiators.h: Removed.
        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::startLoading):
        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::ThreadGlobalData):
        * platform/ThreadGlobalData.h:
        (ThreadGlobalData):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::requestImageResource):
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::loadFont):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::svgAttributeChanged):

2012-11-13  Chris Fleizach  <cfleizach@apple.com>

        AX: file upload input text value is not exposed through accessibility
        https://bugs.webkit.org/show_bug.cgi?id=100583

        Reviewed by Beth Dakin.

        This is a hard problem to solve on the Mac because there are three pieces of information
             1) The type of button 2) The text on the button 3) The text for the value.
        I think the best compromise is to label this as a file upload button type in the role description, 
        and then expose the file path text as the AXTitle. 
        This will give the more relevant information and should be clear what is happening.

        Test: platform/mac/accessibility/file-upload-button-subrole.html

        * English.lproj/Localizable.strings:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper subrole]):
        (-[WebAccessibilityObjectWrapper roleDescription]):
        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
        * platform/LocalizedStrings.cpp:
        (WebCore::AXFileUploadButtonText):
        * platform/LocalizedStrings.h:

2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133944.
        http://trac.webkit.org/changeset/133944
        https://bugs.webkit.org/show_bug.cgi?id=102118

        Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
        #webkit).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):
        (GenerateParametersCheck):
        (GenerateSingleConstructorCallback):
        (GenerateNamedConstructorCallback):
        (TypeCanFailConversion):
        * dom/Element.cpp:
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::removeAttributeNode):
        * dom/Element.idl:

2012-11-13  Adam Barth  <abarth@webkit.org>

        Unreviewed.

        Update run-bindings-tests results.

        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::dispatchWrapCustom):
        (WebCore::V8Float64Array::wrapSlow):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::toNative):
        (V8Float64Array):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::wrapSlow):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::toNative):
        (V8TestActiveDOMObject):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::wrapSlow):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::toNative):
        (V8TestCustomNamedGetter):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::wrapSlow):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::toNative):
        (V8TestEventConstructor):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::wrapSlow):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::toNative):
        (V8TestEventTarget):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::wrapSlow):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::toNative):
        (V8TestException):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::wrapSlow):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::toNative):
        (V8TestInterface):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::wrapSlow):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::toNative):
        (V8TestMediaQueryListListener):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructor::wrapSlow):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::toNative):
        (V8TestNamedConstructor):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::wrapSlow):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::V8TestNode::toNative):
        (V8TestNode):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        (WebCore::toV8Fast):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::wrapSlow):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::V8TestObj::toNative):
        (V8TestObj):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::wrapSlow):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
        (WebCore::V8TestOverloadedConstructors::toNative):
        (V8TestOverloadedConstructors):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::toNative):
        (V8TestSerializedScriptValueInterface):
        (WebCore):
        (WebCore::dispatchWrap):
        (WebCore::toV8Object):
        (WebCore::toV8):

2012-11-13  Adam Barth  <abarth@webkit.org>

        Unreviewed.

        Speculative build fix for Qt.

        * dom/make_names.pl:
        (printWrapperFactoryCppFile):

2012-11-13  Sami Kyostila  <skyostil@chromium.org>

        Allow painting outside overflow clip in accelerated scrolling layers
        https://bugs.webkit.org/show_bug.cgi?id=100524

        Reviewed by Simon Fraser.

        In preparation for avoiding repaints when scrolling child layers, make it
        possible to paint outside the overflow clip.

        Test: compositing/overflow/updating-scrolling-content.html

        * rendering/LayoutState.h:
        (LayoutState):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paint):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::repaintBlockSelectionGaps):

2012-11-13  Patrick Gansterer  <paroga@webkit.org>

        Port SimpleFontDataWin.cpp to WinCE
        https://bugs.webkit.org/show_bug.cgi?id=97889

        Reviewed by Brent Fulgham.

        Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
        Also cleaned up the include headers.

        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::boundsForGDIGlyph):
        (WebCore):
        (WebCore::SimpleFontData::widthForGDIGlyph):

2012-11-13  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: [Chromium] move spectrum.css into the standalone css files group.

        Not reviewed: moved css file in gypi.

        * WebCore.gypi:

2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r134434.
        http://trac.webkit.org/changeset/134434
        https://bugs.webkit.org/show_bug.cgi?id=102072

        The test that was added asserts in loader.

        * loader/FrameLoader.cpp:
        (WebCore::createWindow):
        * page/DOMWindow.cpp:
        (WebCore):
        (WebCore::DOMWindow::adjustWindowRect):
        (WebCore::DOMWindow::moveBy):
        (WebCore::DOMWindow::moveTo):
        (WebCore::DOMWindow::resizeBy):
        (WebCore::DOMWindow::resizeTo):
        (WebCore::DOMWindow::open):
        (WebCore::DOMWindow::showModalDialog):
        * page/DOMWindow.h:
        (DOMWindow):

2012-11-13  Dan Carney  <dcarney@google.com>

        [V8] More efficient wrapper dispatch
        https://bugs.webkit.org/show_bug.cgi?id=102082

        Reviewed by Adam Barth.

        Dispatching a call to V8Whatever::wrap involved a chain
        of calls, each of which checked its wrapper cache.
        This refactor gives calls only 2 choices of functions to call:
        toV8 and toV8Object instead of wrap. wrap has been renamed to
        dispatchWrap and no longer contains cache checks.
        Additionally, classes which require a custom toV8 function
        have had all wrapping and caching calls removed, as they could
        not have been accessed.

        No new tests. Sufficiently covered.

        * Modules/indexeddb/IDBAny.idl:
        * Modules/indexeddb/IDBKey.idl:
        * WebCore.gypi:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (GenerateImplementation):
        (GenerateToV8Converters):
        * bindings/scripts/IDLAttributes.txt:
        * bindings/v8/SerializedScriptValue.cpp:
        * bindings/v8/custom/V8BlobCustom.cpp:
        (WebCore::V8Blob::dispatchWrapCustom):
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::V8CSSRule::dispatchWrapCustom):
        * bindings/v8/custom/V8CSSValueCustom.cpp:
        (WebCore::V8CSSValue::dispatchWrapCustom):
        * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
        (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
        * bindings/v8/custom/V8DataViewCustom.cpp:
        (WebCore):
        (WebCore::V8DataView::dispatchWrapCustom):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::dispatchWrapCustom):
        * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
        (WebCore):
        (WebCore::V8Element::dispatchWrapCustom):
        * bindings/v8/custom/V8EntryCustom.cpp:
        (WebCore::V8Entry::dispatchWrapCustom):
        * bindings/v8/custom/V8EntrySyncCustom.cpp:
        (WebCore::V8EntrySync::dispatchWrapCustom):
        * bindings/v8/custom/V8EventCustom.cpp:
        (WebCore):
        (WebCore::V8Event::dispatchWrapCustom):
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::V8HTMLCollection::dispatchWrapCustom):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::dispatchWrapCustom):
        * bindings/v8/custom/V8HTMLElementCustom.cpp:
        (WebCore::V8HTMLElement::dispatchWrapCustom):
        * bindings/v8/custom/V8ImageDataCustom.cpp:
        (WebCore::V8ImageData::dispatchWrapCustom):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::V8Node::dispatchWrapCustom):
        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
        (WebCore::V8PerformanceEntry::dispatchWrapCustom):
        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
        (WebCore::V8SVGDocument::dispatchWrapCustom):
        * bindings/v8/custom/V8SVGElementCustom.cpp:
        (WebCore::V8SVGElement::dispatchWrapCustom):
        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
        (WebCore::V8SVGPathSeg::dispatchWrapCustom):
        * bindings/v8/custom/V8StyleSheetCustom.cpp:
        (WebCore::V8StyleSheet::dispatchWrapCustom):
        * dom/Element.idl:
        * dom/make_names.pl:
        (printWrapperFunctions):
        (printWrapperFactoryCppFile):
        (printWrapperFactoryHeaderFile):
        * html/MicroDataItemValue.idl:
        * inspector/ScriptProfile.idl:
        * inspector/ScriptProfileNode.idl:
        * page/DOMWindow.idl:
        * workers/WorkerContext.idl:

2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r134367.
        http://trac.webkit.org/changeset/134367
        https://bugs.webkit.org/show_bug.cgi?id=100738

        Speculative rollout, could have cause Dromaeo setAttribute
        perf regression.

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        (WebCore::checkNeedsStyleInvalidationForClassChange):
        (WebCore::Element::classAttributeChanged):

2012-11-13  Marja Hölttä  <marja@chromium.org>

        Add initiator to CachedResourceRequest.
        https://bugs.webkit.org/show_bug.cgi?id=101935

        Reviewed by Adam Barth.

        Motivation: Chromium needs to know which elements request a
        resource (such as an image or a script) (bug 92761). In addition,
        for exposing resource timing information (bug 84883) we need to
        store the initiator, and this is the first step towards it.

        No new tests: No visible change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSCrossfadeValue.cpp:
        (WebCore::cachedImageForCSSValue):
        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::cachedImage):
        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::cachedFont):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::cachedImageSet):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::cachedImage):
        * css/CSSImageValue.h:
        (WebCore):
        (CSSImageValue):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingImage):
        * css/StyleRuleImport.cpp:
        (WebCore::StyleRuleImport::requestStyleSheet):
        * css/WebKitCSSSVGDocumentValue.cpp:
        (WebCore::WebKitCSSSVGDocumentValue::load):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::cachedShader):
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::requestScript):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):
        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::emitRule):
        * html/parser/CSSPreloadScanner.h:
        (CSSPreloadScanner):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::preload):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestImage):
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
        (WebCore):
        (WebCore::CachedResourceLoader::preload):
        * loader/cache/CachedResourceLoader.h:
        (WebCore):
        (CachedResourceLoader):
        * loader/cache/CachedResourceRequest.cpp:
        (WebCore::CachedResourceRequest::CachedResourceRequest):
        (WebCore):
        (WebCore::CachedResourceRequest::~CachedResourceRequest):
        (WebCore::CachedResourceRequest::setInitiator):
        (WebCore::CachedResourceRequest::initiatorName):
        (WebCore::CachedResourceRequest::initiatorDocument):
        (WebCore::CachedResourceRequest::initiatorElement):
        * loader/cache/CachedResourceRequest.h:
        (WebCore):
        (WebCore::CachedResourceRequest::setOptions):
        (WebCore::CachedResourceRequest::defer):
        (WebCore::CachedResourceRequest::setDefer):
        (CachedResourceRequest):
        * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
        (WebCore):
        (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
        * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
        (WebCore):
        (CachedResourceRequestInitiators):
        (WebCore::cachedResourceRequestInitiators):
        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::startLoading):
        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::ThreadGlobalData):
        * platform/ThreadGlobalData.h:
        (WebCore):
        (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
        (ThreadGlobalData):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::requestImageResource):
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::loadFont):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::svgAttributeChanged):

2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134345.
        http://trac.webkit.org/changeset/134345
        https://bugs.webkit.org/show_bug.cgi?id=102106

        Incomplete support for NATIVE_TYPE_ERR in objc and other
        bindings (Requested by jsbell on #webkit).

        * Modules/mediastream/MediaConstraintsImpl.cpp:
        (WebCore::MediaConstraintsImpl::create):
        * Modules/mediastream/MediaStreamTrackList.cpp:
        (WebCore::MediaStreamTrackList::add):
        (WebCore::MediaStreamTrackList::remove):
        * Modules/mediastream/RTCDataChannel.cpp:
        (WebCore::RTCDataChannel::setBinaryType):
        * Modules/mediastream/RTCIceCandidate.cpp:
        (WebCore::RTCIceCandidate::create):
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::parseConfiguration):
        (WebCore::RTCPeerConnection::createOffer):
        (WebCore::RTCPeerConnection::createAnswer):
        (WebCore::RTCPeerConnection::setLocalDescription):
        (WebCore::RTCPeerConnection::setRemoteDescription):
        (WebCore::RTCPeerConnection::addIceCandidate):
        (WebCore::RTCPeerConnection::addStream):
        (WebCore::RTCPeerConnection::removeStream):
        * Modules/mediastream/RTCSessionDescription.cpp:
        (WebCore::RTCSessionDescription::create):
        (WebCore::RTCSessionDescription::setType):
        * bindings/js/CallbackFunction.cpp:
        (WebCore::checkFunctionOnlyCallback):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::create):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::add):
        * bindings/js/JSHTMLSelectElementCustom.cpp:
        (WebCore::selectIndexSetter):
        * bindings/js/JSMutationObserverCustom.cpp:
        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        (WebCore::JSSQLResultSetRowList::item):
        * bindings/js/JSSQLTransactionCustom.cpp:
        (WebCore::JSSQLTransaction::executeSql):
        * bindings/js/JSSQLTransactionSyncCustom.cpp:
        (WebCore::JSSQLTransactionSync::executeSql):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallString):
        * bindings/v8/V8Callback.h:
        (WebCore::createFunctionOnlyCallback):
        * bindings/v8/V8Collection.cpp:
        (WebCore::toOptionsCollectionSetter):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::V8Document::evaluateCallback):
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::V8HTMLOptionsCollection::addCallback):
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        (WebCore::V8MutationObserver::constructorCallback):
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        (WebCore::V8SQLTransaction::executeSqlCallback):
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        (WebCore::V8SQLTransactionSync::executeSqlCallback):
        * dom/DOMCoreException.idl:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::insertAdjacentElement):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::webkitAddKey):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):
        (WebCore::CanvasRenderingContext2D::createPattern):
        (WebCore::CanvasRenderingContext2D::putImageData):
        (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
        * page/Crypto.cpp:
        (WebCore::Crypto::getRandomValues):
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::extend):
        * svg/properties/SVGTransformListPropertyTearOff.h:
        (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):

2012-11-13  Erik Arvidsson  <arv@chromium.org>

        Update DOMException name: HierarchyRequestError
        https://bugs.webkit.org/show_bug.cgi?id=102092

        Reviewed by Ojan Vafai.

        Patch 3 of 25 to update DOMException name to match the spec and Firefox.

        Updated existing tests.

        * dom/DOMCoreException.cpp:

2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Clean up use of adjustWindowRect
        https://bugs.webkit.org/show_bug.cgi?id=102072

        Reviewed by Alexis Menard.

        Tested by fast/dom/Window/open-window-min-size.html

        * loader/FrameLoader.cpp:
        (WebCore::createWindow):

            Validate the window size here so that it is not just done for
            .open, but also for .showModalDialog. This is compatible with
            other browsers such as IE and Firefox (though IE > 6, enforces
            a minimum width of 250 instead of 100 as Firefox and us.)

        * page/DOMWindow.cpp:
        (WebCore):
        (WebCore::DOMWindow::adjustWindowRect):

            Make it a static method which only takes page. It was never
            called from anywhere without a valid page, so the page check
            has been turned into an assert, and two of the arguments have
            been removed as they can be accessed via the page.

        (WebCore::DOMWindow::moveBy):
        (WebCore::DOMWindow::moveTo):
        (WebCore::DOMWindow::resizeBy):
        (WebCore::DOMWindow::resizeTo):

            Update use of adjustWindowRect.

        (WebCore::DOMWindow::open):

            Avoid modifying the WindowFeatures as the WebCore::createWindow
            validates and adjusts the arguments.

        * page/DOMWindow.h:
        (DOMWindow):

2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
        https://bugs.webkit.org/show_bug.cgi?id=97736

        Reviewed by Andreas Kling.

        Rename properties to match updated spec.

        Tests: fast/exclusions/shape-margin-parsing.html
               fast/exclusions/shape-padding-parsing.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::isSimpleLengthPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::asText):
        * css/StylePropertyShorthand.cpp:
        (WebCore::webkitWrapShorthand):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:
        (StyleRareNonInheritedData):

2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r134418.
        http://trac.webkit.org/changeset/134418
        https://bugs.webkit.org/show_bug.cgi?id=101903

        The newly added test is crashing on cr-win.

        * dom/ElementShadow.cpp:
        * dom/ElementShadow.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        (WebCore::HTMLInputElement::setIndeterminate):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::didElementStateChange):
        * html/shadow/SelectRuleFeatureSet.cpp:
        (WebCore::SelectRuleFeatureSet::add):
        (WebCore::SelectRuleFeatureSet::clear):
        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
        * html/shadow/SelectRuleFeatureSet.h:
        (SelectRuleFeatureSet):

2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r134391.
        http://trac.webkit.org/changeset/134391
        https://bugs.webkit.org/show_bug.cgi?id=99660

        Speculative rollout, trying to fix browser_tests failure.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        * inspector/InspectorPageAgent.cpp:
        (PageAgentState):
        (WebCore::InspectorPageAgent::enable):
        (WebCore::InspectorPageAgent::disable):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):
        * inspector/front-end/inspector.js:
        (WebInspector.doLoadedDone):

2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134205.
        http://trac.webkit.org/changeset/134205
        https://bugs.webkit.org/show_bug.cgi?id=102093

        Broke webkit-flow-inlines-dynamic.html on several ports
        (Requested by mihnea on #webkit).

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::isValidRegionStyleProperty):
        * rendering/InlineBox.cpp:
        * rendering/InlineBox.h:
        (WebCore):
        (InlineBox):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::addToLine):
        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
        (WebCore::RenderRegion::computeStyleInRegion):
        (WebCore::RenderRegion::computeChildrenStyleInRegion):
        (WebCore::RenderRegion::setObjectStyleInRegion):
        (WebCore::RenderRegion::clearObjectStyleInRegion):
        * rendering/RenderRegion.h:
        (RenderRegion):
        (ObjectRegionStyleInfo):

2012-11-13  Andreas Kling  <kling@webkit.org>

        Remove the non-const overload of ElementAttributeData::inlineStyle().

        Rubber-stamped by Anders Koivisto.

        No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.

        * dom/ElementAttributeData.h:

2012-11-13  Keishi Hattori  <keishi@webkit.org>

        [Chromium] Enable input type month/week
        https://bugs.webkit.org/show_bug.cgi?id=102042

        Reviewed by Kent Tamura.

        Enable input type month/week for Chromium.

        No new tests. Tests will be added later in Bug 102045 and Bug 102046.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):

2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
        https://bugs.webkit.org/show_bug.cgi?id=101906

        Reviewed by Dimitri Glazkov.

        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
        setPseudo()/pseudo() instead.

        No new tests, covered by existing tests.

        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
        it anywhere, we have to set it into pseudo attribute here.
        (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
        * html/shadow/MeterShadowElement.cpp:
        (WebCore::MeterInnerElement::MeterInnerElement):
        (WebCore::MeterValueElement::valuePseudoId):
        * html/shadow/MeterShadowElement.h:
        (MeterInnerElement):
        (WebCore::MeterBarElement::MeterBarElement):
        (MeterBarElement):
        (WebCore::MeterValueElement::MeterValueElement):
        (WebCore::MeterValueElement::updatePseudo):
        (MeterValueElement):

2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>

        Changing pseudoClass (:indeterminate) should cause distribution
        https://bugs.webkit.org/show_bug.cgi?id=101903

        Reviewed by Dimitri Glazkov.

        <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
        invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.

        For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
        progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.

        Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
               fast/dom/shadow/pseudoclass-update-indeterminate-progress.html

        * dom/ElementShadow.cpp:
        (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
        have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
        here.
        (WebCore):
        * dom/ElementShadow.h:
        (WebCore):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
        (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::didElementStateChange):
        * html/shadow/SelectRuleFeatureSet.cpp:
        (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
        (WebCore::SelectRuleFeatureSet::add):
        (WebCore::SelectRuleFeatureSet::clear):
        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
        * html/shadow/SelectRuleFeatureSet.h:
        (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
        (SelectRuleFeatureSet):

2012-11-13  Andreas Kling  <kling@webkit.org>

        Exploit ElementAttributeData sharing in Node.cloneNode.
        <http://webkit.org/b/101374>

        Reviewed by Anders Carlsson.

        Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
        If the source data is immutable, simply ref it from the new node at virtually no cost.

        If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
        Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
        and memory in the long run.

        ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.

        * dom/Element.cpp:
        (WebCore::Element::cloneAttributesFromElement):

            Move attribute data cloning logic from ElementAttributeData to Element.

        * dom/ElementAttributeData.cpp:
        (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
        (WebCore::ElementAttributeData::ElementAttributeData):
        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
        (WebCore::ElementAttributeData::makeMutableCopy):
        (WebCore::ElementAttributeData::makeImmutableCopy):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        (ImmutableElementAttributeData):
        (MutableElementAttributeData):

            Add facilities for converting a mutable ElementAttributeData to an immutable one.
            Share some code in the common base class constructor.

2012-11-13  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Build fix of V8 bindings.

        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::maybeDOMWrapper):

2012-11-13  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
        https://bugs.webkit.org/show_bug.cgi?id=102071

        Reviewed by Pavel Feldman.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype.dispose):
        (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
        (WebInspector.CanvasProfileView.prototype._createCallNode):
        * inspector/front-end/canvasProfiler.css:
        (#canvas-replay-image.wait):

2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Settings screen: some panel shortcuts are missing
        https://bugs.webkit.org/show_bug.cgi?id=101026

        Reviewed by Pavel Feldman.

        Panels, that have not been loaded by the time shortcuts view was
        initialized, had no chance to register shortcuts.

        Solution: move shortcut registration (for shortcuts screen) to panel
        descriptors.

        More changes: add JsDoc annotations to ShortcutScreen and change "key"
        parameter type for raw string to key descriptor object.

        * WebCore.gypi: Added TimelinePanelDescriptor.js file.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * inspector/compile-front-end.py: Ditto.
        * inspector/front-end/WebKit.qrc: Ditto.
        * inspector/front-end/inspector.html: Ditto.
        * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
        * inspector/front-end/GoToLineDialog.js: Ditto.
        * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
        shortcuts registration.
        * inspector/front-end/ElementsPanel.js: Ditto.
        * inspector/front-end/ScriptsPanel.js: Ditto.
        * inspector/front-end/StylesSidebarPane.js: Ditto.
        * inspector/front-end/TimelinePanel.js: Ditto.
        * inspector/front-end/ConsoleView.js: Changes order of lines to increase
        readability.
        * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
        shortcuts registration and key descriptor constants.
        * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
        * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
        * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
        "registerShortcuts" method accept array of key descriptors.
        (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
        * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
        type from string to key descriptor.
        * inspector/front-end/inspector.js: Register shortcuts using
        panel descriptors.
        (WebInspector._panelDescriptors): Removed duplicate line.

2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>

        Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
        https://bugs.webkit.org/show_bug.cgi?id=102060

        Reviewed by Zoltan Herczeg.

        Adding more NEONized packing functions to GraphicsContext3DNEON.h.
        These functions are three times faster with this intrinsics optimizations.

        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore):
        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
        (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
        (ARM):
        (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
        (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
        (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):

2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Enable Mutation observer
        https://bugs.webkit.org/show_bug.cgi?id=102066

        Reviewed by Pavel Feldman.

        * DerivedSources.pri: Add missing IDL files.

2012-11-13  Kentaro Hara  <haraken@chromium.org>

        [V8] Make isValidDOMObject() static
        https://bugs.webkit.org/show_bug.cgi?id=101914

        Reviewed by Adam Barth.

        isValidDOMObject() is used by DOMWrapper.cpp only.

        No tests. No change in behavior.

        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::isValidDOMObject):
        (WebCore):
        (WebCore::V8DOMWrapper::maybeDOMWrapper):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):

2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Incorrect computed height for content with region-break-before
        https://bugs.webkit.org/show_bug.cgi?id=101862

        Reviewed by Julien Chaffraix.

        When processing the region breaks for auto-height regions, we skipped the case
        when the region-break-before occurred in the first region in the chain which was
        an auto-height region. Because of that, the region computed height was not 0
        as it was supposed to be, but rather LayoutUnit::max() / 2.

        Test: fast/regions/autoheight-breakbefore-wrongheight.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::addForcedRegionBreak):
        Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
        and the first region in chain is an auto-height region.
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::updateLogicalHeight):
        Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.

2012-11-13  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: remove reportMemoryUsage method from ImageObserver
        https://bugs.webkit.org/show_bug.cgi?id=102058

        Reviewed by Pavel Feldman.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
        each element of the vector as generic vector instrumentation will take care of it.
        * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
        we don't count its by the pointer to the base class which may differ from the actual
        object address.
        (WebCore::Image::reportMemoryUsage):
        * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
        (ImageObserver):

2012-11-13  Eberhard Graether  <egraether@google.com>

        checkbox to toggle FPS counter in the inspector's settings
        https://bugs.webkit.org/show_bug.cgi?id=99660

        Reviewed by Pavel Feldman.

        Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.

        No new tests.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::canShowFPSCounter):
        (WebCore::InspectorClient::setShowFPSCounter):
        (InspectorClient):
        * inspector/InspectorPageAgent.cpp:
        (PageAgentState):
        (WebCore::InspectorPageAgent::enable):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::canShowFPSCounter):
        (WebCore):
        (WebCore::InspectorPageAgent::setShowFPSCounter):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):
        (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
        * inspector/front-end/inspector.js:
        (WebInspector.doLoadedDone):

2012-11-12  Kent Tamura  <tkent@chromium.org>

        Unable to set valid time value to input[type=time] with user interaction in some cases
        https://bugs.webkit.org/show_bug.cgi?id=102048

        Reviewed by Kentaro Hara.

        The implementations of shouldMillisecondFieldReadOnly,
        shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
        incorrect. We need to check if a part of the minimum value matches to
        the corresponding part of the current value.

        Also, we had better check hour field editability.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
        Fix a problem that hh:mm:00.sss didn't create a seconds field.
        * html/shadow/DateTimeEditElement.cpp:
        (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
        (WebCore::DateTimeEditBuilder::visitField):
        Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
        (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
        Added. An hour field should be read-only if the step value is a multiple
        of a day and the hour part of the minimum value matches to the hour part
        of the value.
        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
        A millisecond field should be read-only if the step value is a multiple
        of one second and the millisecond part of the minimum value matches to
        the millisecond part of the value.
        (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
        A minute field should be read-only if the step value is a multiple of
        one hour and the minute part of the minimum value matches to the minute
        part of the value.
        (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
        A second field should be read-only if the step value is a multiple of
        one minute and the second part of the minimum value matches to the second
        part of the value.
        * platform/Decimal.cpp:
        (WebCore::Decimal::remainder):
        Fix a bug in case that the fractional part of quotient is >= 0.5. Also
        make this matches to C99, C++11, ECMAScript behavior.

2012-11-13  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: MemoryBlock name should not include full path to the block
        https://bugs.webkit.org/show_bug.cgi?id=102055

        Reviewed by Pavel Feldman.

        * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
        intead of fully qualified name.

2012-11-13  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: get rid of enter/exitTextChangeMode in the editor
        https://bugs.webkit.org/show_bug.cgi?id=101845

        Reviewed by Vsevolod Vlasov.

        They seem to do nothing.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype._textChanged):
        (WebInspector.DefaultTextEditor.prototype.editRange):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2012-11-13  Tommy Widenflycht  <tommyw@google.com>

        Remove the custom WebSocket::send for both V8 and JSC
        https://bugs.webkit.org/show_bug.cgi?id=101936

        Reviewed by Kentaro Hara.

        This patch removes the custom WebSocket::send since it isn't needed anymore.

        Patch covered by existing tests.

        * Modules/websockets/WebSocket.idl:
        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/js/JSWebSocketCustom.cpp:
        * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.

2012-11-13  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: move indentation logic into TextEditorModel
        https://bugs.webkit.org/show_bug.cgi?id=101842

        Reviewed by Vsevolod Vlasov.

        I'd like to move as much headless logic into the TextEditorModel as possible.
        Drive by: removed some dead code, converted getter into function and moved undo
        mark state into the model as well.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.editRange):
        (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
        (WebInspector.TextEditorMainChunk):
        (WebInspector.TextEditorMainChunk.prototype.isDecorated):
        (WebInspector.TextEditorMainChunk.prototype.set expanded):
        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextEditorModel.endsWithBracketRegex.):

2012-11-13  Hayato Ito  <hayato@chromium.org>

        Unreviewed attempt to fix the chromium mac-build after r134348.

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2012-11-13  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: migrate text editor to mutation observers
        https://bugs.webkit.org/show_bug.cgi?id=101841

        Reviewed by Vsevolod Vlasov.

        Otherwise, we miss notifications on the removed lines.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype.wasShown):
        (WebInspector.DefaultTextEditor.prototype.willHide):
        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype._wasShown):
        (WebInspector.TextEditorMainPanel.prototype._willHide):
        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
        (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
        (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
        (WebInspector.TextEditorMainPanel.prototype._handleMutations):
        (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        * inspector/front-end/externs.js:
        (WebKitMutation):
        (WebKitMutationObserver.prototype.observe):
        (WebKitMutationObserver.prototype.disconnect):
        * inspector/front-end/textEditor.css:
        (.debug-fadeout):
        (@-webkit-keyframes debug-fadeout):
        (to):

2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>

        Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
        https://bugs.webkit.org/show_bug.cgi?id=101473

        Reviewed by Zoltan Herczeg.

        With NEON intrinsics the packing/unpacking functions can be optimized well.
        This particular function is about 3 times faster with ARM NEON. On top level tests
        the speed up was 1.18x.

        * CMakeLists.txt:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.pri:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore):
        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
        (WebCore):
        (ARM):
        (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
        (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):

2012-11-13  Takashi Sakamoto  <tasak@google.com>

        Crash when replacing parts of text inputs with content: url(...)
        https://bugs.webkit.org/show_bug.cgi?id=101133

        Reviewed by Kent Tamura.

        Disable directly setting content of elements in an input element's
        shadow dom tree, because the setting breaks input element's behavior.

        Tests: fast/forms/number/number-content-url-crash.html
               fast/forms/search/search-content-url-crash.html

        * css/html.css:
        (input::-webkit-textfield-decoration-container):
        Use important to disable overriding an input element's content
        property.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::attach):
        Added ASSERTION. No content should be applied to
        input::-webkit-textfield-decoration-container.

2012-11-12  Huang Dongsung  <luxtella@company100.net>

        [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
        https://bugs.webkit.org/show_bug.cgi?id=101918

        Reviewed by Noam Rosenthal.

        Remove TiledBackingStore::rect(), because it is not used anymore.

        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):

2012-11-12  Adam Barth  <abarth@webkit.org>

        [V8] We should be able to recover the V8DOMWindowShell more quickly
        https://bugs.webkit.org/show_bug.cgi?id=102020

        Reviewed by Kentaro Hara.

        For isolated worlds, we used to store the V8DOMWindowShell as an
        internal field of the inner DOM window. This patch moves the pointer to
        an internal field of the v8::Context, which saves us the work of
        looking up the inner DOM window.

        Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
        because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
        the V8PerContextData when we detach the V8DOMWindowShell from the
        frame.)

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetInternalFields):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8DOMWindowShell.h:
        (WebCore::V8DOMWindowShell::getEntered):
        * bindings/v8/V8PerContextData.h:

2012-11-12  Kentaro Hara  <haraken@chromium.org>

        [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
        https://bugs.webkit.org/show_bug.cgi?id=101054

        Reviewed by Adam Barth.

        I'm investigating a Chromium crash bug:
        http://code.google.com/p/chromium/issues/detail?id=155942

        I've not yet identified the root cause (because I can't reproduce
        the crash), but it looks like we are storing NULL pointers to
        V8 internal fields. Just in case, we can add an ASSERT() to
        guarantee that NULL pointers are never stored. (Also I'm hoping
        that this ASSERT() will give me more debug information.)

        No tests. No change in behavior.

        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setDOMWrapper):

2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>

        Changing id, className, or attribute should invalidate distribution
        https://bugs.webkit.org/show_bug.cgi?id=100738

        Reviewed by Dimitri Glazkov.

        When id, className, or attribute is changed, we might have to invalidate distribution.
        However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
        and invalidate distribution only if necessary.

        When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
        So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.

        Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
        to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.

        DOM/ModifyAttribute.html
        Before this patch:
                median  stdev  min      max    [ms]
          1st   115.62   0.67  114.75   117.00
          2nd   115.08   1.13  113.25   117.58
          3rd   114.75   1.16  113.42   117.83

        After this patch:
                median  stdev  min      max    [ms]
          1st   102.55   0.95  101.25   104.50
          2nd   103.10   0.86  102.20   100.95
          3rd   103.30   1.05  102.10   106.65

        Tests: fast/dom/shadow/distribution-attribute-modified.html
               fast/dom/shadow/distribution-className-modified.html
               fast/dom/shadow/distribution-id-modified.html
               fast/dom/shadow/reprojection-attribute-modified.html
               fast/dom/shadow/reprojection-className-modified.html
               fast/dom/shadow/reprojection-id-modified.html

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
        (HasSelectorForClassStyleFunctor):
        (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
        (WebCore):
        (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
        (HasSelectorForClassDistributionFunctor):
        (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
        (WebCore::checkFunctorForClassChange):
        (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
        (WebCore::checkNeedsDistributionInvalidationForClassChange):
        (WebCore::Element::classAttributeChanged):

2012-11-12  Joe Mason  <jmason@rim.com>

        [BlackBerry] NetworkJob should not check if data is received with HEAD
        https://bugs.webkit.org/show_bug.cgi?id=102034

        Reviewed by George Staikos.

        Internal PR: 241391

        Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
        have no data.

        Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::NetworkJob):
        (WebCore::NetworkJob::initialize):
        (WebCore::NetworkJob::shouldNotifyClientFailed):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):

2012-11-12  Adam Barth  <abarth@webkit.org>

        [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
        https://bugs.webkit.org/show_bug.cgi?id=102015

        Reviewed by Kentaro Hara.

        Previously, Nodes had a special path through
        V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
        could find the V8PerContextData quickly. Now that we can get the
        V8PerContextData from the v8::Context quickly, we can move Nodes to the
        general case. The net consequence is that creation of all DOM objects
        should be as fast as Nodes are.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateToV8Converters):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::wrapSlow):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::V8TestActiveDOMObject::wrapSlow):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::V8TestCustomNamedGetter::wrapSlow):
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        (WebCore::V8TestEventConstructor::wrapSlow):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::V8TestEventTarget::wrapSlow):
        * bindings/scripts/test/V8/V8TestException.cpp:
        (WebCore::V8TestException::wrapSlow):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::wrapSlow):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::V8TestMediaQueryListListener::wrapSlow):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructor::wrapSlow):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::wrapSlow):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::wrapSlow):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
        (WebCore::V8TestOverloadedConstructors::wrapSlow):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
        * bindings/v8/V8Binding.cpp:
        * bindings/v8/V8Binding.h:
        (WebCore):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::instantiateV8Object):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):

2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>

        Some CSS properties are not handled on StyleResolver::applyProperty
        https://bugs.webkit.org/show_bug.cgi?id=102027

        Reviewed by Gyuyoung Kim.

        The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
        need to be handled on StyleResolver::applyProperty.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2012-11-12  Simon Fraser  <simon.fraser@apple.com>

        Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
        https://bugs.webkit.org/show_bug.cgi?id=102031

        Reviewed by Beth Dakin.

        RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
        and calculateLayerBounds() multiple times for painting a single layer.
        
        Keep track of whether we've computed the root-relative bounds and do it on demand.
        Compute the offset relative to rootLayer once, and pass it around as an optional parameter
        to functions that need it.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::calculateRects):
        (WebCore::RenderLayer::intersectsDamageRect):
        (WebCore::RenderLayer::boundingBox):
        (WebCore::RenderLayer::calculateLayerBounds):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds):

2012-11-12  Simon Fraser  <simon.fraser@apple.com>

        Change calculateLayerBounds() from a static function to a member function
        https://bugs.webkit.org/show_bug.cgi?id=102022

        Reviewed by Beth Dakin.

        calculateLayerBounds() has grown into a substantial function after
        starting live as a little utility function, so make it a member function
        of RenderLayer, and adjust callers accordingly.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::calculateLayerBounds):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds):

2012-11-12  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
        https://bugs.webkit.org/show_bug.cgi?id=101601

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/NativeMemorySnapshotView.js:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):

2012-11-10  Dirk Schulze  <krit@webkit.org>

        BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
        https://bugs.webkit.org/show_bug.cgi?id=101854

        Reviewed by Andreas Kling.

        The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
        blend with themselves. This patch introduces simple interpolation of BasicShapes for
        the -webkit-clip-path property.

        Test: css3/masking/clip-path-animation.html

        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
            It skips blending on <clipPath> references, polygons and if the shapes are not of
            the same type.
        (WebCore):
        (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
        (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
        (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
            properties.
        * rendering/style/BasicShapes.cpp:
            The blending is done by each shape itself. This is similar to FilterOperations or
            TransformOperations.
        (WebCore::BasicShapeRectangle::blend):
        (WebCore):
        (WebCore::BasicShapeCircle::blend):
        (WebCore::BasicShapeEllipse::blend):
        (WebCore::BasicShapePolygon::blend):
        * rendering/style/BasicShapes.h:
            Added new blending functions to header.
        (BasicShape):
        (BasicShapeRectangle):
        (BasicShapeCircle):
        (BasicShapeEllipse):
        (BasicShapePolygon):

2012-11-12  Adam Barth  <abarth@webkit.org>

        [V8] We should be able to get V8PerContextData from a v8::Context more quickly
        https://bugs.webkit.org/show_bug.cgi?id=102008

        Reviewed by Ojan Vafai.

        This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
        API to get the V8PerContextData associated with a v8::Context much more
        quickly. We no longer need to use a hidden property on the inner global
        object. This patch will enable future optimizations.

        * bindings/v8/V8HiddenPropertyName.h:
        (WebCore):
        * bindings/v8/V8PerContextData.cpp:
        (WebCore::V8PerContextData::dispose):
        (WebCore::V8PerContextData::init):
        * bindings/v8/V8PerContextData.h:
        (WebCore::V8PerContextData::from):

2012-11-12  Elliott Sprehn  <esprehn@chromium.org>

        Make Frames and HTMLFrameOwnerElement less friendly
        https://bugs.webkit.org/show_bug.cgi?id=102003

        Reviewed by Ojan Vafai.

        Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
        this patch makes it go through a method to allow future hooks when frames
        are associated with owners.

        No new tests, this is just a refactor.

        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::setContentFrame):
        * html/HTMLFrameOwnerElement.h:
        (HTMLFrameOwnerElement):
        (WebCore::HTMLFrameOwnerElement::clearContentFrame):
        * page/Frame.cpp:
        (WebCore::Frame::Frame): Use new methods.

2012-11-12  Beth Dakin  <bdakin@apple.com>

        Zoomed-in scrolling is very slow when deviceScaleFactor > 1
        https://bugs.webkit.org/show_bug.cgi?id=101787

        Reviewed by Simon Fraser.

        This patch adds a new member to the GraphicsContextState that tracks 
        whether or not fonts should be subpixel-quantized. We want to default 
        to sibpixel-quantizing, but we'll turn it off if we're scrolling 
        content that cannot be scrolled on the scrolling thread.

        State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
        since normally we do want to quantize.
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
        (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
        * platform/graphics/GraphicsContext.h:
        (WebCore::GraphicsContextState::GraphicsContextState):
        (GraphicsContextState):
        (GraphicsContext):

        wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
        whether or not it should try to subpixel-quantize the fonts.
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

        Disable subpixel-quantization for overflow areas, subframes, and 
        content that is scrolling on the main thread.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents):

2012-11-12  Timothy Hatcher  <timothy@apple.com>

        Expose InspectorFrontendClientLocal::setAttachedWindow as public.

        This allows external actions to update the docked state in the frontend.

        https://bugs.webkit.org/show_bug.cgi?id=102023

        Reviewed by Anders Carlsson.

        * inspector/InspectorFrontendClientLocal.h:
        Moved InspectorFrontendClientLocal::setAttachedWindow to public section.

2012-11-12  Erik Arvidsson  <arv@chromium.org>

        Replace DOMException TYPE_MISMATCH_ERR with TypeError
        https://bugs.webkit.org/show_bug.cgi?id=101604

        Reviewed by Adam Barth.

        DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.

        We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
        the spec mandates TypeError being thrown.

        Updated existing tests.

        * Modules/mediastream/MediaConstraintsImpl.cpp:
        * Modules/mediastream/MediaStreamTrackList.cpp:
        * Modules/mediastream/PeerConnection00.cpp:
        * Modules/mediastream/RTCDataChannel.cpp:
        * Modules/mediastream/RTCIceCandidate.cpp:
        * Modules/mediastream/RTCPeerConnection.cpp:
        * Modules/mediastream/RTCSessionDescription.cpp:
        * Modules/mediastream/SessionDescription.cpp:
        * bindings/js/CallbackFunction.cpp:
        * bindings/js/JSCustomXPathNSResolver.cpp:
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        * bindings/js/JSHTMLSelectElementCustom.cpp:
        * bindings/js/JSMutationObserverCustom.cpp:
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        * bindings/js/JSSQLTransactionCustom.cpp:
        * bindings/js/JSSQLTransactionSyncCustom.cpp:
        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorObjC.pm:
        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/v8/V8Callback.h:
        * bindings/v8/V8Collection.cpp:
        * bindings/v8/custom/V8DocumentCustom.cpp:
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        * bindings/v8/custom/V8MutationObserverCustom.cpp:
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
        * dom/DOMCoreException.idl:
        * html/HTMLElement.cpp:
        * html/HTMLMediaElement.cpp:
        * html/HTMLOptionsCollection.cpp:
        * html/canvas/CanvasRenderingContext2D.cpp:
        * page/Crypto.cpp:
        * page/DOMSelection.cpp:
        * svg/properties/SVGTransformListPropertyTearOff.h:

2012-11-12  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Use sequence<> instead of DOMString[] in IDL
        https://bugs.webkit.org/show_bug.cgi?id=100539

        Reviewed by Adam Barth.

        In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
        WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
        to that. Note webkit.org/b/100537 which requires sequence<String> instead.

        Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
        * Modules/indexeddb/IDBDatabase.h:
        (WebCore::IDBDatabase::transaction):
        (IDBDatabase):
        * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
        * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::createIndex):
        * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>

2012-11-12  Anders Carlsson  <andersca@apple.com>

        Remove Leopard only gradient code
        https://bugs.webkit.org/show_bug.cgi?id=102033

        Reviewed by Dan Bernstein.

        USE_CG_SHADING was only ever true on Leopard, so we can remove it now.

        * platform/graphics/Gradient.h:
        * platform/graphics/cg/GradientCG.cpp:
        (WebCore::Gradient::platformDestroy):
        (WebCore::Gradient::platformGradient):
        (WebCore::Gradient::paint):

2012-11-12  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 237003
        Internally Reviewed by Eli Fidler.
        Since we nolonger use small font for form controls, adjust paddingDivisor
        ratio to decrease the padding value.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore):

2012-11-12  Simon Fraser  <simon.fraser@apple.com>

        Fix filter dirty rect regression from r134311
        https://bugs.webkit.org/show_bug.cgi?id=102002

        Reviewed by Beth Dakin.

        When rendering with filters, the code can inflate the root-relative
        paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
        broke this behavior.
    
        Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
        and using it for the rest of the function.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents):

2012-11-12  Kentaro Hara  <haraken@chromium.org>

        [V8] V8Event::valueAccessorGetter() in custom binding is not used
        https://bugs.webkit.org/show_bug.cgi?id=101893

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/custom/V8EventCustom.cpp:

2012-11-12  Roger Fong  <roger_fong@apple.com>

        Web Inspector: Fix docking behaviour on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=101978

        Reviewed by Brian Weinstein.

        There are a number of problems with docking behaviour on Windows.
        For starters, it does not ever constrain the inspector's size properly while docked.
        It also does not properly set the whether or not the inspector can be docked/undocked.
        This patch fixes both issues.

        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::frontendLoaded):
        Switch order of calling bringToFront and setDockingUnavailable.

2012-11-12  Adam Barth  <abarth@webkit.org>

        [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
        https://bugs.webkit.org/show_bug.cgi?id=101519

        Reviewed by Ojan Vafai.

        There should be no change in behavior.  The new API is slightly faster
        than the old API (and apparently works correctly internally in V8).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::toNative):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::toNative):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::toNative):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::toNative):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::toNative):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::toNative):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::toNative):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::toNative):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::toNative):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::V8TestNode::toNative):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::V8TestObj::toNative):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::toNative):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::v8ObjectToNPObject):
        (WebCore::npCreateV8ScriptObject):
        * bindings/v8/V8Collection.h:
        (WebCore::toNativeCollection):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::setIsolatedWorldField):
        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::isWrapperOfType):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setDOMWrapper):
        (WebCore::V8DOMWrapper::clearDOMWrapper):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore::toNative):
        (WebCore::toWrapperTypeInfo):

2012-11-12  Andreas Kling  <kling@webkit.org>

        Rename AttributeStyle => PresentationAttributeStyle across WebCore.
        <http://webkit.org/b/101975>

        Rubber-stamped by Antti Koivisto.

        The completely separate concepts of "attribute style" and "style attribute" were a bit too
        easy to confuse in variable and method names. Reconfigure our terminology to call it
        "presentation attribute style" instead of "attribute style".

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
        (WebCore::StyleResolver::matchAllRules):
        (WebCore::StyleResolver::canShareStyleWithElement):
        * dom/Attr.cpp:
        (WebCore::Attr::style):
        * dom/ElementAttributeData.cpp:
        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
        (WebCore::ElementAttributeData::reportMemoryUsage):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::presentationAttributeStyle):
        (WebCore::ElementAttributeData::setPresentationAttributeStyle):
        (ElementAttributeData):
        * dom/Node.h:
        (WebCore::Node::attributeStyleDirty):
        (WebCore::Node::setPresentationAttributeStyleDirty):
        (WebCore::Node::clearPresentationAttributeStyleDirty):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
        (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
        * dom/StyledElement.h:
        (WebCore::StyledElement::additionalPresentationAttributeStyle):
        (StyledElement):
        (WebCore::StyledElement::collectStyleForPresentationAttribute):
        (WebCore::StyledElement::presentationAttributeStyle):
        * html/HTMLBRElement.cpp:
        (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
        * html/HTMLBRElement.h:
        (HTMLBRElement):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
        * html/HTMLBodyElement.h:
        (HTMLBodyElement):
        * html/HTMLDivElement.cpp:
        (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
        * html/HTMLDivElement.h:
        (HTMLDivElement):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::applyBorderAttributeToStyle):
        (WebCore::HTMLElement::mapLanguageAttributeToLocale):
        (WebCore::HTMLElement::collectStyleForPresentationAttribute):
        (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
        (WebCore::HTMLElement::addHTMLLengthToStyle):
        * html/HTMLElement.h:
        (HTMLElement):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
        * html/HTMLEmbedElement.h:
        (HTMLEmbedElement):
        * html/HTMLFontElement.cpp:
        (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
        * html/HTMLFontElement.h:
        (HTMLFontElement):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
        * html/HTMLFrameSetElement.h:
        (HTMLFrameSetElement):
        * html/HTMLHRElement.cpp:
        (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
        * html/HTMLHRElement.h:
        (HTMLHRElement):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
        * html/HTMLIFrameElement.h:
        (HTMLIFrameElement):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
        * html/HTMLImageElement.h:
        (HTMLImageElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
        * html/HTMLLIElement.h:
        (HTMLLIElement):
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
        * html/HTMLMarqueeElement.h:
        (HTMLMarqueeElement):
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
        * html/HTMLOListElement.h:
        (HTMLOListElement):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
        * html/HTMLObjectElement.h:
        (HTMLObjectElement):
        * html/HTMLParagraphElement.cpp:
        (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
        * html/HTMLParagraphElement.h:
        (HTMLParagraphElement):
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
        * html/HTMLPlugInElement.h:
        (HTMLPlugInElement):
        * html/HTMLPreElement.cpp:
        (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
        * html/HTMLPreElement.h:
        (HTMLPreElement):
        * html/HTMLTableCaptionElement.cpp:
        (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
        * html/HTMLTableCaptionElement.h:
        (HTMLTableCaptionElement):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
        (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
        * html/HTMLTableCellElement.h:
        (HTMLTableCellElement):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
        (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
        * html/HTMLTableColElement.h:
        (HTMLTableColElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
        (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
        * html/HTMLTableElement.h:
        (HTMLTableElement):
        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
        * html/HTMLTablePartElement.h:
        (HTMLTablePartElement):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
        * html/HTMLTableSectionElement.h:
        (HTMLTableSectionElement):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
        * html/HTMLTextAreaElement.h:
        (HTMLTextAreaElement):
        * html/HTMLUListElement.cpp:
        (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
        * html/HTMLUListElement.h:
        (HTMLUListElement):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
        * html/HTMLVideoElement.h:
        (HTMLVideoElement):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::collectStyleForPresentationAttribute):
        * mathml/MathMLElement.h:
        (MathMLElement):
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
        * svg/SVGImageElement.h:
        (SVGImageElement):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
        * svg/SVGStyledElement.h:
        (SVGStyledElement):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
        * svg/SVGTextContentElement.h:
        (SVGTextContentElement):

2012-11-12  Adam Barth  <abarth@webkit.org>

        [V8] Many things crash when switching to V8's new aligned pointer API
        https://bugs.webkit.org/show_bug.cgi?id=101994

        Reviewed by Eric Seidel.

        When using the aligned pointer API, we need to make sure to initialize
        every internal field that we later read because the new API has better
        error checks than the old API. This patch explicitly initializes the
        enteredIsolatedWorldIndex internal field to zero for main worlds,
        fixing the LayoutTest crashes from our previous attempt to move the
        aligned pointer API.

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):

2012-11-12  Simon Fraser  <simon.fraser@apple.com>

        Reduce the crazy number of parameters to RenderLayer painting member functions
        https://bugs.webkit.org/show_bug.cgi?id=101895

        Reviewed by Beth Dakin.

        The various RenderLayer::paintLayer* functions took a lot of arguments, most
        of which were passed down directly to descendants.
        
        Gather these arguments into a LayerPaintingInfo struct.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
        to descendant paint calls.
        (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
        (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
        make a new LayerPaintingInfo because the root layer is shifted.
        (WebCore::RenderLayer::paintLayerContentsAndReflection):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::paintList):
        (WebCore::RenderLayer::paintPaginatedChildLayer):
        (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
        struct for column painting.
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
        (LayerPaintingInfo):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
        to enter layer painting.
        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::paint): Ditto.

2012-11-12  Brady Eidson  <beidson@apple.com>

        NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
        https://bugs.webkit.org/show_bug.cgi?id=101872

        Reviewed by Alexey Proskuryakov.

        Expose shouldSniffContent to pass it along to the NetworkProcess.

        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::shouldSniffContent):

2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>

        Fix memory leak in createSurfaceForBackingStore()
        https://bugs.webkit.org/show_bug.cgi?id=101941

        Reviewed by Kenneth Rohde Christiansen.

        Fix memory leak in createSurfaceForBackingStore(),
        the RefPtr<cairo_surface_t> should be released
        when returned since we pass ownership to the
        caller.

        No new tests, no behavior change for layout tests.

        * platform/graphics/efl/CairoUtilitiesEfl.cpp:
        (WebCore::createSurfaceForBackingStore):

2012-11-12  Joe Mason  <jmason@rim.com>

        [BlackBerry] Update to new proxyInfo API
        https://bugs.webkit.org/show_bug.cgi?id=101945

        Reviewed by George Staikos.

        Internal PR: 234680
        Reviewed internally by: Leo Yang

        The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
        have been replaced with a single, more efficient proxyInfo method.

        No new tests because this is an API update with no behaviour change.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::sendRequestWithCredentials):
        (WebCore::NetworkJob::storeCredentials):

2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r126157.
        http://trac.webkit.org/changeset/126157
        https://bugs.webkit.org/show_bug.cgi?id=101954

        This patch caused (untestable) regression of the volume
        property on Mac, Win, and Blackberry ports. (Requested by
        jernoble on #webkit).

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::loadWithNextMediaEngine):
        (WebCore::MediaPlayer::setVolume):
        (WebCore::MediaPlayer::setMuted):
        (WebCore::MediaPlayer::setPreservesPitch):
        (WebCore::MediaPlayer::setSize):
        (WebCore::MediaPlayer::setVisible):
        (WebCore::MediaPlayer::setPreload):

2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Specified width CSS tables should not include border and padding as part of that width.
        https://bugs.webkit.org/show_bug.cgi?id=77028

        Reviewed by Julien Chaffraix.

        CSS table width should not include border and padding even though HTML
        tables size as though their width includes border/padding.

        This is applicable for all CSS tables with specified widths.

        The change would also make our rendering of CSS tables with specified
        width similar to that of Opera, IE and FF.

        Test: fast/table/css-table-width-with-border-padding.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
        Added check for all (positive) specified widths for CSS tables to
        consider border and padding outside of the specified width.

2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Move resolving blob references to FormData.
        https://bugs.webkit.org/show_bug.cgi?id=101754

        Reviewed by Simon Hausmann.

        Resolving Blob-references to a set of just File and Data is done similar by several platforms.
        This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
        BlackBerry network implementation.

        * platform/network/FormData.cpp:
        (WebCore::appendBlobResolved):
        (WebCore::FormData::resolveBlobReferences):
        * platform/network/FormData.h:
        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
        (WebCore::ResourceRequest::initializePlatformRequest):
        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::setHTTPBody):
        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::FormDataIODevice::prepareFormElements):

2012-11-12  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurfaceGLX does not handle transparency correctly.
        https://bugs.webkit.org/show_bug.cgi?id=101943

        GraphicsSurfacGLX must consistently use RGBA texture format.
        glXCreateWindow must be called after creating the XWindow
        that serves as a temporary offscreen texture storage, in order
        to allow for transparency.
        When creating the offscreen XWindow we must make sure,
        that we use a framebuffer configuration that supports
        an alpha mask.

        Reviewed by Noam Rosenthal.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):

2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134225.
        http://trac.webkit.org/changeset/134225
        https://bugs.webkit.org/show_bug.cgi?id=101948

        Appears to have broken the EFL and GTK builds (Requested by
        abarth on #webkit).

        * bindings/js/JSHTMLElementCustom.cpp:
        (WebCore):
        (WebCore::JSHTMLElement::itemValue):
        (WebCore::JSHTMLElement::setItemValue):
        * bindings/v8/custom/V8HTMLElementCustom.cpp:
        (WebCore):
        (WebCore::V8HTMLElement::itemValueAccessorGetter):
        (WebCore::V8HTMLElement::itemValueAccessorSetter):
        * html/HTMLElement.idl:

2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        hitTestResultAtPoint does two hit-tests if called on non main frame
        https://bugs.webkit.org/show_bug.cgi?id=101915

        Reviewed by Antonio Gomes.

        Always redirect hitTestResultAtPoint to the main-frame. This used to being
        done on every result that hit anything, which caused running the expensive 
        hit-tests multiple times in almost all cases.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::hitTestResultAtPoint):

2012-11-12  Kentaro Hara  <haraken@chromium.org>

        [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
        https://bugs.webkit.org/show_bug.cgi?id=101892

        Reviewed by Adam Barth.

        We can remove [Custom] from callUID in ScriptProfileNode.idl.

        No tests. No change in behavior.

        * GNUmakefile.list.am:
        * Target.pri:
        * UseJSC.cmake:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
        * inspector/ScriptProfileNode.idl:

2012-11-12  Kentaro Hara  <haraken@chromium.org>

        [V8] Performance::memory getter needs not to be [Custom]
        https://bugs.webkit.org/show_bug.cgi?id=101890

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
        * page/Performance.idl:

2012-11-12  Kentaro Hara  <haraken@chromium.org>

        [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
        https://bugs.webkit.org/show_bug.cgi?id=101888

        Reviewed by Adam Barth.

        We can remove [Custom] from getter. It is possible to remove [Custom]
        from setter, but it changes the current behavior.
        (I think the current implementation of the setter is wrong.
        I'll fix it in another patch.)

        No tests. No change in behavior.

        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        * html/HTMLOptionsCollection.idl:

2012-11-12  Yael Aharon  <yael.aharon@intel.com>

        [EFL][WK2][AC] Black screen when applications use software backend.
        https://bugs.webkit.org/show_bug.cgi?id=101659

        Reviewed by Kenneth Rohde Christiansen.

        Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.

        No new tests. Will be covered when running existing tests without enabling openGL.

        * platform/graphics/efl/CairoUtilitiesEfl.cpp:
        (WebCore::createSurfaceForImage):
        (WebCore):
        * platform/graphics/efl/CairoUtilitiesEfl.h:
        (WebCore):

2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
        contain idl files anymore.
        * GNUmakefile.list.am: Add missing header files.

2012-11-12  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
        https://bugs.webkit.org/show_bug.cgi?id=101733

        Reviewed by Jochen Eisinger.

        This patch adds better verification to MediaConstraintsImpl.

        Existing tests expanded to cover this change.

        * Modules/mediastream/MediaConstraintsImpl.cpp:
        (WebCore::MediaConstraintsImpl::initialize):

2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134223.
        http://trac.webkit.org/changeset/134223
        https://bugs.webkit.org/show_bug.cgi?id=101939

        Breaks inspector tests (Requested by pfeldman on #webkit).

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
        (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
        (WebInspector.TextEditorMainPanel.prototype._paintLine):
        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
        (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
        * inspector/front-end/externs.js:
        * inspector/front-end/textEditor.css:

2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Support ResourceRequest's setTimeoutInterval
        https://bugs.webkit.org/show_bug.cgi?id=101731

        Reviewed by Simon Hausmann.

        Establish a timeout and return the correct error when it is triggered.

        Tested by existing http/tests/xmlhttprequest/timeout tests.

        * platform/network/ResourceRequestBase.cpp:
        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::release):
        (WebCore::QNetworkReplyHandler::finish):
        (WebCore::QNetworkReplyHandler::timeout):
        (WebCore::QNetworkReplyHandler::timerEvent):
        (WebCore::QNetworkReplyHandler::start):
        * platform/network/qt/QNetworkReplyHandler.h:
        (QNetworkReplyHandler):

2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134224.
        http://trac.webkit.org/changeset/134224
        https://bugs.webkit.org/show_bug.cgi?id=101937

        asserting on bawts (Requested by kling on #webkit).

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        (WebCore::RenderStyle::setColor):
        (WebCore::RenderStyle::setVisitedLinkColor):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleBackgroundData.cpp:
        (WebCore::StyleBackgroundData::StyleBackgroundData):
        * rendering/style/StyleBackgroundData.h:
        (WebCore::StyleBackgroundData::color):
        (StyleBackgroundData):
        * rendering/style/StyleInheritedData.cpp:
        (WebCore::StyleInheritedData::StyleInheritedData):
        * rendering/style/StyleInheritedData.h:
        (StyleInheritedData):
        * rendering/style/StyleMultiColData.cpp:
        (WebCore::StyleMultiColData::StyleMultiColData):
        * rendering/style/StyleMultiColData.h:
        (StyleMultiColData):
        * rendering/style/StyleRareInheritedData.cpp:
        (SameSizeAsStyleRareInheritedData):
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        * rendering/style/StyleRareInheritedData.h:
        (WebCore):
        (StyleRareInheritedData):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:
        (StyleRareNonInheritedData):

2012-11-12  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 236993
        Internally Reviewed by Jeff Rogers.
        Use slide and paint method on slider range and media controls.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore):
        (WebCore::drawThreeSliceHorizontal):
        (WebCore::drawThreeSliceVertical):
        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
        * platform/blackberry/RenderThemeBlackBerry.h:
        (RenderThemeBlackBerry):

2012-11-12  Kent Tamura  <tkent@chromium.org>

        Refactoring: set read-only values on layout in DateTimeEditElement
        https://bugs.webkit.org/show_bug.cgi?id=101916

        Reviewed by Kentaro Hara.

        We have always updated read-only values when we set an empty value or
        DateTimeFieldsState. It has wasted CPU time because such read-only
        values are never updated after layout() essentially. So, we set
        read-only values in DateTimeEditBuilder used by layout(), and remove
        dateForReadOnlyField arguments of setEmptyValue and
        setValueAsDateTimeFieldsState.

        No new tests. This should not make behavior changes.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
        We removed dateForReadOnlyField argument because read-only values are
        already set in DateTimeFieldElement::layout().
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField):
        Set a value to a read-only minute/second/millisecond field while
        building UI elements.
        Also, changed variable types for millisecond and second fields to
        RefPtr<DateTimeNumericFieldElement> because we'd like to call
        setValueAsDate, which is private in DateTimeMillisecondFieldElement and
        DateTimeSecondFieldElement
        (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
        We removed dateForReadOnlyField argument because read-only values are
        already set in DateTimeFieldElement::layout().
        (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement):
        Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.

        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
        We removed dateForReadOnlyField argument because read-only values are
        already set in DateTimeFieldElement::layout().
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement): Ditto.

        * html/shadow/DateTimeFieldElements.cpp: Ditto.
        * html/shadow/DateTimeFieldElements.h: Ditto.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::setEmptyValue):
        It should do nothing if it is read-only because a read-only value was
        already set just after construction.
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement):
        Removed dateForReadOnlyField argument of setEmptyValue.
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
        * html/shadow/DateTimeSymbolicFieldElement.h:
        (DateTimeSymbolicFieldElement): Ditto.

2012-11-12  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 236993
        Internally Reviewed by Jeff Rogers.
        Enable GL slider.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::drawThreeSlice):
        (WebCore):
        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
        (WebCore::RenderThemeBlackBerry::paintSliderThumb):

2012-11-12  Kentaro Hara  <haraken@chromium.org>

        [V8][JSC] HTMLElement::itemValue() needs not to be custom
        https://bugs.webkit.org/show_bug.cgi?id=101882

        Reviewed by Adam Barth.

        We can remove a [Custom] IDL attribute.

        No tests. No change in behavior.

        * bindings/js/JSHTMLElementCustom.cpp:
        * bindings/v8/custom/V8HTMLElementCustom.cpp:
        * html/HTMLElement.idl:

2012-11-12  Andreas Kling  <kling@webkit.org>

        RenderStyle: Pack Color members tighter in substructures.
        <http://webkit.org/b/101860>

        Reviewed by Antti Koivisto.

        For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
        members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.

        Memory saved per instance:

            - StyleMultiColData:          4 bytes
            - StyleBackgroundData:        8 bytes
            - StyleInheritedData:         8 bytes
            - StyleRareInheritedData:    24 bytes
            - StyleRareNonInheritedData: 24 bytes

        323kB progression on Membuster3.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        (WebCore::RenderStyle::setColor):
        (WebCore::RenderStyle::setVisitedLinkColor):
        (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
        (WebCore::RenderStyle::setBackgroundColor):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleBackgroundData.cpp:
        (WebCore::StyleBackgroundData::StyleBackgroundData):
        * rendering/style/StyleBackgroundData.h:
        (WebCore::StyleBackgroundData::color):
        (StyleBackgroundData):
        * rendering/style/StyleInheritedData.cpp:
        (WebCore::StyleInheritedData::StyleInheritedData):
        * rendering/style/StyleInheritedData.h:
        (StyleInheritedData):
        * rendering/style/StyleMultiColData.cpp:
        (WebCore::StyleMultiColData::StyleMultiColData):
        (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
        * rendering/style/StyleMultiColData.h:
        (StyleMultiColData):
        (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
        * rendering/style/StyleRareInheritedData.cpp:
        (SameSizeAsStyleRareInheritedData):
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        (WebCore::StyleRareInheritedData::setTextStrokeColor):
        (WebCore::StyleRareInheritedData::setTextFillColor):
        (WebCore::StyleRareInheritedData::setTextEmphasisColor):
        (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
        (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
        (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::textStrokeColor):
        (WebCore::StyleRareInheritedData::textFillColor):
        (WebCore::StyleRareInheritedData::textEmphasisColor):
        (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
        (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
        (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
        (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
        (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
        * rendering/style/StyleRareNonInheritedData.h:
        (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
        (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
        (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
        (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
        (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
        (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
        (StyleRareNonInheritedData):

2012-11-12  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: migrate text editor to mutation observers
        https://bugs.webkit.org/show_bug.cgi?id=101841

        Reviewed by Vsevolod Vlasov.

        Otherwise, we miss notifications on the removed lines.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.TextEditorMainPanel):
        (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
        (WebInspector.TextEditorMainPanel.prototype._handleMutations):
        (WebInspector.TextEditorMainPanel.prototype._handleMutation):
        * inspector/front-end/externs.js:
        (WebKitMutation):
        (WebKitMutationObserver.prototype.observe):
        (WebKitMutationObserver.prototype.disconnect):

2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>

        [Qt] Flash-plugin starts with wrong width
        https://bugs.webkit.org/show_bug.cgi?id=101836

        Reviewed by Simon Hausmann.

        Defer the setWindow call, so that the one time it is called it will have its final size.

        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::determineQuirks):

2012-11-12  Tommy Widenflycht  <tommyw@google.com>

        Remove the V8 custom code for WebSockets constructor
        https://bugs.webkit.org/show_bug.cgi?id=100801

        Reviewed by Kentaro Hara.

        This patch does the following:

        1) Modifies the V8 code generator to support overloaded constructors,
           the JS generator is fixed to work as before. Proper support for JS will come later.

        2) Modifies WebSocket.h/.cpp for the new constructors.

        Tested by running WebSockets layout tests.

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::create):
        (WebCore):
        * Modules/websockets/WebSocket.h:
        (WebSocket):
        * Modules/websockets/WebSocket.idl:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorDefinition):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateOverloadedConstructorCallback):
        (GenerateSingleConstructorCallback):
        (GenerateConstructorCallback):
        (GenerateImplementation):
        * bindings/scripts/IDLParser.pm:
        (copyAttributes):
        (parseExtendedAttributeList):
        (parseExtendedAttributes):
        (applyExtendedAttributeList):
        * bindings/scripts/IDLStructure.pm:
        * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
        (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
        (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
        (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
        (WebDOMTestOverloadedConstructors::operator=):
        (WebDOMTestOverloadedConstructors::impl):
        (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
        (toWebCore):
        (toWebKit):
        * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
        (WebCore):
        (WebDOMTestOverloadedConstructors):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestOverloadedConstructors):
        (webkit_dom_test_overloaded_constructors_finalize):
        (webkit_dom_test_overloaded_constructors_set_property):
        (webkit_dom_test_overloaded_constructors_get_property):
        (webkit_dom_test_overloaded_constructors_constructed):
        (webkit_dom_test_overloaded_constructors_class_init):
        (webkit_dom_test_overloaded_constructors_init):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
        (_WebKitDOMTestOverloadedConstructors):
        (_WebKitDOMTestOverloadedConstructorsClass):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
        (WebKit):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
        (WebCore):
        (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
        (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
        (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
        (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
        (WebCore::JSTestOverloadedConstructorsPrototype::self):
        (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
        (WebCore::JSTestOverloadedConstructors::finishCreation):
        (WebCore::JSTestOverloadedConstructors::createPrototype):
        (WebCore::JSTestOverloadedConstructors::destroy):
        (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
        (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
        (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
        (WebCore::jsTestOverloadedConstructorsConstructor):
        (WebCore::JSTestOverloadedConstructors::getConstructor):
        (WebCore::isObservable):
        (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
        (WebCore::JSTestOverloadedConstructorsOwner::finalize):
        (WebCore::toJS):
        (WebCore::toTestOverloadedConstructors):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
        (WebCore):
        (JSTestOverloadedConstructors):
        (WebCore::JSTestOverloadedConstructors::create):
        (WebCore::JSTestOverloadedConstructors::createStructure):
        (WebCore::JSTestOverloadedConstructors::impl):
        (WebCore::JSTestOverloadedConstructors::releaseImpl):
        (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
        (JSTestOverloadedConstructorsOwner):
        (WebCore::wrapperOwner):
        (WebCore::wrapperContext):
        (JSTestOverloadedConstructorsPrototype):
        (WebCore::JSTestOverloadedConstructorsPrototype::create):
        (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
        (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
        (JSTestOverloadedConstructorsConstructor):
        (WebCore::JSTestOverloadedConstructorsConstructor::create):
        (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
        (-[DOMTestOverloadedConstructors dealloc]):
        (-[DOMTestOverloadedConstructors finalize]):
        (core):
        (kit):
        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
        (WebCore):
        * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
        * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
        (WebCore):
        (TestOverloadedConstructorsV8Internal):
        (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
        (WebCore::V8TestOverloadedConstructors::constructorCallback):
        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
        (WebCore::V8TestOverloadedConstructors::GetTemplate):
        (WebCore::V8TestOverloadedConstructors::HasInstance):
        (WebCore::V8TestOverloadedConstructors::wrapSlow):
        (WebCore::V8TestOverloadedConstructors::derefObject):
        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
        (WebCore):
        (V8TestOverloadedConstructors):
        (WebCore::V8TestOverloadedConstructors::toNative):
        (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
        (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
        (WebCore::V8TestOverloadedConstructors::wrap):
        (WebCore::toV8):
        * bindings/v8/custom/V8WebSocketCustom.cpp:

2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
        https://bugs.webkit.org/show_bug.cgi?id=101891

        Reviewed by Hajime Morita.

        We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
        since it will have more features than the original RuleFeatureSet has.

        Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.

        No new tests, no change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ElementShadow.h:
        (ElementShadow):
        (WebCore::ElementShadow::selectRuleFeatureSet):
        (WebCore):
        * html/shadow/SelectRuleFeatureSet.cpp: Added.
        (WebCore):
        (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
        (WebCore::SelectRuleFeatureSet::add):
        (WebCore::SelectRuleFeatureSet::clear):
        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
        * html/shadow/SelectRuleFeatureSet.h: Added.
        (WebCore):
        (SelectRuleFeatureSet):
        (WebCore::SelectRuleFeatureSet::hasSelectorForId):
        (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
        (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
        * testing/Internals.cpp:
        (WebCore::Internals::hasSelectorForIdInShadow):
        (WebCore::Internals::hasSelectorForClassInShadow):
        (WebCore::Internals::hasSelectorForAttributeInShadow):

2012-11-13  Keishi Hattori  <keishi@webkit.org>

        Build fix for Chromium Android (caused by r134216)

        Unreviewed.

        No new tests.

        * platform/text/PlatformLocale.cpp:
        (WebCore::Locale::formatDateTime):

2012-11-12  Keishi Hattori  <keishi@webkit.org>

        Add support for week/month to Locale::formatDateTime()
        https://bugs.webkit.org/show_bug.cgi?id=101878

        Reviewed by Kent Tamura.

        Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.

        Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.

        * platform/text/PlatformLocale.cpp:
        (WebCore::DateTimeStringBuilder::visitField):
        (WebCore::Locale::formatDateTime): Support week and month types.

2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Can not load MHTML documents
        https://bugs.webkit.org/show_bug.cgi?id=101765

        Reviewed by Simon Hausmann.

        Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.

        Tested by existing mhtml/ tests.

        * platform/qt/MIMETypeRegistryQt.cpp:
        (WebCore):

2012-11-12  Andreas Kling  <akling@apple.com>

        Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
        <http://webkit.org/b/101850>

        Reviewed by Antti Koivisto.

        Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
        222kB progression on Membuster3.

        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):

2012-11-12  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
        https://bugs.webkit.org/show_bug.cgi?id=101751

        Reviewed by Adam Barth.

        This patch queues the events until the JS interpreter is in an idle state.

        Existing tests cover this patch.

        * Modules/mediastream/RTCDataChannel.cpp:
        (WebCore::RTCDataChannel::RTCDataChannel):
        (WebCore::RTCDataChannel::readyStateChanged):
        (WebCore::RTCDataChannel::dataArrived):
        (WebCore::RTCDataChannel::error):
        (WebCore::RTCDataChannel::scheduleDispatchEvent):
        (WebCore):
        (WebCore::RTCDataChannel::scheduledEventTimerFired):
        * Modules/mediastream/RTCDataChannel.h:
        (RTCDataChannel):
        * platform/chromium/support/WebRTCDataChannel.cpp:
        (WebKit::WebRTCDataChannel::setBufferedAmount):
        (WebKit::WebRTCDataChannel::readyStateChanged):
        (WebKit::WebRTCDataChannel::dataArrived):
        (WebKit::WebRTCDataChannel::error):

2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Remove HTMLInputElement dependency from PickerIndicatorElement
        https://bugs.webkit.org/show_bug.cgi?id=101913

        Reviewed by Kent Tamura.

        Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
        PickerIndicatorElement. It makes easier to add interactions between picker indicator
        and its owner without having to add functions to HTMLInputElement.

        No new tests. This is just a refactor.

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
        (WebCore):
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (WebCore):
        (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
        * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
        (WebCore::PickerIndicatorElement::create):
        (WebCore::PickerIndicatorElement::defaultEventHandler):
        (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
        (WebCore::PickerIndicatorElement::didChooseValue):
        (WebCore::PickerIndicatorElement::openPopup):
        * html/shadow/PickerIndicatorElement.h:
        (PickerIndicatorElement): Added a PickerIndicatorOwner member.
        (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
        (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
        (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):

2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Add support for text-shadow in region styling
        https://bugs.webkit.org/show_bug.cgi?id=94472

        Reviewed by David Hyatt.

        Original patch by Andrei Onea.
        Add support for text-shadow in region styling (@-webkit-region rule).
        In addition to the previously supported region styling properties (background-color and color),
        text-shadow requires the computation of an element style in region at layout time.

        This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
        can be used to retrieve the object style in region (if already cached) or to compute it
        on the spot. When computing the object style in region, we need to compute the style in region
        also for the object ancestor, up to the content nodes.

        This patch also refactors the way styles in region are computed and stored, because
        we can compute the style in region not only at paint time, but also at layout time.

        Test: fast/regions/region-style-text-shadow.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::isValidRegionStyleProperty):
        Allow text-shadow to be used in region styling.
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::styleInRegion):
        Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
        Compute the style in region if not computed yet.
        (WebCore::InlineBox::regionDuringLayout):
        Retrieve the region in which an InlineBox is being flowed.
        * rendering/InlineBox.h:
        * rendering/InlineFlowBox.cpp: Take region styling into account.
        (WebCore::InlineFlowBox::addToLine):
        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
        (WebCore::canCacheObjectStyleInRegion):
        Test if we can cache the computed style in region.
        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
        (WebCore::RenderRegion::computeStyleInRegion):
        (WebCore::RenderRegion::setChildrenStyleInRegion):
        (WebCore::setObjectHasBoxDecorationsFlag):
        (WebCore::RenderRegion::setObjectStyleInRegion):
        (WebCore::RenderRegion::clearObjectStyleInRegion):
        (WebCore::RenderRegion::ensureRegionStyleForObject):
        * rendering/RenderRegion.h:

2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134154.
        http://trac.webkit.org/changeset/134154
        https://bugs.webkit.org/show_bug.cgi?id=101919

        Causes plenty of crashes on GTK and Apple Win builders
        (Requested by zdobersek on #webkit).

        * css/mediaControls.css:
        * css/mediaControlsQuickTime.css:
        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
        (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        * html/shadow/MediaControlElements.h:
        (MediaControlElement):
        (MediaControlToggleClosedCaptionsButtonElement):
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement):
        (WebCore::MediaControlRootElement::create):
        (WebCore::MediaControlRootElement::setMediaController):
        (WebCore::MediaControlRootElement::hide):
        (WebCore::MediaControlRootElement::makeTransparent):
        (WebCore::MediaControlRootElement::reset):
        (WebCore::MediaControlRootElement::reportedError):
        * html/shadow/MediaControlRootElement.h:
        (WebCore):
        (MediaControlRootElement):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::initializeControls):
        * html/shadow/MediaControls.h:
        (MediaControls):
        * platform/Language.cpp:
        (WebCore):
        * platform/Language.h:
        (WebCore):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::paintMediaControlsPart):
        * rendering/RenderMediaControlsChromium.cpp:
        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):

2012-11-12  Mike West  <mkwst@chromium.org>

        'for (x in y)' requires 'var' declaration in ConsoleMessage.js
        https://bugs.webkit.org/show_bug.cgi?id=101908

        Reviewed by Pavel Feldman.

        r134166 should have included a 'var' declaration in its 'for (x in y)'
        loop. This patch adds the missing 'var' in order to prevent leakage into
        the global context.

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype.append):
        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):

2012-11-12  Zeno Albisser  <zeno@webkit.org>

        [Qt] MiniBrowser should not strongly depend on QtTestSupport.
        https://bugs.webkit.org/show_bug.cgi?id=101775

        Introducing HAVE(QTTESTSUPPORT) to allow building
        MiniBrowser without QtTestSupport.
        This is necessary when using a production build.

        Reviewed by Tor Arne Vestbø.

        * Target.pri:
        * platform/qt/QtTestSupport.h:

2012-11-12  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: wasShown is called twice when show() is called from within wasShown
        https://bugs.webkit.org/show_bug.cgi?id=101858

        Reviewed by Vsevolod Vlasov.

        When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
        We now mute one of them.

        * inspector/front-end/View.js:
        (WebInspector.View):
        (WebInspector.View.prototype._inNotification):
        (WebInspector.View.prototype._parentIsShowing):
        (WebInspector.View.prototype._callOnVisibleChildren):
        (WebInspector.View.prototype._processWasShown):
        (WebInspector.View.prototype._processWillHide):
        (WebInspector.View.prototype._processOnResize):
        (WebInspector.View.prototype._notify):
        (WebInspector.View.prototype.show):

2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
        in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.

        Furthermore, we can't update layout in updateAppearance. So do that in its call sites.

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::setSelection):
        (WebCore::FrameSelection::recomputeCaretRect):
        (WebCore::FrameSelection::updateAppearance):
        (WebCore::FrameSelection::setCaretVisibility):

2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>

        Don't update style when attaching in HTMLMeterElement
        https://bugs.webkit.org/show_bug.cgi?id=101714

        Reviewed by Hajime Morita.

        HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
        can cause style-update prevention. The similar thing has already happened in Bug 100507.

        Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.

        Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html

        * html/HTMLMeterElement.cpp:
        * html/HTMLMeterElement.h:
        (HTMLMeterElement): Removed attach(). We don't need it.

2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>

        Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
        https://bugs.webkit.org/show_bug.cgi?id=101547

        Reviewed by Simon Fraser.

        I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
        previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
        selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
        This will let us avoid doing an extra layout upon destruction and not regress repaint tests.

        Covered by existing tests.

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
        (WebCore::FrameSelection::prepareForDestruction): Added.
        (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
        Also, don't update style before updating selection unless text caret is disabled since we always
        update the layout (including style) when text caret is enabled.
        * editing/FrameSelection.h:
        (FrameSelection):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.

2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>

        [CSS3] Parsing the property, text-align-last.
        https://bugs.webkit.org/show_bug.cgi?id=99439

        Reviewed by Julien Chaffraix.

        This patch implements the parsing side of the "text-align-last" property specified
        in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
        Specification link : http://www.w3.org/TR/css3-text/#text-align-last

        Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
               fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore):
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StylePropertySet.cpp:
        (WebCore):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData): Add m_textAlignLast.

2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
        https://bugs.webkit.org/show_bug.cgi?id=101881

        Reviewed by Kent Tamura.

        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
        setPseudo()/pseudo() instead.

        No new tests, simple refacotring.

        * html/HTMLKeygenElement.cpp:
        (WebCore::KeygenSelectElement::KeygenSelectElement):
        (KeygenSelectElement):

2012-11-11  Adam Barth  <abarth@webkit.org>

        Many DOMWindowProperties would benefit from being ScriptWrappable
        https://bugs.webkit.org/show_bug.cgi?id=101887

        Reviewed by Kentaro Hara.

        These object are only ever created at the behest of script, which means
        making them ScriptWrappable is a win.

        * page/BarInfo.h:
        * page/Console.h:
        * page/Crypto.h:
        * page/History.h:
        * page/Location.h:
        * page/Navigator.h:
        * page/Performance.h:

2012-11-11  Kentaro Hara  <haraken@chromium.org>

        [V8] HTMLDocument::all() needs not to be custom
        https://bugs.webkit.org/show_bug.cgi?id=101875

        Reviewed by Adam Barth.

        We can easily remove the custom getter from V8 because the
        custom setter sets .all by ForceSet(). On the other hand,
        it is non-trivial to remove the custom getter from JSC
        because the custom setter sets .all by putDirect()
        and the custom getter wants to get it by getDirect().

        No tests. No change in behavior.

        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        * html/HTMLDocument.idl:

2012-11-11  Kentaro Hara  <haraken@chromium.org>

        [V8] V8Console::memoryAttrGetter() needs not to be custom
        https://bugs.webkit.org/show_bug.cgi?id=101873

        Reviewed by Adam Barth.

        No tests. No change in behavior.

        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore):
        * page/Console.idl:

2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
        https://bugs.webkit.org/show_bug.cgi?id=101180

        Reviewed by Dimitri Glazkov.

        This is a preparation patch for Bug 100451.

        We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
        When an element attribute is changed, we might have to invalidate content distribution,
        however it's high cost operation. So we would like to check RuleFeatureSet used in
        select attributes to determine we really need to invalidate distribution.

        Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
        first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
        For the performance reason, we have a flag to check whether we need to collect features again.

        Test: fast/dom/shadow/shadow-select-attribute-featureset.html

        * WebCore.exp.in:
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::ElementShadow):
        (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
        nodes (and their ShadowDOM).
        (WebCore):
        (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
        (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
        ShadowDOM. We need to collect id, class, and attribute names.
        * dom/ElementShadow.h:
        (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
        (ElementShadow):
        (WebCore::ElementShadow::hasSelectorForId):
        (WebCore):
        (WebCore::ElementShadow::hasSelectorForClass):
        (WebCore::ElementShadow::hasSelectorForAttribute):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
        (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
        (WebCore::HTMLContentElement::removedFrom): ditto.
        * html/shadow/HTMLContentElement.h:
        (WebCore::toHTMLContentElement):
        (WebCore):
        * testing/Internals.cpp:
        (WebCore::Internals::hasSelectorForIdInShadow):
        (WebCore):
        (WebCore::Internals::hasSelectorForClassInShadow):
        (WebCore::Internals::hasSelectorForAttributeInShadow):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134144.
        http://trac.webkit.org/changeset/134144
        https://bugs.webkit.org/show_bug.cgi?id=101876

        seems to break win 7 chromium browser test (Requested by
        hayato on #webkit).

        * WebCore.exp.in:
        * page/EventHandler.cpp:
        (WebCore):
        (WebCore::EventHandler::handleMouseMoveEvent):
        * page/EventHandler.h:
        (EventHandler):
        * testing/Internals.cpp:
        * testing/Internals.h:
        * testing/Internals.idl:

2012-11-11  Kent Tamura  <tkent@chromium.org>

        Internals: MockPagePopup should not update DOM structure during detach()
        https://bugs.webkit.org/show_bug.cgi?id=101710

        Reviewed by Hajime Morita.

        PickerIndicatorElement::detach calls
        MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
        which remove the mock iframe from the tree. But updating the tree during
        detach() is dangerous.

        MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
        requests to call 'close' asynchronously, and 'close' removes the mock
        iframe. We need to change MockPagePopup so that it is ref-couted and has
        a timer.

        No new tests. This is a change for the test harness.

        * testing/MockPagePopupDriver.cpp:
        (MockPagePopup): Make this ref-counted, add closeLater, add close, and
        add m_closeTimer.
        (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
        (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
        (WebCore::MockPagePopup::closeLater):
        - Add one reference to avoid destruction by m_mockPagePopup.clear() in
          closePagePopup.
        - Notify didClosePopup here because the client expects didClosePopup is
          called synchronously.
        - Invoke the timer to call 'close'
        (WebCore::MockPagePopup::close):
        Just remove one reference. This means calling the desructor.
        (WebCore::MockPagePopup::~MockPagePopup):
        Move didClosePopup call to caloseLater.
        (WebCore::MockPagePopupDriver::closePagePopup):
        Request to close PagePopup.
        Clear PagePopupClient in m_pagePopupController because this object is
        necessary until MockPagePopup is closed, but it should not have a
        reference to the PagePopupClient.
        * testing/MockPagePopupDriver.h:
        (MockPagePopupDriver): Make MockPagePopup ref-counted.

2012-11-11  Adam Barth  <abarth@webkit.org>

        axObjectCache code is more complicated than necessary
        https://bugs.webkit.org/show_bug.cgi?id=101820

        Reviewed by Darin Adler.

        This code should use OwnPtr rather than manually calling new/delete.
        Also, instead of using a "double check" pattern, we can just access the
        private fields on the top document directly.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::clearAXObjectCache):
        (WebCore::Document::axObjectCacheExists):
        (WebCore):
        (WebCore::Document::axObjectCache):
        * dom/Document.h:
        (Document):

2012-11-10  Simon Fraser  <simon.fraser@apple.com>

        Save one call to containerForRepaint() when updating layer positions
        https://bugs.webkit.org/show_bug.cgi?id=101856

        Reviewed by Dan Bernstein.

         RenderLayer::updateLayerPositions() has already computed the repaint container,
         but calls computeRepaintRects() which computes it again. Computing the repaint
         container involves a walk back up the layer tree, so calling it during a tree
         traversal is costly.
         
         Fix by passing the repaint container down into computeRepaintRects().

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::computeRepaintRects):
        (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
        (WebCore::RenderLayer::setHasVisibleContent):
        * rendering/RenderLayer.h:
        (RenderLayer):

2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>

        WTFString::utf8() should have a mode of conversion to use replacement character
        https://bugs.webkit.org/show_bug.cgi?id=101678

        Reviewed by Alexey Proskuryakov.

        Follow the change on String::utf8()

        No new tests. No changes in behavior.

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::send): Ditto.
        * html/MediaFragmentURIParser.cpp:
        (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
        * platform/network/blackberry/rss/RSSFilterStream.cpp:
        (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
        * platform/network/blackberry/rss/RSSGenerator.cpp:
        (WebCore::RSSGenerator::generateHtml): Ditto.

2012-11-10  Simon Fraser  <simon.fraser@apple.com>

        Coalesce main thread scroll position updates
        https://bugs.webkit.org/show_bug.cgi?id=101855

        Reviewed by Anders Carlsson.

        When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
        from ScrollingTree would pile up on the main thread, and we'd handle several per
        runloop cycle when scrolling fast. This causes extra work especially on pages
        with position:fixed elements which must update RenderLayers on scrolling.
        
        Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
        scrolling updates to one per runloop.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
        for the scheduled scroll position update.
        (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
        the timer is active and the parameters match, just update the target scroll
        position and return. If the params don't match, dispatch the scheduled update,
        and then the new one. Otherwise, prime the timer.
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
        the existing updateMainFrameScrollPosition() with the saved values.
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
        rather than updateMainFrameScrollPosition().
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
        position elements to jiggle with the patch; we should be calling syncPosition() (which just
        sets the position data, without touching CA layers).

2012-11-10  Simon Fraser  <simon.fraser@apple.com>

        Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
        https://bugs.webkit.org/show_bug.cgi?id=101514

        Reviewed by Tim Horton.

        ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
        ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
        we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
        set the layer position (rather than just doing a 'sync').

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateMainFrameScrollPosition):
        * page/scrolling/ScrollingTree.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):

2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134069.
        http://trac.webkit.org/changeset/134069
        https://bugs.webkit.org/show_bug.cgi?id=101852

        "It is a wrong way to fix the problem. See discussions in bug
        96614" (Requested by 1JTAAPQFJ on #webkit).

        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::getWithUndefinedOrNullCheck):

2012-11-10  Mike West  <mkwst@chromium.org>

        Web Inspector: Multiple '%c' formatting options should all have effect.
        https://bugs.webkit.org/show_bug.cgi?id=101495

        Reviewed by Pavel Feldman.

        This patch supports multiple '%c' formatting blocks in console messages.
        'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
        do exactly what you expect: "blue!" will be blue, and "green!" will be
        green.

        The implementation moves the styles off the message's parent 'span', and
        onto new 'span' elements that wrap the various textual bits of the
        message.

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype.):
        (WebInspector.ConsoleMessageImpl.prototype.append):
        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):

2012-11-10  Mike West  <mkwst@chromium.org>

        Including <CoreText/CoreText.h> breaks the chromium/mac build.
        https://bugs.webkit.org/show_bug.cgi?id=101851

        Reviewed by Dan Bernstein.

        r134146 introduced inclusion of 'CoreText/CoreText.h' in
        SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
        around, it looks like this needs to be modified to include
        'ApplicationServices/ApplicationServices.h'.

        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
            Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
            Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.

2012-11-10  Andreas Kling  <kling@webkit.org>

        Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
        <http://webkit.org/b/101849>

        Reviewed by Anders Carlsson.

        Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
        possible moment, to avoid unnecessarily detaching and cloning from attribute data.

        120 kB progression on Membuster3.

        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):
        (WebCore::Element::addAttributeInternal):

2012-11-10  Simon Fraser  <simon.fraser@apple.com>

        Some minor optimizations in RenderLayer
        https://bugs.webkit.org/show_bug.cgi?id=101847

        Reviewed by Anders Carlsson.

        Some minor performance improvements in RenderLayer code.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
        so prefix it with an isInline() check which tests a bit on RenderObject.
        (WebCore::RenderLayer::localBoundingBox): Ditto.
        (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
        into a local variable.

2012-11-10  Anders Carlsson  <andersca@apple.com>

        Document::m_fullScreenElementStack should be a Vector
        https://bugs.webkit.org/show_bug.cgi?id=101844

        Reviewed by Andreas Kling.

        m_fullScreenElementStack is currently a Deque where elements are being prepended
        and removed from the beginning in LIFO order, so it can be replaced with a Vector.

        * dom/Document.cpp:
        (WebCore::Document::requestFullScreenForElement):
        (WebCore::Document::webkitCancelFullScreen):
        (WebCore::Document::popFullscreenElementStack):
        (WebCore::Document::pushFullscreenElementStack):
        * dom/Document.h:
        (WebCore::Document::webkitFullscreenElement):
        (Document):

2012-11-10  Adam Barth  <abarth@webkit.org>

        [V8] Clean up header includes and ifdefs in V8GCController
        https://bugs.webkit.org/show_bug.cgi?id=101691

        Reviewed by Kentaro Hara.

        This file doesn't need to include all these headers anymore.

        * bindings/v8/V8GCController.cpp:
        (WebCore::workingSetEstimateMBMutex):
        (WebCore::V8GCController::majorGCEpilogue):
        (WebCore::V8GCController::checkMemoryUsage):

2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] Guard WebCore PageVisibility Symbol Export
        https://bugs.webkit.org/show_bug.cgi?id=101817

        Reviewed by Andreas Kling.

        Guard the export with the same ENABLE guards around its definition
        and implementation.

        * WebCore.exp.in:

2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        [css] text-decoration:none no longer valid
        https://bugs.webkit.org/show_bug.cgi?id=101529

        Reviewed by Ojan Vafai.

        This patch fixes an issue where the 'none' value was parsed as explicitly
        'initial' value. However true in a sense that the initial value for the
        'text-decoration' property is 'none', the value itself could not be parsed as
        'initial'.

        The getComputedStyle layout tests for 'text-decoration' and
        '-webkit-text-decoration-line' CSS properties are updated with the correct
        results.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
        gets its own identifier value instead of explicit initial.

2012-11-09  Dean Jackson  <dino@apple.com>

        Support list of tracks in caption media controls
        https://bugs.webkit.org/show_bug.cgi?id=101669

        Reviewed by Eric Carlson.

        Attempt three of commit. The first two times caused build failures on Chromium.

        Add some new elements to the media control shadow DOM that display the list of available
        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
        where it is given a very basic design. At the moment only the list of available tracks
        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670

        No new tests - this doesn't expose any testable surface.

        * css/mediaControls.css: Added default rules that hide the new elements.
        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
        (WebCore::MediaControlClosedCaptionsContainerElement::create):
        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
        * html/shadow/MediaControlElements.h:
        (MediaControlElement):
        (MediaControlToggleClosedCaptionsButtonElement):
        (MediaControlClosedCaptionsContainerElement):
        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement):
        (WebCore::MediaControlRootElement::create): New track container and list elements created.
        (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
        (WebCore::MediaControlRootElement::hide):
        (WebCore::MediaControlRootElement::makeTransparent):
        (WebCore::MediaControlRootElement::reset):
        (WebCore::MediaControlRootElement::reportedError):
        (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
        (WebCore):
        * html/shadow/MediaControlRootElement.h:
        (WebCore):
        (MediaControlRootElement):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
        * html/shadow/MediaControls.h:
        (MediaControls):
        * platform/Language.cpp:
        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
        * platform/Language.h:
        (WebCore):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
        * rendering/RenderMediaControlsChromium.cpp:
        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.

2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134152.
        http://trac.webkit.org/changeset/134152
        https://bugs.webkit.org/show_bug.cgi?id=101831

        broke chromium again (Requested by dino_ on #webkit).

        * css/mediaControls.css:
        * css/mediaControlsQuickTime.css:
        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
        (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        * html/shadow/MediaControlElements.h:
        (MediaControlElement):
        (MediaControlToggleClosedCaptionsButtonElement):
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement):
        (WebCore::MediaControlRootElement::create):
        (WebCore::MediaControlRootElement::setMediaController):
        (WebCore::MediaControlRootElement::hide):
        (WebCore::MediaControlRootElement::makeTransparent):
        (WebCore::MediaControlRootElement::reset):
        (WebCore::MediaControlRootElement::reportedError):
        * html/shadow/MediaControlRootElement.h:
        (WebCore):
        (MediaControlRootElement):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::initializeControls):
        * html/shadow/MediaControls.h:
        (MediaControls):
        * platform/Language.cpp:
        (WebCore):
        * platform/Language.h:
        (WebCore):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::paintMediaControlsPart):
        * rendering/RenderMediaControlsChromium.cpp:
        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):

2012-11-09  Dean Jackson  <dino@apple.com>

        Support list of tracks in caption media controls
        https://bugs.webkit.org/show_bug.cgi?id=101669

        Reviewed by Eric Carlson.

        Attempt two of commit. The first time caused a build failure on Chromium.

        Add some new elements to the media control shadow DOM that display the list of available
        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
        where it is given a very basic design. At the moment only the list of available tracks
        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670

        No new tests - this doesn't expose any testable surface.

        * css/mediaControls.css: Added default rules that hide the new elements.
        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
        (WebCore::MediaControlClosedCaptionsContainerElement::create):
        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
        * html/shadow/MediaControlElements.h:
        (MediaControlElement):
        (MediaControlToggleClosedCaptionsButtonElement):
        (MediaControlClosedCaptionsContainerElement):
        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement):
        (WebCore::MediaControlRootElement::create): New track container and list elements created.
        (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
        (WebCore::MediaControlRootElement::hide):
        (WebCore::MediaControlRootElement::makeTransparent):
        (WebCore::MediaControlRootElement::reset):
        (WebCore::MediaControlRootElement::reportedError):
        (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
        (WebCore):
        * html/shadow/MediaControlRootElement.h:
        (WebCore):
        (MediaControlRootElement):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
        * html/shadow/MediaControls.h:
        (MediaControls):
        * platform/Language.cpp:
        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
        * platform/Language.h:
        (WebCore):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
        * rendering/RenderMediaControlsChromium.cpp:
        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.

2012-11-09  Ojan Vafai  <ojan@chromium.org>

        Should only fire a single set of mouse events and update hover state once when scrolling is done
        https://bugs.webkit.org/show_bug.cgi?id=99940

        Reviewed by Levi Weintraub.

        -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
        timer is fired, we ensure the actual goal of not firing fake mouse events
        until the scroll is completed. This is the core part of this change.
        -Change our mouse event throttling to keep a running average of how long
        mouse events take and adjust throttling appropriately.
        Test: fast/scrolling/fake-mouse-event-throttling.html
        -Maintain a minimum throttle of 100ms.

        * page/EventHandler.cpp:
        (WebCore):
        (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
        (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
        Keep track of a running average instead of max. This lets us adjust throttling
        dynamically without punishing a page for having a single mouse event handler
        that takes disproportionately long.
        (RunningAverageDurationTracker):
        (WebCore::EventHandler::EventHandler):
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::mouseMoved):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
        (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
        * page/EventHandler.h:
        (EventHandler):
        * platform/Timer.h:
        (WebCore::DeferrableOneShotTimer::setDelay):
        (WebCore::DeferrableOneShotTimer::delay):
        Add a way of adjusting the timer delay.

2012-11-09  Rick Byers  <rbyers@chromium.org>

        Move chromium to USE(LAZY_NATIVE_CURSOR)
        https://bugs.webkit.org/show_bug.cgi?id=101501

        Reviewed by Adam Barth.

        This simplifies cursor handling in chromium and unifies it with other
        ports for easier code sharing and testing by moving to the
        USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.

        PlatformCursor adds no value in chromium since the sandboxing model
        requires the cursor information be marshalled to the browser process
        before being turned into a real OS cursor.

        Test: fast/events/mouse-cursor.html

        * WebCore.gypi:
        * platform/Cursor.h:
        (WebCore):
        * platform/chromium/CursorChromium.cpp:
        (WebCore::Cursor::Cursor):
        (WebCore::Cursor::operator=):
        (WebCore::Cursor::~Cursor):
        (WebCore::Cursor::ensurePlatformCursor):
        * platform/chromium/PlatformCursor.h: Removed.

2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>

        Allow ports to decide whether an image should be directly composited
        https://bugs.webkit.org/show_bug.cgi?id=101827

        Reviewed by Simon Fraser.

        Tested by compositing/tiling/huge-layer-img.html.

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
            Allow the GraphicsLayer implementation to decide if the image can be composited.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
            Take onto account the new shouldDirectlyCompositeImage check.

2012-11-09  Dan Bernstein  <mitz@apple.com>

        SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
        https://bugs.webkit.org/show_bug.cgi?id=101799

        Reviewed by Alexey Proskuryakov.

        In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
        different behavior from not setting it at all. We can get the correct behavior and greatly
        simplify the code by not setting attributes to their default values.

        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
        Removed redundant #import directives and changed the remaining ones to #include.
        (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
        only add attributes that have non-default values.

2012-11-09  Rick Byers  <rbyers@chromium.org>

        No tests for changing mouse cursors
        https://bugs.webkit.org/show_bug.cgi?id=100550

        Reviewed by Adam Barth.

        Add infrastructure to keep track of the last set mouse cursor,
        and then to query it from DumpRenderTree.

        Test: fast/events/mouse-cursor.html

        * WebCore.exp.in: Add Cursor copy ctor export
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
        * page/EventHandler.h:
        (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
        * testing/Internals.cpp:
        (WebCore::cursorTypeToString): Helper to convert cursor type to enum
        (WebCore):
        (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
        * testing/Internals.h: Declare getCurrentCursorInfo
        * testing/Internals.idl: Declare getCurrentCursorInfo

2012-11-09  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
        https://bugs.webkit.org/show_bug.cgi?id=101701

        Reviewed by Noam Rosenthal.

        Add TiledBackingStore::rect() because CoordinatedTile needs to know
        m_rect of TiledBackingStore.

        * platform/graphics/TiledBackingStore.h:
        (WebCore::TiledBackingStore::rect):

2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134139.
        http://trac.webkit.org/changeset/134139
        https://bugs.webkit.org/show_bug.cgi?id=101823

        breaks chromium (android) build (Requested by thorton on
        #webkit).

        * css/mediaControls.css:
        * css/mediaControlsQuickTime.css:
        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
        (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        * html/shadow/MediaControlElements.h:
        (MediaControlElement):
        (MediaControlToggleClosedCaptionsButtonElement):
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement):
        (WebCore::MediaControlRootElement::create):
        (WebCore::MediaControlRootElement::setMediaController):
        (WebCore::MediaControlRootElement::hide):
        (WebCore::MediaControlRootElement::makeTransparent):
        (WebCore::MediaControlRootElement::reset):
        (WebCore::MediaControlRootElement::reportedError):
        * html/shadow/MediaControlRootElement.h:
        (WebCore):
        (MediaControlRootElement):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::initializeControls):
        * html/shadow/MediaControls.h:
        (MediaControls):
        * platform/Language.cpp:
        (WebCore):
        * platform/Language.h:
        (WebCore):

2012-11-09  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
        https://bugs.webkit.org/show_bug.cgi?id=101675

        Reviewed by Noam Rosenthal.

        Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
        value equals image->nativeImageForCurrentFrame() by change, we can encounter
        undefined behavior.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):

2012-11-09  Dean Jackson  <dino@apple.com>

        Support list of tracks in caption media controls
        https://bugs.webkit.org/show_bug.cgi?id=101669

        Reviewed by Eric Carlson.

        Add some new elements to the media control shadow DOM that display the list of available
        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
        where it is given a very basic design. At the moment only the list of available tracks
        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670

        No new tests - this doesn't expose any testable surface.

        * css/mediaControls.css: Added default rules that hide the new elements.
        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
        (WebCore::MediaControlClosedCaptionsContainerElement::create):
        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
        * html/shadow/MediaControlElements.h:
        (MediaControlElement):
        (MediaControlToggleClosedCaptionsButtonElement):
        (MediaControlClosedCaptionsContainerElement):
        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement):
        (WebCore::MediaControlRootElement::create): New track container and list elements created.
        (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
        (WebCore::MediaControlRootElement::hide):
        (WebCore::MediaControlRootElement::makeTransparent):
        (WebCore::MediaControlRootElement::reset):
        (WebCore::MediaControlRootElement::reportedError):
        (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
        (WebCore):
        * html/shadow/MediaControlRootElement.h:
        (WebCore):
        (MediaControlRootElement):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
        * html/shadow/MediaControls.h:
        (MediaControls):
        * platform/Language.cpp:
        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
        * platform/Language.h:
        (WebCore):

2012-11-09  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Should pass fast/images/paletted-png-with-color-profile.html
        https://bugs.webkit.org/show_bug.cgi?id=101551

        Reviewed by Adam Barth.

        Support decoding color PALETTE images that have an ICC color profile.

        Covered by fast/images/png-suite/test.html and many other fast/image tests.

        * platform/image-decoders/png/PNGImageDecoder.cpp:
        (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
        transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
        corrected. Use the transparency count from the tRNS reader to detect the expansion
        of RGB and PALLETE image pixels to RGBA.

2012-11-09  Tien-Ren Chen  <trchen@chromium.org>

        Correct hit-test point scaling for document.elementFromPoint
        https://bugs.webkit.org/show_bug.cgi?id=101798

        Reviewed by Adam Barth.

        The hit-test point come from user JavaScript is in the document coordinate.
        Convert to the frame coordinate with correct scale factor for hit test.

        Test: fast/dom/elementFromPoint-scaled-scrolled.html

        * dom/Document.cpp:
        (WebCore::nodeFromPoint):

2012-11-09  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
        https://bugs.webkit.org/show_bug.cgi?id=101415

        Reviewed by Tony Chang.

        Combine abstract interface IDBBackingStore with its only
        implementation, IDBLevelDBBackingStore, to reduce code
        complexity. The legacy structure existed to support a SQLLite
        IDBBackingStore, but it is no longer worth the complexity to
        support this abstraction.

        Changes include:
        1) Merging IDBLevelDBBackingStore into IDBBackingStore.

        2) Merge together IDBBackingStore's inner classes: Cursor,
        Transaction, and ObjectStoreRecordIdentfier with their respective
        subclasses in IDBLevelDBBackingStore.

        3) Simplifying the inner Transaction class to not be refcounted or
        virtualized, to allow it to be a simple concrete member of its
        owner, IDBTransactionBackendImpl.

        No new tests as this is purely a refactor.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::recordInternalError):
        (WebCore::setUpMetadata):
        (WebCore::IDBBackingStore::IDBBackingStore):
        (WebCore):
        (WebCore::IDBBackingStore::~IDBBackingStore):
        (WebCore::IDBBackingStore::open):
        (WebCore::IDBBackingStore::getDatabaseNames):
        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
        (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
        (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
        (WebCore::deleteRange):
        (WebCore::IDBBackingStore::deleteDatabase):
        (WebCore::IDBBackingStore::getObjectStores):
        (WebCore::setMaxObjectStoreId):
        (WebCore::IDBBackingStore::createObjectStore):
        (WebCore::IDBBackingStore::deleteObjectStore):
        (WebCore::IDBBackingStore::getRecord):
        (WebCore::IDBBackingStore::putRecord):
        (WebCore::IDBBackingStore::clearObjectStore):
        (WebCore::IDBBackingStore::deleteRecord):
        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::keyExistsInObjectStore):
        (WebCore::IDBBackingStore::getIndexes):
        (WebCore::setMaxIndexId):
        (WebCore::IDBBackingStore::createIndex):
        (WebCore::IDBBackingStore::deleteIndex):
        (WebCore::IDBBackingStore::putIndexDataForRecord):
        (WebCore::IDBBackingStore::deleteIndexDataForRecord):
        (WebCore::IDBBackingStore::findKeyInIndex):
        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
        (WebCore::IDBBackingStore::keyExistsInIndex):
        (WebCore::IDBBackingStore::Cursor::Cursor):
        (WebCore::IDBBackingStore::Cursor::firstSeek):
        (WebCore::IDBBackingStore::Cursor::advance):
        (WebCore::IDBBackingStore::Cursor::continueFunction):
        (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
        (WebCore::IDBBackingStore::Cursor::isPastBounds):
        (WebCore::ObjectStoreKeyCursorImpl::create):
        (ObjectStoreKeyCursorImpl):
        (WebCore::ObjectStoreKeyCursorImpl::value):
        (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
        (WebCore::ObjectStoreCursorImpl::create):
        (ObjectStoreCursorImpl):
        (WebCore::ObjectStoreCursorImpl::value):
        (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
        (WebCore::IndexKeyCursorImpl::create):
        (IndexKeyCursorImpl):
        (WebCore::IndexKeyCursorImpl::value):
        (WebCore::IndexKeyCursorImpl::primaryKey):
        (WebCore::IndexKeyCursorImpl::recordIdentifier):
        (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
        (WebCore::IndexCursorImpl::create):
        (IndexCursorImpl):
        (WebCore::IndexCursorImpl::value):
        (WebCore::IndexCursorImpl::primaryKey):
        (WebCore::IndexCursorImpl::recordIdentifier):
        (WebCore::IndexCursorImpl::IndexCursorImpl):
        (WebCore::IndexCursorImpl::loadCurrentRow):
        (WebCore::objectStoreCursorOptions):
        (WebCore::indexCursorOptions):
        (WebCore::IDBBackingStore::openObjectStoreCursor):
        (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
        (WebCore::IDBBackingStore::openIndexKeyCursor):
        (WebCore::IDBBackingStore::openIndexCursor):
        (WebCore::IDBBackingStore::Transaction::Transaction):
        (WebCore::IDBBackingStore::Transaction::begin):
        (WebCore::IDBBackingStore::Transaction::commit):
        (WebCore::IDBBackingStore::Transaction::rollback):
        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore):
        (IDBBackingStore):
        (RecordIdentifier):
        (WebCore::IDBBackingStore::RecordIdentifier::create):
        (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
        (WebCore::IDBBackingStore::RecordIdentifier::isValid):
        (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
        (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
        (WebCore::IDBBackingStore::RecordIdentifier::version):
        (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
        (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
        (Transaction):
        (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
        (CursorOptions):
        (Cursor):
        (WebCore::IDBBackingStore::Cursor::Cursor):
        (WebCore::IDBBackingStore::Cursor::key):
        (WebCore::IDBBackingStore::Cursor::primaryKey):
        (WebCore::IDBBackingStore::Cursor::~Cursor):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::openBackingStore):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::countInternal):
        * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):
        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
        * WebCore.xcodeproj/project.pbxproj:

2012-11-09  Tien-Ren Chen  <trchen@chromium.org>

        Correct scroll adjustment for touchEvent.clientX/clientY
        https://bugs.webkit.org/show_bug.cgi?id=101800

        Reviewed by Adam Barth.

        FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
        Convert to document coordinate before passing to JavaScript.

        Test: fast/events/touch/touch-scaled-scrolled.html

        * dom/Touch.cpp:
        (WebCore::contentsX):
        (WebCore::contentsY):

2012-11-09  Alexandru Chiculita  <achicu@adobe.com>

        [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
        https://bugs.webkit.org/show_bug.cgi?id=98990

        Reviewed by Noam Rosenthal.

        Added code that draws the Custom Filter in the TextureMapperGL. Also added 
        required code to make a depth buffer for a BitmapTextureGL.

        Note that the code is not optimized yet, so it will always recompile the shader.

        Test: css3/filters/custom/composited/custom-filter-blend-modes.html

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::BitmapTextureGL::BitmapTextureGL):
        (WebCore::getPassesRequiredForFilter):
        (WebCore):
        (WebCore::TextureMapperGL::drawUsingCustomFilter):
        (WebCore::BitmapTextureGL::applyFilters):
        (WebCore::BitmapTextureGL::initializeDepthBuffer):
        (WebCore::BitmapTextureGL::~BitmapTextureGL):
        * platform/graphics/texmap/TextureMapperGL.h:
        (BitmapTextureGL):

2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        CustomEvent: Allow taking in a serialized value during initialization.
        https://bugs.webkit.org/show_bug.cgi?id=101348

        Reviewed by Adam Barth.

        If a CustomEvent is initialized using a serialized value, then for each access
        to |detail|, the value is deserialized first. This way, each world gets a different
        deserialization.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/V8HiddenPropertyName.h:
        (WebCore):
        * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
        (WebCore):
        (WebCore::V8CustomEvent::detailAccessorGetter):
        * dom/CustomEvent.cpp:
        (WebCore::CustomEvent::initCustomEvent):
        (WebCore):
        * dom/CustomEvent.h:
        (CustomEvent):
        (WebCore::CustomEvent::serializedScriptValue):
        * dom/CustomEvent.idl:

2012-11-09  Brady Eidson  <beidson@apple.com>

        Implement WebResourceBuffer::isEmpty()
        https://bugs.webkit.org/show_bug.cgi?id=101805

        Reviewed by Alexey Proskuryakov.

        This is required to make the existing subresource loading in NetworkProcess work correctly,
        as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
        the data to the ResourceLoader.

        No new tests (No change in behavior in any configuration we test.)

        * loader/ResourceBuffer.h: Make isEmpty() virtual.

2012-11-09  Michael Saboff  <msaboff@apple.com>

        HTML Attributes names and values should be created as 8 bit string where possible
        https://bugs.webkit.org/show_bug.cgi?id=101781

        Reviewed by Filip Pizlo.

        Given that almost all attribute names and values are lower case ASCII, we should try to
        create 8 bit strings to process them.  Creating an AtomicString already tries to make
        an 8 bit string, so that didn't need to change.

        No new tests, functionality covered by existing tests.

        * html/HTMLViewSourceDocument.cpp:
        (WebCore::HTMLViewSourceDocument::processTagToken):
        * html/parser/HTMLMetaCharsetParser.cpp:
        (WebCore::HTMLMetaCharsetParser::processMeta):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::PreloadTask::processAttributes):

2012-11-09  Dana Jansens  <danakj@chromium.org>

        [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
        https://bugs.webkit.org/show_bug.cgi?id=101795

        Reviewed by James Robinson.

        * WebCore.gyp/WebCore.gyp:

2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134101.
        http://trac.webkit.org/changeset/134101
        https://bugs.webkit.org/show_bug.cgi?id=101790

        IDBDatabaseBackendTest.BackingStoreRetention failing
        (Requested by jsbell|gardener on #webkit).

        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
        (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
        (WebCore::IDBLevelDBBackingStore::open):
        (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
        (WebCore::IDBLevelDBBackingStore::getObjectStores):
        (WebCore::IDBLevelDBBackingStore::createObjectStore):
        (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
        (WebCore::IDBLevelDBBackingStore::getRecord):
        (WebCore):
        (WebCore::IDBLevelDBBackingStore::putRecord):
        (WebCore::IDBLevelDBBackingStore::clearObjectStore):
        (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
        (WebCore::IDBLevelDBBackingStore::deleteRecord):
        (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
        (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
        (WebCore::IDBLevelDBBackingStore::getIndexes):
        (WebCore::IDBLevelDBBackingStore::createIndex):
        (WebCore::IDBLevelDBBackingStore::deleteIndex):
        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
        (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
        (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
        (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
        (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
        (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
        (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
        (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
        (WebCore::IDBLevelDBBackingStore::openIndexCursor):
        (WebCore::IDBLevelDBBackingStore::createTransaction):
        (WebCore::IDBLevelDBBackingStore::Transaction::create):
        (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
        (WebCore::IDBLevelDBBackingStore::Transaction::begin):
        (WebCore::IDBLevelDBBackingStore::Transaction::commit):
        (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
        (WebCore::IDBLevelDBBackingStore::backingStoreExists):
        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore):
        (WebCore::IDBBackingStore::~IDBBackingStore):
        (IDBBackingStore):
        (RecordIdentifier):
        (WebCore::IDBBackingStore::Cursor::~Cursor):
        (WebCore::IDBBackingStore::Transaction::~Transaction):
        (Transaction):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::openBackingStore):
        * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
        (WebCore):
        (IDBLevelDBBackingStore):
        (Transaction):
        (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):
        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
        * WebCore.xcodeproj/project.pbxproj:

2012-11-09  Erik Arvidsson  <arv@chromium.org>

        REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
        https://bugs.webkit.org/show_bug.cgi?id=101627

        Reviewed by Alexey Proskuryakov.

        We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
        was changed. If an element is moved from a standards document to a quirks mode document the
        m_classNamesForQuirksMode would not be up to date which lead to wrong results.

        Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).

        Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html

        * html/ClassList.cpp:
        (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
                                          it is up to date.
        * html/ClassList.h:

2012-11-09  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
        https://bugs.webkit.org/show_bug.cgi?id=101415

        Reviewed by Tony Chang.

        Combine abstract interface IDBBackingStore with its only
        implementation, IDBLevelDBBackingStore, to reduce code
        complexity. The legacy structure existed to support a SQLLite
        IDBBackingStore, but it is no longer worth the complexity to
        support this abstraction.

        Changes include:
        1) Merging IDBLevelDBBackingStore into IDBBackingStore.

        2) Merge together IDBBackingStore's inner classes: Cursor,
        Transaction, and ObjectStoreRecordIdentfier with their respective
        subclasses in IDBLevelDBBackingStore.

        3) Simplifying the inner Transaction class to not be refcounted or
        virtualized, to allow it to be a simple concrete member of its
        owner, IDBTransactionBackendImpl.

        No new tests as this is purely a refactor.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::recordInternalError):
        (WebCore::setUpMetadata):
        (WebCore::IDBBackingStore::IDBBackingStore):
        (WebCore):
        (WebCore::IDBBackingStore::~IDBBackingStore):
        (WebCore::IDBBackingStore::open):
        (WebCore::IDBBackingStore::getDatabaseNames):
        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
        (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
        (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
        (WebCore::deleteRange):
        (WebCore::IDBBackingStore::deleteDatabase):
        (WebCore::IDBBackingStore::getObjectStores):
        (WebCore::setMaxObjectStoreId):
        (WebCore::IDBBackingStore::createObjectStore):
        (WebCore::IDBBackingStore::deleteObjectStore):
        (WebCore::IDBBackingStore::getRecord):
        (WebCore::IDBBackingStore::putRecord):
        (WebCore::IDBBackingStore::clearObjectStore):
        (WebCore::IDBBackingStore::deleteRecord):
        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
        (WebCore::IDBBackingStore::keyExistsInObjectStore):
        (WebCore::IDBBackingStore::getIndexes):
        (WebCore::setMaxIndexId):
        (WebCore::IDBBackingStore::createIndex):
        (WebCore::IDBBackingStore::deleteIndex):
        (WebCore::IDBBackingStore::putIndexDataForRecord):
        (WebCore::IDBBackingStore::deleteIndexDataForRecord):
        (WebCore::IDBBackingStore::findKeyInIndex):
        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
        (WebCore::IDBBackingStore::keyExistsInIndex):
        (WebCore::IDBBackingStore::Cursor::Cursor):
        (WebCore::IDBBackingStore::Cursor::firstSeek):
        (WebCore::IDBBackingStore::Cursor::advance):
        (WebCore::IDBBackingStore::Cursor::continueFunction):
        (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
        (WebCore::IDBBackingStore::Cursor::isPastBounds):
        (WebCore::ObjectStoreKeyCursorImpl::create):
        (ObjectStoreKeyCursorImpl):
        (WebCore::ObjectStoreKeyCursorImpl::value):
        (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
        (WebCore::ObjectStoreCursorImpl::create):
        (ObjectStoreCursorImpl):
        (WebCore::ObjectStoreCursorImpl::value):
        (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
        (WebCore::IndexKeyCursorImpl::create):
        (IndexKeyCursorImpl):
        (WebCore::IndexKeyCursorImpl::value):
        (WebCore::IndexKeyCursorImpl::primaryKey):
        (WebCore::IndexKeyCursorImpl::recordIdentifier):
        (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
        (WebCore::IndexCursorImpl::create):
        (IndexCursorImpl):
        (WebCore::IndexCursorImpl::value):
        (WebCore::IndexCursorImpl::primaryKey):
        (WebCore::IndexCursorImpl::recordIdentifier):
        (WebCore::IndexCursorImpl::IndexCursorImpl):
        (WebCore::IndexCursorImpl::loadCurrentRow):
        (WebCore::objectStoreCursorOptions):
        (WebCore::indexCursorOptions):
        (WebCore::IDBBackingStore::openObjectStoreCursor):
        (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
        (WebCore::IDBBackingStore::openIndexKeyCursor):
        (WebCore::IDBBackingStore::openIndexCursor):
        (WebCore::IDBBackingStore::Transaction::Transaction):
        (WebCore::IDBBackingStore::Transaction::begin):
        (WebCore::IDBBackingStore::Transaction::commit):
        (WebCore::IDBBackingStore::Transaction::rollback):
        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore):
        (IDBBackingStore):
        (RecordIdentifier):
        (WebCore::IDBBackingStore::RecordIdentifier::create):
        (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
        (WebCore::IDBBackingStore::RecordIdentifier::isValid):
        (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
        (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
        (WebCore::IDBBackingStore::RecordIdentifier::version):
        (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
        (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
        (Transaction):
        (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
        (CursorOptions):
        (Cursor):
        (WebCore::IDBBackingStore::Cursor::Cursor):
        (WebCore::IDBBackingStore::Cursor::key):
        (WebCore::IDBBackingStore::Cursor::primaryKey):
        (WebCore::IDBBackingStore::Cursor::~Cursor):
        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::openBackingStore):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::countInternal):
        * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):
        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
        * WebCore.xcodeproj/project.pbxproj:

2012-10-28  Timothy Hatcher  <timothy@apple.com>

        Make -webkit-canvas in CSS use the full backing store instead
        of always 1x when rendering.

        https://bugs.webkit.org/show_bug.cgi?id=100611

        Reviewed by Dean Jackson.

        Test: fast/canvas/canvas-as-image-hidpi.html

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
        (WebCore::HTMLCanvasElement::copiedImage): Ditto.
        * platform/graphics/ImageBuffer.h:
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBuffer::copyImage): Ditto.
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::copyImage): Ditto.
        * platform/graphics/wince/ImageBufferWinCE.cpp:
        (WebCore::ImageBuffer::copyImage): Ditto.
        * platform/graphics/wx/ImageBufferWx.cpp:
        (WebCore::ImageBuffer::copyImage): Ditto.

2012-10-28  Timothy Hatcher  <timothy@apple.com>

        Reset the canvas backing store pixel ratio when the buffer resizes.

        The backing store was not being recreated using the current page pixel ratio
        when a resize occurred.

        https://bugs.webkit.org/show_bug.cgi?id=100608

        Reviewed by Darin Adler.

        Test: fast/canvas/canvas-resize-reset-pixelRatio.html

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
        (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
        match. Store the new pixel ratio in m_deviceScaleFactor.
        (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
        * html/HTMLCanvasElement.h:
        (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
        pixel ratios match.

2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>

        RemoveFormat command doesn't remove background color
        https://bugs.webkit.org/show_bug.cgi?id=101682

        Reviewed by Tony Chang.

        Fixed the bug by removing all non-transparent background-color properties.

        Test: editing/execCommand/remove-format-background-color.html

        * editing/RemoveFormatCommand.cpp:
        (WebCore::RemoveFormatCommand::doApply):

2012-11-09  Alec Flett  <alecflett@chromium.org>

        IndexedDB: switch frontend to use int64_t-based references
        https://bugs.webkit.org/show_bug.cgi?id=100426

        Reviewed by Tony Chang.

        Remove String-based objectStore/index references, obsoleted by
        https://bugs.webkit.org/show_bug.cgi?id=100425.

        No new tests as this is the second half of a refactor.

        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setVersion):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBObjectStoreMetadata::findIndex):
        (IDBObjectStoreMetadata):
        (WebCore::IDBObjectStoreMetadata::containsIndex):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::put):
        (WebCore):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * inspector/Inspector-1.0.json:
        * inspector/Inspector.json:
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):
        (WebCore::InspectorIndexedDBAgent::requestData):
        * inspector/InspectorIndexedDBAgent.h:
        (InspectorIndexedDBAgent):

2012-11-09  Mario Sanchez Prada  <mario@webkit.org>

        [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
        https://bugs.webkit.org/show_bug.cgi?id=101727

        Reviewed by Chris Fleizach.

        Added conditional compilation checks for GTK+ specific
        accessibility code, to pave the way for sharing this
        implementation with other ports (e.g WebKitEFL).

        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
        (webkitAccessibleTextGetTextAfterOffset): Added conditional
        compilation checks, only implementing it in GTK so far.
        (webkitAccessibleTextGetTextAtOffset): Ditto.
        (webkitAccessibleTextGetTextBeforeOffset): Ditto.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
        (atkParentOfRootObject): Added conditional compilation checks,
        only implementing in GTK the part of getting the accessible object
        for the root object.
        (webkitAccessibleGetParent): Updated comments.
        (webkitAccessibleGetNChildren): Ditto.
        (webkitAccessibleRefChild): Ditto.
        (webkitAccessibleGetIndexInParent): Ditto.
        (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
        for GTK. Other ports might be interested in this too.
        (setAtkStateSetFromCoreObject): Updated comments.

2012-11-09  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
        https://bugs.webkit.org/show_bug.cgi?id=101586

        Reviewed by Adam Barth.

        Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
        ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
        API some WebCore objects might be cleaned away which is not allowed at this stage.

        This behaviour is not possible to test unfortunately in webkit.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::stop):

2012-11-09  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082

        * WebCore.gypi:

2012-11-09  Dan Carney  <dcarney@google.com>

        [V8] Remove ScriptController::windowShell()
        https://bugs.webkit.org/show_bug.cgi?id=100235

        Reviewed by Adam Barth.

        Refactored windowShell(DOMWrapperWorld*) and
        existingWindowShell(DOMWrapperWorld*) to be like JSC.

        No new tests. No change in functionality.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateToV8Converters):
        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::isolatedWorldMap):
        (WebCore::DOMWrapperWorld::getAllWorlds):
        (WebCore):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::~ScriptController):
        (WebCore::ScriptController::clearForOutOfMemory):
        (WebCore):
        (WebCore::ScriptController::clearForClose):
        (WebCore::ScriptController::updateSecurityOrigin):
        (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
        (WebCore::existingWindowShellWorkaroundWorld):
        (WebCore::ScriptController::existingWindowShell):
        (WebCore::ScriptController::windowShell):
        (WebCore::ScriptController::evaluateInIsolatedWorld):
        (WebCore::ScriptController::currentWorldContext):
        (WebCore::ScriptController::mainWorldContext):
        (WebCore::ScriptController::haveInterpreter):
        (WebCore::ScriptController::enableEval):
        (WebCore::ScriptController::disableEval):
        (WebCore::ScriptController::clearWindowShell):
        (WebCore::ScriptController::setContextDebugId):
        (WebCore::ScriptController::updateDocument):
        (WebCore::ScriptController::namedItemAdded):
        (WebCore::ScriptController::namedItemRemoved):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        (WebCore::ScriptController::getAllWorlds):
        * bindings/v8/V8Binding.cpp:
        (WebCore::perContextDataForCurrentWorld):
        (WebCore::handleOutOfMemory):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        (WebCore::V8DOMWindowShell::updateDocument):
        (WebCore::V8DOMWindowShell::namedItemAdded):
        (WebCore::V8DOMWindowShell::namedItemRemoved):
        * bindings/v8/V8DOMWindowShell.h:
        (WebCore::V8DOMWindowShell::isContextInitialized):
        (WebCore::V8DOMWindowShell::isGlobalInitialized):
        * bindings/v8/custom/V8DocumentCustom.cpp:
        (WebCore::toV8):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::toV8):
        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
        (WebCore::toV8):

2012-11-09  Adam Barth  <abarth@webkit.org>

        [V8] Remove a level of indirection in DOMDataStore
        https://bugs.webkit.org/show_bug.cgi?id=101690

        Reviewed by Kentaro Hara.

        There is no longer any reason for the DOMDataStore to hold the wrapper
        map via a pointer. It can just hold the wrapper map directly, saving a
        level of indirection. I doubt this has any measurable performance gain.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::~DOMDataStore):
        (WebCore::DOMDataStore::reportMemoryUsage):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::get):
        (WebCore::DOMDataStore::set):
        (DOMDataStore):

2012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Region styling properties are not filtered correctly
        https://bugs.webkit.org/show_bug.cgi?id=101768

        Reviewed by Andreas Kling.

        Region styling allows only a handful of css properties. There is a mechanism in place,
        in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
        In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
        This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.

        Test: fast/regions/region-style-not-supported-properties.html

        * css/RuleSet.cpp:
        (WebCore::RuleData::RuleData):

2012-11-09  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Deleting all files relating to the deprecated PeerConnection00
        https://bugs.webkit.org/show_bug.cgi?id=101730

        Reviewed by Adam Barth.

        Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
        files relating to the old API.

        No testing needed, the remaining tests makes sure that nothing else breaks.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/mediastream/DOMWindowMediaStream.idl:
        * Modules/mediastream/IceCallback.h: Removed.
        * Modules/mediastream/IceCallback.idl: Removed.
        * Modules/mediastream/IceCandidate.cpp: Removed.
        * Modules/mediastream/IceCandidate.h: Removed.
        * Modules/mediastream/IceCandidate.idl: Removed.
        * Modules/mediastream/PeerConnection00.cpp: Removed.
        * Modules/mediastream/PeerConnection00.h: Removed.
        * Modules/mediastream/PeerConnection00.idl: Removed.
        * Modules/mediastream/SessionDescription.cpp: Removed.
        * Modules/mediastream/SessionDescription.h: Removed.
        * Modules/mediastream/SessionDescription.idl: Removed.
        * WebCore.gypi:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        * dom/EventTargetFactory.in:
        * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
        * platform/chromium/support/WebICEOptions.cpp: Removed.
        * platform/chromium/support/WebMediaHints.cpp: Removed.
        * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
        * platform/mediastream/IceCandidateDescriptor.h: Removed.
        * platform/mediastream/IceOptions.cpp: Removed.
        * platform/mediastream/IceOptions.h: Removed.
        * platform/mediastream/MediaHints.cpp: Removed.
        * platform/mediastream/MediaHints.h: Removed.
        * platform/mediastream/MediaStreamCenter.h:
        (WebCore):
        (MediaStreamCenter):
        * platform/mediastream/PeerConnection00Handler.cpp: Removed.
        * platform/mediastream/PeerConnection00Handler.h: Removed.
        * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
        * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
        * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
        (WebCore):
        (MediaStreamCenterBlackBerry):
        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
        * platform/mediastream/chromium/MediaStreamCenterChromium.h:
        (WebCore):
        (MediaStreamCenterChromium):
        * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
        * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
        * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
        (WebCore):
        (MediaStreamCenterGStreamer):

2012-11-09  Jer Noble  <jer.noble@apple.com>

        Plugin diagnostic logging should send plugin file basename instead of MIME type.
        https://bugs.webkit.org/show_bug.cgi?id=101679

        Reviewed by Eric Carlson.

        Log the basename of the plugin file rather than the mime type so as to more
        accurately log which plugin was used to handle the request.

        * loader/SubframeLoader.cpp:
        (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
        * plugins/PluginData.cpp:
        (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
        (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
        (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
        * plugins/PluginData.h:

2012-11-09  Alexey Proskuryakov  <ap@apple.com>

        CookieJar uses Document class, which is a layering violation
        https://bugs.webkit.org/show_bug.cgi?id=101621

        Reviewed by Brady Eidson.

        Split CookieJar in two parts, one that takes a Document, and another that is a pure
        platform one, using NetworkingContext to access the correct platform storage.

        * GNUmakefile.list.am:
        * PlatformBlackBerry.cmake:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Updated.

        * loader/CookieJar.cpp: Added.
        (WebCore::networkingContext):
        (WebCore::cookies):
        (WebCore::setCookies):
        (WebCore::cookiesEnabled):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):
        * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
        This is an adaptor for pure platform implementations. Clients continue to use the
        old interface unchanged.

        * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
        * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
        * platform/network/chromium/CookieJarChromium.cpp: Removed.
        * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
        These platforms do not have a pure platform implementation yet, so they just keep
        to use original implementations. Since the code is not in platform/ any more, the
        violation is resolved for Chromium and Blackberry, too.

        * platform/CookieJar.h: Removed.
        * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
        The platform interface is now more uniform - all functions take a NetworkingContext
        instead of hardcoding which cookie storage to use in some cases.
        Renamed functions that are only useful for document.cookie implementation to look
        less generic.

        * platform/mac/CookieJar.mm: Removed.
        * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
        (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
        takes a firstParty URL (unused on Mac, but used on some other platforms).
        (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
        use shared one if context is null).
        (WebCore::setCookiesFromDOM): Ditto.
        (WebCore::cookiesEnabled): Ditto.
        (WebCore::getRawCookies): Ditto.
        (WebCore::deleteCookie): Ditto.
        (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
        but its cleaner to have a uniform interface.
        (WebCore::deleteCookiesForHostname): Ditto.
        (WebCore::deleteAllCookies): Ditto.

        * platform/network/cf/CookieJarCFNet.cpp:
        Same changes as on Mac.

        * platform/network/curl/CookieJarCurl.cpp:
        Updated for new interface. Implementation is largely a dummy one.

        * platform/qt/CookieJarQt.h: Removed.
        * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
        Moved to a common location, most cookie files were in network/ already.

        * platform/qt/CookieJarQt.cpp: Removed.
        * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
        (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
        (WebCore::cookiesForDOM): Ditto.
        (WebCore::cookieRequestHeaderFieldValue): Ditto.
        (WebCore::cookiesEnabled): Ditto.
        (WebCore::getRawCookies): Ditto.
        (WebCore::deleteCookie): Ditto.
        (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
        jar here, assert that argument does not request another one.
        (WebCore::deleteCookiesForHostname): Ditto.
        (WebCore::deleteAllCookies): Ditto.

        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::cookieJarForContext):
        (WebCore::setCookiesFromDOM):
        (WebCore::cookiesForContext):
        (WebCore::cookiesForDOM):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):
        Updated for new function signatures, and use the same cross-platform logic for
        choosing a cookie jar.

        * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
        
        * platform/network/win/CookieJarWin.cpp:
        (WebCore::setCookiesFromDOM):
        (WebCore::cookiesForDOM):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):
        Updated for new function signatures.

2012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
        https://bugs.webkit.org/show_bug.cgi?id=101750

        Reviewed by Ojan Vafai.

        This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
        "text-decoration" property, but recently have its parser function modified by
        the addition of CSS3 "-webkit-text-decoration-line" property.

        The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
        layout test is updated with all possible value combinations.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
        if accepted.

2012-11-09  Xan Lopez  <xlopez@igalia.com>

        [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
        https://bugs.webkit.org/show_bug.cgi?id=101581

        Reviewed by Martin Robinson.

        Use normal GNU Make wildcards instead of 'ls' to list files in
        EXTRA_DIST, it's safer and more straightforward.

        * GNUmakefile.am: ditto.

2012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>

        Need to clear exception in JSDictionary that might have been caused by previous operation.
        https://bugs.webkit.org/show_bug.cgi?id=96614

        Reviewed by George Staikos.

        IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
        String Array type of KeyPath. It will first try to get the keyPath as a String Array,
        if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
        will leave the internal ExecState of Dictionary in exception state. We need to clear
        the exception state before the 2nd query, otherwise the second query will also fail.

        No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
        now work with this patch.
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::getWithUndefinedOrNullCheck):

2012-11-09  Keishi Hattori  <keishi@webkit.org>

        Month/week picker should submit month/week string
        https://bugs.webkit.org/show_bug.cgi?id=101744

        Reviewed by Kent Tamura.

        Month/week picker should submit month/week string and not yyyy-mm-dd.

        No new tests. Test will be added in Bug 101555 and Bug 101556.

        * Resources/pagepopups/calendarPicker.js:
        (DaysTable.prototype._handleDayClick):

2012-11-07  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: wrong output for empty object {}
        https://bugs.webkit.org/show_bug.cgi?id=101356

        Reviewed by Vsevolod Vlasov.

        Changed preview formatting to iterate over enumerable properties only + visit the prototypes.

        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):

2012-11-09  Keishi Hattori  <keishi@webkit.org>

        Fix annotations in page popup files
        https://bugs.webkit.org/show_bug.cgi?id=101736

        Reviewed by Kent Tamura.

        Add @constructor where needed. Replacing /* with /** for annotations.

        No new tests. No behavior change.

        * Resources/pagepopups/calendarPicker.js:
        * Resources/pagepopups/pickerCommon.js:
        * Resources/pagepopups/suggestionPicker.js:

2012-11-09  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
        https://bugs.webkit.org/show_bug.cgi?id=101656

        Reviewed by Kenneth Rohde Christiansen.

        TiledBackingStore computes cover and keep rects to create, keep or remove tiles
        smartly, but currently TiledBackingStore expects a contents rect is big enough
        to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
        is usually wrong expectation.

        We must compute cover and keep rects using the visibleRect, instead of
        the rect intersecting the visibleRect with m_rect, because TBS can be
        used as a backing store of GraphicsLayer and the visible rect usually
        does not intersect with m_rect.
        In the below case, the intersecting rect is an empty.

         +---------------+
         |               |
         |   m_rect      |
         |       +-------|-----------------------+
         |       | HERE  |  cover or keep        |
         +---------------+      rect             |
                 |         +---------+           |
                 |         | visible |           |
                 |         |  rect   |           |
                 |         +---------+           |
                 |                               |
                 |                               |
                 +-------------------------------+

        We must create or keep the tiles in the HERE region. Currently in the
        case, we do not create or keep tiles on the HERE region. Moreover, in
        the case, we early return, which means we don't remove any tiles. It
        causes to waste heap and video memory.

        This patch changes TiledBackingStore to manage tiles smartly for
        Coordinated Graphics.

        Changing cache policy is not testable in layout tests.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::visibleRect):
        (WebCore::TiledBackingStore::visibleAreaIsCovered):
        (WebCore::TiledBackingStore::createTiles):
        (WebCore::TiledBackingStore::adjustForContentsRect):
        (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):

2012-11-09  Keishi Hattori  <keishi@webkit.org>

        Fix undefined variable in Week constructor for calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=101734

        Reviewed by Kent Tamura.

        Closer compiler found an undefined variable in the Week constructor.

        No new tests. This code isn't used.

        * Resources/pagepopups/calendarPicker.js:
        (Week): Used wrong variable name.

2012-11-09  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: render canvas log as a grid.
        https://bugs.webkit.org/show_bug.cgi?id=101732

        Reviewed by Vsevolod Vlasov.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
        (WebInspector.CanvasProfileHeader.prototype.traceLogId):
        (WebInspector.CanvasLogGrid):
        (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
        (WebInspector.CanvasLogGrid.prototype._createCallNode):
        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGridNode.prototype.createCell):
        * inspector/front-end/canvasProfiler.css:
        (#canvas-replay-image-container):

2012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
        https://bugs.webkit.org/show_bug.cgi?id=101595

        Reviewed by Simon Hausmann.

        If the contextMenu is a null pointer treat it as empty, appendItem will later
        create it if necessary.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::addInspectElementItem):

2012-11-09  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][WK2] Add support for custom cursors
        https://bugs.webkit.org/show_bug.cgi?id=101723

        Reviewed by Kenneth Rohde Christiansen.

        Add getEvasObject() virtual method to Image class and
        provide implementation for BitmapImage.

        No new tests, no behavior change.

        * platform/efl/CursorEfl.cpp:
        (WebCore::cursorString):
        * platform/graphics/BitmapImage.h:
        (BitmapImage):
        * platform/graphics/Image.h:
        (Image):
        (WebCore::Image::getEvasObject):
        * platform/graphics/efl/ImageEfl.cpp:
        (WebCore::BitmapImage::getEvasObject):
        (WebCore):

2012-11-09  Adam Barth  <abarth@webkit.org>

        IndexedDB should use mostly ScriptWrappable DOM objects
        https://bugs.webkit.org/show_bug.cgi?id=101694

        Reviewed by Kentaro Hara.

        These object always have JavaScript wrappers, so we should store the
        wrappers inline to use less memory and be faster.

        * Modules/indexeddb/IDBAny.h:
        * Modules/indexeddb/IDBCursor.h:
        * Modules/indexeddb/IDBDatabase.h:
        * Modules/indexeddb/IDBFactory.h:
        * Modules/indexeddb/IDBIndex.h:
        * Modules/indexeddb/IDBKey.h:
        * Modules/indexeddb/IDBKeyRange.h:
        * Modules/indexeddb/IDBObjectStore.h:
        * Modules/indexeddb/IDBRequest.h:
        * Modules/indexeddb/IDBTransaction.h:

2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
        https://bugs.webkit.org/show_bug.cgi?id=101578

        Reviewed by Yury Semikhatsky.

        Added specific error message when request content was evicted from inspector cache.
        Replaced purge with evict in fields/methods names.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::getResponseBody):
        * inspector/NetworkResourcesData.cpp:
        (WebCore::NetworkResourcesData::ResourceData::ResourceData):
        (WebCore::NetworkResourcesData::ResourceData::evictContent):
        (WebCore::NetworkResourcesData::setResourceContent):
        (WebCore::NetworkResourcesData::maybeAddResourceData):
        (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
        (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
        (WebCore::NetworkResourcesData::ensureFreeSpace):
        * inspector/NetworkResourcesData.h:
        (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
        (ResourceData):

2012-11-09  Kent Tamura  <tkent@chromium.org>

        Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
        https://bugs.webkit.org/show_bug.cgi?id=101722

        Reviewed by Hajime Morita.

        Because the date/time input types are not textfields, we should not use
        RenderTextControlSingleLine, and don't need to create shadow trees for
        RenderTextControlSingleLine.

        No new tests. Covered by fast/forms/*/*-appearance-*.html.

        * css/html.css:
        (input[type="date"]):
        It has menulist appeanrace by default, and should be a flexible box to
        center the inner text. 10em width is almost same as the default width of
        text fields.
        (input[type="datetime"]): Ditto.
        (input[type="datetime-local"]): Ditto.
        (input[type="month"]): Ditto.
        (input[type="time"]): Ditto.
        (input[type="week"]): Ditto.
        (input::-webkit-date-and-time-value):
        Added. A style for the inner text block.
        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
        Don't create RenderTextControlSingleLine.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
        Skip TextFieldInputType::updateInnerTextValue.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
        Skip TextFieldInputType::forwardEvent.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
        Just add one element to the shadow root.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
        Sets a localized value to the inner text block.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
        Calls updateAppearance if the value is updated.
        * html/BaseChooserOnlyDateAndTimeInputType.h:
        (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
        createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
        and setValue.
        * html/BaseDateAndTimeInputType.h:
        (WebCore): Add a FIXME comment.
        (BaseDateAndTimeInputType):
        Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
        * html/TextFieldInputType.h:
        (TextFieldInputType):
        Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.

2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Clarify meaning of different urls in protocol.
        https://bugs.webkit.org/show_bug.cgi?id=101582

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:

2012-11-09  Keishi Hattori  <keishi@webkit.org>

        Month picker should select the current month when navigating while keeping selection position.
        https://bugs.webkit.org/show_bug.cgi?id=101724

        Reviewed by Kent Tamura.

        Month picker needs to behave differently because selection won't be in the same position when changing current month.

        No new tests. Test will be added in Bug 101556.

        * Resources/pagepopups/calendarPicker.js:
        (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
        (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
        (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.

2012-11-09  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Fix heap snapshots counted several times by NMI
        https://bugs.webkit.org/show_bug.cgi?id=101085

        The fix moves snapshots size counting to V8PerIsolateData class. As long
        as it has one instance per isolate its reportMemoryUsage should be
        called once per isolate.

        Reviewed by Yury Semikhatsky.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::reportMemoryUsage):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::reportMemoryUsage):

2012-11-08  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: split SplitView into SplitView and SidebarView
        https://bugs.webkit.org/show_bug.cgi?id=101612

        Reviewed by Vsevolod Vlasov.

        Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditsPanel):
        * inspector/front-end/CSSNamedFlowCollectionsView.js:
        (WebInspector.CSSNamedFlowCollectionsView):
        (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
        * inspector/front-end/ElementsPanel.js:
        * inspector/front-end/FileSystemView.js:
        (WebInspector.FileSystemView):
        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.CounterUI):
        (WebInspector.MemoryStatistics.prototype.setTopPosition):
        (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
        (WebInspector.MemoryStatistics.prototype.visible):
        (WebInspector.MemoryStatistics.prototype.show):
        (WebInspector.MemoryStatistics.prototype.hide):
        * inspector/front-end/NavigatorOverlayController.js:
        (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
        (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
        (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
        (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
        * inspector/front-end/NetworkPanel.js:
        * inspector/front-end/Panel.js:
        (WebInspector.Panel.prototype.createSidebarView):
        (WebInspector.Panel.prototype.createSidebarViewWithTree):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel):
        * inspector/front-end/ResourcesPanel.js:
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        * inspector/front-end/SidebarView.js: Added.
        (WebInspector.SidebarView):
        (WebInspector.SidebarView.prototype._hasLeftSidebar):
        (WebInspector.SidebarView.prototype.get mainElement):
        (WebInspector.SidebarView.prototype.get sidebarElement):
        (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
        (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
        (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
        (WebInspector.SidebarView.prototype.setSidebarWidth):
        (WebInspector.SidebarView.prototype.sidebarWidth):
        (WebInspector.SidebarView.prototype.onResize):
        (WebInspector.SidebarView.prototype.applyConstraints):
        (WebInspector.SidebarView.prototype.hideMainElement):
        (WebInspector.SidebarView.prototype.showMainElement):
        (WebInspector.SidebarView.prototype.hideSidebarElement):
        (WebInspector.SidebarView.prototype.showSidebarElement):
        (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView):
        (WebInspector.SplitView.prototype.firstElement):
        (WebInspector.SplitView.prototype.secondElement):
        (WebInspector.SplitView.prototype.setChangeFirstOnResize):
        (WebInspector.SplitView.prototype.resizerElement):
        (WebInspector.SplitView.prototype.showOnlyFirst):
        (WebInspector.SplitView.prototype.showOnlySecond):
        (WebInspector.SplitView.prototype._showOnly):
        (WebInspector.SplitView.prototype._removeAllLayoutProperties):
        (WebInspector.SplitView.prototype.showBoth):
        (WebInspector.SplitView.prototype.setResizable):
        (WebInspector.SplitView.prototype.setSplitOffset):
        (WebInspector.SplitView.prototype.splitOffset):
        (WebInspector.SplitView.prototype._innerSetSplitOffset):
        (WebInspector.SplitView.prototype._startResizerDragging):
        * inspector/front-end/TimelinePanel.js:
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/splitView.css:

2012-11-09  Andrey Lushnikov  <lushnikov@google.com>

        Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
        https://bugs.webkit.org/show_bug.cgi?id=101591

        Reviewed by Vsevolod Vlasov.

        Intercept Ctrl+A event in DefaultTextEditor to select resource content

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
        (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
        (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
        * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination

2012-11-09  Dan Carney  <dcarney@google.com>

        [V8] Main world should have one DOMDataStore
        https://bugs.webkit.org/show_bug.cgi?id=101470

        Reviewed by Kentaro Hara.

        The main world DOMWrapperWorld held onto a DOMDataStore that should
        never be used, as there is a static one optimized for speed in
        DOMDataStore.

        No new tests. No change in functionality.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.h:
        (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):

2012-11-09  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
        https://bugs.webkit.org/show_bug.cgi?id=101611

        Reviewed by Yury Semikhatsky.

        Keys navigation cause populate message sent to the node. The node should
        not react on populate messages but the first one.

        * inspector/front-end/NativeMemorySnapshotView.js:

2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: "Send Request" events are shown out of order.
        https://bugs.webkit.org/show_bug.cgi?id=101544

        Reviewed by Yury Semikhatsky.

        Solution: replace obsolete out-of-order record pushing with frontend
        record reparenting.

        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
        direct record pushing with standard appendRecord invokation.
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
        Made "Send Request" records top-level if gluing is on.

2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134010.
        http://trac.webkit.org/changeset/134010
        https://bugs.webkit.org/show_bug.cgi?id=101716

        Broke the chromium windows build. (Requested by noel_ on
        #webkit).

        * Modules/indexeddb/IDBAny.cpp:
        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabase.h:
        (IDBDatabase):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::setVersion):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (WebCore):
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBObjectStoreMetadata::containsIndex):
        (WebCore::IDBDatabaseMetadata::findObjectStore):
        (IDBDatabaseMetadata):
        (WebCore::IDBDatabaseMetadata::containsObjectStore):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::put):
        (WebCore):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::openCursor):
        (IDBObjectStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::index):
        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        (WebCore):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::objectStore):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::objectStore):
        (WebCore):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:

2012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
        https://bugs.webkit.org/show_bug.cgi?id=101570

        Reviewed by Gustavo Noronha Silva.

        Expose a new method to check whether a vector of loaded languages is empty.
        WK2-EFL needs it to set the default language (if the client didn't set any) when
        spelling setting is being enabled. This change makes it more convenient to check
        whether the dictionaries vector is empty.

        No new tests, no behavior change.

        * platform/text/enchant/TextCheckerEnchant.cpp:
        (TextCheckerEnchant::checkSpellingOfString):
        (TextCheckerEnchant::getGuessesForWord):
        (TextCheckerEnchant::loadedSpellCheckingLanguages):
        A newly exposed method is used internally too.

        * platform/text/enchant/TextCheckerEnchant.h:
        (WebCore::TextCheckerEnchant::hasDictionary):
        Add an inline hasDictionary() method.

2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
        https://bugs.webkit.org/show_bug.cgi?id=101702

        Reviewed by Hajime Morita.

        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
        setPseudo()/pseudo() instead.

        No new tests, simple refactoring.

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCueBox::TextTrackCueBox):
        * html/track/TextTrackCue.h:
        (TextTrackCueBox):

2012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
        https://bugs.webkit.org/show_bug.cgi?id=18153

        Reviewed by Beth Dakin.

        Preferred logical width is computed incorrectly for fixed layout tables
        with 100% percent width, in standards mode.

        According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
        the ultimate width of the table is the greater of the value of the
        'width' property for the table elements and the sum of the column
        widths.

        For our specific scenario we have a fixed layout table with 100% width
        consisting of columns with fixed widths, the sum of which is less than
        the specified width of the table (i.e. 100% of the containing block).
        Even then the applied width is the cummulative of the width of the
        columns.

        This happens because of the quirks mode check added in
        FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
        setting of maxWidth to our fixed layout table with percent width, and
        which perhaps is not required anymore.

        Test: fast/table/fixed-table-layout/table-with-percent-width.html

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::computePreferredLogicalWidths):
        Removed the quirks mode check.

2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r134004.
        http://trac.webkit.org/changeset/134004
        https://bugs.webkit.org/show_bug.cgi?id=101713

        multiple crashes (Requested by hayato on #webkit).

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
        (WebCore::RenderThemeMac::paintMediaFullscreenButton):
        (WebCore::RenderThemeMac::paintMediaMuteButton):
        (WebCore::RenderThemeMac::paintMediaPlayButton):
        (WebCore::RenderThemeMac::paintMediaSeekBackButton):
        (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
        (WebCore::RenderThemeMac::paintMediaSliderTrack):
        (WebCore::RenderThemeMac::paintMediaSliderThumb):
        (WebCore::RenderThemeMac::paintMediaRewindButton):
        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
        (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
        (WebCore::RenderThemeMac::paintMediaControlsBackground):
        (WebCore::RenderThemeMac::paintMediaCurrentTime):
        (WebCore::RenderThemeMac::paintMediaTimeRemaining):
        (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
        (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
        (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):

2012-11-08  Jan Keromnes  <janx@linux.com>

        Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
        https://bugs.webkit.org/show_bug.cgi?id=101607

        Reviewed by Vsevolod Vlasov.

        API changes completing migration to v3.

        * inspector/front-end/CodeMirrorTextEditor.js:
        (WebInspector.CodeMirrorTextEditor):
        (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
        (WebInspector.CodeMirrorTextEditor.prototype.selection):

2012-11-08  Alexei Filippov  <alph@chromium.org>

        Web Inspector: make "Other" bar color darker in NMI snapshot.
        https://bugs.webkit.org/show_bug.cgi?id=101602

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.MemoryBlockViewProperties._initialize):

2012-11-08  Alec Flett  <alecflett@chromium.org>

        IndexedDB: switch frontend to use int64_t-based references
        https://bugs.webkit.org/show_bug.cgi?id=100426

        Reviewed by Tony Chang.

        Remove String-based objectStore/index references, obsoleted by
        https://bugs.webkit.org/show_bug.cgi?id=100425.

        No new tests as this is the second half of a refactor.

        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setVersion):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBObjectStoreMetadata::findIndex):
        (IDBObjectStoreMetadata):
        (WebCore::IDBObjectStoreMetadata::containsIndex):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::put):
        (WebCore):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * inspector/Inspector-1.0.json:
        * inspector/Inspector.json:
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):
        (WebCore::InspectorIndexedDBAgent::requestData):
        * inspector/InspectorIndexedDBAgent.h:
        (InspectorIndexedDBAgent):

2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
        https://bugs.webkit.org/show_bug.cgi?id=101692

        Reviewed by Dimitri Glazkov.

        We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.

        No new tests, simple refactoring.

        * css/RuleFeature.cpp:
        (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
        (WebCore):
        * css/RuleFeature.h:
        (WebCore):
        (RuleFeatureSet):
        * css/RuleSet.cpp:
        (WebCore::collectFeaturesFromRuleData):

2012-11-08  Robert Sesek  <rsesek@chromium.org>

        Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
        https://bugs.webkit.org/show_bug.cgi?id=101634

        Reviewed by Adam Barth.

        No new tests, just disabling unused code in Chromium port.

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
        (WebCore::RenderThemeMac::paintMediaFullscreenButton):
        (WebCore::RenderThemeMac::paintMediaMuteButton):
        (WebCore::RenderThemeMac::paintMediaPlayButton):
        (WebCore::RenderThemeMac::paintMediaSeekBackButton):
        (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
        (WebCore::RenderThemeMac::paintMediaSliderTrack):
        (WebCore::RenderThemeMac::paintMediaSliderThumb):
        (WebCore::RenderThemeMac::paintMediaRewindButton):
        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
        (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
        (WebCore::RenderThemeMac::paintMediaControlsBackground):
        (WebCore::RenderThemeMac::paintMediaCurrentTime):
        (WebCore::RenderThemeMac::paintMediaTimeRemaining):
        (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
        (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
        (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):

2012-11-08  Keishi Hattori  <keishi@webkit.org>

        Enable calendar picker for input types week/month
        https://bugs.webkit.org/show_bug.cgi?id=101553

        Reviewed by Kent Tamura.

        Enabling calendar picker for <input type=week/month>

        No new tests. Tests will be added later in Bug 101556 and Bug 101555.

        * rendering/RenderThemeChromiumCommon.cpp:
        (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):

2012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>

        [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
        https://bugs.webkit.org/show_bug.cgi?id=101681

        Reviewed by George Staikos.

        Since the platform player in BlackBerry disallows resources that come from different origins,
        so it's safe to directly returns true here.

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):

2012-11-08  Mark Lam  <mark.lam@apple.com>

        Renamed ...InlineMethods.h files to ...Inlines.h.
        https://bugs.webkit.org/show_bug.cgi?id=101145.

        Reviewed by Geoffrey Garen.

        This is only a refactoring effort to rename the files. There are no
        functionality changes.

        No new tests.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/parser/HTMLEntityParser.cpp:
        * html/parser/HTMLTokenizer.cpp:
        * html/track/WebVTTTokenizer.cpp:
        * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
        * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
        * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
        * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
        * xml/parser/XMLCharacterReferenceParser.cpp:
        * xml/parser/XMLTokenizer.cpp:

2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133984.
        http://trac.webkit.org/changeset/133984
        https://bugs.webkit.org/show_bug.cgi?id=101684

        windows build error. (Requested by hayato on #webkit).

        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabase.h:
        (IDBDatabase):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::setVersion):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBObjectStoreMetadata::containsIndex):
        (WebCore::IDBDatabaseMetadata::findObjectStore):
        (IDBDatabaseMetadata):
        (WebCore::IDBDatabaseMetadata::containsObjectStore):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::put):
        (WebCore):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStore.h:
        (WebCore::IDBObjectStore::openCursor):
        (IDBObjectStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::index):
        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::objectStore):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::objectStore):
        (WebCore):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:

2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>

        HTMLContentElement should preserve parsed CSSSelectorList
        https://bugs.webkit.org/show_bug.cgi?id=101543

        Reviewed by Dimitri Glazkov.

        We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.

        Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
        CSSSelectorList, we can reduce distribution time.

        This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
        parse and validate it again.

        No new tests, covered by exising tests.

        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
        if it's already parsed.
        (WebCore::ContentSelectorQuery::matches):
        * html/shadow/ContentSelectorQuery.h:
        (ContentSelectorQuery):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::HTMLContentElement):
        (WebCore::HTMLContentElement::isSelectValid):
        (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
        we parse and validate it.
        (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
        to parse select attrite again.
        (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
        (WebCore):
        (WebCore::validateSelector): Moved from ContentSelectorQuery.
        (WebCore::HTMLContentElement::validateSelect):
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):
        (WebCore::HTMLContentElement::setSelect):
        (WebCore):
        (WebCore::HTMLContentElement::selectorList):
        * html/shadow/HTMLShadowElement.cpp:
        (WebCore::HTMLShadowElement::emptySelectorList):
        (WebCore):
        * html/shadow/HTMLShadowElement.h:
        (HTMLShadowElement):
        (WebCore::HTMLShadowElement::selectorList):
        * html/shadow/InsertionPoint.h:
        (InsertionPoint):

2012-11-08  Alec Flett  <alecflett@chromium.org>

        IndexedDB: switch frontend to use int64_t-based references
        https://bugs.webkit.org/show_bug.cgi?id=100426

        Reviewed by Tony Chang.

        Remove String-based objectStore/index references, obsoleted by
        https://bugs.webkit.org/show_bug.cgi?id=100425.

        No new tests as this is the second half of a refactor.

        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setVersion):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBObjectStoreMetadata::findIndex):
        (IDBObjectStoreMetadata):
        (WebCore::IDBObjectStoreMetadata::containsIndex):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::put):
        (WebCore):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * inspector/Inspector-1.0.json:
        * inspector/Inspector.json:
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):
        (WebCore::InspectorIndexedDBAgent::requestData):
        * inspector/InspectorIndexedDBAgent.h:
        (InspectorIndexedDBAgent):

2012-11-08  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] Arabic digits should appear left-to-right
        https://bugs.webkit.org/show_bug.cgi?id=101440

        Reviewed by Tony Chang.

        Call hb_buffer_set_direction() to set direction when drawing glyphs or
        direction should be overridden. Leave direction setting to HarfBuzz when
        WebKit is calculating widths because the direction is LTR by default while
        calculating widths.  Set script before shaping so that HarfBuzz can estimate
        appropriate direction.

        Test: fast/text/international/arabic-digits.html

        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
        Add m_script. This holds the script of the run.
        (WebCore::HarfBuzzShaper::shape):
        Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
        direction should be overridden.
        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
        Set script of HarfBuzzRuns.
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
        Add an argument that indicates it should set direction.
        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
        (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
        (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
        (HarfBuzzRun):
        (HarfBuzzShaper):

2012-11-08  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
        https://bugs.webkit.org/show_bug.cgi?id=101658

        Reviewed by Noam Rosenthal.

        GraphicsLayerTextureMapper::contentsLayer() is duplicated to
        GraphicsLayer::platformLayer(), so we remove it.

        No new tests, this is just a refactor.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (WebCore::GraphicsLayerTextureMapper::platformLayer):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::flushCompositingStateSelf):

2012-11-08  Benjamin Poulain  <benjamin@webkit.org>

        Improve the use of AtomicString with literals
        https://bugs.webkit.org/show_bug.cgi?id=101298

        Reviewed by Darin Adler.

        Fix a bunch of cases of AtomicString with literals:
        -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
        -Use the ConstructFromLiteral constructor whenever it makes sense.
        -Make "x-frame-options" static instead of creating it for each response.
        -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
         not an AtomicString.

        * Modules/battery/BatteryController.cpp:
        (WebCore::BatteryController::supplementName):
        * Modules/battery/NavigatorBattery.cpp:
        (WebCore::NavigatorBattery::from):
        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
        (WebCore::DraggedIsolatedFileSystem::supplementName):
        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::from):
        * Modules/geolocation/GeolocationController.cpp:
        (WebCore::GeolocationController::supplementName):
        * Modules/geolocation/NavigatorGeolocation.cpp:
        (WebCore::NavigatorGeolocation::from):
        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
        (WebCore::DOMWindowIndexedDatabase::from):
        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::directionNext):
        (WebCore::IDBCursor::directionNextUnique):
        (WebCore::IDBCursor::directionPrev):
        (WebCore::IDBCursor::directionPrevUnique):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::readyState):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::modeReadOnly):
        (WebCore::IDBTransaction::modeReadWrite):
        (WebCore::IDBTransaction::modeVersionChange):
        (WebCore::IDBTransaction::modeReadOnlyLegacy):
        (WebCore::IDBTransaction::modeReadWriteLegacy):
        * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
        (WebCore::PageGroupIndexedDatabase::from):
        * Modules/intents/DOMWindowIntents.cpp:
        (WebCore::DOMWindowIntents::from):
        * Modules/mediastream/UserMediaController.cpp:
        (WebCore::UserMediaController::supplementName):
        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::NavigatorContentUtils::supplementName):
        * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
        (WebCore::NavigatorNetworkInfoConnection::from):
        * Modules/networkinfo/NetworkInfoController.cpp:
        (WebCore::NetworkInfoController::supplementName):
        * Modules/notifications/DOMWindowNotifications.cpp:
        (WebCore::DOMWindowNotifications::from):
        * Modules/notifications/NotificationController.cpp:
        (WebCore::NotificationController::supplementName):
        * Modules/quota/DOMWindowQuota.cpp:
        (WebCore::DOMWindowQuota::from):
        * Modules/speech/SpeechRecognitionController.cpp:
        (WebCore::SpeechRecognitionController::supplementName):
        * Modules/vibration/Vibration.cpp:
        (WebCore::Vibration::supplementName):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::invalidStatus):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
        (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::namedSecurityCheck):
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::namedPropertyGetter):
        * dom/ContextFeatures.cpp:
        (WebCore::ContextFeatures::supplementName):
        * dom/DeviceMotionController.cpp:
        (WebCore::DeviceMotionController::supplementName):
        * dom/DeviceOrientationController.cpp:
        (WebCore::DeviceOrientationController::supplementName):
        * dom/Element.cpp:
        (WebCore::Element::webkitRegionOverset):
        * dom/MutationRecord.cpp:
        * html/FileInputType.cpp:
        (WebCore::UploadButtonElement::shadowPseudoId):
        * html/FormController.cpp:
        (WebCore::SavedFormState::getReferencedFilePaths):
        (WebCore::FormKeyGenerator::formKey):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::formControlType):
        * html/HTMLDetailsElement.cpp:
        (WebCore::summaryQuerySelector):
        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::formControlType):
        * html/HTMLKeygenElement.cpp:
        (WebCore::KeygenSelectElement::shadowPseudoId):
        (WebCore::HTMLKeygenElement::formControlType):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::formControlType):
        * html/HTMLOutputElement.cpp:
        (WebCore::HTMLOutputElement::formControlType):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::formControlType):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::formControlType):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::directionString):
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::DateTimeEditElement):
        * html/shadow/DateTimeFieldElements.cpp:
        (WebCore::DateTimeAMPMFieldElement::create):
        (WebCore::DateTimeDayFieldElement::create):
        (WebCore::DateTimeHourFieldElement::create):
        (WebCore::DateTimeMillisecondFieldElement::create):
        (WebCore::DateTimeMinuteFieldElement::create):
        (WebCore::DateTimeMonthFieldElement::create):
        (WebCore::DateTimeSecondFieldElement::create):
        (WebCore::DateTimeSymbolicMonthFieldElement::create):
        (WebCore::DateTimeWeekFieldElement::create):
        (WebCore::DateTimeYearFieldElement::create):
        * html/shadow/DetailsMarkerControl.cpp:
        (WebCore::DetailsMarkerControl::shadowPseudoId):
        * html/shadow/ImageInnerElement.cpp:
        (WebCore::ImageInnerElement::shadowPseudoId):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::shadowPseudoId):
        (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
        (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
        (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
        (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
        (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
        (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
        (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
        (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
        (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
        (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
        (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
        (WebCore::MediaControlTimelineElement::shadowPseudoId):
        (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
        (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
        (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
        (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::shadowPseudoId):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
        (WebCore::MediaControlRootElementChromium::shadowPseudoId):
        * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
        (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
        * html/shadow/MeterShadowElement.cpp:
        (WebCore::MeterInnerElement::shadowPseudoId):
        (WebCore::MeterBarElement::shadowPseudoId):
        (WebCore::MeterValueElement::shadowPseudoId):
        * html/shadow/ProgressShadowElement.cpp:
        (WebCore::ProgressInnerElement::shadowPseudoId):
        (WebCore::ProgressBarElement::shadowPseudoId):
        (WebCore::ProgressValueElement::shadowPseudoId):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::sliderThumbShadowPseudoId):
        (WebCore::mediaSliderThumbShadowPseudoId):
        (WebCore::SliderContainerElement::shadowPseudoId):
        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::shadowPseudoId):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
        (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
        (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
        * loader/CrossOriginAccessControl.cpp:
        (WebCore::passesAccessControlCheck):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
        * loader/PrerendererClient.cpp:
        (WebCore::PrerendererClient::supplementName):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::updateResponseAfterRevalidation):
        * page/DOMWindowPagePopup.cpp:
        (WebCore::DOMWindowPagePopup::supplementName):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handlePasteGlobalSelection):
        (WebCore::focusDirectionForKey):
        * page/SpeechInput.cpp:
        (WebCore::SpeechInput::supplementName):
        * page/animation/CompositeAnimation.cpp:
        (WebCore::CompositeAnimation::updateKeyframeAnimations):
        * platform/graphics/FontCache.cpp:
        (WebCore::alternateFamilyName):
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::applicationOctetStream):
        (WebCore::textPlain):
        (WebCore::codecs):
        * platform/graphics/chromium/FontCacheAndroid.cpp:
        (WebCore::FontCache::getLastResortFallbackFont):
        * platform/graphics/filters/SourceAlpha.cpp:
        (WebCore::SourceAlpha::effectName):
        * platform/graphics/filters/SourceGraphic.cpp:
        (WebCore::SourceGraphic::effectName):
        * platform/graphics/mac/FontCacheMac.mm:
        (WebCore::FontCache::getSimilarFontPlatformData):
        (WebCore::FontCache::getLastResortFallbackFont):
        * platform/graphics/skia/FontCacheSkia.cpp:
        (WebCore::FontCache::getLastResortFallbackFont):
        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::getLastResortFallbackFont):
        * platform/graphics/wx/FontCacheWx.cpp:
        (WebCore::FontCache::getSimilarFontPlatformData):
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        (WebCore::ResourceResponseBase::parseCacheControlDirectives):
        (WebCore::ResourceResponseBase::hasCacheValidatorFields):
        (WebCore::ResourceResponseBase::date):
        (WebCore::ResourceResponseBase::age):
        (WebCore::ResourceResponseBase::expires):
        (WebCore::ResourceResponseBase::lastModified):
        (WebCore::ResourceResponseBase::isAttachment):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
        (WebCore::RenderTextControlSingleLine::preferredContentWidth):
        * svg/SVGAnimateColorElement.cpp:
        (WebCore::attributeValueIsCurrentColor):
        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::SVGAnimateMotionElement::rotateMode):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::setCalcMode):
        (WebCore::SVGAnimationElement::setAttributeType):
        (WebCore::SVGAnimationElement::isAdditive):
        (WebCore::SVGAnimationElement::isAccumulated):
        (WebCore::inheritsFromProperty):
        * svg/SVGFEConvolveMatrixElement.cpp:
        (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
        (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
        (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
        (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
        * svg/SVGFEDiffuseLightingElement.cpp:
        (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
        (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
        * svg/SVGFEDropShadowElement.cpp:
        (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
        (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
        * svg/SVGFEGaussianBlurElement.cpp:
        (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
        (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
        * svg/SVGFEMorphologyElement.cpp:
        (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
        (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
        * svg/SVGFESpecularLightingElement.cpp:
        (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
        (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
        * svg/SVGFETurbulenceElement.cpp:
        (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
        (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
        * svg/SVGFilterElement.cpp:
        (WebCore::SVGFilterElement::filterResXIdentifier):
        (WebCore::SVGFilterElement::filterResYIdentifier):
        * svg/SVGLangSpace.cpp:
        (WebCore::SVGLangSpace::xmlspace):
        (WebCore::SVGLangSpace::addSupportedAttributes):
        * svg/SVGMarkerElement.cpp:
        (WebCore::SVGMarkerElement::orientTypeIdentifier):
        (WebCore::SVGMarkerElement::orientAngleIdentifier):
        (WebCore::SVGMarkerElement::synchronizeOrientType):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::contentScriptType):
        (WebCore::SVGSVGElement::contentStyleType):
        * svg/SVGStyleElement.cpp:
        (WebCore::SVGStyleElement::type):
        (WebCore::SVGStyleElement::media):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::collectStyleForAttribute):
        * svg/SVGViewSpec.cpp:
        (WebCore::SVGViewSpec::viewBoxIdentifier):
        (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
        (WebCore::SVGViewSpec::transformIdentifier):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::parseClockValue):
        (WebCore::SVGSMILElement::restart):
        (WebCore::SVGSMILElement::fill):
        (WebCore::SVGSMILElement::repeatCount):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::from):
        * xml/parser/XMLTreeBuilder.cpp:
        (WebCore::XMLTreeBuilder::processDOCTYPE):
        (WebCore::XMLTreeBuilder::processXMLEntity):

2012-11-08  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=101644
        Fixed header on Facebook news feed becomes detached from top of 
        viewport after rubber band scrolling
        -and corresponding-
        <rdar://problem/12651944>

        Reviewed by Simon Fraser.

        There is code to handle this for non-threaded scrolling on FrameView. 
        This patch moves most of that code into a convenience function on 
        ScrollingCoordinator.

        Have FrameView::scrollOffsetForFixedPosition() call 
        WebCore::scrollOffsetForFixedPosition() with all the right 
        parameters.
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollOffsetForFixedPosition):

        Here's where all the math happens.
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::fixedPositionScrollOffset):
        (WebCore::scrollOffsetForFixedPosition):

        The viewportRect in these three places needs to have the 
        adjusted-for-fixed offset.
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):

2012-11-08  Alpha Lam  <hclam@chromium.org>

        [chromium] Deferred image decoding fails with image orientation
        https://bugs.webkit.org/show_bug.cgi?id=101648

        Reviewed by Stephen White.

        When an image is deferred save the orientation state. Once this state
        is cached it can be used to reply future queries since this state is
        static.

        No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.

        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
        (WebCore::DeferredImageDecoder::orientation):
        * platform/graphics/chromium/DeferredImageDecoder.h:
        (DeferredImageDecoder):

2012-11-08  Andreas Kling  <kling@webkit.org>

        DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
        <http://webkit.org/b/101657>

        Reviewed by Anders Carlsson.

        Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
        as we know it won't grow after that.

        520kB progression on Membuster3.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::stopRecordingResponses):

2012-11-08  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
        https://bugs.webkit.org/show_bug.cgi?id=100874

        Reviewed by Dirk Schulze.

        Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
        Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
        to outside or outside to inside, now depends on which side of the horizontal line the function's
        y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
        is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
        if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
        of the polygon must be just above the horizontal edge.

        Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
               fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
        (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
        (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
        (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
        * rendering/ExclusionPolygon.h:
        (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.

2012-11-08  Otto Derek Cheung  <otcheung@rim.com>

        [BlackBerry] Disable cookies on file://
        https://bugs.webkit.org/show_bug.cgi?id=101646

        Reviewed by Rob Buis.

        Disabling cookies on file and local in the browser app.

        PR 239779

        Tested by trying to set and retrieve cookies on WI while browsing
        files on the file scheme.

        * platform/blackberry/CookieManager.cpp:
        (WebCore):
        (WebCore::shouldIgnoreScheme):
        (WebCore::CookieManager::getRawCookies):
        (WebCore::CookieManager::checkAndTreatCookie):

2012-11-08  Joshua Bell  <jsbell@chromium.org>

        Expose snapshots in platform/leveldb wrapper API
        https://bugs.webkit.org/show_bug.cgi?id=100786

        Reviewed by Tony Chang.

        Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
        as it was when the snapshot was taken. This can be used to implement parallel transactions,
        e.g. where a read transaction won't see updates made by a later write transaction.

        Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'

        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
        (WebCore):
        (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
        (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
        (WebCore::LevelDBDatabase::createIterator): Ditto.
        * platform/leveldb/LevelDBDatabase.h:
        (leveldb):
        (WebCore):
        (LevelDBSnapshot):
        (LevelDBDatabase):
        * platform/leveldb/LevelDBTransaction.cpp:
        (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
        (WebCore::LevelDBTransaction::get):
        (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
        * platform/leveldb/LevelDBTransaction.h:
        (LevelDBTransaction):

2012-11-08  Brady Eidson  <beidson@apple.com>

        Have NetworkProcess do the actual loading of subresources.
        https://bugs.webkit.org/show_bug.cgi?id=101640

        Reviewed by Alexey Proskuryakov.

        No new tests (No change in behavior in any configuration we test.)

        * WebCore.exp.in:
        * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.

2012-11-08  Huang Dongsung  <luxtella@company100.net>

        Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
        https://bugs.webkit.org/show_bug.cgi?id=101424

        Reviewed by Noam Rosenthal.

        This patch adds ASSERT to TextureMapperLayer while fixing this bug in
        WebKit2.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::paintSelf):

2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133945.
        http://trac.webkit.org/changeset/133945
        https://bugs.webkit.org/show_bug.cgi?id=101645

        Numerous layout and unit test failures (Requested by
        jsbell|gardener on #webkit).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::toNative):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::toNative):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::toNative):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::toNative):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::toNative):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::toNative):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::toNative):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::toNative):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::toNative):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::V8TestNode::toNative):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::V8TestObj::toNative):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::toNative):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::v8ObjectToNPObject):
        (WebCore::npCreateV8ScriptObject):
        * bindings/v8/V8Collection.h:
        (WebCore::toNativeCollection):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::setIsolatedWorldField):
        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::isWrapperOfType):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setDOMWrapper):
        (WebCore::V8DOMWrapper::clearDOMWrapper):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore::toNative):
        (WebCore::toWrapperTypeInfo):

2012-11-01  Filip Pizlo  <fpizlo@apple.com>

        JSC should infer when indexed storage contains only integers or doubles
        https://bugs.webkit.org/show_bug.cgi?id=98606

        Reviewed by Oliver Hunt.

        Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.

        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
        (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
        * bindings/js/JSClipboardCustom.cpp:
        (WebCore::JSClipboard::types):
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::jsArray):
        * bindings/js/JSDOMBinding.h:
        (WebCore::jsArray):
        * bindings/js/JSInjectedScriptHostCustom.cpp:
        (WebCore::getJSListenerFunctions):
        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
        (WebCore::JSJavaScriptCallFrame::scopeChain):
        * bindings/js/JSMessageEventCustom.cpp:
        (WebCore::JSMessageEvent::ports):
        * bindings/js/JSMutationCallbackCustom.cpp:
        (WebCore::JSMutationCallback::handleEvent):
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        (WebCore::JSWebGLRenderingContext::getAttachedShaders):
        (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneDeserializer::deserialize):

2012-11-08  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 date input form.
        https://bugs.webkit.org/show_bug.cgi?id=101075

        Reviewed by Rob Buis.

        RIM PR 234531
        Internally Reviewed by Mike Fenton.
        Change date input appearance to button and hide caret when click on them.

        * css/themeBlackBerry.css:
        (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):

2012-11-08  Adam Barth  <abarth@webkit.org>

        [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
        https://bugs.webkit.org/show_bug.cgi?id=101519

        Reviewed by Ojan Vafai.

        There should be no change in behavior.  The new API is slightly faster
        than the old API (and apparently works correctly internally in V8).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::toNative):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::toNative):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::toNative):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::toNative):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::toNative):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::toNative):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::toNative):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::toNative):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::toNative):
        * bindings/scripts/test/V8/V8TestNode.h:
        (WebCore::V8TestNode::toNative):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::V8TestObj::toNative):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::toNative):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::v8ObjectToNPObject):
        (WebCore::npCreateV8ScriptObject):
        * bindings/v8/V8Collection.h:
        (WebCore::toNativeCollection):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::setIsolatedWorldField):
        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::isWrapperOfType):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setDOMWrapper):
        (WebCore::V8DOMWrapper::clearDOMWrapper):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore::toNative):
        (WebCore::toWrapperTypeInfo):

2012-11-08  Erik Arvidsson  <arv@chromium.org>

        setAttributeNode and friends should not have optional argument
        https://bugs.webkit.org/show_bug.cgi?id=101631

        Reviewed by Ojan Vafai.

        http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154

        Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
        argument mandatory.

        These used to throw DOMExceptions when an invalid type was passed instead of
        TypeError which is also a spec violation.

        Updated existing tests.

        * bindings/scripts/CodeGeneratorV8.pm:
        * dom/Element.cpp:
        * dom/Element.idl:

2012-11-08  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove unused error handling clauses when writing to transaction
        https://bugs.webkit.org/show_bug.cgi?id=100700

        Reviewed by Tony Chang.

        Transactions are written into in-memory data structures. This can only fail if allocation
        fails, so "success" results are always returned. Change the return types to void, and delete
        all of the unreachable error handling code.

        No new tests - just refactoring/dead code removal.

        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
        (WebCore::putBool): Only write to transactions.
        (WebCore):
        (WebCore::putInt): Ditto.
        (WebCore::putVarInt): Ditto.
        (WebCore::putString): Ditto.
        (WebCore::putIDBKeyPath): Ditto.
        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
        (WebCore::deleteRange): Writes only to transaction, so can't fail.
        (WebCore::setMaxObjectStoreId):
        (WebCore::IDBLevelDBBackingStore::createObjectStore):
        (WebCore::getNewVersionNumber):
        (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
        (WebCore::setMaxIndexId):
        (WebCore::IDBLevelDBBackingStore::createIndex):
        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
        * platform/leveldb/LevelDBTransaction.cpp:
        (WebCore::LevelDBTransaction::set): Return type is void.
        (WebCore::LevelDBTransaction::put): Ditto.
        (WebCore::LevelDBTransaction::remove): Ditto.
        * platform/leveldb/LevelDBTransaction.h:
        (LevelDBTransaction):

2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>

        On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
        hit assertion added in r133840
        https://bugs.webkit.org/show_bug.cgi?id=101576

        Reviewed by Abhishek Arya.

        Update layout before invalidating caret rect as needed.
        Existing tests cover this.

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
        * editing/FrameSelection.h:

2012-11-08  Elliott Sprehn  <esprehn@chromium.org>

        Skip frame owner disconnect when there's no frames
        https://bugs.webkit.org/show_bug.cgi?id=101619

        Reviewed by Ojan Vafai.

        Even when there's no subframes in the document we traverse down every
        subtree on Node removal looking for frames to disconnect. This patch
        checks document()->frame()->tree()->firstChild() to skip this traversal
        if there's no subframes.

        No new tests, this just short circuits code for speed.

        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):

2012-11-08  Erik Arvidsson  <arv@chromium.org>

        Wrong error type is thrown for type errors in callbacks
        https://bugs.webkit.org/show_bug.cgi?id=101502

        Reviewed by Adam Barth.

        We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.

        http://www.w3.org/TR/WebIDL/#es-callback-function

        Updated existing tests.

        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/V8/V8TestObj.cpp:

2012-11-08  Andreas Kling  <kling@webkit.org>

        4.68MB below RenderStyle::filter() on Membuster3.
        <http://webkit.org/b/101624>
        <rdar://problem/12663822>

        Reviewed by Darin Adler.

        Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
        from the rare non-inherited data (copy-on-write.)
        Most call sites were calling filter() on a RenderStyle* which was causing the bloat.

        4.68MB progression on Membuster3.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingSVGDocuments):
        (WebCore::StyleResolver::loadPendingShaders):
        * rendering/style/RenderStyle.h:

2012-11-08  Alexey Proskuryakov  <ap@apple.com>

        Create loader/blackberry directory, because svn-apply cannot apply a patch that
        creates a directory and moves a file into it.

        * loader/blackberry: Added.

2012-11-08  Geoffrey Garen  <ggaren@apple.com>

        Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.

        Not reviewed.

        * WebCore.xcodeproj/project.pbxproj:

2012-11-05  Geoffrey Garen  <ggaren@apple.com>

        Optimized kerning and ligatures using caching
        https://bugs.webkit.org/show_bug.cgi?id=101269

        Reviewed by Dan Bernstein.

        Consider three kinds of text layout, and the value of caching for each:

            (1) 1 layout of 100% unique words: small negative value.

            (2) 1 layout of English prose: medium positive value.

            (3) Many layouts of anything: extra-extra-large positive value.

        Since we can't distinguish betwen these workflows a priori, we use statistical
        sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
        each cache access as a statistical sample, and use the cache in proportion to
        the observed probability of duplicate text measurement.

        Benchmark results:
            plt3: 1% faster
            chapter-reflow-once-random: No change [*]
            chapter-reflow-once: 23% faster
            chapter-reflow-twice: 52% faster
            chapter-reflow-thrice: 68% faster
            chapter-reflow: 263% faster
            line-layout: 270% faster

            [*] This is a stress test designed to make everything go wrong for
            caching. It does not represent real world content.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/WidthCache.h: Added.

        (WidthCache): Added a class that caches common word widths. This cache
        could cache more things or more cases in future -- but for now it seems
        to cover the common cases.

        (SmallStringKey): Early profiling showed that allocating an AtomicString
        or String measurably added to the cost of the cache, so I added a custom
        string key that can be stored directly inside the table by value --
        empirically answering an age-old question with which Apple WebKit engineers
        seem to be obsessed.

        (WebCore::WidthCache::SmallStringKey::capacity):
        (WebCore::WidthCache::SmallStringKey::SmallStringKey):
        (WebCore::WidthCache::SmallStringKey::characters):
        (WebCore::WidthCache::SmallStringKey::length):
        (WebCore::WidthCache::SmallStringKey::hash):
        (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
        (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
        (WebCore::WidthCache::SmallStringKeyHash::hash):
        (WebCore::WidthCache::SmallStringKeyHash::equal):
        (SmallStringKeyHash):
        (SmallStringKeyHashTraits):
        (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.

        (WebCore::WidthCache::WidthCache):
        (WebCore::WidthCache::add): Separate out the "don't use the cache" case
        so the compiler can inline it separate, hopefully further reducing cases
        of (1).

        (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
        sampling policy here. Lots of different approaches are possible, and I
        just picked a simple one that seemed to work based on benchmarking. I'll
        point out some interesting sublteties I'm aware of here:

            (*) Since we start at the min sampling rate, a font used for 20 words
            or fewer never allocates a cache. Anecdotally, some fonts seem to
            be used this way.

            (*) When the sampling rate is x / y, sampling all x words in a row
            seems smart because some words may occur more commonly in relation to
            each other (such as 'each' and 'other'), and repeat workloads will
            lay out the same words in order. Intuitively, these are both reasons
            this policy may ramp up more effectively under load.

            (*) I opted for linear back-off instead of, say, exponential back-off
            because we're not trying to back off to infinity -- just to our min
            sampling rate. Since we don't expect the cache to hit for every word,
            my guess is that exponential back-off would be too aggressive.

            (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
            because it would be surprising to see a million unique words all used
            in the same document. (I would not like to play a Letterpress game
            against such a document.)

        (WebCore::WidthCache::clear): Needed because a font can change, in which
        case we need to ditch its cache.

        (WebCore::operator==): Needed for hashing.

2012-11-08  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: show statistics over selected frame range in Timeline's Frame mode
        https://bugs.webkit.org/show_bug.cgi?id=101593

        Reviewed by Pavel Feldman.

        - change status bar records counter wording to "N of M frames|records shown" depending on mode;
        - append average frame length and & stddev in frame mode;
        - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
        - show frame bars & dividers iff selection range includes < 30 frames (drive-by)

        * English.lproj/localizedStrings.js:
        * inspector/front-end/TimelineFrameController.js:
        (WebInspector.FrameStatistics):
        * inspector/front-end/TimelineModel.js:
        (WebInspector.TimelineModel.aggregateTimeByCategory):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype.get statusBarItems):
        (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
        (WebInspector.TimelinePanel.prototype._createStatusBarItems):
        (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
        (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
        (WebInspector.TimelinePanel.prototype._showFrameStatistics):
        (WebInspector.TimelinePanel.prototype._updateFrameBars):
        (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
        (WebInspector.TimelinePanel.prototype._overviewModeChanged):
        (WebInspector.TimelinePanel.prototype._refresh):
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.prototype.):
        (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
        (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
        (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
        * inspector/front-end/timelinePanel.css:
        (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
        (.timeline-records-stats):
        (.timeline-frames-stats):

2012-11-08  Jakob Petsovits  <jpetsovits@rim.com>

        [BlackBerry] Rework the API to use document coordinates
        https://bugs.webkit.org/show_bug.cgi?id=101608
        RIM PR 173292

        Reviewed by Adam Treat.

        Provide a better API for WebPage to relay.
        See Source/WebKit/blackberry/ChangeLog for details.

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::getWindowScreenRect):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
        (Platform):
        (BlackBerry):
        (MediaPlayerPrivate):

2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133892.
        http://trac.webkit.org/changeset/133892
        https://bugs.webkit.org/show_bug.cgi?id=101617

        Compile failures on mac, android, linux (Requested by
        jsbell|gardener on #webkit).

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.h:
        (WebCore::DOMWrapperWorld::domDataStore):
        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):

2012-11-08  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] UI iterations: image on the top, auto replay
        https://bugs.webkit.org/show_bug.cgi?id=101584

        Reviewed by Pavel Feldman.

        * inspector/front-end/CanvasProfileView.js:
        (WebInspector.CanvasProfileView):
        (WebInspector.CanvasProfileView.prototype._showTraceLog):
        (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
        * inspector/front-end/canvasProfiler.css:
        (.canvas-trace-log):
        (#canvas-replay-image-container):
        (#canvas-replay-image):

2012-11-08  Wei Fanzhe  <whyer1@gmail.com>

        While absolute positioning is put before the first flexitem, flexitems will move to a new line.
        https://bugs.webkit.org/show_bug.cgi?id=101294

        Reviewed by Ojan Vafai.

        This issue has to do with RenderFlexibleBox::computeNextFlexLine. When determing line breaks, the algorithm sees if 1) the total width exceeds lineBreakLength and 2) whether orderedChildren is non-empty.  But then, if the total width exceeds lineBreakLength and there's only absolutely positioned elemments in orderedChildren then the conditions are met and the algorithm mistakenly breaks the line. The solution is to see if orderedChildren collects at least a flex item. If it does, break the line.  

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::computeNextFlexLine):

2012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r133429.
        http://trac.webkit.org/changeset/133429
        https://bugs.webkit.org/show_bug.cgi?id=101173

        Speculative roll out, investigating perf regression.

        * dom/ContextFeatures.cpp:
        * dom/ContextFeatures.h:
        * dom/Position.cpp:
        (WebCore::Position::Position):
        (WebCore::Position::findParent):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::getSelection):
        * html/HTMLTagNames.in:
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::contentTagName):
        * page/DOMWindow.idl:

2012-11-07  Emil A Eklund  <eae@chromium.org>

        Fix enclosingLayoutRect calls in InlineFlowBox.h
        https://bugs.webkit.org/show_bug.cgi?id=101497

        Reviewed by Levi Weintraub.

        InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
        overrid enclosingLayoutRect to call closingIntRect. When we
        removed the LayoutTypes abstraction we switched these to
        enclosingIntRect to preserve the behavior.
        This patch changes these back to enclosingLayoutRect which is
        the desired behavior.

        Covered by existing tests.

        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::layoutOverflowRect):
        (WebCore::InlineFlowBox::visualOverflowRect):

2012-11-08  Philip Rogers  <pdr@google.com>

        Remove unnecessary save/restore in SVGTextRunRenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=101546

        Reviewed by Andreas Kling.

        This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
        refactoring the code to save off the stroke thickness.

        No new tests as this is heavily covered by existing tests.

        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):

2012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Clean up includes in GObject DOM bindings code
        https://bugs.webkit.org/show_bug.cgi?id=101077

        Reviewed by Kentaro Hara.

        Remove some headers included multiple times for the same file and
        fix consistency in the includes style.

        * bindings/gobject/DOMObjectCache.cpp:
        * bindings/gobject/GObjectEventListener.cpp:
        * bindings/gobject/GObjectEventListener.h:
        * bindings/gobject/WebKitDOMBinding.cpp:
        * bindings/gobject/WebKitDOMBinding.h:
        * bindings/gobject/WebKitDOMEventTarget.cpp:
        * bindings/gobject/WebKitDOMEventTarget.h:
        * bindings/gobject/WebKitDOMEventTargetPrivate.h:
        (WebKit):
        * bindings/gobject/WebKitDOMObject.cpp:
        * bindings/gobject/WebKitDOMObject.h:
        * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
        * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateHeader):
        (GenerateFunction):
        (Generate):
        (WriteData):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:

2012-11-08  Dan Carney  <dcarney@google.com>

        [V8] Main world should have one DOMDataStore
        https://bugs.webkit.org/show_bug.cgi?id=101470

        Reviewed by Kentaro Hara.

        The main world DOMWrapperWorld held onto a DOMDataStore that should
        never be used, as there is a static one optimized for speed in
        DOMDataStore.

        No new tests. No change in functionality.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMWrapperWorld.h:
        (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):

2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>

        [EFL] Remove non-variable options from the build system
        https://bugs.webkit.org/show_bug.cgi?id=101506

        Reviewed by Kenneth Rohde Christiansen.

        Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
        as these are always set to const 1 and not really configurable.

        Remove duplicate platform/graphics/cairo include path from
        PlatformEfl.cmake.

        No new tests as there is no new functionality.

        * PlatformEfl.cmake:

2012-11-08  KyungTae Kim  <ktf.kim@samsung.com>

        Unused parameters on GraphicsLayerUpdater.cpp
        https://bugs.webkit.org/show_bug.cgi?id=101577

        Reviewed by Kentaro Hara.

        The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
        Use UNUSED_PARAM macro for removing -Wunused-parameter warnings

        * platform/graphics/GraphicsLayerUpdater.cpp:
        (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
        (WebCore::GraphicsLayerUpdater::screenDidChange):

2012-11-08  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Add option to disable rulers (Elements panel)
        https://bugs.webkit.org/show_bug.cgi?id=101554

        Reviewed by Pavel Feldman.

        A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
        The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
        drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.

        No new tests, a UI change.

        * English.lproj/localizedStrings.js: Add "Show rulers" string.
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForHighlight): Copy over the showRulers value.
        * inspector/InspectorOverlay.h:
        (HighlightConfig): Add |bool showRulers|.
        (WebCore::Highlight::Highlight): Initialize fields.
        (Highlight): Add |bool showRulers|.
        (WebCore::Highlight::setDataFromConfig):
        * inspector/InspectorOverlayPage.html:
        * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
        * inspector/front-end/Settings.js: Add showMetricsRulers.
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.

2012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>

        Warn in the inspector console when using dpi and dpcm units outside of media="print"
        https://bugs.webkit.org/show_bug.cgi?id=100865

        Reviewed by Kenneth Rohde Christiansen.

        Added function that prints warning to inspector console whenever dpi or dpcm CSS units
        are used for screen media.

        Test: fast/media/mq-resolution-dpi-dpcm-warning.html

        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::setMediaQueries):
        * css/MediaList.cpp:
        (WebCore):
        (WebCore::addResolutionWarningMessageToConsole):
        (WebCore::reportMediaQueryWarningIfNeeded):
        * css/MediaList.h:
        (WebCore):
        * css/MediaQueryMatcher.cpp:
        (WebCore::MediaQueryMatcher::matchMedia):
        * css/StyleSheetContents.cpp:
        (WebCore::StyleSheetContents::parserAppendRule):

2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
        https://bugs.webkit.org/show_bug.cgi?id=101451

        Reviewed by Yury Semikhatsky.

        Solution: make console.time "title" parameter mandatory.

        * page/Console.idl: Changed parameter specification.

2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed fixed inspector frontend compilation

        * inspector/front-end/DataGrid.js:

2012-11-08  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurfaceGLX needs to query the drawable for YInversion.
        https://bugs.webkit.org/show_bug.cgi?id=101472

        After r133049 the WebGL content is now displayed upside down
        for the Qt port. We cannot just apply a generic rule, that
        the content needs to be flipped upside down.
        Instead we have to query GLX to tell us, if the drawable's
        framebuffer is y-inverted.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):

2012-11-08  Mike West  <mkwst@chromium.org>

        Warn when parsing an invalid X-Frame-Options header.
        https://bugs.webkit.org/show_bug.cgi?id=101447

        Reviewed by Adam Barth.

        An 'X-Frame-Options' header that contains an invalid option (that is,
        neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
        warning to notify developers that they've made a mistake.

        Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html

        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
            Move the request identifier generation out of the failure block in
            order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
            ensures that the console message is properly tied to a request.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
        * loader/FrameLoader.h:
        (FrameLoader):
            'shouldInterruptLoadForXFrameOptions' now accepts a request
            identifier as a parameter, and generates a console message if the
            load is blocked.
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
            Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.

2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: Improve time/timeEnd appearance.
        https://bugs.webkit.org/show_bug.cgi?id=100936

        Reviewed by Yury Semikhatsky.

        Changes:
        - time/timeEnd records should be top level records only in "glue" mode
        - time/timeEnd records should display "message" in record list / popover
        - glued records add aggregated statistics to root record
        - glued records do not reduce their origin self time

        Test: inspector/timeline/timeline-time.html

        * English.lproj/localizedStrings.js: Added "Message" string.
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.Record): Added "origin" field.

2012-11-08  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
        https://bugs.webkit.org/show_bug.cgi?id=101463

        Reviewed by Vsevolod Vlasov.

        Moved Web Inspector methods called from native code to InspectorFrontendAPI.

        * inspector/InspectorClient.cpp:
        (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::FrontendMenuProvider::create):
        (WebCore::FrontendMenuProvider::disconnect):
        (WebCore::FrontendMenuProvider::FrontendMenuProvider):
        (WebCore::FrontendMenuProvider::contextMenuItemSelected):
        (WebCore::FrontendMenuProvider::contextMenuCleared):
        (FrontendMenuProvider):
        (WebCore::InspectorFrontendHost::showContextMenu):
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.loadCompleted):
        (InspectorFrontendAPI.contextMenuItemSelected):
        (InspectorFrontendAPI.contextMenuCleared):
        (InspectorFrontendAPI.dispatchMessageAsync):
        (InspectorFrontendAPI.dispatchMessage):
        * inspector/front-end/inspector.js:

2012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        User can change a disabled select (drop down box)
        https://bugs.webkit.org/show_bug.cgi?id=100932

        Reviewed by Kent Tamura.

        <select> should not handle events if it's disabled.

        Test: fast/forms/select/select-disabled.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::defaultEventHandler):

2012-11-08  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Rename methods and remove dead code from IDBBackingStore
        https://bugs.webkit.org/show_bug.cgi?id=101488

        Reviewed by Ojan Vafai.

        In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:

        1) rename ObjectStoreRecordIdentifier to RecordIdentifier
        2) remove IDBBackingStore::forEachRecord and friends
        3) remove IDBBackingStore::Cursor::close, since it was an empty method.

        No new tests as this is purely code cleanup.

        * Modules/indexeddb/IDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::getRecord):
        (WebCore):
        (WebCore::IDBLevelDBBackingStore::putRecord):
        (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
        (WebCore::IDBLevelDBBackingStore::deleteRecord):
        (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
        (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
        (IDBBackingStore):
        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::close):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::countInternal):
        (WebCore::IDBIndexBackendImpl::getInternal):
        (WebCore::IDBIndexBackendImpl::getKeyInternal):
        * Modules/indexeddb/IDBLevelDBBackingStore.h:
        (IDBLevelDBBackingStore):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::getInternal):
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        (WebCore::IDBObjectStoreBackendImpl::countInternal):

2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: console error after inspecting IndexedDB
        https://bugs.webkit.org/show_bug.cgi?id=101481

        Reviewed by Pavel Feldman.

        Added objectId nullity check to RemoteOBject::release.
        Drive-by added release for entry key and primaryKey.

        * inspector/front-end/IndexedDBViews.js:
        (WebInspector.IDBDataView.prototype.clear):
        * inspector/front-end/RemoteObject.js:
        (WebInspector.RemoteObject.prototype.release):

2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Migrate inspector IndexedDB support to frontend API.
        https://bugs.webkit.org/show_bug.cgi?id=101457

        Reviewed by Pavel Feldman.

        Migrated IndexedDB support to web facing IndexedDB API.

        * inspector/Inspector.json:
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):
        (WebCore::assertIDBFactory):
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
        (WebCore::InspectorIndexedDBAgent::requestDatabase):
        (WebCore::InspectorIndexedDBAgent::requestData):
        * inspector/front-end/IndexedDBModel.js:
        (WebInspector.IndexedDBModel.prototype.innerCallback):
        (WebInspector.IndexedDBModel.prototype._requestData):
        * inspector/front-end/IndexedDBViews.js:
        (WebInspector.IDBDataView.prototype._updateData.callback):
        (WebInspector.IDBDataView.prototype._updateData):
        (WebInspector.IDBDataGridNode):
        (WebInspector.IDBDataGridNode.prototype.createCell):

2012-08-20  Taiju Tsuiki  <tzik@chromium.org>

        Web Inspector: Drop dimmed crumb handling
        https://bugs.webkit.org/show_bug.cgi?id=94457

        Reviewed by Vsevolod Vlasov.

        No new tests. Existing inspector test should work.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
        (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
        * inspector/front-end/breadcrumbList.css:

2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Infinite loop in DataGrid::autoSizeColumn
        https://bugs.webkit.org/show_bug.cgi?id=101363

        Reviewed by Pavel Feldman.

        Test: inspector/datagrid-autosize.html

        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype._autoSizeWidths):
        (WebInspector.DataGrid.prototype.autoSizeColumns):

2012-11-07  Keishi Hattori  <keishi@webkit.org>

        Implement week picking to calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=101449

        Reviewed by Kent Tamura.

        This adds week picker mode to CalendarPicker.

        No new tests. Tests will be added later when this feature is enabled in DRT.

        * Resources/pagepopups/calendarPicker.css:
        (.month-mode .day):
        (.week-mode .available.day-selected.monday): Rounded corners around week selection.
        (.week-mode .available.day-selected.sunday): Ditto.
        (.week-mode .unavailable.day-selected):
        (.week-mode .unavailable.day-selected.monday):
        (.week-mode .unavailable.day-selected.sunday):
        (.week-mode .week-column.unavailable.day-selected):
        (.week-column): Hide week column unless in week mode.
        (.week-mode .week-column):
        * Resources/pagepopups/calendarPicker.js:
        (parseDateString): Support week string.
        (Week):
        (Week.parse): Parses "yyyy-Www" string.
        (Week.createFromDate): Creates Week containing datetime.
        (Week.createFromToday): Creates Week containing today.
        (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
        (Week.numberOfWeeksInYear): Returns the number of weeks in year.
        (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
        (Week.prototype.equals): Returns true if the Weeks are the same.
        (Week.prototype.previous): Returns the previous Week.
        (Week.prototype.next): Returns the next Week.
        (Week.prototype.startDate): Returns start datetime of Week.
        (Week.prototype.endDate): Returns end datetime of Week.
        (Week.prototype.valueOf): Returns the milliseconds since epoch.
        (Week.prototype.toString): Returns ISO week string.
        (CalendarPicker): Add week picker mode.
        (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
        (YearMonthController.prototype.attachTo): Fix bug.
        (YearMonthController.prototype.moveRelatively): Use new showMonth.
        (DaysTable.prototype.attachTo): Add week number column.
        (DaysTable.prototype._renderMonth): Render week numbers.
        (DaysTable.prototype.navigateToMonth): Render week numbers.
        (DaysTable.prototype.selectRange):
        (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
        (DaysTable.prototype._maybeSetPreviousMonth):
        (DaysTable.prototype._maybeSetNextMonth):
        (MonthPickerDaysTable.prototype.selectRange):
        (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
        (MonthPickerDaysTable.prototype._handleKey):
        (WeekPickerDaysTable): Added.
        (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
        (WeekPickerDaysTable.prototype.selectRange): Selects week.
        (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
        (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
        (WeekPickerDaysTable.prototype._handleKey):

2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133841.
        http://trac.webkit.org/changeset/133841
        https://bugs.webkit.org/show_bug.cgi?id=101542

        Reverted patches were innocent (Requested by shinyak on
        #webkit).

        * WebCore.exp.in:
        * dom/Element.cpp:
        (WebCore::Element::shadowPseudoId):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.cpp:
        (WebCore::ElementRareData::reportMemoryUsage):
        * dom/ElementRareData.h:
        (ElementRareData):
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::createShadowSubtree):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::createShadowSubtree):
        (WebCore::TextFieldInputType::updatePlaceholderText):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::buildBubbleTree):
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitLiteral):
        (WebCore::DateTimeEditElement::DateTimeEditElement):
        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::initialize):
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement):
        * html/shadow/PickerIndicatorElement.cpp:
        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCueBox::TextTrackCueBox):
        (WebCore::TextTrackCue::updateDisplayTree):
        * testing/Internals.cpp:
        (WebCore::Internals::setShadowPseudoId):

2012-11-07  Simon Fraser  <simon.fraser@apple.com>

        Fix EFL build, which has accelerated compositing disabled, by making
        repaintViewRectangle() const.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintViewRectangle):
        * rendering/RenderView.h:
        (RenderView):

2012-11-07  Simon Fraser  <simon.fraser@apple.com>

        constify ALL the repaint containers
        https://bugs.webkit.org/show_bug.cgi?id=101541

        Reviewed by Beth Dakin.

        Make all the RenderLayerModelObject* repaintContainer arguments const, since
        these member functions should have no need to mutate this object.

        * WebCore.exp.in:
        * rendering/RenderBR.h:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::selectionGapRectsForRepaint):
        (WebCore::RenderBlock::rectWithOutlineForRepaint):
        * rendering/RenderBlock.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::outlineBoundsForRepaint):
        (WebCore::RenderBox::mapLocalToContainer):
        (WebCore::RenderBox::clippedOverflowRectForRepaint):
        (WebCore::RenderBox::computeRectForRepaint):
        * rendering/RenderBox.h:
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
        * rendering/RenderFlowThread.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::clippedOverflowRectForRepaint):
        (WebCore::RenderInline::rectWithOutlineForRepaint):
        (WebCore::RenderInline::computeRectForRepaint):
        (WebCore::RenderInline::mapLocalToContainer):
        * rendering/RenderInline.h:
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::selectionRectForRepaint):
        * rendering/RenderListMarker.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::repaintUsingContainer):
        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
        (WebCore::RenderObject::rectWithOutlineForRepaint):
        (WebCore::RenderObject::clippedOverflowRectForRepaint):
        (WebCore::RenderObject::computeRectForRepaint):
        (WebCore::RenderObject::computeFloatRectForRepaint):
        (WebCore::RenderObject::mapLocalToContainer):
        (WebCore::RenderObject::localToContainerQuad):
        (WebCore::RenderObject::localToContainerPoint):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::selectionRectForRepaint):
        (WebCore::RenderObject::outlineBoundsForRepaint):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::selectionRectForRepaint):
        (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
        * rendering/RenderReplaced.h:
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
        (WebCore::RenderTableCell::computeRectForRepaint):
        * rendering/RenderTableCell.h:
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
        * rendering/RenderTableCol.h:
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
        * rendering/RenderTableRow.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::clippedOverflowRectForRepaint):
        (WebCore::RenderText::selectionRectForRepaint):
        * rendering/RenderText.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::mapLocalToContainer):
        (WebCore::RenderView::computeRectForRepaint):
        * rendering/RenderView.h:
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
        * rendering/svg/RenderSVGForeignObject.h:
        * rendering/svg/RenderSVGGradientStop.h:
        * rendering/svg/RenderSVGHiddenContainer.h:
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGInline::computeFloatRectForRepaint):
        (WebCore::RenderSVGInline::mapLocalToContainer):
        * rendering/svg/RenderSVGInline.h:
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
        (WebCore::RenderSVGModelObject::mapLocalToContainer):
        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
        * rendering/svg/RenderSVGModelObject.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
        (WebCore::RenderSVGRoot::mapLocalToContainer):
        * rendering/svg/RenderSVGRoot.h:
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGText::computeRectForRepaint):
        (WebCore::RenderSVGText::computeFloatRectForRepaint):
        (WebCore::RenderSVGText::mapLocalToContainer):
        * rendering/svg/RenderSVGText.h:
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
        (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
        (WebCore::SVGRenderSupport::mapLocalToContainer):
        * rendering/svg/SVGRenderSupport.h:
        (SVGRenderSupport):

2012-11-07  Kent Tamura  <tkent@chromium.org>

        [Chromium-win] Refactor date/time format conversion code in LocaleWin
        https://bugs.webkit.org/show_bug.cgi?id=101329

        Reviewed by Kentaro Hara.

        convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
        similar jobs with different code. We can merge them into one function.

        As for the date format conversion, we have tokenized a format string and
        stored token objects into a vector. We skip token object generation and
        generate a LDML-compliant pattern string during parsing.

        No new tests. This should make no behavior changes and
        WebKit/chromium/tests/LocaleWinTest.cpp has test cases.

        * platform/text/win/LocaleWin.cpp:
        (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
        convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
        convertWindowsTimeFormatToLDML.
        (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
        (WebCore::convertWindowsDateTimeFormat):
        Renamed from parseDateFormat, and supports time format symbols.
        (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
        (WebCore::LocaleWin::monthFormat): Ditto.
        (WebCore::LocaleWin::timeFormat): Ditto.
        (WebCore::LocaleWin::shortTimeFormat): Ditto.
        * platform/text/win/LocaleWin.h:
        (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.

2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>

        Unreviewed, rolling out r133428 and r133749
        https://bugs.webkit.org/show_bug.cgi?id=101533

        These patches might cause memory regression.

        * WebCore.exp.in:
        * dom/Element.cpp:
        (WebCore::Element::shadowPseudoId):
        (WebCore):
        (WebCore::Element::setShadowPseudoId):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.cpp:
        (WebCore::ElementRareData::reportMemoryUsage):
        * dom/ElementRareData.h:
        (ElementRareData):
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::createShadowSubtree):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::createShadowSubtree):
        (WebCore::TextFieldInputType::updatePlaceholderText):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::buildBubbleTree):
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitLiteral):
        (WebCore::DateTimeEditElement::DateTimeEditElement):
        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::initialize):
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement):
        * html/shadow/PickerIndicatorElement.cpp:
        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCueBox::TextTrackCueBox):
        (WebCore::TextTrackCue::updateDisplayTree):
        * testing/Internals.cpp:
        (WebCore::Internals::setShadowPseudoId):

2012-11-07  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in WebCore::RenderLayer::normalFlowList
        https://bugs.webkit.org/show_bug.cgi?id=101528

        Reviewed by Simon Fraser.

        Make sure the layout is up to date before re-computing the caret rect.
        Avoid doing the layout when the selection is cleared since we can always stop
        the blink timer in that case.

        Unfortunately, we haven't found any reproduction of this crash yet.

        * editing/FrameSelection.cpp:
        (WebCore::isNonOrphanedCaret):
        (WebCore::FrameSelection::localCaretRect):
        (WebCore::FrameSelection::updateAppearance):

2012-11-07  Adam Barth  <abarth@webkit.org>

        [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
        https://bugs.webkit.org/show_bug.cgi?id=101110

        Reviewed by Kentaro Hara.

        Hopefully the memory issues with this patch have been resolved by
        fixing bug 101525. This patch re-lands this patch again, hopefully for
        the last time.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::weakCallback):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::wrapperIsStoredInObject):
        (WebCore::DOMDataStore::getWrapperFromObject):
        (WebCore::DOMDataStore::setWrapperInObject):

2012-11-07  KyungTae Kim  <ktf.kim@samsung.com>

        Seam occurred between pieces of ShadowBlur on floating point zoom
        https://bugs.webkit.org/show_bug.cgi?id=101435

        Reviewed by Simon Fraser.

        When paint Shadow that doesn't have blurred edge on floating point zoom,
        pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
        So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
        even if the unaligned clip rect occurred.


        * platform/graphics/ShadowBlur.cpp:
        (WebCore::ShadowBlur::calculateLayerBoundingRect):

2012-11-07  Tim Horton  <timothy_horton@apple.com>

        Repaint issues with -webkit-svg-shadow used on a container
        https://bugs.webkit.org/show_bug.cgi?id=65643
        <rdar://problem/7600532>

        Reviewed by Simon Fraser.

        SVG renderer repaint rects are currently expanded only by the shadow of
        the renderer itself; however, the area they need to repaint can be larger
        than that, if their parents also have shadows. We need to take into account
        parent's shadows (respecting transforms, as well).

        clippedOverflowRectForRepaint already recurses upwards through the render tree,
        and ends up with a rect in layout coordinates, so we manually apply the shadow
        at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
        us to get the raw repaint rect without the shadow baked-in).

        repaintRectInLocalCoordinates now includes shadows from all parents.

        Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
        shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
        We can just swap the order of these things to correct this.

        Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addChild): Mark the child being added as having an SVG shadow if it is being added as a child of an element that does.
        (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
        * rendering/svg/RenderSVGImage.h:
        (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
        * rendering/svg/RenderSVGModelObject.h:
        (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
        (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
        (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::RenderSVGRoot):
        (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
        (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
        * rendering/svg/RenderSVGRoot.h:
        (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
        (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
        (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
        * rendering/svg/RenderSVGShape.h:
        (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
        (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
        (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
        (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
        (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
        transforming the repaint rect back into local coordinates.
        (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
        * rendering/svg/SVGRenderSupport.h:

2012-11-07  Anders Carlsson  <andersca@apple.com>

        Add RemoteGraphicsLayer class
        https://bugs.webkit.org/show_bug.cgi?id=101535

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        Export GraphicsLayer symbols required by WebKit2.

        * WebCore.xcodeproj/project.pbxproj:
        Make GraphicsLayerFactory.h a private header.

2012-11-07  Adam Barth  <abarth@webkit.org>

        [V8] Don't leak <img> elements in content scripts
        https://bugs.webkit.org/show_bug.cgi?id=101525

        Reviewed by Ojan Vafai.

        I found the leak that was causing a problem for bug 101110. We weren't
        filling in the derefObjectFunction for HTMLImageElements (and
        potentially some other types of elements). That manifests today as a
        memory leak in content scripts (which use the derefObjectFunction for
        nodes) and caused a memory leak after bug 101110 because we started
        using the derefObjectFunction in the main world as well.

        This patch adds ASSERTs so that we won't make this mistake in the future.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNamedConstructorCallback):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::weakCallback):
        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperMap::defaultWeakCallback):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore):

2012-11-07  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
        https://bugs.webkit.org/show_bug.cgi?id=101486

        Reviewed by Ojan Vafai.

        Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
        preparation for merging these classes. This will make the merge
        diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
        for the final goal.

        No new tests, this is is just a rename and minor style fix.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:

2012-11-07  Adam Barth  <abarth@webkit.org>

        [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
        https://bugs.webkit.org/show_bug.cgi?id=101523

        Unreviewed. Technically this patch hasn't been reviewed, but it is part
        of a patch that was reviewed by Kentaro Hara.

        Sadly, my patch for bug 101110 triggered the regression again. This
        patch is a smaller incremental step towards the patch in bug 101110. It
        doesn't make that much sense on its own, but it will help me isolate
        the source of the regression.

        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::get):
        (DOMDataStore):
        (WebCore::DOMDataStore::set):
        (WebCore::DOMDataStore::wrapperIsStoredInObject):
        (WebCore::DOMDataStore::getWrapperFromObject):
        (WebCore::DOMDataStore::setWrapperInObject):

2012-11-05  Ryosuke Niwa  <rniwa@webkit.org>

        SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
        https://bugs.webkit.org/show_bug.cgi?id=101144

        Reviewed by Enrica Casucci.

        The bug was caused by attach() happening between each node removal. Since the command was trying
        to remove millions of node in some cases, attach()ing render objects for each node being reinserted
        imposed a huge runtime cost.

        Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
        Also remove all ancestors at once when they are direct child/parent of each other so that we don't
        remove an ancestor and then insert its child back only to remove it again in the next iteration.

        No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
        this specific case is not the worth the increase in the bot cycle time. I'll note that the email
        attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
        7 seconds to open on my MacPro.

        * editing/AppendNodeCommand.cpp:
        (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
        without calling isContentEditable or not.
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
        object.
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
        (WebCore::CompositeEditCommand::removeNode): Ditto.
        (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
        * editing/CompositeEditCommand.h:
        (CompositeEditCommand):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
        editable without calling isContentEditable or not.
        * editing/DeleteSelectionCommand.h:
        (DeleteSelectionCommand):
        * editing/EditCommand.h:
        * editing/InsertIntoTextNodeCommand.cpp:
        (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
        we need to have render objects for echoing.
        * editing/InsertNodeBeforeCommand.cpp:
        (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
        (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
        (WebCore::InsertNodeBeforeCommand::doUnapply):
        * editing/InsertNodeBeforeCommand.h:
        (WebCore::InsertNodeBeforeCommand::create):
        (InsertNodeBeforeCommand):
        * editing/RemoveNodeCommand.cpp:
        (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
        (WebCore::RemoveNodeCommand::doApply):
        * editing/RemoveNodeCommand.h:
        (WebCore::RemoveNodeCommand::create):
        (RemoveNodeCommand):
        * editing/RemoveNodePreservingChildrenCommand.cpp:
        (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
        (WebCore::RemoveNodePreservingChildrenCommand::doApply):
        * editing/RemoveNodePreservingChildrenCommand.h:
        (WebCore::RemoveNodePreservingChildrenCommand::create):
        (RemoveNodePreservingChildrenCommand):
        * editing/SimplifyMarkupCommand.cpp:
        (WebCore::SimplifyMarkupCommand::doApply):
        (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
        ancestors.
        * editing/SimplifyMarkupCommand.h:
        (SimplifyMarkupCommand):

2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133810.
        http://trac.webkit.org/changeset/133810
        https://bugs.webkit.org/show_bug.cgi?id=101520

        This patch made ws_single_peak_r regress by 15% (Requested by
        abarth on #webkit).

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::weakCallback):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::get):
        (WebCore::DOMDataStore::set):
        (DOMDataStore):

2012-11-07  Elliott Sprehn  <esprehn@chromium.org>

        Clean up confused use of Document::renderer and renderView
        https://bugs.webkit.org/show_bug.cgi?id=101484

        Reviewed by Ojan Vafai.

        Document::renderer and Document::renderView are the same thing, but it seems
        people don't always realize it and check if document()->renderer() is a RenderView.

        This patch cleans up usage of document()->renderer() and document()->renderView() and
        simplifies the code that was written without realizing they were the same thing.

        No new tests, this is just a refactor.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
        * dom/Element.cpp:
        (WebCore::Element::screenRect):
        (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
        * editing/FrameSelection.cpp: Remove verbose casts.
        (WebCore::clearRenderViewSelection):
        (WebCore::FrameSelection::recomputeCaretRect):
        (WebCore::CaretBase::invalidateCaretRect):
        (WebCore::FrameSelection::focusedOrActiveStateChanged):
        * page/Frame.cpp:
        (WebCore::Frame::contentRenderer): Vastly simplified.
        * page/PrintContext.cpp: Remove verbose casts.
        (WebCore::PrintContext::computePageRects):
        (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
        * page/wince/FrameWinCE.cpp:
        (WebCore::computePageRectsForFrame): Remove unreachable code.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.

2012-11-07  Adam Barth  <abarth@webkit.org>

        [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
        https://bugs.webkit.org/show_bug.cgi?id=101110

        Reviewed by Kentaro Hara.

        This patch generalizes our support for storing wrappers in DOM objects
        to be usable for more than just nodes. After this patch, any object
        with a ScriptWrappable base class will have its wrapper stored inline
        in the object in the main world.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::weakCallback):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::get):
        (WebCore::DOMDataStore::set):

2012-11-07  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 236997
        Internally Reviewed by Jakob Petsovits.

        Set font family to fix DRT test fast/forms/input-type-text-min-width.html

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::defaultGUIFont):
        (WebCore):
        (WebCore::RenderThemeBlackBerry::systemFont):

2012-11-07  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=101303
        Fixed position elements that are out of view still end up forcing 
        non-threaded scrolling
        -and corresponding-
        <rdar://problem/12642222>

        Reviewed by Simon Fraser.

        Re-name hasNonLayerFixedObjects() to 
        hasVisibleSlowRepaintFixedObjects() and make it virtual. 
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
        (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):

        Override hasVisibleSlowRepaintFixedObjects() to always return false. 
        We don't want to bother with the extra computation in the 
        ScrollingCoordinator implementation, though other ports might still 
        want it.
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
        (ScrollingCoordinatorMac):

        Make this function const so that we can call it from 
        requiresCompositingForPosition().
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds):

        Actually be thorough here and check if the fixed object has any 
        descendants that are visible in the view. If it does, then we do 
        want to composite the fixed object.
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        * rendering/RenderLayerCompositor.h:

2012-11-07  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Style fix following r133262.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::clearMediaPlayer):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):

2012-11-07  Adam Barth  <abarth@webkit.org>

        [V8] DOMWrapperMap doesn't need to use virtual functions
        https://bugs.webkit.org/show_bug.cgi?id=101494

        Reviewed by Kentaro Hara.

        DOMWrapperMap has only one subclass. There's no reason to use virtual functions.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperMap::DOMWrapperMap):
        (WebCore::DOMWrapperMap::get):
        (WebCore::DOMWrapperMap::set):
        (WebCore::DOMWrapperMap::clear):
        (WebCore::DOMWrapperMap::reportMemoryUsage):
        (WebCore::DOMWrapperMap::remove):
        (WebCore::DOMWrapperMap::defaultWeakCallback):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::staticNPObjectMap):

2012-11-07  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
        https://bugs.webkit.org/show_bug.cgi?id=101071

        Reviewed by Dean Jackson.

        I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
        used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
        will directly get the compiled shader in the constructor. The callers that still want to avoid 
        compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
        at a later time, before painting.

        No new tests, the change is covered by the css3/filters/custom/ tests.

        * platform/graphics/filters/CustomFilterConstants.h:
        * platform/graphics/filters/CustomFilterProgramInfo.h:
        * platform/graphics/filters/CustomFilterRenderer.cpp:
        (WebCore::CustomFilterRenderer::create):
        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
        (WebCore::CustomFilterRenderer::premultipliedAlpha):
        (WebCore::CustomFilterRenderer::setCompiledProgram):
        (WebCore):
        (WebCore::CustomFilterRenderer::prepareForDrawing):
        (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
        * platform/graphics/filters/CustomFilterRenderer.h:
        (WebCore):
        (CustomFilterRenderer):
        (WebCore::CustomFilterRenderer::compiledProgram):
        * platform/graphics/filters/FECustomFilter.cpp:
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::prepareForDrawing):
        * platform/graphics/filters/FECustomFilter.h:
        (FECustomFilter):

2012-11-07  Adam Barth  <abarth@webkit.org>

        [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
        https://bugs.webkit.org/show_bug.cgi?id=101493

        Reviewed by Kentaro Hara.

        This patch is another incremental step towards landing the patch in bug
        101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
        longer needed.

        * WebCore.gypi:
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::~DOMDataStore):
        (WebCore::DOMDataStore::reportMemoryUsage):
        (WebCore::DOMDataStore::weakCallback):
        (WebCore):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::get):
        (WebCore::DOMDataStore::set):
        (DOMDataStore):
        * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
        * bindings/v8/V8GCController.cpp:

2012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>

        [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
        https://bugs.webkit.org/show_bug.cgi?id=101475

        Reviewed by Kenneth Rohde Christiansen.

        Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
        using XFree to avoid memory leaks.

        No tests. No change in behavior.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):

2012-11-07  Fady Samuel  <fsamuel@chromium.org>

        Autoresize should work even if turned on while the page is loading.
        https://bugs.webkit.org/show_bug.cgi?id=101380

        Reviewed by David Levin.

        Autoresize does not work in cases where it is turned on while loading.
        This patch addresses this by allowing autoSize to complete if it's turned on
        while loading and doing a final pass after loading.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkCompleted):
        Adjust to call renamed function.
        * page/FrameView.cpp:
        (WebCore::FrameView::handleLoadCompleted):
        Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
        (WebCore::FrameView::autoSizeIfEnabled):
        Allow the size to shrink if autosize is adjusted while the page is loading.
        * page/FrameView.h:
        (FrameView):
        Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'

2012-11-07  Philip Rogers  <pdr@google.com>

        Skip SVG repaint tracking when parent container transforms
        https://bugs.webkit.org/show_bug.cgi?id=101177

        Reviewed by Eric Seidel.

        This patch skips child repaint rect checks when a parent container is transformed, leading
        to a 75% increase on the RoboHornet SVG benchmark:
            http://www.robohornet.org/#et=svg  (average of 2 runs)
            Before patch: 161.6ms
            After patch: 38.5ms

        SVG transforms are relative to the local container which makes calculating an absolute
        repaint rect expensive because it requires multiplying the local repaint rect by each
        parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
        as an example of this calculation.

        This patch takes advantage of SVG's container rules: when a parent container's transform
        changes, all children must be repainted (there is no absolute positioning in SVG).
        SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
        the parent transform changed before doing child repaint checks. A similar optimization is
        used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
        is done when the view is fully repainted.

        This code is tested in existing tests.

        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::layout):
        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout):
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::layout):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::layout):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
        (WebCore):
        * rendering/svg/SVGRenderSupport.h:
        (SVGRenderSupport):

2012-11-07  Chris Fleizach  <cfleizach@apple.com>

        AX: Textfields don't get focus when navigated to from 'show all tabs' button
        https://bugs.webkit.org/show_bug.cgi?id=101369

        Reviewed by Darin Adler.

        When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
        returns (through tab, or mouse click), then focus will be cleared and restored.

        However, when focus is returned through accessibility means, focus is not cleared first, which
        means subsequent focus actions do nothing.

        This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.

        Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
        moving focus back to the webpage.
      
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::setFocused):

2012-11-07  Adam Barth  <abarth@webkit.org>

        [V8] We should hide the DOMWrapperMaps inside DOMDataStore
        https://bugs.webkit.org/show_bug.cgi?id=101430

        Reviewed by Kentaro Hara.

        This is yet another incremental step towards landing the patch in bug
        101110. In this patch, we hide the existence of DOMWrapperMaps inside
        DOMDataStore. In the process, we can remove V8DOMMap.cpp.

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::set):
        * bindings/v8/DOMWrapperWorld.h:
        * bindings/v8/ScriptProfiler.cpp:
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::neuterBinding):
        * bindings/v8/V8DOMMap.cpp: Removed.
        * bindings/v8/V8DOMMap.h: Removed.
        * bindings/v8/V8DOMWindowShell.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):
        (WebCore::V8DOMWrapper::setWrapperClass):
        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
        * bindings/v8/V8NPObject.cpp:
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        * bindings/v8/WorkerScriptController.cpp:

2012-11-07  Varun Jain  <varunjain@chromium.org>

        Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
        https://bugs.webkit.org/show_bug.cgi?id=101385

        Reviewed by Adam Barth.

        Test: Only creating the new enum. No functionality change, hence no tests required.

        * platform/PlatformEvent.h:

2012-11-05  Emil A Eklund  <eae@chromium.org>

        Remove LayoutTypes abstraction
        https://bugs.webkit.org/show_bug.cgi?id=93050

        Reviewed by Levi Weintraub.

        Remove LayoutTypes abstraction and rename FractionalLayout* to
        Layout* now that all platforms use the FractionalLayout version
        (albeit with different fractions).

        No new tests, no change in functionality.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/AccessibilityNodeObject.cpp:
        * accessibility/AccessibilityNodeObject.h:
        * accessibility/AccessibilityObject.h:
        * accessibility/AccessibilityRenderObject.h:
        * css/LengthFunctions.cpp:
        * css/LengthFunctions.h:
        * dom/Document.h:
        * dom/DocumentMarkerController.h:
        * dom/ElementRareData.h:
        * dom/MouseRelatedEvent.h:
        * dom/Node.h:
        * dom/Touch.h:
        * editing/FrameSelection.cpp:
        * editing/FrameSelection.h:
        * editing/RenderedPosition.h:
        * html/HTMLAreaElement.h:
        * inspector/InspectorOverlay.h:
        * inspector/InspectorTimelineAgent.h:
        * inspector/TimelineRecordFactory.cpp:
        * inspector/TimelineRecordFactory.h:
        * loader/cache/CachedImage.h:
        * page/FocusController.h:
        * page/FrameView.h:
        * page/Page.h:
        * page/SpatialNavigation.cpp:
        * page/SpatialNavigation.h:
        * platform/FractionalLayoutUnit.h: Removed.
        * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
        * platform/Length.h:
        * platform/PopupMenuClient.h:
        * platform/animation/AnimationUtilities.h:
        * platform/graphics/FloatPoint.cpp:
        * platform/graphics/FloatPoint.h:
        * platform/graphics/FloatRect.cpp:
        * platform/graphics/FloatRect.h:
        * platform/graphics/FloatSize.cpp:
        * platform/graphics/FloatSize.h:
        * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
        * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
        * platform/graphics/FractionalLayoutPoint.h: Removed.
        * platform/graphics/FractionalLayoutRect.cpp: Removed.
        * platform/graphics/FractionalLayoutRect.h: Removed.
        * platform/graphics/FractionalLayoutSize.h: Removed.
        * platform/graphics/GraphicsLayer.cpp:
        * platform/graphics/GraphicsLayerAnimation.cpp:
        * platform/graphics/IntRect.cpp:
        * platform/graphics/IntRect.h:
        * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
        * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
        * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
        * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
        * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
        * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/filters/CustomFilterOperation.h:
        * platform/graphics/filters/CustomFilterParameterList.h:
        * platform/graphics/filters/FilterOperation.h:
        * platform/graphics/filters/FilterOperations.h:
        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
        * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
        * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
        * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
        * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
        * platform/graphics/qt/LayoutRectQt.cpp: Added.
        * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
        * platform/graphics/transforms/TransformOperations.h:
        * platform/graphics/transforms/TransformState.h:
        * platform/graphics/transforms/TransformationMatrix.cpp:
        * platform/graphics/transforms/TransformationMatrix.h:
        * rendering/AutoTableLayout.h:
        * rendering/ColumnInfo.h:
        * rendering/ExclusionShapeInsideInfo.h:
        * rendering/FilterEffectRenderer.h:
        * rendering/FixedTableLayout.h:
        * rendering/GapRects.h:
        * rendering/HitTestResult.h:
        * rendering/HitTestingTransformState.cpp:
        * rendering/HitTestingTransformState.h:
        * rendering/InlineFlowBox.cpp:
        * rendering/LayoutRepainter.cpp:
        * rendering/LayoutRepainter.h:
        * rendering/LayoutState.h:
        * rendering/LayoutTypes.h:
        * rendering/LayoutTypesInlineMethods.h:
        * rendering/PaintInfo.h:
        * rendering/RenderBlock.cpp:
        * rendering/RenderBlock.h:
        * rendering/RenderBlockLineLayout.cpp:
        * rendering/RenderBox.cpp:
        * rendering/RenderBox.h:
        * rendering/RenderBoxModelObject.cpp:
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        * rendering/RenderFieldset.cpp:
        * rendering/RenderFlexibleBox.cpp:
        * rendering/RenderFlowThread.cpp:
        * rendering/RenderGeometryMap.h:
        * rendering/RenderImageResource.h:
        * rendering/RenderInline.cpp:
        * rendering/RenderLayer.cpp:
        * rendering/RenderLayerFilterInfo.h:
        * rendering/RenderLineBoxList.cpp:
        * rendering/RenderListMarker.cpp:
        * rendering/RenderMarquee.cpp:
        * rendering/RenderMenuList.h:
        * rendering/RenderMultiColumnBlock.cpp:
        * rendering/RenderMultiColumnSet.cpp:
        * rendering/RenderNamedFlowThread.cpp:
        * rendering/RenderObject.cpp:
        * rendering/RenderObject.h:
        * rendering/RenderOverflow.h:
        * rendering/RenderRegion.cpp:
        * rendering/RenderReplaced.cpp:
        * rendering/RenderTable.cpp:
        * rendering/RenderTable.h:
        * rendering/RenderText.cpp:
        * rendering/RenderThemeChromiumCommon.cpp:
        * rendering/RenderThemeChromiumCommon.h:
        * rendering/RenderTreeAsText.cpp:
        * rendering/RenderTreeAsText.h:
        * rendering/RenderView.h:
        * rendering/style/NinePieceImage.h:
        * rendering/style/RenderStyle.h:
        * rendering/style/ShadowData.cpp:
        * rendering/style/ShadowData.h:
        * rendering/style/StyleCachedImageSet.h:
        * rendering/style/StyleImage.h:
        * rendering/svg/SVGRenderSupport.h:

2012-11-07  Alexandru Chiculita  <achicu@adobe.com>

        CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
        https://bugs.webkit.org/show_bug.cgi?id=100905

        Reviewed by Noam Rosenthal.

        Added getters for the validated shaders, so that platform code could extract them.

        No new tests, just added two getters.

        * platform/graphics/filters/CustomFilterValidatedProgram.h:
        (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
        (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
        (CustomFilterValidatedProgram):

2012-11-07  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Assertion failure with open() within upgradeneeded
        https://bugs.webkit.org/show_bug.cgi?id=96947

        Reviewed by Dimitri Glazkov.

        Postpone creation of the "pending second half open" until the version change
        transaction has started.

        Test: storage/indexeddb/unblocked-version-changes.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseCallbacks.h:

2012-11-07  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
        https://bugs.webkit.org/show_bug.cgi?id=100890

        Reviewed by Dean Jackson.

        Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.

        No new tests, this parameter is not used in the implementation yet.

        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
        (WebCore::ValidatedCustomFilterOperation::create):
        (WebCore::ValidatedCustomFilterOperation::meshBoxType):
        (WebCore::ValidatedCustomFilterOperation::operator==):
        (ValidatedCustomFilterOperation):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::createCustomFilterEffect):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::computeFilterOperations):

2012-11-07  Sergio Villar Senin  <svillar@igalia.com>

        [Qt] Implement deleteCookie() for persistent storage
        https://bugs.webkit.org/show_bug.cgi?id=101272

        Reviewed by Jocelyn Turcotte.

        Individual cookies were never persistently cleared as the
        deleteCookie() virtual method was not implemented for persistent
        storage. That's why cookies were only deleted for the current
        session.

        * platform/qt/CookieJarQt.cpp:
        (WebCore::SharedCookieJarQt::deleteCookie):
        (WebCore): added deleteCookie() implementation for persistent
        storage.
        * platform/qt/CookieJarQt.h:
        (SharedCookieJarQt):

2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Style should update when 'pseudo' attribute is dynamically updated
        https://bugs.webkit.org/show_bug.cgi?id=100918

        Reviewed by Dimitri Glazkov.

        When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.

        It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
        but it might consume a lot of memory.

        Test: fast/dom/shadow/pseudo-attribute-dynamic.html

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):

2012-11-07  Ulan Degenbaev  <ulan@chromium.org>

        [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
        https://bugs.webkit.org/show_bug.cgi?id=101474

        Reviewed by Kentaro Hara.

        Do not send low memory notification to V8 when most of memory usage
        comes from V8 heap and not DOM objects. In this case V8 can schedule GC
        itself more optimally.

        * bindings/v8/V8GCController.cpp:
        (WebCore::V8GCController::checkMemoryUsage):

2012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Open link in this window action
        https://bugs.webkit.org/show_bug.cgi?id=101226

        Reviewed by Simon Hausmann.

        Adds the action to the WebCore context-menu controller.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected):
        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
        * platform/ContextMenuItem.h:
        * platform/LocalizedStrings.h:
        * platform/qt/LocalizedStringsQt.cpp:
        (WebCore::contextMenuItemTagOpenLinkInThisWindow):

2012-11-07  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] closure compiler fixes
        https://bugs.webkit.org/show_bug.cgi?id=101459

        Reviewed by Pavel Feldman.

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133712.
        http://trac.webkit.org/changeset/133712
        https://bugs.webkit.org/show_bug.cgi?id=101461

        Broke fast/forms/time* tests on chromium-win. (Requested by
        mkwst on #webkit).

        * platform/text/win/LocaleWin.cpp:
        (WebCore::DateFormatToken::DateFormatToken):
        (DateFormatToken):
        (WebCore):
        (WebCore::isEraSymbol):
        (WebCore::isYearSymbol):
        (WebCore::isMonthSymbol):
        (WebCore::isDaySymbol):
        (WebCore::commitLiteralToken):
        (WebCore::parseDateFormat):
        (WebCore::LocaleWin::ensureShortDateTokens):
        (WebCore::convertWindowsDateFormatToLDML):
        (WebCore::mapCharacterToDateTimeFieldType):
        (WebCore::convertWindowsTimeFormatToLDML):
        (WebCore::LocaleWin::dateFormat):
        (WebCore::LocaleWin::monthFormat):
        (WebCore::LocaleWin::timeFormat):
        (WebCore::LocaleWin::shortTimeFormat):
        * platform/text/win/LocaleWin.h:
        (LocaleWin):

2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Editing formatted source should not be allowed.
        https://bugs.webkit.org/show_bug.cgi?id=101355

        Reviewed by Pavel Feldman.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
        * inspector/front-end/UISourceCodeFrame.js:
        (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):

2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Use setPseudo() instead of setShadowPseudoId().
        https://bugs.webkit.org/show_bug.cgi?id=101306

        Reviewed by Kent Tamura.

        We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
        'pseudo' attribute.

        We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
        constructed with AtomicStringFromLiteral, we use it.

        No new tests, refactoring.

        * WebCore.exp.in:
        * dom/Element.cpp:
        * dom/Element.h:
        (Element):
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::createShadowSubtree):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::createShadowSubtree):
        (WebCore::TextFieldInputType::updatePlaceholderText):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::buildBubbleTree):
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitLiteral):
        (WebCore::DateTimeEditElement::DateTimeEditElement):
        * html/shadow/DateTimeFieldElement.cpp:
        (WebCore::DateTimeFieldElement::initialize):
        * html/shadow/DateTimeFieldElement.h:
        (DateTimeFieldElement):
        * html/shadow/PickerIndicatorElement.cpp:
        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCueBox::TextTrackCueBox):
        (WebCore::TextTrackCue::updateDisplayTree):
        * testing/Internals.cpp:
        (WebCore::Internals::setShadowPseudoId):

2012-11-07  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
        https://bugs.webkit.org/show_bug.cgi?id=101432

        Reviewed by Pavel Feldman.

        Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.

        Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
        https://bugs.webkit.org/show_bug.cgi?id=101354

        Reviewed by Pavel Feldman.

        * inspector/front-end/DebuggerScriptMapping.js:
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
        * inspector/front-end/Script.js:
        (WebInspector.Script.prototype.isSnippet):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):

2012-11-07  Dan Carney  <dcarney@google.com>

        [V8] Cleanup V8DOMWrapper::getCachedWrapper
        https://bugs.webkit.org/show_bug.cgi?id=100853

        Reviewed by Adam Barth.

        Slight cleanup. Removed redundant branch.

        No new tests. No change in functionality.

        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):

2012-11-07  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes

        The QtMultimedia namespace is now called QMultimedia and
        QtMultimedia::MetaData is now QMediaMetaData.

        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
        (WebCore::MediaPlayerPrivateQt::supportsType):
        (WebCore::MediaPlayerPrivateQt::totalBytes):

2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>

        Add replaceWithLiteral() method to WTF::String
        https://bugs.webkit.org/show_bug.cgi?id=101257

        Reviewed by Benjamin Poulain.

        Substitute String::replace() calls by String::replaceWithLiteral() where
        adequate, for efficiency.

        No new tests, no behavior change.

        * dom/Node.cpp:
        (WebCore::Node::showNode):
        * editing/EditingStyle.cpp:
        (WebCore::StyleChange::extractTextStyles):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::setSearch):
        * loader/FormSubmission.cpp:
        (WebCore::appendMailtoPostFormDataToURL):
        * platform/network/soup/ProxyResolverSoup.cpp:
        (soupProxyResolverWkSetProperty):
        * plugins/PluginView.cpp:
        (WebCore::makeURL):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::showBox):
        * xml/XSLTProcessor.cpp:
        (WebCore::transformTextStringToXHTMLDocumentString):

2012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Remove support for "desktop-width" in the viewport meta tag
        https://bugs.webkit.org/show_bug.cgi?id=101217

        Reviewed by Gyuyoung Kim.

        This has been removed from the CSS Device Adaptation spec, and
        should be safe to remove as it is not documented anywhere (neither
        in blog posts).

        The viewport meta should only support the legacy features.

        * dom/ViewportArguments.cpp:
        (WebCore::computeViewportAttributes):
        (WebCore::findSizeValue):
        (WebCore::findScaleValue):
        (WebCore::findUserScalableValue):
        * dom/ViewportArguments.h:

2012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
        https://bugs.webkit.org/show_bug.cgi?id=101343

        Reviewed by Kenneth Rohde Christiansen.

        Add Cairo to the list of backends that support shouldRespectImageOrientation.

        No new tests, fixes exif-orientation-image-document.html.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shouldRespectImageOrientation):

2012-11-06  Yury Semikhatsky  <yurys@chromium.org>

        Console not displaying all properties of an Object once native Constructor overwritten
        https://bugs.webkit.org/show_bug.cgi?id=101320

        Reviewed by Pavel Feldman.

        Use Object instance from {}.constructor when formatting inspector messages in the
        injected script. Otherwise inspected page may overwrite Object value and break inspector.

        Test: inspector/console/console-Object-overwritten.html

        * inspector/InjectedScriptSource.js:

2012-11-06  Keishi Hattori  <keishi@webkit.org>

        Implement month picking to calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=101333

        Reviewed by Kent Tamura.

        This adds month picker mode to CalendarPicker.

        No new tests. Tests will be added later when this feature is enabled in DRT.

        * Resources/pagepopups/calendarPicker.css:
        (.month-mode .day): Remove rounded corners when in month mode.
        * Resources/pagepopups/calendarPicker.js:
        (Month.createFromToday): Creates month containing today.
        (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
        (CalendarPicker.prototype.handleToday):
        (CalendarPicker.prototype._layoutButtons):
        (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
        (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
        (DaysTable.prototype.selectRange): Selects a day.
        (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
        (DaysTable.prototype._selectRangeContainingNode):
        (DaysTable.prototype._rangeForNode): Returns Day for node.
        (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
        (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
        (DaysTable.prototype._handleKey):
        (MonthPickerDaysTable):
        (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
        (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
        (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
        (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
        (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.

2012-11-06  Dan Beam  <dbeam@chromium.org>

        Enable REQUEST_AUTOCOMPLETE for chromium port
        https://bugs.webkit.org/show_bug.cgi?id=101376

        Reviewed by Adam Barth.

        Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):

        Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].

        (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):

        Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.

        (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):

        Added a setter to WebCore to affect the runtime flag requestAutocomplete.

        * html/HTMLFormElement.idl:

        Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
        so these features can be changed with a command line switch in the chromium port.

2012-11-06  Adam Barth  <abarth@webkit.org>

        [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
        https://bugs.webkit.org/show_bug.cgi?id=101422

        Reviewed by Kentaro Hara.

        This patch is another incremental step towards the patch in Bug 10110.
        In this step, we unify setJSWrapperForDOMObject and
        setJSWrapperForDOMNode.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (GenerateConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateToV8Converters):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::wrap):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::wrap):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::wrap):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::wrap):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::wrap):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::wrap):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::wrap):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::wrap):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::wrap):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::constructorCallback):
        (WebCore::V8TestNode::wrapSlow):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::V8TestObj::wrap):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::wrap):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::get):
        (DOMDataStore):
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::setJSWrapperPrivate):
        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):

2012-11-06  Ken Buchanan  <kenrb@chromium.org>

        Crash due to column span under button element
        https://bugs.webkit.org/show_bug.cgi?id=101402

        Reviewed by Abhishek Arya.

        When there is a column-spanning child of a RenderButton
        splitBlocks() must split the RenderButton as well as its
        only permitted direct child, the anonymous block referenced
        by m_inner. A crash was occurring because splitBlocks()
        calls addChildIgnoringAnonymousColumnBlocks() to add the
        cloned m_inner to the cloned RenderButton, which meant the
        m_inner for the cloned RenderButton was not being set even
        though a child was being added. This violates state
        assumptions in the RenderButton code.

        This patch prevents any descendants of RenderButton from
        spanning columns. Also, it adds a precautionary check in
        RenderButton::removeChild() to mitigate problems if similar
        state problems are found in future.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::containingColumnsBlock):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::removeChild):

2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Pseudo custom-elements should start with 'x-'.
        https://bugs.webkit.org/show_bug.cgi?id=100919

        Reviewed by Dimitri Glazkov.

        Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
        only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.

        Test: fast/dom/shadow/pseudo-attribute-rendering.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.

2012-11-06  Chris Evans  <cevans@google.com>

        Re-order variables in BidiRun and LayoutState
        https://bugs.webkit.org/show_bug.cgi?id=100173

        Reviewed by Eric Seidel.

        The variable re-ordering and use of bitfields for bools has two benefits:
        1) Size reduction. sizeof(BidiRun) goes down from 48 to 40 bytes on 64-bit. This is achieved by removing a bool member variable from BidiRun and packing it together with other bools in the BidiCharacterRun base class.
        2) Security improvement. We have a lot of use-after-free in the RenderObject hierarchy, and the RenderArena class protects us from a lot of trouble by ensuring that objects of arbitrary type cannot be overlayed on top of freed RenderObjects. This change additionally makes sure that non-virtual RenderArena allocated objects do not have member variables which fully overlap the freed vtable pointer. This leaves re-used vtable pointers always pointing to either a valid vtable or an invalid address due to the freelist high-bit poisoning.

        This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html

        * platform/text/BidiResolver.h:
        (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
        (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
        * rendering/BidiRun.h:
        (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
        (BidiRun): m_hasHyphen is now stored in the base class.
        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        * rendering/LayoutState.h:
        (WebCore::LayoutState::LayoutState): impact from re-ordering members.
        (LayoutState): re-order members to place bools adjacently.

2012-11-06  Kent Tamura  <tkent@chromium.org>

        [Chromium-win] Refactor date/time format conversion code in LocaleWin
        https://bugs.webkit.org/show_bug.cgi?id=101329

        Reviewed by Kentaro Hara.

        convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
        similar jobs with different code. We can merge them into one function.

        As for the date format conversion, we have tokenized a format string and
        stored token objects into a vector. We skip token object generation and
        generate a LDML-compliant pattern string during parsing.

        No new tests. This should make no behavior changes and
        WebKit/chromium/tests/LocaleWinTest.cpp has test cases.

        * platform/text/win/LocaleWin.cpp:
        (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
        convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
        convertWindowsTimeFormatToLDML.
        (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
        (WebCore::convertWindowsDateTimeFormat):
        Renamed from parseDateFormat, and supports time format symbols.
        (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
        (WebCore::LocaleWin::monthFormat): Ditto.
        (WebCore::LocaleWin::timeFormat): Ditto.
        (WebCore::LocaleWin::shortTimeFormat): Ditto.
        * platform/text/win/LocaleWin.h:
        (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.

2012-11-06  Elliott Sprehn  <esprehn@chromium.org>

        Make Document::renderer faster by using the cached ptr for RenderView
        https://bugs.webkit.org/show_bug.cgi?id=101409

        Reviewed by Eric Seidel.

        In Bug 101277 I made Document::renderView() just return m_renderView instead
        of casting the result of renderer(). While this made renderView() cheaper it
        makes more sense to just make renderer() faster for Document pointers and
        go back to the out of line method in RenderView.h because lots of places in
        the code do document()->renderer().

        No new tests, this is just a refactor.

        * dom/Document.h:
        (WebCore::Document::renderer):
        * rendering/RenderView.h:
        (WebCore::Document::renderView):

2012-11-06  Adam Barth  <abarth@webkit.org>

        [V8] neuterBinding should remember the type of its argument
        https://bugs.webkit.org/show_bug.cgi?id=101413

        Reviewed by Kentaro Hara.

        This is a small part of the patch in
        https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
        separately to try to tease out what is causing the memory regression.

        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore):
        (WebCore::neuterBinding):

2012-11-06  Alexey Proskuryakov  <ap@apple.com>

        Clean up which storage cookie jar functions use
        https://bugs.webkit.org/show_bug.cgi?id=101395

        Reviewed by Brady Eidson.

        * WebCore.exp.in:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        Updated for two new WKSI functions.

        * platform/CookieJar.h: Added explanatory comments.

        * platform/mac/CookieJar.mm:
        (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
        already implements it.
        (WebCore::cookieRequestHeaderFieldValue): Ditto.
        (WebCore::setCookies): Ditto.
        (WebCore::cookiesEnabled): Ditto.
        (WebCore::getRawCookies): Ditto.
        (WebCore::deleteCookie): Ditto.
        (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
        exclusively. While it makes sense to bypass private storage session, default storage
        session (currently only used for testing on Mac) is never OK to bypass. Changed to
        use a WKSI function that supports both.
        (WebCore::deleteCookiesForHostname): Ditto.
        (WebCore::deleteAllCookies): Ditto.

        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):
        Updated to match Foundation, so now these functions bypass private session.

        * platform/network/cf/CookieStorageCFNet.cpp:
        (WebCore::currentCFHTTPCookieStorage): Updated a comment.
        (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
        for non-private session (or null if that would be an NSHTTPCookieStorage).        
        (WebCore::startObservingCookieChanges): We do not want to observe private cookies
        here, and we certainly don't want a mismatch between start/stop due to private
        browsing mode changes.
        (WebCore::stopObservingCookieChanges): Ditto.

        * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().

2012-11-06  Huang Dongsung  <luxtella@company100.net>

        Build fix. r133601 broke the Windows build.
        https://bugs.webkit.org/show_bug.cgi?id=101404

        Reviewed by Noam Rosenthal.

        Only static const integral data members can be initialized within a class in the
        Windows, so we initialize static const double date members out of the class.

        * platform/graphics/texmap/TextureMapper.cpp:
        (BitmapTexturePool):
        (WebCore):

2012-11-06  Simon Fraser  <simon.fraser@apple.com>

        -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
        https://bugs.webkit.org/show_bug.cgi?id=89287

        Reviewed by Beth Dakin.

        If the body had -webkit-background-clip: text, we'd fail to paint
        anything behind it, so would see garbage pixels.
        
        Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
        on the renderer that paints the root background.
        
        Added some new pixel tests for combinations of html and body transform
        and backgrounds; earlier versions of the patch broke some of these tests.

        Tests: fast/backgrounds/background-clip-text-on-body.html
               fast/backgrounds/transformed-body-background.html
               fast/backgrounds/transformed-body-html-background.html
               fast/backgrounds/transformed-html-body-background.html

        * rendering/RenderView.cpp:
        (WebCore::rendererObscuresBackground): Broke up the single condition
        into early 'false' returns when possible. We need to also check whether
        the renderer that actually paints the background (which might be the body)
        will fill it; background-clip: text does not.
        (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
        actually check the root renderer, so that we can reliably get to the renderer
        that mains the root background.

2012-11-06  Stephen White  <senorblanco@chromium.org>

        Implement save and restore for a bunch of InternalSettings state
        https://bugs.webkit.org/show_bug.cgi?id=101394

        Reviewed by Dirk Pranke.

        In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
        flaky tests by saving and restoring the InternalSettings state
        EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
        internal settings state which is being set by layout tests but not
        saved and restored.  It turns out there about 15 calls.

        This patch takes care of five of them, mostly compositing-related.
        The others I was either not sure about, or were already at least
        being reset to known values by the testing harness.

        Hopefully this will alleviate some further test flakiness.

        * testing/InternalSettings.cpp:
        * testing/InternalSettings.h:

2012-11-06  KyungTae Kim  <ktf.kim@samsung.com>

        Fix build warning in RenderLayer.cpp caused by r133628
        https://bugs.webkit.org/show_bug.cgi?id=101401

        Reviewed by Simon Fraser.

        The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
        so define it only that case for removing -Wunused-function warning

        * rendering/RenderLayer.cpp:
        (WebCore):

2012-11-06  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
        https://bugs.webkit.org/show_bug.cgi?id=100763

        Reviewed by Darin Adler.

        The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
        assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
        If this is not true, then we construct the polygon's edges in reverse.

        To determine if the vertices are in clockwise order, we compare the slope
        of the line between the top,left vertex and its previous vertex, with the
        the slope of the line of vertices before and after the top,left vertex.
        If the slope of the latter is greater, then top,left vertex is located
        to its left, and the vertices are clockwise.

        Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
        (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
        (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.

2012-11-06  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 238123
        Internal Reviewed by Chris Hutten-Czapski
        BB10 selection theme use slice image function to draw selection button,
        any border-radius setting other than 0 will make the button corner
        clipped. Always set button border-radius: 0 for BB10 theme.

        * css/themeBlackBerry.css:
        (select[size][multiple]):
        (select[size="1"]):

2012-11-06  Elliott Sprehn  <esprehn@chromium.org>

        Remove branch from inside RenderObject::view now that renderer() is more expensive
        https://bugs.webkit.org/show_bug.cgi?id=101277

        Reviewed by Eric Seidel.

        It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
        can be a performance regression. Now that we no longer keep a separate pointer for rare data
        in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
        faster and removing the branch.

        This is a 1% improvement on Parser/html5-full-render.html

        This also cleans up the code because it turns out we don't need to have RenderObject::view() in
        RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
        it easier to find this method as it exists in the right header file now.

        No new tests, this is just a refactor.

        * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::setRenderer):
        (WebCore):
        * dom/Document.h:
        (WebCore::Document::renderView):
        (Document):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::view):
        * rendering/RenderView.h:
        (WebCore):

2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133526.
        http://trac.webkit.org/changeset/133526
        https://bugs.webkit.org/show_bug.cgi?id=101388

        May have caused 15% memory regression in Chromium (Requested
        by jsbell|gardener on #webkit).

        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (GenerateConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateToV8Converters):
        (GetDomMapFunction):
        (GetDomMapName):
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::wrap):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::wrap):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::wrap):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::wrap):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::wrap):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::wrap):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::wrap):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::wrap):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::wrap):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::constructorCallback):
        (WebCore::V8TestNode::wrapSlow):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::V8TestObj::wrap):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::wrap):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::~DOMDataStore):
        (WebCore::DOMDataStore::current):
        (WebCore::DOMDataStore::reportMemoryUsage):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::domNodeMap):
        (WebCore::DOMDataStore::domObjectMap):
        (DOMDataStore):
        * bindings/v8/DOMWrapperMap.h:
        (WebCore):
        (DOMWrapperMap):
        (WebCore::DOMWrapperMap::~DOMWrapperMap):
        (WebCore::DOMWrapperHashMap::remove):
        * bindings/v8/DOMWrapperWorld.h:
        * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
        (WebCore):
        (IntrusiveDOMWrapperMap):
        (WebCore::IntrusiveDOMWrapperMap::weakCallback):
        * bindings/v8/ScriptProfiler.cpp:
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::neuterBinding):
        * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
        (WebCore):
        (WebCore::getDOMNodeMap):
        (WebCore::getDOMObjectMap):
        * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
        (WebCore):
        * bindings/v8/V8DOMWindowShell.cpp:
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
        (WebCore):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::getCachedWrapper):
        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
        * bindings/v8/V8GCController.cpp:
        * bindings/v8/V8NPObject.cpp:
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        * bindings/v8/WorkerScriptController.cpp:
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):

2012-11-06  Alexey Proskuryakov  <ap@apple.com>

        Some cookie code cleanup
        https://bugs.webkit.org/show_bug.cgi?id=101375

        Reviewed by Dan Bernstein.

        * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
        on in Mac port, but didn't add explanatory comments yet, because this is different
        in some ports.

        * platform/mac/CookieJar.mm:
        (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
        supported OS X versions.
        (WebCore::filterCookies): Use -isHTTPOnly directly.
        (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
        (WebCore::cookieRequestHeaderFieldValue): Ditto.
        (WebCore::setCookies): Assert that no more than one cookie was created from one
        Set-Cookie header, document.cookie can only be used to set one cookie at a time.
        (WebCore::getRawCookies): Removed useless local variables.

        * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.

        * platform/network/HTTPHeaderMap.h: Added a FIXME.

2012-11-06  John Griggs  <jgriggs@rim.com>

        Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
        https://bugs.webkit.org/show_bug.cgi?id=100378

        Reviewed by Eric Carlson.

        Implement this method for BlackBerry platform.

        New test: LayoutTests/media/progress-events-generated-correctly.html

        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::didLoadingProgress):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
        (MediaPlayerPrivate):

2012-11-06  Adam Barth  <abarth@webkit.org>

        DOMImplementation should use ScriptWrappable
        https://bugs.webkit.org/show_bug.cgi?id=101279

        Reviewed by Eric Seidel.

        This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
        bindings automatically detect the presence of this base class and use
        it to optimize getting and setting JavaScript wrappers.

        This patch is a 23% progression on Bindings/document-implementation for
        the V8 bindings and a 69% progression for the JSC bindings.

        * dom/DOMImplementation.h:

2012-11-06  Benjamin Poulain  <benjamin@webkit.org>

        Speed up TransformationMatrix::multiply() on modern ARM
        https://bugs.webkit.org/show_bug.cgi?id=101084

        Reviewed by Gavin Barraclough.

        The main improvements are:
        -Store the full source matrix in the registers d16 to d31. This way we avoid going
         back and forth to memory to use the operands.
         Since the full matrix is in register, we can also directly modify the memory of m_matrix,
         we no longer need the temporary matrix memcopied at the end.
        -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
        -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
        -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.

        Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::multiply):
        * platform/graphics/transforms/TransformationMatrix.h:
        (TransformationMatrix):

2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133529 and r133562.
        http://trac.webkit.org/changeset/133529
        http://trac.webkit.org/changeset/133562
        https://bugs.webkit.org/show_bug.cgi?id=101371

        Caused 15% memory regression on Chromium page cyclers
        (Requested by jsbell|gardener on #webkit).

        * platform/text/LineBreakIteratorPoolICU.h:
        (WebCore::LineBreakIteratorPool::take):
        (WebCore::LineBreakIteratorPool::put):
        (LineBreakIteratorPool):
        * platform/text/TextBreakIterator.cpp:
        (WebCore::acquireLineBreakIterator):
        * platform/text/TextBreakIterator.h:
        (WebCore):
        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
        (WebCore::LazyLineBreakIterator::get):
        (WebCore::LazyLineBreakIterator::reset):
        (LazyLineBreakIterator):
        * platform/text/TextBreakIteratorICU.cpp:
        (WebCore::acquireLineBreakIterator):
        (WebCore::releaseLineBreakIterator):
        * platform/text/gtk/TextBreakIteratorGtk.cpp:
        (WebCore::setUpIterator):
        (WebCore::acquireLineBreakIterator):
        * platform/text/wince/TextBreakIteratorWinCE.cpp:
        (WebCore::acquireLineBreakIterator):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::computePreferredLogicalWidths):
        * rendering/RenderText.h:
        (WebCore):
        * rendering/break_lines.cpp:
        (WebCore):
        (WebCore::isBreakableSpace):
        (WebCore::needsLineBreakIterator):
        (WebCore::nextBreakablePosition):
        (WebCore::nextBreakablePositionIgnoringNBSP):
        * rendering/break_lines.h:
        (WebCore):
        (WebCore::isBreakable):

2012-11-06  Peter Beverloo  <peter@chromium.org>

        [Chromium] Enable the JavaScript i18n API for Android
        https://bugs.webkit.org/show_bug.cgi?id=101357

        Reviewed by Adam Barth.

        Remove the conditional dependency on the v8-i18n API. The library is now
        always available in a Chromium for Android checkout.

        * WebCore.gyp/WebCore.gyp:

2012-11-06  Adam Barth  <abarth@webkit.org>

        ScriptWrappable should work for more than just Node
        https://bugs.webkit.org/show_bug.cgi?id=101319

        Reviewed by Eric Seidel.

        This patch generalizes the inline cached wrapper code path to work with
        all subclasses of ScriptWrappable, not just Node.

        * bindings/js/JSDOMBinding.h:
        (WebCore::setInlineCachedWrapper):
        (WebCore::getInlineCachedWrapper):
        (WebCore):
        (WebCore::clearInlineCachedWrapper):
        (WebCore::cacheWrapper):
        * bindings/js/JSNodeCustom.h:

2012-11-06  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
        change which break media control and vertical slider.

        RIM PR 236993
        Internal Reviewed by Jeff Rogers.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
        (WebCore::RenderThemeBlackBerry::paintSliderThumb):

2012-11-06  Michael Saboff  <msaboff@apple.com>

        canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
        https://bugs.webkit.org/show_bug.cgi?id=101105

        Reviewed by Darin Adler.

        Turned canonicalizedTitle() into a templated function based on character type.
        Changed call in updateTitle() to check the bitness of the title string to call
        the right template flavor of canonicalizedTitle().
        Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
        and made TextEncoding::displayBuffer() a templated function as well.

        No new tests needed, as functionality is unchanged.

        * dom/Document.cpp:
        (WebCore::canonicalizedTitle):
        (WebCore::Document::updateTitle):
        (WebCore::Document::displayBufferModifiedByEncodingInternal):
        * dom/Document.h:
        (WebCore::Document::displayBufferModifiedByEncoding):
        * platform/text/TextEncoding.h:
        (TextEncoding):
        (WebCore::TextEncoding::displayBuffer):

2012-11-05  Simon Fraser  <simon.fraser@apple.com>

        Fix RenderGeometryMap assertion when layers are scrolled during layout
        https://bugs.webkit.org/show_bug.cgi?id=101292

        Reviewed by Beth Dakin.

        When we set RenderLayer scroll positions as part of layout, we don't want
        to update compositing layers right away. Updating compositing layers
        requires that the entire layer tree has been updated from renderers,
        so that the geometry of all RenderLayers can be trusted. When this state
        was violated, RenderGeometryMap asserts.
        
        Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
        tells us that we're doing layout. A full update of the compositing layers
        will happen later anyway.

        Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html

        * rendering/RenderLayer.cpp:
        (WebCore::frameViewFromLayer):
        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):

2012-11-06  Michael Saboff  <msaboff@apple.com>

        quoteCSSString() always creates a 16 bit string
        https://bugs.webkit.org/show_bug.cgi?id=101004

        Reviewed by Darin Adler.

        Added a new templated helper based on character type from the logic of quoteCSSString() to process
        the argument string based on its native bitness.

        Functionality covered by existing tests.

        * css/CSSParser.cpp:
        (WebCore::quoteCSSStringInternal):
        (WebCore::quoteCSSString):

2012-11-06  Andras Becsi  <andras.becsi@digia.com>

        [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
        https://bugs.webkit.org/show_bug.cgi?id=99715

        Reviewed by Jocelyn Turcotte.

        Add a bool that indicates if the content had an explicit
        initial-scale in the viewport meta tag.

        * dom/ViewportArguments.cpp:
        (WebCore::computeViewportAttributes):
        * dom/ViewportArguments.h:
        (ViewportAttributes):

2012-11-06  Mike West  <mkwst@chromium.org>

        CSP 1.1: Tweak the script interface to match the spec.
        https://bugs.webkit.org/show_bug.cgi?id=101321

        Reviewed by Adam Barth.

       This patch brings WebKit in line with the changes made to the spec in
       https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
       Specifically, the following:

       - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
       - Converted the following to read-only boolean attributes:
         - 'allowsEval'
         - 'allowsInlineScript'
         - 'allowsInlineStyle'
         - 'isActive'

        These changes only have effect for ports with CSP_NEXT enabled.

        Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html

        * dom/Document.idl:
        * page/DOMSecurityPolicy.idl:
            Tweaking the IDL files to match the new definition of the
            functionlity in the spec.

2012-11-06  Andrey Lushnikov  <lushnikov@google.com>

        Added console.clear() method

        Web Inspector: add console.clear()
        https://bugs.webkit.org/show_bug.cgi?id=101021

        Reviewed by Vsevolod Vlasov.

        Adds native implementation of console.clear

        Test: inspector/console/console-clear-function.html

        * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
        * inspector/ConsoleMessage.cpp:
        (WebCore::messageTypeValue): Adds ClearMessageType
        * inspector/Inspector.json:
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
        * inspector/front-end/ConsoleModel.js:
        * inspector/front-end/inspector.css:
        (.console-info): Adds style for the 'console was cleared' message
        * page/Console.cpp: backend binging for console.clear()
        (WebCore::Console::clear):
        (WebCore):
        * page/Console.h:
        (Console):
        * page/Console.idl: Adds 'clear' message to protocol
        * page/ConsoleTypes.h:

2012-11-06  Aaron Colwell  <acolwell@chromium.org>

        Heap-buffer-overflow in WebCore::TextTrackCueList::add
        https://bugs.webkit.org/show_bug.cgi?id=101018

        Reviewed by Eric Carlson.

        Added an extra check to avoid using a negative array index when a cue
        is added to the beginning of the list.

        Test case added to LayoutTests/media/track/track-add-remove-cue.html.

        * html/track/TextTrackCueList.cpp:
        (WebCore::TextTrackCueList::add):

2012-11-06  Aaron Colwell  <acolwell@chromium.org>

        Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
        https://bugs.webkit.org/show_bug.cgi?id=100981

        Reviewed by Eric Carlson.

        Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
        an HTMLTrackElement is removed from an HTMLMediaElement so that references to
        TextTrackCues are removed from m_cueTree.

        Test: media/track/track-remove-by-setting-innerHTML.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::willRemoveTrack):

2012-10-23  Stephen White  <senorblanco@chromium.org>

        [skia] Implement reference (url) filters on composited layers.
        https://bugs.webkit.org/show_bug.cgi?id=100142

        Reviewed by James Robinson.

        Covered by css3/filters/effect-reference-hw.html

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        Add new files.
        * WebCore.xcodeproj/project.pbxproj:
        Mark FilterEffect.h as "private".
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setFilters):
        Use the new SkImageFilter builder and setLayer() infrastructure, but
        only if there's a reference filter in the chain.
        * platform/graphics/filters/FEBlend.h:
        * platform/graphics/filters/FEColorMatrix.h:
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FELighting.h:
        * platform/graphics/filters/FEMorphology.h:
        * platform/graphics/filters/FilterEffect.h:
        (WebCore::FilterEffect::createImageFilter):
        Add createImageFilter() factory function for building SkImageFilters.
        * platform/graphics/filters/FilterOperation.h:
        (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
        (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
        Add a FilterEffect member to ReferenceFilterOperation, and accessors
        for it.
        * platform/graphics/filters/skia/FEBlendSkia.cpp:
        (WebCore::FEBlend::createImageFilter):
        Implement SkImageFilter building for FEBlend filter.
        * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
        (WebCore::createColorFilter):
        (WebCore::FEColorMatrix::platformApplySkia):
        Refactor creation of SkColorFilter from an FEColorMatrix filter.
        (WebCore::FEColorMatrix::createImageFilter):
        Implement SkImageFilter building for FEColorMatrix filter.
        * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
        (WebCore::FEGaussianBlur::createImageFilter):
        Implement SkImageFilter building for FEGaussianBlur filter.
        * platform/graphics/filters/skia/FELightingSkia.cpp:
        (WebCore::FELighting::createImageFilter):
        Implement SkImageFilter building for FELighting filters.
        * platform/graphics/filters/skia/FEMorphologySkia.cpp:
        (WebCore::FEMorphology::createImageFilter):
        Implement SkImageFilter building for FEMorphology filter.
        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
        (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
        (WebCore::SkiaImageFilterBuilder::build):
        * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
        Implement new helper class for building an SkImageFilter DAG from
        a FilterEffect DAG.  Can also build from FilterOperations list.
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build):
        When building FilterEffects from a reference filter, also store the
        generated DAG on the ReferenceFilterOperation itself.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
        Even when in composited mode, if there's a reference filter in the 
        chain, build the FilterEffect DAG from it.

2012-11-06  Max Feil  <mfeil@rim.com>

        [BlackBerry] Automatically go fullscreen on video play
        https://bugs.webkit.org/show_bug.cgi?id=101100

        Reviewed by Eric Carlson.

        There is a requirement to have HTML5 video automatically enter
        fullscreen when a video starts playing (PR131774). This change
        implements this feature, with restrictions. The main restriction
        is adherence to WebKit's philosophy of only entering fullscreen
        due to a user gesture. This is important in order to avoid
        pop-up advertisements and other unwanted fullscreen content.
        One consequence of this is that video elements with the autoplay
        attribute will not automatically enter fullscreen.

        Other caveats:
        - This feature applies only to "small screen" devices where
        automatically going fullscreen makes more sense.
        - Fullscreen will only be entered automatically when the
        video is played from the beginning (current time is zero).
        It is assumed that if the user is resuming play from a paused
        state and is not in fullscreen mode, then they exited fullscreen
        mode intentionally.

        Test: platform/blackberry/media/video-automatic-fullscreen.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
        (WebCore):
        (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
        (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
        (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
        (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::play):
        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
        (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
        (WebCore):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
        (MediaPlayerPrivate):

2012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
        https://bugs.webkit.org/show_bug.cgi?id=101215

        Reviewed by Gustavo Noronha Silva.

        Save the misspelled location and length of the string to the default values (-1, 0)
        at the beginning of the checkSpellingOfString method.
        It assumes that the words are spelled correctly and early return of method doesn't
        cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).

        * platform/text/enchant/TextCheckerEnchant.cpp:
        (TextCheckerEnchant::checkSpellingOfString):

2012-11-06  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Remove unused textures in the texture pool.
        https://bugs.webkit.org/show_bug.cgi?id=100706

        Reviewed by Noam Rosenthal.

        Currently, we do not remove textures in the texture pool of
        TextureMapper. The texture pool is destroyed when TextureMapper is
        destroyed. It means the texture pool consumes texture memory until its
        destruction. This patch removes textures if the textures have been not
        used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.

        Changing cache policy is not testable in layout tests.

        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
        (WebCore::BitmapTexturePoolEntry::markUsed):
        (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
        (BitmapTexturePoolEntry):
        (WebCore):
        (BitmapTexturePool):
        (WebCore::BitmapTexturePool::BitmapTexturePool):
        (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
        (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
        (WebCore::BitmapTexturePool::acquireTexture):
        (WebCore::TextureMapper::acquireTextureFromPool):
        (WebCore::TextureMapper::TextureMapper):
        (WebCore::TextureMapper::~TextureMapper):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore):
        (TextureMapper):

2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
        https://bugs.webkit.org/show_bug.cgi?id=101067

        Reviewed by Yury Semikhatsky.

        Plain vanilla instrumentation for CachedMetadata class.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/CachedMetadata.cpp: Added.
        (WebCore):
        (WebCore::CachedMetadata::reportMemoryUsage):
        * loader/CachedMetadata.h:
        (CachedMetadata):

2012-11-06  Alexei Filippov  <alph@chromium.org>

        Web Inspector: report physical memory really committed for JS heap in NMI
        https://bugs.webkit.org/show_bug.cgi?id=101335

        Some OSes (e.g. Linux) perform lazy commits of requested memory.
        Because of that the committed memory may not retain any physical
        memory until the very first access to the committed chunk.
        That led to JS heap reported more physical memory than was currently
        in use.

        Reviewed by Vsevolod Vlasov.

        * bindings/v8/ScriptGCEvent.cpp:
        (WebCore::ScriptGCEvent::getHeapSize):

2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
        https://bugs.webkit.org/show_bug.cgi?id=100595

        Reviewed by Yury Semikhatsky.

        Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
        not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
        SourceFileId is now used across BreakpointManager to specify file name.
        And breakpointStorageId is now used to specify (fileName, lineNumber) pair.

        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.sourceFileId):
        (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
        (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
        (WebInspector.BreakpointManager.Breakpoint):
        (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
        (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
        (set WebInspector.BreakpointManager.Storage.Item):

2012-11-06  Keishi Hattori  <keishi@webkit.org>

        The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
        https://bugs.webkit.org/show_bug.cgi?id=101304

        Reviewed by Kent Tamura.

        The name Rect conflicts with CSS Rect.

        No new tests. Just renaming.

        * Resources/pagepopups/pickerCommon.js:
        (Rectangle): Renamed from Rect.
        (Rectangle.prototype.toString):
        (Rectangle.intersection):
        (adjustWindowRect):
        (hideWindow):

2012-11-06  Kentaro Hara  <haraken@chromium.org>

        Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
        https://bugs.webkit.org/show_bug.cgi?id=101190

        Reviewed by Adam Barth.

        To guarantee that we never stores NULL pointers to V8 internal
        fields, we want to insert ASSERT()s to setDOMWrapper().
        This patch replaces setDOMWrapper() that intentionally
        passes NULL pointers with clearDOMWrapper().

        No tests. No change in behavior.

        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::clearDOMWrapper):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::forgetV8ObjectForNPObject):

2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
        https://bugs.webkit.org/show_bug.cgi?id=101064

        Reviewed by Yury Semikhatsky.

        Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
        Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
        NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.

        Test: http/tests/inspector/network/request-name-path.html

        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._matchRequest):
        (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
        (WebInspector.NetworkLogView.prototype.performFilter):
        (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
        (WebInspector.NetworkDataGridNode.NameComparator):
        * inspector/front-end/NetworkRequest.js:
        (WebInspector.NetworkRequest.prototype.set url):
        (WebInspector.NetworkRequest.prototype.name):
        (WebInspector.NetworkRequest.prototype.path):
        (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
        * inspector/front-end/ParsedURL.js:
        (WebInspector.ParsedURL):
        (WebInspector.ParsedURL.prototype.get displayName):
        (WebInspector.ParsedURL.prototype.dataURLDisplayName):
        (WebInspector.ParsedURL.prototype.isAboutBlank):
        (WebInspector.ParsedURL.prototype.isDataURL):

2012-11-05  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
        https://bugs.webkit.org/show_bug.cgi?id=101200

        Reviewed by Yury Semikhatsky.

        - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
        - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
        - Extracted spectrum's css into a separate file

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/front-end/DOMExtension.js:
        (Element.prototype.positionAt):
        (Size):
        (Element.prototype.measurePreferredSize):
        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapSnapshotView.prototype.willHide):
        (WebInspector.HeapSnapshotView.prototype._helpClicked):
        * inspector/front-end/Popover.js:
        (WebInspector.Popover):
        (WebInspector.Popover.prototype.show):
        (WebInspector.Popover.prototype.showView):
        (WebInspector.Popover.prototype._innerShow):
        (WebInspector.Popover.prototype.hide):
        (WebInspector.Popover.prototype.dispose):
        (WebInspector.Popover.prototype._positionElement):
        * inspector/front-end/Spectrum.js:
        (WebInspector.Spectrum.alphaDrag):
        (WebInspector.Spectrum):
        (WebInspector.Spectrum.prototype.wasShown):
        (WebInspector.SpectrumPopupHelper):
        (WebInspector.SpectrumPopupHelper.prototype.spectrum):
        (WebInspector.SpectrumPopupHelper.prototype.toggle):
        (WebInspector.SpectrumPopupHelper.prototype.show):
        (WebInspector.SpectrumPopupHelper.prototype.reposition):
        (WebInspector.SpectrumPopupHelper.prototype.hide):
        (WebInspector.ColorSwatch):
        (WebInspector.ColorSwatch.prototype.setColorString):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane):
        (WebInspector.StylesSidebarPane.prototype.update):
        (WebInspector.StylesSidebarPane.prototype.willHide):
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
        * inspector/front-end/View.js:
        (WebInspector.View.prototype.measurePreferredSize):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/elementsPanel.css:
        (.image-preview-container img):
        * inspector/front-end/inspector.css:
        (.swatch):
        (.swatch-inner):
        (.swatch-inner:hover):
        * inspector/front-end/spectrum.css: Added.
        (.spectrum-container):
        (.spectrum-top):
        (.spectrum-color):
        (.spectrum-display-value):
        (.spectrum-hue):
        (.spectrum-fill):
        (.spectrum-range-container):
        (.spectrum-range-container *):
        (.spectrum-range-container label):
        (.spectrum-range-container input):
        (.spectrum-dragger, .spectrum-slider):
        (.spectrum-sat):
        (.spectrum-val):
        (.spectrum-dragger):
        (.spectrum-slider):
        (.spectrum-container .swatch):

2012-11-06  Takashi Sakamoto  <tasak@google.com>

        removeAttribute('style') not working in certain circumstances
        https://bugs.webkit.org/show_bug.cgi?id=99295

        Reviewed by Ryosuke Niwa.

        After web developers did style.XXXX=YYYY for some element, the inline
        style should be always removable by using "removeAttribute('style')".
        Currently it depends on whether web developers invokes
        getAttribute('style'), setAttribute('style), and so on. E.g. once they
        invoke getAttribute('style'), removeAttribute('style') works. This is
        very confusing behavior.
        Looking at Firefox browser, removeAttribute('style') always removes
        all inline styles.

        Test: fast/css/remove-attribute-style.html

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::clear):
        Added a new method to remove all style properties.
        (WebCore):
        * css/StylePropertySet.h:
        (StylePropertySet):
        * dom/Element.cpp:
        (WebCore::Element::removeAttribute):
        If 'style' is given but the element has no style attribute, the old
        code did nothing. However, if the element is styled element and has any
        inline styles, the inline styles should be removed. So invoke
        StyledElement::removeAllInlineStyleProperties and if any inline styles
        are removed, invoke style recalc, too.
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::removeAllInlineStyleProperties):
        Added a new method to remove all inline style propeties. If any inline
        style is removed, invoke inlineStyleChanged() to force style recalc.
        (WebCore):
        * dom/StyledElement.h:
        (StyledElement):

2012-11-06  Alexei Filippov  <alph@chromium.org>

        Web Inspector: dim size bar for expanded item in native memory snapshot grid
        https://bugs.webkit.org/show_bug.cgi?id=101062

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/nativeMemoryProfiler.css:
        (.native-snapshot-view .data-grid .expanded div.size-bar):

2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
        https://bugs.webkit.org/show_bug.cgi?id=100826

        Reviewed by Hajime Morita.

        We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
        2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
        We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
        shadowPseudoId.

        In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
        UAShadowRoot. However, we will disable them later.

        Test: fast/dom/shadow/shadow-pseudo-id.html

        * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::updateSpecifiersWithElementName):
        (WebCore::CSSParser::updateSpecifiers):
        * css/CSSParserValues.h:
        (WebCore::CSSParserSelector::isCustomPseudoElement):
        (CSSParserSelector):
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::pseudoId):
        (WebCore::CSSSelector::parsePseudoType):
        (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
        (WebCore::CSSSelector::extractPseudoType):
        * css/CSSSelector.h:
        (CSSSelector):
        (WebCore::CSSSelector::isCustomPseudoElement):
        (WebCore):
        * css/CSSSelectorList.cpp:
        (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
        UNKNOWN before. i.e. It contians all three types for now.
        (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
        * css/CSSSelectorList.h:
        (CSSSelectorList):
        * css/RuleSet.cpp:
        (WebCore::RuleSet::addRule):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        * dom/Element.cpp:
        (WebCore::Element::setShadowPseudoId):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorQueryCache::add):

2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
        https://bugs.webkit.org/show_bug.cgi?id=100922

        Reviewed by Hajime Morita.

        We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
        We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.

        For performance reason, we have a flag that an element should be unregistered in ShadowRoot.

        Test: fast/dom/shadow/has-elementshadow.html

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
        is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
        (WebCore):
        (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
        * dom/ShadowRoot.h:
        (ShadowRoot):
        (WebCore::ShadowRoot::registerElementShadow):
        (WebCore::ShadowRoot::unregisterElementShadow):
        (WebCore::ShadowRoot::hasElementShadow):
        (WebCore::ShadowRoot::countElementShadow):
        * testing/Internals.cpp:
        (WebCore::Internals::countElementShadow):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-11-06  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
        https://bugs.webkit.org/show_bug.cgi?id=101030

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/inspector.js:
        (WebInspector.loaded.WebInspector.socket.onclose):
        (WebInspector.loaded):
        (WebInspector.detached):

2012-11-06  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
        https://bugs.webkit.org/show_bug.cgi?id=100666

        Reviewed by Pavel Feldman.

        * inspector/front-end/SettingsScreen.js:
        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):

2012-11-02  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: JavaScript web workers debugging crashes
        https://bugs.webkit.org/show_bug.cgi?id=101065

        Reviewed by Alexander Pavlov.

        Clear m_pageInspector when page inspector instance is deleted.
        Disable worker inspection when front-end disconnects.

        Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html

        * inspector/InspectorWorkerAgent.cpp:
        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
        WorkerMessagingProxy so that it can clear pointer to the channel.

2012-11-06  Nikita Vasilyev  <me@elv1s.ru>

        Web Inspector: Console: wrap long URLs
        https://bugs.webkit.org/show_bug.cgi?id=100970

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/inspector.css:
        (.console-message-url):

2012-11-05  Keishi Hattori  <keishi@webkit.org>

        Introduce Day class to calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=101194

        Reviewed by Kent Tamura.

        Introducing Day class so day, week, and month can all be abstracted. To
        solve some of the complexity around which months to show, I made
        CalendarPicker in charge of it. This also made YearMonthController and
        DaysTable independent of each other.

        No new tests. Covered by existing calendar-picker-*.html tests.

        * Resources/pagepopups/calendarPicker.js:
        (createUTCDate): Allow negative month or date.
        (parseDateString): Will return Day or Month depending on string format.
        (Day): Represents a day.
        (Day.parse): Parse yyyy-mm-dd.
        (Day.createFromDate): Creates a Day that contains a datetime.
        (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
        (Day.prototype.equals): Returns true if they are the same.
        (Day.prototype.previous): Returns the previous day.
        (Day.prototype.next): Returns the next day.
        (Day.prototype.startDate): Returns the datetime that is the start of this day.
        (Day.prototype.endDate): Returns the datetime that is the start of this day.
        (Day.prototype.valueOf): Returns the milliseconds since epoch.
        (Day.prototype.toString): Returns an ISO date string.
        (Month): Fix bug in calculating month from value.
        (Month.prototype.endDate): Use Day.Maximum.
        (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
        (CalendarPicker.prototype._layout):
        (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
        (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
        (CalendarPicker.prototype.showMonth): Shows the given month. If the month is out of the range of months that should be shown, we clamp the month and show that.
        (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
        (YearMonthController): Removed _currentMonth.
        (YearMonthController.prototype.attachTo):
        (YearMonthController.prototype.setMonth):
        (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
        (YearMonthController.prototype.moveRelatively):
        (DaysTable):
        (CalendarPicker.prototype._stepMismatch): Made private.
        (CalendarPicker.prototype._outOfRange): Made private.
        (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
        (DaysTable.prototype._renderMonth):
        (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
        (DaysTable.prototype.selectRange): Select a range.
        (DaysTable.prototype._maybeSetPreviousMonth):
        (DaysTable.prototype._maybeSetNextMonth):
        (DaysTable.prototype._handleKey):
        (CalendarPicker.prototype._handleBodyKeyDown):

2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>

        Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
        https://bugs.webkit.org/show_bug.cgi?id=101009

        This fix requires the most recent version of harfbuzz-ng.
        EFL port uses version 0.9.2, which doesn't have the fix.

        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):

2012-11-05  Glenn Adams  <glenn@skynav.com>

        Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
        https://bugs.webkit.org/show_bug.cgi?id=101281

        Reviewed by Ryosuke Niwa.

        Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
        caused by http://trac.webkit.org/changeset/133529.

        See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.

        * platform/text/TextBreakIterator.cpp:
        (WebCore::acquireLineBreakIterator):
        * platform/text/gtk/TextBreakIteratorGtk.cpp:
        (WebCore::setUpIterator):
        (WebCore::acquireLineBreakIterator):
        * platform/text/wince/TextBreakIteratorWinCE.cpp:
        (WebCore::acquireLineBreakIterator):

2012-11-05  Hayato Ito  <hayato@chromium.org>

        Use switch/case statements instead of if/elseif in CSSSelector.cpp
        https://bugs.webkit.org/show_bug.cgi?id=100470

        Reviewed by Ryosuke Niwa.

        Minor clean up. We can get compiler warnings if we use switch/case statements here.

        No changes to functionality, so no new tests.

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::selectorText):

2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] Unicode combining diacritical aren't always combined on Linux
        https://bugs.webkit.org/show_bug.cgi?id=101009

        Reviewed by Kent Tamura.

        Add a space character to harfbuzzBuffer as pre-context. This will prevent
        harfbuzz from inserting dotted-circle.

        Test: fast/text/international/combining-marks-position.html

        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):

2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>

        LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
        https://bugs.webkit.org/show_bug.cgi?id=101201

        Reviewed by Hajime Morita.

        When we use a bit field for enum, Windows compiler seems returning some wrong value.
        We would like to avoid using a bit field for enum value.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::create):
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::type):
        (WebCore::ShadowRoot::setType):
        (ShadowRoot):

2012-11-05  Benjamin Poulain  <benjamin@webkit.org>

        TransformOperationInfo's constructor is really slow
        https://bugs.webkit.org/show_bug.cgi?id=101143

        Reviewed by Sam Weinig.

        TransformOperationInfo() was slow for a few reasons:
        -The function used a lot of branches. The basic assumption is that the input
         is incorrect, thus every character is an opportunity to fail.
        -Every branch had to be tested in order. If the name was matching the last if()
         all the previous names had to be tested.
        -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
         every time.
        -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.

        This can be fixed by either
        1) Compute the lowercase name, then match it to a HashMap.
        2) Write a tree to quickly reduce the number of branch needed.

        The first solution is not viable because 16bits strings case folding
        remains an important bottleneck.

        Instead, the code now splits the names on simple characteristics to
        match any name in a limited number of branches.

        The assumption is the input is correct, so & is used instead of && to
        avoid branches in favor of conditional instructions.

        * css/CSSParser.cpp:
        (WebCore::TransformOperationInfo::TransformOperationInfo):

2012-11-05  Simon Fraser  <simon.fraser@apple.com>

        RenderGeometryMap asserts when loading http://en.softonic.com/mac
        https://bugs.webkit.org/show_bug.cgi?id=101284
        <rdar://problem/11540560>

        Reviewed by Tim Horton.

        When FrameView::layout() calls document->updateStyleIfNeeded(), we
        can be in a state where FrameView::needsLayout() is false. However,
        this is a bad time to update compositing layers, because we're about
        to do layout, which will require us to update them again soon anyway,
        and some RenderLayers may not have been sized or positioned yet.
        
        Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
        and toggling it around this call to updateStyleIfNeeded().
        Read this state in updateCompositingLayersAfterStyleChange(), which is
        now called unconditionally by recalcStyle(), but returns early
        if this flag is set, or layout is pending.

        * dom/Document.cpp:
        (WebCore::Document::recalcStyle):
        * page/FrameView.cpp:
        (WebCore::FrameView::reset):
        (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
        (WebCore::FrameView::layout):
        * page/FrameView.h:
        (FrameView):

2012-11-05  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=101275
        Clean up ScrollingConstraints.h

        Reviewed by Simon Fraser.

        This class cleans up ScrollingConstraints.h by removing the constructors since the 
        compiler will generate those constructors for us anyway. The patch also makes the 
        two override functions private.
        * page/scrolling/ScrollingConstraints.h:
        (ViewportConstraints):
        (FixedPositionViewportConstraints):
        (StickyPositionViewportConstraints):

2012-11-05  Simon Fraser  <simon.fraser@apple.com>

        Make Document::updateStyleIfNeeded() non-virtual
        https://bugs.webkit.org/show_bug.cgi?id=101273

        Reviewed by Eric Seidel.

        Document::updateStyleIfNeeded() has been virtual like forever, but
        no-one ever overrides it, so make it non-virtual.

        * dom/Document.h:
        (Document):

2012-11-05  Philip Rogers  <pdr@google.com>

        Unblock SVG external references
        https://bugs.webkit.org/show_bug.cgi?id=100635

        Reviewed by Adam Barth.

        This patch reverts r132849 and r132869 because the potential XSS issue
        turned out to not be an issue after all.

        Covered by existing tests, many of which are re-whitelisted with this patch.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::canRequest):

2012-11-05  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=101001
        Pages with position:fixed elements should still be able to scroll on 
        the scrolling thread
        -and corresponding-
        <rdar://problem/10857315>

        Reviewed by Simon Fraser.

        This patch adds two new classes. ScrollingStateFixedNode is a class 
        to represent fixed nodes in the state tree, and 
        ScrollingTreeFixedNode represents fixed node in the scrolling tree 
        over on the scrolling thread.
        * WebCore.xcodeproj/project.pbxproj:

        When we are (non-programatically) scrolling fixed objects on the 
        scrolling thread, we do not want to do any work here. 
        * page/FrameView.cpp:
        (WebCore::FrameView::updateFixedElementsAfterScrolling):

        Whenever we sync the position of the main frame's layer, we have to 
        do the same for scrolling tree children.
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):

        New ScrollingNodeType -- FixedNode, yay! And two new functions 
        specific to dealing with FixedNodes.
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
        (WebCore::ScrollingCoordinator::syncChildPositions):

        This is the new class that represents fixed nodes in the state tree. 
        All of the changed properties are stored within 
        FixedPositionViewportConstraints.
        * page/scrolling/ScrollingStateFixedNode.cpp: Added.
        (WebCore):
        (WebCore::ScrollingStateFixedNode::create):
        (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
        (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
        (WebCore::ScrollingStateFixedNode::updateConstraints):
        (WebCore::ScrollingStateFixedNode::dumpProperties):
        * page/scrolling/ScrollingStateFixedNode.h: Added.
        (WebCore):
        (ScrollingStateFixedNode):
        (WebCore::ScrollingStateFixedNode::viewportConstraints):
        (WebCore::toScrollingStateFixedNode):

        Make sure to create the right type of clone for each node.
        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::cloneAndReset):

        Now that m_children may be anything other than null, I found this 
        bug. We encounter it when the parameter to removeChild is this and we 
        want to remove all of our children. In that case, this is obviously 
        not found in its own child array.
        (WebCore::ScrollingStateNode::removeChild):

        ScrollingStateNode now caches the GraphicsLayer in addition to the 
        PlatformLayer. This will allow us to sync the GraphicsLayer position 
        at the appropriate times.
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
        (WebCore::ScrollingStateNode::graphicsLayer):
        (ScrollingStateNode):

        Handle fixed nodes.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode):

        New function parentScrollPositionDidChange() is called on children 
        when the parent has scrolled.
        * page/scrolling/ScrollingTreeNode.h:
        (ScrollingTreeNode):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (ScrollingTreeScrollingNode):

        Return true for supportsFixedPositionLayers(). 
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):

        Handle fixed nodes.
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::attachToStateTree):

        Now that m_children can be non-null I caught this pre-existing bug 
        where we would come times remove a node without updating the HashMap. 
        This patch fixes that by consolidating the removal into one function.
        (WebCore::ScrollingCoordinatorMac::removeNode):
        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
        (WebCore::ScrollingCoordinatorMac::clearStateTree):

        Update the GraphicsLayers to reflect the new position that the 
        Scrolling thread has moved the underlying CALayer to already.
        (WebCore::ScrollingCoordinatorMac::syncChildPositions):

        Pass new constraints over to the appropriate state node.
        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):

        Cache the GraphicsLayer in addition to the PlatformLayer.
        * page/scrolling/mac/ScrollingStateNodeMac.mm:
        (WebCore::ScrollingStateNode::setScrollLayer):

        Here is the new class that represents fixed nodes over on the 
        scrolling thread. 
        * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
        (WebCore):
        (ScrollingTreeFixedNode):
        * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
        (WebCore):
        (WebCore::ScrollingTreeFixedNode::create):
        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
        (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
        (WebCore::ScrollingTreeFixedNode::update):

        This is where the magic happens. re-position the fixed object when 
        its parent has scrolled so that it appears to have not moved at all.
        (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):

        Whenever we change the position of a scrolling layer, tell our 
        children.
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

        Handle fixed nodes.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):

        detachFromScrollingCoordinator() needs to be public so that it can be 
        called from RenderLayerCompositor for fixed nodes.
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):

        RenderLayerCompositor takes control of attaching and detaching fixed 
        nodes to/from the ScrollingCoordinator. 
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
        (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
        (WebCore::RenderLayerCompositor::updateBacking):
        (WebCore::RenderLayerCompositor::layerWillBeRemoved):
        (WebCore::RenderLayerCompositor::didMoveOnscreen):
        (WebCore::RenderLayerCompositor::willMoveOffscreen):
        (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
        (WebCore::isRootmostFixedOrStickyLayer):
        (WebCore):
        (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
        (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
        (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
        (WebCore::RenderLayerCompositor::computeViewportConstraints):
        (WebCore::nearestScrollingCoordinatorAncestor):
        (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
        (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
        (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
        (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
        * rendering/RenderLayerCompositor.h:
        (WebCore):
        (RenderLayerCompositor):

2012-11-05  Geoffrey Garen  <ggaren@apple.com>

        Cleaned up the Font class in preparation for optimizing kerning and ligatures
        https://bugs.webkit.org/show_bug.cgi?id=101258

        Reviewed by Dan Bernstein.

        * platform/graphics/Font.h:
        (WebCore::Font::typesettingFeatures):
        (WebCore::Font::computeTypesettingFeatures): Compute and cache our
        typesetting features instead of recomputing each time a client asks
        for them. This makes the class interface easier to use because
        "typesettingFeatures()" can appear in more than one expression without
        undue performance cost. This may also be a small speedup to code that
        calls typesettingFeatures() often for other reasons.

        * platform/graphics/Font.cpp:
        (WebCore::Font::Font):
        (WebCore::Font::operator=):
        (WebCore::Font::update): Ditto.

        (WebCore::Font::width): Unforked the width() function so all width-related
        interfaces can benefit from optimization without duplicate code.

2012-11-05  Peng Huang  <penghuang@google.com>

        Webkit does not handle some media keys correctly On Linux gtk platform.
        https://bugs.webkit.org/show_bug.cgi?id=101221

        Reviewed by Alexey Proskuryakov.

        Add media keyboard support on Linux gtk platform.

        * platform/chromium/KeyCodeConversionGtk.cpp:
        (WebCore::windowsKeyCodeForKeyEvent):

2012-11-05  Glenn Adams  <glenn@skynav.com>

        Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
        https://bugs.webkit.org/show_bug.cgi?id=89235

        Reviewed by Eric Seidel.

        See also wiki documentation at:
        [1] http://trac.webkit.org/wiki/LineBreaking
        [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping

        Web exposed changes include:
        (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
        (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
        (3) See [2] above for details regarding interpretation.

        Tests: css3/line-break/line-break-auto-centered.html
               css3/line-break/line-break-auto-half-kana.html
               css3/line-break/line-break-auto-hyphens.html
               css3/line-break/line-break-auto-inseparables.html
               css3/line-break/line-break-auto-iteration-marks.html
               css3/line-break/line-break-auto-postfixes.html
               css3/line-break/line-break-auto-prefixes.html
               css3/line-break/line-break-auto-sound-marks.html
               css3/line-break/line-break-loose-centered.html
               css3/line-break/line-break-loose-half-kana.html
               css3/line-break/line-break-loose-hyphens.html
               css3/line-break/line-break-loose-inseparables.html
               css3/line-break/line-break-loose-iteration-marks.html
               css3/line-break/line-break-loose-postfixes.html
               css3/line-break/line-break-loose-prefixes.html
               css3/line-break/line-break-loose-sound-marks.html
               css3/line-break/line-break-normal-centered.html
               css3/line-break/line-break-normal-half-kana.html
               css3/line-break/line-break-normal-hyphens.html
               css3/line-break/line-break-normal-inseparables.html
               css3/line-break/line-break-normal-iteration-marks.html
               css3/line-break/line-break-normal-postfixes.html
               css3/line-break/line-break-normal-prefixes.html
               css3/line-break/line-break-normal-sound-marks.html
               css3/line-break/line-break-strict-centered.html
               css3/line-break/line-break-strict-half-kana.html
               css3/line-break/line-break-strict-hyphens.html
               css3/line-break/line-break-strict-inseparables.html
               css3/line-break/line-break-strict-iteration-marks.html
               css3/line-break/line-break-strict-postfixes.html
               css3/line-break/line-break-strict-prefixes.html
               css3/line-break/line-break-strict-sound-marks.html

        * platform/text/LineBreakIteratorPoolICU.h:
        (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
        Add static function to construct ICU locale argument (also used as pool key) with additional
        break keyword.
        (WebCore::LineBreakIteratorPool::take):
        (WebCore::LineBreakIteratorPool::put):
        (LineBreakIteratorPool):
        Remove direct dependency from ICU library (and types), moving that dependency into
        new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
        Update to take line break mode into account.
        Create (and cache) different break iterators depending on line break mode (in addition to locale),
        which entails expanding pool entry key format to optionally append "@break=" +
        "loose"|"normal"|"strict" keyword to locale string.

        * platform/text/TextBreakIterator.h:
        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
        (WebCore::LazyLineBreakIterator::isLooseCJKMode):
        (WebCore::LazyLineBreakIterator::get):
        (WebCore::LazyLineBreakIterator::reset):
        (LazyLineBreakIterator):
        Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
        Add state member to indicate line break mode.

        * platform/text/TextBreakIteratorICU.cpp:
        (WebCore::acquireLineBreakIterator):
        Use new line break mode when making iterator from pool.
        Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
        (WebCore::releaseLineBreakIterator):
        Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
        (WebCore::isCJKLocale):
        New functions for determining if CJK rules apply.
        (WebCore::openLineBreakIterator):
        New function for abstracting opening of ICU style line break iterator. This is now
        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
        This function also takes into account the line break mode.
        (WebCore::closeLineBreakIterator):
        (WebCore::mapLineIteratorModeToRules):
        New function for abstracting closing of ICU style line break iterator. This is now
        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
        Pass line break iterator mode flag when reseting LazyLineBreakIterator.
        Add looseMode local variable to prevent need for computing under isBreakable().

        * rendering/RenderText.cpp:
        (WebCore::mapLineBreakToIteratorMode):
        Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
        and RenderBlock::LineBreaker::nextLineBreak.
        (WebCore::RenderText::computePreferredLogicalWidths):
        Ensure (lazy line) breakIterator is initialized for line break mode.
        Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.

        * rendering/RenderText.h:
        (WebCore):
        Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
        and RenderBlock::LineBreaker::nextLineBreak.

        * rendering/break_lines.cpp:
        (WebCore):
        Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
        to include loose mode parameter.
        (WebCore::isBreakableSpace):
        Add externally specified loose mode parameter to prevent need to invoke line break iterator
        accessor method on each invocation. Use new loose mode flavors off NBP functions.
        (WebCore::needsLineBreakIterator):
        Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
        to prevent regression to non loose mode path.
        (WebCore::nextBreakablePosition):
        (WebCore::nextBreakablePositionIgnoringNBSP):
        Use new template parameter enums described above.
        (WebCore::nextBreakablePositionIgnoringNBSPLoose):
        (WebCore::nextBreakablePositionLoose):
        Introduce two additional 'loose' mode flavors of NBP template expansions.

        * rendering/break_lines.h:
        (WebCore):
        (WebCore::isBreakable):
        Add externally specified loose mode parameter to prevent need to invoke line break iterator
        accessor method on each invocation.

2012-11-05  Adam Barth  <abarth@webkit.org>

        webkitRegionLayoutUpdate is incorrectly named
        https://bugs.webkit.org/show_bug.cgi?id=100335

        Reviewed by Ojan Vafai.

        DOM event names are supposed to be lower case.

        * dom/EventNames.h:
        (WebCore):
        * dom/WebKitNamedFlow.cpp:
        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):

2012-11-05  Adam Barth  <abarth@webkit.org>

        [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
        https://bugs.webkit.org/show_bug.cgi?id=101110

        Reviewed by Kentaro Hara.

        This patch generalizes our support for storing wrappers in DOM objects
        to be usable for more than just nodes. After this patch, any object
        with a ScriptWrappable base class will have its wrapper stored inline
        in the object in the main world.

        To achieve this goal, this patch hides the details of how we map from
        objects to wrappers inside DOMDataStore and then removes the
        IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
        DOMWrapperMap base class and make all of these functions non-virtual.

        * UseV8.cmake:
        * WebCore.gypi:
            - Remove deleted files.
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateNormalAttrGetter):
        (GenerateConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateToV8Converters):
            - Rather than grabbing at the DOMWrapperMap directly, we now ask
              the DOMDataStore to do this work for us.
        * bindings/scripts/test/V8/V8Float64Array.h:
        (WebCore::V8Float64Array::wrap):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (WebCore::V8TestActiveDOMObject::wrap):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (WebCore::V8TestCustomNamedGetter::wrap):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (WebCore::V8TestEventConstructor::wrap):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (WebCore::V8TestEventTarget::wrap):
        * bindings/scripts/test/V8/V8TestException.h:
        (WebCore::V8TestException::wrap):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::wrap):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (WebCore::V8TestMediaQueryListListener::wrap):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::wrap):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::constructorCallback):
        (WebCore::V8TestNode::wrapSlow):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
        * bindings/scripts/test/V8/V8TestObj.h:
        (WebCore::V8TestObj::wrap):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (WebCore::V8TestSerializedScriptValueInterface::wrap):
        * bindings/v8/DOMDataStore.cpp:
            - Updated run-bindings-test results.
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::~DOMDataStore):
            - Simplify constructor and destructor now that there is only one
              hash map.
        (WebCore::DOMDataStore::current):
            - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
              need to handle it here.
        (WebCore::DOMDataStore::reportMemoryUsage):
            - Simplfied now that there is only one wrapper map.
        (WebCore::DOMDataStore::weakCallback):
            - Moved from IntrusiveDOMWrapperMap.h
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::get):
        (WebCore::DOMDataStore::set):
            - These functions now handle the intrusive case with a branch
              rather than with a virtual function call. In many cases, the
              branch can be optimized away by the compiler when the overloaded
              inline functions are inlined.
        (WebCore::DOMDataStore::wrapperIsStoredInObject):
            - Overloaded functions to determine whether to store the wrapper
              inside the object or in the hashmap.
        (WebCore::DOMDataStore::getWrapperFromObject):
        (WebCore::DOMDataStore::storeWrapperInObject):
            - Overloaded functions to get/set the wrapper from inside the
              object itself.
        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperHashMap::get):
        (WebCore::DOMWrapperHashMap::set):
        (WebCore::DOMWrapperHashMap::clear):
        (WebCore::DOMWrapperHashMap::reportMemoryUsage):
        (WebCore::DOMWrapperHashMap::remove):
            - These functions are no longer virtual.
        * bindings/v8/DOMWrapperWorld.h:
        * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
        * bindings/v8/ScriptProfiler.cpp:
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::neuterBinding):
            - We need to keep the type information slightly longer so that we
              look in the right wrapper map.
        * bindings/v8/V8DOMMap.cpp: Removed.
        * bindings/v8/V8DOMMap.h: Removed.
        * bindings/v8/V8DOMWindowShell.cpp:
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):
            - Defer this work to the store.
        (WebCore::V8DOMWrapper::setWrapperClass):
            - An overloaded function to set the right wrapper class.
        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
            - This function is now general enough to handle ever kind of object.
        * bindings/v8/V8GCController.cpp:
        * bindings/v8/V8NPObject.cpp:
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        * bindings/v8/WorkerScriptController.cpp:
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
        (WebCore::v8HTMLImageElementConstructorCallback):
            - Call the more general function (instead of the now-deleted specialized function).

2012-11-05  Alexey Proskuryakov  <ap@apple.com>

        Get rid of setCookieStoragePrivateBrowsingEnabled.
        https://bugs.webkit.org/show_bug.cgi?id=101247

        Reviewed by Brady Eidson.

        We were only doing anything here on Mac, and only because we couldn't know if
        sessions were in use. But sessions are always in use, and those obsolete changing
        cookie storage explicitly.

        * platform/network/win/CookieStorageWin.cpp: Removed.
        * PlatformWinCE.cmake:
        * WebCore.gypi:
        No more CookieStorageWin.cpp with an empty implementation.
    
        * WebCore.exp.in:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        We no longer need this WKSI function.

        * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
        Removed the only call to setCookieStoragePrivateBrowsingEnabled().

        * platform/network/CookieStorage.h:
        * platform/network/cf/CookieStorageCFNet.cpp:
        * platform/network/curl/CookieJarCurl.cpp:
        * platform/network/soup/CookieStorageSoup.cpp:
        * platform/qt/TemporaryLinkStubsQt.cpp:
        Removed empty setCookieStoragePrivateBrowsingEnabled implementations.

        * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
        that we should observe private storage while in private browsing mode. I don't think
        that it was correct - Safari doesn't display content of private storage, and thus
        doesn't need to know about changes.
        The removal of this function has an effect on WebKit1 clients that enable private
        browsing. We used to globally change cookie storage, even for loads not initiated
        by WebKit. Now we match API description: "If private browsing is enabled, WebKit
        will not store information about sites the user visits."

2012-11-05  Florin Malita  <fmalita@chromium.org>

        Crash when mixing layers, foreignObjects and SVG hidden containers
        https://bugs.webkit.org/show_bug.cgi?id=87297

        Reviewed by Dirk Schulze.

        Foreign objects may introduce content which requires layers, but layer creation is
        suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
        tree state. This patch prevents foreignObject renderer instantiation under
        RenderSVGHiddenContainers.

        Test: svg/foreignObject/foreign-object-defs-crash.svg

        * svg/SVGForeignObjectElement.cpp:
        (WebCore::SVGForeignObjectElement::rendererIsNeeded):
        (WebCore):
        * svg/SVGForeignObjectElement.h:
        (SVGForeignObjectElement):

2012-11-05  Simon Fraser  <simon.fraser@apple.com>

        Remove the unused m_fixedPositionedElements from RenderView
        https://bugs.webkit.org/show_bug.cgi?id=101251

        Reviewed by Anders Carlsson.

        m_fixedPositionedElements was completely unused. Remove it
        and the related typedef.

        * rendering/RenderView.h:
        (RenderView):

2012-11-05  Simon Fraser  <simon.fraser@apple.com>

        Fix layer borders to cleaning appear and disappear on switching
        https://bugs.webkit.org/show_bug.cgi?id=101136

        Reviewed by Sam Weinig.

        GraphicsLayers decided whether to show layer borders based
        on a callback through the GraphicsLayerClient. This made it
        hard to manage state, resulting in a failure to cleanly
        hide layers when toggled off via the preference.
        
        Changed the layer border and repaint counter visibility to be bits
        stored on GraphicsLayer just like other properties, with getters
        and setters. RenderLayerBacking now updates these debug
        indicators when we update other compositing layer properties.
        
        In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
        in several places by setting the change flag DebugIndicatorsChanged
        for properties whose values affect the appearance of the debug border.

        Removed the GraphicsLayerClient methods showDebugBorders() and
        showRepaintCounter() which are no longer required.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::GraphicsLayer):
        (WebCore::GraphicsLayer::updateDebugIndicators):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::setShowDebugBorder):
        (WebCore::GraphicsLayer::isShowingDebugBorder):
        (WebCore::GraphicsLayer::setShowRepaintCounter):
        (WebCore::GraphicsLayer::isShowingRepaintCounter):
        (WebCore::GraphicsLayer::repaintCount):
        (WebCore::GraphicsLayer::incrementRepaintCount):
        * platform/graphics/GraphicsLayerClient.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
        (WebCore::GraphicsLayerCA::setMasksToBounds):
        (WebCore::GraphicsLayerCA::setDrawsContent):
        (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateMasksToBounds):
        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
        (WebCore::GraphicsLayerCA::updateDebugBorder):
        (WebCore::GraphicsLayerCA::setShowDebugBorder):
        (WebCore::GraphicsLayerCA::setShowRepaintCounter):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        (WebCore::GraphicsLayerCA::setupContentsLayer):
        (WebCore::GraphicsLayerCA::cloneLayer):
        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):
        (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateDebugIndicators):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateBacking):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-11-05  Genevieve Mak  <gmak@rim.com>

        [BLACKBERRY] Update touch code to reflect touch refactor
        https://bugs.webkit.org/show_bug.cgi?id=101227

        Reviewed by Rob Buis.

        PR #2706785
        Reviewed Internally by: Mike Lattanzio

        * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
        (WebCore::touchEventType):
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):

2012-11-05  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
        https://bugs.webkit.org/show_bug.cgi?id=99083

        Reviewed by Stephen White.

        Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.

        No new tests needed. This patch does not change anything functionally.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsOpaque):
        (WebCore::GraphicsLayerChromium::paint):
        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
        (OpaqueRectTrackingContentLayerDelegate):

2012-11-05  Stephen White  <senorblanco@chromium.org>

        [chromium] Build fix after http://trac.webkit.org/changeset/133488.
        Removed a deleted file.  Unreviewed.

        * WebCore.gypi:

2012-11-05  Kentaro Hara  <haraken@chromium.org>

        [V8] toV8(impl) should return null if impl is 0
        https://bugs.webkit.org/show_bug.cgi?id=101206

        Reviewed by Adam Barth.

        toV8(impl) should return null if impl is 0. However,
        V8HTMLCollection::toV8() does not have the null check.
        All other toV8()s return null.

        No tests. I think there will be no call path that hits the change.

        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        (WebCore::toV8):

2012-11-05  David Barton  <dbarton@mathscribe.com>

        Implement SimpleFontData::platformBoundsForGlyph on skia
        https://bugs.webkit.org/show_bug.cgi?id=101115

        Reviewed by Eric Seidel.

        The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.

        Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*

        * platform/graphics/skia/SimpleFontDataSkia.cpp:
        (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.

2012-11-05  Andreas Kling  <kling@webkit.org>

        Decouple Attr logic from ElementAttributeData.
        <http://webkit.org/b/101126>

        Reviewed by Antti Koivisto.

        Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
        This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
        can be shared by any number of Elements at a given time.

        Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
        "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.

        * dom/Element.h:
        * dom/ElementAttributeData.h:
        * dom/Element.cpp:
        (WebCore::attrNodeListMap):
        (WebCore::attrNodeListForElement):
        (WebCore::ensureAttrNodeListForElement):
        (WebCore::removeAttrNodeListForElement):
        (WebCore::findAttrNodeInList):
        (WebCore::Element::~Element):
        (WebCore::Element::detachAttribute):
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::removeAttributeInternal):
        (WebCore::Element::getAttributeNode):
        (WebCore::Element::getAttributeNodeNS):
        (WebCore::Element::normalizeAttributes):
        (WebCore::Element::attrIfExists):
        (WebCore::Element::ensureAttr):
        (WebCore::Element::detachAttrNodeFromElementWithValue):
        (WebCore::Element::detachAllAttrNodesFromElement):
        (WebCore::Element::cloneAttributesFromElement):

            Move everything Attr-related into Element.cpp while simplifying some loops and remove
            conditions that are no longer needed as they used to depend on having an attributeData().

        * dom/Node.h:
        (WebCore::Node::hasSyntheticAttrChildNodes):
        (WebCore::Node::setHasSyntheticAttrChildNodes):

            Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().

        * dom/Attr.cpp:
        (WebCore::Attr::detachFromElementWithValue):

            Remove awkward indirection and let the call site deal with removing the Attr node from
            the Element's list of Attr nodes.

        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::clearAttributes):

            Remove now-unused Element* argument.

2012-11-05  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Polygon edges should span colinear vertices
        https://bugs.webkit.org/show_bug.cgi?id=99343

        Reviewed by Dirk Schulze.

        ExclusionPolygonEdges now span coincident and collinear vertices. Currently
        pairs of vertices are only considered coincident if their coordinates are exactly
        equal. Similarly, a vertex is only considered collinear with an edge if the area
        of the triangle defined by the three vertices is exactly zero.  In the future it
        may be useful to relax the comparison with zero.

        Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
               fast/exclusions/shape-inside/shape-inside-collinear-vertices.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::determinant): Used to measure collinearity.
        (WebCore):
        (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
        (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
        (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
        (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
        (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
        * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.

2012-11-05  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
        https://bugs.webkit.org/show_bug.cgi?id=101228

        Reviewed by Kenneth Rohde Christiansen.

        Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
        and reuse the POSIX one since it is pretty much the same.

        No new tests, no behavior change.

        * PlatformEfl.cmake:
        * platform/efl/SharedBufferEfl.cpp: Removed.

2012-11-05  Kentaro Hara  <haraken@chromium.org>

        Add a comment about a return value of IDBKey::toV8()
        https://bugs.webkit.org/show_bug.cgi?id=101212

        Reviewed by Adam Barth.

        Although all other toV8(impl) return null when impl is 0,
        IDBKey::toV8(impl) is expected to return undefined when impl is 0.
        This patch adds a comment about it.

        No tests.

        * bindings/js/JSIDBKeyCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8IDBKeyCustom.cpp:
        (WebCore::toV8):

2012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>

        [Cairo] Make Cairo honor image orientation
        https://bugs.webkit.org/show_bug.cgi?id=101207

        Reviewed by Kenneth Rohde Christiansen.

        Implement transformed image drawing in BitmapImageCairo, similar
        as it was done for Skia in bug 100179, r132384.
        The image drawing code needs to transform the graphics context
        depending on exif orientation in order for this to work.

        No new tests, covered by fast/images/exif-* which are passing now.

        * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
        (WebCore):

2012-11-05  Kentaro Hara  <haraken@chromium.org>

        [V8] Dispose() and Clear() should be always coupled for safety
        https://bugs.webkit.org/show_bug.cgi?id=101191

        Reviewed by Adam Barth.

        Clear() is not mandatory. However, to avoid misusing already
        disposed wrappers, Clear() should be always called just
        after Dispose().

        No tests. No change in behavior.

        * bindings/v8/DOMWrapperMap.h:
        (WebCore::DOMWrapperHashMap::defaultWeakCallback):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        (WebCore::IntrusiveDOMWrapperMap::weakCallback):
        * bindings/v8/NPV8Object.cpp:
        (WebCore::freeV8NPObject):
        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::~ScheduledAction):
        * bindings/v8/V8NPObject.cpp:
        (WebCore::V8NPTemplateMap::dispose):
        (WebCore::weakNPObjectCallback):
        (WebCore::forgetV8ObjectForNPObject):
        * bindings/v8/V8PerContextData.cpp:
        (WebCore::V8PerContextData::dispose):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::cachedStringCallback):
        (WebCore::IntegerCache::~IntegerCache):
        * bindings/v8/custom/V8InjectedScriptManager.cpp:
        (WebCore::WeakReferenceCallback):

2012-11-05  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Layout of the first shape-inside line can be incorrect
        https://bugs.webkit.org/show_bug.cgi?id=100996

        Reviewed by Dirk Schulze.

        Made the conversion from floating point top/bottom logical shape bounds coordinates
        LayoutUnits explicit and corrected the case where the top value was truncated.  A
        float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
        that the LayoutUnit value is within the shape.
        
        Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html

        * rendering/ExclusionShapeInsideInfo.h:
        (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
        (ExclusionShapeInsideInfo):
        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.

2012-11-05  Antti Koivisto  <antti@apple.com>

        Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
        https://bugs.webkit.org/show_bug.cgi?id=101211

        Reviewed by Andreas Kling.
        
        Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
        destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
        and deleting the object. This looks in principle possible via stylesheets and SVG images.
        
        Speculative fix, no repro, no obvious way to construct a test.

        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::pruneDeadResourcesToSize):
        
            Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
            resource has been kicked out from the cache during destroyDecodedData() and stop iterating
            if has (as it may die when CachedResourceHandle releases it).
            The 'current' pointer is not protected as the resource it points to is allowed to die.
            
2012-11-05  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: Fix jscompiler cast syntax
        https://bugs.webkit.org/show_bug.cgi?id=101066

        Reviewed by Pavel Feldman.

        Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/front-end/ApplicationCacheModel.js:
        (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
        (WebInspector.ApplicationCacheModel.prototype._frameDetached):
        * inspector/front-end/AuditLauncherView.js:
        (WebInspector.AuditLauncherView.prototype._onRequestStarted):
        (WebInspector.AuditLauncherView.prototype._onRequestFinished):
        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
        (WebInspector.BreakpointManager.prototype._breakpointResolved):
        (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
        (WebInspector.BreakpointManager.Storage):
        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
        * inspector/front-end/CSSNamedFlowCollectionsView.js:
        (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
        (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
        (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
        (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
        * inspector/front-end/CSSSelectorProfileView.js:
        (WebInspector.CSSProfileHeader.prototype.createView):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
        (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._frameAdded):
        (WebInspector.ConsoleView.prototype._frameRemoved):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMDocument):
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
        (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
        (WebInspector.DebuggerModel.prototype.):
        (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
        (WebInspector.DebuggerModel.CallFrame.prototype.get location):
        * inspector/front-end/DebuggerScriptMapping.js:
        (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
        * inspector/front-end/DirectoryContentView.js:
        (WebInspector.DirectoryContentView.prototype._sort):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
        * inspector/front-end/ElementsPanelDescriptor.js:
        (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
        * inspector/front-end/ElementsTreeOutline.js:
        (.get node):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
        (WebInspector.ExtensionServer.prototype._handleOpenURL):
        (WebInspector.ExtensionServer.prototype._onGetResourceContent):
        (WebInspector.ExtensionServer.prototype._onSetResourceContent):
        (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
        (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
        (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
        * inspector/front-end/FileContentView.js:
        (WebInspector.FileContentView.prototype._metadataReceived):
        (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
        * inspector/front-end/FileSystemModel.js:
        (WebInspector.FileSystemModel.prototype._frameAdded):
        (WebInspector.FileSystemModel.prototype._frameNavigated):
        (WebInspector.FileSystemModel.prototype._frameDetached):
        * inspector/front-end/FileSystemView.js:
        (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
        (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
        * inspector/front-end/HandlerRegistry.js:
        (WebInspector.HandlerRegistry.prototype._appendHrefItems):
        * inspector/front-end/HeapSnapshotLoader.js:
        (WebInspector.HeapSnapshotLoader.prototype.write):
        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapSnapshotView.prototype._changeBase):
        (WebInspector.HeapProfileHeader.prototype.load):
        (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
        * inspector/front-end/IndexedDBModel.js:
        (WebInspector.IndexedDBModel.prototype._frameNavigated):
        (WebInspector.IndexedDBModel.prototype._frameDetached):
        * inspector/front-end/IndexedDBViews.js:
        (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
        (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
        (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
        (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
        (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
        (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
        (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics.prototype.show):
        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
        (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
        (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
        (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
        * inspector/front-end/NetworkLog.js:
        (WebInspector.NetworkLog.prototype._onRequestStarted):
        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._onRequestUpdated):
        (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
        (WebInspector.NetworkPanel.prototype.reveal):
        (WebInspector.NetworkPanel.prototype.appendApplicableItems):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
        * inspector/front-end/ObjectPopoverHelper.js:
        (WebInspector.ObjectPopoverHelper.prototype.):
        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
        * inspector/front-end/PresentationConsoleMessageHelper.js:
        (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
        (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
        * inspector/front-end/ProfilesPanel.js:
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
        (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype._databaseAdded):
        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
        (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
        (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
        (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
        (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
        (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
        (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
        (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
        (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
        * inspector/front-end/RevisionHistoryView.js:
        (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
        * inspector/front-end/SASSSourceMapping.js:
        (rawLocationToUILocation):
        * inspector/front-end/ScopeChainSidebarPane.js:
        (WebInspector.ScopeChainSidebarPane.prototype.update):
        * inspector/front-end/Script.js:
        (WebInspector.Script.Location.prototype.uiLocation):
        * inspector/front-end/ScriptFormatter.js:
        (WebInspector.ScriptFormatter.prototype.get _worker):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
        (WebInspector.ScriptsPanel.prototype._editorClosed):
        (WebInspector.ScriptsPanel.prototype._editorSelected):
        (WebInspector.ScriptsPanel.prototype._scriptSelected):
        (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
        (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
        (WebInspector.ScriptsPanel.prototype.replaceAllWith):
        (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
        * inspector/front-end/ScriptsPanelDescriptor.js:
        (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
        (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
        (WebInspector.TabbedEditorContainer.prototype._tabSelected):
        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
        * inspector/front-end/TimelineModel.js:
        (WebInspector.TimelineModelLoader.prototype.write):
        * inspector/front-end/UISourceCodeFrame.js:
        (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
        * inspector/front-end/Workspace.js:
        (WebInspector.WorkspaceController.prototype._frameAdded):
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):

2012-11-05  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: render message bubbles in CodeMirror experiment.
        https://bugs.webkit.org/show_bug.cgi?id=101164

        Reviewed by Vsevolod Vlasov.

        It sounds like addLineWidget just makes it happen.

        * inspector/front-end/CodeMirrorTextEditor.js:
        (WebInspector.CodeMirrorTextEditor):
        (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
        (WebInspector.CodeMirrorTextEditor.prototype.get if):
        (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
        (WebInspector.CodeMirrorTextEditor.prototype._change):
        * inspector/front-end/DefaultTextEditor.js:
        (.preventDefaultOnMouseUp):
        * inspector/front-end/PresentationConsoleMessageHelper.js:
        (WebInspector.PresentationConsoleMessageHelper):
        * inspector/front-end/cm/cmdevtools.css:
        (.CodeMirror .webkit-html-message-bubble):
        (.CodeMirror .webkit-html-message-bubble img):
        (.CodeMirror .webkit-html-warning-message):
        (.CodeMirror .webkit-html-error-message):

2012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        Validate CSS Device Adaptation properties and resolve shorthands
        https://bugs.webkit.org/show_bug.cgi?id=95962

        Reviewed by Alexis Menard.

        Add the missing keywords and properties for the viewport at-rule.
        Note that we have to mark that we are inside a viewport scope because
        some properties are not validated as they would be inside a style
        rule. As an example, the semantics of CSSPropertyWidth are completely
        different: on a viewport rule, it stands for a shorthand for the
        minimum and maximum width.

        Test: css3/device-adapt/viewport-properties-validation.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore):
        (WebCore::CSSParser::parseViewportProperty):
        (WebCore::CSSParser::parseViewportShorthand):
        * css/CSSParser.h:
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:

2012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133286, r133385, and r133394.
        http://trac.webkit.org/changeset/133286
        http://trac.webkit.org/changeset/133385
        http://trac.webkit.org/changeset/133394
        https://bugs.webkit.org/show_bug.cgi?id=101198

        Broke image placement on some web sites. (Requested by kling
        on #webkit).

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
        (WebCore::StyleResolver::matchAllRules):
        (WebCore::StyleResolver::canShareStyleWithElement):
        * dom/Attr.cpp:
        (WebCore::Attr::detachFromElementWithValue):
        * dom/Element.cpp:
        (WebCore::Element::~Element):
        (WebCore::Element::detachAttribute):
        (WebCore::Element::getAttribute):
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::removeAttributeInternal):
        (WebCore::Element::getAttributeNode):
        (WebCore::Element::getAttributeNodeNS):
        (WebCore::Element::normalizeAttributes):
        (WebCore::Element::attrIfExists):
        (WebCore::Element::ensureAttr):
        (WebCore::Element::cloneAttributesFromElement):
        * dom/Element.h:
        (Element):
        (WebCore::Element::updateInvalidAttributes):
        * dom/ElementAttributeData.cpp:
        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
        (WebCore):
        (WebCore::attrListMap):
        (WebCore::attrListForElement):
        (WebCore::ensureAttrListForElement):
        (WebCore::removeAttrListForElement):
        (WebCore::findAttrInList):
        (WebCore::ElementAttributeData::attrIfExists):
        (WebCore::ElementAttributeData::ensureAttr):
        (WebCore::ElementAttributeData::setAttr):
        (WebCore::ElementAttributeData::removeAttr):
        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
        (WebCore::ElementAttributeData::reportMemoryUsage):
        (WebCore::ElementAttributeData::cloneDataFrom):
        (WebCore::ElementAttributeData::clearAttributes):
        (WebCore::ElementAttributeData::getAttributeNode):
        * dom/ElementAttributeData.h:
        (WebCore):
        (WebCore::ElementAttributeData::attributeStyle):
        (WebCore::ElementAttributeData::setAttributeStyle):
        (ElementAttributeData):
        (WebCore::ElementAttributeData::ElementAttributeData):
        * dom/Node.h:
        (WebCore):
        (WebCore::Node::hasAttrList):
        (WebCore::Node::attributeStyleDirty):
        (WebCore::Node::setAttributeStyleDirty):
        (WebCore::Node::clearAttributeStyleDirty):
        (Node):
        (WebCore::Node::setHasAttrList):
        (WebCore::Node::clearHasAttrList):
        (WebCore::Node::isStyleAttributeValid):
        (WebCore::Node::setIsStyleAttributeValid):
        (WebCore::Node::clearIsStyleAttributeValid):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::styleAttributeChanged):
        (WebCore::StyledElement::inlineStyleChanged):
        (WebCore::StyledElement::updateAttributeStyle):
        * dom/StyledElement.h:
        (StyledElement):
        (WebCore::StyledElement::invalidateStyleAttribute):
        (WebCore::StyledElement::attributeStyle):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):

2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>

        Unreviewed trivial Qt build fix.

        Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
        builds.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        * platform/graphics/qt/ImageQt.cpp:

2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] ShadowRoot type is not set correctly.
        https://bugs.webkit.org/show_bug.cgi?id=101188

        Reviewed by Hajime Morita.

        ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.

        Test: fast/dom/shadow/shadowroot-type.html

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::create):
        * testing/Internals.cpp:
        (WebCore::Internals::shadowRootType):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-11-05  Kent Tamura  <tkent@chromium.org>

        BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
        https://bugs.webkit.org/show_bug.cgi?id=101038

        Reviewed by Hajime Morita.

        Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
        It means that date/time input elements without
        ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
        DOMActivate event.

        This patch doesn't change behavior yet because Chromimum-Android port
        intercepts user events and doesn't deliver them to date/time input
        elements. <http://crbug.com/159381>

        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        Add DateTimeChooserClient behavior. The code is similar to
        PickerIndicatorElement.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
        Closes DateTimeChooser.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
        Open DateTimeChooser if
         - The element is not disabled,
         - The element is not read-only,
         - The element has a renderer,
         - This event is created by a user gesture, and
         - The element has no DateTimeChooser.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
        Closes DateTimeChooser.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
        Set a string value coming from a chooser to the input element.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
        Clear m_dateTimeChooser when the chooser was closed.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
        Requests to close the chooser.
        * html/BaseChooserOnlyDateAndTimeInputType.h:
        (BaseChooserOnlyDateAndTimeInputType):
         - Implement DateTimeChooserClient
         - Add closeDateTimeChooser helper function.
         - Add detach override.
         - Add m_dateTimeChooser.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
        Added. The code is moved from PickerIndicatorElement.cpp in order to
        share it with BaseChooserOnlyDateAndTimeInputType.
        * html/HTMLInputElement.h:
        (HTMLInputElement): Declare setupDateTimeChooserParameters.
        * html/shadow/PickerIndicatorElement.cpp:
        (WebCore::PickerIndicatorElement::openPopup):
        Move some code to HTMLInputElement::setupDateTimeChooserParameters.

2012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>

        Fix the collapsing border code to handle mixed directionality at the row level
        https://bugs.webkit.org/show_bug.cgi?id=101060

        Reviewed by Ojan Vafai.

        After bug 87900, we support mixed directionality at the row-group level. For coherency
        - as the underlying code didn't support it - we were artificially ignoring 'direction'
        below the row-group. This change relaxes the restriction and patches the collapsing
        borders code to query the right style and border.

        Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
               fast/table/border-collapsing/table-rtl-row-mixed-direction.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::tableStartBorderAdjoiningCell):
        (WebCore::RenderTable::tableEndBorderAdjoiningCell):
        Changed to query the row's direction.

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
        (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
        Added 2 helper functions. They determine if a specific cell's border
        adjoins the table. This code is required as the last cell's end border
        can be resolved against the start border.

        (WebCore::RenderTableCell::computeCollapsedStartBorder):
        (WebCore::RenderTableCell::computeCollapsedEndBorder):
        Updated these functions now that being the start / end column doesn't mean
        that we have to resolve against the row / row-group / table's border.

        * rendering/RenderTableCell.h:
        (WebCore::RenderTableCell::styleForCellFlow):
        Updated to return the row's style.

        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::borderAdjoiningStartCell):
        (WebCore::RenderTableRow::borderAdjoiningEndCell):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::borderAdjoiningStartCell):
        (WebCore::RenderTableSection::borderAdjoiningEndCell):
        Updated these functions to work with mixed directionality.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::setLogicalPositionForCell):
        Changed this function to use the section's direction. This is wrong and should be changed
        once we properly fix the collapsing border code.

        (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
        Added a FIXME.

        * rendering/style/CollapsedBorderValue.h:
        (WebCore::CollapsedBorderValue::width):
        This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
        'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
        fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).

2012-11-04  Andrey Adaikin  <aandrey@chromium.org>

        Web Inspector: [Canvas] do not blow up the capturing log
        https://bugs.webkit.org/show_bug.cgi?id=100752

        Reviewed by Pavel Feldman.

        Clear obsolete calls in the canvas 2D capturing log in runtime.
        Now we store in the log only minimum number of calls that are necessary to replay a
        canvas 2D context. To achieve that we find in runtime those calls in the log that no
        longer contribute to the final context state and remove them.
        These are the rules according which we find and remove such calls:
        - all PATH methods between a clip() call and beginPath() call can be removed
        - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
        - all consecutive save() + restore() calls

        Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
               inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html

        * inspector/InjectedScriptCanvasModuleSource.js:
        (.):

2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] ShadowRoot should have a method to return ShadowRootType.
        https://bugs.webkit.org/show_bug.cgi?id=101178

        Reviewed by Hajime Morita.

        When we style PseudoCustomElement, we have to know ShadowRootType.
        We would like to expose a method to get ShadowRootType also in Release mode.

        This is a preparation patch for Bug 101170.

        * dom/ShadowRoot.h:
        (ShadowRoot):

2012-11-04  Keishi Hattori  <keishi@webkit.org>

        Introduce Month class to calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=101024

        Reviewed by Kent Tamura.

        Month class needs to be introduced to implement a month picker. This
        patch just introduces the Month class into the calendar picker without
        changing the current behavior.

        No new tests. Covered by existing calendar-picker-*.html tests.

        * Resources/pagepopups/calendarPicker.js:
        (Month.prototype.toLocaleString): Returns a localized month string.
        (Month): Takes a Month object, number representing the month, or year and month numbers.
        (Month.parse): Returns a new Month from an ISO month string.
        (Month.createFromDate): Returns a new Month containing the given datetime.
        (Month.prototype.equals): Returns true if the given month is the same.
        (Month.prototype.previous): Returns the previous month.
        (Month.prototype.next): Returns the next month.
        (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
        (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
        (Month.prototype.valueOf): Returns a number representing the month.
        (Month.prototype.toString): Returns an ISO month string.
        (YearMonthController): Use Month object.
        (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
        (YearMonthController.prototype.setMonth): Take a month object.
        (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
        (YearMonthController.prototype._handleYearMonthChange):
        (YearMonthController.prototype.moveRelatively):
        (DaysTable): Use Month object.
        (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
        (DaysTable.prototype._navigateToMonth): Take a month object.
        (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
        (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
        (DaysTable.prototype.selectDate):
        (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
        (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.

2012-11-04  Halton Huo  <halton.huo@intel.com>

        [EFL] Use _LIBRARIES instead of _LIBRARY
        https://bugs.webkit.org/show_bug.cgi?id=101042

        Reviewed by Gyuyoung Kim.

        In CMake Find files, _LIBRARY is intended for internal use, should
        use _LIBRARIES instead.

        * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}

2012-11-04  MORITA Hajime  <morrita@google.com>

        Shadow DOM should be able to be disabled per context.
        https://bugs.webkit.org/show_bug.cgi?id=101173

        Reviewed by Dimitri Glazkov.

        This change pulls back relevant bits from r131549. Note that if
        the the port enables runtime Shadow DOM flag, this can cause slow
        down on some Chromium page cycler test cases (which r131549
        attempted to fix).

        This change is temporal and the flags should be switched back from
        ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
        stability.

        * dom/ContextFeatures.cpp:
        (WebCore::ContextFeatures::shadowDOMEnabled):
        (WebCore):
        * dom/ContextFeatures.h:
        * dom/Position.cpp:
        (WebCore::Position::Position):
        (WebCore::Position::findParent):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::getSelection):
        * html/HTMLTagNames.in:
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::contentTagName):
        * page/DOMWindow.idl:

2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Implement custom pseudo-elements styling
        https://bugs.webkit.org/show_bug.cgi?id=100812

        Reviewed by Hajime Morita.

        Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.

        Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
        and use pseudo()/setPseudo() instead (Bug 101171).

        Test: fast/dom/shadow/styling-pseudo-attribute.html

        * dom/Element.cpp:
        (WebCore::Element::shadowPseudoId):
        (WebCore::Element::setShadowPseudoId):
        * dom/ElementRareData.cpp:
        (WebCore::ElementRareData::reportMemoryUsage):
        * dom/ElementRareData.h:
        (ElementRareData):

2012-11-04  Kent Tamura  <tkent@chromium.org>

        BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
        https://bugs.webkit.org/show_bug.cgi?id=101039

        Reviewed by Hajime Morita.

        Add BaseClickableWithKeyInputType behavior to
        BaseChooserOnlyDateAndTimeInputType. It means date/time input types
        without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
        pressing space or enter key. They're going to open a date/time chooser
        by DOMActive event.

        Because BaseChooserOnlyDateAndTimeInputType inherits from
        BaseDateAndTimeInputType, it can't inherit
        BaseClickableWithKeyInputType. So, this patch adds static helper
        functions to BaseClickableWithKeyInputType, and
        BaseChooserOnlyDateAndTimeInputType uses them.

        This patch doesn't change behavior yet because Chromimum-Android port
        intercepts user events and doesn't deliver them to date/time input
        elements.

        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
        Add an empty implementation with a FIXME comment.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
        Add BaseClickableWithKeyInputType behavior by a helper function.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
        (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
        * html/BaseChooserOnlyDateAndTimeInputType.h:
        (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
        * html/BaseClickableWithKeyInputType.cpp:
        Add static helper functions, and existing member functions use them.
        * html/BaseClickableWithKeyInputType.h:
        (BaseClickableWithKeyInputType): Add declarations of the helper functions.
        * html/InputType.h:
        (InputType): Make dispatchSimulatedClickIfActive public because it is
        called from a helper function.

2012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133416.
        http://trac.webkit.org/changeset/133416
        https://bugs.webkit.org/show_bug.cgi?id=101169

        Broke world selection by right click (Requested by rniwa on
        #webkit).

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
        (WebCore::EventHandler::sendContextMenuEvent):

2012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Missing ASCIILiteral in a place of accessibility
        https://bugs.webkit.org/show_bug.cgi?id=101160

        Reviewed by Darin Adler.

        ASCIILiteral usage is being missed in a spot of accessibliity.

        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):

2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt][WK2] setPlatformStrategies always asserts after r132744
        https://bugs.webkit.org/show_bug.cgi?id=100838

        Reviewed by Simon Hausmann.

        Reland with build fixes.

        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
        code. In order to keep the behavior, this patch adds exported helpers to WebCore
        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
        add it to the WebKit1 API for the time being, but my goal was to move in the direction
        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
        in non production mode.

        Basically covered by all tests.

        * Target.pri:
        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
        initializeTestFonts uses it.
        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
        is also under that.
        (WebKit):
        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
        without calling initializeWebCoreQt.
        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
        the job even if we would stop clearing all caches between tests. Also moved the call to
        QFontDatabase::removeAllApplicationFonts from callers to here.
        * platform/qt/QtTestSupport.h:
        (WebKit):
        (QtTestSupport):

2012-11-04  Florin Malita  <fmalita@chromium.org>

        Color-profile property triggers assert
        https://bugs.webkit.org/show_bug.cgi?id=101080

        Reviewed by Dirk Schulze.

        CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
        unimplemented property assert. Adding a stub entry to avoid that.

        Test: svg/css/color-profile-crash.html

        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):

2012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>

        Unable to copy text on disabled input fields on long press gesture
        https://bugs.webkit.org/show_bug.cgi?id=99698

        Reviewed by Ryosuke Niwa.

        Text from disabled input/text should be allowed to select. Replaced isContentEditable()
        with canStartSelection()

        Test: fast/events/touch/gesture/disabled-input-text-selection.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureLongPress):

2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133403, r133404, and r133409.
        http://trac.webkit.org/changeset/133403
        http://trac.webkit.org/changeset/133404
        http://trac.webkit.org/changeset/133409
        https://bugs.webkit.org/show_bug.cgi?id=101158

        "Broke tests" (Requested by kbalazs on #webkit).

        * Target.pri:
        * WebCore.pri:
        * platform/qt/QtTestSupport.h: Removed.

2012-11-03  Alexey Proskuryakov  <ap@apple.com>

        Get rid of USE(CFURLSTORAGESESSIONS)
        https://bugs.webkit.org/show_bug.cgi?id=101131

        Reviewed by Sam Weinig.

        This is always enabled on CFNetwork based platforms.

        * WebCore.exp.in:
        * page/Settings.cpp:
        (WebCore::Settings::setPrivateBrowsingEnabled):
        * platform/mac/CookieJar.mm:
        (WebCore::cookies):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::setCookies):
        (WebCore::cookiesEnabled):
        (WebCore::getRawCookies):
        (WebCore::deleteCookie):
        * platform/network/ResourceHandle.h:
        (ResourceHandle):
        * platform/network/cf/CookieStorageCFNet.cpp:
        (WebCore):
        (WebCore::currentCFHTTPCookieStorage):
        * platform/network/cf/CookieStorageCFNet.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willSendRequest):
        (WebCore::makeFinalRequest):
        (WebCore::ResourceHandle::willSendRequest):
        (WebCore):
        * platform/network/cf/ResourceRequest.h:
        (ResourceRequest):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore):
        * platform/network/mac/CookieStorageMac.mm:
        (WebCore::setCookieStoragePrivateBrowsingEnabled):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::shouldRelaxThirdPartyCookiePolicy):
        (WebCore::ResourceHandle::createNSURLConnection):
        (WebCore::ResourceHandle::willSendRequest):
        (WebCore):
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore):
        (WebCore::ResourceRequest::setStorageSession):

2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt][WK2] setPlatformStrategies always asserts after r132744
        https://bugs.webkit.org/show_bug.cgi?id=100838

        Reviewed by Simon Hausmann.

        Reland with build fix.

        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
        code. In order to keep the behavior, this patch adds exported helpers to WebCore
        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
        add it to the WebKit1 API for the time being, but my goal was to move in the direction
        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
        in non production mode.

        Basically covered by all tests.

        * Target.pri:
        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
        initializeTestFonts uses it.
        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
        is also under that.
        (WebKit):
        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
        without calling initializeWebCoreQt.
        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
        the job even if we would stop clearing all caches between tests. Also moved the call to
        QFontDatabase::removeAllApplicationFonts from callers to here.
        * platform/qt/QtTestSupport.h:
        (WebKit):
        (QtTestSupport):

2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133397.
        http://trac.webkit.org/changeset/133397
        https://bugs.webkit.org/show_bug.cgi?id=101155

        "Broke Qt. No way to force the damn bots to do a clean build.
        I'm giving up." (Requested by kbalazs on #webkit).

        * Target.pri:
        * WebCore.pri:
        * platform/qt/QtTestSupport.h: Removed.

2012-11-03  Stephen White  <senorblanco@chromium.org>

        Speculative fix to eliminate flakiness in
        css3/filters/blur-filter-page-scroll-self.html
        https://bugs.webkit.org/show_bug.cgi?id=91620.
        Suspicion is that a prior test is setting
        window.internals.settings.setEnableCompositingForFixedPosition(true),
        causing this test to be intermittely run on the GPU, giving different
        pixel results depending on test order.

        Reviewed by Jochen Eisinger.

        Covered by css3/filters/blur-filter-page-scroll-self.html

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        * testing/InternalSettings.h:
        (Backup):

2012-11-03  Mark Rowe  <mrowe@apple.com>

        REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string

        Reviewed by Anders Carlsson.

        The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
        that was introduced is not null safe.

        * platform/text/cf/AtomicStringCF.cpp:
        (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.

2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt][WK2] setPlatformStrategies always asserts after r132744
        https://bugs.webkit.org/show_bug.cgi?id=100838

        Reviewed by Simon Hausmann.

        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
        code. In order to keep the behavior, this patch adds exported helpers to WebCore
        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
        add it to the WebKit1 API for the time being, but my goal was to move in the direction
        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
        in non production mode.

        Basically covered by all tests.

        * Target.pri:
        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
        initializeTestFonts uses it.
        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
        is also under that.
        (WebKit):
        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
        without calling initializeWebCoreQt.
        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
        the job even if we would stop clearing all caches between tests. Also moved the call to
        QFontDatabase::removeAllApplicationFonts from callers to here.
        * platform/qt/QtTestSupport.h:
        (WebKit):
        (QtTestSupport):

2012-11-03  Dan Beam  <dbeam@chromium.org>

        Implement HTMLFormElement#requestAutocomplete and associated events
        https://bugs.webkit.org/show_bug.cgi?id=100557

        Reviewed by Adam Barth.

        Implements an initial version of the proposal for interactive autocomplete outlined in this email:
        http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html

        The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
        autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
        error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
        implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
        UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
        after a small delay to behave consistently in all situations and implementations.

        Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.

        Test: fast/forms/form-request-autocomplete.html

        * dom/EventNames.h:
        (WebCore):

        Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
        information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
        but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
        node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
        this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
        an HTML notification, security concerns, or any other reason it desires).

        * html/HTMLAttributeNames.in:

        Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
        as event listeners. For example:

          <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::HTMLFormElement):
        (WebCore):

        Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
        triggers requestAutocompleteTimerFired when it times out.

        (WebCore::HTMLFormElement::requestAutocomplete):

        Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
        to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
        FrameLoaderClient.

        (WebCore::HTMLFormElement::finishRequestAutocomplete):

        Called when the request for an interactive autocomplete is finished with either a success or error result. This
        causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
        target element (this) until fired.

        (WebCore::HTMLFormElement::requestAutocompleteTimerFired):

        Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.

        (WebCore::HTMLFormElement::parseAttribute):

        Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
        for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.

        * html/HTMLFormElement.h:
        (HTMLFormElement):

        Added various methods and data members as required by the implementation.

        * html/HTMLFormElement.idl:

        Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
        to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
        REQUEST_AUTOCOMPLETE to be enabled to be activated.

        * loader/EmptyClients.cpp:
        (WebCore):
        (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):

        Added noop implementation for FrameLoader::didRequestAutocomplete.

        * loader/EmptyClients.h:
        (EmptyFrameLoaderClient):

        Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.

        * loader/FrameLoaderClient.h:
        (FrameLoaderClient):

        Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).

2012-11-03  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: %d, %i, and %f log formatters have same result
        https://bugs.webkit.org/show_bug.cgi?id=101148

        Reviewed by Alexander Pavlov.

        Added separate formatters for %f, %i, %d and %s.

        Test: inspector/console/console-message-format.html

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
        (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
        (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):

2012-11-03  Andreas Kling  <kling@webkit.org>

        Decouple Attr logic from ElementAttributeData.
        <http://webkit.org/b/101126>

        Reviewed by Antti Koivisto.

        Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
        This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
        can be shared by any number of Elements at a given time.

        Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
        "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.

        * dom/Element.h:
        * dom/ElementAttributeData.h:
        * dom/Element.cpp:
        (WebCore::attrNodeListMap):
        (WebCore::attrNodeListForElement):
        (WebCore::ensureAttrNodeListForElement):
        (WebCore::removeAttrNodeListForElement):
        (WebCore::findAttrNodeInList):
        (WebCore::Element::~Element):
        (WebCore::Element::detachAttribute):
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::removeAttributeInternal):
        (WebCore::Element::getAttributeNode):
        (WebCore::Element::getAttributeNodeNS):
        (WebCore::Element::normalizeAttributes):
        (WebCore::Element::attrIfExists):
        (WebCore::Element::ensureAttr):
        (WebCore::Element::detachAttrNodeFromElementWithValue):
        (WebCore::Element::detachAllAttrNodesFromElement):
        (WebCore::Element::cloneAttributesFromElement):

            Move everything Attr-related into Element.cpp while simplifying some loops and remove
            conditions that are no longer needed as they used to depend on having an attributeData().

        * dom/Node.h:
        (WebCore::Node::hasSyntheticAttrChildNodes):
        (WebCore::Node::setHasSyntheticAttrChildNodes):

            Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().

        * dom/Attr.cpp:
        (WebCore::Attr::detachFromElementWithValue):

            Remove awkward indirection and let the call site deal with removing the Attr node from
            the Element's list of Attr nodes.

        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::clearAttributes):

            Remove now-unused Element* argument.

2012-11-03  Pavel Feldman  <pfeldman@chromium.org>

        REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
        https://bugs.webkit.org/show_bug.cgi?id=101125

        Reviewed by Vsevolod Vlasov.

        Added "bottom" as default docked state.

        * inspector/front-end/DockController.js:
        (WebInspector.DockController):

2012-11-02  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] ShadowRoot should be able to know the existence of <content>
        https://bugs.webkit.org/show_bug.cgi?id=100921

        Reviewed by Dimitri Glazkov.

        When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
        It provides O(1) method to check the existence of <content>.

        This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
        is changed. Larger context is explained in Bug 100451.

        Test: fast/dom/shadow/has-content-elements.html

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
        all the descendants of ShadowRoot anymore.
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::registerContentElement):
        (WebCore::ShadowRoot::unregisterContentElement):
        (WebCore::ShadowRoot::hasContentElement):
        (ShadowRoot):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::HTMLContentElement):
        (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
        we notify it to the ShadowRoot. Note that only active <content> element is counted.
        (WebCore):
        (WebCore::HTMLContentElement::removedFrom):
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):
        * testing/Internals.cpp:
        (WebCore::Internals::hasContentElement):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>

        sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
        https://bugs.webkit.org/show_bug.cgi?id=99990

        Reviewed by Darin Adler.

        Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
        because it was not reset after early return.

        * page/FrameView.cpp:
        (WebCore::FrameView::paintContents):

2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>

        Fix build warning in PluginView.cpp on release build
        https://bugs.webkit.org/show_bug.cgi?id=101049

        Reviewed by Kentaro Hara.

        The protocol, host, port parameters are not used when LOG_DISABLED
        Use UNUSED_PARAM macro for removing -Wunused-parameter warning

        * plugins/PluginView.cpp:
        (WebCore::PluginView::getAuthenticationInfo):

2012-10-25  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=99914

        Reviewed by Carlos Garcia Campos.

        Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
        This allows a more generic implementation of authentication, for example, one where a WebKit2
        client can completely handle authentication.

        No new tests. This does not change behavior.

        * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
        is going away in the next release of Gnome. Instead we always assume that the authentication backend has
        support for remembering passwords and pass that information along with the answer to the authentication
        request.

        The rest of the changes to this class can be summarized as:
        1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
           objects.
        2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
           directly.
        * platform/gtk/GtkAuthenticationDialog.h:
        (GtkAuthenticationDialog): Remove members which are no longer used.
        * platform/network/ResourceHandle.h:
        (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
        for synchronous handles.
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
        the internal data structure.
        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
        (WebCore::ResourceHandle::receivedCredential): Added.
        (WebCore::ResourceHandle::receivedCancellation): Added.
        (WebCore::authenicateCallback): Pass the handle as the authentication client.

2012-11-02  Benjamin Poulain  <bpoulain@apple.com>

        Improve CSSParser::setupParser() since the prefix/suffix are literals
        https://bugs.webkit.org/show_bug.cgi?id=101107

        Reviewed by Andreas Kling.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::setupParser):
        * css/CSSParser.h:
        (CSSParser):
        (WebCore::CSSParser::setupParser):
        CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
        to compute the length at runtime, we can direclty encode it in the binary.

2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133375.
        http://trac.webkit.org/changeset/133375
        https://bugs.webkit.org/show_bug.cgi?id=101138

        Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
        #webkit).

        * platform/text/LineBreakIteratorPoolICU.h:
        (WebCore::LineBreakIteratorPool::take):
        (WebCore::LineBreakIteratorPool::put):
        (LineBreakIteratorPool):
        * platform/text/TextBreakIterator.h:
        (WebCore):
        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
        (WebCore::LazyLineBreakIterator::get):
        (WebCore::LazyLineBreakIterator::reset):
        (LazyLineBreakIterator):
        * platform/text/TextBreakIteratorICU.cpp:
        (WebCore::acquireLineBreakIterator):
        (WebCore::releaseLineBreakIterator):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::computePreferredLogicalWidths):
        * rendering/RenderText.h:
        (WebCore):
        * rendering/break_lines.cpp:
        (WebCore):
        (WebCore::isBreakableSpace):
        (WebCore::needsLineBreakIterator):
        (WebCore::nextBreakablePosition):
        (WebCore::nextBreakablePositionIgnoringNBSP):
        * rendering/break_lines.h:
        (WebCore):
        (WebCore::isBreakable):

2012-11-02  Andreas Kling  <kling@webkit.org>

        Cut overgrown ElementAttributeData bitfield.
        <http://webkit.org/b/101129>

        Reviewed by Anders Carlsson.

        Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
        to guard against future bloatage.

        * dom/ElementAttributeData.cpp:
        (SameSizeAsElementAttributeData):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):

2012-11-02  Michael Saboff  <msaboff@apple.com>

        Crash calling is8Bit() in visitedLinkHash()
        https://bugs.webkit.org/show_bug.cgi?id=101119

        Reviewed by Filip Pizlo.

        Added an isEmpty() check to AttributeURL and KURL.

        * platform/LinkHash.cpp:
        (WebCore::visitedLinkHash):

2012-11-02  Glenn Adams  <glenn@skynav.com>

        Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
        https://bugs.webkit.org/show_bug.cgi?id=89235

        Reviewed by Eric Seidel.

        See also wiki documentation at:
        [1] http://trac.webkit.org/wiki/LineBreaking
        [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping

        Web exposed changes include:
        (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
        (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
        (3) See [2] above for details regarding interpretation.

        Tests: css3/line-break/line-break-auto-centered.html
               css3/line-break/line-break-auto-half-kana.html
               css3/line-break/line-break-auto-hyphens.html
               css3/line-break/line-break-auto-inseparables.html
               css3/line-break/line-break-auto-iteration-marks.html
               css3/line-break/line-break-auto-postfixes.html
               css3/line-break/line-break-auto-prefixes.html
               css3/line-break/line-break-auto-sound-marks.html
               css3/line-break/line-break-loose-centered.html
               css3/line-break/line-break-loose-half-kana.html
               css3/line-break/line-break-loose-hyphens.html
               css3/line-break/line-break-loose-inseparables.html
               css3/line-break/line-break-loose-iteration-marks.html
               css3/line-break/line-break-loose-postfixes.html
               css3/line-break/line-break-loose-prefixes.html
               css3/line-break/line-break-loose-sound-marks.html
               css3/line-break/line-break-normal-centered.html
               css3/line-break/line-break-normal-half-kana.html
               css3/line-break/line-break-normal-hyphens.html
               css3/line-break/line-break-normal-inseparables.html
               css3/line-break/line-break-normal-iteration-marks.html
               css3/line-break/line-break-normal-postfixes.html
               css3/line-break/line-break-normal-prefixes.html
               css3/line-break/line-break-normal-sound-marks.html
               css3/line-break/line-break-strict-centered.html
               css3/line-break/line-break-strict-half-kana.html
               css3/line-break/line-break-strict-hyphens.html
               css3/line-break/line-break-strict-inseparables.html
               css3/line-break/line-break-strict-iteration-marks.html
               css3/line-break/line-break-strict-postfixes.html
               css3/line-break/line-break-strict-prefixes.html
               css3/line-break/line-break-strict-sound-marks.html

        * platform/text/LineBreakIteratorPoolICU.h:
        (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
        Add static function to construct ICU locale argument (also used as pool key) with additional
        break keyword.
        (WebCore::LineBreakIteratorPool::take):
        (WebCore::LineBreakIteratorPool::put):
        (LineBreakIteratorPool):
        Remove direct dependency from ICU library (and types), moving that dependency into
        new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
        Update to take line break mode into account.
        Create (and cache) different break iterators depending on line break mode (in addition to locale),
        which entails expanding pool entry key format to optionally append "@break=" +
        "loose"|"normal"|"strict" keyword to locale string.

        * platform/text/TextBreakIterator.h:
        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
        (WebCore::LazyLineBreakIterator::isLooseCJKMode):
        (WebCore::LazyLineBreakIterator::get):
        (WebCore::LazyLineBreakIterator::reset):
        (LazyLineBreakIterator):
        Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
        Add state member to indicate line break mode.

        * platform/text/TextBreakIteratorICU.cpp:
        (WebCore::acquireLineBreakIterator):
        Use new line break mode when making iterator from pool.
        Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
        (WebCore::releaseLineBreakIterator):
        Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
        (WebCore::isCJKLocale):
        New functions for determining if CJK rules apply.
        (WebCore::openLineBreakIterator):
        New function for abstracting opening of ICU style line break iterator. This is now
        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
        This function also takes into account the line break mode.
        (WebCore::closeLineBreakIterator):
        (WebCore::mapLineIteratorModeToRules):
        New function for abstracting closing of ICU style line break iterator. This is now
        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
        Pass line break iterator mode flag when reseting LazyLineBreakIterator.
        Add looseMode local variable to prevent need for computing under isBreakable().

        * rendering/RenderText.cpp:
        (WebCore::mapLineBreakToIteratorMode):
        Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
        and RenderBlock::LineBreaker::nextLineBreak.
        (WebCore::RenderText::computePreferredLogicalWidths):
        Ensure (lazy line) breakIterator is initialized for line break mode.
        Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.

        * rendering/RenderText.h:
        (WebCore):
        Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
        and RenderBlock::LineBreaker::nextLineBreak.

        * rendering/break_lines.cpp:
        (WebCore):
        Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
        to include loose mode parameter.
        (WebCore::isBreakableSpace):
        Add externally specified loose mode parameter to prevent need to invoke line break iterator
        accessor method on each invocation. Use new loose mode flavors off NBP functions.
        (WebCore::needsLineBreakIterator):
        Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
        to prevent regression to non loose mode path.
        (WebCore::nextBreakablePosition):
        (WebCore::nextBreakablePositionIgnoringNBSP):
        Use new template parameter enums described above.
        (WebCore::nextBreakablePositionIgnoringNBSPLoose):
        (WebCore::nextBreakablePositionLoose):
        Introduce two additional 'loose' mode flavors of NBP template expansions.

        * rendering/break_lines.h:
        (WebCore):
        (WebCore::isBreakable):
        Add externally specified loose mode parameter to prevent need to invoke line break iterator
        accessor method on each invocation.

2012-11-02  Elliott Sprehn  <esprehn@chromium.org>

        Replace NodeRareData hash map with a union on m_renderer
        https://bugs.webkit.org/show_bug.cgi?id=100057

        Reviewed by Eric Seidel.

        Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
        the overhead of accessing rare data and the memory from the map.

        This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
        document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
        improvement. As this is better than even the special casing for document that was
        done in that bug, general node list access should see an even greater win.

        This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
        removing the rare data map overhead.

        This is also a 15% improvement on Parser/textarea-parsing.html

        By removing the performance overhead of rareData() this patch addresses the performance
        issues raised in Bugs 73853, 87034 and 89635.

        I ran Parser/html5-full-render.html and there was no performance regression after
        tuning Text::recalcTextStyle and the refactor that was done in r132684.

        No new tests, this is just a refactor.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        (WebCore::Node::Node):
        * dom/Element.cpp:
        (WebCore::Element::elementRareData):
        * dom/Node.cpp:
        (WebCore::Node::rareData):
        (WebCore::Node::ensureRareData):
        (WebCore::Node::clearRareData):
        (WebCore::Node::renderBox):
        (WebCore::Node::renderBoxModelObject):
        (WebCore::Node::reportMemoryUsage):
        * dom/Node.h:
        (NodeRareDataBase):
          Base class for NodeRareData that knows about the renderer so we can
          inline the accesses in Node.h
        (WebCore::NodeRareDataBase::renderer):
        (WebCore::NodeRareDataBase::setRenderer):
        (WebCore::NodeRareDataBase::~NodeRareDataBase):
        (WebCore::NodeRareDataBase::NodeRareDataBase):
        (WebCore):
        (WebCore::Node::renderer):
        (WebCore::Node::setRenderer):
        (Node):
        * dom/NodeRareData.h:
        * dom/NodeRenderStyle.h:
        (WebCore::Node::renderStyle):
        * dom/Text.cpp:
        (WebCore::Text::recalcTextStyle):
          This method appears very hot in html5-full-render.html and accessing the
          renderer 4 times caused a 2% performance regression with this patch. I
          reduced it to 1 access and there's no longer any performance regression.
        * dom/WebCoreMemoryInstrumentation.cpp:
          Removed tracking of the rare data map memory usage as there is no longer
          a map to track.
        * dom/WebCoreMemoryInstrumentation.h:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):

2012-11-02  Alexey Proskuryakov  <ap@apple.com>

        [Mac] ResourceHandle changes for network process
        https://bugs.webkit.org/show_bug.cgi?id=101111

        Reviewed by Jessie Berlin.

        With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
        on secondary threads, and so we won't block other requests while consulting with WebProcess.

        * platform/network/NetworkingContext.h:
        (WebCore::NetworkingContext::scheduledRunLoopPairs):
        (WebCore::NetworkingContext::scheduledOperationQueue):
        Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
        is not a must, give scheduledRunLoopPairs() a default implementation.

        * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
        static. It was only used to catch a long obsolete bug with debug logging, and
        cannot work with multiple threads.
        (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
        check that used isInitializingConnection.

2012-11-02  Chris Rogers  <crogers@google.com>

        Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
        https://bugs.webkit.org/show_bug.cgi?id=100885

        Reviewed by Kenneth Russell.

        AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.

        Covered by existing tests.

        * Modules/webaudio/AudioParam.cpp:
        (WebCore::AudioParam::calculateTimelineValues):
        * Modules/webaudio/AudioParamTimeline.cpp:
        (WebCore::AudioParamTimeline::valueForContextTime):
        (WebCore::AudioParamTimeline::valuesForTimeRange):
        (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
        * Modules/webaudio/AudioParamTimeline.h:
        (AudioParamTimeline):

2012-11-02  Stephen Chenney  <schenney@chromium.org>

        Reduce redundant code in SimpleFontData[platform]
        https://bugs.webkit.org/show_bug.cgi?id=97245

        Reviewed by Eric Seidel.

        Move duplicated code out of platform specific files and into the common file.
        This represents all of the methods in SimpleFontData that do not have genuine
        platform specific code.

        No new tests because there is no change at all in the functionality.

        * platform/graphics/SimpleFontData.cpp:
        (WebCore):
        (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
        (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        (WebCore): Removed common code.
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore): Removed common code.
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore): Removed common code.
        * platform/graphics/pango/SimpleFontDataPango.cpp:
        (WebCore): Removed common code.
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore): Removed common code.
        * platform/graphics/skia/SimpleFontDataSkia.cpp:
        (WebCore): Removed common code.
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore): Removed common code.
        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
        (WebCore): Removed common code.
        * platform/graphics/wx/SimpleFontDataWx.cpp:
        (WebCore): Removed common code.

2012-11-02  Adam Barth  <abarth@webkit.org>

        memory-instrumentation-cached-images.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=101103

        Unreviewed.

        Restore code deleted in http://trac.webkit.org/changeset/133331.

        * bindings/v8/IntrusiveDOMWrapperMap.h:

2012-11-02  Simon Fraser  <simon.fraser@apple.com>

        Enable SUBPIXEL_LAYOUT on Mac
        https://bugs.webkit.org/show_bug.cgi?id=101076

        Reviewed by Dave Hyatt.

        Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.

        * Configurations/FeatureDefines.xcconfig:

2012-11-02  Lianghui Chen  <liachen@rim.com>

        [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
        https://bugs.webkit.org/show_bug.cgi?id=101082

        Internal PR: 235410.
        Patch suggested by George Staikos, prepared by Lyon Chen.
        Reviewed by Yong Li.

        ResourceHandle::cancel() should call setClient(0) to close the window
        during which it has been cancelled but its client is still there and can
        be called.

        No new tests as it's a code improvement without obvious bug.

        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
        (WebCore::ResourceHandle::cancel):

2012-11-02  Anders Carlsson  <andersca@apple.com>

        Add a PluginInactive plug-in unavailability reason
        https://bugs.webkit.org/show_bug.cgi?id=101089

        Reviewed by Sam Weinig.

        This is to be used by Mac WebKit and WebKit2 shortly.

        * English.lproj/Localizable.strings:
        * platform/LocalizedStrings.cpp:
        (WebCore::inactivePluginText):
        (WebCore):
        * platform/LocalizedStrings.h:
        (WebCore):
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        (WebCore::inactivePluginText):
        (WebCore):
        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::inactivePluginText):
        (WebCore):
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::inactivePluginText):
        (WebCore):
        * platform/qt/LocalizedStringsQt.cpp:
        (WebCore::inactivePluginText):
        (WebCore):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::unavailablePluginReplacementText):
        * rendering/RenderEmbeddedObject.h:

2012-11-02  Rob Buis  <rbuis@rim.com>

        [CMAKE] Remove QNX specific section
        https://bugs.webkit.org/show_bug.cgi?id=101063

        Reviewed by Daniel Bates.

        We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
        equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.

        * CMakeLists.txt:

2012-11-02  Michael Saboff  <msaboff@apple.com>

        visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
        https://bugs.webkit.org/show_bug.cgi?id=101014

        Reviewed by Geoffrey Garen.

        Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
        check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
        version of the templated methods.  Otherwise we use the 16 bit flavor.

        Changes covered by existing tests.

        * platform/LinkHash.cpp:
        (WebCore::findSlashDotDotSlash):
        (WebCore::findSlashSlash):
        (WebCore::findSlashDotSlash):
        (WebCore::containsColonSlashSlash):
        (WebCore::squeezeOutNullCharacters):
        (WebCore::cleanSlashDotDotSlashes):
        (WebCore::mergeDoubleSlashes):
        (WebCore::cleanSlashDotSlashes):
        (WebCore::cleanPath):
        (WebCore::matchLetter):
        (WebCore::needsTrailingSlash):
        (WebCore::visitedURLInline):
        (WebCore::visitedURL):
        (WebCore::visitedLinkHash):

2012-11-02  Ian Vollick  <vollick@chromium.org>

        Support invalidation tracking for composited layers
        https://bugs.webkit.org/show_bug.cgi?id=97801

        Reviewed by Simon Fraser.

        GraphicsLayers now store invalidated rects and can include them in
        the layer tree dump.

        Test: compositing/repaint/invalidations-on-composited-layers.html

        * WebCore.exp.in:
          Exports FrameView::resetTrackedRepaints()
        * page/FrameView.cpp:
        (WebCore::FrameView::setTracksRepaints):
          Notifies each compositor that we are starting/stopping repaints.
        (WebCore::FrameView::resetTrackedRepaints):
          Moved implementation to the cpp file.
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::~GraphicsLayer):
          Clears the repaint rects associated with this layer.
        (WebCore::GraphicsLayer::resetTrackedRepaints):
          Clears the repaint rects associated with this layer.
          Note that the repaint rects are stored in a statically allocated
          HashMap to avoid using space on the graphics layers.
        (WebCore::GraphicsLayer::addRepaintRect):
          Adds a repaint rect to list associated with this layer in the
          hash map mentioned above.
        (WebCore::GraphicsLayer::dumpProperties):
          This has been modified to include the repaint rects in the dump
          if they've been requested.
        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::isTrackingRepaints):
          This is how graphics layers check if repaint tracking is happening.
          Returns false by default.
        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
        (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
        (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
        (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
          These now call GraphicsLayer::addRepaintRect as necessary.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
          Now calls GraphicsLayer::addRepaintRect as necessary.
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
          These now call GraphicsLayer::addRepaintRect as necessary.
        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
        (WebCore::GraphicsLayerClutter::setNeedsDisplay):
        (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
          These now call GraphicsLayer::addRepaintRect as necessary.
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
          These now call GraphicsLayer::addRepaintRect as necessary.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isTrackingRepaints):
          Required since this is a GraphicsLayerClient.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::layerTreeAsText):
          Now accepts a flag to include the repaint rects in the layer tree
          dump.
        (WebCore::resetTrackedRepaintRectsRecursive):
          Clears the repaint rects on all graphics layers.
        (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
          Clears the repaint rects on all graphics layers.
        (WebCore::RenderLayerCompositor::isTrackingRepaints):
          Required since this is a GraphicsLayerClient.
        * testing/Internals.cpp:
        (WebCore::Internals::layerTreeAsText):
        * testing/Internals.h:
        * testing/Internals.idl:
          The internals changes plumb the new flag for including the repaint
          rects in the layer tree dump.

2012-11-02  Adam Barth  <abarth@webkit.org>

        [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
        https://bugs.webkit.org/show_bug.cgi?id=100973

        Reviewed by Stephen White.

        This is the first step towards using intrusive DOM wrapper maps more
        widely in WebCore (see
        http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
        for more context).

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        (WebCore):
        (WebCore::IntrusiveDOMWrapperMap::weakCallback):

2012-11-02  Adam Barth  <abarth@webkit.org>

        ASSERT in RenderLayer::hitTestContents can fire
        https://bugs.webkit.org/show_bug.cgi?id=99656

        Reviewed by Eric Seidel.

        The issue is that updateHitTestResult and addNodeToRectBasedTestResult
        are using two different nodes. Since they aren't consistent, we violate
        assertions about only setting the inner node if we're doing a
        rect-based hit test. This patch makes the two consistent.

        Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::nodeForHitTest):
        (WebCore):
        (WebCore::RenderBlock::nodeAtPoint):
        (WebCore::RenderBlock::updateHitTestResult):
        * rendering/RenderBlock.h:
        (RenderBlock):

2012-11-02  Mike West  <mkwst@chromium.org>

        Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
        https://bugs.webkit.org/show_bug.cgi?id=101043

        Reviewed by Adam Barth.

        The canonical 'Content-Security-Policy' header landed in 133095, but we
        missed a few tests while updating to the new hotness. We also should
        start using the canonical header for the inspector.

        This patch should have no visible change; tests should continue to pass
        with the new header, just as they did with the old header.

        * inspector/front-end/inspector.html:

2012-11-02  Adam Barth  <abarth@webkit.org>

        ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
        https://bugs.webkit.org/show_bug.cgi?id=100711

        Reviewed by Eric Seidel.

        No one is actively working on ENABLE(UNDO_MANAGER). There are some
        tricky lifetime issues in the UndoManager API that are complicating
        ongoing work to improve the interaction between WebCore and the garbage
        collector. Rather than leave this code in a broken state, we should
        remove it for the time being. We can always restore it from the svn
        history when there is an active owner for this code.

        * CMakeLists.txt:
        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.features.am:
        * GNUmakefile.list.am:
        * Target.pri:
        * UseJSC.cmake:
        * UseV8.cmake:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/DOMTransaction.cpp: Removed.
        * bindings/js/DOMTransaction.h: Removed.
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSUndoManagerCustom.cpp: Removed.
        * bindings/v8/DOMTransaction.cpp: Removed.
        * bindings/v8/DOMTransaction.h: Removed.
        * bindings/v8/V8HiddenPropertyName.h:
        (WebCore):
        * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
        * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
        * css/PropertySetCSSStyleDeclaration.cpp:
        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::setDataAndUpdate):
        * dom/ContainerNode.cpp:
        (WebCore::willRemoveChild):
        (WebCore::willRemoveChildren):
        (WebCore::updateTreeAfterInsertion):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        (WebCore):
        (Document):
        * dom/Document.idl:
        * dom/Element.cpp:
        (WebCore::Element::willModifyAttribute):
        * editing/CompositeEditCommand.h:
        * editing/DOMTransaction.idl: Removed.
        * editing/DOMTransactionStep.cpp: Removed.
        * editing/DOMTransactionStep.h: Removed.
        * editing/Editor.cpp:
        (WebCore::Editor::appliedEditing):
        (WebCore::Editor::unappliedEditing):
        (WebCore::Editor::reappliedEditing):
        (WebCore::Editor::canUndo):
        (WebCore::Editor::undo):
        (WebCore::Editor::canRedo):
        (WebCore::Editor::redo):
        * editing/UndoManager.cpp: Removed.
        * editing/UndoManager.h: Removed.
        * editing/UndoManager.idl: Removed.
        * editing/UndoStep.h:
        (UndoStep):

2012-11-02  Mike West  <mkwst@chromium.org>

        Measure the usage of the various CSP headers.
        https://bugs.webkit.org/show_bug.cgi?id=100974

        Reviewed by Adam Barth.

        Currently, we're collecting metrics regarding usage of the
        'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
        recently added support for the canonical 'Content-Security-Policy'
        and 'Content-Security-Policy-Report-Only' headers. This patch adds
        those headers explicitly into the metrics, giving insight into uptake
        of the unprefixed header, and into usage of pure reporting vs.
        enforcement.

        No visible functionality should change; all Content Security Policy
        tests should continue to pass.

        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::didReceiveHeader):
            Convert the CSP header type into a FeatureObserver::Feature, and
            observe it.
        * page/FeatureObserver.h:
            Add three new values to the enum to cover the new header types.

2012-11-02  Ojan Vafai  <ojan@chromium.org>

        Fix silly mistake from http://trac.webkit.org/changeset/133315.
        Forgot to remove the "!".

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):

2012-11-02  Tom Sepez  <tsepez@chromium.org>

        Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
        https://bugs.webkit.org/show_bug.cgi?id=100892

        Reviewed by Adam Barth.

        This patch adds a security feature which allows a violation report to be sent back
        to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
        reporting mechanism as for CSP violation reports.

        Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
               http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
               http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
               http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
               http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
               http/tests/security/xssAuditor/report-script-tag.html
               http/tests/security/xssAuditor/xss-protection-parsing-03.html
               http/tests/security/xssAuditor/xss-protection-parsing-04.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::XSSAuditor):
        (WebCore::XSSAuditor::init):
        (WebCore::XSSAuditor::filterToken):
        Invoke Ping loader's violation reporting, if requested, when a reflected
        XSS is detected.
        
        * html/parser/XSSAuditor.h:
        XSSAuditor class need to store the report URL as well as the undigested versions
        of the request URL and request body for reporting.

        * loader/MixedContentChecker.cpp:
        (WebCore):
        * loader/MixedContentChecker.h:
        (MixedContentChecker):
        Make isMixedContent() method public.

        * loader/PingLoader.cpp:
        (WebCore::PingLoader::sendViolationReport):
        * loader/PingLoader.h:
        (PingLoader):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::reportViolation):
        Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
        since this is now used to send more than just CSP violations.
        
        * platform/network/HTTPParsers.cpp:
        (WebCore):
        (WebCore::skipEquals):
        (WebCore::skipValue):
        (WebCore::parseXSSProtectionHeader):
        * platform/network/HTTPParsers.h:
        Parse and return report= directive in X-XSS-Protection header.
        
2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133313.
        http://trac.webkit.org/changeset/133313
        https://bugs.webkit.org/show_bug.cgi?id=101078

        "A lot of tests hit the ASSERTs introduced by this patch"
        (Requested by haraken on #webkit).

        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setDOMWrapper):

2012-11-02  Ojan Vafai  <ojan@chromium.org>

        Unreviewed, rolling out r132913.
        http://trac.webkit.org/changeset/132913
        https://bugs.webkit.org/show_bug.cgi?id=91850

        Caused performance regressions.
        See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::visitExternalStrings):
        * bindings/v8/V8StringResource.cpp:
        (StringTraits):
        (WebCore::v8StringToWebCoreString):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::makeExternalString):
        (WebCore::WebCoreStringResource::visitStrings):
        * bindings/v8/V8ValueCache.h:
        (WebCore::WebCoreStringResource::WebCoreStringResource):
        (WebCore::WebCoreStringResource::~WebCoreStringResource):
        (WebCore::WebCoreStringResource::data):
        (WebCoreStringResource):
        (WebCore::WebCoreStringResource::length):
        (WebCore::WebCoreStringResource::atomicString):
        (WebCore::WebCoreStringResource::toStringResource):

2012-11-02  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove dependency on SoupPasswordManager
        https://bugs.webkit.org/show_bug.cgi?id=100775

        Reviewed by Carlos Garcia Campos.

        Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
        a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
        CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.

        No new tests. This does not change behavior.

        * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
        * GNUmakefile.list.am: Add new files to the source list.
        * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
        * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
        interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
        * platform/gtk/GtkAuthenticationDialog.h: Ditto.
        * platform/network/gtk/CredentialBackingStore.cpp: Added.
        * platform/network/gtk/CredentialBackingStore.h: Added.

2012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>

        Fix build warning [-Wswitch]
        https://bugs.webkit.org/show_bug.cgi?id=101029

        Reviewed by Alexey Proskuryakov.

        Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
        in Source/WebCore/css/StyleSheetContents.cpp.
        Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.

        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):

2012-11-02  Ojan Vafai  <ojan@chromium.org>

        Move m_element checks out of canShareStyle into locateSharedStyle
        https://bugs.webkit.org/show_bug.cgi?id=101070

        Reviewed by Darin Adler.

        Can shareStyleWithElement is called for each sibling as we look for a
        shareElement. locateSharedStyle is called once for the element we're
        trying to find a style for. Checks that only depend on the latter
        element should, thus be in locateSharedStyle.

        No new tests. There should be no change in behavior, except possibly
        a performance improvement in some cases.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::locateSharedStyle):

2012-11-02  Kentaro Hara  <haraken@chromium.org>

        [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
        https://bugs.webkit.org/show_bug.cgi?id=101054

        Reviewed by Adam Barth.

        I'm investigating a Chromium crash bug:
        http://code.google.com/p/chromium/issues/detail?id=155942

        I've not yet identified the root cause (because I can't reproduce
        the crash), but it looks like we are storing NULL pointers to
        V8 internal fields. Just in case, we can add an ASSERT() to
        guarantee that NULL pointers are never stored. (Also I'm hoping
        that this ASSERT() will give me more debug information.)

        No tests. No change in behavior.

        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setDOMWrapper):

2012-11-02  Kevin Ellis  <kevers@chromium.org>

        Imrpove scoring in touch adjustment to address bias towards smaller targets.
        https://bugs.webkit.org/show_bug.cgi?id=101046

        Reviewed by Antonio Gomes.

        Update the touch overlap score for touch adjustmetn to normalize
        with respect to the maximum possible overlap rather than the size
        of the target element.  This change enables good overlap scores for
        small and large targets alike.  Prior to the patch it was not possible
        to get a good overlap score for a sufficiently larget target.

        Covered by existing tests, which have been updated to reflect the
        intended behavior.

        * page/TouchAdjustment.cpp:
        (WebCore::TouchAdjustment::hybridDistanceFunction):

2012-11-02  Mike West  <mkwst@chromium.org>

        Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
        https://bugs.webkit.org/show_bug.cgi?id=101032

        Reviewed by Yury Semikhatsky.

        https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
        '-webkit-flex: 1' only to the list generated for errors in the console.
        It should have been added to normal warning text as well. This patch
        fixes the problem.

        * inspector/front-end/inspector.css:
        (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):

2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: show popup for CPU bars.
        https://bugs.webkit.org/show_bug.cgi?id=100951

        Reviewed by Pavel Feldman.

        Each CPU bar can represent a combination of several shorter messages.
        We should show information about combined messages - start time,
        total duration, CPU time, message count.

        * English.lproj/localizedStrings.js: Added "Message Count" string.
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
        Supply elements with underlying info.
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
        Added.

2012-11-02  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Network panel grid UI is misaligned after r132888
        https://bugs.webkit.org/show_bug.cgi?id=101050

        Rollback the change to basic data grid css and move it to the native memory
        snapshot datagrid css.

        Reviewed by Alexander Pavlov.

        * inspector/front-end/dataGrid.css:
        (.data-grid td):
        * inspector/front-end/nativeMemoryProfiler.css:
        (.native-snapshot-view .data-grid td):

2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133303.
        http://trac.webkit.org/changeset/133303
        https://bugs.webkit.org/show_bug.cgi?id=101068

        "Broke qt wk2 build (seems like bots fails to rerun qmake if
        needed)" (Requested by kbalazs on #webkit).

        * Target.pri:
        * WebCore.pri:
        * platform/PlatformStrategies.cpp:
        (WebCore):
        * platform/qt/QtTestSupport.h: Removed.

2012-11-02  Balazs Kelemen  <kbalazs@webkit.org>

        [Qt][WK2] setPlatformStrategies always asserts after r132744
        https://bugs.webkit.org/show_bug.cgi?id=100838

        Reviewed by Simon Hausmann.

        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
        code. In order to keep the behavior, this patch adds exported helpers to WebCore
        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
        add it to the WebKit1 API for the time being, but my goal was to move in the direction
        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
        in non production mode.

        Basically covered by all tests.

        * Target.pri:
        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
        initializeTestFonts uses it.
        * platform/PlatformStrategies.cpp:
        (WebCore): Zero initialize the global static variable as it is expected by the functions
        below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
        common runtime environments tend to zero initialize statics by default - but I don't think
        we should rely on that.
        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
        is also under that.
        (WebKit):
        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
        without calling initializeWebCoreQt.
        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
        the job even if we would stop clearing all caches between tests. Also moved the call to
        QFontDatabase::removeAllApplicationFonts from callers to here.
        * platform/qt/QtTestSupport.h:
        (WebKit):
        (QtTestSupport):

2012-11-02  Kent Tamura  <tkent@chromium.org>

        Optimize DateTimeFormat::quoteAndAppendLiteral output
        https://bugs.webkit.org/show_bug.cgi?id=101040

        Reviewed by Kentaro Hara.

        In LDML date format pattern, only ASCII alphabet and quote have special
        roles. So we don't need to quote the input string if it doesn't contain
        them.

        No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp

        * platform/text/DateTimeFormat.cpp:
        (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
        (WebCore::DateTimeFormat::quoteAndAppendLiteral):
        Append the input string as is if it has no special character.

2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
        https://bugs.webkit.org/show_bug.cgi?id=101052

        Reviewed by Yury Semikhatsky.

        I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
        MemoryAgent can visit it but instrumentation for these containers report no objectType.
        It means that addRootObject method needs to accept objectType property as an argument.
        Otherwise I would have had to create a proxy class with proper objectType.

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
        (WebCore):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryInstrumentation):
        (WebCore):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):

2012-11-02  Michael Brüning  <michael.bruning@digia.com>

        [Qt][WK2] ASSERT hit for every mouse click
        https://bugs.webkit.org/show_bug.cgi?id=100607

        Reviewed by Jocelyn Turcotte.

        Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
        by uniting the two in case the mid box is empty. This allows the first box to be merged with
        the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
        triggered by two intersecting boxes being passed to addHighlightRect as separate ones.

        Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
        in LayoutRect::intersects already.

        No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html

        * page/GestureTapHighlighter.cpp:

2012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
        https://bugs.webkit.org/show_bug.cgi?id=99442

        Reviewed by Levi Weintraub.

        Extra width is displayed after an inline replaced object that follows some
        text (not ending in a whitespace) within an inline-block. This is due to
        the end width (endMin) of the text object being carried forward (via inlineMin)
        and added onto the next line containing the inline replaced object.

        This was caused as a regression to, or rather became apparent post the fix
        http://trac.webkit.org/changeset/130057 which fixed the block's preferred
        width when a renderInline with width contained an inline replaced object.

        Test: fast/block/block-with-inline-replaced-child-following-text.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
        Introduced another flag (shouldBreakLineAfterText) which is set when
        our current Text line (object) does not end in a whitespace, thereby
        implying that there could be more text following, for which the end width
        needs to be carried forward onto the next line.

        In case the following object instead turns out to be an Inline Replaced
        object, we should terminate our previous line and reset this extra width.
        This is now being handled by checking for the shouldBreakLineAfterText
        flag while processing Inline Replaced objects.

        Once set, shouldBreakLineAfterText shall be reset only if we get another
        Text object that ends in a whitespace, signifying the termination of
        that text line. For all other cases, we persist with this flag through
        the block's inline contents.

2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
        https://bugs.webkit.org/show_bug.cgi?id=101036

        Reviewed by Pavel Feldman.

        Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
        This functionality seems to be obsolete.

        * inspector/front-end/ConsoleView.js: Removed shortcut and function.

2012-11-02  Stephen Chenney  <schenney@chromium.org>

        SVG classes cause layering violations in platform Font code
        https://bugs.webkit.org/show_bug.cgi?id=98513

        Reviewed by Eric Seidel.

        Add a contained class to save and restore GlpyhPage state in FontFallbackList.
        This allows us to remove the layering violation, and several methods, that
        previously existed to support SVGTextRunRenderingContext.

        No new tests because no change at all in functionality.

        * platform/graphics/FontFallbackList.h:
        (FontFallbackList):
        (GlyphPagesStateSaver): New state save and restore class
        (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
        (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.

2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Fix compilation errors
        https://bugs.webkit.org/show_bug.cgi?id=101027

        Reviewed by Yury Semikhatsky.

        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):

2012-11-02  Andreas Kling  <kling@webkit.org>

        Only resolve attribute-derived style once per shared ElementAttributeData.
        <http://webkit.org/b/100990>

        Reviewed by Antti Koivisto.

        Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
        on ElementAttributeData instead of in Node flags.

        This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
        since the state is no longer per-Element.

        I've left the presentation attribute cache in there for now, since it covers two additional cases:

            - Elements with the same attributes in different order.
            - Elements with the same presentation attributes, but with differing non-presentation attributes.

        It's likely that we're not gaining much from it anymore, but that's a topic for another patch.

        * dom/Node.h:
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::presentationAttributeStyle):
        (WebCore::ElementAttributeData::setPresentationAttributeStyle):
        (WebCore::ElementAttributeData::styleAttributeIsDirty):
        (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
        (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
        (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
        (ElementAttributeData):
        (WebCore::ElementAttributeData::ElementAttributeData):
        * dom/Element.cpp:
        (WebCore::Element::getAttribute):
        * dom/Element.h:
        (WebCore::Element::styleAttributeIsDirty):
        (WebCore::Element::updateInvalidAttributes):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::styleAttributeChanged):
        (WebCore::StyledElement::inlineStyleChanged):
        * dom/StyledElement.h:
        (WebCore::StyledElement::invalidateStyleAttribute):

            Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
            and change them to both use dirty semantics.

        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::cloneDataFrom):

            Share the presentation attribute style between cloned elements initially.

        * dom/StyledElement.h:
        (WebCore::StyledElement::presentationAttributeStyle):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
        (WebCore::StyleResolver::matchAllRules):
        (WebCore::StyleResolver::canShareStyleWithElement):
        * dom/ElementAttributeData.cpp:
        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
        (WebCore::ElementAttributeData::reportMemoryUsage):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):

            Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
            easily confused with "style attribute".

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::rebuildPresentationAttributeStyle):

            Renamed from updateAttributeStyle().

2012-11-01  Kent Tamura  <tkent@chromium.org>

        Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
        https://bugs.webkit.org/show_bug.cgi?id=101007

        Reviewed by Kentaro Hara.

        ChromeClient::openDateTimeChooser and Locale::formatDateTime are
        necessary if one of date/time input types is enabled and even if
        ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
        with ENABLE(DATE_AND_TIME_INPUT_TYPES).

        The following clases are used only for ChromeClient::openDateTimeChooser.
        They should be wrapped with the same flag.
          - class DateTimeChooser
          - class DateTiemChooserClient

        The following classes/functions are used for
        Locale::formatDateTime. They should be wrapped with the same flag.
          - Locale::dateFormat
          - Locale::monthFormat
          - Locale::timeFormat
          - Locale::shortTimeFormat
          - Locale::monthLabels
          - Locale::shortMonthLabels
          - Locale::standAloneMonthLabels
          - Locale::shortStandAloneMonthLabels
          - class DateTimeFormat

        Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
         1) <input> supports calendar picker UI, and
         2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
        Now ENABLE_CALENDAR_PICKER means only 2.

        No new tests because of no behavior changes.

        * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
        input types are enabled because this is a common super class of
        date/time InputType classes.
        * html/BaseDateAndTimeInputType.cpp: Ditto.
        * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
        * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.

        * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
        * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
        * loader/EmptyClients.h: Ditto.
        * platform/DateTimeChooser.h:
        This is needed only if ChromeClient::openDateTimeChooser is available.
        * platform/DateTimeChooserClient.h: Ditto.

        * platform/LocalizedStrings.h:
        weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
        ENABLE(INPUT_MULTIPLE_FIELDS_UI).

        * platform/text/PlatformLocale.h:
        Change the condition for Locale::formatDateTime and the code used by
        Locale::formatDateTime.
        * platform/text/PlatformLocale.cpp:
        (WebCore::Locale::formatDateTime):
        This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
        localized representations of date/time values.
        * platform/text/LocaleICU.cpp:
        Change the condition for the code used by Locale::formatDateTime.
        * platform/text/LocaleICU.h: Ditto.
        * platform/text/LocaleNone.cpp: Ditto.
        * platform/text/mac/LocaleMac.h: Ditto.
        * platform/text/mac/LocaleMac.mm: Ditto.
        * platform/text/win/LocaleWin.cpp: Ditto.
        * platform/text/win/LocaleWin.h: Ditto.
        * platform/text/DateTimeFormat.cpp: Ditto.
        * platform/text/DateTimeFormat.h: Ditto.

        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        Remove some #if-#endif for a picker indicator element because
        ENABLE_CALENDAR_PICKER meaning is changed.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.

        * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
        INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
        * html/shadow/PickerIndicatorElement.h: Ditto.
        * rendering/RenderDetailsMarker.cpp: Ditto.
        * rendering/RenderDetailsMarker.h: Ditto.
        * rendering/RenderTheme.h: Ditto.
        * rendering/RenderThemeChromiumCommon.cpp: Ditto.
        * rendering/RenderThemeChromiumCommon.h: Ditto.
        * rendering/RenderThemeChromiumMac.h: Ditto.
        * rendering/RenderThemeChromiumSkia.h: Ditto.

2012-11-02  Zeno Albisser  <zeno@webkit.org>

        [Qt] Revert QCocoaNativeInterface workaround from r131720.
        https://bugs.webkit.org/show_bug.cgi?id=100842

        Reviewed by Simon Hausmann.

        After updating Qt5 on the buildbots, the workaround
        introduced in r131720 is not needed anymore.

        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):

2012-11-02  Kent Tamura  <tkent@chromium.org>

        Add a common base class for date/time input types without inline editing behavior
        https://bugs.webkit.org/show_bug.cgi?id=101031

        Reviewed by Hajime Morita.

        Add BaseChooserOnlyDateAndTimeInputType class, which will support
        DateTimeChooserClient, and date/time input types inherit it if
        !ENABLE(INPUT_MULTIPLE_FIELDS_UI).

        No new tests. This doesn't change any behavior.

        * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
        * html/BaseChooserOnlyDateAndTimeInputType.h: Added.

        * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
        !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
        * html/DateTimeInputType.h: Ditto.
        * html/DateTimeLocalInputType.h: Ditto.
        * html/MonthInputType.h: Ditto.
        * html/TimeInputType.h: Ditto.
        * html/WeekInputType.h: Ditto.

2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>

        Web Inspector: [JSC] implement WorkerScriptDebugServer
        https://bugs.webkit.org/show_bug.cgi?id=99801

        Reviewed by Yury Semikhatsky.

        To implement Worker Inspector for JSC.
        The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
        the JS running in worker-context and normal page-context.
        The function "isContentScript" now is virtual because the original invoked functions are useless
        and cause problem in worker-context.
        In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
        ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
        JS code (Pause on start).

        No new test case.

        * bindings/js/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
        (WebCore):
        * bindings/js/PageScriptDebugServer.h:
        (PageScriptDebugServer):
        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::isContentScript):
        (WebCore::ScriptDebugServer::pauseIfNeeded):
        * bindings/js/ScriptDebugServer.h:
        (JSC):
        (ScriptDebugServer):
        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::attachDebugger):
        (WebCore):
        (WebCore::WorkerScriptController::detachDebugger):
        * bindings/js/WorkerScriptController.h:
        (WorkerScriptController):
        * bindings/js/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
        (WebCore):
        (WebCore::WorkerScriptDebugServer::addListener):
        (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
        (WebCore::WorkerScriptDebugServer::removeListener):
        (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
        * bindings/js/WorkerScriptDebugServer.h:
        (WorkerScriptDebugServer):
        (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
        (WebCore::WorkerScriptDebugServer::isContentScript):

2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>

        Compilation warning in Node.cpp when USERSELECT_ALL is disabled
        https://bugs.webkit.org/show_bug.cgi?id=101025

        Reviewed by Ryosuke Niwa.

        The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 

        * dom/Node.cpp:
        (WebCore::Node::rendererIsEditable):

2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
        https://bugs.webkit.org/show_bug.cgi?id=100743

        Reviewed by Alexander Pavlov.

        Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
        TabbedPane now consumes all middle mouse button mouse ups as well.
        Navigator view does not pass focus anymore if element was selected with middle mouse button.

        * inspector/front-end/DefaultTextEditor.js:
        (.preventDefaultOnMouseUp):
        (.consumeMouseUp):
        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane):
        (WebInspector.TabbedPane.prototype.onMouseUp):
        (WebInspector.TabbedPane.prototype.onMouseClick):

2012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
        https://bugs.webkit.org/show_bug.cgi?id=100866

        Reviewed by Yury Semikhatsky.

        Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * dom/DocumentOrderedMap.cpp:
        (WebCore::DocumentOrderedMap::reportMemoryUsage):
        (WebCore):
        * dom/DocumentOrderedMap.h:
        (DocumentOrderedMap):
        * dom/Element.cpp:
        (WebCore::Element::reportMemoryUsage):
        (WebCore):
        * dom/Element.h:
        * dom/ElementRareData.cpp: Added.
        (WebCore):
        (WebCore::ElementRareData::reportMemoryUsage):
        * dom/ElementRareData.h:
        (ElementRareData):
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::reportMemoryUsage):
        (WebCore):
        * dom/ElementShadow.h:
        (ElementShadow):
        * dom/Node.cpp:
        (WebCore::Node::reportMemoryUsage):
        * dom/NodeRareData.cpp: Added.
        (WebCore):
        (WebCore::NodeListsNodeData::reportMemoryUsage):
        (WebCore::NodeRareData::reportMemoryUsage):
        * dom/NodeRareData.h:
        (NodeListsNodeData):
        (NodeRareData):
        * dom/ShadowRoot.cpp:
        (WebCore):
        (WebCore::ShadowRoot::reportMemoryUsage):
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::reportMemoryUsage):
        (WebCore):
        * dom/TreeScope.h:
        (TreeScope):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::reportMemoryUsage):
        (WebCore):
        * html/HTMLFormControlElement.h:
        (HTMLFormControlElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::reportMemoryUsage):
        (WebCore):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
        (WebCore):
        * html/HTMLTextFormControlElement.h:
        (HTMLTextFormControlElement):

2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
        https://bugs.webkit.org/show_bug.cgi?id=97471

        Reviewed by Pavel Feldman.

        This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
        Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
        Cookie table can now show Max-Age as well as Expires attribute of a cookie.
        Fixed expiresDate calculation.
        Removed getters from CookieParser for better compilation.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/AuditRules.js:
        (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
        (WebInspector.AuditRules.CookieSizeRule.prototype._average):
        (WebInspector.AuditRules.CookieSizeRule.prototype._max):
        (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
        * inspector/front-end/CookieItemsView.js:
        (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
        * inspector/front-end/CookieParser.js:
        (WebInspector.CookieParser.prototype.cookies):
        (WebInspector.CookieParser.prototype._flushCookie):
        (WebInspector.CookieParser.prototype._addCookie):
        (WebInspector.Cookie.prototype.httpOnly):
        (WebInspector.Cookie.prototype.secure):
        (WebInspector.Cookie.prototype.session):
        (WebInspector.Cookie.prototype.path):
        (WebInspector.Cookie.prototype.domain):
        (WebInspector.Cookie.prototype.expires):
        (WebInspector.Cookie.prototype.maxAge):
        (WebInspector.Cookie.prototype.size):
        (WebInspector.Cookie.prototype.setSize):
        (WebInspector.Cookie.prototype.expiresDate):
        (WebInspector.Cookie.prototype.attributes):
        (WebInspector.Cookies.getCookiesAsync):
        (WebInspector.Cookies.buildCookiesFromString):
        (WebInspector.Cookies.buildCookieProtocolObject):
        (WebInspector.Cookies.cookieMatchesResourceURL):
        (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
        * inspector/front-end/CookiesTable.js:
        (WebInspector.CookiesTable):
        (WebInspector.CookiesTable.prototype._totalSize):
        (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
        (WebInspector.CookiesTable.prototype._sortCookies):
        (WebInspector.CookiesTable.prototype._createGridNode):
        * inspector/front-end/HAREntry.js:
        (WebInspector.HAREntry.prototype._buildCookie):

2012-11-01  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: do not call checkCountedObject with wrong pointers
        https://bugs.webkit.org/show_bug.cgi?id=100958

        Reviewed by Alexander Pavlov.

        Removed redundant call to checkCountedObject.

        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::countObjectSize):

2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>

        Web Inspector: a small defect in "WorkersSidebarPanel.js"
        https://bugs.webkit.org/show_bug.cgi?id=101022

        Reviewed by Yury Semikhatsky.

        In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
        "event.target" might be a label.

        The problem just causes an error report, doesn't effect function, so no new test case.

        * inspector/front-end/WorkersSidebarPane.js:
        (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):

2012-11-01  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Element should have getter and setter of attribute 'pseudo'
        https://bugs.webkit.org/show_bug.cgi?id=100831

        Reviewed by Hajime Morita.

        We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.

        Test: fast/dom/shadow/pseudo-attribute.html

        * dom/Element.cpp:
        (WebCore::Element::pseudo):
        (WebCore):
        (WebCore::Element::setPseudo):
        * dom/Element.h:
        (Element):
        * dom/Element.idl:
        * html/HTMLAttributeNames.in:

2012-11-01  Roger Fong  <roger_fong@apple.com>

        Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
        https://bugs.webkit.org/show_bug.cgi?id=101008

        Reviewed by fischman@chromium.org.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::clearMediaPlayer):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):

2012-11-01  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r133244.
        http://trac.webkit.org/changeset/133244
        https://bugs.webkit.org/show_bug.cgi?id=100973

        Broke Chromium Mac (clang) builds.

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        (WebCore::DOMNodeWrapperMap::weakCallback):

2012-11-01  Ami Fischman  <fischman@chromium.org>

        HTMLMediaPlayer should free m_player when src is set/changed
        https://bugs.webkit.org/show_bug.cgi?id=99647

        Reviewed by Eric Carlson.

        New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
        (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
        (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
        (WebCore):
        (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
        * html/HTMLMediaElement.h: new method: createMediaPlayer().
        (HTMLMediaElement):

2012-11-01  Tom Sepez  <tsepez@chromium.org>

        XSS blocker false positive when page contains <iframe src="">
        https://bugs.webkit.org/show_bug.cgi?id=93416

        Reviewed by Adam Barth.

        Treat src="" and src="about:blank" as safe resources even if they appear
        in the query parameters.

        Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
               http/tests/security/xssAuditor/iframe-injection-allowed-3.html
               http/tests/security/xssAuditor/iframe-injection-allowed.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::isLikelySafeResource):

2012-11-01  Tien-Ren Chen  <trchen@chromium.org>

        Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
        https://bugs.webkit.org/show_bug.cgi?id=100912

        Reviewed by Simon Fraser.

        Frame scale will add transformation to RenderView, so fixed position doesn't
        get propagated up to the viewport by RenderGeometryMap. This is handled
        correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
        This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
        transformation case.

        A layout test is added to catch this issue. The test will crash debug build
        without this patch.

        Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html

        * rendering/RenderGeometryMap.cpp:
        (WebCore::RenderGeometryMap::mapToAbsolute):

2012-11-01  Adam Barth  <abarth@webkit.org>

        [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
        https://bugs.webkit.org/show_bug.cgi?id=100973

        Reviewed by Kentaro Hara.

        This is the first step towards using intrusive DOM wrapper maps more
        widely in WebCore (see
        http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
        for more context).

        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        (WebCore):
        (WebCore::IntrusiveDOMWrapperMap::weakCallback):

2012-11-01  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
        https://bugs.webkit.org/show_bug.cgi?id=100533

        Reviewed by Dean Jackson.

        Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
        Both the software path and the composited one will use this operation instead. There will be
        no need to check the shader in platform code anymore.

        No new tests, already covered by existing custom filter tests.

        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
        (WebCore):
        (WebCore::ValidatedCustomFilterOperation::create):
        (ValidatedCustomFilterOperation):
        (WebCore::ValidatedCustomFilterOperation::validatedProgram):
        (WebCore::ValidatedCustomFilterOperation::parameters):
        (WebCore::ValidatedCustomFilterOperation::meshRows):
        (WebCore::ValidatedCustomFilterOperation::meshColumns):
        (WebCore::ValidatedCustomFilterOperation::meshType):
        (WebCore::ValidatedCustomFilterOperation::operator==):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::createCustomFilterEffect):
        (WebCore::FilterEffectRenderer::build):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::ensureBacking):
        (WebCore::RenderLayer::clearBacking):
        (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
        layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
        (WebCore):
        (WebCore::RenderLayer::isCSSCustomFilterEnabled):
        (WebCore::RenderLayer::computeFilterOperations):
        (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
        This one is supposed to add the clients needed to load network resources.
        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
        and creates a FilterEffectRenderer.
        * rendering/RenderLayer.h:
        (RenderLayer):

2012-11-01  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Get rid of internal tex coord attribute
        https://bugs.webkit.org/show_bug.cgi?id=94358

        Reviewed by Dean Jackson.

        Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
        sample the element texture by texture coordinate.

        Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
        WebKit can add its own a_texCoord definition to the author's shader.

        Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
        shader if the author did not define a_texCoord with the correct type. Essentially, if
        a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
        type and that its value is unmodified.

        Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html

        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
            Remove the references to m_internalTexCoordAttribLocation.
        (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
        * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
        * platform/graphics/filters/CustomFilterRenderer.cpp:
        (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
        (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
            Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
            method.
        (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
            If the author didn't define a_texCoord, add it to the end of the author's vertex 
            shader, but before the shader's new main function. As before, the new main function
            will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
        * platform/graphics/filters/CustomFilterValidatedProgram.h:
        (WebCore):
            Add a forward declaration for ANGLEShaderSymbol.
        (CustomFilterValidatedProgram):
            Update the method prototype for rewriteMixVertexShader.

2012-11-01  Chris Rogers  <crogers@google.com>

        Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
        https://bugs.webkit.org/show_bug.cgi?id=100994

        Reviewed by Kenneth Russell.

        In some rare cases it has been observed that nodes are getting deleted in the main thread
        during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
        via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
        This was possible because nodes marked for deletion with markForDeletion() could be picked
        up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
        handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
        The solution is to manage the marked nodes in a separate vector which only gets copied to another
        vector truly eligible for deletion which is synchronized in handlePostRenderTasks().

        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::markForDeletion):
        (WebCore::AudioContext::scheduleNodeDeletion):
        (WebCore::AudioContext::deleteMarkedNodes):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):

2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix after r133224 as suggested by Enrica.
        Confirmed the test failures go away on Chromium Mac locally.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateSelectionForMouseDrag):

2012-11-01  Alexey Proskuryakov  <ap@apple.com>

        Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)

        Rubber-stamped by Joe Pecoraro.

        All CFNetwork based platforms have this now, but not all use it at the moment.

        * loader/ResourceLoader.h:
        * loader/SubresourceLoader.h:
        * loader/cf/SubresourceLoaderCF.cpp:
        * loader/mac/ResourceLoaderMac.mm:
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::clear):
        (WebCore::SharedBuffer::buffer):
        (WebCore::SharedBuffer::getSomeData):
        * platform/SharedBuffer.h:
        * platform/cf/SharedBufferCF.cpp:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleClient.h:
        (ResourceHandleClient):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willCacheResponse):
        (WebCore::ResourceHandle::createCFURLConnection):
        * platform/network/mac/ResourceHandleMac.mm:

2012-11-01  Alexey Proskuryakov  <ap@apple.com>

        Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
        https://bugs.webkit.org/show_bug.cgi?id=100979

        Reviewed by Joseph Pecoraro.

        * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
        * loader/ResourceBuffer.h:
        Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.

        * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
        InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
        here, meaning that the results will likely be incorrect.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
        (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
        HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
        come together. Changed to check for these separately.

2012-11-01  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Add more form validation strings
        https://bugs.webkit.org/show_bug.cgi?id=100978

        Reviewed by Yong Li.

        PR 210072

        Implement these two methods properly.

        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        (WebCore::validationMessageRangeUnderflowText):
        (WebCore::validationMessageRangeOverflowText):

2012-11-01  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
        https://bugs.webkit.org/show_bug.cgi?id=100782

        Reviewed by Dean Jackson.

        Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
        This way we can reuse it without including the CustomFilterOperation file.

        No new tests, just refactoring code.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createCustomFilterOperation):
        * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
        CustomFilterOperation already included AnimationsUtilities.h indirectly.
        * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
        * platform/graphics/filters/CustomFilterNumberParameter.h:
        * platform/graphics/filters/CustomFilterOperation.cpp:
        (WebCore::CustomFilterOperation::CustomFilterOperation):
        * platform/graphics/filters/CustomFilterOperation.h:
        (WebCore::CustomFilterOperation::create):
        (WebCore::CustomFilterOperation::meshBoxType):
        (CustomFilterOperation):
        * platform/graphics/filters/CustomFilterRenderer.cpp:
        (WebCore::CustomFilterRenderer::create):
        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
        * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
        headers were needed to replace the files that were automatically incldued because of that file.
        (WebCore):
        (CustomFilterRenderer):
        * platform/graphics/filters/FECustomFilter.cpp:
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::create):
        * platform/graphics/filters/FECustomFilter.h:
        (FECustomFilter):

2012-11-01  Enrica Casucci  <enrica@apple.com>

        Part2 of: Extend -webkit-user-select with new value "all"
        <rdar://problem/10161404>
        https://bugs.webkit.org/show_bug.cgi?id=91912

        Reviewed by Ryosuke Niwa.

        The new value "all" for -webkit-user-select property gives content none-or-all selection option.
        The patch was originally prepared by Alice Cheng but the approach has been changed.
        The idea is to treat these elements like non editable, meaning that we should skip over them entirely
        when moving the cursor and a deletion should delete the element and all its descentants at once.
        The key change is in Node::rendererIsEditable where we now return false if the element style is
        userSelect: all. The other change is in the way we create the selection on mouse click and dragging
        over the element. In both cases we force the selection to extend over the entire element with
        the user-select: all attribute.
        This is currently enabled only for the Mac port.

        Test: editing/selection/user-select-all-selection.html

        * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
        when called from JavaScript. Internally isContentEditable returns false on
        nodes with user-select: all style.
        (WebCore::Node::isContentEditable):
        (WebCore::Node::isContentRichlyEditable):
        (WebCore::Node::rendererIsEditable):
        (WebCore::Node::shouldUseInputMethod):
        (WebCore::Node::willRespondToMouseClickEvents):
        * dom/Node.h:
        (WebCore::Node::rendererIsEditable):
        (WebCore::Node::rendererIsRichlyEditable):
        * dom/Position.cpp:
        (WebCore::Position::nodeIsUserSelectAll): Added.
        (WebCore::Position::rootUserSelectAllForNode): Added.
        * dom/Position.h: Added static functions described above.
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
        isContentEditable() call.
        (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
        isContentEditable() call.
        * editing/DeleteFromTextNodeCommand.cpp:
        (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
        isContentEditable() call.
        * editing/FrameSelection.cpp:
        (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
        (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
        (WebCore::FrameSelection::modifyExtendingRight):
        (WebCore::FrameSelection::modifyExtendingForward):
        (WebCore::FrameSelection::modifyExtendingLeft):
        (WebCore::FrameSelection::modifyExtendingBackward):
        (WebCore::FrameSelection::modify):
        (WebCore::CaretBase::invalidateCaretRect): Added parameter to
        isContentEditable() call.
        * editing/InsertNodeBeforeCommand.cpp:
        (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
        (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
        * editing/RemoveNodeCommand.cpp:
        (WebCore::RemoveNodeCommand::doApply): Ditto.
        * editing/visible_units.cpp:
        (WebCore::startOfParagraph): We should not consider a paragraph break and element
        with user-select: all style, like we do at the border of editability.
        (WebCore::endOfParagraph): Ditto.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
        around the element whose style is user-select: all.
        (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
        If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
        we should return the selection state as SelectionBoth, assuming we went past the end selection.
        This avoids doing an incorrect gap filling for the selection highlighting.

2012-11-01  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Fix Windows build by re-adding a #include
        https://bugs.webkit.org/show_bug.cgi?id=100986

        Reviewed by Stephen White.

        Fix #include that broke windows.

        * Modules/indexeddb/IDBCallbacks.h:

2012-11-01  David Barton  <dbarton@mathscribe.com>

        REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
        https://bugs.webkit.org/show_bug.cgi?id=97390

        Reviewed by Ojan Vafai.

        In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
        in layout() will be the base's true height, without any flexbox stretching.

        Tested by existing tests.

        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
        (WebCore::RenderMathMLSubSup::addChild):
        (WebCore::RenderMathMLSubSup::styleDidChange):
        * rendering/mathml/RenderMathMLSubSup.h:
        (RenderMathMLSubSup):

2012-11-01  Antti Koivisto  <antti@apple.com>

        REGRESSION (r132941): attribute modification 10% performance regression
        https://bugs.webkit.org/show_bug.cgi?id=100873

        Reviewed by Ojan Vafai.

        Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
        to mark the unchanged classes

        * css/StyleResolver.cpp:
        (WebCore):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::hasSelectorForAttribute):
        (WebCore):
        (WebCore::StyleResolver::hasSelectorForClass):
        (WebCore::StyleResolver::hasSelectorForId):
        
            Inlined these and moved value validity testing to clients.

        * dom/Element.cpp:
        (WebCore::checkNeedsStyleInvalidationForIdChange):
        (WebCore):
        (WebCore::Element::attributeChanged):
    
            Clean up id testing too.

        (WebCore::checkNeedsStyleInvalidationForClassChange):
        
            Use bit vector for marking seen values. Avoids allocations and reffing.

        (WebCore::Element::classAttributeChanged):
        
            Don't test if style is already invalid.

2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>

        [Mac] Crash in Range::editingStartPosition
        https://bugs.webkit.org/show_bug.cgi?id=100972

        Reviewed by Enrica Casucci.

        Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
        pastLastNode() will crash.

        No new tests since determining the exact condition under which we go through the said code path and
        toNormalRange returns null is hard.

        * editing/mac/EditorMac.mm:
        (WebCore::Editor::fontForSelection):

2012-11-01  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=100917
        There should be a way to dump the scrolling tree from the layout tests

        Reviewed by Simon Fraser.

        New Internals call to dump the scrolling state tree as text. Calls through to the 
        ScrollingCoordinator.
        * testing/Internals.cpp:
        (WebCore::Internals::scrollingStateTreeAsText):
        (WebCore):
        * testing/Internals.h:
        * testing/Internals.idl:
        * WebCore.exp.in:
        * page/Page.cpp:
        (WebCore::Page::scrollingStateTreeAsText):
        (WebCore):
        * page/Page.h:
        (Page):

        ScrollingCoordinator tells the rootStateNode to dump the tree as text.
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
        (WebCore):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
        (WebCore):
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):

        dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
        properties that are specific to different types of nodes.
        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::writeIndent):
        (WebCore):
        (WebCore::ScrollingStateNode::dumpNode):
        (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
        * page/scrolling/ScrollingStateNode.h:
        (WebCore):
        (ScrollingStateNode):
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::dumpProperties):
        (WebCore):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (ScrollingStateScrollingNode):

2012-11-01  Kenneth Russell  <kbr@google.com>

        Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
        https://bugs.webkit.org/show_bug.cgi?id=100971

        Reviewed by Stephen White.

        The ImageBuffer::copyToPlatformTexture restriction added in
        r132965 was too restrictive. Allow RGB textures to prevent
        performance regressions.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::texImage2D):
        * platform/graphics/ImageBuffer.h:
        (ImageBuffer):

2012-11-01  Michael Matovsky  <mmatovsky@rim.com>

        [BlackBerry] Web page view state should be preserved for pages loaded from page cache
        https://bugs.webkit.org/show_bug.cgi?id=100694
        Internal PR: 220488

        Internally reviewed by Lianghui Chen, Joe Mason
        Reviewed by Rob Buis.

        The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
        This requires web page view state to be saved in and restored from the corresponding page cache history item.

        No new tests for platform specific internal change.

        * history/blackberry/HistoryItemViewState.h:
        (HistoryItemViewState):

2012-11-01  Alec Flett  <alecflett@chromium.org>

        IndexedDB: add methods to support id-based backend APIs
        https://bugs.webkit.org/show_bug.cgi?id=100425

        Reviewed by Tony Chang.

        First half of refactor involves adding a number of methods that
        are int64_t-based rather than String-based. As a part of this, the
        IDB*Metadata structs and the backend objectStore/index maps all
        use int64_t as keys, rather than String.

        In addition, there were a number of cleanups that came out of the
        refactor:

        - The list of object stores active in a transaction is now
          maintained by the frontend IDBTransaction rather than the backend
          IDBTransactionBackendImpl. This also had a simplifying rippling
          effect through other call signatures.

        - I was able to remove an apparently old FIXME from
          IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.

        - IDBObjectStoreBackendImpl's IndexWriter class got a little
          simpler since the id is now easily available in the
          IDBIndexMetadata.

        - A number of methods got simpler in their int64_t versions,
          specifically dropping a number of ExceptionCodes.

        There is also some glue code
        (getIndexId/getIndexIds/getObjectStoreId) that will go away with
        the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425

        No new tests, no new functionality as this is just a refactor.

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::objectStoreNames):
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::metadata):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::objectStore):
        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
        (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
        (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBIndex.h:
        (WebCore::IDBIndex::id):
        (WebCore::IDBIndex::openKeyCursor):
        * Modules/indexeddb/IDBIndexBackendInterface.h:
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBIndexMetadata::IDBIndexMetadata):
        (IDBIndexMetadata):
        (IDBObjectStoreMetadata):
        (WebCore::IDBObjectStoreMetadata::containsIndex):
        (IDBDatabaseMetadata):
        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
        (WebCore::IDBDatabaseMetadata::containsObjectStore):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::indexNames):
        (WebCore::IDBObjectStore::put):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
        (WebCore):
        (WebCore::makeIndexWriters):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::index):
        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
        (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
        (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        (WebCore::IDBTransaction::IDBTransaction):
        (WebCore::IDBTransaction::objectStore):
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::create):
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::objectStore):
        (WebCore):
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:

2012-11-01  Adam Barth  <abarth@webkit.org>

        [V8] The DOMWrapperVisitor abstraction is no longer needed
        https://bugs.webkit.org/show_bug.cgi?id=100965

        Reviewed by Kentaro Hara.

        This patch removes the DOMWrapperVisitor interface because it is no
        longer needed. As a consequence, DOMWrapperMaps no longer need to
        support enumeration, and we can move more DOM objects to use the faster
        intrusive wrappers.

        There was one remaining user of DOMWrapperVisitor in the
        ScriptProfiler, which I've moved over to enumerating objects directly
        from V8, similar to a function above it in the same file.

        * bindings/v8/DOMWrapperMap.h:
        (WebCore):
        (DOMWrapperMap):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitNodeWrappers):
        (WebCore::ScriptProfiler::visitExternalArrays):

2012-11-01  Mike West  <mkwst@chromium.org>

        CSP 1.0: Warn when old-style directives encountered.
        https://bugs.webkit.org/show_bug.cgi?id=100883

        Reviewed by Adam Barth.

        In Mozilla's pre-W3C-spec implementation, a few directives are
        implemented that were either renamed, reworked, or removed from CSP 1.0.
        This patch adds special warning messages for three of those directives
        to set developer expectations correctly.

        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html

        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPDirectiveList::parseDirective):
        (WebCore::CSPDirectiveList::addDirective):
        (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
        * page/ContentSecurityPolicy.h:
            Rename 'reportUnrecognizedDirectives' to
            'reportUnsupportedDirectives', and teach it to give more descriptive
            error messages when encountering 'allow', 'options', and
            'policy-uri'.

2012-11-01  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: Update CodeMirror to v3
        https://bugs.webkit.org/show_bug.cgi?id=99319

        Reviewed by Vsevolod Vlasov.

        Updated to ToT v3.

        * inspector/front-end/CodeMirrorTextEditor.js:
        (WebInspector.CodeMirrorTextEditor):
        (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
        (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
        (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
        (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
        (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
        (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
        (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
        (WebInspector.CodeMirrorTextEditor.prototype._change):
        * inspector/front-end/cm/cmdevtools.css:
        (.CodeMirror):
        (.CodeMirror-linenumber):
        (.cm-breakpoint):
        * inspector/front-end/cm/codemirror.css:
        (.CodeMirror):
        (.CodeMirror-scroll):
        (.CodeMirror-lines):
        (.CodeMirror pre):
        (.CodeMirror-scrollbar-filler):
        (.CodeMirror-gutters):
        (.CodeMirror-linenumbers):
        (.CodeMirror-linenumber):
        (.CodeMirror pre.CodeMirror-cursor):
        (.CodeMirror pre.CodeMirror-secondarycursor):
        (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
        (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
        (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
        (.cm-s-default .cm-keyword):
        (.cm-s-default .cm-atom):
        (.cm-s-default .cm-number):
        (.cm-s-default .cm-def):
        (.cm-s-default .cm-variable):
        (.cm-s-default .cm-variable-2):
        (.cm-s-default .cm-variable-3):
        (.cm-s-default .cm-property):
        (.cm-s-default .cm-operator):
        (.cm-s-default .cm-comment):
        (.cm-s-default .cm-string):
        (.cm-s-default .cm-string-2):
        (.cm-s-default .cm-meta):
        (.cm-s-default .cm-error):
        (.cm-s-default .cm-qualifier):
        (.cm-s-default .cm-builtin):
        (.cm-s-default .cm-bracket):
        (.cm-s-default .cm-tag):
        (.cm-s-default .cm-attribute):
        (.cm-s-default .cm-header):
        (.cm-s-default .cm-quote):
        (.cm-s-default .cm-hr):
        (.cm-s-default .cm-link):
        (.cm-header, .cm-strong):
        (.cm-em):
        (.cm-emstrong):
        (.cm-link):
        (.cm-invalidchar):
        (div.CodeMirror span.CodeMirror-matchingbracket):
        (div.CodeMirror span.CodeMirror-nonmatchingbracket):
        (.CodeMirror-sizer):
        (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
        (.CodeMirror-vscrollbar):
        (.CodeMirror-hscrollbar):
        (.CodeMirror-gutter):
        (.CodeMirror-gutter-elt):
        (.CodeMirror-linebackground):
        (.CodeMirror-linewidget):
        (.CodeMirror-measure):
        (.CodeMirror-measure pre):
        (.CodeMirror-selected):
        (.CodeMirror-focused .CodeMirror-selected):
        (.CodeMirror span):
        * inspector/front-end/cm/codemirror.js:
        (window.CodeMirror.):
        (window.CodeMirror):
        * inspector/front-end/utilities.js:

2012-11-01  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 235194.

        Check img pointer is null, if so, do early return.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::drawControl):
        (WebCore::drawThreeSlice):
        (WebCore::drawNineSlice):

2012-11-01  Adam Barth  <abarth@webkit.org>

        [V8] The V8DOMMap visitors are no longer needed
        https://bugs.webkit.org/show_bug.cgi?id=100963

        Reviewed by Kentaro Hara.

        This patch inlines visitAllDOMNodes into its one caller (and removes
        one layer of visitor adaptor abstraction).

        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitNodeWrappers):
        * bindings/v8/V8DOMMap.cpp:
        * bindings/v8/V8DOMMap.h:
        (WebCore):

2012-11-01  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] Update BB10 form theme.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR 235194.

        Check img pointer is null, if so, do early return.

        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore::drawControl):
        (WebCore::drawThreeSlice):
        (WebCore::drawNineSlice):

2012-11-01  Adam Barth  <abarth@webkit.org>

        Unreviewed. Build fix.

        * bindings/v8/V8GCController.cpp:

2012-11-01  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][WK2] Add Ewk_Auth_Request API
        https://bugs.webkit.org/show_bug.cgi?id=100858

        Reviewed by Kenneth Rohde Christiansen.

        Provide an AuthenticationClient for EFL port in WebCore so
        that we can handle authentication similarly to other ports
        of WebKit.

        No new tests, no behavior change for layout tests.

        * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
        * platform/network/ResourceHandle.h:
        (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
        most of the other ports.
        * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
        of previousFailureCount member. It should be 1 if we are retrying
        authentication and 0 otherwise, not the opposite.
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
        port of AuthenticationClient methods.
        (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
        (WebCoreSynchronousLoader):
        (WebCore):
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
        (WebCore::ResourceHandle::receivedCredential):
        (WebCore::ResourceHandle::receivedCancellation):
        (WebCore::authenticateCallback):
        (WebCore::ResourceHandle::defaultSession):

2012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>

        WebIconDatabase: Properly clean up on destruction
        https://bugs.webkit.org/show_bug.cgi?id=100237

        Reviewed by Brady Eidson.

        It's now possible that the IconDatabase gets destroyed since WebKit2
        isn't using it as a singleton.

        Check that the database was properly closed rather than asserting that
        it won't get deleted.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::~IconDatabase):

2012-11-01  Alexei Filippov  <alph@chromium.org>

        Web Inspector: make component subitems use parent color in native memory snapshots.
        https://bugs.webkit.org/show_bug.cgi?id=100876

        A component subitems use the color of the component itself if the color
        is not explicitly specified for the subitem.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
        (WebInspector.MemoryBlockViewProperties._initialize):
        (WebInspector.MemoryBlockViewProperties._forMemoryBlock):

2012-11-01  Emil A Eklund  <eae@chromium.org>

        [subpixel] Change intrinsicSize to LayoutUnit
        https://bugs.webkit.org/show_bug.cgi?id=99104

        Reviewed by Levi Weintraub.

        Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
        rounding problems when zooming/scaling. Also change imageSize to
        LayoutUnit as it can return a scaled size.

        Test: fast/sub-pixel/tiled-canvas-elements.html

        * html/ImageDocument.cpp:
        (WebCore::ImageDocumentParser::finish):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::imageSizeForRenderer):
        * loader/cache/CachedImage.h:
        (CachedImage):
        * platform/graphics/FractionalLayoutSize.h:
        (FractionalLayoutSize):
        (WebCore::FractionalLayoutSize::scale):
        (WebCore::FractionalLayoutSize::clampToMinimumSize):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::intrinsicSize):
        * rendering/RenderHTMLCanvas.cpp:
        (WebCore::RenderHTMLCanvas::canvasSizeChanged):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::imageChanged):
        (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
        (WebCore::RenderImage::paintReplaced):
        (WebCore::RenderImage::minimumReplacedHeight):
        * rendering/RenderImage.h:
        (RenderImage):
        * rendering/RenderImageResource.h:
        (WebCore::RenderImageResource::imageSize):
        * rendering/RenderImageResourceStyleImage.h:
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::RenderReplaced):
        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
        * rendering/RenderReplaced.h:
        (RenderReplaced):
        (WebCore::RenderReplaced::minimumReplacedHeight):
        (WebCore::RenderReplaced::setIntrinsicSize):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::updateIntrinsicSize):
        (WebCore::RenderVideo::calculateIntrinsicSize):
        (WebCore::RenderVideo::videoBox):
        (WebCore::RenderVideo::minimumReplacedHeight):
        * rendering/RenderVideo.h:
        (RenderVideo):
        * rendering/style/StyleCachedImage.cpp:
        (WebCore::StyleCachedImage::imageSize):
        * rendering/style/StyleCachedImage.h:
        (StyleCachedImage):
        * rendering/style/StyleCachedImageSet.cpp:
        (WebCore::StyleCachedImageSet::imageSize):
        * rendering/style/StyleCachedImageSet.h:
        (StyleCachedImageSet):
        * rendering/style/StyleGeneratedImage.cpp:
        (WebCore::StyleGeneratedImage::imageSize):
        (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
        * rendering/style/StyleGeneratedImage.h:
        (StyleGeneratedImage):
        * rendering/style/StyleImage.h:
        (StyleImage):
        * rendering/style/StylePendingImage.h:

2012-11-01  Adam Barth  <abarth@webkit.org>

        [V8] Unify the V8GCController visitors
        https://bugs.webkit.org/show_bug.cgi?id=100897

        Reviewed by Eric Seidel.

        After this patch, we use a single visitor for all DOM wrappers,
        regardless of type. We also visit all the wrappers in one pass by
        calling v8::V8::VisitHandlesWithClassIds directly rather than via
        visitAllDOMNodes.

        This patch also introduces a wrapper class ID for non-Node DOM objects.
        Previously, only DOM nodes had a class ID.

        * bindings/v8/IntrusiveDOMWrapperMap.h:
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::retainedDOMInfo):
        (WebCore::ScriptProfiler::initialize):
        * bindings/v8/V8DOMMap.cpp:
        (WebCore::visitAllDOMNodes):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
        * bindings/v8/V8GCController.cpp:
        (WebCore::GCHandleVisitor::notifyFinished):
        (GCHandleVisitor):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):

2012-11-01  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r133143.
        http://trac.webkit.org/changeset/133143
        https://bugs.webkit.org/show_bug.cgi?id=96894

        Causing content_browsertests failures

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DeviceOrientationClient.h:
        (DeviceOrientationClient):
        * dom/DeviceOrientationController.cpp:
        (WebCore::DeviceOrientationController::DeviceOrientationController):
        (WebCore):
        (WebCore::DeviceOrientationController::~DeviceOrientationController):
        (WebCore::DeviceOrientationController::timerFired):
        (WebCore::DeviceOrientationController::addListener):
        (WebCore::DeviceOrientationController::removeListener):
        (WebCore::DeviceOrientationController::removeAllListeners):
        (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
        (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
        (WebCore::DeviceOrientationController::supplementName):
        * dom/DeviceOrientationController.h:
        (WebCore):
        (DeviceOrientationController):
        (WebCore::DeviceOrientationController::isActive):
        (WebCore::DeviceOrientationController::client):
        (WebCore::DeviceOrientationController::from):
        * dom/Document.cpp:
        (WebCore::Document::suspendActiveDOMObjects):
        (WebCore::Document::resumeActiveDOMObjects):
        * loader/EmptyClients.h:
        (WebCore::EmptyDeviceOrientationClient::startUpdating):
        (WebCore::EmptyDeviceOrientationClient::stopUpdating):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        * page/DeviceClient.h: Removed.
        * page/DeviceController.cpp: Removed.
        * page/DeviceController.h: Removed.

2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
        https://bugs.webkit.org/show_bug.cgi?id=100923.

        Reviewed by Kenneth Rohde Christiansen.

        GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
        This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::~GraphicsContext3D):

2012-11-01  Andreas Kling  <kling@webkit.org>

        Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
        <http://webkit.org/b/100753>

        Unreviewed debug bot crash fix after r133138.

        There's additional padding after StylePropertySet and ElementAttributeData
        in 64-bit debug builds since there are additional members in RefCountedBase.
        Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.

        * css/StylePropertySet.cpp:
        (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
        * dom/ElementAttributeData.cpp:
        (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
        (WebCore::ElementAttributeData::createImmutable):
        (WebCore::ElementAttributeData::reportMemoryUsage):

2012-11-01  Stephen Chenney  <schenney@chromium.org>

        FEImage::m_document is never cleared. Why not?
        https://bugs.webkit.org/show_bug.cgi?id=99243

        Reviewed by Dirk Schulze.

        Adding a comment to explain why the failure to clear m_document is not a problem.

        No new tests because no code change at all.

        * svg/graphics/filters/SVGFEImage.h:
        (FEImage): Add a comment on the lifetime of m_document.

2012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: make "addRecord" unambiguous
        https://bugs.webkit.org/show_bug.cgi?id=100761

        Reviewed by Pavel Feldman.

        TimelinePresentationModel.addRecord accepts two parameters:
        record and parentRecord. parentRecord is always root record.
        Make this explicit by removing parentRecord parameter.

        * inspector/front-end/TimelinePanel.js: Removed parameter.
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel.prototype.addRecord):
        Used root recoed instead of parent record.

2012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Browser prematurely sends wrong credentials
        https://bugs.webkit.org/show_bug.cgi?id=100585

        Reviewed by George Staikos.

        Don't send credentials to the server before been challenged.

        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::NetworkManager::startJob):

2012-11-01  Stephen Chenney  <schenney@chromium.org>

        SVG as an image may recreate the renderer on zoom
        https://bugs.webkit.org/show_bug.cgi?id=99508

        Reviewed by Abhishek Arya.

        The SVGImage code, when SVG is used in <img> tags, caches the renderer
        at the start of the painting method and re-uses the pointer at the end
        of the method. However, when the page is zoomed the renderer may be
        detached mid-method, thus leaving a stray pointer. The fix is to
        re-fetch the pointer after the zooms.

        Test: svg/as-image/img-zoom-svg-stylesheet.html

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
        the zoom operations.

2012-11-01  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: introduce Inspector.detached message containing termination cause.
        https://bugs.webkit.org/show_bug.cgi?id=100948

        Reviewed by Yury Semikhatsky.

        Now protocol clients have more information to process connection termination.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/front-end/InspectorFrontendHostStub.js:
        (WebInspector.RemoteDebuggingTerminatedScreen):
        * inspector/front-end/inspector.js:
        (WebInspector.loaded.WebInspector.socket.onopen):
        (WebInspector.loaded):
        (WebInspector.detached):

2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
        https://bugs.webkit.org/show_bug.cgi?id=100593

        Reviewed by Pavel Feldman.

        BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
        Removed now redundant callback from UISourceCode.setFormatted().

        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
        (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype._fireContentAvailable):
        (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
        (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
        (WebInspector.UISourceCode.prototype.setFormatted):

2012-10-30  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: Output code evaluated in the console the same as console.log
        https://bugs.webkit.org/show_bug.cgi?id=100695

        Reviewed by Pavel Feldman.

        Added an option to return object preview from evaluation commands in the protocol.
        The option is used to generate preview for console eval results.

        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::evaluate):
        (WebCore::InjectedScript::callFunctionOn):
        (WebCore::InjectedScript::evaluateOnCallFrame):
        * inspector/InjectedScript.h:
        (InjectedScript):
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::evaluate):
        (WebCore::InspectorRuntimeAgent::callFunctionOn):
        * inspector/InspectorRuntimeAgent.h:
        (InspectorRuntimeAgent):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
        (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype.evaluate):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
        * inspector/front-end/RemoteObject.js:
        (WebInspector.RemoteObject.prototype.):
        (WebInspector.RemoteObject.prototype.callFunction):
        (WebInspector.RemoteObject.prototype.callFunctionJSON):
        * inspector/front-end/RuntimeModel.js:
        (WebInspector.RuntimeModel.prototype.evaluate):
        (WebInspector.RuntimeModel.prototype.evaluated):
        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionsSection.prototype.update):

2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove obsolete code from JavaScriptSourceFrame
        https://bugs.webkit.org/show_bug.cgi?id=100594

        Reviewed by Yury Semikhatsky.

        Removed obsolete WorkingCopyCommitted listener.
        Removed redundant code that removes breakpoints from _innerSetContent.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):

2012-11-01  Andreas Kling  <kling@webkit.org>

        Update average StylePropertySet size estimation.
        <http://webkit.org/b/100940>

        Reviewed by Antti Koivisto.

        Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
        size to keep it in sync with the changed object memory layout.

        * css/StylePropertySet.cpp:
        (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
        (WebCore::StylePropertySet::createImmutable):
        (WebCore::StylePropertySet::averageSizeInBytes):
        (WebCore::StylePropertySet::reportMemoryUsage):


2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
        https://bugs.webkit.org/show_bug.cgi?id=100628.

        Reviewed by Kenneth Rohde Christiansen.

        With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
        GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
        However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
        display from offscreenwindow.
        This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):

2012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Former auto-height regions should not ignore their defined height
        https://bugs.webkit.org/show_bug.cgi?id=100749

        Reviewed by Julien Chaffraix.

        When a region with height auto has its height defined, we should also clear the override logical content height.
        Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.

        Test: fast/regions/autoheight-definedheight-changenotdetected.html

        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):

2012-11-01  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
        https://bugs.webkit.org/show_bug.cgi?id=100934

        Reviewed by Alexander Pavlov.

        * css/CSSImageGeneratorValue.cpp:
        (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
        memory usage data.

2012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>

        Add DeviceController base-class to remove duplication of DeviceXXXControler
        https://bugs.webkit.org/show_bug.cgi?id=96894

        Reviewed by Hajime Morita.

        Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
        And soon-to-be-added DeviceMotionController and ProximityController.

        Covered by existing tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DeviceOrientationClient.h:
        * dom/DeviceOrientationController.cpp:
        Remove member functions to move to DeviceController.
        - addListener(), removeListener(), removeAllListeners(), isActive()
        (WebCore::DeviceOrientationController::DeviceOrientationController):
        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
        (WebCore::DeviceOrientationController::client):
        (WebCore::DeviceOrientationController::hasLastData):
        (WebCore::DeviceOrientationController::getLastEvent):
        (WebCore::DeviceOrientationController::from):
        (WebCore):
        * dom/DeviceOrientationController.h:
        (WebCore):
        (WebCore::DeviceOrientationController::~DeviceOrientationController):
        (DeviceOrientationController):
        * dom/Document.cpp:
        Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
        These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
        (WebCore::Document::suspendActiveDOMObjects):
        (WebCore::Document::resumeActiveDOMObjects):
        * loader/EmptyClients.h:
        (EmptyDeviceClient):
        (WebCore::EmptyDeviceClient::startUpdating):
        (WebCore::EmptyDeviceClient::stopUpdating):
        (WebCore):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        * page/DeviceClient.h: Added.
        (WebCore):
        (DeviceClient):
        (WebCore::DeviceClient::~DeviceClient):
        * page/DeviceController.cpp: Added.
        DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
        - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
        All kind of device event controller which has DeviceClient can be inherited from DeviceController.
        (WebCore):
        (WebCore::DeviceController::DeviceController):
        (WebCore::DeviceController::addDeviceEventListener):
        (WebCore::DeviceController::removeDeviceEventListener):
        (WebCore::DeviceController::removeAllDeviceEventListeners):
        (WebCore::DeviceController::dispatchDeviceEvent):
        (WebCore::DeviceController::fireDeviceEvent):
        * page/DeviceController.h: Added.
        (WebCore):
        (DeviceController):
        (WebCore::DeviceController::~DeviceController):
        (WebCore::DeviceController::isActive):
        (WebCore::DeviceController::client):
        (WebCore::DeviceController::hasLastData):
        (WebCore::DeviceController::getLastEvent):

2012-11-01  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
        https://bugs.webkit.org/show_bug.cgi?id=100497

        Reviewed by Alexander Pavlov.

        Added memory reporting method to chromium implementation of ResourceRequest.

        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
        on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
        rather make ResourceRequestBase::reportMemoryUsage virtual and override it
        in the descendant but ResourceRequestBase doesn't have any virtual methods
        and shouldn't be used directly(ResourceRequest should be used instead).
        * platform/network/ResourceRequestBase.h:
        (ResourceRequestBase):
        * platform/network/chromium/ResourceRequest.cpp:
        (WebCore::ResourceRequest::reportMemoryUsage):
        (WebCore):
        * platform/network/chromium/ResourceRequest.h:
        (ResourceRequest):

2012-11-01  Andreas Kling  <kling@webkit.org>

        Pack immutable StylePropertySets harder on 64-bit.
        <http://webkit.org/b/100753>
        <rdar://problem/12599155>

        Reviewed by Antti Koivisto.

        Move away from using CSSProperty as internal storage for immutable StylePropertySets.
        Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
        and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.

        Old object layout:

            Ref count                   (4 bytes)
            Metadata                    (4 bytes)
            CSSProperty [N]             (16 bytes each)

        New object layout:

            Ref count                   (4 bytes)
            Metadata                    (4 bytes)
            CSSValue* [N]               (8 bytes each)
            StylePropertyMetadata [N]   (4 bytes each)

        901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)

        The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
        and by the StylePropertySet constructors.

        * css/CSSProperty.cpp:
        * css/CSSProperty.h:
        (CSSProperty):
        (WebCore::CSSProperty::CSSProperty):
        (WebCore::CSSProperty::id):
        (WebCore::CSSProperty::shorthandID):
        (WebCore::CSSProperty::isImportant):
        (WebCore::CSSProperty::metadata):

            Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)

        * css/StylePropertySet.cpp:
        (WebCore::immutableStylePropertySetSize):

            Updated size calculation for immutable StylePropertySets, 1/4 smaller!

        (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
        (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
        (WebCore::MutableStylePropertySet::MutableStylePropertySet):
        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
        (WebCore::StylePropertySet::reportMemoryUsage):
        (WebCore::StylePropertySet::PropertyReference::cssName):
        (WebCore::StylePropertySet::PropertyReference::cssText):
        * css/StylePropertySet.h:
        (WebCore::StylePropertySet::PropertyReference::id):
        (WebCore::StylePropertySet::PropertyReference::shorthandID):
        (WebCore::StylePropertySet::PropertyReference::isImportant):
        (WebCore::StylePropertySet::PropertyReference::isInherited):
        (WebCore::StylePropertySet::PropertyReference::isImplicit):
        (PropertyReference):
        (WebCore::StylePropertySet::PropertyReference::value):
        (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
        (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
        (WebCore::StylePropertySet::PropertyReference::propertyValue):
        (StylePropertySet):
        (ImmutableStylePropertySet):
        (WebCore::StylePropertySet::immutableValueArray):
        (WebCore::StylePropertySet::immutableMetadataArray):

            Refactored internal storage for StylePropertySet.

2012-11-01  Kent Tamura  <tkent@chromium.org>

        Remove unused Locale::parseDateTime
        https://bugs.webkit.org/show_bug.cgi?id=100910

        Reviewed by Kentaro Hara.

        For date/time input types, InputType::convertFromVisibleValue is never
        called. convertFromVisibleValue is called when an inner editable node is
        updated. However input elements don't have such editable nodes if
        ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
        inner editable node otherwise because we open date/time pickers when a
        user try to change the field value.

        We had used convertFromVisibleValue for input[type=date] with an old UI.

        No new tests because of no behavior changes.

        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
        Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.

        * platform/text/PlatformLocale.h: Remove parseDateTime.

        * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
        * platform/text/LocaleICU.cpp: Remove parseDateTime.

        * platform/text/LocaleNone.cpp: Remove parseDateTime.

        * platform/text/mac/LocaleMac.h: Remove parseDateTime.
        * platform/text/mac/LocaleMac.mm: Ditto.
        * platform/text/win/LocaleWin.h:
        - Remove parseDateTime, its helpers, and m_baseYear.
        - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
          and formatDate. They don't exist.
        * platform/text/win/LocaleWin.cpp:
        Remove the above functions.
        (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.

2012-10-31  Nate Chapin  <japhet@chromium.org>

        Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
        https://bugs.webkit.org/show_bug.cgi?id=100901

        Reviewed by Adam Barth.

        No new tests, refactor only.

        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::notifyFinished):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadInSameDocument):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didFail):
        (WebCore::SubresourceLoader::willCancel):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::stopLoading):
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::wasCanceled):
        (WebCore::CachedResource::errorOccurred):
        (WebCore::CachedResource::loadFailedOrCanceled):

2012-10-31  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r133122.
        http://trac.webkit.org/changeset/133122
        https://bugs.webkit.org/show_bug.cgi?id=99083

        Broke Chromium Win, Android, ChromeOS builds

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsOpaque):
        (WebCore::GraphicsLayerChromium::paint):
        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
        (OpaqueRectTrackingContentLayerDelegate):

2012-10-31  Takashi Sakamoto  <tasak@google.com>

        [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
        https://bugs.webkit.org/show_bug.cgi?id=83664

        Reviewed by Hajime Morita.

        The original code updates inline style during attach(). However,
        the attach would be invoked from Element::recalcStyle()'s reattach().
        If updating inline styles during the reattach(), style related flags,
        i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
        reattach(). So the inline styles are not updated in next
        setNeedsStyleRecalc, because ProgressValueElement has already had
        InlineStyleChange (existingChanegType == InlineStyleChange) and
        markAncestorsWithChildNeedsStyleRecalc is not invoked.

        Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html

        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::attach):
        Copied updateFromElement from didElementStateChange. If removing the
        update, indeterminate-progress-001.html and progress-element.html
        under fast/dom/HTMLProgressElement will fail. We still need attach()
        and updateFromElement. To remove the attach(), need more refactoring,
        i.e. investigating where attach() is invoked from and modifying all
        related codes.
        (WebCore::HTMLProgressElement::createShadowSubtree):
        Initialize m_value by indeterminate-position. The value is default
        value of progress element.

2012-10-31  Hayato Ito  <hayato@chromium.org>

        Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
        https://bugs.webkit.org/show_bug.cgi?id=100832

        Reviewed by Dimitri Glazkov.

        InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.

        No new tests as no new functionality.

        * dom/ComposedShadowTreeWalker.cpp:
        * html/shadow/InsertionPoint.h:
        (WebCore::shadowOfParentForDistribution):
        (WebCore):
        (WebCore::resolveReprojection):

2012-10-31  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
        https://bugs.webkit.org/show_bug.cgi?id=99083

        Reviewed by James Robinson.

        Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.

        No new tests needed. This patch does not change anything functionally.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsOpaque):
        (WebCore::GraphicsLayerChromium::paint):
        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
        (OpaqueRectTrackingContentLayerDelegate):

2012-10-31  Chris Evans  <cevans@google.com>

        RenderArena has a memory leak and poor efficiency
        https://bugs.webkit.org/show_bug.cgi?id=100893

        Reviewed by Eric Seidel.

        1) Avoid memory leak that persists for the Document lifetime by
        increasing recycled size buckets up to 1024. It was previously 400,
        and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
        quota. An assert was added to prevent this happening again.

        2) Fix the size of the recyled size bucket array on 64-bit. We only
        need 8 byte granularity on 64-bit, but we had 4.

        3) Try and pass power-of-two sizes to the underlying malloc() call, so
        that we're space efficient. We now take Arena metadata into account.

        4) Double the default RenderArena size allocation to 8192 bytes. Even
        for a render of a trivial text file, 4096 bytes is not enough to prevent
        extra calls into the underlying malloc() for more arena pool.

        * rendering/RenderArena.cpp:
        (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
        (WebCore::RenderArena::allocate):
        (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
        * rendering/RenderArena.h:
        (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
        (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.

2012-10-31  Adam Barth  <abarth@webkit.org>

        [V8] Garbage collection should use opaque roots rather than implicit references
        https://bugs.webkit.org/show_bug.cgi?id=100707

        Reviewed by Kentaro Hara.

        This patch replaces visitDOMWrapper with opaqueRootForGC. The
        former used to inform V8 of implicit relationships between wrapper
        objects on a per-wrapper basis. That meant that we needed to know which
        DOMDataStore a given wrapper was in during garbage collection.

        After this patch, we now use object groups rather than implicit
        references to inform V8 of these relationships. That has two benefits:

        1) We no longer need to know which DOMDataStore a wrapper belongs
           because we don't need to find the exact source wrapper for the
           implicit connection.

        2) We can now handle more complicated implicit relationships, for
           example when some of the intervening objects haven't had their
           JavaScript wrappers created yet.

        This patch also unlocks to paths of future development:
        A) Fixing the remaining failures in fast/dom/gc-9.html
        B) Enumerating DOM wrappers entirely from V8 rather than from the
           DOMWrapperMaps (so that we can move more object towards using
           IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).

        * bindings/scripts/CodeGeneratorV8.pm:
        (NeedsCustomOpaqueRootForGC):
        (GenerateOpaqueRootForGC):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/v8/V8GCController.cpp:
        (ImplicitConnection):
        (WebCore::ImplicitConnection::ImplicitConnection):
        (WebCore::ImplicitConnection::root):
        (WebCore::ImplicitConnection::wrapper):
        (WebCore):
        (WebCore::operator<):
        (WrapperGrouper):
        (WebCore::WrapperGrouper::WrapperGrouper):
        (WebCore::WrapperGrouper::addToGroup):
        (WebCore::WrapperGrouper::keepAlive):
        (WebCore::WrapperGrouper::apply):
        (WebCore::ObjectVisitor::ObjectVisitor):
        (WebCore::ObjectVisitor::visitDOMWrapper):
        (ObjectVisitor):
        (WebCore::V8GCController::opaqueRootForGC):
        (WebCore::NodeVisitor::NodeVisitor):
        (WebCore::NodeVisitor::visitNodeWrapper):
        (NodeVisitor):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (WebCore):
        (V8GCController):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::opaqueRootForGC):
        (WrapperTypeInfo):
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::opaqueRootForGC):
        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
        (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):

2012-10-31  Stephen White  <senorblanco@chromium.org>

        Unreviewed, rolling out r133107.
        http://trac.webkit.org/changeset/133107
        https://bugs.webkit.org/show_bug.cgi?id=100425

        Broke compile on Chromium Win.

        * Modules/indexeddb/IDBCallbacks.h:
        (IDBCallbacks):
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::objectStoreNames):
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::metadata):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::objectStore):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
        (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
        (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBFactory.cpp:
        * Modules/indexeddb/IDBFactory.h:
        * Modules/indexeddb/IDBIndex.h:
        (WebCore::IDBIndex::openKeyCursor):
        * Modules/indexeddb/IDBIndexBackendInterface.h:
        * Modules/indexeddb/IDBKeyPath.cpp:
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore):
        (IDBDatabaseMetadata):
        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
        (IDBObjectStoreMetadata):
        (WebCore::IDBIndexMetadata::IDBIndexMetadata):
        (IDBIndexMetadata):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::indexNames):
        (WebCore::IDBObjectStore::put):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
        (WebCore):
        (WebCore::makeIndexWriters):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::index):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
        (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
        (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        (WebCore::IDBTransaction::IDBTransaction):
        (WebCore::IDBTransaction::objectStore):
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::create):
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::objectStore):
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:
        * Modules/indexeddb/IDBTransactionCoordinator.h:

2012-10-31  Alec Flett  <alecflett@chromium.org>

        IndexedDB: add methods to support id-based backend APIs
        https://bugs.webkit.org/show_bug.cgi?id=100425

        Reviewed by Tony Chang.

        First half of refactor involves adding a number of methods that
        are int64_t-based rather than String-based. As a part of this, the
        IDB*Metadata structs and the backend objectStore/index maps all
        use int64_t as keys, rather than String.

        In addition, there were a number of cleanups that came out of the
        refactor:

        - The list of object stores active in a transaction is now
          maintained by the frontend IDBTransaction rather than the backend
          IDBTransactionBackendImpl. This also had a simplifying rippling
          effect through other call signatures.

        - I was able to remove an apparently old FIXME from
          IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.

        - IDBObjectStoreBackendImpl's IndexWriter class got a little
          simpler since the id is now easily available in the
          IDBIndexMetadata.

        - A number of methods got simpler in their int64_t versions,
          specifically dropping a number of ExceptionCodes.

        There is also some glue code
        (getIndexId/getIndexIds/getObjectStoreId) that will go away with
        the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425

        No new tests, no new functionality as this is just a refactor.

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::objectStoreNames):
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::metadata):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::objectStore):
        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
        (WebCore):
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (WebCore::IDBDatabaseBackendImpl::transaction):
        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
        (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
        (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
        (IDBDatabaseBackendInterface):
        * Modules/indexeddb/IDBIndex.h:
        (WebCore::IDBIndex::id):
        (WebCore::IDBIndex::openKeyCursor):
        * Modules/indexeddb/IDBIndexBackendInterface.h:
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBIndexMetadata::IDBIndexMetadata):
        (IDBIndexMetadata):
        (IDBObjectStoreMetadata):
        (WebCore::IDBObjectStoreMetadata::containsIndex):
        (IDBDatabaseMetadata):
        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
        (WebCore::IDBDatabaseMetadata::containsObjectStore):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::indexNames):
        (WebCore::IDBObjectStore::put):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
        (WebCore):
        (WebCore::makeIndexWriters):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::index):
        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
        (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
        (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        (WebCore::IDBTransaction::IDBTransaction):
        (WebCore::IDBTransaction::objectStore):
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::create):
        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
        (WebCore::IDBTransactionBackendImpl::objectStore):
        (WebCore):
        (WebCore::IDBTransactionBackendImpl::scheduleTask):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionBackendInterface.h:

2012-10-30  Mark Lam  <mark.lam@apple.com>

        A JSC printf (support for %J+s and %b).
        https://bugs.webkit.org/show_bug.cgi?id=100566.

        Reviewed by Michael Saboff.

        Added forwarding header for VMInspector.h.

        No new tests needed for this.

        * ForwardingHeaders/interpreter/VMInspector.h: Added.

2012-10-31  Chris Rogers  <crogers@google.com>

        Implement optional arguments in AudioBufferSourceNode start() method
        https://bugs.webkit.org/show_bug.cgi?id=100894

        Reviewed by Kenneth Russell.

        The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
        offset and duration.  Currently, only 1 and 3 arguments are supported.

        Test: webaudio/audiobuffersource-start.html

        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::renderFromBuffer):
        (WebCore::AudioBufferSourceNode::startGrain):
        (WebCore):
        * Modules/webaudio/AudioBufferSourceNode.h:
        (AudioBufferSourceNode):
        * Modules/webaudio/AudioBufferSourceNode.idl:

2012-10-31  Mike West  <mkwst@chromium.org>

        Implement the canonical "Content-Security-Policy" header.
        https://bugs.webkit.org/show_bug.cgi?id=96765

        Reviewed by Adam Barth.

        The CSP 1.0 specification defines the "Content-Security-Policy" header
        as the canonical mechanism of defining a resource's security policy. Up
        through this patch, we've implemented the functionality behind a prefix
        in order to ensure compatibility with the standard once it's released as
        a recommendation. Both the specification and WebKit's implementation are
        far enough along in that process that it makes sense to support the
        unprefixed header for sites that wish to opt-in to CSP 1.0.

        As discussed on public-webappsec[1], we'll keep the experimental 1.1
        features behind the prefixed header ('X-WebKit-CSP') until that standard
        is far enough along to justify moving them out to the canonical header.

        This patch defines the 'Content-Security-Policy' header for all ports,
        just as the 'X-WebKit-CSP' header is currently supported on all ports.
        Ports that have not opted-in to the CSP_NEXT flag will see exactly the
        same behavior with both headers. Ports that have opted-in will see much
        of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
        the canonical header.

        The functionality in this change is covered by the changes made to
        existing tests. No expectations changed, only the headers that are sent.

        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
            Add canonical header support to 'meta' element definitions.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didBeginDocument):
            Add canonical header support to FrameLoader.
        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPDirectiveList::headerType):
            The ContentSecurityPolicy::HeaderType enum now has four values:
            prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
            unprefixed/enforce. Instead of creating logic to output the proper
            type based on internal flags, CSPDirectiveList now saves the value
            provided at creation time, and returns it via this method.
        (CSPDirectiveList):
        (WebCore::CSPDirectiveList::CSPDirectiveList):
            The constructor now accepts a type, which is stored on the object.
            It also stores a new internal variable, 'm_experimental', which
            defines whether or not experimental features ought to be available.
            These features are still locked behind the CSP_NEXT flag, but that
            might not be the case forever.
        (WebCore::CSPDirectiveList::create):
            The static constructor wrapper now passes the type into the real
            constructor, which also now handles setting its internal variables.
        (WebCore::CSPDirectiveList::parse):
            'parse()' is given the header, so it makes sense to store it here as
            well, rather than in the create wrapper.
        (WebCore::CSPDirectiveList::addDirective):
            1.1 directives remain locked behind CSP_NEXT, but now also require
            that 'm_experimental' is set, signaling usage of the prefixed header
            and an implicit opt-in to 1.1.
        * page/ContentSecurityPolicy.h:
            Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
            PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
            'X-WebKit-CSP', respectively.

2012-10-31  Roger Fong  <roger_fong@apple.com>

        Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
        https://bugs.webkit.org/show_bug.cgi?id=100317

        Reviewed by Sam Weinig.

        The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
        where ownership is determined by how much of the hwnd is on which screen.
        To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
        To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
        However, since the drop down button is something that WebKit renders there is no hwnd.

        To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
        determine the correct screen, and then eventually move it back to the correct final position after the rest of 
        the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
        between the temporary and final positionings.

        There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::monitorFromHwnd):
        (WebCore):
        (WebCore::PopupMenuWin::show):
        (WebCore::PopupMenuWin::calculatePositionAndSize):

2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        Added viewport at-rule to the CSS parser and tokenizer
        https://bugs.webkit.org/show_bug.cgi?id=95961

        Reviewed by Kenneth Rohde Christiansen.

        Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
        the newly parsed rule to the rule list.

        This parser now implements the following part of the CSS Device Adaptation
        specification: http://www.w3.org/TR/css-device-adapt/#syntax

        Test: css3/device-adapt/viewport-at-rule-parsing.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::CSSParser):
        (WebCore::CSSParser::detectAtToken):
        (WebCore):
        (WebCore::CSSParser::createViewportRule):
        * css/CSSParser.h:
        (CSSParser):
        (WebCore::CSSParser::markViewportRuleBodyStart):
        (WebCore::CSSParser::markViewportRuleBodyEnd):
        (WebCore::CSSParser::inViewport):

            These methods are needed by the next patch validating the properties.
            Some viewport properties are common to other rules but have different
            semantics, and accepts different keywords. The validation needs to be
            done in a different code path.

        * css/CSSPropertySourceData.h:
        * css/CSSRule.cpp:
        (WebCore):
        (WebCore::CSSRule::cssText):
        (WebCore::CSSRule::destroy):
        (WebCore::CSSRule::reattach):
        (WebCore::CSSRule::reportMemoryUsage):
        * css/CSSRule.h:
        (CSSRule):
        (WebCore::CSSRule::isViewportRule):
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        (WebCore):
        (WebCore::StyleRuleViewport::StyleRuleViewport):
        (WebCore::StyleRuleViewport::~StyleRuleViewport):
        (WebCore::StyleRuleViewport::mutableProperties):
        (WebCore::StyleRuleViewport::setProperties):
        (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
        * css/StyleRule.h:
        (StyleRuleBase):
        (WebCore::StyleRuleBase::isViewportRule):
        (WebCore):
        (StyleRuleViewport):
        (WebCore::StyleRuleViewport::create):
        (WebCore::StyleRuleViewport::properties):
        (WebCore::StyleRuleViewport::copy):
        * css/WebKitCSSViewportRule.cpp: Added.
        (WebCore):
        (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
        (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
        (WebCore::WebKitCSSViewportRule::style):
        (WebCore::WebKitCSSViewportRule::cssText):
        (WebCore::WebKitCSSViewportRule::reattach):
        (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
        * css/WebKitCSSViewportRule.h: Added.
        (WebCore):

2012-10-31  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Validate types of built-in uniforms
        https://bugs.webkit.org/show_bug.cgi?id=98974

        Reviewed by Dean Jackson.

        Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
        shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
        vec2, not a float.

        Relevant Spec Section:
        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables

        Test: css3/filters/custom/invalid-custom-filter-uniform-types.html

        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore):
        (WebCore::builtInUniformNameToTypeMap):
        (WebCore::validateSymbols):

2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133044.
        http://trac.webkit.org/changeset/133044
        https://bugs.webkit.org/show_bug.cgi?id=100888

        Hits an ASSERT in the isolatedWorlds tests (Requested by
        abarth on #webkit).

        * bindings/scripts/CodeGeneratorV8.pm:
        (NeedsToVisitDOMWrapper):
        (GenerateVisitDOMWrapper):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/v8/V8GCController.cpp:
        (WebCore::ObjectVisitor::ObjectVisitor):
        (WebCore::ObjectVisitor::visitDOMWrapper):
        (ObjectVisitor):
        (WebCore::rootForGC):
        (ImplicitConnection):
        (WebCore::ImplicitConnection::ImplicitConnection):
        (WebCore::ImplicitConnection::root):
        (WebCore::ImplicitConnection::wrapper):
        (WebCore):
        (WebCore::operator<):
        (WebCore::NodeVisitor::NodeVisitor):
        (WebCore::NodeVisitor::visitNodeWrapper):
        (NodeVisitor):
        (WebCore::NodeVisitor::applyGrouping):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (V8GCController):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::visitDOMWrapper):
        (WrapperTypeInfo):
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::visitDOMWrapper):
        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
        (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):

2012-10-31  Philip Rogers  <pdr@google.com>

        Cache animationMode() in SVG animations.
        https://bugs.webkit.org/show_bug.cgi?id=99694

        Reviewed by Eric Seidel.

        This patch caches animationMode() which accounted for 25% of the CPU time of a simple
        animation benchmark! This is the 3rd patch for WK99694.

        Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
        <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
        animation element that can depend on other elements in the page. For example:
        <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
        <rect x="0" y="0" width="100" height="100" fill="green">
            <animateMotion dur="6s" repeatCount="indefinite">
                <mpath xlink:href="#mypath"/>
            </animateMotion>
        </rect>
        See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement

        animationMode depends on several properties of an animation element: the set tag, whether
        the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
        a hot function for two reasons:
        1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
           fastHasAttribute. This is cacheable by simply calculating the animationMode when the
           "values" attribute changes.
        2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
           AnimateMotion can have a path attribute, or it can have <mpath> children that reference
           a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
           this path lookup on every animation loop in case something changed. After this patch we
           only update AnimateMotion's path when it changes.

        A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
        <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
        to track when target <path>s change, instead of looking this up every time.

        This refactoring is covered by existing tests.
        svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
        because our element dependency tracking has a bug with duplicate ids; see WK99893.

        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::SVGAnimateMotionElement::parseAttribute):
        (WebCore::SVGAnimateMotionElement::updateAnimationPath):

            animationPath() has been changed to updateAnimationPath() and should only be called
            when the animation path (path attribute, or mpath's referenced path) has changed.

        (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
        (WebCore::SVGAnimateMotionElement::updateAnimationMode):

            If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
            updateAnimationMode() codepath.

        (WebCore):
        * svg/SVGAnimateMotionElement.h:
        (SVGAnimateMotionElement):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::SVGAnimationElement):
        (WebCore::SVGAnimationElement::isSupportedAttribute):
        (WebCore::SVGAnimationElement::parseAttribute):

            The from, by, and to attributes have been added so that we can track when they change
            and update the animation mode. Similarly for when the values attribute changes.

        (WebCore::SVGAnimationElement::updateAnimationMode):
        * svg/SVGAnimationElement.h:
        (WebCore::SVGAnimationElement::animationMode):
        (SVGAnimationElement):
        (WebCore::SVGAnimationElement::setAnimationMode):
        (WebCore::SVGAnimationElement::calculateDistance):
        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::buildPendingResource):

            It would be nice to move all the duplicated buildPendingResource() logic into a central
            place (SVGURIReference?) but for now it is copied. This function is nearly identical to
            SVGFEImageElement::buildPendingResource.

        (WebCore):
        (WebCore::SVGMPathElement::clearResourceReferences):
        (WebCore::SVGMPathElement::insertedInto):
        (WebCore::SVGMPathElement::removedFrom):
        (WebCore::SVGMPathElement::svgAttributeChanged):
        (WebCore::SVGMPathElement::targetPathChanged):
        (WebCore::SVGMPathElement::notifyParentOfPathChange):
        * svg/SVGMPathElement.h:
        (SVGMPathElement):
        * svg/SVGPathElement.cpp:

            When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
            typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
            but for the special-case of <mpath> we only need to track when the path's "d" attribute
            changes so invalidateMPathDependencies() has been added.

        (WebCore::SVGPathElement::svgAttributeChanged):
        (WebCore::SVGPathElement::invalidateMPathDependencies):
        (WebCore):
        (WebCore::SVGPathElement::insertedInto):
        (WebCore::SVGPathElement::removedFrom):
        * svg/SVGPathElement.h:
        (SVGPathElement):
        * svg/SVGSetElement.cpp:
        (WebCore::SVGSetElement::SVGSetElement):
        (WebCore::SVGSetElement::updateAnimationMode):
        (WebCore):
        * svg/SVGSetElement.h:
        (SVGSetElement):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::isSupportedAttribute):

2012-10-31  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=100879
        ScrollingStateNode::cloneAndResetNode() should not be virtual

        Reviewed by Simon Fraser.

        cloneAndResetNode() is currently pure virtual and implemented only 
        in ScrollingStateScrollingNode. However, all of the work that it 
        does at this time is stuff that a generic ScrollingStateNode could 
        do. We should move this implementation to the base class so that it 
        does not need to be duplicated for future node types.

        This patch also re-names cloneAndResetNode() to cloneAndReset()
        and correspondingly re-names cloneAndResetChildNodes() to 
        cloneAndResetChildren(). 

        Finally the patch also changes the copy constructors of both of these 
        classes to take a const reference instead of a pointer.

        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::ScrollingStateNode):
        (WebCore::ScrollingStateNode::cloneAndReset):
        (WebCore):
        (WebCore::ScrollingStateNode::cloneAndResetChildren):
        * page/scrolling/ScrollingStateNode.h:
        (ScrollingStateNode):
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (ScrollingStateScrollingNode):
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::commit):

2012-10-31  Tom Sepez  <tsepez@chromium.org>
        
        Malformed X-XSS-Protection headers not reported.
        https://bugs.webkit.org/show_bug.cgi?id=100538

        Reviewed by Adam Barth.

        Re-writes X-XSS-Protection header parser to be more particular, and to
        return better information on error.

        Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
               http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
               http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
               http/tests/security/xssAuditor/xss-protection-parsing-02.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::init):
        Detect error return code and log console message with details
        * platform/network/HTTPParsers.cpp:
        (WebCore):
        (WebCore::skipWhiteSpace):
        Use safe less-than comparsion in case called with pos already out of range.
        (WebCore::skipToken):
        Fix comparison to properly reject substrings at end of input.  Prevent advancing
        returned position when match fails, so that this may someday be used to match
        optional tokens.
        (WebCore::parseXSSProtectionHeader):
        Return detailled error status. Avoid needless string copy.
        * platform/network/HTTPParsers.h:
        Add new error returns for x-xss-protection header parser.
        
2012-10-31  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
        https://bugs.webkit.org/show_bug.cgi?id=100808
        <rdar://problem/12562541>

        Reviewed by Dean Jackson.

        When projecting rects down into transformed layers, the projection can fail with severe
        3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
        In this case we already clamp, but the fact that we clamped doesn't make it out to
        GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
        computed.
        
        Fix by propagating the fact that clamping occurred out of the TransformState functions
        which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
        to be visible if clamping occurred.

        Tests: compositing/tiling/rotated-tiled-clamped.html
               compositing/tiling/rotated-tiled-preserve3d-clamped.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
        or the state.mappedQuad() clamped, use our bounds as the visible rect.
        * platform/graphics/transforms/TransformState.cpp:
        (WebCore::TransformState::applyTransform): Pass out clamping state.
        (WebCore::TransformState::flatten): Ditto.
        (WebCore::TransformState::mappedPoint): Ditto.
        (WebCore::TransformState::mappedQuad): Ditto.
        (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
        wasClamped, since this function is internal.
        * platform/graphics/transforms/TransformState.h:
        (TransformState):
        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
        set the flag to say we clamped.
        * platform/graphics/transforms/TransformationMatrix.h:
        (TransformationMatrix):

2012-10-31  Tiancheng Jiang  <tijiang@rim.com>

        Change bubble message style to BB10 UX spec.
        https://bugs.webkit.org/show_bug.cgi?id=100862

        Reviewed by Rob Buis.

        RIM PR 198108
        Internal Reviewed by Otto Cheung.
        No new tests.

        * css/themeBlackBerry.css:
        (::-webkit-validation-bubble-message): Added.
        (::-webkit-validation-bubble-arrow): Added.
        (::-webkit-validation-bubble-heading): Added.

2012-10-31  Mike West  <mkwst@chromium.org>

        Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
        https://bugs.webkit.org/show_bug.cgi?id=100850

        Reviewed by Adam Barth.

        For historical reasons, a few places in WebCore talk to Console directly
        via 'document()->domWindow()->console()->addMessage(...)'. This is more
        safely wrapped by calling 'addConsoleMessage' on the Document itself.

        No visible functionality should change; we'll simply avoid potential
        null dereferences in the future.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::validateInteractively):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::printWarningToConsole):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::reportLocalLoadFailed):
        * loader/MixedContentChecker.cpp:
        (WebCore::MixedContentChecker::logWarning):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::abort):
        (WebCore::ApplicationCacheGroup::didReceiveResponse):
        (WebCore::ApplicationCacheGroup::didFinishLoading):
        (WebCore::ApplicationCacheGroup::didFail):
        (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::printAccessDeniedMessage):

2012-10-31  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: frame chooser does not work on subsequent inspector open.
        https://bugs.webkit.org/show_bug.cgi?id=100771

        Reviewed by Yury Semikhatsky.

        - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
        - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
        - Remove remains of the front-end reused signal from InspectorAgent
        - Send execution contexts post clear window object instead of post commit load.

        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        (WebCore::InspectorAgent::clearFrontend):
        (WebCore::InspectorAgent::didCommitLoad):
        * inspector/InspectorAgent.h:
        (InspectorAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
        (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::restore):
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
        (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
        (WebCore::InspectorRuntimeAgent::run):
        (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
        * inspector/InspectorRuntimeAgent.h:
        (InspectorRuntimeAgent):
        * inspector/InstrumentingAgents.h:
        (WebCore):
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::workerRuntimeAgent):
        (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
        (InstrumentingAgents):
        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::PageRuntimeAgent):
        (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
        (WebCore::PageRuntimeAgent::setFrontend):
        (WebCore::PageRuntimeAgent::clearFrontend):
        (WebCore::PageRuntimeAgent::enable):
        (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
        * inspector/PageRuntimeAgent.h:
        (PageRuntimeAgent):
        * inspector/WorkerRuntimeAgent.cpp:
        (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
        (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
        (WebCore::WorkerRuntimeAgent::run):
        (WebCore):
        (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
        * inspector/WorkerRuntimeAgent.h:
        (WorkerRuntimeAgent):

2012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
        https://bugs.webkit.org/show_bug.cgi?id=100845.

        Reviewed by Noam Rosenthal.

        WebGL displays the Canvas with (0,0) being the bottom left corner.
        In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
        flag before painting to TextureMapper.
        It results in backing store contents being drawn upside down on screen.
        This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
        it's backing store contents into a TextureMapper.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):

2012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Enable filter animations in GraphicsLayerAnimation
        https://bugs.webkit.org/show_bug.cgi?id=100318

        Reviewed by Kenneth Rohde Christiansen.

        Use the same method of animating filters in WebCore to animate filters for TextureMapper.
        Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.

        Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore):
        (WebCore::blendFunc):
        (WebCore::applyFilterAnimation):
        (WebCore::GraphicsLayerAnimation::applyInternal):
        * platform/graphics/GraphicsLayerAnimation.h:
        (Client):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
        (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
        (WebCore::TextureMapperLayer::paintRecursive):
        (WebCore::TextureMapperLayer::syncAnimations):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (TextureMapperLayer):
        (WebCore::TextureMapperLayer::setFilters):
        (WebCore::TextureMapperLayer::setAnimatedFilters):

2012-10-31  Adam Barth  <abarth@webkit.org>

        [V8] Garbage collection should use opaque roots rather than implicit references
        https://bugs.webkit.org/show_bug.cgi?id=100707

        Reviewed by Kentaro Hara.

        This patch replaces visitDOMWrapper with opaqueRootForGC. The
        former used to inform V8 of implicit relationships between wrapper
        objects on a per-wrapper basis. That meant that we needed to know which
        DOMDataStore a given wrapper was in during garbage collection.

        After this patch, we now use object groups rather than implicit
        references to inform V8 of these relationships. That has two benefits:

        1) We no longer need to know which DOMDataStore a wrapper belongs
           because we don't need to find the exact source wrapper for the
           implicit connection.

        2) We can now handle more complicated implicit relationships, for
           example when some of the intervening objects haven't had their
           JavaScript wrappers created yet.

        This patch also unlocks to paths of future development:
        A) Fixing the remaining failures in fast/dom/gc-9.html
        B) Enumerating DOM wrappers entirely from V8 rather than from the
           DOMWrapperMaps (so that we can move more object towards using
           IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).

        * bindings/scripts/CodeGeneratorV8.pm:
        (NeedsCustomOpaqueRootForGC):
        (GenerateOpaqueRootForGC):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/v8/V8GCController.cpp:
        (ImplicitConnection):
        (WebCore::ImplicitConnection::ImplicitConnection):
        (WebCore::ImplicitConnection::root):
        (WebCore::ImplicitConnection::wrapper):
        (WebCore):
        (WebCore::operator<):
        (WrapperGrouper):
        (WebCore::WrapperGrouper::WrapperGrouper):
        (WebCore::WrapperGrouper::addToGroup):
        (WebCore::WrapperGrouper::keepAlive):
        (WebCore::WrapperGrouper::apply):
        (WebCore::ObjectVisitor::ObjectVisitor):
        (WebCore::ObjectVisitor::visitDOMWrapper):
        (ObjectVisitor):
        (WebCore::V8GCController::opaqueRootForGC):
        (WebCore::NodeVisitor::NodeVisitor):
        (WebCore::NodeVisitor::visitNodeWrapper):
        (NodeVisitor):
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/V8GCController.h:
        (WebCore):
        (V8GCController):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::opaqueRootForGC):
        (WrapperTypeInfo):
        * bindings/v8/custom/V8NodeListCustom.cpp:
        (WebCore::V8NodeList::opaqueRootForGC):
        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
        (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):

2012-10-31  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Add total node to native memory snapshot tree
        https://bugs.webkit.org/show_bug.cgi?id=100843

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeSnapshotDataGrid):
        (WebInspector.NativeSnapshotNode):
        (WebInspector.MemoryBlockViewProperties._initialize):

2012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Table with percentage column widths doesn't scale to fill the entire width of a table containing it
        https://bugs.webkit.org/show_bug.cgi?id=11645

        Reviewed by Julien Chaffraix.

        When the inner (or nested) table has auto width and column(s) with
        percent width, we should scale our column(s) to the width of the
        containing table (unless it has auto width).

        Test: fast/table/scale-nested-percent-width-cols.html

        * rendering/AutoTableLayout.cpp:
        (WebCore::shouldScaleColumns):
        If the containing table width was of percent type, we were disallowing
        our inner or nested table's column from scaling to the size of the parent
        table. We should prohibit the scaling of the nested table columns only
        if the parent table has auto width.

2012-10-31  Ian Vollick  <vollick@chromium.org>

        Add support for text-based repaint testing
        https://bugs.webkit.org/show_bug.cgi?id=100584

        Reviewed by Simon Fraser.

        Allows tracked repaint rects to be dumped as text.

        The following layout tests have been converted:
          fast/repaint/layer-full-repaint.html
          fast/repaint/overflow-flipped-writing-mode-table.html

        * WebCore.exp.in:
          Exports for:
            FrameView::setTracksRepaints(bool)
            Frame::trackedRepaintRectsAsText() const
        * page/Frame.cpp:
        (WebCore::Frame::trackedRepaintRectsAsText):
          Returns a string containing information on all tracked repaint rects.
        * page/FrameView.cpp:
        (WebCore::FrameView::setTracksRepaints):
          Rather than calling m_trackedRepaintRects.clear() directly, I've
          called resetTrackedRepaints(). This will allow us to do more
          sophisticated resetting when we start tracking repaint rects for
          composited layers.
        (WebCore::FrameView::trackedRepaintRectsAsText):
          Provides the string returned by Frame::trackedRepaintRectsAsText.
        * testing/Internals.cpp:
        (WebCore::Internals::repaintRectsAsText):
          Returns Frame::trackedRepaintRectsAsText.
        (WebCore):
        (WebCore::Internals::startTrackingRepaints):
          Calls FrameView::setTracksRepaints(true)
        (WebCore::Internals::stopTrackingRepaints):
          Calls FrameView::setTracksRepaints(false)
        * testing/Internals.h:
        * testing/Internals.idl:
          Declarations for:
            repaintRectsAsText
            startTrackingRepaints
            stopTrackingRepaints

2012-10-31  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: page crash when pausing in dedicated worker
        https://bugs.webkit.org/show_bug.cgi?id=100837

        Reviewed by Pavel Feldman.

        Pass debugger agent to InjectedScriptHost::init in case of workers.

        Test: inspector-protocol/debugger-pause-dedicated-worker.html

        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):

2012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>

        perspective-origin should ignore values with more then two lengths and use the default values
        https://bugs.webkit.org/show_bug.cgi?id=100835

        Reviewed by Kenneth Rohde Christiansen.

        Perspective-origin should ignore values with more then two lengths
        (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
        the default values instead of parsing it as an unlimited-length list,
        of which all but the first two values are ignored. This makes perspective-origin 
        behave similar to transform-origin which uses default value in this case,
        as well as firefox does the same.

        Test: transforms/2d/computed-style-origin.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parsePerspectiveOrigin):

2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133016.
        http://trac.webkit.org/changeset/133016
        https://bugs.webkit.org/show_bug.cgi?id=100856

        broke compile-webkit on several bots (Requested by podivilov
        on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DeviceOrientationClient.h:
        (DeviceOrientationClient):
        * dom/DeviceOrientationController.cpp:
        (WebCore::DeviceOrientationController::DeviceOrientationController):
        (WebCore):
        (WebCore::DeviceOrientationController::~DeviceOrientationController):
        (WebCore::DeviceOrientationController::timerFired):
        (WebCore::DeviceOrientationController::addListener):
        (WebCore::DeviceOrientationController::removeListener):
        (WebCore::DeviceOrientationController::removeAllListeners):
        (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
        (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
        (WebCore::DeviceOrientationController::supplementName):
        * dom/DeviceOrientationController.h:
        (WebCore):
        (DeviceOrientationController):
        (WebCore::DeviceOrientationController::isActive):
        (WebCore::DeviceOrientationController::client):
        (WebCore::DeviceOrientationController::from):
        * dom/Document.cpp:
        (WebCore::Document::suspendActiveDOMObjects):
        (WebCore::Document::resumeActiveDOMObjects):
        * loader/EmptyClients.h:
        (WebCore::EmptyDeviceOrientationClient::startUpdating):
        (WebCore::EmptyDeviceOrientationClient::stopUpdating):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        * page/DeviceClient.h: Removed.
        * page/DeviceController.cpp: Removed.
        * page/DeviceController.h: Removed.

2012-10-31  Antti Koivisto  <antti@apple.com>

        Remove stray calls to mutableAttributeData()
        https://bugs.webkit.org/show_bug.cgi?id=100849

        Reviewed by Andreas Kling.

        Changing the cached class attribute value does not require mutable attribute data.

        * dom/Element.cpp:
        (WebCore::Element::classAttributeChanged):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::clearClass):
        
            Make const like setClass().

2012-10-31  Mike West  <mkwst@chromium.org>

        X-Frame-Options console message should be associated with a request.
        https://bugs.webkit.org/show_bug.cgi?id=100735

        Reviewed by Pavel Feldman.

        In 99941, we added the possibility to tie console messages to requests,
        which enables automatic generation of stack traces, line numbers, etc.
        making the error simpler to diagnose for web developers. This patch
        uses the piping laid in that patch to improve the console message
        generated when a document is blocked by X-Frame-Options.

        No new tests; the functionality is covered by changes to existing tests.

        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
            Grab the request identifier from the currently active DocumentLoader
            and pass it into the console message.
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
            Grab the request identifier from the MainResourceLoader, and pass it
            into the console message.

2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r133015.
        http://trac.webkit.org/changeset/133015
        https://bugs.webkit.org/show_bug.cgi?id=100847

        broke Apple Win Debug compilation (Requested by podivilov on
        #webkit).

        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        (WebCore::InspectorAgent::clearFrontend):
        (WebCore::InspectorAgent::didCommitLoad):
        * inspector/InspectorAgent.h:
        (WebCore::InspectorAgent::didCommitLoadFired):
        (InspectorAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
        (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
        (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::restore):
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
        (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
        (WebCore::InspectorRuntimeAgent::run):
        (WebCore):
        (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
        * inspector/InspectorRuntimeAgent.h:
        (InspectorRuntimeAgent):
        * inspector/InstrumentingAgents.h:
        (WebCore):
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
        (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
        (InstrumentingAgents):
        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::PageRuntimeAgent):
        (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
        (WebCore::PageRuntimeAgent::setFrontend):
        (WebCore::PageRuntimeAgent::clearFrontend):
        (WebCore::PageRuntimeAgent::enable):
        (WebCore::PageRuntimeAgent::didClearWindowObject):
        * inspector/PageRuntimeAgent.h:
        (PageRuntimeAgent):
        * inspector/WorkerRuntimeAgent.cpp:
        (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
        (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
        * inspector/WorkerRuntimeAgent.h:
        (WorkerRuntimeAgent):

2012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>

        Add DeviceController base-class to remove duplication of DeviceXXXControler
        https://bugs.webkit.org/show_bug.cgi?id=96894

        Reviewed by Hajime Morita.

        Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
        And soon-to-be-added DeviceMotionController and ProximityController.

        Covered by existing tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DeviceOrientationClient.h:
        * dom/DeviceOrientationController.cpp:
        Remove member functions to move to DeviceController.
        - addListener(), removeListener(), removeAllListeners(), isActive()
        (WebCore::DeviceOrientationController::DeviceOrientationController):
        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
        (WebCore::DeviceOrientationController::client):
        (WebCore::DeviceOrientationController::hasLastData):
        (WebCore::DeviceOrientationController::getLastEvent):
        (WebCore::DeviceOrientationController::from):
        (WebCore):
        * dom/DeviceOrientationController.h:
        (WebCore):
        (WebCore::DeviceOrientationController::~DeviceOrientationController):
        (DeviceOrientationController):
        * dom/Document.cpp:
        Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
        These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
        (WebCore::Document::suspendActiveDOMObjects):
        (WebCore::Document::resumeActiveDOMObjects):
        * loader/EmptyClients.h:
        (EmptyDeviceClient):
        (WebCore::EmptyDeviceClient::startUpdating):
        (WebCore::EmptyDeviceClient::stopUpdating):
        (WebCore):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        * page/DeviceClient.h: Added.
        (WebCore):
        (DeviceClient):
        (WebCore::DeviceClient::~DeviceClient):
        * page/DeviceController.cpp: Added.
        DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
        - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
        All kind of device event controller which has DeviceClient can be inherited from DeviceController.
        (WebCore):
        (WebCore::DeviceController::DeviceController):
        (WebCore::DeviceController::addDeviceEventListener):
        (WebCore::DeviceController::removeDeviceEventListener):
        (WebCore::DeviceController::removeAllDeviceEventListeners):
        (WebCore::DeviceController::dispatchDeviceEvent):
        (WebCore::DeviceController::fireDeviceEvent):
        * page/DeviceController.h: Added.
        (WebCore):
        (DeviceController):
        (WebCore::DeviceController::~DeviceController):
        (WebCore::DeviceController::isActive):
        (WebCore::DeviceController::client):
        (WebCore::DeviceController::hasLastData):
        (WebCore::DeviceController::getLastEvent):

2012-10-31  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: frame chooser does not work on subsequent inspector open.
        https://bugs.webkit.org/show_bug.cgi?id=100771

        Reviewed by Yury Semikhatsky.

        - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
        - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
        - Remove remains of the front-end reused signal from InspectorAgent
        - Send execution contexts post clear window object instead of post commit load.

        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        (WebCore::InspectorAgent::clearFrontend):
        (WebCore::InspectorAgent::didCommitLoad):
        * inspector/InspectorAgent.h:
        (InspectorAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
        (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::restore):
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
        (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
        (WebCore::InspectorRuntimeAgent::run):
        (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
        * inspector/InspectorRuntimeAgent.h:
        (InspectorRuntimeAgent):
        * inspector/InstrumentingAgents.h:
        (WebCore):
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::workerRuntimeAgent):
        (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
        (InstrumentingAgents):
        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::PageRuntimeAgent):
        (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
        (WebCore::PageRuntimeAgent::setFrontend):
        (WebCore::PageRuntimeAgent::clearFrontend):
        (WebCore::PageRuntimeAgent::enable):
        (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
        * inspector/PageRuntimeAgent.h:
        (PageRuntimeAgent):
        * inspector/WorkerRuntimeAgent.cpp:
        (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
        (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
        (WebCore::WorkerRuntimeAgent::run):
        (WebCore):
        (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
        * inspector/WorkerRuntimeAgent.h:
        (WorkerRuntimeAgent):

2012-10-31  Keishi Hattori  <keishi@webkit.org>

        Calendar picker can flicker when opened from the suggestion picker
        https://bugs.webkit.org/show_bug.cgi?id=100816

        Reviewed by Kent Tamura.

        Calendar picker was opening before the hiding completed.

        No new tests. Added test to date-suggestion-picker-key-operations.html.

        * Resources/pagepopups/pickerCommon.js: Added didHide event.
        * Resources/pagepopups/suggestionPicker.js:
        (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
        (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.

2012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Reset binding test result after r132973
        https://bugs.webkit.org/show_bug.cgi?id=99178

        Unreviewed gardening.

        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::getJSFloat64ArrayConstructorTable):
        (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
        (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):

2012-10-31  Mike West  <mkwst@chromium.org>

        Script run from an isolated world should bypass a page's CSP.
        https://bugs.webkit.org/show_bug.cgi?id=97398

        Reviewed by Adam Barth.

        A page's Content Security Policy currently applies to all resources
        loaded, regardless of their source. That generally makes sense, but
        proves problematic when considering script run from an isolated
        world (Chrome extensions, for instance). These scripts should be allowed
        to inject resources into a page's DOM without eiher being restricted by
        the page's active CSP, or generating violation reports that spam the
        page owner.

        Ideally, the isolated world could define its own Content Security Policy
        which should be applied to resources it loads. For the moment, this
        patch accepts a String that we can parse later on, but only uses it in
        a binary way. If a non-empty policy String is provided, we bypass the
        main world's CSP checks. If an empty String is provided, the main
        world's CSP checks remain active.

        Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html

        (WebCore::isolatedWorldContentSecurityPolicies):
        (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
        (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
        (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
            Mechanisms for setting and clearing Content Security Policies from
            isolated worlds; implemented in the same HashMappy way as
            SecurityOrigin.
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
        (WebCore):
        * bindings/v8/ScriptController.h:
        (ScriptController):
            Adding a method to ScriptController to query the state of the
            current world's Content Security Policy. We'll drop this once we can
            apply a policy more directly, but for the moment it's necessary for
            the next bit.
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::canRequest):
            Check the new ScriptController method, and only perform CSP checks
            when loading resources if we're executing code from the main world,
            or an isolated world with no Content Security Policy set.

2012-10-31  Tim Horton  <timothy_horton@apple.com>

        Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.

        * WebCore.exp.in:

2012-10-31  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
        https://bugs.webkit.org/show_bug.cgi?id=100824

        Reviewed by Alexander Pavlov.

        In many classes we have pointer to a client object. These references should be
        reported as weak pointers and the client's memory usage should be reported when
        the client is reached from its instrumented owner where we know exact type of
        the client. Otherwise we would need to add reportMemoryUsage to all client
        interfaces which places additional burden on the client implementers and blurs
        the instrumentation boundaries.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::reportMemoryUsage):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::reportMemoryUsage):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::reportMemoryUsage):
        * page/Page.cpp:
        (WebCore::Page::reportMemoryUsage):

2012-10-31  Tim Horton  <timothy_horton@apple.com>

        Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.

        * WebCore.exp.in:

2012-10-31  Eric Seidel  <eric@webkit.org>

        Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
        https://bugs.webkit.org/show_bug.cgi?id=100306

        Reviewed by Abhishek Arya.

        Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
        the rendering code w/o considering that it makes a virtual function call.
        Originally I just fixed the one callsite which was showing up on the sample to
        use children()->firstChild() directly.  However after further thought, this
        broader solution seemed the better way to go.  The first patch was a 15% win for
        this large table, this broader solution was a 30%!? win.

        The elephant in the room for this table is that we're walking the whole table
        for many nextColumn calls.  But that I will solve in a later bug.

        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::firstChild):
        (WebCore::RenderBlock::lastChild):
        (RenderBlock):
        * rendering/RenderObject.h:
        (RenderObject):
        * rendering/RenderTableCol.h:
        (WebCore::RenderTableCol::firstChild):
        (WebCore::RenderTableCol::lastChild):
        (RenderTableCol):

2012-10-31  Philippe Normand  <pnormand@igalia.com>

        Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
        https://bugs.webkit.org/show_bug.cgi?id=98294

        Reviewed by Chris Rogers.

        Regenerated the concatenated impulse responses file with
        elevations in increasing order per azimuth. In the previous
        version of this file the elevations for 315, 330 and 345 were
        concatenated at the wrong indexes.

        * platform/audio/resources/Composite.wav:

2012-10-31  Tim Horton  <timothy_horton@apple.com>

        Full-page PDFPlugin should support inline form editing
        https://bugs.webkit.org/show_bug.cgi?id=100155

        Reviewed by Dan Bernstein.

        Add form controls corresponding to Text and Choice PDF annotations,
        allowing for single- and multi-line text input, and <option>-like input.

        Currently, forms are only implemented for full-page PDF documents.

        * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
        * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.

2012-10-30  Eric Seidel  <eric@webkit.org>

        RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
        https://bugs.webkit.org/show_bug.cgi?id=98800

        Reviewed by Sam Weinig.

        This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!

        OverlapMap previously used Regions to track Layer bounds rects. 
        Unfortunately unioning a list of Regions is O(N^2)
        where N is the number of Shapes (in this case rects).
        This is because Shapes are immutable, so to union two shapes, we copy
        both Shapes' segment/span vectors into a single new Shape.
        Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
        the segments of the first Shape N times before we have the final Region/Shape
        and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
        Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.

        For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
        doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
        Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.

        Even better for us is that the OverlapMap is never even used in RoboHornetPro.
        We just collect these rects to end up doing nothing with them. :)

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::OverlapMap::add):
        (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
        (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
        (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
        (RenderLayerCompositor::OverlapMap):

2012-10-30  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=100813
        ScrollingCoordinatorMac::stateNodeForID() should return a 
        ScrollingStateNode* instead of a ScrollingStateScrollingNode*

        Reviewed by Sam Weinig.

        ScrollingCoordinatorMac::stateNodeForID() should return a 
        ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
        it can be used for other types of nodes once we add them.
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
        (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
        (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
        (WebCore::ScrollingCoordinatorMac::stateNodeForID):

2012-10-30  Keishi Hattori  <keishi@webkit.org>

        F4 inside <input type=time> should not open calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=100730

        Reviewed by Kent Tamura.

        We lacked the check to see if the picker indicator is visible.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.

2012-10-30  Kent Tamura  <tkent@chromium.org>

        Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
        https://bugs.webkit.org/show_bug.cgi?id=100772

        Reviewed by Abhishek Arya.

        'change' and 'input' events are asynchronous and not
        cancelable. We can use ScopedEvent.

        Test: fast/forms/range/range-type-change-onchange.html

        * dom/Node.cpp:
        (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
        (WebCore::Node::dispatchInputEvent): Ditto.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setValue):
        Make a scope to delay event dispatching.
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::handleKeydownEvent): Ditto.

2012-10-30  Simon Fraser  <simon.fraser@apple.com>

        Fix issues with filters and reflections
        https://bugs.webkit.org/show_bug.cgi?id=100308

        Reviewed by Dirk Schulze.

        Composited filters were being applied to the wrong CALayer. The code used
        primaryLayer(), which may be a CATransformLayer (which filters cannot apply
        to; doing so causes console spew), or a CALayer that is used for reflection
        flattening, which again is the wrong layer.

        Test: css3/filters/composited-reflected.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
        (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
        (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
        and use m_layerClones, not primaryLayerClones().
        (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
        from the source layer.
        * platform/graphics/ca/PlatformCALayer.h:
        (PlatformCALayer): Add a member function to copy filters from a supplied layer.
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::setFilters): Remove blank line.
        (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.

2012-10-30  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=100809
        ScrollingCoordinator::attachToStateTree() should take an enum 
        indicating what type of node to create

        Reviewed by Simon Fraser.

        New enum ScrollingNodeType will soon have other values, such as 
        FixedNode.
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::attachToStateTree):
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):

        This patch generalizes this function so that it can be used to create 
        different types of nodes and so that it is actually ready to create 
        child nodes. 
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::attachToStateTree):

        The rootStateNode is always a ScrollingNode.
        (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):

        For the time being, always create a ScrollingNode.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):

2012-10-30  Gregg Tavares  <gman@google.com>

        Set the initial scissor box for WebGL
        https://bugs.webkit.org/show_bug.cgi?id=100804

        Reviewed by Kenneth Russell.

        The initial scissor box needs to be set for WebGL

        No new tests as no new functionality.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::initializeNewContext):

2012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] PurgeCredential should also purge the persisted credential store
        https://bugs.webkit.org/show_bug.cgi?id=100744

        Reviewed by George Staikos.

        When challenged by the server, we will check the credential in-memory and from the persistent storage.
        So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
        it will be sent to the server next time been challenged, instead of prompting the user.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::purgeCredentials):

2012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        DOM URL is flaky when workers are used
        https://bugs.webkit.org/show_bug.cgi?id=99178

        Reviewed by Geoffrey Garen.

        Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.

        Test: fast/workers/worker-domurl.html

        * bindings/scripts/CodeGeneratorJS.pm:
        (constructorHashTableAccessor):
        (GenerateConstructorDefinition):

2012-10-30  Jae Hyun Park  <jae.park@company100.net>

        Coordinated Graphics: Remove unused methods
        https://bugs.webkit.org/show_bug.cgi?id=100799

        Reviewed by Noam Rosenthal.

        Currently, there are several unused methods regarding Coordinated
        Graphics. This patch removes those unused methods.

        No new tests (No change in behavior).

        * platform/graphics/texmap/TextureMapperGL.cpp:

2012-10-30  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Multiple segment polygon layout does not get all segments
        https://bugs.webkit.org/show_bug.cgi?id=100039

        Reviewed by Dirk Schulze.

        Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
        and polygons with horizontal edges in general.

        Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
               fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html

        * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
        (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
        (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
        (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
        (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
        * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
        (WebCore::ExclusionPolygon::edgeAt): New method.
        (WebCore::ExclusionPolygon::numberOfEdges): New method.
        (ExclusionPolygon): Added support for retrieving edges.
        (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
        (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
        (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
        (WebCore::ExclusionPolygonEdge::previousEdge): New method.
        (WebCore::ExclusionPolygonEdge::nextEdge): New method.

2012-10-30  Chris Evans  <cevans@google.com>

        Improve performance of MaskPtr.
        https://bugs.webkit.org/show_bug.cgi?id=100790

        Reviewed by Eric Seidel.

        Calculate the mask once, and store it as a fast-access member variable.
        Also avoid unneccessary integer width expansion in index calculation.
        Parser/tiny-innerHTML.html has a high stddev.
        Best result I've seen pre-patch is 5.70 runs/s.
        Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
        MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
        MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.

        * rendering/RenderArena.cpp:
        (MaskPtr): Use a passed-in mask for the mask operation.
        (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
        (WebCore::RenderArena::allocate):
        (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
        * rendering/RenderArena.h:
        (RenderArena): Store the freelist mask as a member variable.

2012-10-30  Kenichi Ishibashi  <bashi@chromium.org>

        local(Helvetica) in src descriptor prevent fallback
        https://bugs.webkit.org/show_bug.cgi?id=100446

        Reviewed by Dan Bernstein.

        FontCache::getCachedFontData() has a mechanism that aliases a few pairs
        of font family names, so that if the family name specified in the font-family
        property is not available on the system, but the its alias is available,
        it will be used instead. This is appropriate for the font-family property,
        but not for font family names specified in the local() function of the src
        descriptor in a @font-face rule.

        This patch disables the mechanism while checking src descriptor of @font-face.

        No new tests. It's difficult to test the change because 'Helvetica' can
        be mapped any other font. For example, chromium DRT uses FontConfig to
        map Helvetica to Times New Roman. Other ports may map Helvetica to other
        fonts. We can't define the expected result.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData):
        Call fontCache()->getCachedFontData() with checkingAlternateName = true.
        This disables aliasing font family names in FontCache.

2012-10-30  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=100796
        Should add FixedPositionViewportConstraints to ScrollingConstraints.h

        Reviewed by Simon Fraser.

        ScrollingConstraints.h currently contains an abstract class called 
        ViewportConstraints that is intended to encapsulate data and logic 
        required to reposition elements whose layout depends on the viewport 
        rect (positions fixed and sticky), when scrolling and zooming. 
        However, at this time there is only a subclass for sticky. We should 
        add a sub-class for fixed. This is required to get pages with fixed 
        position elements scrolling on the scrolling thread.

        * page/scrolling/ScrollingConstraints.cpp:
        (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
        (WebCore):
        * page/scrolling/ScrollingConstraints.h:
        (WebCore::ViewportConstraints::ViewportConstraints):
        (ViewportConstraints):
        (WebCore::ViewportConstraints::setAnchorEdges):
        (FixedPositionViewportConstraints):
        (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
        (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
        (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
        (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
        (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
        (WebCore):

2012-10-30  Tiancheng Jiang  <tijiang@rim.com>

        [BlackBerry] update form theme for BB10.
        https://bugs.webkit.org/show_bug.cgi?id=100760

        Reviewed by Rob Buis.

        RIM PR:222126
        Introduce slide function to paint new theme for the form controls.

        No new tests.

        * css/themeBlackBerry.css:
        (select):
        * platform/blackberry/RenderThemeBlackBerry.cpp:
        (WebCore):
        (WebCore::drawControl): Added.
        (WebCore::drawThreeSlice): Added.
        (WebCore::drawNineSlice): Added.
        (WebCore::loadImage): Added.
        (WebCore::RenderThemeBlackBerry::systemFont): Modified.
        (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
        (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
        (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
        (WebCore::RenderThemeBlackBerry::paintButton): Modified.
        (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
        (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
        (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
        * platform/blackberry/RenderThemeBlackBerry.h:
        (RenderThemeBlackBerry):

2012-10-30  Rick Byers  <rbyers@chromium.org>

        cssText for cursor property doesn't include hotspot
        https://bugs.webkit.org/show_bug.cgi?id=99530

        Reviewed by Darin Adler.

        Implement customCssText in CSSCursorImageValue to include the hotspot when present.
        Also explicitly track whether or not a hotspot was supplied in the parser,
        while still using the existing convention of (-1,-1) to denote no hotspot
        in the rest of the system.

        Test: fast/css/cursor-parsing.html

        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::customCssText):
        * css/CSSCursorImageValue.h:
        (CSSCursorImageValue):

2012-10-30  Kenneth Russell  <kbr@google.com>

        Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
        https://bugs.webkit.org/show_bug.cgi?id=100714

        Reviewed by Stephen White.

        For the moment, only use ImageBuffer::copyToPlatformTexture when
        copying to RGBA/UNSIGNED_BYTE textures, and document restriction
        in header. Restriction will be lifted once the implementations
        (currently only Chromium has one) have been fixed; see bug 100715.

        No new tests; manually ran WebGL conformance test
        tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
        hardware on Mac OS.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::texImage2D):
        * platform/graphics/ImageBuffer.h:
        (ImageBuffer):

2012-10-30  Nico Weber  <thakis@chromium.org>

        Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
        https://bugs.webkit.org/show_bug.cgi?id=100320

        Reviewed by Eric Seidel.

        Adding more than 1 element past an array is undefined, so don't do it.

        No test, since in practice ifd will just overflow and `end - ifd` will
        become much larget than 2 and the `if (end - ifd < 2)` a few lines
        down will catch that case.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::readImageOrientation):

2012-10-26  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Add the ValidatedCustomFilterOperation class
        https://bugs.webkit.org/show_bug.cgi?id=100558

        Reviewed by Dean Jackson.

        Added the ValidatedCustomFilterOperation class. The file is now almost empty,
        but more is going to come in the following patches.

        Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
        such operations for now.
        
        No new tests, there is no new functionality yet.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createFilterOperations):
        * platform/graphics/blackberry/LayerWebKitThread.cpp:
        (WebCore::LayerWebKitThread::filtersCanBeComposited):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::filtersCanBeComposited):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
        * platform/graphics/filters/FilterOperation.h:
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::FilterOperations::hasCustomFilter):
        (WebCore::FilterOperations::getOutsets):
        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
        (WebCore):
        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
        (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
        (WebCore::ValidatedCustomFilterOperation::blend):
        * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
        (WebCore):
        (ValidatedCustomFilterOperation):
        (WebCore::ValidatedCustomFilterOperation::create):
        (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
        (WebCore::ValidatedCustomFilterOperation::movesPixels):
        (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
        (WebCore::ValidatedCustomFilterOperation::operator==):

2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] Sync up FeatureDefine Configuration Files
        https://bugs.webkit.org/show_bug.cgi?id=100171

        Reviewed by David Kilzer.

        Follow up to better coordinate with iOS feature defines. Make:

          - ENABLE_FILTERS always on
          - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values

        * Configurations/FeatureDefines.xcconfig:

2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] Sync up FeatureDefine Configuration Files
        https://bugs.webkit.org/show_bug.cgi?id=100171

        Reviewed by David Kilzer.

        Ensure an identical FeatureDefine files across all projects. Changes:

          - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
          - ENABLE_PDFKIT_PLUGIN should be in all
          - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
          - ENABLE_ENCRYPTED_MEDIA should be in all
          - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
          - Some alphabetical ordering cleanup

        * Configurations/FeatureDefines.xcconfig:

2012-10-30  Andreas Kling  <kling@webkit.org>

        StylePropertySet: Convert more logic to use PropertyReference.
        <http://webkit.org/b/100779>

        Reviewed by Antti Koivisto.

        Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
        This is cleanup before changing the internal storage layout of immutable StylePropertySet.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
        * css/CSSComputedStyleDeclaration.h:
        * css/CSSStyleDeclaration.h:
        * css/PropertySetCSSStyleDeclaration.cpp:
        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
        * css/PropertySetCSSStyleDeclaration.h:
        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
        (WebCore::StylePropertySet::fontValue):
        (WebCore::StylePropertySet::get4Values):
        (WebCore::StylePropertySet::getPropertyCSSValue):
        (WebCore::StylePropertySet::removeProperty):
        (WebCore::StylePropertySet::propertyIsImportant):
        (WebCore::StylePropertySet::getPropertyShorthand):
        (WebCore::StylePropertySet::isPropertyImplicit):
        (WebCore::StylePropertySet::setProperty):
        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
        (WebCore::StylePropertySet::findPropertyIndex):
        (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
        (WebCore::StylePropertySet::propertyMatches):
        (WebCore::StylePropertySet::removeEquivalentProperties):
        * css/StylePropertySet.h:
        (WebCore::StylePropertySet::PropertyReference::shorthandID):
        (WebCore::StylePropertySet::PropertyReference::isImplicit):

2012-10-30  Eric Seidel  <eric@webkit.org>

        Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
        https://bugs.webkit.org/show_bug.cgi?id=100428

        Reviewed by Julien Chaffraix.

        RenderTable is now like all other clients of Vector instead of being
        needlessly different. :)

        insert, append and grow all use the same expandCapacity logic under the covers
        and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
        by default for unknown types.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::splitColumn):
        (WebCore::RenderTable::appendColumn):
        * rendering/RenderTable.h:
        (WebCore::RenderTable::ColumnStruct::ColumnStruct):

2012-10-30  Vincent Scheib  <scheib@chromium.org>

        Unreviewed, rolling out r132927.
        http://trac.webkit.org/changeset/132927
        https://bugs.webkit.org/show_bug.cgi?id=100558

        Compile error on Chromium builders

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createFilterOperations):
        * platform/graphics/blackberry/LayerWebKitThread.cpp:
        (WebCore::LayerWebKitThread::filtersCanBeComposited):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::filtersCanBeComposited):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
        * platform/graphics/filters/FilterOperation.h:
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::FilterOperations::hasCustomFilter):
        (WebCore::FilterOperations::getOutsets):
        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
        * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.

2012-10-30  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Restrict link highlights to targets that display a hand-cursor
        https://bugs.webkit.org/show_bug.cgi?id=99862

        Reviewed by James Robinson.

        To avoid applying highlights to inappropriate targets, such as large divs with
        click handlers installed, test candidate targets and only highlight them if they
        would normally display a hand cursor on mouse over. This is a heuristic, but has
        been tested and found effective in practice.

        This CL refactors EventHandler::selectCursor() to make the logic for determining
        if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.

        Relies on existing cursor tests.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::useHandCursor):
        (WebCore):
        (WebCore::EventHandler::selectCursor):
        * page/EventHandler.h:
        (EventHandler):

2012-10-30  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
        https://bugs.webkit.org/show_bug.cgi?id=100783

        Reviewed by Yong Li.

        PR 220513.

        Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
        compatibility, but not needed anymore.

        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
        (WebCore::CookieDatabaseBackingStore::invokeOpen):
        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:

2012-10-30  Glenn Adams  <glenn@skynav.com>

        [CSS] Expand -webkit-line-break value space
        https://bugs.webkit.org/show_bug.cgi?id=100739

        Reviewed by Eric Seidel.

        (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
        (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
        (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;

        New tests to be added when functionality of new values is added. No rendering behavior change at this time.
        Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
        tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
        added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
        default semantics.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        Update from kthmlLineBreak() to lineBreak().

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        Update values supported for CSSPropertyWebkitLineBreak.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator LineBreak):
        Update LineBreak enumeration values (previously EKHTMLLineBreak).

        * css/CSSValueKeywords.in:
        Update keywords used for -webkit-line-break.

        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        Update names for line break style getter/setter.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        Remove khtml prefix on line break related state.

        * rendering/style/RenderStyle.h:
        Remove khtml prefix on line break related methods. Update to redefined LineBreak
        enumeration type.

        * rendering/style/RenderStyleConstants.h:
        Rename EKHTMLLineBreak enumeration to LineBreak.
        Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
        use better names.

        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        Remove khtml prefix on line break related state references.

        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData):
        Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
        of which 5 are now used.

2012-10-30  Antti Koivisto  <antti@apple.com>

        Avoid unnecessary style recalcs on class attribute mutation
        https://bugs.webkit.org/show_bug.cgi?id=100776

        Reviewed by Andreas Kling.

        There is no need to invalidate element style on class attribute change if neither the added
        or removed classes featured in any active stylesheet.

        * css/RuleFeature.cpp:
        (WebCore::RuleFeatureSet::add):
        (WebCore::RuleFeatureSet::clear):
        (WebCore::RuleFeatureSet::reportMemoryUsage):
        * css/RuleFeature.h:
        (RuleFeatureSet):
        * css/RuleSet.cpp:
        (WebCore::collectFeaturesFromSelector):
        
            Collect classes mentioned in CSS selectors the same way ids and attribute names are
            already collected.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::hasSelectorForClass):
        
            Add a method to test if a given class name is mentioned anywhere in stylehseets.

        (WebCore):
        * css/StyleResolver.h:
        * css/StyleScopeResolver.h:
        (WebCore):
        * dom/Element.cpp:
        (WebCore::collectAddedAndRemovedClasses):
        (WebCore):
        (WebCore::Element::classAttributeChanged):
        
            Figure out which classes were added and removed. Test if they are present in any style
            rule and invalidate the style only if they are.

        * dom/SpaceSplitString.cpp:
        (WebCore::SpaceSplitStringData::add):
        (WebCore::SpaceSplitStringData::remove):
        (WebCore::SpaceSplitString::add):
        (WebCore::SpaceSplitString::remove):
        
            Added bool return value to indicate if anything was actually removed. Reorganized 
            the code a bit to avoid unnecessary uniquing when nothing changes.

        * dom/SpaceSplitString.h:
        (SpaceSplitStringData):
        (SpaceSplitString):

2012-10-30  Robert Hogan  <robert@webkit.org>

        white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
        https://bugs.webkit.org/show_bug.cgi?id=29648

        Reviewed by Levi Weintraub.

        A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
        it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
        on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
        and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
        push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
        below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.

        Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):

2012-10-26  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Add the ValidatedCustomFilterOperation class
        https://bugs.webkit.org/show_bug.cgi?id=100558

        Reviewed by Dean Jackson.

        Added the ValidatedCustomFilterOperation class. The file is now almost empty,
        but more is going to come in the following patches.

        Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
        such operations for now.
        
        No new tests, there is no new functionality yet.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createFilterOperations):
        * platform/graphics/blackberry/LayerWebKitThread.cpp:
        (WebCore::LayerWebKitThread::filtersCanBeComposited):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::filtersCanBeComposited):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
        * platform/graphics/filters/FilterOperation.h:
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::FilterOperations::hasCustomFilter):
        (WebCore::FilterOperations::getOutsets):
        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
        (WebCore):
        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
        (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
        (WebCore::ValidatedCustomFilterOperation::blend):
        * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
        (WebCore):
        (ValidatedCustomFilterOperation):
        (WebCore::ValidatedCustomFilterOperation::create):
        (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
        (WebCore::ValidatedCustomFilterOperation::movesPixels):
        (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
        (WebCore::ValidatedCustomFilterOperation::operator==):

2012-10-29  Anders Carlsson  <andersca@apple.com>

        Build WebKit as C++11 on Mac
        https://bugs.webkit.org/show_bug.cgi?id=100720

        Reviewed by Daniel Bates.

        * Configurations/Base.xcconfig:
        Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.

        * platform/graphics/FontPlatformData.h:
        (WebCore::FontPlatformData::hash):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawLine):
        (WebCore::GraphicsContext::strokeArc):
        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
        (WebCore::CustomFilterProgramInfo::hash):
        (WebCore::ProtectionSpaceHash::hash):
        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::setHTTPBody):
        Add static_casts to prevent implicit type conversions in non-constant initializer lists.
        
        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::createDragImage):
        * platform/mac/CursorMac.mm:
        (WebCore::createNamedCursor):
        * platform/mac/ScrollViewMac.mm:
        (WebCore::ScrollView::platformSetContentsSize):
        Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.

        * platform/mac/CookieJar.mm:
        (WebCore::cookiesEnabled):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::shouldRelaxThirdPartyCookiePolicy):
        Add explicit casts to NSHTTPCookieAcceptPolicy.

        * platform/mac/WebCoreNSURLExtras.h:
        * platform/mac/WebCoreNSURLExtras.mm:
        (WebCore::URLByTruncatingOneCharacterBeforeComponent):
        (WebCore::dataForURLComponentType):
        * platform/network/ProtectionSpaceHash.h:
        Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
        functions are exported from WebCore.

2012-10-30  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
        https://bugs.webkit.org/show_bug.cgi?id=100768

        Reviewed by Anders Carlsson.

        r121299 introduced code to restore the paragraph range by saving its length and start offset
        relative to the document. The latter was obtained by iterating over the range starting at
        the beginning of the document and ending at the beginning of the paragraph range. However,
        such a range could not be constructed if the paragraph range was contained in a shadow DOM,
        since a range must have both its endpoints within the same shadow tree (or not in a shadow
        tree).

        Test: platform/mac/editing/spelling/autocorrection-in-textarea.html

        * editing/Editor.cpp:
        (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
        root container of paragraphRange, using the same logic used by
        checkForDifferentRootContainer() in Range.cpp.

2012-10-30  Dan Carney  <dcarney@google.com>

        Remove ensureAuxiliaryContext
        https://bugs.webkit.org/show_bug.cgi?id=99975

        Reviewed by Adam Barth.

        Removed auxilliaryContext as use if it is problematic in IDB.

        No new tests. No change in functionality.

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::update):
        (WebCore::IDBCursor::setValueReady):
        * Modules/indexeddb/IDBCursor.h:
        (IDBCursor):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::generateIndexKeysForValue):
        (WebCore::IDBObjectStore::put):
        (WebCore):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::dispatchEvent):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore::deserializeIDBValue):
        (WebCore::injectIDBKeyIntoScriptValue):
        * bindings/v8/IDBBindingUtilities.h:
        (WebCore):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toV8Context):
        (WebCore):
        * bindings/v8/V8Binding.h:
        (WebCore):
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore):
        * bindings/v8/V8PerIsolateData.h:

2012-10-30  Huang Dongsung  <luxtella@company100.net>

        [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
        https://bugs.webkit.org/show_bug.cgi?id=98989

        Reviewed by Dean Jackson.

        Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
        FECustomFilter now plays a role in extending FilterEffect and delegates
        rendering CSS Shaders to CustomFilterRenderer.

        CustomFilterRenderer does not know Filter and FilterEffect. We can
        create a CustomFilterRenderer instance with only GraphicsContext3D and
        CustomFilterValidatedProgram. It means that Accelerated Compositing can
        create the CustomFilterRenderer instance if Accelerated Compositing has
        GraphicsContext3D and CustomFilterOperation, and it is already possible.

        This patch prepares to enable CSS Shaders on Accelerated Compositing.

        No new tests. Covered by css3/filters/custom

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
        (WebCore):
        (WebCore::orthogonalProjectionMatrix):
        (WebCore::CustomFilterRenderer::create):
        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
        (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
        (WebCore::CustomFilterRenderer::premultipliedAlpha):
        (WebCore::CustomFilterRenderer::programNeedsInputTexture):
        (WebCore::CustomFilterRenderer::draw):
        (WebCore::CustomFilterRenderer::prepareForDrawing):
        (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
        (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
        (WebCore::CustomFilterRenderer::bindVertexAttribute):
        (WebCore::CustomFilterRenderer::unbindVertexAttribute):
        (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
        (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
        (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
        (WebCore::CustomFilterRenderer::bindProgramParameters):
        (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
        (WebCore::CustomFilterRenderer::unbindVertexAttributes):
        * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
        (WebCore):
        (CustomFilterRenderer):
          CustomFilterRenderer renders custom filters in GPU using a
          GraphicsContext3D.
        * platform/graphics/filters/FECustomFilter.cpp:
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::create):
        (WebCore::FECustomFilter::deleteRenderBuffers):
        (WebCore::FECustomFilter::drawFilterMesh):
        (WebCore::FECustomFilter::prepareForDrawing):
        (WebCore::FECustomFilter::applyShader):
        (WebCore::FECustomFilter::resolveMultisampleBuffer):
        (WebCore::FECustomFilter::resizeMultisampleBuffers):
        (WebCore::FECustomFilter::resizeContext):
        * platform/graphics/filters/FECustomFilter.h:
        (WebCore):
        (FECustomFilter):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::createCustomFilterEffect):

2012-10-30  Mike West  <mkwst@chromium.org>

        Web Inspector: Associate console messages with the requests that caused them.
        https://bugs.webkit.org/show_bug.cgi?id=99941

        Reviewed by Pavel Feldman.

        The inspector currently supports the concept of a request's "initiator"
        in order to add context to console messages that are generated in
        response to a specific request. The initiator is used as the message's
        anchor link iff a requestID is present, and no stack trace is present.

        Currently, this functionality is only exposed to three specific
        callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
        'InspectorConsoleAgent::didReceiveResponse', and
        'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
        mechanism to associate requests with console messages by passing the
        request's identifier through 'ScriptExecutionContext::addConsoleMessage'
        or 'Console::addMessage' when relevant.

        This patch should have no visible changes. It just installs some new
        piping, and adjusts the three methods mentioned above to use it.
        Existing tests shouldn't break.

        * dom/Document.cpp:
        (WebCore::Document::addMessage):
        * dom/Document.h:
        (Document):
            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
            through to Console::addMessage.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::addConsoleMessage):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
            through to the subclass' addMessage method.
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::ConsoleMessage):
            Accept an unsigned long instead of a string, and move the conversion
            from WebCore request identifiers to Inspector request identifiers
            into ConsoleMessage.
        * inspector/ConsoleMessage.h:
        (ConsoleMessage):
            Add 'requestIdentifier' (defaulting to 0) to the
            ConsoleMessage constructor that accepts a ScriptCallStack (it was
            already part of the constructor that accepted a line number).
        * inspector/IdentifiersFactory.cpp:
        (WebCore::IdentifiersFactory::requestId):
            If the provided request identifier is 0, return an empty string.
            This simplifies the logic at the callsite.
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
            through to the 'ConsoleMessage' constructor after converting it to
            an internal identifier via 'IdentifiersFactor::requestId'.
        (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
        (WebCore::InspectorConsoleAgent::didReceiveResponse):
        (WebCore::InspectorConsoleAgent::didFailLoading):
            Use the new 'requestIdentifier' parameter on addMessageToConsole
            rather than replicating the behavior in each of these three methods.
        * inspector/InspectorConsoleAgent.h:
        (InspectorConsoleAgent):
            Add a 'requestIdentifier' parameter (defaulting to 0).
        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::addMessageToConsole):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
            through to lower levels of the stack.
        * page/Console.cpp:
        (WebCore::Console::addMessage):
        * page/Console.h:
        (Console):
            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
            through to 'InspectorInstrumentation::addMessageToConsole'.
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::addMessage):
        (WebCore::WorkerContext::addMessageToWorkerConsole):
        * workers/WorkerContext.h:
        (WorkerContext):
            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
            through to 'InspectorInstrumentation::addMessageToConsole'.

2012-10-29  Anders Carlsson  <andersca@apple.com>

        String::createCFString should return a RetainPtr
        https://bugs.webkit.org/show_bug.cgi?id=100419

        Reviewed by Andreas Kling.

        Update callers of String::createCFString.

        * bridge/objc/objc_runtime.mm:
        (JSC::Bindings::callObjCFallbackObject):
        * html/HTMLMediaElement.cpp:
        (WebCore::createFileURLForApplicationCacheResource):
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::createPropertyListRepresentation):
        * platform/LocalizedStrings.cpp:
        (WebCore::formatLocalizedString):
        (WebCore::contextMenuItemTagLookUpInDictionary):
        (WebCore::keygenKeychainItemName):
        (WebCore::imageTitle):
        * platform/RuntimeApplicationChecks.cpp:
        (WebCore::mainBundleIsEqualTo):
        * platform/cf/FileSystemCF.cpp:
        (WebCore::fileSystemRepresentation):
        (WebCore::pathAsURL):
        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
        (PlatformCAAnimation::PlatformCAAnimation):
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (resubmitAllAnimations):
        (PlatformCALayer::addAnimationForKey):
        (PlatformCALayer::removeAnimationForKey):
        (PlatformCALayer::setName):
        * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
        (PlatformCALayerWinInternal::updateTiles):
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::utiFromMIMEType):
        * platform/graphics/cg/ImageSourceCGMac.mm:
        (WebCore::MIMETypeForImageSourceType):
        (WebCore::preferredExtensionForImageSourceType):
        * platform/mac/ClipboardMac.mm:
        (WebCore::cocoaTypeFromHTMLClipboardType):
        (WebCore::utiTypeFromCocoaType):
        * platform/mac/SSLKeyGeneratorMac.cpp:
        (WebCore::signedPublicKeyAndChallengeString):
        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::createCF):
        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::setCookies):
        * platform/network/cf/DNSCFNet.cpp:
        (WebCore::DNSResolveQueue::platformResolve):
        * platform/network/cf/ResourceErrorCF.cpp:
        (WebCore::ResourceError::cfError):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::setDefaultMIMEType):
        (WebCore::willSendRequest):
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::setHeaderFields):
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::cfURLResponse):
        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::SocketStreamHandle::createStreams):
        (WebCore::SocketStreamHandle::addCONNECTCredentials):
        (WebCore::SocketStreamHandle::copyCFStreamDescription):
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        * platform/network/mac/WebCoreURLResponse.mm:
        (WebCore::adjustMIMETypeIfNecessary):
        * platform/text/cf/HyphenationCF.cpp:
        (WebCore::::createValueForKey):
        * platform/text/cf/StringCF.cpp:
        (WTF::String::createCFString):
        * platform/text/cf/StringImplCF.cpp:
        (WTF::StringImpl::createCFString):
        * platform/text/mac/StringImplMac.mm:
        (WTF::StringImpl::operator NSString *):
        * platform/text/mac/TextCodecMac.cpp:
        (WebCore::TextCodecMac::encode):
        * platform/win/SearchPopupMenuWin.cpp:
        (WebCore::autosaveKey):
        (WebCore::SearchPopupMenuWin::saveRecentSearches):

2012-10-30  Chris Fleizach  <cfleizach@apple.com>

        AX: Support embedded SVG objects in AX tree
        https://bugs.webkit.org/show_bug.cgi?id=97571

        Reviewed by Tim Horton.

        This patch allows an SVG image from another resource to be hooked into the AX
        hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
        its native parent image. The SVGChromeClient is then used to connect to this SVG resource.

        Test: accessibility/svg-remote-element.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * accessibility/AXObjectCache.cpp:
        (WebCore::createFromRenderer):
        * accessibility/AccessibilityAllInOne.cpp:
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
        (AccessibilityObject):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::detach):
        (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
        (WebCore::AccessibilityRenderObject::boundingBoxRect):
        (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
        (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        (WebCore::AccessibilityRenderObject::isSVGImage):
        (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
        (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
        (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/AccessibilitySVGRoot.cpp: Added.
        (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
        (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
        (WebCore::AccessibilitySVGRoot::create):
        (WebCore::AccessibilitySVGRoot::parentObject):
        * accessibility/AccessibilitySVGRoot.h: Added.
        (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
        (WebCore::AccessibilitySVGRoot::setParent):
        (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
        (WebCore::toAccessibilitySVGRoot):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
        in a special manner.
        (createAccessibilityRoleMap):
        * loader/EmptyClients.h:
        (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
        the accessibility bounding rect of elements.
        (WebCore::EmptyChromeClient::isEmptyChromeClient):
        * page/ChromeClient.h:
        (WebCore::ChromeClient::isEmptyChromeClient):
        (ChromeClient):
        * svg/graphics/SVGImage.cpp:
        * svg/graphics/SVGImageChromeClient.h: Added.
        (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
        (WebCore::SVGImageChromeClient::SVGImageChromeClient):
        (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
        (WebCore::SVGImageChromeClient::image):
        (WebCore::SVGImageChromeClient::chromeDestroyed):
        (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
        (WebCore::toSVGImageChromeClient):

2012-10-30  Dan Carney  <dcarney@google.com>

        add 7 bit strings capabilities to the v8 binding layer
        https://bugs.webkit.org/show_bug.cgi?id=91850

        Reviewed by Adam Barth.

        This change enables the v8 binding layer to make use of webkit's
        8 bit string capabilities. Using 8 bit strings leads to certain
        benchmark performance improvemnts as can be seen in
        https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.

        No new tests. Test coverage already extensive.

        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::visitExternalStrings):
        * bindings/v8/V8StringResource.cpp:
        (StringTraits):
        (WebCore::false):
        (WebCore):
        (WebCore::true):
        (WebCore::v8StringToWebCoreString):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::makeExternalString):
        (WebCore::WebCoreStringResourceBase::visitStrings):
        * bindings/v8/V8ValueCache.h:
        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::atomicString):
        (WebCoreStringResourceBase):
        (WebCore::WebCoreStringResourceBase::memoryConsumption):

2012-10-30  Christophe Dumez  <christophe.dumez@intel.com>

        [AC] Fix compilation warnings when enabling Accelerated Compositing
        https://bugs.webkit.org/show_bug.cgi?id=100741

        Reviewed by Kenneth Rohde Christiansen.

        Fix a few compilation warnings when building EFL port
        with accelerated compositing enabled.

        No new tests, no behavior change.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::resolveGLMethods):
        (WebCore::GraphicsSurface::platformCopyToGLTexture):
        (WebCore::GraphicsSurface::platformLock):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::BitmapTextureGL::updateContents):

2012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt] Animations jump when the page is suspended
        https://bugs.webkit.org/show_bug.cgi?id=100673

        Reviewed by Kenneth Rohde Christiansen.

        GraphicsLayerAnimations::pause() should accept time from start and not an offset.

        We need to support the "freeze" API before this can be reliably tested.
        See https://bugs.webkit.org/show_bug.cgi?id=100703.

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::GraphicsLayerAnimation::pause):

2012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>

        [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
        https://bugs.webkit.org/show_bug.cgi?id=100639.

        Reviewed by Kenneth Rohde Christiansen.

        TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
        In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
        from a given WindowId, but doesn't create any new window.
        However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
        With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):

2012-10-30  Emil A Eklund  <eae@chromium.org>

        [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
        https://bugs.webkit.org/show_bug.cgi?id=100742

        Reviewed by Levi Weintraub.

        As we no longer pixel snap values when computing the current width for a
        line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
        either.

        Test: fast/sub-pixel/float-wrap-zoom.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.

2012-10-30  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Reject vertex shaders with custom attributes
        https://bugs.webkit.org/show_bug.cgi?id=98973

        Reviewed by Dean Jackson.

        Improved CSS Custom Filters shader validation. With this patch:
        (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
        (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.

        Most of the changes are from renaming CustomFilterOperation::MeshType to
        CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
        pulling in CustomFilterOperation for classes that only care about the mesh type.

        Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
        meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
        belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
        vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
        only a vec3.

        Tests:
        Add two new checks to the test file:
            css3/filters/custom/invalid-custom-filter-attribute-types.html
        Add two new shaders:
            css3/filters/resources/invalid-custom-attribute.vs
            css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs

        * WebCore.xcodeproj/project.pbxproj:
            Update a broken reference to CustomFilterConstants.h in the Xcode project file.
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
            Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
        * platform/graphics/filters/CustomFilterConstants.h:
            Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
            don't have to include CustomFilterOperation just to access the old
            CustomFilterOperation::MeshType enum.
        * platform/graphics/filters/CustomFilterMesh.cpp:
        (WebCore::CustomFilterMesh::CustomFilterMesh):
            Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
        * platform/graphics/filters/CustomFilterMesh.h:
        (WebCore::CustomFilterMesh::create): Ditto.
        (WebCore::CustomFilterMesh::meshType): Ditto.
        (CustomFilterMesh): Ditto.
        * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
        (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
        (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
        * platform/graphics/filters/CustomFilterMeshGenerator.h:
        (CustomFilterMeshGenerator): Ditto.
        (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
        (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
        * platform/graphics/filters/CustomFilterOperation.cpp: 
        (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
        * platform/graphics/filters/CustomFilterOperation.h:
        (WebCore::CustomFilterOperation::create): Ditto.
        (WebCore::CustomFilterOperation::meshType): Ditto.
        (CustomFilterOperation): Ditto.
        * platform/graphics/filters/CustomFilterProgram.cpp:
        (WebCore::CustomFilterProgram::CustomFilterProgram):
            Add a meshType constructor parameter because the program now needs to know the meshType
            to properly validate.
        (WebCore::CustomFilterProgram::programInfo):
            Pass meshType to CustomFilterProgram constructor.
        (WebCore::CustomFilterProgram::operator==):
            Check the meshType in the equals operator.
        * platform/graphics/filters/CustomFilterProgram.h:
            Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
            for a programInfo object just to get the shader strings in
            CoordinatedGraphicsArgumentCoders.cpp.
        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
        (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
            Add a meshType constructor parameter.       
        (WebCore::CustomFilterProgramInfo::hash):
            Include the meshType in the validated program hash, since the same shader code can pass
            or fail validation based on the meshType.
        (WebCore::CustomFilterProgramInfo::operator==):
            Check the meshType in the equals operator.
        * platform/graphics/filters/CustomFilterProgramInfo.h:
        (CustomFilterProgramInfo):
            Update method prototype.
        (WebCore::CustomFilterProgramInfo::meshType):
            Add meshType getter.
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::validateSymbols):
            If the author defines attribute that is is not found in the built-in attribute map,
            reject the shader.
            If the author defines a_triangleCoord without a detached mesh type, reject the shader.
            Also, make this previously file-static function into a method of
            CustomFilterValidatedProgram because it now needs to access the m_meshType.
        * platform/graphics/filters/CustomFilterValidatedProgram.h:
        (CustomFilterValidatedProgram):
            Add a meshType constructor parameter because the program now needs to know the meshType
            to properly validate.
        * platform/graphics/filters/FECustomFilter.cpp:
        (WebCore::FECustomFilter::FECustomFilter):
            Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
        (WebCore::FECustomFilter::create): Ditto.
        (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
        (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
        * platform/graphics/filters/FECustomFilter.h:
        (FECustomFilter): Ditto.
        * rendering/style/StyleCustomFilterProgram.h:
        (WebCore::StyleCustomFilterProgram::create):
            Add a meshType constructor parameter.
        (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.

2012-10-30  Andrey Lushnikov  <lushnikov@google.com>

        Web Inspector: adds isOwnProperty to remote protocol
        https://bugs.webkit.org/show_bug.cgi?id=100664

        Reviewed by Pavel Feldman.

        Test: inspector/runtime/runtime-getProperties-isOwnProperty.html

        Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
        remote debugging protocol. 

        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:

2012-10-30  Zeno Albisser  <zeno@webkit.org>

        [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
        https://bugs.webkit.org/show_bug.cgi?id=100680

        When creating a temporary for swizzling the image data,
        the temporary will have the target size.
        Therefore no offset within the available image data
        shall be applied in this case.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::BitmapTextureGL::updateContents):

2012-10-30  Kent Tamura  <tkent@chromium.org>

        Remove unused code for old input[type=date] UI
        https://bugs.webkit.org/show_bug.cgi?id=100734

        Reviewed by Hajime Morita.

        The old input[type=date] UI used in Google Chrome 20-23 (text field with
        a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.

        No new tests because of no behavior changes.

        * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
        * html/DateInputType.h: Ditto.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::supportsPlaceholder):
        Remove fixed-placeholder feature.
        * html/HTMLInputElement.h:
        (HTMLInputElement): Ditto.
        * html/HTMLTextFormControlElement.h:
        (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
        * html/InputType.cpp: Remove fixed-placeholder feature.
        * html/InputType.h: Ditto.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.

        * platform/text/PlatformLocale.h:
        (Locale): Remove dateFormatText.
        * platform/text/LocaleICU.cpp: Ditto.
        * platform/text/LocaleICU.h: Ditto.
        * platform/text/LocaleNone.cpp: Ditto.
        * platform/text/mac/LocaleMac.h: Ditto.
        * platform/text/mac/LocaleMac.mm: Ditto.
        * platform/text/win/LocaleWin.cpp: Ditto.
        * platform/text/win/LocaleWin.h: Ditto.
        * platform/LocalizedStrings.h:
        (WebCore): Remove unused functions; calendarTodayText,
        calendarClearText, dateFormatYearText, dateFormatMonthText,
        dateFormatDayInMonthText

2012-10-30  Kent Tamura  <tkent@chromium.org>

        Fix crash by calendar picker or suggestion picker
        https://bugs.webkit.org/show_bug.cgi?id=100728

        Reviewed by Hajime Morita.

        Change DateTimeChooser so that it is ref-coutned.

        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html

        * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
        * page/ChromeClient.h:
        (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
        * loader/EmptyClients.h:
        (EmptyChromeClient): Follow the above change.
        * loader/EmptyClients.cpp:
        (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.

        * html/shadow/PickerIndicatorElement.h:
        (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
        * html/shadow/PickerIndicatorElement.cpp:
        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
        Remove unnecessary initialization.

2012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: promote "cpu activity" out of experiment
        https://bugs.webkit.org/show_bug.cgi?id=100726

        Reviewed by Pavel Feldman.

        1. CPU actibity bars redesigned
        2. Experiment setting removed
        3. Feature setting added

        * English.lproj/localizedStrings.js: Updated setting label.
        * inspector/front-end/Settings.js: Replaced experiment with setting.
        * inspector/front-end/SettingsScreen.js: Added new setting.
        * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
        * inspector/front-end/timelinePanel.css: Ditto.

2012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>

        [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
        https://bugs.webkit.org/show_bug.cgi?id=94020

        Reviewed by Dean Jackson.

        The default compositing mode has been changed from "normal source-over" to
        "normal source-atop". This applies to the default fragment shader that will
        kick in when there is no explicit fragment shader or mix function defined.

        This has required to update all the existing tests; the dummy empty fragment
        shader has also been removed because not needed.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
        for the fragment shader has been added.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createCustomFilterOperation): The default program
        has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
        the default.
        * platform/graphics/filters/CustomFilterProgramInfo.h:
        (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
        New CustomFilterProgramMixSettings defaults to "source-atop" composite
        operator.

2012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>

        [Qt][Mac] Unreviewed build fix.
        https://bugs.webkit.org/show_bug.cgi?id=100727.

        Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.

        * platform/text/cf/AtomicStringCF.cpp:

2012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>

        Optimize vclip for NEON in VectorMath
        https://bugs.webkit.org/show_bug.cgi?id=100737

        Reviewed by Zoltan Herczeg.

        Speed up vclip in VectorMath with NEON intrinsics.

        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::vclip):

2012-10-30  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Software and composited filters should have a common path
        https://bugs.webkit.org/show_bug.cgi?id=100532

        Reviewed by Dean Jackson.

        Added computeFilterOperations as a common method between the software filters
        and hardware composited ones. The method rejects custom filters that are not
        loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
        ValidatedCustomFilterOperation. That will help us keep the loading and verification 
        code for the custom filters common across all the ports.

        No new tests, just refactoring existing code.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::computeFilterOperations):
        (WebCore):
        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
        * rendering/RenderLayer.h:
        (WebCore):
        (RenderLayer):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateFilters):

2012-10-30  Alexei Filippov  <alph@chromium.org>

        Web Inspector: Implement native memory snapshot grid view
        https://bugs.webkit.org/show_bug.cgi?id=100656

        Native memory snapshots are now shown as an expandable tree form
        using the grid control.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/NativeMemorySnapshotView.js:
        (WebInspector.NativeMemorySnapshotView):
        (WebInspector.NativeSnapshotDataGrid):
        (WebInspector.NativeSnapshotNode):
        (WebInspector.NativeSnapshotNode.prototype.createCell):
        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
        (WebInspector.NativeSnapshotNode.prototype._populate):
        (WebInspector.MemoryBlockViewProperties._initialize):
        (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
        * inspector/front-end/dataGrid.css:
        (.data-grid td):
        * inspector/front-end/nativeMemoryProfiler.css:
        (.memory-bar-chart-bar):
        (.native-snapshot-view):
        (.native-snapshot-view.visible):
        (.native-snapshot-view .data-grid):
        (.native-snapshot-view .data-grid table):
        (.native-snapshot-view .data-grid div.size-text):
        (.native-snapshot-view .data-grid div.size-bar):
        (.native-snapshot-view .data-grid div.percent-text):

2012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>

        3d rotation with [0, 0, 0] direction vector should not be applied
        https://bugs.webkit.org/show_bug.cgi?id=100733

        Reviewed by Levi Weintraub.

        As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
        a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
        but webkit applies it with [1, 0, 0] direction vector.

        Test: transforms/3d/general/3dtransform-values.html

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::rotate3d):

2012-10-30  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: report actual object address for CachedResourceClients
        https://bugs.webkit.org/show_bug.cgi?id=100659

        Reviewed by Alexander Pavlov.

        Skipped pointers to objects that are not allocated on the heap directly.

        To test this we need to compare addresses of objects traversed by the memory
        insrumentation with those allocated by the memory allocator. The latter set
        should include the former one.

        * css/StyleResolver.cpp:
        (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
        objects and should not be reported separately.
        * loader/cache/CachedResource.cpp:
        (WTF): do not report memory occupied by CachedResourceClients as objects implementing
        the interface may have address which differ from CachedResourceClient*. The clients
        should be reachable from their instrumented owners where we know exact type of the
        clients and hence can figure correct address.

2012-10-29  Shinya Kawanaka  <shinyak@chromium.org>

        [Refatoring] Remove ElementShadow::insertionPointFor
        https://bugs.webkit.org/show_bug.cgi?id=100625

        Reviewed by Hajime Morita.

        Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
        ComposedShadowTreeWalker. So we can remove it.

        No new tests, simple refactoring.

        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::resolveReprojection):
        (WebCore::AncestorChainWalker::parent):
        * dom/ElementShadow.cpp:
        * dom/ElementShadow.h:
        (ElementShadow):
        * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
        We should remove it.

2012-10-29  Andy Estes  <aestes@apple.com>

        Fix a typo that caused SVG external resources to be blocked on
        platforms other than Chromium.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::canRequest):

2012-10-29  Keishi Hattori  <keishi@webkit.org>

        NSLocale leaks in LocaleMac
        https://bugs.webkit.org/show_bug.cgi?id=97628

        Reviewed by Kent Tamura.

        We need to adopt the NSLocale object so it doesn't leak and
        determineLocale() should return a NSLocale without additional retain.

        No new tests.

        * platform/text/mac/LocaleMac.mm:
        (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
        (WebCore::Locale::create):
        (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
        (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.

2012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Disable redirect to data scheme for potential fishing.
        https://bugs.webkit.org/show_bug.cgi?id=100713

        Reviewed by George Staikos.

        We will disable redirect to data scheme to avoid potential security concern, 
        described in klevjers.com/papers/phishing.pdf.


        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::handleRedirect):

2012-10-29  Vincent Scheib  <scheib@chromium.org>

        Unreviewed, rolling out r132845.
        http://trac.webkit.org/changeset/132845
        https://bugs.webkit.org/show_bug.cgi?id=99975

        Broke chromium builds, linker errors from
        IDBBindingUtilitiesTest

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::IDBRequest):
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBRequest.h:
        (IDBRequest):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore):
        (WebCore::deserializeIDBValue):
        (WebCore::injectIDBKeyIntoScriptValue):
        (WebCore::idbKeyToScriptValue):
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
        (WebCore):
        * bindings/v8/V8PerIsolateData.h:
        (V8PerIsolateData):

2012-10-29  Anders Carlsson  <andersca@apple.com>

        Fix Windows build.

        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::setHeaderFields):

2012-10-28  Mark Rowe  <mrowe@apple.com>

        Simplify Xcode configuration settings that used to vary between OS versions.

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/WebCore.xcconfig:

2012-10-28  Mark Rowe  <mrowe@apple.com>

        Remove references to unsupported OS and Xcode versions.

        Reviewed by Anders Carlsson.

        * Configurations/Base.xcconfig:
        * Configurations/CompilerVersion.xcconfig: Removed.
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebCore.xcconfig:
        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:

2012-10-29  Anders Carlsson  <andersca@apple.com>

        AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
        https://bugs.webkit.org/show_bug.cgi?id=100701

        Reviewed by Dan Bernstein.

        * WebCore.exp.in:
        Export AtomicString::add(CFStringRef).

        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Add AtomicStringCF.cpp 

        * platform/text/cf/AtomicStringCF.cpp: Added.
        (WTF::AtomicString::add):
        When trying to add the atomic string to the table, first try to get a Latin-1 pointer
        from the string. Second, try to get a Unicode pointer from the string.
        If that also fails, copy the string to a temporary unicode buffer and add it from there.

        * platform/text/cf/HyphenationCF.cpp:
        (WebCore::::createValueForKey):
        Update for AtomicString::createCFString being removed.

2012-10-25  Stephen Chenney  <schenney@chromium.org>

        feImage should not be allowed to self reference
        https://bugs.webkit.org/show_bug.cgi?id=94652

        Reviewed by Eric Seidel.

        Add cycle detection for SVG filter application, and also fix a problem
        with graphics context restore when filters are applied. This also
        converts the flags in FilterData to a state tracking system, as the
        number of flags was getting messy and only one flag is valid at any given time.

        Test: svg/filters/feImage-self-and-other-referencing.html

        * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
        state management and enable cycle detection.
        (WebCore):
        (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
        (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
        (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
        for the various states.
        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
        * rendering/svg/RenderSVGResourceFilter.h:
        (WebCore::FilterData::FilterData):
        (FilterData): Convert to a state tracking system.
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
        SVGRenderingContext so that it applies the filter and reverts the
        context before the calling method restores the context.

2012-10-29  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
        reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.

        Reviewed by Anders Carlsson.

        Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
        than CGRectInfinite when the context is accelerated and has a transform that is not just
        a translation or a scale.

2012-10-29  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Simplify AuthenticationChallengeManager::instance
        https://bugs.webkit.org/show_bug.cgi?id=100614

        Reviewed by Yong Li.
        Internally reviewed by Lyon Chen.

        Use a standard Singleton pattern here, this makes sure we create lazily.

        * platform/blackberry/AuthenticationChallengeManager.cpp:
        (WebCore):
        * platform/blackberry/AuthenticationChallengeManager.h:
        (AuthenticationChallengeManager):

2012-10-29  Adam Barth  <abarth@webkit.org>

        Block SVG external references pending a security review
        https://bugs.webkit.org/show_bug.cgi?id=100635

        Reviewed by Eric Seidel.

        We need to do a security review of loading external SVG references
        before we're sure that it is safe.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createFilterOperations):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::canRequest):

2012-10-29  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Crash on checking version of corrupt backing store
        https://bugs.webkit.org/show_bug.cgi?id=100692

        Reviewed by Tony Chang.

        If the backing store fails to open (due to corruption, non-writeable disk, etc)
        the subsequent schema version check dereferences a null pointer. Fix to only
        do the schema check if the database opened.

        Chromium tests will be included with crrev.com/11196029

        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::open):

2012-10-29  Philip Rogers  <pdr@google.com>

        Let SVGElements have pending resources.
        https://bugs.webkit.org/show_bug.cgi?id=99694

        Reviewed by Eric Seidel.

        Our SVG pending resource tracking is used for handling dynamic id changes. For example,
        if an SVG element references an id that is not yet in the document (or has been removed),
        the SVG element will be 'pending' an id. When styled elements are inserted into
        the document, buildPendingResourcesIfNeeded() is called to force any pending elements
        to resolve their dependencies. Only SVGStyledElement targets can be referenced using
        this infrastructure, and that is not changed with this patch.

        Previously, only SVGStyledElements could have pending resources. Some examples of where
        this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
        but which can have pending references (they can reference styled elements and
        paths, respectively). This patch changes the pending resource handling to allow
        any SVGElement to have pending resources.

        This patch is only a refactoring of code in preparation for WK99694 and does not
        affect existing functionality or tests.

        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::addPendingResource):
        (WebCore::SVGDocumentExtensions::isElementPendingResources):
        (WebCore::SVGDocumentExtensions::isElementPendingResource):
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
        * svg/SVGDocumentExtensions.h:
        (WebCore):
        (SVGDocumentExtensions):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::~SVGElement):
        (WebCore::SVGElement::removedFrom):
        (WebCore::SVGElement::hasPendingResources):
        (WebCore):
        (WebCore::SVGElement::setHasPendingResources):
        (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
        * svg/SVGElement.h:
        (SVGElement):
        (WebCore::SVGElement::buildPendingResource):
        * svg/SVGStyledElement.cpp:
        (WebCore):
        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
        (WebCore::SVGStyledElement::removedFrom):
        * svg/SVGStyledElement.h:
        (SVGStyledElement):
        (WebCore::SVGStyledElement::selfHasRelativeLengths):

2012-10-29  Dan Carney  <dcarney@google.com>

        Remove ensureAuxiliaryContext
        https://bugs.webkit.org/show_bug.cgi?id=99975

        Reviewed by Adam Barth.

        Removed auxilliaryContext as use if it is problematic in IDB.

        No new tests. No change in functionality.

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::update):
        (WebCore::IDBCursor::setValueReady):
        * Modules/indexeddb/IDBCursor.h:
        (IDBCursor):
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::generateIndexKeysForValue):
        (WebCore::IDBObjectStore::put):
        (WebCore):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::dispatchEvent):
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
        (WebCore::deserializeIDBValue):
        (WebCore::injectIDBKeyIntoScriptValue):
        * bindings/v8/IDBBindingUtilities.h:
        (WebCore):
        * bindings/v8/V8Binding.cpp:
        (WebCore::toV8Context):
        (WebCore):
        * bindings/v8/V8Binding.h:
        (WebCore):
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore):
        * bindings/v8/V8PerIsolateData.h:

2012-10-29  Alpha Lam  <hclam@chromium.org>

        [skia] Handle mask box image.
        https://bugs.webkit.org/show_bug.cgi?id=100570

        Reviewed by James Robinson.

        When drawing an image with source rectangle it should intersect with image rectangle.
        This should be the case for drawing single image and tiling an image.

        Test: fast/images/mask-box-image-crash.html

        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::Image::drawPattern):
        (WebCore::BitmapImage::draw):
        (WebCore::BitmapImageSingleFrameSkia::draw):

2012-10-29  Eric Carlson  <eric.carlson@apple.com>

        Support captions when PLUGIN_PROXY_FOR_VIDEO
        https://bugs.webkit.org/show_bug.cgi?id=100690

        Reviewed by Simon Fraser.

        When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
        platform media engine. Update this code path so the shadow DOM elements used to display
        text tracks are created and configured correctly.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.

        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
            position of the embedded element changes.
        * rendering/RenderEmbeddedObject.h:

2012-10-29  Justin Novosad  <junov@google.com>

        [Chromium] flickering observed when copying 2D canvas to webGL texture
        https://bugs.webkit.org/show_bug.cgi?id=100691

        Reviewed by Stephen White.

        Added a flush to the webgl context after texture upload from an image
        buffer to ensure proper graphics context synchronization with respect
        to subsequent changes to the source image.

        Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::copyToPlatformTexture):

2012-10-29  Glenn Adams  <glenn@skynav.com>

        [CSSOM] Extraneous whitespace in CSSImportRule.cssText
        https://bugs.webkit.org/show_bug.cgi?id=100657

        Reviewed by Simon Fraser.

        Remove extraneous whitespace when serializing CSSImportRule.cssText when
        media list is empty.

        Test: cssom/cssimportrule-media.html

        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::cssText):
        Don't append extra whitespace if mediaText is empty.

2012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        webview not redrawn as needed when accelerated compositing is enabled.
        https://bugs.webkit.org/show_bug.cgi?id=99109

        Reviewed by Martin Robinson.

        GL shared display is not in the gtk loop and therefore, its events are
        not captured by gtk. So, we use gdk default instead.

        No new tests, covered by existing tests.

        * platform/gtk/RedirectedXCompositeWindow.cpp:
        (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
        (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
        (WebCore::RedirectedXCompositeWindow::resize):

2012-10-29  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: bind redo to Ctrl+Y on non-mac platforms
        https://bugs.webkit.org/show_bug.cgi?id=100685

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype._registerShortcuts):

2012-10-29  Enrica Casucci  <enrica@apple.com>

        Add ENABLE_USERSELECT_ALL feature flag.
        https://bugs.webkit.org/show_bug.cgi?id=100559

        Reviewed by Eric Seidel.

        * Configurations/FeatureDefines.xcconfig:

2012-10-29  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Extract the CustomFilterParameterList to its own file
        https://bugs.webkit.org/show_bug.cgi?id=100548

        Reviewed by Dean Jackson.

        Moved all the CustomFilterParameterList related methods to their own file.
        Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
        so that we can add a different operator== and a blend method to it.

        No new tests, just refactoring existing code.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/StyleResolver.h:
        * platform/graphics/filters/CustomFilterOperation.cpp:
        (WebCore::CustomFilterOperation::CustomFilterOperation):
        (WebCore::CustomFilterOperation::blend):
        * platform/graphics/filters/CustomFilterOperation.h:
        (WebCore):
        (WebCore::CustomFilterOperation::operator==):
        * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
        (WebCore):
        (WebCore::CustomFilterParameterList::operator==):
        (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
        (WebCore::CustomFilterParameterList::blend):
        * platform/graphics/filters/CustomFilterParameterList.h: Added.
        (WebCore):
        (CustomFilterParameterList):

2012-10-29  Brady Eidson  <beidson@apple.com>

        Try to fix 32-bit builds after my incompletely tested m_identifier change.

        Not reviewed.

        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.

2012-10-29  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
        https://bugs.webkit.org/show_bug.cgi?id=100115

        Reviewed by Noam Rosenthal.

        * platform/graphics/qt/FontQt.cpp:
        (WebCore::Font::drawGlyphs):

2012-10-29  Huang Dongsung  <luxtella@company100.net>

        [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
        https://bugs.webkit.org/show_bug.cgi?id=100623

        Reviewed by Noam Rosenthal.

        Currently, GraphicsLayerAnimation chooses a timing function in the wrong
        way. Other GraphicsLayers choose a timing function in the similar way to
        GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
        the following steps.
        1. Try to query the timing function of the current keyframe animation value.
        2. If the timing function of #1 is null, try to query the timing function of Animation.
        3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().

        This patch makes GraphicsLayerAnimation choose a timing function in the same way
        to other implementations.

        Covered by existing animations tests.

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::timingFunctionForAnimationValue):
        (WebCore::GraphicsLayerAnimation::apply):

2012-10-29  Patrick Dubroy  <dubroy@chromium.org>

        Web Inspector: Toolbar overflow appears outside window
        https://bugs.webkit.org/show_bug.cgi?id=100663

        Reviewed by Pavel Feldman.

        Since the search bar was removed from the toolbar, the overflow menu appears too far
        to the right, and is unreadable. Fixed this by aligning it relative to the right side
        of the window, rather than the left.

        * inspector/front-end/Toolbar.js:
        (WebInspector.ToolbarDropdown.prototype.show):
        * inspector/front-end/inspector.css:
        (#toolbar-dropdown .toolbar-label):

2012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>

        [CSS Shaders] Implement CustomFilterArrayParameter::blend
        https://bugs.webkit.org/show_bug.cgi?id=96437

        Reviewed by Dean Jackson.

        This patch adds the missing code to blend values within
        an array() when using Custom Filters.

        Test: css3/filters/custom/custom-filter-array-blending.html

        * platform/graphics/filters/CustomFilterArrayParameter.h:
        (WebCore::CustomFilterArrayParameter::blend):

2012-10-29  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Drag and drop a URL in inspector is not working as expected
        https://bugs.webkit.org/show_bug.cgi?id=100527

        Reviewed by Yury Semikhatsky.

        Inhibit custom dragstart handling when the active element is A.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._ondragstart):

2012-10-29  Mike West  <mkwst@chromium.org>

        Web Inspector: Error/warning count is one pixel off.
        https://bugs.webkit.org/show_bug.cgi?id=100660

        Reviewed by Pavel Feldman.

        The error/warning count div had a top padding of 6. That was one pixel
        too many.

        * inspector/front-end/inspector.css:
        (#error-warning-count):

2012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 

        [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
        https://bugs.webkit.org/show_bug.cgi?id=100459

        Reviewed by Hajime Morita.

        Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
        use a utility function which checks both at once.

        We rewrite some lines with such function.

        No new tests, simple refactoring.

        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::ComposedShadowTreeWalker::traverseNode):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::populate):
        (WebCore::ContentDistributor::distribute):
        (WebCore::ContentDistributor::distributeNodeChildrenTo):
        * html/shadow/InsertionPoint.h:
        (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
        we would like to make it similar to the other functions.
        (WebCore::toInsertionPoint):
        (WebCore::isLowerEncapsulationBoundary):

2012-10-29  Patrick Dubroy  <dubroy@chromium.org>

        Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
        https://bugs.webkit.org/show_bug.cgi?id=100373

        Reviewed by Pavel Feldman.

        Fix the background image for the selected toolbar item to be vertically centered.
        Make close button and toolbar overflow button vertically centered for any toolbar
        height.

        * inspector/front-end/Toolbar.js: Remove unused variable.
        * inspector/front-end/inspector.css:
        (.toolbar-item.toggleable):
        (body.compact .toolbar-item.toggleable):
        (.toolbar-item.toggleable.toggled-on):
        (body.compact .toolbar-label):
        (#toolbar-dropdown-arrow):
        (#close-button-left, #close-button-right):
        (.toolbar-item.close-left):
        * inspector/front-end/inspector.html:

2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: Overview bars do not correspond to timeline bars
        https://bugs.webkit.org/show_bug.cgi?id=100500

        Reviewed by Yury Semikhatsky.

        Fix: do not shorten bars by nested records of the same category.

        * inspector/front-end/TimelineOverviewPane.js: Check added.

2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
        https://bugs.webkit.org/show_bug.cgi?id=100530

        Reviewed by Yury Semikhatsky.

        Motivation: cpu-monitoring feature looks like a glitch,
        when it is not supported by browser.

        * inspector/Inspector.json: Added capability getter to protocol.
        * inspector/InspectorClient.h: Added capability getter.
        * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
        * inspector/InspectorTimelineAgent.h: Added capability getter.
        * inspector/front-end/Settings.js: Added capability field.
        * inspector/front-end/TimelinePanel.js: Check capability.
        * inspector/front-end/inspector.js: Forward capability value.

2012-10-29  Antti Koivisto  <antti@apple.com>

        Move seamless stylesheet collecting to DocumentStyleSheetCollection
        https://bugs.webkit.org/show_bug.cgi?id=100655

        Reviewed by Andreas Kling.

        Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        
            Use standard create() pattern.

        (WebCore):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
        
            Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
            iterate to ancestors anymore.

        (WebCore):
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        * dom/DocumentStyleSheetCollection.h:
        (WebCore::DocumentStyleSheetCollection::create):
        (DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
        (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
        
            activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.

        (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):

2012-10-29  Andreas Kling  <kling@webkit.org>

        Don't expose implementation details of StylePropertySet storage.
        <http://webkit.org/b/100644>

        Reviewed by Antti Koivisto.

        Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
        This will allow us to refactor the internal storage of StylePropertySet without
        breaking its API.

        A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.

        * css/CSSComputedStyleDeclaration.cpp:
        * css/CSSParser.cpp:
        * css/CSSParser.h:
        * css/SVGCSSParser.cpp:
        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::asText):
        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
        (WebCore::StylePropertySet::findPropertyWithId):
        (WebCore::StylePropertySet::reportMemoryUsage):
        * css/StylePropertySet.h:
        (StylePropertySet):
        (PropertyReference):
        (WebCore::StylePropertySet::PropertyReference::PropertyReference):
        (WebCore::StylePropertySet::PropertyReference::id):
        (WebCore::StylePropertySet::PropertyReference::isImportant):
        (WebCore::StylePropertySet::PropertyReference::isInherited):
        (WebCore::StylePropertySet::PropertyReference::cssName):
        (WebCore::StylePropertySet::PropertyReference::cssText):
        (WebCore::StylePropertySet::PropertyReference::value):
        (WebCore::StylePropertySet::PropertyReference::propertyInternal):
        (WebCore::StylePropertySet::propertyAt):
        (WebCore::StylePropertySet::propertyAtInternal):
        (WebCore):
        * css/StyleResolver.cpp:
        (WebCore::attributeStylesEqual):
        (WebCore::StyleResolver::applyProperties):
        (WebCore::StyleResolver::resolveVariables):
        * editing/ApplyStyleCommand.cpp:
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::mergeStyle):
        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
        * editing/Editor.cpp:
        * editing/markup.cpp:
        * page/Frame.cpp:
        * svg/SVGFontFaceElement.cpp:

2012-10-29  Kent Tamura  <tkent@chromium.org>

        Move LocaleWin.{cpp,h} to platform/text/win/
        https://bugs.webkit.org/show_bug.cgi?id=100641

        Reviewed by Kentaro Hara.

        We have platform/text/win/ directory. Windows-specific files should be
        in it.
        Note that these files are used only in Chromium-win for now.

        No new tests. This doesn't change any behavior.

        * WebCore.gyp/WebCore.gyp: Fix path names.
        * WebCore.gypi: Ditto.
        * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
        * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.

2012-10-29  Kent Tamura  <tkent@chromium.org>

        Rename Localizer to Locale
        https://bugs.webkit.org/show_bug.cgi?id=100634

        Reviewed by Kentaro Hara.

        - Rename Localizer class to Locale
        - Rename localizer with locale in variable names
        - Rename localizer with locale in function names

        No new tests. This doesn't make any behavior changes.

        * dom/Document.h:
        (WebCore): Declare Locale instead of Localizer.
        (Document):
        - Rename getCachedLocalizer to getCachedLocale.
        - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
        - Rename m_localizerCache to m_localeCache.
        * dom/Document.cpp:
        (WebCore::Document::getCachedLocale): Follow renamings.
        * dom/Element.h:
        (WebCore): Declare Locale instead of Localizer.
        (Element): Rename localizer() to locale().
        * dom/Element.cpp:
        (WebCore::Element::locale): Follow renamings.

        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
        (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
        * html/DateInputType.cpp:
        (WebCore::DateInputType::fixedPlaceholder): Ditto.
        (WebCore::DateInputType::setupLayoutParameters): Ditto.
        * html/DateTimeInputType.cpp:
        (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
        * html/DateTimeLocalInputType.cpp:
        (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
        * html/MonthInputType.cpp:
        (WebCore::MonthInputType::setupLayoutParameters): Ditto.
        * html/NumberInputType.cpp:
        (WebCore::NumberInputType::localizeValue): Ditto.
        (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
        * html/TimeInputType.cpp:
        (WebCore::TimeInputType::localizeValue): Ditto.
        (WebCore::TimeInputType::setupLayoutParameters): Ditto.

        * html/shadow/DateTimeEditElement.h:
        (WebCore): Declare Locale instead of Localizer.
        (LayoutParameters): Rename localizer data member to locale.
        (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField): Ditto.
        * html/shadow/DateTimeNumericFieldElement.h:
        (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
        (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
        * page/PagePopupClient.h:
        (WebCore): Declare Locale instead of Localizer.
        (PagePopupClient): Rename localizer member function to locale.
        * page/PagePopupController.cpp:
        (WebCore::PagePopupController::localizeNumberString): Follow renamings.

        * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
        (DateTimeStringBuilder):
        (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
        (WebCore::Locale::~Locale):
        (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
        (WebCore::Locale::convertToLocalizedNumber):
        (WebCore::Locale::detectSignAndGetDigitRange):
        (WebCore::Locale::matchedDecimalSymbolIndex):
        (WebCore::Locale::convertFromLocalizedNumber):
        (WebCore::Locale::localizedDecimalSeparator):
        (WebCore::Locale::dateTimeFormatWithSeconds):
        (WebCore::Locale::dateTimeFormatWithoutSeconds):
        (WebCore::Locale::formatDateTime):
        * platform/text/PlatformLocale.h: Update the ifndef macro.
        (Locale): Renamed from Localizer. Also, renamed the followings:
         - initializeLocalizerData -> initializeLocaleData
         - setLocalizerData -> setLocaleData
         - m_hasLocalizerData -> m_hasLocaleData
        (WebCore::Locale::Locale):
        (WebCore::Locale::createDefault):
        * platform/text/LocaleICU.cpp: Follow renamings.
        * platform/text/LocaleICU.h: Ditto.
        * platform/text/LocaleNone.cpp: Ditto.
        * platform/text/LocaleWin.cpp: Ditto.
        * platform/text/LocaleWin.h: Ditto.
        * platform/text/mac/LocaleMac.h: Ditto.
        * platform/text/mac/LocaleMac.mm: Ditto.

2012-10-29  Mike West  <mkwst@chromium.org>

        Web Inspector: Error messages lines in console are 1px taller than regular messages
        https://bugs.webkit.org/show_bug.cgi?id=100521

        Reviewed by Pavel Feldman.

        The inspector is adding a 1px bottom border to list elements inside
        a disclosure list. This is unnecessary in the current layout; it's
        causing console messages with stack traces to be one pixel taller than
        other console messages, which this patch fixes.

        As a drive-by, this patch also adjusts the disclosure triangle's
        position to match.

        * inspector/front-end/inspector.css:
        (.outline-disclosure li):
        (.outline-disclosure li.parent::before):

2012-10-29  Mike West  <mkwst@chromium.org>

        Web Inspector: The bubble for repeated errors is misplaced.
        https://bugs.webkit.org/show_bug.cgi?id=100525

        Reviewed by Pavel Feldman.

        The repeated-message bubble is displayed as an inline-block element,
        which works well as long as no stack trace is present. If present, the
        message is wrapped in an 'ol' element displayed as a block, which pushes
        itself down to the next line.

        To avoid that issue, this patch switches the wrapper element to flexbox,
        glorious flexbox.

        * inspector/front-end/inspector.css:
        (.console-message .bubble):
        (.repeated-message .outline-disclosure):
        (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):

2012-10-29  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
        https://bugs.webkit.org/show_bug.cgi?id=100119

        Reviewed by Vsevolod Vlasov.

        Test: inspector/styles/inactive-properties.html

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.createExclamationMark):
        (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
        * inspector/front-end/elementsPanel.css:
        (.styles-section.computed-style .properties li.not-parsed-ok):
        (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
        (.styles-section .properties .not-parsed-ok):

2012-10-29  Eric Seidel  <eric@webkit.org>

        Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
        https://bugs.webkit.org/show_bug.cgi?id=100630

        Reviewed by Ojan Vafai.

        This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
        on my retina MBP (down from 14.3s before this change).
        It's very expensive to walk the DOM each time we call RenderTable::colElement
        so this caches the RenderTableCol* in a vector for easier walking.
        We invalidate the cache any time a RenderTableCol is added or removed from the
        rendering sub-tree to avoid holding a bad pointer.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::invalidateCachedColumns):
        (WebCore):
        (WebCore::RenderTable::addColumn):
        (WebCore::RenderTable::removeColumn):
        (WebCore::RenderTable::updateColumnCache):
        (WebCore::RenderTable::slowColElement):
        * rendering/RenderTable.h:
        (RenderTable):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::insertedIntoTree):
        (WebCore):
        (WebCore::RenderTableCol::willBeRemovedFromTree):
        * rendering/RenderTableCol.h:

2012-10-28  Kent Tamura  <tkent@chromium.org>

        Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
        https://bugs.webkit.org/show_bug.cgi?id=100627

        Reviewed by Yuta Kitamura.

        We'd like to rename Localizer class to Locale class. However we use
        PlatformLocale.cpp and PlatformLocale.h as their file names because
        <locale.h> exists in the C standard.  In this patch, we rename only file
        names. We're going to rename the class name later.

        No new tests. This doesn't make any behavior change.

        * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
        * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
        Follow the Localizer.h -> PlatformLocale.cpp renaming.

        * CMakeLists.txt: Follow the file name renaming.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * dom/Document.cpp: Ditto.
        * html/BaseDateAndTimeInputType.cpp: Ditto.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
        * html/DateInputType.cpp: Ditto.
        * html/DateTimeInputType.cpp: Ditto.
        * html/DateTimeLocalInputType.cpp: Ditto.
        * html/MonthInputType.cpp: Ditto.
        * html/NumberInputType.cpp: Ditto.
        * html/TimeInputType.cpp: Ditto.
        * html/shadow/DateTimeEditElement.cpp: Ditto.
        * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
        * page/PagePopupController.cpp: Ditto.
        * platform/text/LocaleICU.h: Ditto.
        * platform/text/LocaleNone.cpp: Ditto.
        * platform/text/LocaleWin.h: Ditto.
        * platform/text/mac/LocaleMac.h: Ditto.

2012-10-28  Shinya Kawanaka  <shinyak@chromium.org>

        The shadow element is not reprojected to a nested ShadowRoot.
        https://bugs.webkit.org/show_bug.cgi?id=99228

        Reviewed by Dimitri Glazkov.

        We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.

        First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
        And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
        If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
        the InsertionPoint in older ShadowDOM is chosen.

        We also fix ComposedShadowTreeWalker to consider shadow reprojection.

        Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
               fast/dom/shadow/shadow-reprojection-click.html
               fast/dom/shadow/shadow-reprojection-dynamic.html
               fast/dom/shadow/shadow-reprojection-fallback.html
               fast/dom/shadow/shadow-reprojection.html
               fast/dom/shadow/shadow-reprojection2.html

        * css/StyleResolver.cpp:
        (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
        a node is distributed. So we don't have to trace shadow insertion point anymore here.
        (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
        we don't have any parentElement. The parent node is a ShadowRoot in that case.
        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
        (WebCore):
        (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
        (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
        (WebCore::ComposedShadowTreeWalker::traverseParent):
        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
        to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
        (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
        In that case, we should not update m_distributedNode.
        * dom/ElementShadow.cpp:
        (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
        we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
        is not correct now due to shadow reprojection.
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
        distributed nodes.
        (WebCore):
        (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
        we have to resolve a shadow InsertionPoint
        (WebCore::ContentDistributor::distributeNodeChildrenTo):
        * html/shadow/ContentDistributor.h:
        (ContentDistributor):
        * html/shadow/HTMLShadowElement.h:
        (WebCore::toHTMLShadowElement):
        (WebCore):
        * html/shadow/InsertionPoint.h:
        (WebCore::parentNodeForDistribution):
        (WebCore::parentElementForDistribution):
        (WebCore):

2012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Webkit adds a boundary to the Content-Type: text/plain POST header
        https://bugs.webkit.org/show_bug.cgi?id=100445

        Reviewed by Kent Tamura.

        Fixed a bug where an empty boundary parameter was added to Content-Type
        header when POSTing forms with enctype=text/plain.

        Test: http/tests/misc/form-post-textplain.html

        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
        Content-Type only when a boundary string is generated.

2012-10-28  Philip Rogers  <pdr@google.com>

        Cache calcMode() value for SVG animations.
        https://bugs.webkit.org/show_bug.cgi?id=99694

        Reviewed by Eric Seidel.

        This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
        of recalculating its value on every call. On a simple test of 100 rectangles with 100
        animations each, calls to calcMode() account for 3% of the total animation. After this
        patch, calcMode() no longer appears in animation profiles at all.

        No new tests as this functionality is covered by existing tests.

        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):

            The default calcMode for all animation types is linear except AnimateMotion,
            which defaults to CalcModePaced.
            See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::SVGAnimationElement):
        (WebCore::SVGAnimationElement::isSupportedAttribute):
        (WebCore::SVGAnimationElement::parseAttribute):
        (WebCore::SVGAnimationElement::setCalcMode):
        * svg/SVGAnimationElement.h:
        (WebCore::SVGAnimationElement::calcMode):
        (WebCore::SVGAnimationElement::setCalcMode):
        (SVGAnimationElement):

2012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>

        Get rid of StyleResolver state related to unknown pseudo-elements.
        https://bugs.webkit.org/show_bug.cgi?id=100582

        Reviewed by Eric Seidel.

        All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
        We can just get rid of most of this code in StyleResolver.

        At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
        or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.

        No change in behavior, covered by existing tests.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
        (WebCore::SelectorChecker::checkOneSelector): Ditto.
        * css/SelectorChecker.h:
        (SelectorChecker): Ditto.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver): Ditto.
        (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
        (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
        (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
        (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
        (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
        * css/StyleResolver.h:
        (StyleResolver): Removed now-unnecessary member.

2012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132696.
        http://trac.webkit.org/changeset/132696
        https://bugs.webkit.org/show_bug.cgi?id=100609

        Needs a bit more clean-up on Chrome Web UI side. (Requested by
        dglazkov on #webkit).

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateFirstLetter):
        * rendering/RenderListBox.h:
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::updateBeforeAfterContent):

2012-10-27  Alexey Proskuryakov  <ap@apple.com>

        All tests crash in WebKit1 mode
        https://bugs.webkit.org/show_bug.cgi?id=100602

        Reviewed by Sam Weinig.

        * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
        assertion - if this function is called twice, it should be with the same strategy.

2012-10-27  Anders Carlsson  <andersca@apple.com>

        Fix AVFoundation build.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):

2012-10-27  David Barton  <dbarton@mathscribe.com>

        ASSERTION FAILED: m_next in LayoutState.cpp
        https://bugs.webkit.org/show_bug.cgi?id=99796

        Reviewed by Eric Seidel.

        Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
        it must ensure a layoutState exists. We disable it in any case, since we are just calculating
        metrics here, and the final layout may well happen again.

        No new tests. I don't know how to create an automated test for this. The crashes users are
        seeing are flaky.

        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):

2012-10-27  David Barton  <dbarton@mathscribe.com>

        [MathML] Improve some addChild methods
        https://bugs.webkit.org/show_bug.cgi?id=98791

        Reviewed by Eric Seidel.

        MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
        number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
        want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
        renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
        giving them to the chromium fuzzers.
        
        It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
        tree after later removeChild calls.

        Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
        msub/sup elements, in mathml/presentation/m*-changed.xhtml.

        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::addChild):
            - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
              work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
              added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
              numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::addChild):
            - A bit of bullet-proofing for the fuzzers.
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::addChild):
            - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.

2012-10-27  Levi Weintraub  <leviw@chromium.org>

        Background images can incorrectly repeat with sub-pixel layout
        https://bugs.webkit.org/show_bug.cgi?id=94622

        Reviewed by Emil A Eklund.

        Attempting to better match author expectations when painting tiled background images. When under
        the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
        differ depending on its location. This change looks at the size of the scaled tiled background
        image size, and either ceils or floors that value depending on if tiling that value will
        result in us being one pixel or less short of covering the background size. This is a heuristic,
        as sub-pixel/zooming isn't specced.

        Test: fast/sub-pixel/scaled-background-image.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::applySubPixelHeuristicForTileSize):
        (WebCore):
        (WebCore::RenderBoxModelObject::calculateFillTileSize):

2012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132725.
        http://trac.webkit.org/changeset/132725
        https://bugs.webkit.org/show_bug.cgi?id=100596

        it broke linking on chromium debug bots (Requested by loislo
        on #webkit).

        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::addPlatformComponentsInfo):
        (WebCore):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * platform/MemoryUsageSupport.cpp:
        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
        * platform/MemoryUsageSupport.h:
        (ComponentInfo):
        (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
        (MemoryUsageSupport):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:
        (PlatformMemoryTypes):
        * platform/chromium/MemoryUsageSupportChromium.cpp:
        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
        * platform/qt/MemoryUsageSupportQt.cpp:
        (WebCore::MemoryUsageSupport::memoryUsageByComponents):

2012-10-27  Dan Bernstein  <mitz@apple.com>

        REAL_PLATFORM_NAME build setting is no longer needed
        https://bugs.webkit.org/show_bug.cgi?id=100587

        Reviewed by Mark Rowe.

        Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
        to PLATFORM_NAME.

        * Configurations/Base.xcconfig:
        * Configurations/CompilerVersion.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/FeatureDefines.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebCore.xcconfig:

2012-10-27  Tony Chang  <tony@chromium.org>

        Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
        https://bugs.webkit.org/show_bug.cgi?id=100564

        Reviewed by Adam Barth.

        Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
        Also fix a bug where we didn't reset these settings properly.

        No new tests, this is covered by existing media/track tests.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
        (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
        * testing/InternalSettings.h:
        * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
        * testing/Internals.cpp: Remove code.
        * testing/Internals.h: Remove code.
        * testing/Internals.idl: Remove code.

2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
        https://bugs.webkit.org/show_bug.cgi?id=100515

        Reviewed by Yury Semikhatsky.

        I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.

        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * platform/MemoryUsageSupport.cpp:
        (WebCore::MemoryUsageSupport::reportMemoryUsage):
        * platform/MemoryUsageSupport.h:
        (MemoryUsageSupport):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:
        (PlatformMemoryTypes):
        * platform/chromium/MemoryUsageSupportChromium.cpp:
        (reportMemoryUsage):
        (WebCore::reportGlyphCache):
        (WebCore):
        (WebCore::MemoryUsageSupport::reportMemoryUsage):
        * platform/qt/MemoryUsageSupportQt.cpp:
        (WebCore::MemoryUsageSupport::reportMemoryUsage):

2012-10-26  Philip Rogers  <pdr@google.com>

        Prevent NaN offset values in ElementTimeControl.
        https://bugs.webkit.org/show_bug.cgi?id=100322

        Reviewed by Abhishek Arya.

        NaN values can cause ElementTimeControl to go back in time!
        If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
        subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
        because NaN values are not properly sorted. NaN SMILTime values
        should not be allowed at all, so this patch adds a check for them in
        ElementTimeControl's setters.
 
        This patch also adds preventative asserts to catch if SMILTime is ever
        initialized with NaN, or if addEndTime/addBeginTime are ever called
        with NaN values.

        Test: svg/custom/elementTimeControl-nan-crash.html

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::beginElementAt):
        (WebCore::SVGAnimationElement::endElementAt):
        * svg/animation/SMILTime.h:
        (WebCore::SMILTime::SMILTime):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::addBeginTime):
        (WebCore::SVGSMILElement::addEndTime):

2012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Browser prematurely sends wrong credentials
        https://bugs.webkit.org/show_bug.cgi?id=100585

        Reviewed by Yong Li.

        Manually revert the patch for bug 96362, which causes regressions and the right patch has been
        submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
        revert.

        No new tests. The test is coverted by patch for 100448.

        * platform/network/blackberry/CredentialBackingStore.cpp:
        * platform/network/blackberry/CredentialBackingStore.h:
        (CredentialBackingStore):
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::NetworkManager::startJob):

2012-10-26  Brady Eidson  <beidson@apple.com>

        Have NetworkProcess manage resource load scheduling.
        https://bugs.webkit.org/show_bug.cgi?id=100479

        Reviewed by Alexey Proskuryakov.

        Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
        to be overridden by WebKit's implementation.

        No new tests (No change in Core behavior).

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

        * loader/ResourceLoadScheduler.cpp:
        (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
        (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
        (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
          here so derived classes can do it indirectly.
        (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
          ResourceLoader::start() which only ResourceLoadScheduler can do.

        * loader/ResourceLoadScheduler.h:
        (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
        (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
        (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.

        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
        (WebCore::ResourceLoader::request): Make public.
        (ResourceLoader):

2012-10-26  Chris Rogers  <crogers@google.com>

        Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
        https://bugs.webkit.org/show_bug.cgi?id=100170

        Reviewed by Kenneth Russell.

        AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
        Sample-based synthesis is a very common technique which requires "internal" loop-points.
        For example, the first part of the sample data might represent the attack portion of
        a synthesized instrument, which then enters a loop portion.

        Tests: webaudio/audiobuffersource-loop-comprehensive.html
               webaudio/audiobuffersource-loop-points.html

        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
        (WebCore::AudioBufferSourceNode::process):
        (WebCore::AudioBufferSourceNode::renderFromBuffer):
        * Modules/webaudio/AudioBufferSourceNode.h:
        (AudioBufferSourceNode):
        (WebCore::AudioBufferSourceNode::loopStart):
        (WebCore::AudioBufferSourceNode::loopEnd):
        (WebCore::AudioBufferSourceNode::setLoopStart):
        (WebCore::AudioBufferSourceNode::setLoopEnd):
        * Modules/webaudio/AudioBufferSourceNode.idl:

2012-10-26  Daniel Cheng  <dcheng@chromium.org>

        dragover's default action should prevent drop for file drags
        https://bugs.webkit.org/show_bug.cgi?id=79173

        Reviewed by Tony Chang.

        During a file drag, we need to keep track of whether or not the document has cancelled the
        dragover action. We should only send a drop event if the dragover event was cancelled; this
        matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
        from the spec are the sections pertaining to dragover and drop events at:
        http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model

        Test: fast/events/only-valid-drop-targets-receive-file-drop.html

        * page/DragController.cpp:
        (WebCore::DragController::performDrag):
        (WebCore::DragController::dragEnteredOrUpdated):
        (WebCore::DragController::tryDocumentDrag):
        * page/DragController.h:
        (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
                          and remove the corresponding getter/setter.

2012-10-26  Nico Weber  <thakis@chromium.org>

        Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
        https://bugs.webkit.org/show_bug.cgi?id=94756

        Reviewed by Dirk Schulze.

        The function has an early exit for !simpleDuration.value(), so
        !simpleDuration.value() always is 0 when passed as second parameter to
        fmod(), which means fmod() always returns NaN, which always evaluates
        to true. Simplify the code by removing that explicit check.

        No observable behavior change.

        Covered by existing svg tests.

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):

2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132695.
        http://trac.webkit.org/changeset/132695
        https://bugs.webkit.org/show_bug.cgi?id=100581

        caused 20+ test crashes on bots (Requested by estes on
        #webkit).

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::suspendPostAttachCallbacks):
        (WebCore::ContainerNode::resumePostAttachCallbacks):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::loadNow):
        * loader/ResourceLoadScheduler.cpp:
        (WebCore::resourceLoadScheduler):
        * loader/ResourceLoadScheduler.h:
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::releaseResources):
        (WebCore::ResourceLoader::willSendRequest):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::load):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::performPostLoadActions):

2012-10-26  Vincent Scheib  <scheib@chromium.org>

        Unreviewed, rolling out r132702.
        http://trac.webkit.org/changeset/132702
        https://bugs.webkit.org/show_bug.cgi?id=100322

        Compile error on Chromium Linux dbg builder (and others)

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::beginElementAt):
        (WebCore::SVGAnimationElement::endElementAt):
        * svg/animation/SMILTime.h:
        (WebCore::SMILTime::SMILTime):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::addBeginTime):
        (WebCore::SVGSMILElement::addEndTime):

2012-10-26  Philip Rogers  <pdr@google.com>

        Prevent NaN offset values in ElementTimeControl.
        https://bugs.webkit.org/show_bug.cgi?id=100322

        Reviewed by Abhishek Arya.

        NaN values can cause ElementTimeControl to go back in time!
        If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
        subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
        because NaN values are not properly sorted. NaN SMILTime values
        should not be allowed at all, so this patch adds a check for them in
        ElementTimeControl's setters.

        This patch also adds preventative asserts to catch if SMILTime is ever
        initialized with NaN, or if addEndTime/addBeginTime are ever called
        with NaN values.

        Test: svg/custom/elementTimeControl-nan-crash.html

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::beginElementAt):
        (WebCore::SVGAnimationElement::endElementAt):
        * svg/animation/SMILTime.h:
        (WebCore::SMILTime::SMILTime):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::addBeginTime):
        (WebCore::SVGSMILElement::addEndTime):

2012-10-26  Tony Chang  <tony@chromium.org>

        Move non-Settings Inspector methods from internals.settings to internals
        https://bugs.webkit.org/show_bug.cgi?id=100392

        Reviewed by Adam Barth.

        These methods don't have to do with the WebCore Settings object, so move them up to internals.
        I moved the reset code from InternalSettings to Internals.

        No new tests, this is just a rename. Existing tests should pass.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
        (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
        * testing/InternalSettings.h:
        * testing/InternalSettings.idl:
        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
        methods in WTR.
        (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
        (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
        * testing/Internals.h:
        * testing/Internals.idl:
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.

2012-10-26  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Notification should be sent when accessibilityIsIgnored changes
        https://bugs.webkit.org/show_bug.cgi?id=99547

        Reviewed by Chris Fleizach.

        Adds a new flag in AccessibilityObject that keeps track of the most recent
        value of accessibilityIsIgnored(). After certain events such as an ARIA
        attribute change or content change, checks the new value of
        accessibilityIsIgnored() and posts a "children changed" notification on the
        parent node if it changed, making sure the parent recomputes its vector of
        (unignored) children.

        Also moves handling of attribute changes to AXObjectCache, and sends
        notifications for some attribute changes that were previously silent. On
        Chromium, all changes to an accessibility object's attributes should
        result in some notification.

        Some tests would have broken because an AccessibilityScrollView was created
        and holding a reference to a ScrollView for an iframe after it was deleted,
        so this change switches AccessibilityScrollView to hold a weak reference
        to ScrollView instead.

        Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
               platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
               platform/chromium/accessibility/text-change-notification.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::focusedUIElementForPage):
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::textChanged):
        (WebCore):
        (WebCore::AXObjectCache::childrenChanged):
        (WebCore::AXObjectCache::handleAriaRoleChanged):
        (WebCore::AXObjectCache::handleAttributeChanged):
        (WebCore::AXObjectCache::labelChanged):
        (WebCore::AXObjectCache::recomputeIsIgnored):
        * accessibility/AXObjectCache.h:
        (AXObjectCache):
        (WebCore::AXObjectCache::childrenChanged):
        (WebCore::AXObjectCache::textChanged):
        (WebCore::AXObjectCache::handleAttributeChanged):
        (WebCore::AXObjectCache::recomputeIsIgnored):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::insertChild):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::AccessibilityObject):
        (WebCore::AccessibilityObject::cachedIsIgnoredValue):
        (WebCore):
        (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
        (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::textChanged):
        (AccessibilityObject):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
        (WebCore::AccessibilityRenderObject::textChanged):
        (WebCore::AccessibilityRenderObject::addHiddenChildren):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
        (WebCore):
        (WebCore::AccessibilityScrollView::detach):
        (WebCore::AccessibilityScrollView::isAttachment):
        (WebCore::AccessibilityScrollView::widgetForAttachmentView):
        (WebCore::AccessibilityScrollView::updateScrollbars):
        (WebCore::AccessibilityScrollView::webAreaObject):
        (WebCore::AccessibilityScrollView::elementRect):
        (WebCore::AccessibilityScrollView::documentFrameView):
        (WebCore::AccessibilityScrollView::parentObject):
        (WebCore::AccessibilityScrollView::parentObjectIfExists):
        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityScrollView::scrollTo):
        * accessibility/AccessibilityScrollView.h:
        (WebCore::AccessibilityScrollView::scrollView):
        (AccessibilityScrollView):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::isDataTable):
        * accessibility/chromium/AXObjectCacheChromium.cpp:
        (WebCore::AXObjectCache::postPlatformNotification):
        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::deleteLineBoxTree):
        (WebCore::RenderBlock::createAndAppendRootInlineBox):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleWillChange):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::setText):

2012-10-26  Joshua Bell  <jsbell@chromium.org>

        [WebKitIDL] Optional dictionary types should have default values of empty dictionary
        https://bugs.webkit.org/show_bug.cgi?id=100547

        Reviewed by Adam Barth.

        Per WebIDL, "Optional dictionary type arguments are always considered to have a default
        value of an empty dictionary." WebKitIDL already supported this via the extended attribute
        [Optional=DefaultIsUndefined] but make this the default for Dictionary.

        Binding test expectations updated.

        * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
        (DirectoryEntry):
        * Modules/indexeddb/IDBDatabase.h: Remove overloads.
        (IDBDatabase):
        * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
        (IDBObjectStore):
        * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
        * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (GenerateParametersCheck):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.

2012-10-26  Vincent Scheib  <scheib@chromium.org>

        Generated should not be supported for things with a shadow
        https://bugs.webkit.org/show_bug.cgi?id=98836

        Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
        Initial rollout was speculative and was shown not to be related to crashes.
        Change author: Elliott Sprehn  <esprehn@chromium.org>

        As far as CSS is concerned inputs and things with shadow content inside 
        shouldn't support pseudo elements like :before, :after or :first-letter.
        Neither Gecko or Presto supports it, and we only accidentally supported 
        it. 
 
        Until the spec tells us what to do we should disable support. This is 
        also neccesary because the new generated content implementation doesn't 
        support shadows. 

        Test: fast/forms/pseudo-elements.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateFirstLetter):
        * rendering/RenderListBox.h:
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::updateBeforeAfterContent):

2012-10-26  Brady Eidson  <beidson@apple.com>

        Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
        <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554

        Reviewed by Alexey Proskuryakov.

        This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
        spots that call resourceLoadScheduler().

        As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
        to get out of sync.

        The fix that also results in less #ifdefs scattered throughout the code is to use a single 
        choke point for all ResourceLoadScheduler access.

        No new tests 
        (No change of behavior for the default config, not testable at this time in the repro config)

        Add a single choke point for accessing the correct ResourceLoadScheduler:
        * loader/ResourceLoadScheduler.cpp:
        (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
        (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to

        Revert back to using that single choke point everywhere:
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::suspendPostAttachCallbacks):
        (WebCore::ContainerNode::resumePostAttachCallbacks):

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::loadNow):

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::releaseResources):
        (WebCore::ResourceLoader::willSendRequest):

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::load):

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::performPostLoadActions):

2012-10-26  Elliott Sprehn  <esprehn@chromium.org>

        Try to fix the windows build
        https://bugs.webkit.org/show_bug.cgi?id=100556

        Reviewed by Eric Seidel.

        Touch files by adding whitespace to try and make the windows
        build bot regenerate files.

        No new tests, just kick the bot.

        * dom/DOMAllInOne.cpp:
        * html/HTMLElementsAllInOne.cpp:
        * html/shadow/TextControlInnerElements.cpp:

2012-10-26  Rob Buis  <rbuis@rim.com>

        [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
        https://bugs.webkit.org/show_bug.cgi?id=100518

        PR 231732

        Reviewed by Yong Li.

        Use the new resource/image loading abstraction ResourceStore.

        * platform/graphics/blackberry/ImageBlackBerry.cpp:
        (WebCore::Image::loadPlatformResource):

2012-10-26  Bear Travis  <betravis@adobe.com>

        [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
        https://bugs.webkit.org/show_bug.cgi?id=98189

        Reviewed by Dirk Schulze.

        The initial code assumed that each block created a new layout state, such that
        LayoutState::layoutOffset would be specific to each block child of a shape-inside.
        Typically, however, block children of a shape-inside do not create a new layout state,
        and therefore we use the current element's offset instead.

        Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
        rather than LayoutState::layoutOffset::width/height and logicalTop.

2012-10-26  Elliott Sprehn  <esprehn@chromium.org>

        Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
        https://bugs.webkit.org/show_bug.cgi?id=100397

        Reviewed by Ojan Vafai.

        Use Node custom callbacks to support the non-renderer style caching for option
        and optgroup eliminating the need for setRenderStyle.

        setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
        so they could store their RenderStyle even though they have no renderer. This
        means all style setting went through the virtual call to setRenderStyle, and it
        also hid the if statement protecting against null renderers meaning we end up
        checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
        up recalcStyle to be more clear about what's going on.

        No new tests needed, this is just a refactor.

        * dom/Element.cpp:
        (WebCore::Element::pseudoStyleCacheIsInvalid):
        (WebCore::Element::recalcStyle):
        * dom/Node.cpp:
        (WebCore::Node::createRenderer):
        (WebCore::Node::setRenderStyle):
            Removed this method because it was only here to support HTMLOptionElement
            and HTMLOptGroupElement. Instead we can use node custom callbacks.
        * dom/Node.h:
        (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
        * dom/NodeRenderStyle.h:
        (WebCore::Node::renderStyle):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
        (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
        (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
        (WebCore::HTMLOptGroupElement::nonRendererStyle):
        (WebCore::HTMLOptGroupElement::customStyleForRenderer):
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::HTMLOptionElement):
        (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
        (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
        (WebCore::HTMLOptionElement::nonRendererStyle):
        (WebCore::HTMLOptionElement::customStyleForRenderer):
        (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
        * html/HTMLOptionElement.h:

2012-10-26  Dirk Schulze  <krit@webkit.org>

        -webkit-clip-path property should just reference clipPath
        https://bugs.webkit.org/show_bug.cgi?id=100531

        Reviewed by Eric Seidel.

        The -webkit-clip-path property should just reference clipPath. Added a check for that.

        Test: css3/masking/clip-path-reference-of-fake-clipPath.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents):

2012-10-26  Aaron Colwell  <acolwell@chromium.org>

        Remove the circular reference between TextTrack and TextTrackCue
        https://bugs.webkit.org/show_bug.cgi?id=100300

        Reviewed by Eric Carlson.

        Changed TextTrackCue.m_track to a normal pointer to break the circular
        reference that was keeping both objects from ever getting deleted.

        No new tests. This simply fixes a memory leak.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::~TextTrack):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::TextTrackCue):
        (WebCore::TextTrackCue::~TextTrackCue):
        (WebCore::TextTrackCue::track):
        (WebCore::TextTrackCue::setTrack):
        * html/track/TextTrackCue.h:
        (TextTrackCue):

2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
        https://bugs.webkit.org/show_bug.cgi?id=100535

        Reviewed by Pavel Feldman.

        Added SourceMappingChanged event to UISourceCode and made
        JavaScriptSourceFrame update ScriptFile events listeners on it.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
        (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.setSourceMapping):

2012-10-26  Vincent Scheib  <scheib@chromium.org>

        Unreviewed, rolling out r132644.
        http://trac.webkit.org/changeset/132644
        https://bugs.webkit.org/show_bug.cgi?id=100497

        Causes webkit_unit_tests
        MemoryInstrumentationTest.ImageObserver to fail.

        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::reportMemoryUsage):
        * platform/network/ResourceRequestBase.h:
        (ResourceRequestBase):
        * platform/network/chromium/ResourceRequest.cpp:
        * platform/network/chromium/ResourceRequest.h:

2012-10-26  Zeno Albisser  <zeno@webkit.org>

        [Qt] MiniBrowser segfaults on exit after using WebGL.
        https://bugs.webkit.org/show_bug.cgi?id=100523

        The display connection must not be closed before
        destroying the offscreen window.
        Therefore opening the connection is moved to the
        getXWindow() function. And closing the connection
        is being moved to the destructor of the offscreen window.

        Reviewed by Kenneth Rohde Christiansen.


        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::getXWindow):
        (OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::display):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):

2012-10-26  Parth Patel  <parpatel@rim.com>

        [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
        Generic ThreadUnsafe Singleton
        https://bugs.webkit.org/show_bug.cgi?id=100529

        Reviewed by Yong Li.

        No new tests added as there was no behavioural change.

        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore):
        * platform/network/blackberry/NetworkManager.h:
        (NetworkManager):

2012-10-26  Mike West  <mkwst@chromium.org>

        Web Inspector: Fix log-type icon alignment.
        https://bugs.webkit.org/show_bug.cgi?id=100520

        Reviewed by Yury Semikhatsky.

        The icons are just a pixel or two off, and it's driving me nuts.

        * inspector/front-end/inspector.css:
        (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
        (.console-warning-level::before):

2012-10-26  Erik Arvidsson  <arv@chromium.org>

        Replaceable attributes should also have readonly
        https://bugs.webkit.org/show_bug.cgi?id=91768

        Reviewed by Adam Barth.

        This updates the code generators for JSC and V8 to handle this case correctly.

        * Modules/intents/DOMWindowIntents.idl:
        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/V8/V8TestObj.cpp:
        * page/DOMWindow.idl:
        * workers/WorkerContext.idl:

2012-10-26  Nico Weber  <thakis@chromium.org>

        Clear m_orientation in FrameData::clear() for skia
        https://bugs.webkit.org/show_bug.cgi?id=100456

        Reviewed by Stephen White.

        clear() is only called by the FrameData destructor and for multi-image
        images in BitmapImage::destroyDecodedData(). Multi-frame images don't
        have exif data, so this patch should have no effect in practice. It
        makes the skia code match the CG code in BitmapImageCG.cpp though.

        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::FrameData::clear):

2012-10-26  Florin Malita  <fmalita@chromium.org>

        Crash on loading SVG filter resource on HTML element
        https://bugs.webkit.org/show_bug.cgi?id=100491

        Reviewed by Dirk Schulze.

        Skip non-filter elements referenced via -webkit-filter.

        Test: svg/filters/filter-reference-crash.html

        * rendering/RenderLayerFilterInfo.cpp:
        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):

2012-10-26  Antti Koivisto  <antti@apple.com>

        Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
        https://bugs.webkit.org/show_bug.cgi?id=100514

        Reviewed by Anders Carlsson.

        DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
        the document. The function is relatively slow.
        
        This patch caches the result of the last check for 5 seconds. Based on code comments
        prefetching is disabled with proxies due to regressing performance with some configurations.
        Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.

        * platform/network/DNSResolveQueue.cpp:
        (WebCore::DNSResolveQueue::DNSResolveQueue):
        
            Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
            
        (WebCore):
        (WebCore::DNSResolveQueue::isUsingProxy):
        (WebCore::DNSResolveQueue::add):
        (WebCore::DNSResolveQueue::fired):
        * platform/network/DNSResolveQueue.h:
        (DNSResolveQueue):

2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132662.
        http://trac.webkit.org/changeset/132662
        https://bugs.webkit.org/show_bug.cgi?id=100528

        It is not necessary any more. (Requested by loislo on
        #webkit).

        * platform/qt/MemoryUsageSupportQt.cpp:
        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
        (WebCore):

2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed build fix for Qt builders.

        * platform/qt/MemoryUsageSupportQt.cpp:

2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed, rolling out r132658.
        http://trac.webkit.org/changeset/132658
        https://bugs.webkit.org/show_bug.cgi?id=100515

        It broke the Qt build

        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::addPlatformComponentsInfo):
        (WebCore):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * platform/MemoryUsageSupport.cpp:
        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
        * platform/MemoryUsageSupport.h:
        (ComponentInfo):
        (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
        (MemoryUsageSupport):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:
        (PlatformMemoryTypes):
        * platform/chromium/MemoryUsageSupportChromium.cpp:
        (WebCore::MemoryUsageSupport::memoryUsageByComponents):

2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
        https://bugs.webkit.org/show_bug.cgi?id=100522

        Reviewed by Pavel Feldman.

        Method appendApplicableItems now receives event as a parameter.
        HandlerRegistry now makes sure that it is not called more than once for certain context menu event.

        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
        (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
        (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
        * inspector/front-end/CallStackSidebarPane.js:
        (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
        * inspector/front-end/ConsoleView.js:
        * inspector/front-end/ContextMenu.js:
        (WebInspector.ContextMenu):
        (WebInspector.ContextMenu.prototype.show):
        (WebInspector.ContextMenu.prototype.appendApplicableItems):
        (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
        * inspector/front-end/CookieItemsView.js:
        (WebInspector.CookieItemsView.prototype._contextMenu):
        * inspector/front-end/DOMBreakpointsSidebarPane.js:
        (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype._contextMenuInDataTable):
        * inspector/front-end/DefaultTextEditor.js:
        (WebInspector.DefaultTextEditor.prototype._contextMenu):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
        * inspector/front-end/ElementsPanelDescriptor.js:
        (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
        * inspector/front-end/HandlerRegistry.js:
        (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
        * inspector/front-end/ImageView.js:
        (WebInspector.ImageView.prototype._contextMenu):
        * inspector/front-end/NavigatorView.js:
        (WebInspector.NavigatorView.prototype.handleContextMenu):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._contextMenu):
        * inspector/front-end/NetworkPanelDescriptor.js:
        (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
        (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
        (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
        (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
        (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
        * inspector/front-end/ScriptsPanelDescriptor.js:
        (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._contextMenu):
        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
        (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):

2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
        https://bugs.webkit.org/show_bug.cgi?id=100515

        Reviewed by Yury Semikhatsky.

        I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.

        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * platform/MemoryUsageSupport.cpp:
        (WebCore::MemoryUsageSupport::reportMemoryUsage):
        * platform/MemoryUsageSupport.h:
        (MemoryUsageSupport):
        * platform/PlatformMemoryInstrumentation.cpp:
        (WebCore):
        * platform/PlatformMemoryInstrumentation.h:
        (PlatformMemoryTypes):
        * platform/chromium/MemoryUsageSupportChromium.cpp:
        (reportMemoryUsage):
        (WebCore::reportGlyphCache):
        (WebCore):
        (WebCore::MemoryUsageSupport::reportMemoryUsage):

2012-10-26  Kent Tamura  <tkent@chromium.org>

        [Chromium] Build fix for r132650.
        https://bugs.webkit.org/show_bug.cgi?id=100482

        * platform/text/LocaleWin.cpp:
        (WebCore::LocaleWin::timeFormat):

2012-10-26  Yury Semikhatsky  <yurys@chromium.org>

        [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
        https://bugs.webkit.org/show_bug.cgi?id=100517

        Reviewed by Alexander Pavlov.

        * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
        pointers to WrapperTypeInfo objects as they are static fields and belong to
        the data segment.
        (WTF):

2012-10-26  Kent Tamura  <tkent@chromium.org>

        Refactor Localizer-related classes.
        https://bugs.webkit.org/show_bug.cgi?id=100482

        Reviewed by Kentaro Hara.

        - Localizer has unused code
         Localizer should have function implementations only if they are used in
         multiple subclasses.
        - Some Localizer subclasses hide Localizer data members
        - Should use String::isNull to check initialization-or-not

        No new tests. This should not change any behavior.

        * platform/text/Localizer.h:
        (Localizer):
        - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
        - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
          m_timeAMPMLabels
        * platform/text/Localizer.cpp:
        Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.

        * platform/text/LocaleICU.h:
        (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::initializeDateTimeFormat):
        Use new data members instead of Localizer data members.
        (WebCore::LocaleICU::dateFormat): Use isNull.

        * platform/text/LocaleNone.cpp:
        (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
        implementations, and m_timeAMPMLabels.
        (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
        (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
        (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".

        * platform/text/LocaleWin.h:
        (LocaleWin): Add m_timeFormatWithSeconds.
        * platform/text/LocaleWin.cpp:
        (WebCore::LocaleWin::dateFormat): Use isNull.
        (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.

        * platform/text/mac/LocaleMac.h:
        (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::timeFormat): Follow the renaming.
        (WebCore::LocaleMac::shortTimeFormat): Ditto.

2012-10-26  Kent Tamura  <tkent@chromium.org>

        Crash in PagePopupController by events after WebPagePopupImpl::closePopup
        https://bugs.webkit.org/show_bug.cgi?id=100454

        Reviewed by Hajime Morita.

        No new tests. The bug is timing-dependent.

        * page/DOMWindowPagePopup.cpp:
        (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
        Calls clearPagePopupClient for the associalated PagePopupController object.
        * page/PagePopupController.cpp:
        (WebCore::PagePopupController::setValueAndClosePopup):
        Do nothing if m_popupClient is 0.
        (WebCore::PagePopupController::localizeNumberString): Ditto.
        (WebCore::PagePopupController::clearPagePopupClient): Added.
        * page/PagePopupController.h:
        (PagePopupController): Declare clearPagePopupClient.

2012-10-25  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
        https://bugs.webkit.org/show_bug.cgi?id=100220

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.UserAgentSettingsTab):

2012-10-26  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
        https://bugs.webkit.org/show_bug.cgi?id=100497

        Reviewed by Alexander Pavlov.

        Added memory reporting method to Chromium implementation of ResourceRequest.

        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
        on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
        rather make ResourceRequestBase::reportMemoryUsage virtual and override it
        in the descendant but ResourceRequestBase doesn't have any virtual methods
        and shouldn't be used directly (ResourceRequest should be used instead).
        * platform/network/ResourceRequestBase.h:
        (ResourceRequestBase):
        * platform/network/chromium/ResourceRequest.cpp:
        (WebCore::ResourceRequest::reportMemoryUsage):
        (WebCore):
        * platform/network/chromium/ResourceRequest.h:
        (ResourceRequest):

2012-10-26  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Remove the on-hover highlighting of console messages
        https://bugs.webkit.org/show_bug.cgi?id=100511

        Reviewed by Pavel Feldman.

        This clashes with the hovered element highlight in console messages.

        * inspector/front-end/inspector.css:
        (ol.watch-expressions > li.hovered):

2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132612.
        http://trac.webkit.org/changeset/132612
        https://bugs.webkit.org/show_bug.cgi?id=100512

        Crashes fast/events/tabindex-focus-blur-all.html in debug mode
        (Requested by pfeldman on #webkit).

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::styleDidChange):
        (WebCore::RenderTableCol::updateFromElement):
        (WebCore::RenderTableCol::computePreferredLogicalWidths):
        * rendering/RenderTableCol.h:
        (RenderTableCol):

2012-10-26  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: fast return upon setting the same dock side.
        https://bugs.webkit.org/show_bug.cgi?id=100510

        Reviewed by Vsevolod Vlasov.

        Added fast return.

        * inspector/front-end/DockController.js:

2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>

        Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):

2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Printing should use use high resolution images when available
        https://bugs.webkit.org/show_bug.cgi?id=100488

        Reviewed by Antti Koivisto.

        The images loaded using -webkit-device-pixel-ratio depends on
        the display type (deviceScaleFactor) and thus affects which
        images are being used for printing. Printing should always
        use the higher resolution images (aka 'retina' images).

        Test: fast/media/mq-pixel-ratio-print.html

        * css/MediaQueryEvaluator.cpp:
        (WebCore::device_pixel_ratioMediaFeatureEval):

2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
        https://bugs.webkit.org/show_bug.cgi?id=100496

        Reviewed by Yury Semikhatsky.

        It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryTypes):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::reportMemoryUsage):
        (WebCore):
        * inspector/InspectorResourceAgent.h:
        (InspectorResourceAgent):
        * inspector/NetworkResourcesData.cpp:
        (WebCore::XHRReplayData::reportMemoryUsage):
        (WebCore):
        (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
        (WebCore::NetworkResourcesData::reportMemoryUsage):
        * inspector/NetworkResourcesData.h:
        (XHRReplayData):
        (ResourceData):
        (NetworkResourcesData):

2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132493.
        http://trac.webkit.org/changeset/132493
        https://bugs.webkit.org/show_bug.cgi?id=100509

        It didn't fix the tests on the bot as we had hoped. (Requested
        by drott on #webkit).

        * platform/network/cf/ResourceErrorCF.cpp:
        (WebCore::ResourceError::ResourceError):

2012-10-26  Zeno Albisser  <zeno@webkit.org>

        [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
        https://bugs.webkit.org/show_bug.cgi?id=100493

        Once QXcbNativeInterface::nativeResourceForContext() can provide the
        GLXContext for an existing QOpenGLContext, this patch shall be reverted.

        Reviewed by Simon Hausmann.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):

2012-10-26  Zeno Albisser  <zeno@webkit.org>

        [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
        https://bugs.webkit.org/show_bug.cgi?id=100492

        This patch removes most of the QOpenGLContext related code
        from GraphicsSurfaceGLX. This allows sharing almost all
        GraphicsSurfaceGLX code with EFL, by relying on pure GLX.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::OffScreenRootWindow::get):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (OffScreenRootWindow):
        (WebCore):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
        (GraphicsSurfacePrivate):
        (WebCore::resolveGLMethods):

2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>

        [EFL][WK2] Enable WebGL
        https://bugs.webkit.org/show_bug.cgi?id=97652

        Reviewed by Gyuyoung Kim.

        Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
        Depends on GLX since Evas doesn't provide the necessary functionality.

        No new tests. Covered by existing tests.

        * PlatformEfl.cmake:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore):
        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::reshape):
        * platform/graphics/surfaces/efl: Added.
        * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
        (WebCore):
        (WebCore::OffScreenRootWindow::get):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurface::platformBeginPaint):
        (WebCore::GraphicsSurface::createReadOnlyImage):
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
        (WebCore):
        (OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
        (WebCore::GraphicsSurfacePrivate::display):
        (WebCore::GraphicsSurfacePrivate::glxPixmap):
        (WebCore::GraphicsSurfacePrivate::size):
        (WebCore::GraphicsSurfacePrivate::glContext):
        (WebCore::resolveGLMethods):
        * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
        (WebCore):
        (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):

2012-10-26  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Overrides] Do not persist the User Agent "master switch"
        https://bugs.webkit.org/show_bug.cgi?id=100484

        Reviewed by Yury Semikhatsky.

        The User Agent override state is managed in the front-end, just like for other override-able parameters.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::disable):
        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager.get NetworkAgent):
        (WebInspector.NetworkManager):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
        * inspector/front-end/UserAgentSupport.js:
        (WebInspector.UserAgentSupport):
        (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
        (WebInspector.UserAgentSupport.prototype._userAgentChanged):

2012-10-26  Takashi Sakamoto  <tasak@google.com>

        [Shadow]: removing styles in shadow dom subtree causes crash.
        https://bugs.webkit.org/show_bug.cgi?id=100455

        Reviewed by Hajime Morita.

        To quickly check whether shadow roots or elements have any scoped
        styles or not, elements have hasStyleScoped flag. If elements have
        any scoped styles, the styles are direct children of the element.
        The original code just sees how many chilren are scoped style or not.
        However styles in shadow dom subtree are registered with the shadow
        root but are not always direct children of shadow roots. So to check
        whether shadow roots have any scoped styles, modified to count
        number of styles registered with the shadow root.

        Test: fast/dom/shadow/remove-styles-in-shadow-crash.html

        * dom/Node.cpp:
        (WebCore::Node::registerScopedHTMLStyleChild):
        (WebCore::Node::unregisterScopedHTMLStyleChild):
        Made the above two method virtual. class ShadowRoot overrides these
        methods.
        (WebCore::Node::numberOfScopedHTMLStyleChildren):
        Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
        are moved into Node.cpp.
        * dom/Node.h:
        (Node):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
        (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
        Modify to count how many styles are registered with the shadow root.
        The "counting" is done when styles are registered and unregistered
        with the shadow root, i.e. style element is inserted into document or
        removed from document. When unregister some style, there are no more
        styles registered with the shadow root. Set style scoped flag false.
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * html/HTMLStyleElement.cpp:
        * html/HTMLStyleElement.h:
        (WebCore::HTMLStyleElement::isRegisteredAsScoped):
        Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
        moved .cpp to .h.

2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132589.
        http://trac.webkit.org/changeset/132589
        https://bugs.webkit.org/show_bug.cgi?id=100498

        Breaks font-face layout tests (Requested by pfeldman on
        #webkit).

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData):

2012-10-26  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM] Needs @host rule for ShadowDOM styling
        https://bugs.webkit.org/show_bug.cgi?id=88606

        Reviewed by Hajime Morita.

        Implemented @host-@rules according to the shadow dom spec:
        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
        The design doc is:
        https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit

        Test: fast/dom/shadow/athost-atrules.html

        * css/CSSGrammar.y.in:
        Added rules for parsing @host @-rules.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectAtToken):
        Added a new token "@host".
        (WebCore::CSSParser::createHostRule):
        Added a new method to create an @host @-rule, which is invoked from
        (WebCore):
        * css/CSSParser.h:
        Added a declaration of the above new method: createHostRule.
        * css/CSSPropertySourceData.h:
        Added HOST_RULE to enum Type.
        * css/RuleSet.cpp:
        (WebCore::RuleData::RuleData):
        Modified multiple bool arguments into one argument. Now it
        uses combinations of values from enum AddRuleFlags.
        (WebCore::RuleSet::addRule):
        (WebCore::RuleSet::addRegionRule):
        (WebCore::RuleSet::addStyleRule):
        Updated according to the RuleData's change.
        Modified to Invoke increaseSpecificity if the given rule is @host
        @-rule.
        (WebCore::RuleSet::addRulesFromSheet):
        Invoked addHostRule if the given rule is @host @-rule.
        * css/RuleSet.h:
        (RuleData):
        (WebCore::RuleData::increaseSpecificity):
        Added a new method to increase selector's specificity. This method is
        used to make @host @-rules' specificity larger than normal author
        rules' specificity.
        (RuleSet):
        * css/StyleResolver.cpp:
        (WebCore::makeRuleSet):
        (WebCore::StyleResolver::addHostRule):
        A wrapper method to invoke StyleScopeResolver::addHostRule. The method
        is used to make only StyleResolver know an implementation detail about
        class StyleScopeResolver.
        (WebCore::StyleResolver::appendAuthorStylesheets):
        Updated according to the RuleData's change.
        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
        A new method to find matched host rules when an element is given.
        This method invokes
        StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
        matched host rules.
        (WebCore):
        (WebCore::StyleResolver::matchHostRules):
        A new method to find matched host rules when an element is given.
        This method invokes StyleScopeResolver::matchHostRules to find
        matched host rules.
        (WebCore::StyleResolver::matchScopedAuthorRules):
        Modified to invoke matchHostRules.
        (WebCore::StyleResolver::locateSharedStyle):
        Disable sibling style cache if the given element is a shadow host and
        any @host @-rules are applied to the element.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::ensureScopeResolver):
        If no scopeResolver is created, create and return the instance.
        If created, just return the instance.
        (StyleResolver):
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        (WebCore::StyleRuleHost::StyleRuleHost):
        Implemented class StyleRuleHost. The class is almost the same as
        StyleRuleBlock except type.
        (WebCore):
        * css/StyleRule.h:
        (WebCore::StyleRuleBase::isHostRule):
        (StyleRuleHost):
        (WebCore::StyleRuleHost::create):
        (WebCore::StyleRuleHost::copy):
        (WebCore):
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
        A new method to create a new RuleSet for the given shadow root.
        (WebCore):
        (WebCore::StyleScopeResolver::atHostRuleSetFor):
        A new private inline method to obtain @host @-rules declared in
        the given shadow root.
        (WebCore::StyleScopeResolver::addHostRule):
        Added a new method to register @host @-rules with shadow roots.
        (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
        A new method to find whether any @host @-rules are applied to
        the given host element.
        (WebCore::StyleScopeResolver::matchHostRules):
        A new method to find matched rules for the given host element.
        (WebCore::StyleScopeResolver::reportMemoryUsage):
        * css/StyleScopeResolver.h:
        (WebCore):
        (StyleScopeResolver):
        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):

2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>

        [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
        https://bugs.webkit.org/show_bug.cgi?id=100476

        Reviewed by Kentaro Hara.

        ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
        but the source file for that feature is omitted.

        No new tests. Covered by existing tests.

        * CMakeLists.txt:

2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>

        RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
        https://bugs.webkit.org/show_bug.cgi?id=99861

        Reviewed by Ojan Vafai.

        RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
        widths dirty / layout flag so that we would properly propagate the information to our containing table. This
        led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
        or else we would ignore the next layout hint on the <col> or <colgroup>.

        Tests: fast/table/col-span-change-relayout.html
               fast/table/simplified-layout-table.html

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        Simplified the code now that we only need to iterate over the sections.

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray):
        Removed call to computePreferredLogicalWidths.

        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::styleDidChange):
        (WebCore::RenderTableCol::updateFromElement):
        Forward a layout hint to the table so that we properly recompute the cell's logical withs.

        (WebCore::RenderTableCol::computePreferredLogicalWidths):
        (WebCore::RenderTableCol::layout):
        Change our implementations of those 2 methods to be no-ops, while enforcing that they are
        never called when it was possible.

        (WebCore::RenderTableCol::propagateLayoutCueToTable):
        New helper function that forward any layout cue to the containing table, this works around
        us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
        invalidateContainerPreferredLogicalWidths.

        * rendering/RenderTableCol.h:
        Made the function that we are not expected to be called private.

2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132601.
        http://trac.webkit.org/changeset/132601
        https://bugs.webkit.org/show_bug.cgi?id=100494

        It broke the Qt build (Requested by Ossy on #webkit).

        * PlatformEfl.cmake:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::reshape):
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore::OffScreenRootWindow::get):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (OffScreenRootWindow):
        (WebCore):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
        (GraphicsSurfacePrivate):
        (WebCore::resolveGLMethods):

2012-10-26  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: do not report memory occupied by v8::String
        https://bugs.webkit.org/show_bug.cgi?id=100487

        Reviewed by Alexander Pavlov.

        Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
        string cache.

        * bindings/v8/V8Binding.cpp:
        (WTF):

2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Add support for auto-height regions with region-breaks
        https://bugs.webkit.org/show_bug.cgi?id=99952

        Reviewed by David Hyatt.

        This patch takes region breaks into account when computing the height for auto logical height regions.
        When a region break is encountered before/after an element from within a flow thread and we are in the layout
        phase in which we lay out the flow threads in regions unconstrained, we use the region break to
        compute the region override logical content height if the region break fits inside an auto logical height region.
        A region break inside an auto logical height region determines the region override logical content height, taking
        min/max height into account.

        Tests: fast/regions/autoheight-allregions-nobreaks.html
               fast/regions/autoheight-allregions.html
               fast/regions/autoheight-breakafteralways-maxheight.html
               fast/regions/autoheight-breakbeforealways.html
               fast/regions/autoheight-firstregion-breakalways.html
               fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
               fast/regions/autoheight-lastregion-overflowauto.html
               fast/regions/autoheight-middleregion.html
               fast/regions/autoheight-secondregion-breakoutside.html
               fast/regions/autoheight-secondregion.html
               fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
               fast/regions/autoheight-singleregion-breakafteralways.html
               fast/regions/autoheight-singleregion-breakaftermargin.html
               fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
               fast/regions/autoheight-singleregion-breakbeforealways.html
               fast/regions/autoheight-singleregion-multiplebreaks.html
               fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
               fast/regions/autoheight-singleregion-overflowauto.html

        * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
        try to use it to determine the override logical content height for auto logical height regions.
        (WebCore::RenderBlock::applyBeforeBreak):
        (WebCore::RenderBlock::applyAfterBreak):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
        Simulate a region break at the end of the flow thread content.
        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
        (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
        Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
        (WebCore::RenderFlowThread::addForcedRegionBreak):
        Extend the method to process region breaks. The method returns true if at least one auto logical height region
        has its override logical content height computed.        
        * rendering/RenderFlowThread.h:
        * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
        (WebCore::RenderRegion::pageLogicalHeight):
        (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):

2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>

        [EFL][WK2] Enable WebGL
        https://bugs.webkit.org/show_bug.cgi?id=97652

        Reviewed by Gyuyoung Kim.

        Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
        Depends on GLX since Evas doesn't provide the necessary functionality.

        No new tests. Covered by existing tests.

        * PlatformEfl.cmake:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore):
        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        (GraphicsContext3DPrivate):
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::reshape):
        * platform/graphics/surfaces/efl: Added.
        * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
        (WebCore):
        (WebCore::OffScreenRootWindow::get):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
        (WebCore::GraphicsSurface::platformBeginPaint):
        (WebCore::GraphicsSurface::createReadOnlyImage):
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
        (WebCore):
        (OffScreenRootWindow):
        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createPixmap):
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
        (WebCore::GraphicsSurfacePrivate::display):
        (WebCore::GraphicsSurfacePrivate::glxPixmap):
        (WebCore::GraphicsSurfacePrivate::size):
        (WebCore::GraphicsSurfacePrivate::glContext):
        (WebCore::resolveGLMethods):
        * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
        (WebCore):
        (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::createSurface):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
        (WebCore::GraphicsSurfacePrivate::swapBuffers):

2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        Add feature flags for CSS Device Adaptation
        https://bugs.webkit.org/show_bug.cgi?id=95960

        Reviewed by Kenneth Rohde Christiansen.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:
        * GNUmakefile.features.am:

2012-10-26  Li Yin  <li.yin@intel.com>

        fast/forms/file/input-file-write-files.html should cover correct setting value
        https://bugs.webkit.org/show_bug.cgi?id=100085

        Reviewed by Kentaro Hara.

        From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
        On setting, if the new value is the empty string, it must empty the list of selected
        files; otherwise, it must throw an InvalidStateError exception.

        Test: fast/forms/file/input-file-value.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setValue):
        (WebCore):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLInputElement.idl:

2012-10-26  Keishi Hattori  <keishi@webkit.org>

        Refactor calendar picker to remove _x/_y from DaysTable
        https://bugs.webkit.org/show_bug.cgi?id=100460

        Reviewed by Kent Tamura.

        _x/_y properties keep the coordinates for the selection but when we add
        week and month picking capabilities, the selection can't be expressed as
        a set of coordinates. This change will remove it.

        No new tests. Covered by calendar-picker-*.html tests.

        * Resources/pagepopups/calendarPicker.js:
        (DaysTable): Removed _x/_y properties.
        (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
        (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
        (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
        (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
        (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
        (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
        (DaysTable.prototype._deselect): Deselects all selections.
        (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
        (DaysTable.prototype._handleMouseOut): Use _deselect.
        (DaysTable.prototype._handleKey): Lookup the selection position.
        (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.

2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>

        FileReader abort case causes Chromium renderer crash
        https://bugs.webkit.org/show_bug.cgi?id=99142

        Reviewed by Kentaro Hara.

        Before dispatching load event, FileReader should check if it is
        in aborting.

        Test: manually launch fast/files/file-reader-abort.html in Chromium
        browser and compare the result with
        fast/files/file-reader-abort-expected.txt.

        * fileapi/FileReader.cpp:
        (WebCore::FileReader::didFinishLoading):

2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>

        Generate less repaint calls during subtree detaching
        https://bugs.webkit.org/show_bug.cgi?id=99741

        Reviewed by Eric Seidel.

        Following bug 98336, detach is now a subtree top-down operation. Because we
        track visual overflow from our children during layout for most cases, we can
        generate a repaint only on the subtree root.

        On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
        26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
        it decreases the time by 35%. This is due to being the best case and we now generate
        only one repaint per detach phase.

        Covered by existing pixels tests (including but not limited to repaint ones).

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
        Changed the function not to be recursive anymore to generate one painting for
        our root only. Added a FIXME about using our RenderLayer for repainting to avoid
        the cost of computing our absolute repaint rectangle.

        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):
        Removed the logic for repainting in the general case. However we still force a repaint
        if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
        objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
        are properly accounted for in our clipppedOverflowRectForRepaint).

2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>

        local(Helvetica) in src descriptor prevent fallback
        https://bugs.webkit.org/show_bug.cgi?id=100446

        Reviewed by Dan Bernstein.

        FontCache::getCachedFontData() has a mechanism that aliases a few pairs
        of font family names, so that if the family name specified in the font-family
        property is not available on the system, but the its alias is available,
        it will be used instead. This is appropriate for the font-family property,
        but not for font family names specified in the local() function of the src
        descriptor in a @font-face rule.

        This patch disables the mechanism while checking src descriptor of @font-face.

        No new tests. It's difficult to test the change because 'Helvetica' can
        be mapped any other font. For example, chromium DRT uses FontConfig to
        map Helvetica to Times New Roman. Other ports may map Helvetica to other
        fonts. We can't define the expected result.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData):
        Call fontCache()->getCachedFontData() with checkingAlternateName = true.
        This disables aliasing font family names in FontCache.

2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Doctype Audits panel code
        https://bugs.webkit.org/show_bug.cgi?id=100371

        Reviewed by Alexander Pavlov.

        This is a preparation step for ongoing refactoring.
        It is much easier to read doctyped code.

        * inspector/front-end/AuditRules.js:
        (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
        Replaced "undefined" with "null"
        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditCategory.prototype.callbackWrapper):
        Removed callback parameter indirection.        
        (WebInspector.AuditRuleResult.prototype.addFormatted):
        Converted private instance function to scoped function.

2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt]REGRESSION(r131428): cookies.db created on wrong place
        https://bugs.webkit.org/show_bug.cgi?id=99445

        Reviewed by Simon Hausmann.

        Added a slash to the path of cookies.db in CookieJarQt.cpp.

        * platform/qt/CookieJarQt.cpp:
        (WebCore::SharedCookieJarQt::SharedCookieJarQt):

2012-10-26  Adam Barth  <abarth@webkit.org>

        Unreviewed. This ASSERT is no longer correct (and fires on many tests.)

        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):

2012-10-26  Kent Tamura  <tkent@chromium.org>

        [Chromium-Win] Support shortTimeFormat
        https://bugs.webkit.org/show_bug.cgi?id=100471

        Reviewed by Kentaro Hara.

        No new tests. Covered by fast/forms/time-multiple-fields/ and
        WebKit/chromium/tests/LocaleWinTest.

        * platform/text/LocaleWin.cpp:
        (WebCore::LocaleWin::shortTimeFormat):
        Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
        from the format by LOCALE_STIMEFORMAT.
        * platform/text/LocaleWin.h:
        (LocaleWin): Declare m_timeFormatWithoutSeconds.

2012-10-26  Adam Barth  <abarth@webkit.org>

        Unreviewed. Update run-bindings-tests results after recent active DOM
        object changes.

        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::constructorCallback):
        (WebCore::V8TestInterface::wrapSlow):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (WebCore::V8TestInterface::wrap):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        (WebCore::V8TestNamedConstructor::wrapSlow):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (WebCore::V8TestNamedConstructor::wrap):

2012-10-26  MORITA Hajime  <morrita@google.com>

        [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
        https://bugs.webkit.org/show_bug.cgi?id=100462

        Reviewed by Adam Barth.

        Removed the no longer correct assertion statement.

        No new tests. Covered by breaking tests.

        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):

2012-10-25  Adam Barth  <abarth@webkit.org>

        [V8] WorkerContextExecutionProxy should use ScopedPersistent
        https://bugs.webkit.org/show_bug.cgi?id=100443

        Reviewed by Eric Seidel.

        This class was manually re-implementing the ScopedPersistent pattern.

        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::dispose):
        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
        (WebCore::WorkerContextExecutionProxy::evaluate):
        * bindings/v8/WorkerContextExecutionProxy.h:
        (WebCore::WorkerContextExecutionProxy::context):
        (WorkerContextExecutionProxy):

2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>

        A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
        https://bugs.webkit.org/show_bug.cgi?id=100347

        Reviewed by Mark Lam and Filip Pizlo.

        In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
        since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".

        No new test case, since no behaviour changed.

        * bindings/js/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::evaluate):

2012-10-25  Adam Barth  <abarth@webkit.org>

        [V8] We can merge the wrapper maps for DOM objects and active DOM objects
        https://bugs.webkit.org/show_bug.cgi?id=100432

        Reviewed by Eric Seidel.

        Now that we use the same object to visit both DOM objects and active
        DOM objects, there's no reason to keep them in separate hash maps.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetDomMapName):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::~DOMDataStore):
        (WebCore::DOMDataStore::reportMemoryUsage):
        * bindings/v8/DOMDataStore.h:
        (DOMDataStore):
        * bindings/v8/V8DOMMap.cpp:
        * bindings/v8/V8DOMMap.h:
        (NodeWrapperVisitor):
        (WebCore):
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        * bindings/v8/V8GCController.cpp:
        (WebCore::V8GCController::majorGCPrologue):
        * bindings/v8/custom/V8WebSocketCustom.cpp:
        (WebCore::V8WebSocket::constructorCallback):
        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallback):

2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
        https://bugs.webkit.org/show_bug.cgi?id=100448

        Reviewed by George Staikos.

        Internally reviewed by Joe Mason.

        We didn't check the persistent Credential Storage for Credentials when challenged by the server.

        Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::sendRequestWithCredentials):

2012-10-25  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Add histogram statistics for backing store errors
        https://bugs.webkit.org/show_bug.cgi?id=98465

        Reviewed by Adam Barth.

        Define a macro for consistent asserting (during development), logging, and recording
        internal backing store errors via histograms. Define specific histogram values to
        track issues with opening backing stores to gather stats on corruption.

        No new tests - just the stats, ma'am, just the stats.

        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
        (WebCore):
        (WebCore::setUpMetadata):
        (WebCore::IDBLevelDBBackingStore::open):
        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
        (WebCore::deleteRange):
        (WebCore::IDBLevelDBBackingStore::getObjectStores):
        (WebCore::IDBLevelDBBackingStore::createObjectStore):
        (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
        (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
        (WebCore::IDBLevelDBBackingStore::getIndexes):
        (WebCore::IDBLevelDBBackingStore::createIndex):
        (WebCore::IDBLevelDBBackingStore::deleteIndex):
        (WebCore::IDBLevelDBBackingStore::findKeyInIndex):

2012-10-25  Adam Barth  <abarth@webkit.org>

        [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
        https://bugs.webkit.org/show_bug.cgi?id=100430

        Reviewed by Eric Seidel.

        There's no reason for these visitors to be separate objects anymore.

        * bindings/v8/V8GCController.cpp:
        (WebCore::ObjectVisitor::ObjectVisitor):
        (WebCore::ObjectVisitor::visitDOMWrapper):
        (WebCore::V8GCController::majorGCPrologue):

2012-10-25  Tony Chang  <tony@chromium.org>

        Remove unused static methods from DOMTimer.h
        https://bugs.webkit.org/show_bug.cgi?id=100427

        Reviewed by Kenneth Russell.

        Since these values got moved into Settings, these methods are no longer called.

        No new tests, removing dead code.

        * page/DOMTimer.h:
        (DOMTimer): Remove unused getters.

2012-10-25  Leo Yang  <leoyang@rim.com>

        [BlackBerry] Infinite redirect loop is not displayed to user
        https://bugs.webkit.org/show_bug.cgi?id=100420

        Reviewed by George Staikos.

        CNN.com is redirecting us infinitely with 302 http code and response body. We catch
        it my setting our extended error code as we defined. But we were not trying to notify
        error because we have received body. This was wrong. For extended http status code
        which is less than 0 we should display our own error page regardless there was data
        received from the server or not.

        Tested by manually loading CNN.com.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::shouldNotifyClientFailed):

2012-10-25  Nico Weber  <thakis@chromium.org>

        Flip ImageOrientation coordinate system from lefthanded to righthanded
        https://bugs.webkit.org/show_bug.cgi?id=100414

        Reviewed by Eric Seidel.

        platform/graphics, noteably GraphicsContext uses a right-handed
        coordinate system (origin in the top left corner, x growing to the
        right, y to the bottom).  ImageOrientation was an outlier from
        and used a left-handed coordinate system.  This patch makes
        ImageOrientation match the rest of platform/graphics.

        This is a pure refactoring and has no observable effects.

        * platform/chromium/DragImageChromiumSkia.cpp:
        (WebCore::createDragImageFromImage):
        * platform/graphics/ImageOrientation.cpp:
        (WebCore::ImageOrientation::transformFromDefault):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::BitmapImage::draw):
        * platform/mac/DragImageMac.mm:
        (WebCore::createDragImageFromImage):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shouldRespectImageOrientation):

2012-10-25  Keishi Hattori  <keishi@webkit.org>

        Hide popup while transitioning from the suggestion picker to the calendar picker
        https://bugs.webkit.org/show_bug.cgi?id=99537

        Reviewed by Kent Tamura.

        Right now you can see a squished calendar picker while transitioning
        from suggestion picker from calendar picker. This change will hide the
        popup before opening the calendar picker.

        No new tests.

        * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
        (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
        * Resources/pagepopups/suggestionPicker.js:
        (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.

2012-10-25  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):

2012-10-25  Anders Carlsson  <andersca@apple.com>

        Remove feed and feeds URL scheme workarounds
        https://bugs.webkit.org/show_bug.cgi?id=100442

        Reviewed by Dan Bernstein.

        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):

2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132514.
        http://trac.webkit.org/changeset/132514
        https://bugs.webkit.org/show_bug.cgi?id=100440

        "Broke chromium content_browsertests AccessibilityAriaMenu
        AccessibilityInputRange AccessibilityListMarkers" (Requested
        by scheib on #webkit).

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::contentChanged):
        (WebCore::AXObjectCache::childrenChanged):
        (WebCore::AXObjectCache::handleAriaRoleChanged):
        * accessibility/AXObjectCache.h:
        (AXObjectCache):
        (WebCore::AXObjectCache::contentChanged):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::AccessibilityObject):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::contentChanged):
        (AccessibilityObject):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
        (WebCore::AccessibilityRenderObject::contentChanged):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::isAttachment):
        (WebCore::AccessibilityScrollView::widgetForAttachmentView):
        (WebCore::AccessibilityScrollView::updateScrollbars):
        (WebCore::AccessibilityScrollView::webAreaObject):
        (WebCore::AccessibilityScrollView::elementRect):
        (WebCore::AccessibilityScrollView::documentFrameView):
        (WebCore::AccessibilityScrollView::parentObject):
        (WebCore::AccessibilityScrollView::parentObjectIfExists):
        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityScrollView::scrollTo):
        * accessibility/AccessibilityScrollView.h:
        (WebCore::AccessibilityScrollView::scrollView):
        (AccessibilityScrollView):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::isDataTable):
        * accessibility/chromium/AXObjectCacheChromium.cpp:
        (WebCore::AXObjectCache::postPlatformNotification):
        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::deleteLineBoxTree):
        (WebCore::RenderBlock::createAndAppendRootInlineBox):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleWillChange):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::setText):

2012-10-25  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
        https://bugs.webkit.org/show_bug.cgi?id=100413

        Reviewed by Anders Carlsson.

        RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
        Sped up the Core Graphics implementation of this function considerably by removing an
        unnecessary call to CGContextGetClipBoundingBox.

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
        box of the current clip.

2012-10-25  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
        https://bugs.webkit.org/show_bug.cgi?id=100433
        <rdar://problem/12575582>

        Reviewed by Simon Fraser.

        Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
        we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
        on the main thread will short-circuit and end up only updating the GraphicsLayer's
        notion of its current position, but never synchronizing that to the layer itself.

        No new tests, as this is currently untestable.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):

2012-10-25  Simon Fraser  <simon.fraser@apple.com>

        Tiled layers are missing content on zooming
        https://bugs.webkit.org/show_bug.cgi?id=100422

        Reviewed by Beth Dakin.

        Tiled layers using TileCaches were missing content after
        zooming. TileCache was confused in the presence of scaling;
        it unapplies the scale on the layer above the tiles (so the tiles
        live in screen space), and computed the tile coverage rect
        in these tile coordinates. This worked for the page tile cache,
        because its visibleRect was sent in pre-scaled. However, for
        tiled layer TileCaches this was wrong.
        
        Fix by scaling the tile coverage rect by m_scale before
        using it to compute which tiles to throw away and bring in.
        
        To fix the problem of the visibleRect being pre-scaled
        for the page tile cache, remove the setting of the visibleRect
        in RenderLayerCompositor::frameViewDidScroll(), and rely on 
        GraphicsLayerCA::updateVisibleRect() which computes the
        visible rect in the correct, layer coordinates.

        Test: compositing/tiling/tile-cache-zoomed.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
        for all tile cache layers, not just tiled layer ones, but only do
        the visible rect adjustment for those that are not the page tile cache.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
        which is scaled to be in the same coordinate space as the tile grid.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
        that sets the setVisibleRect() on the TiledBacking.

2012-10-25  Adam Barth  <abarth@webkit.org>

        [V8] ActiveDOMNodes no longer require a separate wrapper map
        https://bugs.webkit.org/show_bug.cgi?id=100352

        Reviewed by Eric Seidel.

        There is no longer any reason to keep a separate DOM wrapper map for
        active DOM nodes. We can simply store them in the normal DOM node
        wrapper map (which is more efficient because it doesn't use a HashMap).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetDomMapName):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::~DOMDataStore):
        (WebCore::DOMDataStore::reportMemoryUsage):
        * bindings/v8/DOMDataStore.h:
        (DOMDataStore):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        * bindings/v8/V8DOMMap.cpp:
        * bindings/v8/V8DOMMap.h:
        (WebCore):
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8DOMWrapper.h:
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::getCachedWrapper):

2012-10-25  Tony Chang  <tony@chromium.org>

        Unreviewed, fix the build on Mac.

        Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
        Instead, put the implementation in the cpp file.

        * page/Settings.cpp:
        (WebCore::Settings::defaultMinDOMTimerInterval):
        (WebCore):
        (WebCore::Settings::defaultDOMTimerAlignmentInterval):
        * page/Settings.h:
        (Settings):

2012-10-25  Tony Chang  <tony@chromium.org>

        Move default DOM Timer values into Settings
        https://bugs.webkit.org/show_bug.cgi?id=100405

        Reviewed by Kenneth Russell.

        Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
        the Settings object. This is more consistent with other global settings and allows us to remove
        the setters on the DOMTimer object.

        No new tests, this is a refactor.

        * page/DOMTimer.cpp: Remove globals.
        * page/DOMTimer.h:
        (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
        (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
        (DOMTimer): Remove setters.
        * page/Settings.cpp:
        (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
        (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
        * page/Settings.h:
        (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
        (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
        (Settings): Add globals.

2012-10-25  Simon Fraser  <simon.fraser@apple.com>

        Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
        https://bugs.webkit.org/show_bug.cgi?id=100416

        Reviewed by Beth Dakin.

        The tileCoverageRect is computed in "tile" coordinates, which don't match
        the visibleRect coordinates. It's more useful when testing to see the
        tile coverage relative to the view bounds, so unapply the scale whem
        reporting tile coverage in tests.

        Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
               platform/mac/tiled-drawing/tiled-drawing-zoom.html

        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::tileCoverageRect):

2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132269.
        http://trac.webkit.org/changeset/132269
        https://bugs.webkit.org/show_bug.cgi?id=100412

        "Speculative rollout of r132269 in hopes of fixing a
        mysterious recalcStyle crasher" (Requested by eseidel on
        #webkit).

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateFirstLetter):
        * rendering/RenderListBox.h:
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::updateBeforeAfterContent):

2012-10-25  Stephen White  <senorblanco@chromium.org>

        Change ReferenceFilterOperations to reference (own) the data passed to
        them.
        https://bugs.webkit.org/show_bug.cgi?id=97715

        Reviewed by Nate Chapin.

        Covered by css3/filters/reference-filter-update-after-remove.html

        * css/CachedSVGDocumentReference.h: Added.
        (CachedSVGDocumentReference):
        New class which holds a CachedResourceHandle<CachedSVGDocument>, but
        can be placed in ReferenceFilterOperation's Data.  It also calls
        addClient() / removeClient(), in order to keep the CachedSVGDocument
        alive until the FilterEffectRenderer can get it.
        (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
        (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
        (WebCore::CachedSVGDocumentReference::document):
        Accessor for the underlying document.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingSVGDocuments):
        Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
        transfer ownership to the ReferenceFilterOperation.
        (WebCore::StyleResolver::createFilterOperations):
        Same as above.
        * platform/graphics/filters/FilterOperation.h:
        (Data):
        New base class for generic data which can be deleted polymorphically.
        (WebCore::FilterOperation::ReferenceFilterOperation::data):
        (WebCore::FilterOperation::ReferenceFilterOperation::setData):
        Use the above-mentioned Data class, instead of a void *.
        (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
        Don't initialize data to null; OwnPtr will do that for us.
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        Extract the cached SVG document from the reference data.
        * rendering/RenderLayerFilterInfo.cpp:
        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
        Extract the cached SVG document from the reference data.

2012-10-25  Simon Fraser  <simon.fraser@apple.com>

        Incorrect tile size in the slow scrolling case
        https://bugs.webkit.org/show_bug.cgi?id=100411

        Reviewed by Beth Dakin.

        If we're in slow scrolling mode, we don't want to inflate the
        coverage rect based on scrollability. This ensures that the few
        big tiles we create have the correct size.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::computeTileCoverageRect):

2012-10-25  Nico Weber  <thakis@chromium.org>

        Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
        https://bugs.webkit.org/show_bug.cgi?id=100401

        Reviewed by Eric Seidel.

        This is an alternative fix for the regression caused by r132384 / bug
        100179. The bug exists because different pieces of code didn't agree
        which space the transformation returned by ImageOrientation was in.

        r132384 moved it from CG coordinates to skia coordinates, but didn't
        do it completetely. This CL reverts this part of r132384 so that the
        transformation is in CG coordinates again, and adapts the skia code to
        work in that space.

        Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
        make the cg code work with the transform in skia coordinates.

        Covered by fast/images/exif-orientation.html

        * platform/chromium/DragImageChromiumSkia.cpp:
        (WebCore::createDragImageFromImage):
        * platform/graphics/ImageOrientation.cpp:
        (WebCore::ImageOrientation::transformFromDefault):
        * platform/graphics/ImageOrientation.h:
        (WebCore):
        (WebCore::ImageOrientation::usesWidthAsHeight):
        (WebCore::ImageOrientation::fromEXIFValue):
        (ImageOrientation):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::BitmapImage::draw):
        * platform/mac/DragImageMac.mm:
        (WebCore::createDragImageFromImage):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shouldRespectImageOrientation):

2012-10-25  Simon Fraser  <simon.fraser@apple.com>

        Log the tile cache tile size in test output
        https://bugs.webkit.org/show_bug.cgi?id=100409

        Reviewed by Beth Dakin.

        When dumping tile cache information in tests, also dump the tile size.

        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
        * platform/graphics/ca/mac/TileCache.h:

2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        do not multiply/demultiply colors when alpha is 255
        https://bugs.webkit.org/show_bug.cgi?id=89246

        Reviewed by Kenneth Rohde Christiansen.

        Do not use colorFromPremultipliedARGB in getImageData nor
        premultipliedARGBFromColor in putByteArray. Avoiding object creation
        and function call make canvas.getImageData about 10% faster and
        canvas.putImageData about 30% faster.

        Also, we avoid multiplication/demultiplication computation when alpha
        is 255. Result is the same, but when there is no transparency,
        canvas.getImageData is about 4x faster, and canvas.putImageData is
        about 2x faster.

        No new tests. No change in behavior.

        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::getImageData):
        (WebCore::ImageBuffer::putByteArray):

2012-10-25  Nate Chapin  <japhet@chromium.org>

        Add a main resource type to the memory cache
        https://bugs.webkit.org/show_bug.cgi?id=99864

        Reviewed by Adam Barth.

        No new tests, no functionality change.

        * inspector/InspectorPageAgent.cpp:
        (WebCore::hasTextContent):
        (WebCore::InspectorPageAgent::cachedResourceType):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::willSendRequest):
        (WebCore::SubresourceLoader::didReceiveResponse):
        (WebCore::SubresourceLoader::didFail):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::CachedRawResource):
        (WebCore::CachedRawResource::addAdditionalRequestHeaders):
        (WebCore):
        (WebCore::CachedRawResource::setShouldBufferData):
        (WebCore::CachedRawResource::loader):
        (WebCore::CachedRawResource::clear):
        * loader/cache/CachedRawResource.h:
        (WebCore):
        (CachedRawResource):
        * loader/cache/CachedResource.cpp:
        (WebCore::defaultPriorityForResourceType):
        (WebCore::cachedResourceTypeToTargetType):
        (WebCore::CachedResource::updateResourceRequest):
        (WebCore):
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::setResourceError):
        (WebCore::CachedResource::resourceError):
        (CachedResource):
        (WebCore::CachedResource::ignoreForRequestCount):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::createResource):
        (WebCore::CachedResourceLoader::requestRawResource):
        (WebCore::CachedResourceLoader::checkInsecureContent):
        (WebCore::CachedResourceLoader::canRequest):
        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
        * loader/cache/CachedResourceLoader.h:
        (CachedResourceLoader):
        * platform/network/ResourceLoadPriority.h:
        * platform/network/cf/ResourceRequestCFNet.h:
        (WebCore::toResourceLoadPriority):
        (WebCore::toHTTPPipeliningPriority):

2012-10-25  Ojan Vafai  <ojan@chromium.org>

        [V8] Add histograms to measure V8 work done during window close and navigation
        https://bugs.webkit.org/show_bug.cgi?id=100358

        Reviewed by Adam Barth.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::clearForClose):
        (WebCore::ScriptController::clearWindowShell):

2012-10-25  Antti Koivisto  <antti@apple.com>

        Avoid unnecessary style recalcs on id attribute mutation.
        https://bugs.webkit.org/show_bug.cgi?id=100395

        Reviewed by Andreas Kling.

        There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
        mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
        
        Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::hasSelectorForId):
        (WebCore):
        * css/StyleResolver.h:
        * dom/Element.cpp:
        (WebCore::makeIdForStyleResolution):
        (WebCore):
        (WebCore::Element::attributeChanged):

2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Notification should be sent when accessibilityIsIgnored changes
        https://bugs.webkit.org/show_bug.cgi?id=99547

        Reviewed by Chris Fleizach.

        Adds a new flag in AccessibilityObject that keeps track of the most recent
        value of accessibilityIsIgnored(). After certain events such as an ARIA
        attribute change or content change, checks the new value of
        accessibilityIsIgnored() and posts a "children changed" notification on the
        parent node if it changed, making sure the parent recomputes its vector of
        (unignored) children.

        Also moves handling of attribute changes to AXObjectCache, and sends
        notifications for some attribute changes that were previously silent. On
        Chromium, all changes to an accessibility object's attributes should
        result in some notification.

        Some tests would have broken because an AccessibilityScrollView was created
        and holding a reference to a ScrollView for an iframe after it was deleted,
        so this change switches AccessibilityScrollView to hold a weak reference
        to ScrollView instead.

        Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
               platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
               platform/chromium/accessibility/text-change-notification.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::focusedUIElementForPage):
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::textChanged):
        (WebCore):
        (WebCore::AXObjectCache::childrenChanged):
        (WebCore::AXObjectCache::handleAriaRoleChanged):
        (WebCore::AXObjectCache::handleAttributeChanged):
        (WebCore::AXObjectCache::labelChanged):
        (WebCore::AXObjectCache::recomputeIsIgnored):
        * accessibility/AXObjectCache.h:
        (AXObjectCache):
        (WebCore::AXObjectCache::childrenChanged):
        (WebCore::AXObjectCache::textChanged):
        (WebCore::AXObjectCache::handleAttributeChanged):
        (WebCore::AXObjectCache::recomputeIsIgnored):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::insertChild):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::AccessibilityObject):
        (WebCore::AccessibilityObject::cachedIsIgnoredValue):
        (WebCore):
        (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
        (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::textChanged):
        (AccessibilityObject):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
        (WebCore::AccessibilityRenderObject::textChanged):
        (WebCore::AccessibilityRenderObject::addHiddenChildren):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
        (WebCore):
        (WebCore::AccessibilityScrollView::detach):
        (WebCore::AccessibilityScrollView::isAttachment):
        (WebCore::AccessibilityScrollView::widgetForAttachmentView):
        (WebCore::AccessibilityScrollView::updateScrollbars):
        (WebCore::AccessibilityScrollView::webAreaObject):
        (WebCore::AccessibilityScrollView::elementRect):
        (WebCore::AccessibilityScrollView::documentFrameView):
        (WebCore::AccessibilityScrollView::parentObject):
        (WebCore::AccessibilityScrollView::parentObjectIfExists):
        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityScrollView::scrollTo):
        * accessibility/AccessibilityScrollView.h:
        (WebCore::AccessibilityScrollView::scrollView):
        (AccessibilityScrollView):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::isDataTable):
        * accessibility/chromium/AXObjectCacheChromium.cpp:
        (WebCore::AXObjectCache::postPlatformNotification):
        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::deleteLineBoxTree):
        (WebCore::RenderBlock::createAndAppendRootInlineBox):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleWillChange):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::setText):

2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>

        Conditionalize XHR timeout support
        https://bugs.webkit.org/show_bug.cgi?id=100356

        Reviewed by Adam Barth.

        Adding feature for XHR_TIMEOUT to disable it on ports that don't have
        network backend support for setTimeoutInterval.

        No new tests, covered by http/tests/xmlhttprequest/timeout/*

        * Configurations/FeatureDefines.xcconfig: Default ON on mac.
        * GNUmakefile.am:
        * GNUmakefile.features.am:
          Autotools support for the flag.
        * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
        (WebCore::XMLHttpRequest::XMLHttpRequest):
        (WebCore):
        (WebCore::XMLHttpRequest::open):
        (WebCore::XMLHttpRequest::createRequest):
        (WebCore::XMLHttpRequest::didFail):
        * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
        (XMLHttpRequest):
        * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).

2012-10-25  Tom Sepez  <tsepez@chromium.org>

        XSSAuditor must replace form action with about:blank when reflected action detected.
        https://bugs.webkit.org/show_bug.cgi?id=100280

        Reviewed by Daniel Bates.

        Changes empty string form-action replacement to about:blank.
        Existing form-action.html test modified to check this case.
        
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterFormToken):

2012-10-25  Kevin Ellis  <kevers@chromium.org>

        Touch adjustment snaps to wrong target at a plugin boundary.
        https://bugs.webkit.org/show_bug.cgi?id=99938

        Reviewed by Antonio Gomes.

        Inidcate that an <embed> element can respond to
        mouse click events, since mouse events are forwarded
        to the plugin.  Fixes touch adjustment at a plugin
        boundary.  Prior to the patch a clickable element 
        adjacent to the plugin would capture synthetic mouse
        events from tap gestures that spanned the plugin
        boundary.

        Test: touchadjustment/plugin.html

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
        (WebCore):
        * html/HTMLEmbedElement.h:

2012-10-25  Ojan Vafai  <ojan@chromium.org>

        Get rid of ScriptController::clearForNavigation
        https://bugs.webkit.org/show_bug.cgi?id=100390

        Reviewed by Adam Barth.

        Get rid of clearForNavigation and change resetIsolatedWorlds
        to reset so that it can also do the hintForCollectGarbage call.
        No new tests. No behavior change.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::reset):
        (WebCore::ScriptController::clearForClose):
        (WebCore::ScriptController::clearWindowShell):
        * bindings/v8/ScriptController.h:
        (ScriptController):

2012-10-25  Simon Fraser  <simon.fraser@apple.com>

        r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
        https://bugs.webkit.org/show_bug.cgi?id=100323

        Reviewed by Anders Carlsson.

        r132427 assumed that TileCaches were only used for the page, and changed the tile
        size behavior of all non-page TileCaches.
        
        Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
        affects the tile size behavior.
        
        Consolidated the two places that set TileCoverage into one, and in the process
        reduced FrameView's direct communication with TiledBacking.

        No new tests because we can't test tile size via tests.

        * page/FrameView.cpp:
        (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
        call setIsInWindow() on the main page tile cache.
        (WebCore::FrameView::willMoveOffscreen): Ditto.
        (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
        the TiledBacking that it should do stuff, just tell the compositor that
        layout happened.
        * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
        if the CoverageForSlowScrolling flag is set.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
        is equivalent to renderer()->isRenderView() and clearer.
        (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
        It would be nice to move the rest of this TiledBacking code from here somehow.
        (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
        flags, taking into account horizontal and vertical scrollability independently,
        and whether we're in slow scrolling mode.
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
        tiled backing update it's coverage flags.
        (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
        (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
        (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-10-25  Elliott Sprehn  <esprehn@chromium.org>

        Everything that sets RenderObject::m_style should go through setStyleInternal
        https://bugs.webkit.org/show_bug.cgi?id=100338

        Reviewed by Ojan Vafai.

        Whenever we set m_style in RenderObject go through setStyleInternal and make
        it inline. This gives a common place to put printfs and makes the code cleaner.

        No new tests, just a refactor.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        (WebCore::RenderObject::setStyle):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::setStyleInternal):

2012-10-25  Brady Eidson  <beidson@apple.com>

        Allow LoaderStrategy to override the ResourceLoadScheduler
        https://bugs.webkit.org/show_bug.cgi?id=100355

        Reviewed by Anders Carlsson.

        Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
        Add a default implementation that just returns the current ResourceLoadScheduler.

        No new tests (No behavior change).

        Project file stuff:
        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

        "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
        * loader/ResourceLoadScheduler.cpp:
        (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
        * loader/ResourceLoadScheduler.h:
        (ResourceLoadScheduler):

        Add the new method plus a default implementation:
         * loader/LoaderStrategy.cpp: 
        (WebCore::LoaderStrategy::resourceLoadScheduler):
        * loader/LoaderStrategy.h:

        When strategies are enabled, use the LoaderStrategy for this:
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::suspendPostAttachCallbacks):
        (WebCore::ContainerNode::resumePostAttachCallbacks):

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::loadNow):

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::releaseResources):
        (WebCore::ResourceLoader::willSendRequest):

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::load):

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::performPostLoadActions):

2012-10-25  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: inspector tests failing after r132454
        https://bugs.webkit.org/show_bug.cgi?id=100381

        Reviewed by Pavel Feldman.

        Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
        otherwise no actual pointer is reported which breaks instrumentation.

        * bindings/v8/IntrusiveDOMWrapperMap.h:

2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>

        Init timeout flag in ResourceErrorCF
        https://bugs.webkit.org/show_bug.cgi?id=100349

        Reviewed by Alexey Proskuryakov.

        Initialize the timeout property to true if the network error was a timeout error.
        This is a speculative fix for the XHR timeout test cases failing on Apple Win -
        I can't verify this on a local machine.

        No new tests, covered by
        LayoutTests/http/tests/xmlhttprequest/timeout/*

        * platform/network/cf/ResourceErrorCF.cpp:
        (WebCore::ResourceError::ResourceError): Init m_timeout from error code.

2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        'resolution' MQ: Printing should use use high resolution images when available
        https://bugs.webkit.org/show_bug.cgi?id=100382

        Reviewed by Antti Koivisto.

        Special case print to not use the dpi of the screen, but one of 300.

        Updated the resolution media query test to cover this.

        * css/MediaQueryEvaluator.cpp:
        (WebCore::resolutionMediaFeatureEval): Update compared decimal points
        to three, due to 300 / 96 being equal to 3.125.

2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>

        [chromium] External FileSystem should use the root path returned by requestFileSystem
        https://bugs.webkit.org/show_bug.cgi?id=100372

        Reviewed by Kentaro Hara.

        External FileSystem should use the root path returned by
        requestFileSystem as other type is doing. Current implementation
        completely ignore the returned path.

        New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)

        * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
        (WebCore::DOMFileSystemBase::createFileSystemURL):

2012-10-25  Kevin Ellis  <kevers@chromium.org>

        Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
        https://bugs.webkit.org/show_bug.cgi?id=97576

        Reviewed by Antonio Gomes.

        Consolidate touch adjustment candidates that are
        editable.  Adjustment becomes coarse being based
        on the bounds of the outermost editable element.
        This fix allows tap positioning of the text caret
        on a blank line immediately above or below another
        element.

        Test: touchadjustment/editable-content.html

        * page/TouchAdjustment.cpp:
        (WebCore::TouchAdjustment::compileSubtargetList):
        (WebCore::TouchAdjustment::hybridDistanceFunction):

2012-10-25  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: add reportMemoryUsage to ImageObserver interface
        https://bugs.webkit.org/show_bug.cgi?id=100091

        Reviewed by Pavel Feldman.

        Added reportMemoryUsage method to ImageObserver to make sure it is reported as
        appropriate descendant(with pointer adjusted due to offsets added by inheritance)
        rather than as a standalone memory block.

        * platform/graphics/ImageObserver.h:
        (ImageObserver):

2012-10-25  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
        https://bugs.webkit.org/show_bug.cgi?id=100375

        Reviewed by Yury Semikhatsky.

        No new tests, a UI change.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):

2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        Add setMediaTypeOverride to window.internals.settings
        https://bugs.webkit.org/show_bug.cgi?id=100249

        Reviewed by Kenneth Rohde Christiansen.

        Added setMediaTypeOverride to window.internals.settings.

        Test: fast/media/print-restores-previous-mediatype.html

        * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setMediaTypeOverride):
        (WebCore):
        * page/Settings.h:
        (Settings):
        (WebCore::Settings::mediaTypeOverride):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::setMediaTypeOverride):
        (WebCore):
        * testing/InternalSettings.h:
        (Backup):
        (InternalSettings):
        * testing/InternalSettings.idl:

2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>

        [Chromium] Add supportMultipleWindows setting, needed for Android
        https://bugs.webkit.org/show_bug.cgi?id=99716

        Reviewed by Adam Barth.

        Add supportMultipleWindows settings for reusing the same view when
        opening popups. This is required for emulating the behavior of
        Android WebView. Adding into WebCore, as other ports might want to
        use this setting in the future.

        Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
               fast/dom/Window/window-open-no-multiple-windows.html
               fast/forms/post-popup-no-multiple-windows.html

        * loader/FrameLoader.cpp:
        (WebCore::createWindow):
        * page/ContextMenuController.cpp:
        (WebCore::openNewWindow):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setSupportsMultipleWindows):
        (WebCore):
        * page/Settings.h:
        (Settings):
        (WebCore::Settings::supportsMultipleWindows):

2012-10-25  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed, fix Web Inspector frontend compilability

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._ondragstart):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
        (WebInspector.StylePropertyTreeElement.prototype):

2012-10-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Drag and drop property value from Inspector is not working as expected
        https://bugs.webkit.org/show_bug.cgi?id=100040

        Reviewed by Vsevolod Vlasov.

        Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._ondragstart):

2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
        https://bugs.webkit.org/show_bug.cgi?id=100340

        Reviewed by Yury Semikhatsky.

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryTypes):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
        (WebCore):
        (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/ScriptDebugListener.h:
        (Script):

2012-10-25  Adam Barth  <abarth@webkit.org>

        [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
        https://bugs.webkit.org/show_bug.cgi?id=100351

        Reviewed by Eric Seidel.

        There is no reason to handle active DOM nodes in a separate pass from
        regular DOM nodes anymore.

        * bindings/v8/V8DOMMap.cpp:
        * bindings/v8/V8DOMMap.h:
        (WebCore):
        * bindings/v8/V8GCController.cpp:
        (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
        (WebCore::NodeVisitor::NodeVisitor):
        (NodeVisitor):
        (WebCore::NodeVisitor::visitNodeWrapper):
        (WebCore::V8GCController::majorGCPrologue):

2012-10-25  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
        https://bugs.webkit.org/show_bug.cgi?id=100357

        Reviewed by Vsevolod Vlasov.

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::deleteRule):

2012-10-25  Adam Barth  <abarth@webkit.org>

        [V8] DOMDataStoreHandle serves no purpose and can be removed
        https://bugs.webkit.org/show_bug.cgi?id=100333

        Reviewed by Eric Seidel.

        After https://bugs.webkit.org/show_bug.cgi?id=100316,
        DOMDataStoreHandle is just a glorified OwnPtr.

        * bindings/v8/DOMWrapperWorld.h:
        (WebCore::DOMWrapperWorld::domDataStore):
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
        * bindings/v8/V8DOMMap.cpp:
        * bindings/v8/V8DOMMap.h:

2012-10-25  Elliott Sprehn  <esprehn@chromium.org>

        Remove dead Node::isBlockFlowOrBlockTable
        https://bugs.webkit.org/show_bug.cgi?id=100336

        Reviewed by Eric Seidel.

        Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.

        No new tests needed, just removing dead code.

        * dom/Node.cpp:
        * dom/Node.h:
        (Node):

2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
        https://bugs.webkit.org/show_bug.cgi?id=100090

        Reviewed by Vsevolod Vlasov.

        Fixed localized strings table.

        * English.lproj/localizedStrings.js: Added missing, removed orhans.
        * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
        * inspector/front-end/NativeMemorySnapshotView.js:
        Removed double localization.

2012-10-25  Adam Barth  <abarth@webkit.org>

        [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
        https://bugs.webkit.org/show_bug.cgi?id=100316

        Reviewed by Eric Seidel.

        Prior to this patch, DOMDataStore had two subclasses,
        ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
        wrapper map base classes and had different lifetimes. This patch
        unifies all these classes into DOMDataStore itself. This makes this
        code much more straightforward.

        * WebCore.gypi:
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::~DOMDataStore):
        (WebCore::DOMDataStore::current):
        (WebCore::DOMDataStore::reportMemoryUsage):
        * bindings/v8/DOMDataStore.h:
        (DOMDataStore):
        (WebCore::DOMDataStore::domNodeMap):
        (WebCore::DOMDataStore::activeDomNodeMap):
        (WebCore::DOMDataStore::domObjectMap):
        (WebCore::DOMDataStore::activeDomObjectMap):
        * bindings/v8/ScopedDOMDataStore.cpp: Removed.
        * bindings/v8/ScopedDOMDataStore.h: Removed.
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::neuterBinding):
        * bindings/v8/StaticDOMDataStore.cpp: Removed.
        * bindings/v8/StaticDOMDataStore.h: Removed.
        * bindings/v8/V8DOMMap.cpp:
        (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
        (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
        (WebCore::visitActiveDOMNodes):
        (WebCore::visitDOMObjects):
        (WebCore::visitActiveDOMObjects):
        * bindings/v8/V8DOMMap.h:
        (WebCore):
        * bindings/v8/V8PerIsolateData.h:
        (V8PerIsolateData):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::WorkerScriptController):
        (WebCore::WorkerScriptController::~WorkerScriptController):
        * bindings/v8/WorkerScriptController.h:
        (WorkerScriptController):

2012-10-24  Kent Tamura  <tkent@chromium.org>

        Minimize CSS rulesets for multiple-fields input
        https://bugs.webkit.org/show_bug.cgi?id=100198

        Reviewed by Kentaro Hara.

        - Unify rulesets for input::-webkit-datetime-edit-*-field.
         input::-webkit-datetime-edit-*-field had identical ruleset.

        - Move some rulesets near to related rulesets.
         Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
         Move input::-webkit-datetime-edit-second-field[readonly] nearby
        input::-webkit-datetime-edit-minute-field[readonly].

        No new tests. This shouldn't make any behavior change.

        * css/html.css:
        (input::-webkit-datetime-edit-year-field):
        (input::-webkit-datetime-edit-year-field:focus):
        (input::-webkit-datetime-edit-second-field[readonly]):

2012-10-24  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
        https://bugs.webkit.org/show_bug.cgi?id=100326

        Reviewed by Eric Seidel.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
        We need to disconnect m_spinButtonElement before destructing the UA shadow tree.

2012-10-24  Adam Barth  <abarth@webkit.org>

        [V8] DOMData is no longer needed
        https://bugs.webkit.org/show_bug.cgi?id=100313

        Reviewed by Eric Seidel.

        This class serves no purpose anymore and can be deleted.

        * WebCore.gypi:
        * bindings/v8/DOMData.cpp: Removed.
        * bindings/v8/DOMData.h: Removed.
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::current):
        * bindings/v8/DOMDataStore.h:
        (WebCore):
        (DOMDataStore):
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::neuterBinding):
        * bindings/v8/V8DOMMap.cpp:
        (WebCore::getDOMNodeMap):
        (WebCore::getActiveDOMNodeMap):
        (WebCore::getDOMObjectMap):
        (WebCore::getActiveDOMObjectMap):
        (WebCore::removeAllDOMObjects):
        (WebCore::visitActiveDOMNodes):
        (WebCore::visitDOMObjects):
        (WebCore::visitActiveDOMObjects):

2012-10-24  Kent Tamura  <tkent@chromium.org>

        Sort an Xcode project file.

        * WebCore.xcodeproj/project.pbxproj: Sorted.

2012-10-24  Adam Barth  <abarth@webkit.org>

        [V8] AbstractWeakReferenceMap is unnecessarily general and complex
        https://bugs.webkit.org/show_bug.cgi?id=100175

        Reviewed by Eric Seidel.

        Before this patch, AbstractWeakReferenceMap served two masters:

        1) DOM wrappers
        2) NPV8 function templates

        These two uses cases pushed AbstractWeakReferenceMap to be more general
        and complex that needed. This patch separates these two uses cases into
        two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
        not worth complicating the DOM wrapper code path to share that tiny
        amount of code.

        The other thing this patch does is store a pointer to the DOM wrapper
        map as the weak callback context object. That means we no longer need
        to search through all the wrapper maps in order to find the map that
        contains this particular DOM wrapper.

        * WebCore.gypi:
        * bindings/v8/DOMData.cpp:
        * bindings/v8/DOMData.h:
        (DOMData):
        * bindings/v8/DOMDataStore.cpp:
            - Delete all these complicated weak callback functions. The weak
              callback functions are now an order of magnitude simpler and
              declared as private member functions on the wrapper map.
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::domNodeMap):
        (WebCore::DOMDataStore::activeDomNodeMap):
        (DOMDataStore):
            - We now have a consistent type to use for all these wrapper maps.
              Both the hash map and the intrusive map derive from
              DOMWrapperMap (with a single template parameter).
        * bindings/v8/DOMWrapperMap.h: Added.
        (WebCore):
        (DOMWrapperVisitor):
            - The visitor is no longer an inner class. It's just a top-level
              class that does the same thing.
        (DOMWrapperMap):
            - The abstract interface for DOMWrapperMap has about half as many
              functions as the old AbstractWeakReferenceMap because the two use
              cases are disentangled.
        (WebCore::DOMWrapperMap::~DOMWrapperMap):
        (DOMWrapperHashMap):
            - This is a concrete instance of DOMWrapperMap that uses a hash map.
        (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
        (WebCore::DOMWrapperHashMap::remove):
        (WebCore::DOMWrapperHashMap::defaultWeakCallback):
            - Notice that the context parameter now points to the hashmap
              itself rather than to the native object. Now that we don't need
              to handle the NPAPI case, we can recover the native object from
              the wrapper using toNative. The assert in set() ensures that this
              always works.
        * bindings/v8/DOMWrapperWorld.h:
        * bindings/v8/IntrusiveDOMWrapperMap.h:
            - These classes are now simplified because they need to implement
              fewer functions.
        (WebCore::DOMNodeWrapperMap::weakCallback):
            - For this weak callback, we still use the native object as the
              context parameter. We could also recover the native object from
              the wrapper, which means this context parameter is available to
              do other work.
        * bindings/v8/ScopedDOMDataStore.cpp:
        (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
            - This code no longer needs to have knowledge of which weak
              callbacks these objects use.
        (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
            - We need to clear the maps before deleting them because there are
              still JavaScript objects that have references to the map in their
              weak callback parameter. Previously, we handled this case because
              we would search all the wrapper maps and fail to find the wrapper.
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitExternalArrays):
        * bindings/v8/StaticDOMDataStore.cpp:
            - This code no longer needs to have knowledge of which weak
              callback these maps use.
        * bindings/v8/StaticDOMDataStore.h:
        (StaticDOMDataStore):
        * bindings/v8/V8DOMMap.cpp:
        (WebCore::getDOMNodeMap):
        (WebCore::getActiveDOMNodeMap):
        (WebCore::removeAllDOMObjects):
            - Rather than using some complicated visitor pattern, we can now
              just call clear() directly on the maps to remove all the objects.
        (WebCore::visitActiveDOMNodes):
        (WebCore::visitDOMObjects):
        (WebCore::visitActiveDOMObjects):
        * bindings/v8/V8DOMMap.h:
        (WebCore):
            - Delete the old versions of these classes.
        (DOMDataStoreHandle):
            - Style nit: one-argument constructors should be marked explicit.
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::domWrapperType):
            - I moved this logic into WrapperTypeInfo.h to avoid a circular
              header dependency.
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):
        * bindings/v8/V8GCController.cpp:
            - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
              longer clear the weak callbacks in V8GCController).
        * bindings/v8/V8NPObject.cpp:
        (V8NPTemplateMap):
            - staticTemplateMap is no longer an instance of WeakReferenceMap.
              Instead, this patch just implements the functionality we need
              here directly.
        (WebCore::V8NPTemplateMap::get):
        (WebCore::V8NPTemplateMap::set):
        (WebCore::V8NPTemplateMap::sharedInstance):
        (WebCore::V8NPTemplateMap::weakCallback):
        (WebCore::V8NPTemplateMap::dispose):
        (WebCore::npObjectGetProperty):
        (WebCore):
        (WebCore::staticNPObjectMap):
        (WebCore::weakNPObjectCallback):
            - DOMWrapperMap no longer exposes a "forget" function. Instead, we
              just use the more basic "remove" and "Dispose" operations to do
              the same thing. This is possible now because we no longer have
              "removeIfPossible" to support searching all the wrapper maps for
              the one that has the right wrapper.
        (WebCore::createV8ObjectForNPObject):
            - DOMWrapperMap No longer has a "contains" function. Instead, we
              use get, which actually makes this code more efficient because we
              only do one hash map lookup.
        (WebCore::forgetV8ObjectForNPObject):
            - The changes here are a combination of the two sorts of changes
              above.
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore::toNative):
        (WebCore::toWrapperTypeInfo):
            - The patch moves these functions into this header to avoid a
              circular header dependency.

2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        [cairo] unneeded FloatRect object creation in BitmapImage::draw
        https://bugs.webkit.org/show_bug.cgi?id=100298

        Reviewed by Martin Robinson.

        Do not copy FloatRect arguments src and dst to local variables.
        Instead, use src and dst directly.

        No new tests. No change in behavior.

        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::draw):

2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>

        [SOUP] Provide logging for SocketStreamHandleSoup
        https://bugs.webkit.org/show_bug.cgi?id=100215

        Reviewed by Alexey Proskuryakov.

        Add logging to SocketStreamHandleSoup to facilitate debugging.

        * platform/network/soup/SocketStreamHandleSoup.cpp:
        (WebCore::SocketStreamHandle::SocketStreamHandle):
        (WebCore::SocketStreamHandle::~SocketStreamHandle):
        (WebCore::SocketStreamHandle::platformSend):
        (WebCore::SocketStreamHandle::platformClose):

2012-10-24  Nico Weber  <thakis@chromium.org>

        Pass on exif orientation from ImageSource when using the open-source image decoders
        https://bugs.webkit.org/show_bug.cgi?id=100164

        Reviewed by Eric Seidel.

        The orientation is honored always for image documents, and optionally
        for <img> elements if shouldRespectImageOrientation is set (off by
        default). However, the feature needs port-specific modifications to
        GraphicsContext (without this, webcore will use the rotated bounds but
        draw the image as if it hadn't be rotated, resulting in squished
        pixels), and most ports don't implement these yet -- so put
        turning this on for image documents behind a port-specific #ifdef.

        No observable behavior change. Once it's hooked up, it will be tested
        by fast/images/exif-orientation.html.

        * platform/graphics/ImageSource.cpp:
        (WebCore::ImageSource::size):
        (WebCore::ImageSource::frameSizeAtIndex):
        (WebCore::ImageSource::orientationAtIndex):
        * platform/graphics/chromium/DeferredImageDecoder.cpp:
        (WebCore::DeferredImageDecoder::orientation):
        (WebCore):
        * platform/graphics/chromium/DeferredImageDecoder.h:
        (DeferredImageDecoder):
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::readImageOrientation):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shouldRespectImageOrientation):

2012-10-24  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=100169
        We should make TileCache tiles the size of the tile coverage rect 
        when we can't do fast scrolling
        -and-
        <rdar://problem/12505021>

        Reviewed by Simon Fraser.

        Some websites that don't do fast scrolling still scroll slower than 
        they do with tiled drawing disabled. 
        https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
        performance problem, but there is still more ground to make up. This 
        patch addresses the remaining issue by making tiles the size of the 
        window when we can't do fast scrolling. 

        The constructor and create function no longer take a size parameter. 
        That's all fully controlled within TileCache now. m_tileSize is no 
        longer const.
        * platform/graphics/ca/mac/TileCache.h:

        Store the current default size as constants so that we can access it 
        in both the constructor and adjustTileSizeForCoverageRect().
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache):

        This new function will set m_tileSize to the size of the tile 
        coverage rect if the tile coverage is limited to the visible area. 
        Otherwise, the tiles are set to be the default size.
        (WebCore::TileCache::adjustTileSizeForCoverageRect):
        
        Call adjustTileSizeForCoverageRect().
        (WebCore::TileCache::revalidateTiles):

        No need to send in a size anymore.
        * platform/graphics/ca/mac/WebTileCacheLayer.h:
        (WebCore):

2012-10-24  David Barton  <dbarton@mathscribe.com>

        MathML tests trigger font cache assertions in debug bots
        https://bugs.webkit.org/show_bug.cgi?id=100268

        Reviewed by Eric Seidel.

        Add a FontCachePurgePreventer to fix this.

        Tested by existing tests.

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::updateFromElement):

2012-10-24  Tim Horton  <timothy_horton@apple.com>

        Update main frame scroll position immediately for programmatic scrolls
        https://bugs.webkit.org/show_bug.cgi?id=98074

        Reviewed by Simon Fraser.

        Immediately update the main frame scroll position after a programmatic scroll,
        so that performing a scrollBy or scrollTo will be instantly reflected in
        all of the scroll offset accessors.

        No new tests; this will be tested by many scrolling tests once WebKitTestRunner
        can use threaded scrolling.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):

2012-10-24  Mihai Parparita  <mihaip@chromium.org>

        [Chromium] Allow pushState and related history APIs to be disabled per context
        https://bugs.webkit.org/show_bug.cgi?id=99780

        Reviewed by Adam Barth.

        Chrome Apps do not support the history API (or navigation in general).
        Since pushState is generally feature detected, it's cleanest to disable
        it via a V8 per-context feature, so that applications can have the
        appropriate fallback behavior (other history APIs are re-mapped to throw
        exceptions, since history.back() and the link are not feature detected).

        * dom/ContextFeatures.cpp:
        (WebCore::ContextFeatures::pushStateEnabled):
        (WebCore):
        * dom/ContextFeatures.h:
        * dom/Document.cpp:
        (WebCore::Document::enqueuePopstateEvent):
        * page/History.idl:

2012-10-24  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Make sure all events are dispatched asynchronously
        https://bugs.webkit.org/show_bug.cgi?id=100286

        Reviewed by Adam Barth.

        This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
        and the web application calls methods on the RTCPeerConnection in the event callbacks.

        Test: fast/mediastream/RTCPeerConnection-events.html
        Also tested by the chromium webrtc fuzz tests.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::negotiationNeeded):
        (WebCore::RTCPeerConnection::didGenerateIceCandidate):
        (WebCore::RTCPeerConnection::didAddRemoteStream):
        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
        (WebCore::RTCPeerConnection::changeReadyState):
        (WebCore::RTCPeerConnection::changeIceState):
        (WebCore):
        (WebCore::RTCPeerConnection::scheduleDispatchEvent):
        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
        * Modules/mediastream/RTCPeerConnection.h:
        (RTCPeerConnection):

2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>

        [Chromium] Remove screen-related functions from PlatformSupport
        https://bugs.webkit.org/show_bug.cgi?id=97474

        Reviewed by Adam Barth.

        Screen-related functions like screenHorizontalDPI that
        used to be on PlatformSupport are now accessed through a new
        PlatformPageClient attached to Widget in WebCore-land, which is
        implemented by ChromeClientImpl in WebKit-land, which proxies
        calls to WebWidgetClient, which is actually implemented in
        Chromium-land.

        * WebCore.gypi:
        * platform/Widget.h:
        * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
        (PageClientChromium):
        * platform/chromium/PlatformScreenChromium.cpp:
        (WebCore::toPlatformPageClient):
        (WebCore):
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):
        (WebCore::screenDepth):
        (WebCore::screenDepthPerComponent):
        (WebCore::screenIsMonochrome):
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):

2012-10-24  Adam Barth  <abarth@webkit.org>

        [V8] WorkerContextExecutionProxy doesn't need to track events
        https://bugs.webkit.org/show_bug.cgi?id=100295

        Reviewed by Eric Seidel.

        This code was added when this code was originally upstreamed as part of
        the Chromium port. There doesn't appear to be any reason why
        WorkerContextExecutionProxy needs to keep a Vector of raw event
        pointers. Those points are likely to become dangling, making the rest
        of what this code does very sketchy.

        * bindings/v8/V8WorkerContextEventListener.cpp:
        (WebCore::V8WorkerContextEventListener::callListenerFunction):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::dispose):
        * bindings/v8/WorkerContextExecutionProxy.h:
        (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
        (WorkerContextExecutionProxy):

2012-10-24  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] The mesh should be specified using <column, row> order
        https://bugs.webkit.org/show_bug.cgi?id=96285

        Reviewed by Dean Jackson.

        Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
        column, row order.

        Test: css3/filters/custom/custom-filter-mesh-column-row-order.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
            Append the number of columns before the number of rows in the meshParameters
            CSSValueList.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createCustomFilterOperation):
            Store the second mesh parameter in meshRows instead of meshColumns.

2012-10-24  Jae Hyun Park  <jae.park@company100.net>

        loaderRunLoop() should use synchronization instead of while loop
        https://bugs.webkit.org/show_bug.cgi?id=55402

        Reviewed by Alexey Proskuryakov.

        Originally, loaderRunLoop() sleeps until a thread has started and set
        the loaderRunLoopObject static variable. This patch uses
        ThreadCondition to synchronize instead of a while loop.

        No new tests (No behavior change).

        * platform/network/cf/LoaderRunLoopCF.cpp:
        (WebCore::runLoaderThread):
        (WebCore::loaderRunLoop):
        * platform/network/cf/LoaderRunLoopCF.h:
        (WebCore):

2012-10-24  Sailesh Agrawal  <sail@chromium.org>

        Incorrect keycodes for numpad /, -, +, .
        https://bugs.webkit.org/show_bug.cgi?id=99188

        Reviewed by Tony Chang.

        In r57951 we switched to mapping keys by character code.
        This regressed the numpad keys which no longer match the Windows virtual key codes.
        This CL fixes this by never mapping numpad keys by character code.

        Test: platform/mac/fast/events/numpad-keycode-mapping.html

        * platform/mac/PlatformEventFactoryMac.mm:
        (WebCore::windowsKeyCodeForKeyEvent):

2012-10-24  Simon Fraser  <simon.fraser@apple.com>

        Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
        https://bugs.webkit.org/show_bug.cgi?id=100141
        <rdar://problem/12559147>

        Reviewed by Tim Horton.

        For PDF documents the RenderView is null, so null-check it to avoid a crash
        when saving PDFs.

        * dom/Document.cpp:
        (WebCore::Document::windowScreenDidChange):

2012-10-24  Terry Anderson  <tdanderson@chromium.org>

        Handle two-finger tap gestures in the same way as long-press gestures
        https://bugs.webkit.org/show_bug.cgi?id=99947

        Reviewed by Adam Barth.

        Currently a long-press gesture is used to dispatch a context menu (for platforms 
        defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
        defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
        touch area of the long-press gesture.

        This CL will cause two-finger tap gestures to be handled in the same way as long-press 
        gestures. The location and touch area of a two-finger tap gesture will correspond to 
        the location and touch area of the first finger down; the location/area of the second 
        finger will be ignored.

        Test: touchadjustment/touch-links-two-finger-tap.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureLongPress):
        (WebCore):
        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
        (WebCore::EventHandler::handleGestureTwoFingerTap):
        (WebCore::EventHandler::adjustGesturePosition):
        * page/EventHandler.h:
        (EventHandler):

2012-10-24  Chris Fleizach  <cfleizach@apple.com>

        AX:When aria-label is used, the text under an element is still appearing as the AXTitle
        https://bugs.webkit.org/show_bug.cgi?id=98167

        Reviewed by Beth Dakin.

        According to WAI-ARIA text computation, the presence of aria-label and alternative text
        should override the visible text within an element.

        Test: platform/mac/accessibility/aria-label-overrides-visible-text.html

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityTitle]):

2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132303 and r132312.
        http://trac.webkit.org/changeset/132303
        http://trac.webkit.org/changeset/132312
        https://bugs.webkit.org/show_bug.cgi?id=100287

        Triggering crashes on many popular websites (Requested by
        leviw|gardening on #webkit).

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectAtToken):
        * css/CSSParser.h:
        * css/CSSPropertySourceData.h:
        * css/RuleSet.cpp:
        (WebCore::RuleData::RuleData):
        (WebCore::RuleSet::addRule):
        (WebCore::RuleSet::addRegionRule):
        (WebCore::RuleSet::addRulesFromSheet):
        (WebCore::RuleSet::addStyleRule):
        * css/RuleSet.h:
        (RuleData):
        (RuleSet):
        * css/StyleResolver.cpp:
        (WebCore::makeRuleSet):
        (WebCore::StyleResolver::appendAuthorStyleSheets):
        (WebCore::StyleResolver::matchScopedAuthorRules):
        (WebCore::StyleResolver::locateSharedStyle):
        * css/StyleResolver.h:
        (StyleResolver):
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        * css/StyleRule.h:
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::reportMemoryUsage):
        * css/StyleScopeResolver.h:
        (WebCore):
        (StyleScopeResolver):
        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):

2012-10-24  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Cursor property value identities should be preserved
        https://bugs.webkit.org/show_bug.cgi?id=100051

        Reviewed by Tony Chang.

        Some W3C test submissions point out that subsequent accesses to cursor properties should
        yield the same value until the cursor advances. We handled this with custom binding code for
        IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
        being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
        be applied to key/primaryKey.

        Test: storage/indexeddb/cursor-properties.html

        * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
        (WebCore::IDBCursor::key):
        (WebCore::IDBCursor::primaryKey):
        (WebCore::IDBCursor::setValueReady):
        * Modules/indexeddb/IDBCursor.h:
        (IDBCursor):
        (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
        * Modules/indexeddb/IDBCursor.idl:
        * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
        (WebCore):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::idbKeyToScriptValue): New method for explicit conversion.
        (WebCore):
        * bindings/v8/IDBBindingUtilities.h:
        (WebCore):

2012-10-24  Ami Fischman  <fischman@chromium.org>

        call to setNeedsLayout during RenderVideo::paintReplaced
        https://bugs.webkit.org/show_bug.cgi?id=100265

        Reviewed by Eric Carlson.

        Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
        during paints earlier (so the offending calls are in the emitted stacktrace).

        No new tests - new defensive checks are triggered by existing tests.

        * page/FrameView.cpp:
        (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
        * rendering/RenderObject.cpp:
        (WebCore):
        (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
        (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
        * rendering/RenderObject.h:
        (RenderObject):
        (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().

2012-10-24  Adam Barth  <abarth@webkit.org>

        [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
        https://bugs.webkit.org/show_bug.cgi?id=100208

        Reviewed by Eric Seidel.

        Rather than clearing and re-establishing the weak callback for
        ActiveDOMObjects during every GC, this patch puts all the
        ActiveDOMObjects with pending activity into an object group with a live
        object, causing them not to be garbage collected.

        In addition to simplifying this code, this patch makes the patch in
        https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
        V8GCController no longer needs to know how to configure the weak
        callbacks for these objects.

        * bindings/v8/V8GCController.cpp:
        (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
        (ActiveDOMObjectPrologueVisitor):
        (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
        (WebCore::V8GCController::majorGCPrologue):
        (WebCore::V8GCController::majorGCEpilogue):
        * bindings/v8/V8PerIsolateData.cpp:
        (WebCore::V8PerIsolateData::V8PerIsolateData):
        * bindings/v8/V8PerIsolateData.h:
        (WebCore::V8PerIsolateData::liveRoot):
        (V8PerIsolateData):

2012-10-24  Brady Eidson  <beidson@apple.com>

        Add a strategy for loader customization.
        https://bugs.webkit.org/show_bug.cgi?id=100278

        Reviewed by Alexey Proskuryakov.

        It's empty for now and does nothing, just like the goggles.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/PlatformStrategies.h:
        (WebCore::PlatformStrategies::loaderStrategy):
        (PlatformStrategies):
        (WebCore::PlatformStrategies::PlatformStrategies):

2012-10-24  Tony Chang  <tony@chromium.org>

        Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
        https://bugs.webkit.org/show_bug.cgi?id=99925

        Reviewed by Ojan Vafai.

        Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.

        Test: css3/flexbox/repaint-during-resize-no-flex.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
        for setting the location of a child.
        (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
        (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.

2012-10-24  Simon Fraser  <simon.fraser@apple.com>

        Fix CALayer hiearchy when combining tiling with preserve-3d
        https://bugs.webkit.org/show_bug.cgi?id=100205

        Reviewed by Dean Jackson.

        When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
        m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
        content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
        it is the primary layer that is set to be single-sided.
        
        In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
        "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
        the tile cache container layer. However, the custom sublayers were being added as
        children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
        thus they were not affected by the doubleSided property.
        
        This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
        by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
        layer, and one for sublayers of the primary layer. It adds custom sublayers to
        the latter list, so now the tile cache container layer becomes a sublayer of
        the primary layer, so is affected by that layer's doubleSided property.

        Test: compositing/tiling/backface-preserve-3d-tiled.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateSublayerList):

2012-10-23  Zhenyao Mo  <zmo@google.com>

        Update mozilla's CheckedInt.h to the latest version
        https://bugs.webkit.org/show_bug.cgi?id=100177

        Reviewed by Kenneth Russell.

        * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
        (detail):
        (IsSupportedPass2):
        (IsSupported):
        (UnsignedType):
        (IsSigned):
        (TwiceBiggerType):
        (PositionOfSignBit):
        (MinValue):
        (MaxValue):
        (WebCore::detail::HasSignBit):
        (WebCore::detail::BinaryComplement):
        (WebCore::detail::IsInRange):
        (WebCore::detail::IsAddValid):
        (WebCore::detail::IsSubValid):
        (WebCore::detail::IsMulValid):
        (WebCore::detail::IsDivValid):
        (WebCore::detail::OppositeIfSignedImpl::run):
        (WebCore::detail::OppositeIfSigned):
        (WebCore):
        (CheckedInt):
        (WebCore::CheckedInt::CheckedInt):
        (WebCore::CheckedInt::value):
        (WebCore::CheckedInt::isValid):
        (WebCore::CheckedInt::operator -):
        (WebCore::CheckedInt::operator ==):
        (WebCore::CheckedInt::operator++):
        (WebCore::CheckedInt::operator--):
        (CastToCheckedIntImpl):
        (WebCore::detail::CastToCheckedIntImpl::run):
        (WebCore::castToCheckedInt):
        (WebCore::operator ==):
        * html/canvas/DataView.cpp: change valid() to isValid().
        (WebCore::DataView::create):
        * html/canvas/WebGLBuffer.cpp: Ditto.
        (WebCore::WebGLBuffer::associateBufferDataImpl):
        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
        * html/canvas/WebGLRenderingContext.cpp: Ditto.
        (WebCore):
        (WebCore::WebGLRenderingContext::drawArrays):
        * platform/graphics/GraphicsContext3D.cpp: Ditto.
        (WebCore::GraphicsContext3D::computeImageSizeInBytes):

2012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>

        [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
        https://bugs.webkit.org/show_bug.cgi?id=89885

        Reviewed by Kenneth Rohde Christiansen.

        Use mach_port instead of global tokens for IOSurfaces.
        Global IOSurfaces are accessible from other processes using their handle, while mach_ports
        can only be shared directly via IPC.

        Tested by existing WebGL tests.

        * platform/graphics/surfaces/GraphicsSurfaceToken.h:
        (GraphicsSurfaceToken):
        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):

2012-10-24  Rick Byers  <rbyers@chromium.org>

        image-set doesn't round-trip properly with cssText
        https://bugs.webkit.org/show_bug.cgi?id=99725

        Reviewed by Beth Dakin.

        Fix serialization of -webkit-image-set rules to use the same format as
        is used for parsing.

        Test: fast/css/image-set-setting.html

        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::customCssText):
        * css/CSSValueList.h:
        (WebCore::CSSValueList::item): Add const overload

2012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>

        BlackBerry fix for webgl-depth-texture.html
        https://bugs.webkit.org/show_bug.cgi?id=100258

        Reviewed by Yong Li.

        Removed a platform specific define that is unnecessary.

        * platform/graphics/GraphicsContext3D.cpp:
        (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):

2012-10-24  Nico Weber  <thakis@chromium.org>

        Honor image orientation in GraphicsContextSkia
        https://bugs.webkit.org/show_bug.cgi?id=100179

        Reviewed by Stephen White.

        Also fix a bug in ImageOrientation.h: Some of the values were
        switched. They now match the description in the exif spec at
        http://www.exif.org/Exif2-2.PDF page 18, and the notes at
        http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
        the picture at http://www.80sidea.com/archives/2316.

        They showed up correctly in Safari because the orientation transform
        was done after flipping Y. Let the flipping happen later. I verified
        that flipping transformation order and fixing the exif enum cancelled
        each other out, so this has no effect on the apple port.

        Not hooked up yet, so no observable difference.

        * platform/graphics/BitmapImage.h:
        * platform/graphics/ImageOrientation.h:
        (WebCore::ImageOrientation::usesWidthAsHeight):
        (WebCore::ImageOrientation::fromEXIFValue):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::paintSkBitmap):
        (WebCore::BitmapImage::draw):
        (WebCore):

2012-10-24  Alexey Proskuryakov  <ap@apple.com>

        Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.

        * WebCore.vcproj/WebCore.vcproj:

2012-10-24  Chris Fleizach  <cfleizach@apple.com>

        AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
        https://bugs.webkit.org/show_bug.cgi?id=100204

        Reviewed by Beth Dakin.

        Remove the "range" role as a valid ARIA role.

        Test: platform/mac/accessibility/aria-slider-value.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::createARIARoleMap):

2012-10-24  Florin Malita  <fmalita@chromium.org>

        [Chromium] SVG repaint issues
        https://bugs.webkit.org/show_bug.cgi?id=99874

        Reviewed by Levi Weintraub.

        RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
        but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
        adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
        half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
        painting at the wrong location.

        This can be avoided by using localToBorderBoxTransform() directly, which (unlike
        localToParentTransform()) doesn't perform rounding.

        No new tests: existing pixel results cover this change after rebaseline.

        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paintReplaced):

2012-10-24  Levi Weintraub  <leviw@chromium.org>

        Fixing the Chromium build after typo in r132367.

        * WebCore.gypi:

2012-10-24  Nico Weber  <thakis@chromium.org>

        [chromium] Respect image orientation in image dragging code
        https://bugs.webkit.org/show_bug.cgi?id=100200

        Reviewed by Tony Chang.

        Based on the corresponding code in DragImageMac.mm.  The image
        rotation code isn't hooked up yet, so no observable effect for now.

        * platform/chromium/DragImageChromiumSkia.cpp:
        (WebCore::createDragImageFromImage):

2012-10-24  Michael Saboff  <msaboff@apple.com>

        Code cleanup after r132165
        https://bugs.webkit.org/show_bug.cgi?id=100135

        Reviewed by Geoffrey Garen.

        Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.

        Code clean up without functional changes, therefore no new tests.

        * xml/parser/MarkupTokenBase.h:
        (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
        (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
        (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
        (WebCore::MarkupTokenBase::name): Elimintated inline.
        (WebCore::MarkupTokenBase::nameString): Elimintated inline.

2012-10-24  Toni Barzic  <tbarzic@chromium.org>

        Crash when trying to write exception message to null console
        https://bugs.webkit.org/show_bug.cgi?id=99658

        Reviewed by Adam Barth.

        DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
        This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
        The exception task could be processes after current window in the frame changes, and console in the document window is nulled.

        Test: fast/workers/worker-exception-during-navigation.html

        * dom/Document.cpp:
        (WebCore::Document::addMessage):

2012-10-24  Cosmin Truta  <ctruta@rim.com>

        Incorrect conditional use of LogFTP
        https://bugs.webkit.org/show_bug.cgi?id=100260

        Reviewed by Alexey Proskuryakov.

        Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
        without breaking the build.

        * html/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):

2012-10-23  Alexey Proskuryakov  <ap@apple.com>

        Add a strategy for shared workers
        https://bugs.webkit.org/show_bug.cgi?id=100165

        Reviewed by Brady Eidson.

        Also a little bit of alphabetization.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/PlatformStrategies.h:
        * workers/SharedWorkerStrategy.h: Added.

2012-10-24  David Barton  <dbarton@mathscribe.com>

        [MathML] Timeouts on linux after r132264
        https://bugs.webkit.org/show_bug.cgi?id=100202

        Reviewed by Eric Seidel.

        When building a stretched operator, such as a large parenthesis or bracket, we need to
        check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
        can occur if the glyph is missing on the host system.

        Tested by existing tests.

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::updateFromElement):

2012-10-24  Parth Patel  <parpatel@rim.com>

        [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
        Generic ThreadUnsafe Singleton
        https://bugs.webkit.org/show_bug.cgi?id=100145

        Reviewed by Rob Buis.

        Extending the singletons to generic singleton and changing
        getInstance() in IconDatabaseClientBlackBerry to instance()
        to match the generic singleton template.

        Reviewed Internally by Yong Li.

        Tests are not modified and added as there was no behavioural change.

        * platform/blackberry/SharedTimerBlackBerry.cpp:
        (SharedTimerBlackBerry):
        (WebCore):

2012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
        https://bugs.webkit.org/show_bug.cgi?id=100254

        Reviewed by Yury Semikhatsky.

        * loader/ResourceBuffer.cpp:
        (WebCore::ResourceBuffer::reportMemoryUsage):
        (WebCore):
        * loader/ResourceBuffer.h:
        (ResourceBuffer):

2012-10-24  Eric Carlson  <eric.carlson@apple.com>

        Allow ports to override text track rendering style
        https://bugs.webkit.org/show_bug.cgi?id=97800
        <rdar://problem/12044964>

        Unreviewed Build fix.
        
        CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary

        * page/CaptionUserPreferencesMac.mm:
        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):

2012-10-24  Eric Carlson  <eric.carlson@apple.com>

        Allow ports to override text track rendering style
        https://bugs.webkit.org/show_bug.cgi?id=97800
        <rdar://problem/12044964>

        Reviewed by Maciej Stachowiak.

        * WebCore.exp.in: Export new WebkitSystemInterface functions.
        * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
            and CaptionUserPreferencesMac.h.

        * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
            background, and text independently.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
        (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
        (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
        (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
        (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
        (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
            un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
        (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
            setClosedCaptionsVisible
        * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
            variable. Get caption font scale from theme instead of hard coding.
        * html/shadow/MediaControlElements.h:

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
        (WebCore::TextTrack::isValidKindKeyword): Ditto.
        (WebCore::TextTrack::setKind): Ditto.
        (WebCore::TextTrack::setMode): Ditto.
        (WebCore::TextTrack::mode): Ditto.
        * html/track/TextTrack.h:
        (WebCore::TextTrack::create): Ditto.
        (WebCore::TextTrack::kind): Ditto.
        (WebCore::TextTrack::label): Ditto.
        (WebCore::TextTrack::setLabel): Ditto.
        (WebCore::TextTrack::language): Ditto.
        (WebCore::TextTrack::setLanguage): Ditto.

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
        (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
            shadow pseudo id so it can be used elsewhere.
        (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
        (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
            shadow pseudo id so it can be used elsewhere.
        (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
        (WebCore::TextTrackCue::updateDisplayTree):
        * html/track/TextTrackCue.h:

        * page/CaptionUserPreferences.h: Added.
        * page/CaptionUserPreferencesMac.h: Added.
        * page/CaptionUserPreferencesMac.mm: Added.
        (WebCore::userCaptionPreferencesChangedNotificationCallback):
        (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
        (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
        (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
        (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
        (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
        (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
            background color preference.
        (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
        (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
        (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
            or webkit-text-stroke property.
        (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
            with a color value.
        (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
            text with the user's preferred text edge stye.
        (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
            text with the user's preferred font.
        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
            with the user's preferred style.
        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
        (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
        (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
            changes listener.
        (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
            changes listener.
        (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
            inject it into the current page group, otherwise remove injected sheet.

        * page/PageGroup.cpp:
        (WebCore::PageGroup::captionPreferences):
        (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
            of the same name.
        (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
        (WebCore::PageGroup::userPrefersCaptions): Ditto.
        (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
        (WebCore::PageGroup::captionFontSizeScale): Ditto.
        * page/PageGroup.h:

        * platform/mac/WebCoreSystemInterface.h: Updated.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce workspace provider as a content providing backend for project.
        https://bugs.webkit.org/show_bug.cgi?id=100244

        Reviewed by Pavel Feldman.

        Introduced WorkspaceProvider interface as a content providing backend for project.
        Added NetworkWorkspaceProvider as a network based (default) implementation.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping):
        * inspector/front-end/DebuggerScriptMapping.js:
        (WebInspector.DebuggerScriptMapping):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider):
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
        * inspector/front-end/NetworkWorkspaceProvider.js: Added.
        (WebInspector.NetworkWorkspaceProvider):
        (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
        (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
        (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
        (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
        (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
        (WebInspector.NetworkWorkspaceProvider.prototype.reset):
        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping):
        (_bindUISourceCode):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel):
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/Workspace.js:
        (WebInspector.FileDescriptor):
        (WebInspector.WorkspaceProvider):
        (WebInspector.WorkspaceProvider.prototype.requestFileContent):
        (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
        (WebInspector.WorkspaceProvider.prototype.addEventListener):
        (WebInspector.WorkspaceProvider.prototype.removeEventListener):
        (WebInspector.Project):
        (WebInspector.Project.prototype.reset):
        (WebInspector.Project.prototype._fileAdded):
        (WebInspector.Project.prototype._fileRemoved):
        (WebInspector.Project.prototype.requestFileContent):
        (WebInspector.Project.prototype.searchInFileContent):
        (WebInspector.Workspace):
        (WebInspector.Workspace.prototype.addProject):
        (WebInspector.Workspace.prototype.project):
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2012-10-24  Nikita Vasilyev  <me@elv1s.ru>

        Web Inspector: Styles pane: Don't select whole value when I select just a part
        https://bugs.webkit.org/show_bug.cgi?id=100242

        Reviewed by Alexander Pavlov.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
        (WebInspector.StylePropertyTreeElement.prototype):

2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: UiSourceCode should rely on the workspace as a content provider.
        https://bugs.webkit.org/show_bug.cgi?id=100216

        Reviewed by Pavel Feldman.

        Workspace is now passed to UISourceCode to be used as a content provider.
        Content providers are now stored in the workspace/project.
        Next step would be to move content providers to workspace providers.

        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.breakpointStorageId):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):
        (WebInspector.UISourceCode.prototype.contentType):
        (WebInspector.UISourceCode.prototype.requestContent):
        (WebInspector.UISourceCode.prototype.requestOriginalContent):
        (WebInspector.UISourceCode.prototype._commitContent):
        (WebInspector.UISourceCode.prototype.searchInContent):
        * inspector/front-end/Workspace.js:
        (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
        (WebInspector.Project):
        (WebInspector.Project.prototype.addUISourceCode):
        (WebInspector.Project.prototype.removeUISourceCode):
        (WebInspector.Project.prototype.uiSourceCodes):
        (WebInspector.Project.prototype.requestFileContent):
        (WebInspector.Project.prototype.searchInFileContent):
        (WebInspector.Workspace):
        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
        (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
        (WebInspector.Workspace.prototype.reset):

2012-10-24  Zeno Albisser  <zeno@webkit.org>

        Implement GraphicsSurface for Windows.
        https://bugs.webkit.org/show_bug.cgi?id=98147

        Reviewed by Kenneth Rohde Christiansen.

        * Target.pri:
            Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
        * platform/graphics/surfaces/GraphicsSurface.h:
            Add typedef for PlatformGraphicsSurface on Windows.
        * platform/graphics/surfaces/GraphicsSurfaceToken.h:
            Add typedef for BufferHandle on Windows.
        (GraphicsSurfaceToken):
        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
            The GraphicsSurface implementation on Windows relies on the
            availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
            For Qt this requirements are implicitly satisfied, when Qt is built
            on Windows and QT_CONFIG contains OpenGLES2.
            The GraphicsSurface then renders a given texture onto an offscreen
            pixel buffer surface, queries the surface pointer using the
            EGL_ANGLE_query_surface_pointer extension, and transmits the received
            surface pointer (share handle) over IPC.
            On the UIProcess side, the surface pointer can then be resolved
            using eglCreatePbufferFromClientBuffer.
        (WebCore):
        (WebCore::loadShader):
            Initialize the shaders needed for drawing onto the GraphicsSurface.
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
            In case of the instance being on the WebProcess side,
            create an EGLContext that shares the texture objects with the provided
            share context. Also create two pixel buffer surfaces, one as front- and
            one as backbuffer.
            Query the surface pointers for the pixel buffer surfaces and initialize
            the GraphicsSurfaceToken that can be passed over IPC later.
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
            Release all aquired resources and destroy the pixel buffer surfaces.
            Also close the EGL-Display connection.
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
            Make the belonging context current on the back buffer surface
            and use drawTexture() to draw the provided texture onto the GraphicsSurface.
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
            Save the previously current context, then make the context belonging
            to the GraphicsSurface current.
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
            Restore the context that was current before calling makeCurrent().
        (WebCore::GraphicsSurfacePrivate::swapBuffers):
            Swap front and back buffer surfaces and handles.
        (WebCore::GraphicsSurfacePrivate::token):
        (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
            This function is meant to be called from the UIProcess side.
            If no front buffer surface has been created before for the current
            front buffer handle, one will be created.
            Then eglBindTexImage will be used to actually bind the current
            front buffer surface to a texture as a source for drawing.
        (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
        (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
        (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
        (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
            Free the resources related to the front buffer surface.
            On the UIProcess side we never actually bind the back buffer.
        (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
            Initialize and link the shader programs necessary for drawing
            onto the GraphicsSurface.
        (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
            Creates a single pixel buffer surface from a share Handle.
            This function will be called on the UIProcess side,
            for the front buffer handle, whenever the buffers have been swapped.
        (WebCore::GraphicsSurfacePrivate::drawTexture):
            The WebProcess uses this function to draw a given
            texture onto the GraphicsSurface's back buffer.
        (WebCore::GraphicsSurface::platformExport):
        (WebCore::GraphicsSurface::platformGetTextureID):
        (WebCore::GraphicsSurface::platformCopyToGLTexture):
        (WebCore::GraphicsSurface::platformCopyFromTexture):
        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
            Uses TextureMapperGL::drawTexture() to draw the front buffer texture
            to the TextureMapper on the UIProcess side.
        (WebCore::GraphicsSurface::platformFrontBuffer):
        (WebCore::GraphicsSurface::platformSwapBuffers):
        (WebCore::GraphicsSurface::platformCreate):
        (WebCore::GraphicsSurface::platformImport):
        (WebCore::GraphicsSurface::platformLock):
        (WebCore::GraphicsSurface::platformUnlock):
        (WebCore::GraphicsSurface::platformDestroy):

2012-09-27  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: provide memory instrumentation for ListHashSet
        https://bugs.webkit.org/show_bug.cgi?id=97786

        Reviewed by Vsevolod Vlasov.

        Switched existing usages of addListHashSet to the generic instrumentation mechanism
        as it should work just just fine now that there is a memory instrumentation of
        ListHashSet.

        * dom/DocumentEventQueue.cpp:
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::reportMemoryUsage):

2012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Credentials not re-used for a redirected request to the same domain
        https://bugs.webkit.org/show_bug.cgi?id=100193

        Reviewed by George Staikos.

        We should store the credentials in the redirection response handler, if the request is challenged.
        Because the redirect response suggests the authentication succeeds. 

        Test: http://browsertest01.rim.net/authbasic

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::handleRedirect):

2012-10-24  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement CSS reload upon related SASS resource saving
        https://bugs.webkit.org/show_bug.cgi?id=98024

        Reviewed by Vsevolod Vlasov.

        SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
        Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
        the page styles (presuming that SASS is running in the "watch" mode during the development cycle).

        * English.lproj/localizedStrings.js:
        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping):
        (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
        (_bindUISourceCode):
        (_addCSSURLforSASSURL):
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.GenericSettingsTab):

2012-10-23  Yury Semikhatsky  <yurys@chromium.org>

        Memory instrumentation: don't count agent-specific front-ends separately
        https://bugs.webkit.org/show_bug.cgi?id=100087

        Reviewed by Alexander Pavlov.

        Pointers to domain-specific inspector front-end interfaces are reported as
        weak pointers instead of members to avoid double-counting.

        Test by comparing set of reported instrumented objects with the set of objects
        allocated by tcmalloc.

        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
        * inspector/InspectorDOMStorageResource.cpp:
        (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::reportMemoryUsage):

2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>

        Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
        https://bugs.webkit.org/show_bug.cgi?id=100203

        Unreviewed Build fix.

        Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
        set and STYLE_SCOPED is not.

        No new tests, no behavior change.

        * css/StyleResolver.h:
        (WebCore::StyleResolver::ensureScopeResolver):

2012-10-23  Andreas Kling  <kling@webkit.org>

        Remove specialized hash traits for GlyphPages.
        <http://webkit.org/b/100185>

        Reviewed by Dan Bernstein.

        Now that the default minimum table size has been lowered for all tables, there's no need
        for this specialization anymore.

        * platform/graphics/FontFallbackList.h:
        (FontFallbackList):

2012-10-23  Kent Tamura  <tkent@chromium.org>

        Multiple fields input UI: Don't use CSS properties for physical direction
        https://bugs.webkit.org/show_bug.cgi?id=100195

        Reviewed by Kentaro Hara.

        CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
        not direction-neutral, and makes unexpected appearance in RTL. We should
        use -webkit-padding-start or -webkit-margin-start.

        No new tests. Covered by date-multiple-fields-appearance-l10n.html and
        month-multiple-fields-appearance-l10n.html

        * css/html.css:
        (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
        (input[type="datetime"]): Ditto.
        (input[type="datetime-local"]): Ditto.
        (input[type="month"]): Ditto.
        (input[type="time"]): Ditto.
        (input[type="week"]): Ditto.
        (input[type="week"]::-webkit-inner-spin-button):
        Use -webkit-margin-start. Also use an integral pixel size instead of
        avoid a fractional relative size to avoid subpixel layout rounding.

2012-10-23  Dan Bernstein  <mitz@apple.com>

        The font cache evicts inactive font data too aggressively when not under memory pressure
        https://bugs.webkit.org/show_bug.cgi?id=100194

        Reviewed by Sam Weinig.

        Increasing the number of inactive font data objects the cache may hold increases the hit
        rate, leading to improved page load performance. When memory pressure is detected,
        MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
        increasing here.

        * platform/graphics/FontCache.cpp:
        (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
        to 225, and the number of objects to evict once the limit is met from 20 to 25.

2012-10-23  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM] Needs @host rule for ShadowDOM styling
        https://bugs.webkit.org/show_bug.cgi?id=88606

        Reviewed by Hajime Morita.

        Implemented @host-@rules according to the shadow dom spec:
        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
        The design doc is:
        https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit

        Test: fast/dom/shadow/athost-atrules.html

        * css/CSSGrammar.y.in:
        Added rules for parsing @host @-rules.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectAtToken):
        Added a new token "@host".
        (WebCore::CSSParser::createHostRule):
        Added a new method to create an @host @-rule, which is invoked from
        (WebCore):
        * css/CSSParser.h:
        Added a declaration of the above new method: createHostRule.
        * css/CSSPropertySourceData.h:
        Added HOST_RULE to enum Type.
        * css/RuleSet.cpp:
        (WebCore::RuleData::RuleData):
        Modified multiple bool arguments into one argument. Now it
        uses combinations of values from enum AddRuleFlags.
        (WebCore::RuleSet::addRule):
        (WebCore::RuleSet::addRegionRule):
        (WebCore::RuleSet::addStyleRule):
        Updated according to the RuleData's change.
        Modified to Invoke increaseSpecificity if the given rule is @host
        @-rule.
        (WebCore::RuleSet::addRulesFromSheet):
        Invoked addHostRule if the given rule is @host @-rule.
        * css/RuleSet.h:
        (RuleData):
        (WebCore::RuleData::increaseSpecificity):
        Added a new method to increase selector's specificity. This method is
        used to make @host @-rules' specificity larger than normal author
        rules' specificity.
        (RuleSet):
        * css/StyleResolver.cpp:
        (WebCore::makeRuleSet):
        (WebCore::StyleResolver::addHostRule):
        A wrapper method to invoke StyleScopeResolver::addHostRule. The method
        is used to make only StyleResolver know an implementation detail about
        class StyleScopeResolver.
        (WebCore::StyleResolver::appendAuthorStylesheets):
        Updated according to the RuleData's change.
        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
        A new method to find matched host rules when an element is given.
        This method invokes
        StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
        matched host rules.
        (WebCore):
        (WebCore::StyleResolver::matchHostRules):
        A new method to find matched host rules when an element is given.
        This method invokes StyleScopeResolver::matchHostRules to find
        matched host rules.
        (WebCore::StyleResolver::matchScopedAuthorRules):
        Modified to invoke matchHostRules.
        (WebCore::StyleResolver::locateSharedStyle):
        Disable sibling style cache if the given element is a shadow host and
        any @host @-rules are applied to the element.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::ensureScopeResolver):
        If no scopeResolver is created, create and return the instance.
        If created, just return the instance.
        (StyleResolver):
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::reportMemoryUsage):
        (WebCore::StyleRuleBase::destroy):
        (WebCore::StyleRuleBase::copy):
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        (WebCore::StyleRuleHost::StyleRuleHost):
        Implemented class StyleRuleHost. The class is almost the same as
        StyleRuleBlock except type.
        (WebCore):
        * css/StyleRule.h:
        (WebCore::StyleRuleBase::isHostRule):
        (StyleRuleHost):
        (WebCore::StyleRuleHost::create):
        (WebCore::StyleRuleHost::copy):
        (WebCore):
        * css/StyleScopeResolver.cpp:
        (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
        A new method to create a new RuleSet for the given shadow root.
        (WebCore):
        (WebCore::StyleScopeResolver::atHostRuleSetFor):
        A new private inline method to obtain @host @-rules declared in
        the given shadow root.
        (WebCore::StyleScopeResolver::addHostRule):
        Added a new method to register @host @-rules with shadow roots.
        (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
        A new method to find whether any @host @-rules are applied to
        the given host element.
        (WebCore::StyleScopeResolver::matchHostRules):
        A new method to find matched rules for the given host element.
        (WebCore::StyleScopeResolver::reportMemoryUsage):
        * css/StyleScopeResolver.h:
        (WebCore):
        (StyleScopeResolver):
        * css/StyleSheetContents.cpp:
        (WebCore::childRulesHaveFailedOrCanceledSubresources):

2012-10-23  Andreas Kling  <kling@webkit.org>

        REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
        <http://webkit.org/b/100065>

        Reviewed by Anders Carlsson.

        Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
        collisions. This will need a proper fix at some point.

        * plugins/PluginDatabase.h:
        * plugins/PluginPackage.h:
        (PluginPackageHashTraits):

2012-10-23  Simon Fraser  <simon.fraser@apple.com>

        Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
        https://bugs.webkit.org/show_bug.cgi?id=100159

        Reviewed by Tim Horton.

        Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
        through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.

        Test: platform/mac/tiled-drawing/use-tiled-drawing.html

        * page/Frame.h:
        * platform/graphics/GraphicsLayer.cpp:
        (showGraphicsLayerTree):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::tiledBacking):
        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::tiledBacking):
        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):
        * platform/graphics/ca/mac/TileCache.h:
        (WebCore::TileCache::tileCoverageRect):
        (TileCache):
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::computeTileCoverageRect):
        (WebCore::TileCache::revalidateTiles):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::layerTreeAsText):
        * testing/Internals.cpp:
        (WebCore::Internals::layerTreeAsText):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-10-23  Simon Fraser  <simon.fraser@apple.com>

        Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
        https://bugs.webkit.org/show_bug.cgi?id=100187
        <rdar://problem/12546770>

        Reviewed by Dan Bernstein.

        Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
        to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
        background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
        to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
        that require frequent flushing, such as those running animated GIFs.
        
        Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
        when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
        
        Not testable because we can't test detaching and re-adding web views in DRT/WTR.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
        is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
        (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
        saying that we're the flush root.
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.

2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132276.
        http://trac.webkit.org/changeset/132276
        https://bugs.webkit.org/show_bug.cgi?id=100189

        It broke the Qt-WK2 build intentionally (Requested by
        Ossy_night on #webkit).

        * page/Frame.h:
        * platform/graphics/GraphicsLayer.cpp:
        (showGraphicsLayerTree):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::tiledBacking):
        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::tiledBacking):
        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):
        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::tileCoverageRect):
        (WebCore::TileCache::revalidateTiles):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::layerTreeAsText):
        * testing/Internals.cpp:
        (WebCore::Internals::layerTreeAsText):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-10-23  Philip Rogers  <pdr@google.com>

        Add extra check for data() in PageSerializer.
        https://bugs.webkit.org/show_bug.cgi?id=99102

        Reviewed by Eric Seidel.

        The image returned from imageForRenderer() does not contain the raw SVG data
        so this patch adds a check for image->image()->data() before writing SVG
        in PageSerializer::addImageToResources.

        Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.

        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::addImageToResources):

2012-10-23  Kent Tamura  <tkent@chromium.org>

        Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
        https://bugs.webkit.org/show_bug.cgi?id=100129

        Reviewed by Kentaro Hara.

        We're going to use appendAsLDMLLiteral in other code, and it is
        related to DateTimeFormat class.  So we move it to DateTimeFormat
        class as quoteAndAppendLiteral.

        No new tests because of no behavior change.

        * platform/text/DateTimeFormat.cpp:
        (WebCore::DateTimeFormat::quoteAndAppendLiteral):
        Moved from LocaleWin.cpp
        * platform/text/DateTimeFormat.h:
        Declare StringBuilder by wtf/Forward.h. It also declares String.
        (DateTimeFormat): Declare quoteAndAppendLiteral.
        * platform/text/LocaleWin.cpp:
        (WebCore): Move appendLDMLLiteral to DateTimeFormat.
        (WebCore::convertWindowsDateFormatToLDML):
        Follow the moving.

2012-10-23  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r131421): Text baseline is not aligned in some locales
        https://bugs.webkit.org/show_bug.cgi?id=100088

        Reviewed by Hajime Morita.

        Before this patch, the element with ::-webkit-datetime-edit had
        -webkit-align-items:center. It was incorrect at all because it
        ignores baselines of each of inner fields. We need to change it to
        -webkit-align-items:baseline, or stop using -webkit-flex.

        However -webkit-align-items:baseline doesn't work because a spin
        button element in the element doesn't have the baseline. If we
        specified -webkit-align-items:baseline, the spin button would
        shift up.

        So, we change the element structure for multiple fields input
        elements. Before this patch, the structure was:

        input
          |
           - ::-webkit-date-and-time-container (flex cotainer)
             |
             |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
             |  |- ::-webkit-datetime-edit-foo
             |  |      :
             |  |
             |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
             |   - ::-webkit-inne-spin-button
              - ::-webkit-calendar-picker-indicator

        After the patch, the structure will be:

        input
          |
           - ::-webkit-date-and-time-container (flexible box)
             |
             |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
             |  |- ::-webkit-datetime-edit-foo
             |  |      :
             |  |
             |
             |- ::-webkit-inne-spin-button
              - ::-webkit-calendar-picker-indicator

        Because the spin button owner is date-and-time-container, we don't
        need to make the datetime-edit element a flex container.

        Also, we had rounding error by subpixel layout. To avoid it, we
        stop using fractional paddings.

        In order to implement this, we need to change the SpinButtonOwner
        interface provider from DateTimeEditElement to
        BaseMultipleFieldsDateAndTimeInputType.

        No new tests. Covered by month-multiple-fields-appearance-l10n.html.

        * css/html.css:
        (input::-webkit-datetime-edit): Stop making this a flex
        container. Inner fields in this use the single baseline.
        (input::-webkit-datetime-edit-ampm-field):
        Don't use fractional paddings to avoid rounding erros of subpixel
        layout.  Use integral margin instead to avoid overwrap of focus
        ring and background-color of the field.
        (input::-webkit-datetime-edit-day-field): Ditto.
        (input::-webkit-datetime-edit-hour-field): Ditto.
        (input::-webkit-datetime-edit-millisecond-field): Ditto.
        (input::-webkit-datetime-edit-minute-field): Ditto.
        (input::-webkit-datetime-edit-month-field): Ditto.
        (input::-webkit-datetime-edit-second-field): Ditto.
        (input::-webkit-datetime-edit-week-field): Ditto.
        (input::-webkit-datetime-edit-year-field): Ditto.
        (input::-webkit-date-and-time-container): Ditto.

        * html/BaseMultipleFieldsDateAndTimeInputType.h:
        (BaseMultipleFieldsDateAndTimeInputType): Overrides
        SpinButtonOwner functions, and add m_spinButtonElement.
        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
        Just delegate to DateTimeEditElement::focusIfNoFocus.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
        Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
        Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
        Delegate to DateTimeEditElement::stepDown.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
        Delegate to DateTimeEditElement::stepUp.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
        Initialize m_spinButtonElement.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
        Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
        Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
        Take care of SpinButtonElement.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
        Release capture of SpinButtonElement. This corresponds to the old
        code of DateTimeEditElement::updateUIState.
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.

        * html/TextFieldInputType.h:
        Make SpinButtonElement::SpinButtonOwner protected to allow overriding.

        * html/shadow/DateTimeEditElement.h:
        (DateTimeEditElement): Remove SpniButtonOwner implementation,
        m_spinButton, and rename some functions.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::DateTimeEditElement):
        Remove m_spinButton.
        (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
        (WebCore::DateTimeEditElement::focusIfNoFocus):
        Renamed from focusAndSelectSpinButtonOwner. This is called
        BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
        (WebCore::DateTimeEditElement::layout):
        Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
        (WebCore::DateTimeEditElement::defaultEventHandler):
        Move the code for m_spinButton to
        BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
        (WebCore::DateTimeEditElement::hasFocusedField): A helper for
        BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
        (WebCore::DateTimeEditElement::stepDown): A helper for
        BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
        (WebCore::DateTimeEditElement::stepUp): A helper for
        BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
        (WebCore::DateTimeEditElement::updateUIState): Move the code to
        BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
        and readonlyAttributeChanged.

2012-10-23  Andreas Kling  <kling@webkit.org>

        Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
        <http://webkit.org/b/100123>

        Reviewed by Anders Carlsson.

        Remove one pointer of unintentional padding in the immutable versions of these objects.
        583kB progression on Membuster3.

        * css/StylePropertySet.cpp:
        (WebCore::immutableStylePropertySetSize):
        * dom/ElementAttributeData.cpp:
        (WebCore::immutableElementAttributeDataSize):

2012-10-23  Nate Chapin  <japhet@chromium.org>

        Crash in WebCore::SubresourceLoader::willSendRequest.
        https://bugs.webkit.org/show_bug.cgi?id=100147

        Reviewed by Abhishek Arya.

        No new tests. There is a test case that should cover this, but it doesn't
        work correctly on many platforms due to its use of testRunner.addURLToRedirect().
        See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
        Tested manually on http://www.nick.co.uk/shows/spongebob

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::willSendRequest):

2012-10-23  Martin Robinson  <mrobinson@igalia.com>

        [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
        https://bugs.webkit.org/show_bug.cgi?id=99351

        Reviewed by Carlos Garcia Campos.

        Instead of connecting to the SoupSession::authenticate signal in the API layer
        via a SoupSessionFeature, route the message through the typical WebCore authentication
        mechanism. This is a step on the path to having full-blown support for authentication
        in the API allowing for custom authentication dialogs and behavior in clients.

        No new tests. This should not change behavior.

        * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
        * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
        carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
        is destroyed.
        * platform/gtk/GtkAuthenticationDialog.h: ditto.
        * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
        * platform/network/ResourceHandleInternal.h:
        (ResourceHandleInternal): Remove the getter for the initiating page ID.
        * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
        that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
        * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
        * platform/network/soup/ResourceError.h:
        (ResourceError): Added a factory for authentication errors.
        * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
        (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
        It's always used now.
        (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
        the authentication challenge to the client.
        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
        (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
        (WebCore::authenicateCallback): Added.
        (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.

2012-10-23  Adam Barth  <abarth@webkit.org>

        [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
        https://bugs.webkit.org/show_bug.cgi?id=100157

        Reviewed by Eric Seidel.

        This patch removes the traits template parameter from GCEpilogueVisitor
        and makes it mirror GCPrologueVisitor again.

        * bindings/v8/V8GCController.cpp:
        (WebCore):
        (ActiveDOMObjectEpilogueVisitor):
        (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
        (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
        (WebCore::V8GCController::majorGCEpilogue):

2012-10-23  Varun Jain  <varunjain@chromium.org>

        Context menu generated from touch gestures on textareas has
        context of the cursor position instead of the position where the event occurs.
        https://bugs.webkit.org/show_bug.cgi?id=99520

        Reviewed by Kenneth Rohde Christiansen.

        Send a synthetic mouse down event for context menu-summoning-gesture events so
        that textareas can correctly set cursors before receiving the context menu event.

        Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::handleGestureTwoFingerTap):
        (WebCore):
        (WebCore::EventHandler::sendContextMenuEventForGesture):
        * page/EventHandler.h:
        (EventHandler):

2012-10-23  Andy Estes  <aestes@apple.com>

        [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
        https://bugs.webkit.org/show_bug.cgi?id=100162

        Reviewed by Sam Weinig.

        * WebCore.exp.in: Exported symbols needed by WebKit2.
        * bindings/objc/DOM.mm:
        (-[DOMNode textRects]): Moved some logic into Node::textRects()
        (everything but the call to updateLayoutIgnorePendingStylesheets()).
        * dom/Node.cpp:
        (WebCore::Node::textRects):
        * dom/Node.h:

2012-10-23  Adam Barth  <abarth@webkit.org>

        [V8] Remove unused function from DOM wrapper visitor
        https://bugs.webkit.org/show_bug.cgi?id=100163

        Reviewed by Eric Seidel.

        No one overrides these virtual functions. They were added in
        http://trac.webkit.org/changeset/73491, but we don't use them in the GC
        controller anymore.

        * bindings/v8/V8DOMMap.h:
        (WebCore::WeakReferenceMap::visit):

2012-10-23  Aaron Colwell  <acolwell@chromium.org>

        Clear m_mediaSource reference when the MediaSource is closed
        https://bugs.webkit.org/show_bug.cgi?id=100047

        Reviewed by Eric Carlson.

        The m_mediaSource object shouldn't be accessed after the object
        transitions to closed so this change simply clears the reference
        when that transition happens.

        No new tests because the change isn't visible to JavaScript.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
        (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.

2012-10-23  Simon Fraser  <simon.fraser@apple.com>

        Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
        https://bugs.webkit.org/show_bug.cgi?id=100159

        Reviewed by Tim Horton.

        Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
        through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.

        Test: platform/mac/tiled-drawing/use-tiled-drawing.html

        * page/Frame.h:
        * platform/graphics/GraphicsLayer.cpp:
        (showGraphicsLayerTree):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::tiledBacking):
        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::tiledBacking):
        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):
        * platform/graphics/ca/mac/TileCache.h:
        (WebCore::TileCache::tileCoverageRect):
        (TileCache):
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::computeTileCoverageRect):
        (WebCore::TileCache::revalidateTiles):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::layerTreeAsText):
        * testing/Internals.cpp:
        (WebCore::Internals::layerTreeAsText):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>

        Coordinated Graphics: Enable threaded/IPC animations
        https://bugs.webkit.org/show_bug.cgi?id=93146

        Reviewed by Kenneth Rohde Christiansen.

        Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
        across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
        and allowed a GraphicsLayerTextureMapper to receive a full list of animations.

        Covered by existing animation and compositing tests.

        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
            Initialize the animation with the startTime instead of the offset.

        (WebCore::GraphicsLayerAnimations::getActiveAnimations):
        * platform/graphics/GraphicsLayerAnimation.h:
        (WebCore::GraphicsLayerAnimation::setState):
            Allow setting the pause time as well.

        (WebCore::GraphicsLayerAnimation::boxSize):
        (WebCore::GraphicsLayerAnimation::startTime):
        (WebCore::GraphicsLayerAnimation::pauseTime):
        (WebCore::GraphicsLayerAnimation::animation):
        (WebCore::GraphicsLayerAnimation::keyframes):
        (WebCore::GraphicsLayerAnimation::listsMatch):
        (WebCore::GraphicsLayerAnimations::size):
        (WebCore::GraphicsLayerAnimations::animations):
            Add public accessors to GraphicsLayerAnimation properties.

        (GraphicsLayerAnimation):
        (GraphicsLayerAnimations):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        (WebCore::GraphicsLayerTextureMapper::setAnimations):
            Allow replacing the entire list of animations.

        (WebCore):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::applyAnimationsRecursively):
        (WebCore):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (TextureMapperLayer):

2012-10-23  Chris Rogers  <crogers@google.com>

        Change setTargetValueAtTime() to setTargetAtTime()
        https://bugs.webkit.org/show_bug.cgi?id=100153

        Reviewed by Adam Barth.

        The AudioParam method name has changed due to Web Audio API spec review.
        Keep legacy support for the old name.

        Test: webaudio/audioparam-setTargetAtTime.html

        * Modules/webaudio/AudioParam.h:
        (WebCore::AudioParam::setTargetAtTime):
        * Modules/webaudio/AudioParam.idl:
        * Modules/webaudio/AudioParamTimeline.cpp:
        (WebCore::AudioParamTimeline::setTargetAtTime):
        (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
        * Modules/webaudio/AudioParamTimeline.h:
        (AudioParamTimeline):

2012-10-23  Benjamin Poulain  <benjamin@webkit.org>

        [Mac] Remove extraneous conversion to String->NSString
        https://bugs.webkit.org/show_bug.cgi?id=100044

        Reviewed by Darin Adler.

        Improve some unfortunate use of String->NSString.

        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
        needed as NSString, and all its value are or can be NSString.
        Convert the last 3 char* values to NSString literal and use NSString* all the way.

        * loader/mac/LoaderNSURLExtras.h:
        * loader/mac/LoaderNSURLExtras.mm:
        (suggestedFilenameWithMIMEType):
        We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
        for the string to be a NSSTring there, we can leave it in its original type.

        The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.

        * platform/mac/DragImageMac.mm:
        (WebCore::createDragImageForLink):
        Use String's nsStringNilIfEmpty().

        * platform/mac/HTMLConverter.mm:
        (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
        Fix the coding style. Do the conversion to NSString only when needed.

2012-10-23  Roger Fong  <roger_fong@apple.com>

        [Win] Popup menus positioning needs to take multiple monitors into account.
        https://bugs.webkit.org/show_bug.cgi?id=100158

        Reviewed by Timothy Horton.

        Add screen.x() to repositioning check to account for position of current monitor.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::calculatePositionAndSize):

2012-10-23  Huang Dongsung  <luxtella@company100.net>

        [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
        https://bugs.webkit.org/show_bug.cgi?id=99908

        Reviewed by Dean Jackson.

        CSS Shaders can not render anything until the program is loaded. If there is
        partial loaded shaders program, whole FilterOperations chain can not render
        anything. It occurs a flash. So We have to wait until the program is loaded, to
        prevent a flash as RenderLayerBacking::updateImageContents() waits until an
        image is fully loaded.

        No new tests, CSS Shaders on Accelerated Compositing are not activated yet.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateFilters):

2012-10-23  Elliott Sprehn  <esprehn@chromium.org>

        Generated should not be supported for things with a shadow
        https://bugs.webkit.org/show_bug.cgi?id=98836

        Reviewed by Dimitri Glazkov.

        As far as CSS is concerned inputs and things with shadow content inside
        shouldn't support pseudo elements like :before, :after or :first-letter.
        Neither Gecko or Presto supports it, and we only accidentally supported
        it.

        Until the spec tells us what to do we should disable support. This is
        also neccesary because the new generated content implementation doesn't
        support shadows.

        Test: fast/forms/pseudo-elements.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateFirstLetter):
        * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::updateBeforeAfterContent):

2012-10-23  Huang Dongsung  <luxtella@company100.net>

        [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
        https://bugs.webkit.org/show_bug.cgi?id=98504

        Reviewed by Dean Jackson.

        Add expressions for the aforementioned blend modes. The expressions are lifted
        directly from the CSS Compositing and Blending spec [1]. WebKit adds these
        blending expressions to the author's shader.

        [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal

        Test: css3/filters/custom/custom-filter-blend-modes.html

        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
        (WebCore::CustomFilterValidatedProgram::blendFunctionString):

2012-10-23  Huang Dongsung  <luxtella@company100.net>

        [CSS Shaders] Implement all composite operators except destination and lighter.
        https://bugs.webkit.org/show_bug.cgi?id=97859

        Reviewed by Dean Jackson.

        Add expressions for all composite operators except destination and
        lighter. The expressions are lifted directly from the CSS Compositing
        and Blending spec [1]. WebKit adds these compositing expressions to the
        author's shader.

        [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing

        Test: css3/filters/custom/custom-filter-composite-operators.html

        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
        (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
            Remove ASSERTION checking if glGetUniformLocation returns negative,
            because ASSERTION can fail with clear and copy composite operations.
            Clear and copy composite operations do not need "css_u_texture"
            representing the DOM element texture. If the driver compiler is
            smart, "css_u_texture" is not regarded as an active uniform, so
            glGetuniformLocation returns -1. glGetAttribLocation ditto.
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore::CustomFilterValidatedProgram::compiledProgram):
            Move the above ASSERTION in CustomFilterCompiledProgram to here.
            ASSERTION checks if m_samplerLocation is not -1 when the author
            shader needs an input texture.
        (WebCore::CustomFilterValidatedProgram::needsInputTexture):
        (WebCore):
        (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
        * platform/graphics/filters/CustomFilterValidatedProgram.h:
        (CustomFilterValidatedProgram):

2012-10-23  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
        https://bugs.webkit.org/show_bug.cgi?id=99887

        Reviewed by Dirk Schulze.

        Before this patch, WebKit would not recompute an element's style when just its custom filter
        blend mode changed.

        For example, suppose an element initially has the style:
        -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));

        Then, we change the blend mode from "multiply" to "normal":
        -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));

        WebKit now detects this change and recomputes the style.

        CustomFilterProgram now has an equals operator that considers the program type and the mix
        settings. The mix settings contain the blend mode.

        Test: css3/filters/custom/custom-filter-change-blend-mode.html

        * platform/graphics/filters/CustomFilterProgram.cpp:
        (WebCore::CustomFilterProgram::operator==):
            Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
            CustomFilterProgram implements it and compares the program type and mix settings, if
            appropriate.
        (WebCore):
        * platform/graphics/filters/CustomFilterProgram.h:
        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
        (WebCore::CustomFilterProgramInfo::hash):
            Refactor a repeated condition into a boolean to improve readability.
        (WebCore::CustomFilterProgramInfo::operator==):
            Refactor repeated conditions to improve readability. Reorder the conditions so the less
            expensive ones occur first.
        * rendering/style/StyleCustomFilterProgram.h:
        (WebCore::StyleCustomFilterProgram::operator==):
            Call the base class's equals operator.

2012-10-23  David Barton  <dbarton@mathscribe.com>

        [MathML] Symbol font uses greek letters for roman ones on linux and Windows
        https://bugs.webkit.org/show_bug.cgi?id=99921

        Reviewed by Eric Seidel.

        For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
        which on linux and Windows has greek letters at roman code points. To fix this, we switch
        to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
        glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
        these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.

        Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.

        * css/mathml.css:
        (math, mfenced > *):
            - Set font-family for mn, mi, etc.
        (mo, mfenced):
            - Set font-family for mo and anonymous operators, including extension glyphs for
              stretched operators like parentheses and brackets.
        (math):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore):
            - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
        (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::createStackableStyle):
            - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
              of 14.
        (WebCore::RenderMathMLOperator::createGlyph):
            - Eliminate unused lineHeight and topRelative parameters.
        * rendering/mathml/RenderMathMLOperator.h:
        (RenderMathMLOperator):

2012-10-23  Benjamin Poulain  <benjamin@webkit.org>

        WTFURL: Implement KURL::setPort()
        https://bugs.webkit.org/show_bug.cgi?id=99898

        Reviewed by Adam Barth.

        * platform/KURLWTFURL.cpp:
        (WebCore::KURL::setPort):

2012-10-23  Nico Weber  <thakis@chromium.org>

        In the open-source jpeg decoder, read image orientation from the exif data
        https://bugs.webkit.org/show_bug.cgi?id=100144

        Reviewed by Eric Seidel.

        This will be used to implement the shouldRespectImageOrientation
        setting (see bug 19688). Currently this isn't hooked up anywhere, so
        it has no observable effect for now.

        Once it's hooked up, it will be tested by
        fast/images/exif-orientation.html

        * platform/graphics/BitmapImage.h:
        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageDecoder::orientation):
        (ImageDecoder):
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::readUint16):
        (WebCore):
        (WebCore::readUint32):
        (WebCore::checkExifHeader):
        (WebCore::readImageOrientation):
        (WebCore::JPEGImageReader::JPEGImageReader):
        (WebCore::JPEGImageReader::decode):
        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
        (WebCore::JPEGImageDecoder::setOrientation):

2012-10-23  Chris Rogers  <crogers@google.com>

        Fix thread safety issue in AudioParamTimeline
        https://bugs.webkit.org/show_bug.cgi?id=100154

        Reviewed by Kenneth Russell.

        Add appropriate locking in AudioParamTimeline::valueForContextTime()

        * Modules/webaudio/AudioParamTimeline.cpp:
        (WebCore::AudioParamTimeline::valueForContextTime):

2012-10-23  Alec Flett  <alecflett@chromium.org>

        IndexedDB: refactor backend to use IDB*Metadata
        https://bugs.webkit.org/show_bug.cgi?id=100055

        Reviewed by Tony Chang.

        This further encapsulates the static data in
        IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
        respective IDB*Metadata structs, in preparation for
        https://bugs.webkit.org/show_bug.cgi?id=99774.

        No new tests as this is purely a refactor.

        * Modules/indexeddb/IDBBackingStore.h:
        (IDBBackingStore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
        (WebCore::IDBIndexBackendImpl::metadata):
        * Modules/indexeddb/IDBIndexBackendImpl.h:
        (WebCore::IDBIndexBackendImpl::create):
        (WebCore::IDBIndexBackendImpl::id):
        (WebCore::IDBIndexBackendImpl::setId):
        (WebCore::IDBIndexBackendImpl::hasValidId):
        (WebCore::IDBIndexBackendImpl::name):
        (WebCore::IDBIndexBackendImpl::keyPath):
        (WebCore::IDBIndexBackendImpl::unique):
        (WebCore::IDBIndexBackendImpl::multiEntry):
        (IDBIndexBackendImpl):
        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::getObjectStores):
        (WebCore::IDBLevelDBBackingStore::getIndexes):
        * Modules/indexeddb/IDBLevelDBBackingStore.h:
        (IDBLevelDBBackingStore):
        * Modules/indexeddb/IDBMetadata.h:
        (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
        (WebCore::IDBObjectStoreBackendImpl::metadata):
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
        (WebCore::IDBObjectStoreBackendImpl::create):
        (WebCore::IDBObjectStoreBackendImpl::id):
        (WebCore::IDBObjectStoreBackendImpl::setId):
        (WebCore::IDBObjectStoreBackendImpl::name):
        (WebCore::IDBObjectStoreBackendImpl::keyPath):
        (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
        (IDBObjectStoreBackendImpl):

2012-10-19  Roger Fong  <roger_fong@apple.com>

        [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
        https://bugs.webkit.org/show_bug.cgi?id=94041

        Reviewed by Dean Jackson.

        When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
        However when we delete the texture, we need to be setting m_boundTexture0 to 0.
        Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
        has already been deleted we end up in an error state.

        Tested using Khronos WebGL conformance suite:
        conformance/textures/texture-size.html

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::deleteTexture):

2012-10-22  Dirk Schulze  <krit@webkit.org>

        BasicShapePolygon::path takes width instead of height for boundary calculation
        https://bugs.webkit.org/show_bug.cgi?id=99919

        Reviewed by Darin Adler.

        The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
        This caused problems on percentage values for point positions. 
        Changed it to the height of the bounding box.

        Test: css3/masking/clip-path-polygon-percentage.html

        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShapePolygon::path):

2012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>

        Add timeout support to XMLHttpRequest
        https://bugs.webkit.org/show_bug.cgi?id=74802

        Reviewed by Nate Chapin.

        An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
        This made several changes necessary in CachedResource and SubresourceLoader in order
        to distinguish and forward the timeout case from there.

        The case of late updates to the timeout property, changing the timeout value after send()
        is not supported yet and handled separately in bug 98156.

        XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
        permission to reuse them under PD/BSD license
        in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
        I adapted them for W3C testharness.js and split them into groups with shorter test running time
        so that they can be used as WebKit layout tests.

        Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html

        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
        * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
        (WebCore::CachedResource::errorOccurred):
        (WebCore::CachedResource::loadFailedOrCanceled):
        (WebCore::CachedResource::timedOut):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
        (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
        (WebCore):
        (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
        (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
        (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
        (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
        * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
        (WebCore::XMLHttpRequest::timeout):
        (XMLHttpRequest):
        * xml/XMLHttpRequest.idl: New event listener and property added.
        * xml/XMLHttpRequestException.cpp:
        * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.


2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>

        Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
        https://bugs.webkit.org/show_bug.cgi?id=99967

        Reviewed by Tony Chang.

        Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
        pressing the left mouse button outside a multiselect and then moving the cursor
        over the multiselect element while holding the button down.

        The issue is that the HTMLSelectElement handler for the mouse move event does
        not check if there is a selection before trying to extend the selection.

        Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):

2012-10-23  Adam Barth  <abarth@webkit.org>

        [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
        https://bugs.webkit.org/show_bug.cgi?id=97974

        Reviewed by Eric Seidel.

        Previously, we stored a pointer to a handle to a wrapper in Node. That
        is an extra layer of indirection that slows down finding the wrapper
        for the node. A handle is just a pointer, so we might as we just store
        the handle in the Node directly. That speeds up dom-modify and
        dom-traverse by about 2.5%.

        This change also lets us get rid of the ChunkedTable we were using to
        store all the wrappers because they're now stored in the Nodes
        directly.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
        (WebCore::IntrusiveDOMWrapperMap::get):
        (WebCore::IntrusiveDOMWrapperMap::set):
        (WebCore::IntrusiveDOMWrapperMap::contains):
        (WebCore::IntrusiveDOMWrapperMap::visit):
        (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
        (WebCore::IntrusiveDOMWrapperMap::clear):
        * bindings/v8/ScriptWrappable.h:
        (WebCore::ScriptWrappable::ScriptWrappable):
        (WebCore::ScriptWrappable::wrapper):
        (WebCore::ScriptWrappable::setWrapper):
        (WebCore::ScriptWrappable::disposeWrapper):
        (WebCore::ScriptWrappable::reportMemoryUsage):
        (ScriptWrappable):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getCachedWrapper):

2012-10-23  Kentaro Hara  <haraken@chromium.org>

        [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
        https://bugs.webkit.org/show_bug.cgi?id=100140

        Reviewed by Adam Barth.

        SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
        are deprecated (See http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/include/v8.h&exact_package=chromium&q=v8.h&type=cs&l=3149)
        Instead we should use AddGCPrologueCallback()
        and AddGCEpilogueCallback().

        No tests. No change in behavior.

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::initializeV8IfNeeded):
        * bindings/v8/V8GCController.cpp:
        (WebCore::V8GCController::gcPrologue):
        (WebCore):
        (WebCore::V8GCController::minorGCPrologue):
        (WebCore::V8GCController::majorGCPrologue):
        (WebCore::V8GCController::gcEpilogue):
        (WebCore::V8GCController::minorGCEpilogue):
        (WebCore::V8GCController::majorGCEpilogue):
        * bindings/v8/V8GCController.h:
        (V8GCController):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initIsolate):

2012-10-23  Adam Barth  <abarth@webkit.org>

        [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=100033

        Reviewed by Eric Seidel.

        This patch changes how we enumerate nodes during garbage collection.
        After this patch, we use V8's list of open handles to enumerate node
        wrappers rather than using a separate list that we maintain in WebCore
        for this purpose. A future patch will remove the list in WebCore for a
        DOM performance gain.

        * bindings/js/ScriptProfiler.h:
        (WebCore):
        (WebCore::ScriptProfiler::visitNodeWrappers):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateToV8Converters):
        * bindings/scripts/test/V8/V8TestNode.cpp:
        (WebCore::V8TestNode::wrapSlow):
        * bindings/v8/IntrusiveDOMWrapperMap.h:
        (WebCore::IntrusiveDOMWrapperMap::set):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitNodeWrappers):
        * bindings/v8/ScriptProfiler.h:
        (WebCore):
        (ScriptProfiler):
        * bindings/v8/V8DOMMap.cpp:
        (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
        (WebCore):
        (WebCore::visitAllDOMNodes):
        * bindings/v8/V8DOMMap.h:
        (WebCore):
        (NodeWrapperVisitor):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
        (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
        * bindings/v8/V8GCController.cpp:
        (WebCore::NodeVisitor::visitNodeWrapper):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::gcEpilogue):
        * inspector/BindingVisitors.h:
        (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore):

2012-10-22  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: paint rectangles are incorrectly shown in case subframes are present
        https://bugs.webkit.org/show_bug.cgi?id=99849

        Reviewed by Pavel Feldman.

        Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
        to store them as a state of InspectorPageAgent

        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::willPaintImpl):
        (WebCore::InspectorInstrumentation::didPaintImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::willPaint):
        (WebCore::InspectorInstrumentation::didPaint):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::didPaint):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::willPaint):
        (WebCore::InspectorTimelineAgent::didPaint):
        * inspector/InspectorTimelineAgent.h:
        (InspectorTimelineAgent):
        * inspector/TimelineRecordFactory.cpp:
        * inspector/TimelineRecordFactory.h:
        (TimelineRecordFactory):
        * page/FrameView.cpp:
        (WebCore::FrameView::paintContents):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintContents):

2012-10-23  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
        https://bugs.webkit.org/show_bug.cgi?id=100131

        Reviewed by Vsevolod Vlasov.

        Using ceil() - 1 instead of floor() in bucket size calculation.

        * inspector/front-end/ObjectPropertiesSection.js:

2012-10-23  Shinya Kawanaka  <shinyak@chromium.org>

        The order of resolving distribution in tree composition is wrong.
        https://bugs.webkit.org/show_bug.cgi?id=99552

        Reviewed by Dimitri Glazkov.

        According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
        However, the order of resolution is now the mixed tree order of <content> and <shadow>.

        Test: fast/dom/shadow/content-reprojection-order.html

        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
        Only the first active shadow insertion point can select the rest of contents.
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):
        * html/shadow/HTMLShadowElement.cpp:
        * html/shadow/HTMLShadowElement.h:
        (WebCore::isHTMLShadowElement):
        (WebCore):
        (WebCore::toHTMLShadowElement):
        * html/shadow/InsertionPoint.h:
        (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.

2012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Move UISourceCode creation out of mappings to workspace.
        https://bugs.webkit.org/show_bug.cgi?id=100092

        Reviewed by Pavel Feldman.

        Moved uiSourceCode constructor calls out of mappings to workspace.

        * inspector/front-end/CompilerScriptMapping.js:
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
        (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
        (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
        (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
        (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
        * inspector/front-end/SASSSourceMapping.js:
        (_bindUISourceCode):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype.addUISourceCode):
        (WebInspector.Project.prototype.removeUISourceCode):
        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
        (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):

2012-10-23  Emil A Eklund  <eae@chromium.org>

        Remove unnecessary m_layoutDelta[XY]Saturated initialization
        https://bugs.webkit.org/show_bug.cgi?id=100018

        Reviewed by Julien Chaffraix.
        
        Remove unnecessary initialization from LayoutState constructor
        added in r132105.

        No new tests, no change in functionality.

        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):

2012-10-23  Zeno Albisser  <zeno@webkit.org>

        [Texmap] Fix drawTextureRectangleARB after r131485.
        https://bugs.webkit.org/show_bug.cgi?id=100133

        Consistently rename u_textureSize to u_samplerSize.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawTextureRectangleARB):
        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::getShaderSpec):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (TextureMapperShaderProgram):

2012-10-23  Mike West  <mkwst@chromium.org>

        Web Inspector: 'data:' URLs should be properly trimmed for readability.
        https://bugs.webkit.org/show_bug.cgi?id=100083

        Reviewed by Pavel Feldman.

        We recently landed a patch to trim the middle out of long URLs in
        console messages in order to improve readability. That patch didn't
        effect 'data:' URLs, as they didn't match the regex in the linkifier.
        This patch ensures that 'data:' URLs are properly trimmed down to
        size.

        This problem came to light while resolving a different, smaller issue:
        'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
        is included in this patch.

        Test: http/tests/inspector/network/image-as-text-loading-data-url.html

        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager):
            Adds 'image/jpg' as a valid image type.
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
            Supports 'data:' URLs in the linkifier's regex.

2012-10-23  Mike West  <mkwst@chromium.org>

        Web Inspector: Floated anchor element sometimes overlaps following content.
        https://bugs.webkit.org/show_bug.cgi?id=100105

        Reviewed by Pavel Feldman.

        This patch ensures that each console message clears the
        potentially-overlapping floated anchor element.

        * inspector/front-end/inspector.css:
        (#console-prompt):
        (.console-message, .console-user-command):
            Clear the float, and flip the border from the bottom of the
            message to the top. Do the same for the prompt.
        (.console-message:first-child):
            Ensure that the first message doesn't have a top border.

2012-10-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Crash when adding a keyframes rule in the Styles pane
        https://bugs.webkit.org/show_bug.cgi?id=99826

        Reviewed by Pavel Feldman.

        The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.

        Test: inspector/styles/add-new-rule-invalid-selector.html

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::createCSSParser):
        (WebCore):
        (WebCore::InspectorStyle::setPropertyText):
        (WebCore::checkStyleRuleSelector):
        (WebCore::InspectorStyleSheet::addRule):
        (WebCore::InspectorStyleSheet::ensureSourceData):
        (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):

2012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Add support for resolution media query
        https://bugs.webkit.org/show_bug.cgi?id=99077

        Reviewed by Antti Koivisto.

        Add support for 'resolution' media query feature.

        Background info:
        http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio

        Related spec links:
        http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
        http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)

        Add infrastructure to make it testable.

        Test: fast/media/mq-resolution.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::validUnit):
        (WebCore::CSSParser::createPrimitiveNumericValue):
        (WebCore::CSSParser::parseValidPrimitive):
        (WebCore::CSSParser::detectNumberToken):
        * css/CSSParser.h:
        * css/CSSPrimitiveValue.cpp:
        (WebCore::isValidCSSUnitTypeForDoubleConversion):
        (WebCore::unitCategory):
        (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
        (WebCore::CSSPrimitiveValue::customCssText):
        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
        * css/CSSPrimitiveValue.h:

            Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
            is enabled.

        * WebCore.exp.in:

            Export the WebCore::Settings setting.

        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isDotsPerInch):
        (WebCore::CSSPrimitiveValue::isDotsPerPixel):
        (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
        (CSSPrimitiveValue):

            Add function for checking the recently added density types.

        * css/MediaFeatureNames.h:
        (MediaFeatureNames):

            Add support for resolution, min-resolution and max-resolution.

        * css/MediaQueryEvaluator.cpp:
        (WebCore::compareResolution): Add methods for comparing resolutions.
        (WebCore):
        (WebCore::resolutionMediaFeatureEval):
        (WebCore::min_resolutionMediaFeatureEval):
        (WebCore::max_resolutionMediaFeatureEval):

            Implement the resolution method evaluation.

        * css/MediaQueryExp.cpp:
        (WebCore::featureWithValidPositiveDensity):
        (WebCore):
        (WebCore::featureWithoutValue):
        (WebCore::MediaQueryExp::MediaQueryExp):

            Hook up resolution with the right pre-checks.

       * page/Screen.cpp:
        (WebCore::Screen::horizontalDPI):
        (WebCore::Screen::verticalDPI):

            Check whether an override exists, and if so, uses it.
            If not calculate the value given the device scale factor.

        * page/Settings.cpp:
        (WebCore::Settings::setResolutionOverride):
        (WebCore):
        * page/Settings.h:
        (Settings):
        (WebCore::Settings::resolutionOverride):

            Add a resolution override to settings.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::setResolutionOverride):
        (WebCore):
        * testing/InternalSettings.h:
        (Backup):
        (InternalSettings):
        * testing/InternalSettings.idl:

            Add a new setResolutionOverride method to internals.settings.

2012-10-23  Filip Spacek  <fspacek@rim.com>

        [BlackBerry] Improve the use of stencil buffer during compositing
        https://bugs.webkit.org/show_bug.cgi?id=100020

        We always want to scissor so remove the define.
        Only turn stenciling on if needed.

        Reviewed by Rob Buis.

        Reviewed internally by Arvid Nilsson.

        * platform/graphics/blackberry/LayerRenderer.cpp:
        (WebCore::LayerRenderer::setViewport):
        (WebCore::LayerRenderer::compositeLayers):
        (WebCore::LayerRenderer::drawLayersOnSurfaces):
        (WebCore::LayerRenderer::compositeLayersRecursive):
        (WebCore::LayerRenderer::updateScissorIfNeeded):

2012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>

        Not reviewed: kick out non-chromium files from WebCore.gypi.

        * WebCore.gypi:

2012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
        https://bugs.webkit.org/show_bug.cgi?id=100110

        Reviewed by Kenneth Rohde Christiansen.

        Removed initialization of ecore_x, since it is initialized when process starts.

        test: fast/media/*

        * platform/efl/PlatformScreenEfl.cpp:
        (WebCore::screenDepth):
        (WebCore::screenRect):
        * platform/efl/SoundEfl.cpp:
        (WebCore::systemBeep):

2012-10-23  Adam Klein  <adamk@chromium.org>

        Always parse pasted fragments as HTML even on XHTML pages
        https://bugs.webkit.org/show_bug.cgi?id=99880

        Reviewed by Ojan Vafai.

        When pasting HTML into a page, using the XML parser is unlikely
        to work correctly, as the contents of the clipboard are unlikely
        to be properly-formed XHTML. Thus, for the pasting case, it's always
        better to use HTML parsing, which will properly parse either HTML
        (which is what's usually in the clipboard) or XHTML (which is
        sometimes there as well).

        The Mac port previously worked around this problem by falling back to plain text
        when parsing failed, but switching to HTML seems like a clear improvement.

        This also fixes a crash in Chromium (see http://webkit.org/b/99607
        and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
        would never return null. This patch makes that true.

        * editing/markup.cpp:
        (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
        we already know our context element is safe (i.e., it's <body>),
        and we want to force HTML (not XML) parsing.

2012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
        https://bugs.webkit.org/show_bug.cgi?id=98876

        Reviewed by Simon Hausmann.

        Do not add word-spacing for leading space. This matches what simple path font-width does.

        Tested by existing tests.

        * platform/graphics/qt/FontQt.cpp:
        (WebCore::Font::floatWidthForComplexText):

2012-10-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
        https://bugs.webkit.org/show_bug.cgi?id=100084

        Reviewed by Vsevolod Vlasov.

        Use the RFC 3986 grammar for the URL scheme.

        * inspector/front-end/ParsedURL.js:
        (WebInspector.ParsedURL):

2012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Elaborate source panel sidebar context menus.
        https://bugs.webkit.org/show_bug.cgi?id=99980

        Reviewed by Vsevolod Vlasov.

        - Watches: add "Add watch expression" item to items and empty element
        - Watches: hide "Remove watch expression" from editing prompt context menu
        - Watches: add titles to header buttons
        - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
        - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
        - XHR Breakpoints: add title to header button
        - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
        - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu

        * English.lproj/localizedStrings.js: Added corresponding strings.
        * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
        (WebInspector.XHRBreakpointsSidebarPane): Ditto.
        * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
        * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.

2012-10-23  Kent Tamura  <tkent@chromium.org>

        Update binding test results for r132194
        https://bugs.webkit.org/show_bug.cgi?id=100097

        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::installPerContextProperties):

2012-10-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Sass can only resolve same folder paths
        https://bugs.webkit.org/show_bug.cgi?id=99259

        Reviewed by Vsevolod Vlasov.

        The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
        and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
        for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.

        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
        (WebInspector.CSSStyleModel.prototype.setSourceMapping):
        (WebInspector.CSSStyleModel.prototype._updateLocations):
        (WebInspector.CSSStyleModel.prototype.createLiveLocation):
        (WebInspector.CSSStyleModel.prototype.updateLocations):
        (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
        (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
        (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
        * inspector/front-end/Linkifier.js:
        (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
        (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
        (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
        (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
        * inspector/front-end/SASSSourceMapping.js:
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane):
        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
        * inspector/front-end/inspector.html:

2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132149.
        http://trac.webkit.org/changeset/132149
        https://bugs.webkit.org/show_bug.cgi?id=100098

        Breaks inspector profiler tests in debug mode. (Requested by
        pfeldman1 on #webkit).

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::styleDidChange):
        (WebCore::RenderTableCol::updateFromElement):
        (WebCore::RenderTableCol::computePreferredLogicalWidths):
        * rendering/RenderTableCol.h:
        (RenderTableCol):

2012-10-23  Simon Hausmann  <simon.hausmann@digia.com>

        Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS

        Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
        GraphicsContext3D.h to be done only if we use the surface.

        * platform/graphics/surfaces/GraphicsSurface.h:

2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132033.
        http://trac.webkit.org/changeset/132033
        https://bugs.webkit.org/show_bug.cgi?id=100097

        Broke calendar picker (Requested by tkent on #webkit).

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementation):

2012-10-23  Andras Becsi  <andras.becsi@digia.com>

        Remove devicePixelRatio from ViewportAttributes
        https://bugs.webkit.org/show_bug.cgi?id=99845

        Reviewed by Adam Barth.

        Since r121555 the devicePixelRatio is not calculated any more
        and the scale factor is stored in Page::m_deviceScaleFactor,
        thus it can be removed from ViewportAttributes to reduce
        redundancy and unnecessary client code.
        Use a new parameter in viewport calculation functions using
        the visible viewport size (instead of passing the adjusted
        viewport size) so that after this change clients do not end
        up using the unadjusted viewport size for calculations.

        No behavioural change, no new tests needed.

        * WebCore.exp.in:
        * dom/ViewportArguments.cpp:
        (WebCore::computeViewportAttributes):
        (WebCore::computeMinimumScaleFactorForContentContained):
        Add the devicePixelRatio as a parameter.
        (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
        * dom/ViewportArguments.h:
        (ViewportAttributes):
        (WebCore):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::configurationForViewport):

2012-10-23  Kent Tamura  <tkent@chromium.org>

        Support full month names in DateTimeEditElement, and use them in input[type=month] by default
        https://bugs.webkit.org/show_bug.cgi?id=100060

        Reviewed by Kentaro Hara.

        According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
        no one wants to show abbreviated month names for input[type=month].
        This change add support for full month names in DateTimeEditELement, and
        LocaleICU and LocaleMac retun month formats with full month names. Note
        that LocaleWin::monthFormat returns formats for full month names.

        No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField):
        If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::monthFormat):
        Returns a format for full month names.
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::monthFormat): Ditto.

2012-10-23  Mike West  <mkwst@chromium.org>

        Viewport errors should be slightly friendlier with regard to ';'.
        https://bugs.webkit.org/show_bug.cgi?id=100003

        Reviewed by Adam Barth.

        This patch scans viewport values that cause errors for ';'. If found,
        a quick message is appended to the error, noting that semicolons are
        not valid separators in viewport contents, and that commas would be
        the proper substitute.

        No functional changes, just a better error message.

        * dom/ViewportArguments.cpp:
        (WebCore::reportViewportWarning):

2012-10-23  Timothy Hatcher  <timothy@apple.com>

        Docking/undocking the Web Inspector does not work correctly in Safari.

        The "docked" and "bottom" strings need quoted instead of being passed as identifiers.

        https://bugs.webkit.org/show_bug.cgi?id=100080

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.

2012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>

        [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
        https://bugs.webkit.org/show_bug.cgi?id=99723

        Reviewed by Kenneth Rohde Christiansen.

        Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
        enabled.

        No new tests, no change in behavior.

        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::createSurface):

2012-10-23  Dan Carney  <dcarney@google.com>

        When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
        https://bugs.webkit.org/show_bug.cgi?id=63257

        Reviewed by Jochen Eisinger.

        Throw security exception when local storage is accessed
        under certain circumstances to match firefox.

        No new tests. Existing tests modified.

        * bindings/js/JSStorageCustom.cpp:
        (WebCore::JSStorage::canGetItemsForName):
        (WebCore::JSStorage::nameGetter):
        (WebCore::JSStorage::deleteProperty):
        (WebCore::JSStorage::getOwnPropertyNames):
        * bindings/v8/custom/V8StorageCustom.cpp:
        (WebCore):
        (WebCore::setDOMException):
        (WebCore::V8Storage::namedPropertyEnumerator):
        (WebCore::storageGetter):
        (WebCore::V8Storage::namedPropertyQuery):
        (WebCore::storageDeleter):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::sessionStorage):
        (WebCore::DOMWindow::localStorage):
        * storage/Storage.cpp:
        * storage/Storage.h:
        (WebCore):
        (WebCore::Storage::length):
        (WebCore::Storage::key):
        (WebCore::Storage::getItem):
        (WebCore::Storage::setItem):
        (WebCore::Storage::removeItem):
        (WebCore::Storage::clear):
        (WebCore::Storage::contains):
        * storage/Storage.idl:
        * storage/StorageArea.h:
        (StorageArea):
        * storage/StorageAreaImpl.cpp:
        (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
        (WebCore):
        (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
        (WebCore::StorageAreaImpl::length):
        (WebCore::StorageAreaImpl::key):
        (WebCore::StorageAreaImpl::getItem):
        (WebCore::StorageAreaImpl::setItem):
        (WebCore::StorageAreaImpl::removeItem):
        (WebCore::StorageAreaImpl::clear):
        (WebCore::StorageAreaImpl::contains):
        * storage/StorageAreaImpl.h:
        (StorageAreaImpl):

2012-10-22  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove custom binding code for IDBCursor.value
        https://bugs.webkit.org/show_bug.cgi?id=100034

        Reviewed by Kentaro Hara.

        Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
        IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
        semantics that the object identity is retained across accesses.

        Test: storage/indexeddb/cursor-value.html

        * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
        (WebCore::IDBCursor::IDBCursor):
        (WebCore::IDBCursor::value):
        (WebCore::IDBCursor::setValueReady):
        * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
        (IDBCursor):
        * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
        * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
        (WebCore):
        * UseV8.cmake: Remove references to IDBCustomBindings.cpp
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * bindings/v8/IDBCustomBindings.cpp: Removed.

2012-10-22  Dan Bernstein  <mitz@apple.com>

        Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
        https://bugs.webkit.org/show_bug.cgi?id=100068

        Reviewed by Sam Weinig.

        As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
        correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
        for now just use the complex code path in this case.

        * platform/graphics/Font.cpp:
        (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
        typesetting features.
        (WebCore::Font::drawEmphasisMarks): Ditto.
        (WebCore::Font::selectionRectForText): Ditto.
        (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
        typesetting features.

2012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>

        [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
        https://bugs.webkit.org/show_bug.cgi?id=99950

        Reviewed by George Staikos.

        In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
        we should combine the following ones with the first.

        No new test case.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::handleNotifyHeaderReceived):

2012-10-22  MORITA Hajime  <morrita@google.com>

        Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
        https://bugs.webkit.org/show_bug.cgi?id=100038

        Reviewed by Kent Tamura.

        isHTMLContentElement() assumes that the content element always has
        a tag name "content" but it doesn't when Shadow DOM feature is
        disabled. This fix let the function see the correct tag name.

        Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html

        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::contentTagName):
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):
        (WebCore::isHTMLContentElement):

2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Fallback content should also be reprojection.
        https://bugs.webkit.org/show_bug.cgi?id=99750

        Reviewed by Dimitri Glazkov.

        Fallback content of InsertionPoint should be reprojected. The existing assumption that
        only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
        So, if the parent of an element is InsertionPoint which should show fallback element, we have to
        check the grand parent of the element instead of the element.

        Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
               fast/dom/shadow/content-reprojection-fallback.html

        * css/StyleResolver.cpp:
        (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
        an InsertionPoint which uses fallback content.
        * dom/ComposedShadowTreeWalker.cpp:
        (WebCore::shadowOfParentForDistribution):
        (WebCore):
        (WebCore::resolveReprojection):
        (WebCore::ComposedShadowTreeWalker::traverseParent):
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
        (WebCore):
        * html/shadow/InsertionPoint.h:
        (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
        fallback content. Returns parent element otherwise.
        (WebCore):

2012-10-22  Keishi Hattori  <keishi@webkit.org>

        Label position is wrong in the suggestion picker when all the suggestions have labels
        https://bugs.webkit.org/show_bug.cgi?id=99965

        Reviewed by Kent Tamura.

        Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.

        No new tests. Can't reproduce in layout test.

        * Resources/pagepopups/suggestionPicker.css:
        (.suggestion-list):
        * Resources/pagepopups/suggestionPicker.js:
        (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.

2012-10-22  MORITA Hajime  <morrita@google.com>

        [Chromium] Needs to track ShadowRoot usage
        https://bugs.webkit.org/show_bug.cgi?id=99955

        Reviewed by Dimitri Glazkov.

        Added an UMA instrumentation.

        * dom/ShadowRoot.cpp:
        (WebCore::determineUsageType):
        (WebCore):
        (WebCore::ShadowRoot::create):

2012-10-22  Kent Tamura  <tkent@chromium.org>

        Introduce Localizer::standAloneMonthLabels
        https://bugs.webkit.org/show_bug.cgi?id=99963

        Reviewed by Kentaro Hara.

        We realized full month names and full stand-alone month names were
        necessary for input[type=month] UI. We change the compile-flag for
        Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
        "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
        introduce Localizer::standAloneMonthLabels.

        Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
        and LocalizedDateICUTest.cpp.

        * platform/text/Localizer.h:
        (Localizer):
        - Add pure virtual standAloneMonthLabels.
        - Change the condition for monthLabels.

        * platform/text/LocaleNone.cpp:
        (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
        (WebCore::LocaleNone::monthLabels):
        Added. It always returns English month names.
        (WebCore::LocaleNone::standAloneMonthLabels):
        Added. Just calls monthLabels.

        * platform/text/LocaleWin.h:
        (LocaleWin):
        Declare standAloneMonthLabels, and change the condition for monthLabels.
        * platform/text/LocaleWin.cpp:
        (WebCore): Change the condition for monthLabels.
        (WebCore::LocaleWin::standAloneMonthLabels):
        Added. Just calls monthLabels.

        * platform/text/mac/LocaleMac.h:
        (LocaleMac):
        - Add standAloneMonthLabels and m_standAloneMonthLabels
        - Change the condition for monthLabels and m_monthLabels.
        * platform/text/mac/LocaleMac.mm:
        (WebCore): Change the condition for monthLabels.
        (WebCore::LocaleMac::standAloneMonthLabels):
        Added. Get the information with NSDateFormatter::standaloneMonthSymbols.

        * platform/text/LocaleICU.h:
        (LocaleICU):
        - Add standAloneMonthLabels and m_standAloneMonthLabels
        - Change the condition for monthLabels and m_monthLabels.
        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::initializeCalendar):
        Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
        (WebCore):
        (WebCore::createFallbackMonthLabels): Change the compile condition.
        (WebCore::LocaleICU::monthLabels):
        - Change the compile condition.
        - Don't depend on initializeCalendar to make the code for
        ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
        (WebCore::LocaleICU::standAloneMonthLabels):
        Added. The code is similar to shortStandAloneMonthLabels.

2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>

        Refactoring around ContainerNode::attachChildren
        https://bugs.webkit.org/show_bug.cgi?id=99968

        Reviewed by Hajime Morita.

        Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
        ContainerNode::attach() instead of calling them.

        No new tests, no change in behavior.

        * dom/ContainerNode.h:
        (ContainerNode):
        * dom/Element.cpp:
        (WebCore::Element::attach):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::attach):

2012-10-22  Michael Saboff  <msaboff@apple.com>

        HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
        https://bugs.webkit.org/show_bug.cgi?id=99889

        Reviewed by Geoffrey Garen.

        Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
        "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
        m_bufferedEndTagName as LChar's.

        No new tests, covered by existing tests.

        * html/parser/HTMLToken.h:
        (HTMLToken):
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::nextToken):
        (WebCore::HTMLTokenizer::addToPossibleEndTag):
        (WebCore::HTMLTokenizer::isAppropriateEndTag):
        * html/parser/HTMLTokenizer.h:
        (HTMLTokenizer):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
        * xml/parser/MarkupTokenBase.h:
        (WebCore::MarkupTokenBase::beginStartTag):
        (WebCore::MarkupTokenBase::beginEndTag):
        (MarkupTokenBase):
        (WebCore::MarkupTokenBase::beginDOCTYPE):
        (WebCore::MarkupTokenBase::appendToComment):
        (WebCore::MarkupTokenBase::appendToName):
        (WebCore::MarkupTokenBase::nameString):
        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):

2012-10-22  Tony Chang  <tony@chromium.org>

        margin-top/bottom has no effect for child nodes of flex items
        https://bugs.webkit.org/show_bug.cgi?id=99923

        Reviewed by Ojan Vafai.

        Flexitems, like table cells, shouldn't collapse margins.

        Test: css3/flexbox/flexitem-no-margin-collapsing.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
        We should always have a parent if we make it this far in the check.

2012-10-22  Marja Hölttä  <marja@chromium.org>

        Refactor CachedResourceLoader: add CachedResourceRequest
        https://bugs.webkit.org/show_bug.cgi?id=99736

        Reviewed by Adam Barth.

        For fixing bugs 84883 and 92761,
        CachedResourceLoader::requestResource should take as parameter
        information about who initiated the request. But the parameter
        list was already long. This gathers all the parameters into a
        separate class, CachedResourceRequest. The next step is to add
        information about who initiated the request into
        CachedResourceRequest.

        No new tests because no changes in functionality, just moving code
        around.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::cachedFont):
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::cachedImageSet):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::cachedImage):
        * css/StyleRuleImport.cpp:
        (WebCore::StyleRuleImport::requestStyleSheet):
        * css/WebKitCSSSVGDocumentValue.cpp:
        (WebCore::WebKitCSSSVGDocumentValue::load):
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::cachedShader):
        * dom/ProcessingInstruction.cpp:
        (WebCore::ProcessingInstruction::checkStyleSheet):
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::requestScript):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):
        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::loadRequest):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement):
        * loader/LinkLoader.cpp:
        (WebCore::LinkLoader::loadLink):
        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::load):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestImage):
        (WebCore::CachedResourceLoader::requestFont):
        (WebCore::CachedResourceLoader::requestTextTrack):
        (WebCore::CachedResourceLoader::requestShader):
        (WebCore::CachedResourceLoader::requestCSSStyleSheet):
        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
        (WebCore::CachedResourceLoader::requestScript):
        (WebCore::CachedResourceLoader::requestXSLStyleSheet):
        (WebCore::CachedResourceLoader::requestSVGDocument):
        (WebCore::CachedResourceLoader::requestLinkResource):
        (WebCore::CachedResourceLoader::requestRawResource):
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::requestPreload):
        (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
        (WebCore):
        * loader/cache/CachedResourceLoader.h:
        (WebCore):
        (CachedResourceLoader):
        * loader/cache/CachedResourceRequest.cpp: Added.
        (WebCore):
        (WebCore::CachedResourceRequest::CachedResourceRequest):
        * loader/cache/CachedResourceRequest.h: Added.
        (WebCore):
        (CachedResourceRequest):
        (WebCore::CachedResourceRequest::mutableResourceRequest):
        (WebCore::CachedResourceRequest::resourceRequest):
        (WebCore::CachedResourceRequest::charset):
        (WebCore::CachedResourceRequest::setCharset):
        (WebCore::CachedResourceRequest::options):
        (WebCore::CachedResourceRequest::priority):
        (WebCore::CachedResourceRequest::forPreload):
        (WebCore::CachedResourceRequest::setForPreload):
        (WebCore::CachedResourceRequest::defer):
        (WebCore::CachedResourceRequest::setDefer):
        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::startLoading):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::requestImageResource):
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::loadFont):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::svgAttributeChanged):
        * xml/XSLImportRule.cpp:
        (WebCore::XSLImportRule::loadSheet):

2012-10-22  Adam Barth  <abarth@webkit.org>

        [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
        https://bugs.webkit.org/show_bug.cgi?id=100046

        Reviewed by Eric Seidel.

        This function is called only on worker threads. We should ASSERT that
        fact and remove the dead code that tries to handle the main thread
        case.

        * bindings/v8/V8DOMMap.cpp:
        (WebCore::removeAllDOMObjects):

2012-10-22  Adam Barth  <abarth@webkit.org>

        [V8] We should call the faster v8::Integer::New APIs
        https://bugs.webkit.org/show_bug.cgi?id=100016

        Reviewed by Eric Seidel.

        In working to remove the integer cache, I added some faster APIs for
        creating v8::Integers. These APIs are faster than the old APIs, but not
        quite fast enough to replace the integer cache. We should still use
        them when we miss the integer cache.

        I've also included a small refactoring to V8PerIsolateData to make it
        clearer when we're calling v8::Isolate::GetCurrent().

        * bindings/v8/DOMData.cpp:
        (WebCore::DOMData::getCurrentStore):
        * bindings/v8/V8Binding.h:
        (WebCore::v8ExternalString):
        (WebCore::v8Integer):
        (WebCore::v8UnsignedInteger):
        * bindings/v8/V8PerIsolateData.h:
        (WebCore::V8PerIsolateData::current):
        (WebCore::V8PerIsolateData::from):
        * bindings/v8/V8ValueCache.cpp:
        (WebCore::StringCache::v8ExternalStringSlow):
        (WebCore::IntegerCache::createSmallIntegers):
        * bindings/v8/V8ValueCache.h:
        (WebCore::IntegerCache::v8Integer):
        (WebCore::IntegerCache::v8UnsignedInteger):
        (IntegerCache):
        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
        (WebCore::V8HTMLCanvasElement::getContextCallback):

2012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>

        RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
        https://bugs.webkit.org/show_bug.cgi?id=99861

        Reviewed by Ojan Vafai.

        RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
        widths dirty / layout flag so that we would properly propagate the information to our containing table. This
        led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
        or else we would ignore the next layout hint on the <col> or <colgroup>.

        Test: fast/table/col-span-change-relayout.html

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        Simplified the code now that we only need to iterate over the sections.

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray):
        Removed call to computePreferredLogicalWidths.

        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::styleDidChange):
        (WebCore::RenderTableCol::updateFromElement):
        Forward a layout hint to the table so that we properly recompute the cell's logical withs.

        (WebCore::RenderTableCol::computePreferredLogicalWidths):
        (WebCore::RenderTableCol::layout):
        Change our implementations of those 2 methods to be no-ops, while enforcing that they are
        never called.

        (WebCore::RenderTableCol::propagateLayoutCueToTable):
        New helper function that forward any layout cue to the containing table, this works around
        us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
        invalidateContainerPreferredLogicalWidths.

        * rendering/RenderTableCol.h:
        Made the function that we are not expected to be called private.

2012-10-22  Pan Deng  <pan.deng@intel.com>

        [User Timing]Integrate with Perforamnce Timeline.
        https://bugs.webkit.org/show_bug.cgi?id=91072.

        Reviewed by Tony Gentilcore.

        This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch

        No new tests, user timing test cases have been landed.

        * page/Performance.cpp:
        (WebCore::Performance::Performance):
        (WebCore::Performance::webkitGetEntries):
        (WebCore::Performance::webkitGetEntriesByType):
        (WebCore::Performance::webkitGetEntriesByName):
        * page/PerformanceEntry.h:
        (WebCore::PerformanceEntry::startTimeCompareLessThan):
        (PerformanceEntry):
        * page/PerformanceEntryList.cpp:
        (WebCore::PerformanceEntryList::sort):
        (WebCore):
        * page/PerformanceEntryList.h:
        (PerformanceEntryList):
        * page/PerformanceUserTiming.cpp:
        (WebCore::convertToEntrySequence):
        (WebCore):
        (WebCore::getEntrySequenceByName):
        (WebCore::UserTiming::getMarks):
        (WebCore::UserTiming::getMeasures):
        * page/PerformanceUserTiming.h:
        (UserTiming):

2012-10-22  Pan Deng  <pan.deng@intel.com>

        Modify obsolete code in User Timing
        https://bugs.webkit.org/show_bug.cgi?id=99851

        Reviewed by Tony Gentilcore.

        Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.

        No new tests.

        * page/PerformanceUserTiming.cpp:
        (WebCore::insertPerformanceEntry):
        (WebCore::UserTiming::mark):
        (WebCore::UserTiming::measure):
        * page/PerformanceUserTiming.h:

2012-10-22  Mark Lam  <mark.lam@apple.com>

        Change stack recursion checks to be based on stack availability.
        https://bugs.webkit.org/show_bug.cgi?id=99872.

        Reviewed by Filip Pizlo and Geoffrey Garen.

        Removed the use of ThreadStackType. Enabled the reserved JSStack space
        for error processing before doing work in reportException().

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonJSGlobalData):
        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::WorkerScriptController):

2012-10-22  Andreas Kling  <kling@webkit.org>

        REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
        <http://webkit.org/b/99937>

        Reviewed by Anders Carlsson.

        Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
        input type changing mechanism to write a value attribute onto the element. This happens in
        HTMLInputElement::updateType(), below parseAttribute().

        It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
        where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
        a reallocation in the ElementAttributeData's underlying Vector<Attribute>.

        To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
        a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
        fewer references into the attribute store we have, the better.)

        Test: fast/html/input-type-change-crash.html

        * dom/Attr.cpp:
        (WebCore::Attr::setValue):
        (WebCore::Attr::childrenChanged):
        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):
        (WebCore::Element::attributeChanged):
        (WebCore::Element::parserSetAttributes):
        (WebCore::Element::addAttributeInternal):
        (WebCore::Element::didAddAttribute):
        (WebCore::Element::didModifyAttribute):
        (WebCore::Element::didRemoveAttribute):
        * dom/Element.h:
        (Element):
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::cloneDataFrom):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        * dom/StyledElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::attributeChanged):
        * svg/SVGElement.h:
        (SVGElement):

2012-10-22  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Bounds check for IDBCursor.advance() incorrect
        https://bugs.webkit.org/show_bug.cgi?id=100014

        Reviewed by Tony Chang.

        Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
        as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
        useless comparison was caught by a clang check.

        In lieu of webkit.org/b/96798 make it long long and correct the range check.

        Test: storage/indexeddb/cursor-advance.html

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::advance):
        * Modules/indexeddb/IDBCursor.h:
        (IDBCursor):
        * Modules/indexeddb/IDBCursor.idl:

2012-10-22  Tony Chang  <tony@chromium.org>

        WebKit does not support 'flex-wrap: nowrap'
        https://bugs.webkit.org/show_bug.cgi?id=99924

        Reviewed by Ojan Vafai.

        The spec changed back from using none to nowrap for the single-line
        flexbox case.
        http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property

        No new tests, covered by css3/flexbox/css-properties.html and others.

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EFlexWrap):
        * css/CSSValueKeywords.in:
        * rendering/RenderBox.cpp:
        (WebCore::isStretchingColumnFlexItem):
        (WebCore::RenderBox::sizesLogicalWidthToFitContent):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::isMultiline):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:

2012-10-22  Mike West  <mkwst@chromium.org>

        'image/pjpeg' should be treated as an image by Web Inspector.
        https://bugs.webkit.org/show_bug.cgi?id=100001

        Reviewed by Pavel Feldman.

        It's not exactly a "real" MIME type, but it's in use.

        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager):
            Adding 'image/pjpeg' as an image MIME type.

2012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r132119.
        http://trac.webkit.org/changeset/132119
        https://bugs.webkit.org/show_bug.cgi?id=100019

        Fails its own test on Mac platforms. (Requested by leviw on
        #webkit).

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::sendContextMenuEventForGesture):
        * page/EventHandler.h:
        (EventHandler):

2012-10-22  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
        https://bugs.webkit.org/show_bug.cgi?id=98967

        Reviewed by Dirk Schulze.

        Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
        so that they're consistent with the rendering code that depends on them.  Lines are now defined
        by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
        in functionality. It's already covered by the existing fast/exclusions LayoutTests.

        Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::ExclusionPolygon::getExcludedIntervals):
        (WebCore::ExclusionPolygon::getIncludedIntervals):
        * rendering/ExclusionPolygon.h:
        * rendering/ExclusionRectangle.cpp:
        (WebCore::ExclusionRectangle::getExcludedIntervals):
        (WebCore::ExclusionRectangle::getIncludedIntervals):
        * rendering/ExclusionRectangle.h:
        * rendering/ExclusionShape.h:
        (LineSegment): Moved the struct fields below the constructor per webkit style.
        (ExclusionShape):
        (WebCore::ExclusionShape::minYForLogicalLine):
        (WebCore::ExclusionShape::maxYForLogicalLine):
        * rendering/ExclusionShapeInsideInfo.cpp:
        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
        * rendering/ExclusionShapeInsideInfo.h:
        (ExclusionShapeInsideInfo):
        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
            lines whose logicalTop is equal to the shape's top+height.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):

2012-10-22  Chris Rogers  <crogers@google.com>

        Update some AudioContext create() method names to latest Web Audio spec
        https://bugs.webkit.org/show_bug.cgi?id=99888

        Reviewed by Adam Barth.

        The following AudioContext method names are being changed, with legacy support for the old names:
        createGainNode -> createGain
        createDelayNode -> createDelay
        createJavaScriptNode -> createScriptProcessor

        For details:
        https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332

        Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
        to test coverage of the new names.

        * Modules/webaudio/AudioBufferSourceNode.idl:
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createScriptProcessor):
        (WebCore::AudioContext::createGain):
        (WebCore::AudioContext::createDelay):
        * Modules/webaudio/AudioContext.h:
        (AudioContext):
        * Modules/webaudio/AudioContext.idl:
        * page/FeatureObserver.h:

2012-10-22  Varun Jain  <varunjain@chromium.org>

        Context menu generated from touch gestures on textareas has
        context of the cursor position instead of the position where the event occurs.
        https://bugs.webkit.org/show_bug.cgi?id=99520

        Reviewed by Kenneth Rohde Christiansen.

        Send a synthetic mouse down event for context menu-summoning-gesture events so
        that textareas can correctly set cursors before receiving the context menu event.

        Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::handleGestureTwoFingerTap):
        (WebCore):
        (WebCore::EventHandler::sendContextMenuEventForGesture):
        * page/EventHandler.h:
        (EventHandler):

2012-10-22  Zeno Albisser  <zeno@webkit.org>

        TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
        https://bugs.webkit.org/show_bug.cgi?id=100002

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
            Check if a surface has been created before accessing the pointer.
        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
            Check if m_graphicsSurface is a valid pointer before dereferencing it.

2012-10-22  Michael Saboff  <msaboff@apple.com>

        r131955 is has improper function call in LinkHashChromium.cpp
        https://bugs.webkit.org/show_bug.cgi?id=100008

        Reviewed by Alexey Proskuryakov.

        Followup fix to r131955 for chromium platform.  Added call to 
        (const UChar*, unsigned) version of visitedLinkHash from String& version.

        * platform/chromium/LinkHashChromium.cpp:
        (WebCore::visitedLinkHash):

2012-10-22  Aaron Colwell  <acolwell@chromium.org>

        webkitsourceopen event doesn't always fire
        https://bugs.webkit.org/show_bug.cgi?id=99868

        Reviewed by Adam Barth.

        Changed MediaSource to derive from ActiveDOMObject so that event listeners
        will still fire even if all references to the object go out of scope.

        Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::create):
        (WebCore::MediaSource::MediaSource):
        (WebCore::MediaSource::scriptExecutionContext):
        (WebCore):
        (WebCore::MediaSource::hasPendingActivity):
        (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
        * Modules/mediasource/MediaSource.h:
        (MediaSource):
        * Modules/mediasource/MediaSource.idl:
        * Modules/mediasource/MediaSourceRegistry.cpp:
        (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
        (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.

2012-10-22  Adam Barth  <abarth@webkit.org>

        [V8] Vastly simplify V8GCController's NodeVisitor
        https://bugs.webkit.org/show_bug.cgi?id=99884

        Reviewed by Kentaro Hara.

        NodeVisitor was vastly more complicated than necessary.

        This patch improve performance on these new gc benchmarks:

        gc-forest: 1.14% better
        gc-mini-tree: 5.09% better
        gc-tree: 4.60% better

        * bindings/v8/V8GCController.cpp:
        (WebCore::ObjectVisitor::visitDOMWrapper):
        (WebCore::addImplicitReferencesForNodeWithEventListeners):
        (WebCore::rootForGC):
        (WebCore::NodeVisitor::visitDOMWrapper):
        (WebCore::NodeVisitor::applyGrouping):
        (NodeVisitor):

2012-10-22  Emil A Eklund  <eae@chromium.org>

        Change baselinePosition and maxAscent/maxDescent to int
        https://bugs.webkit.org/show_bug.cgi?id=99767

        Reviewed by Levi Weintraub.

        Currently baselinePostion, maxAscent and maxDescent are
        LayoutUnits while ascent, descent and m_lineHeight are ints.
        This can lead to subtle alignment and rounding problems.

        Change baselinePosition and maxAscent/maxDescent to int to avoid
        these issues.

        Test: fast/sub-pixel/replaced-element-baseline.html

        * editing/FrameSelection.cpp:
        (WebCore::repaintRectForCaret):
        Inflate Y dimension just like we do for X to ensure that the
        repaint rect fully contains the caret.

        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::baselinePosition):
        * rendering/InlineBox.h:
        (InlineBox):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
        Change maxAscent/maxDescent to int to match ascent/descent.
        
        * rendering/InlineFlowBox.h:
        (InlineFlowBox):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::baselinePosition):
        * rendering/InlineTextBox.h:
        (InlineTextBox):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::baselinePosition):
        (WebCore::RenderBlock::firstLineBoxBaseline):
        (WebCore::RenderBlock::lastLineBoxBaseline):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::baselinePosition):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::firstLineBoxBaseline):
        (WebCore::RenderBox::lastLineBoxBaseline):
        (RenderBox):
        * rendering/RenderBoxModelObject.h:
        (RenderBoxModelObject):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::baselinePosition):
        (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
        * rendering/RenderFlexibleBox.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::baselinePosition):
        * rendering/RenderInline.h:
        (RenderInline):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::baselinePosition):
        * rendering/RenderListBox.h:
        (RenderListBox):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::baselinePosition):
        * rendering/RenderListMarker.h:
        (RenderListMarker):
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::baselinePosition):
        * rendering/RenderSlider.h:
        (RenderSlider):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::baselinePosition):
        (WebCore::RenderTable::lastLineBoxBaseline):
        (WebCore::RenderTable::firstLineBoxBaseline):
        * rendering/RenderTable.h:
        (RenderTable):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::firstLineBoxBaseline):
        * rendering/RenderTableSection.h:
        (RenderTableSection):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::baselinePosition):
        * rendering/RenderTextControlMultiLine.h:
        (RenderTextControlMultiLine):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::baselinePosition):
        * rendering/RenderTheme.h:
        (RenderTheme):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::baselinePosition):
        * rendering/RenderThemeSafari.h:
        (RenderThemeSafari):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::baselinePosition):
        (WebCore::RootInlineBox::alignBoxesInBlockDirection):
        * rendering/RootInlineBox.h:
        (RootInlineBox):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::baselinePosition):
        (WebCore::RenderMathMLTable::firstLineBoxBaseline):
        * rendering/mathml/RenderMathMLBlock.h:
        (RenderMathMLBlock):
        (RenderMathMLTable):
        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
        * rendering/mathml/RenderMathMLFraction.h:
        (RenderMathMLFraction):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
        * rendering/mathml/RenderMathMLUnderOver.h:
        (RenderMathMLUnderOver):

2012-10-22  Emil A Eklund  <eae@chromium.org>

        Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
        https://bugs.webkit.org/show_bug.cgi?id=98692

        Reviewed by Dan Bernstein.

        We currently overflow/wrap when computing the delta in
        RenderBlock::setLogicalTopForChild in cases where we have an
        element with a width or height exceeding maxLayoutUnit. When
        the delta is later added back in RenderBlock::layoutBlockChild
        the number wraps again getting us back to the correct value.

        With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
        wraps, which seems like the correct thing to do however this
        causes the compare to fail for obvious reasons. By accounting
        for this we can keep the asserts (which have proven very
        helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.

        No new tests, covered by existing tests.

        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        * rendering/LayoutState.h:
        (WebCore::LayoutState::LayoutState):
        (LayoutState):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlockChild):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::layout):
        * rendering/RenderView.h:
        (WebCore::RenderView::addLayoutDelta):
        (RenderView):
        (WebCore::RenderView::layoutDeltaMatches):

2012-10-22  Tony Chang  <tony@chromium.org>

        Fix some baseline flexbox alignment
        https://bugs.webkit.org/show_bug.cgi?id=99879

        Reviewed by Ojan Vafai.

        Fix a bug where we weren't handling margin properly on inline-flexbox.
        Fix a bug where we weren't getting the edge of the content box properly when synthesizing
        a baseline.

        Test: css3/flexbox/flexbox-baseline-margins.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::baselinePosition):
        (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
        baseline. Previously we would use lastLineBoxBaseline.
        (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
        * rendering/RenderBlock.h:
        (RenderBlock): Make lastLineBoxBaseline non-virtual.
        * rendering/RenderBox.h:
        (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
        (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
        (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
        synthesize a baseline if we have a flexitem without text.
        (WebCore::RenderFlexibleBox::inlineBlockBaseline):
        * rendering/RenderFlexibleBox.h:
        * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
        (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
        * rendering/RenderTable.h:
        (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.

2012-10-22  Levi Weintraub  <leviw@chromium.org>

        Unreviewed Chromium build fix following r132074.

        * WebCore.gypi:

2012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Don't use deprecated AccessibilityObject methods after r99502
        https://bugs.webkit.org/show_bug.cgi?id=99985

        Reviewed by Chris Fleizach.

        Update callers for AccessibilityObject's title() and
        accessibilityDescription() so they now use AccessibilityText.

        * accessibility/gtk/WebKitAccessibleUtil.cpp:
        (titleTagShouldBeUsedInDescriptionField): Internal helper function.
        (accessibilityTitle): New helper function, returns an String with
        the title for a AccessibilityObject, using AccessibleText.
        (accessibilityDescription): New helper function, returns an String with
        the description for a AccessibilityObject, using AccessibleText.
        * accessibility/gtk/WebKitAccessibleUtil.h: Added public
        declarations for accessibilityTitle and accessibilityDescription.

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetName): Use new helpers for retrieving the title.
        (webkitAccessibleGetDescription): Use new helpers for retrieving
        the title and description.

        * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
        (webkitAccessibleImageGetImageDescription): Use new helpers for
        retrieving the title.

2012-10-16  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: add timeline instrumentation for scrolling of a layer
        https://bugs.webkit.org/show_bug.cgi?id=99461

        Reviewed by Pavel Feldman.

        - added timeline instrumentation for scrolling of a layer;
        - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()

        * inspector/InspectorInstrumentation.cpp:
        (WebCore):
        (WebCore::InspectorInstrumentation::willScrollLayerImpl):
        (WebCore::InspectorInstrumentation::didScrollLayerImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::willScrollLayer):
        (WebCore):
        (WebCore::InspectorInstrumentation::didScrollLayer):
        * inspector/InspectorTimelineAgent.cpp:
        (TimelineRecordType):
        (WebCore::InspectorTimelineAgent::willScroll):
        (WebCore):
        (WebCore::InspectorTimelineAgent::didScroll):
        * inspector/InspectorTimelineAgent.h:
        (InspectorTimelineAgent):
        * inspector/front-end/TimelineModel.js:
        * inspector/front-end/TimelinePresentationModel.js:
        (WebInspector.TimelinePresentationModel._initRecordStyles):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::scrollPositionChanged):

2012-10-22  Jan Keromnes  <janx@linux.com>

        Moved cmdevtools.js to folder cm/

        Web Inspector: Move file `cmdevtools.css` to `cm/`
        https://bugs.webkit.org/show_bug.cgi?id=99956

        Reviewed by Pavel Feldman.

        The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
        (.CodeMirror):
        (.CodeMirror-scroll):
        (.cm-highlight):
        (@-webkit-keyframes fadeout):
        (to):
        (.cm-breakpoint):
        (.cm-breakpoint-disabled):
        (.cm-breakpoint-conditional):
        (.cm-execution-line):
        (.cm-s-web-inspector-js span.cm-keyword):
        (.cm-s-web-inspector-js span.cm-number):
        (.cm-s-web-inspector-js span.cm-comment):
        (.cm-s-web-inspector-js span.cm-string):
        (.cm-s-web-inspector-js span.cm-string-2):
        (.cm-s-web-inspector-css span.cm-keyword):
        (.cm-s-web-inspector-css span.cm-number):
        (.cm-s-web-inspector-css span.cm-comment):
        (.cm-s-web-inspector-css span.cm-string):
        (.cm-s-web-inspector-css span.cm-string-2):
        (.cm-s-web-inspector-css span.cm-link):
        (.cm-s-web-inspector-css span.cm-variable):
        (.cm-s-web-inspector-html span.cm-meta):
        (.cm-s-web-inspector-html span.cm-comment):
        (.cm-s-web-inspector-html span.cm-string):
        (.cm-s-web-inspector-html span.cm-tag):
        (.cm-s-web-inspector-html span.cm-attribute):
        (.cm-s-web-inspector-html span.cm-link):
        (.webkit-html-message-bubble):
        (.webkit-html-warning-message):
        (.webkit-html-error-message):
        (.webkit-html-message-line):
        (.webkit-html-message-line-hover):

2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
        https://bugs.webkit.org/show_bug.cgi?id=99997

        Reviewed by Pavel Feldman.

        Source mappings could now store a link to temporary uiSourceCodes only.
        Otherwise it should retrieve uiSourceCodes from workspace by URL.
        Original uiSourceCodes are now temporary in CompilerScriptMapping.

        * inspector/front-end/CompilerScriptMapping.js:
        (WebInspector.CompilerScriptMapping):
        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
        (WebInspector.CompilerScriptMapping.prototype._reset):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider):
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
        (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
        (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping):
        (_bindUISourceCode):
        (_reset):

2012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        Gstreamer 1.0 not working
        https://bugs.webkit.org/show_bug.cgi?id=99852

        Reviewed by Philippe Normand.

        There was a series of trivial issue, g_object_is_floating() was called
        on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
        returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
        to GST_MESSAGE_DURATION_CHANGED.

        Most failing test passes now.

        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
        (WTF::adoptGRef):
        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (webkitGstGetPadCaps):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):

2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
        https://bugs.webkit.org/show_bug.cgi?id=99989

        Reviewed by Pavel Feldman.

        Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
        ResourceScriptMapping now supports two types of temporary uiSourceCodes:
         - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
         - temporary uiSourceCodes represent scripts for which resources are not yet loaded.

        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.breakpointStorageId):
        (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping):
        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
        (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
        (WebInspector.ResourceScriptMapping.prototype.addScript):
        (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
        (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
        (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
        (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
        (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
        (WebInspector.ResourceScriptMapping.prototype._reset):

2012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        [css3-text] Add rendering support for -webkit-text-decoration-style
        https://bugs.webkit.org/show_bug.cgi?id=94094

        Reviewed by Julien Chaffraix.

        This patch implements the "text-decoration-style" property rendering as
        specified in CSS3 working draft, with "-webkit-" prefix. The specification can
        be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style

        Additionally, Mozilla implementation details can be found here:
        https://developer.mozilla.org/en/CSS/text-decoration-style

        Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
               fast/css3-text/css3-text-decoration/text-decoration-style.html

        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::setPlatformStrokeStyle):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawLine):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::toQPenStyle):
        (WebCore::GraphicsContext::drawLine):
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::setupPaintForStroking):
        * platform/graphics/wince/GraphicsContextWinCE.cpp:
        (WebCore::createPen):
        * platform/graphics/wx/GraphicsContextWx.cpp:
        (WebCore::strokeStyleToWxPenStyle):
        Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
        platform-specific stroke handling. Some styles requires
        platform-specific implementation (handled in bug 92868).
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint):
        (WebCore::textDecorationStyleToStrokeStyle): Added static function that
        translates text decoration to stroke styles.
        (WebCore::InlineTextBox::paintDecoration): Text decoration style does
        not specify a property for line thickness (like border-width does for
        border style), so we statically set it to 1 for now. The 'double' style
        implementation simply adds a parallel line (depending if it is
        underline, overline or line-through) and the space between lines follows
        the approach used by border's 'double' style.
        * rendering/InlineTextBox.h:
        (InlineTextBox):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        Added text decoration style rendering support to
        InlineTextBox::paintDecoration().

2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Use the DNS resolve queue
        https://bugs.webkit.org/show_bug.cgi?id=99994

        Reviewed by Simon Hausmann.

        Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
        during parsing. It also ensure each hostname is only appears once in the queue.

        * Target.pri:
        * platform/network/qt/DNSQt.cpp: Added.
        (DnsPrefetchHelper):
        (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
        (WebCore::DnsPrefetchHelper::lookup):
        (WebCore::DnsPrefetchHelper::lookedUp):
        (WebCore::prefetchDNS):
        (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
        (WebCore::DNSResolveQueue::platformResolve):
        * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
        * platform/network/qt/DnsPrefetchHelper.h: Removed.
        (DnsPrefetchHelper):

2012-10-22  Erik Arvidsson  <arv@chromium.org>

        HTMLBaseElement href attribute binding returns wrong URL
        https://bugs.webkit.org/show_bug.cgi?id=98184

        Reviewed by Ojan Vafai.

        Resolve the href attribute binding relative to the document URL instead of resolving it to the
        base element itself. If there is no href attribute this should return the fallback base URL.

        http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element

        Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
               fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html

        * html/HTMLBaseElement.cpp:
        (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
        of the generic [Reflect, URL] binding.
        (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
        * html/HTMLBaseElement.h:
        * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]

2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
        https://bugs.webkit.org/show_bug.cgi?id=99991

        Reviewed by Alexander Pavlov.

        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):

2012-10-22  Florin Malita  <fmalita@chromium.org>

        Incorrect embedded SVG image sizing on first load
        https://bugs.webkit.org/show_bug.cgi?id=99489

        Reviewed by Nikolas Zimmermann.

        RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
        to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
        already been performed.

        Test: svg/custom/svg-image-initial-size.html

        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::imageChanged):

2012-10-22  Keishi Hattori  <keishi@webkit.org>

        Remove monthFormatInLDML
        https://bugs.webkit.org/show_bug.cgi?id=99971

        Reviewed by Kent Tamura.

        Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.

        No new tests. Just removing unused code.

        * platform/LocalizedStrings.h:
        (WebCore):

2012-10-22  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Enable Microdata DOM API
        https://bugs.webkit.org/show_bug.cgi?id=99033

        Reviewed by Martin Robinson.

        Enable the Microdata DOM API, but still disable it when the unstable
        features should be disabled (for instance in release builds).

        No new tests - related tests are being unskipped and are expected to pass.

        * GNUmakefile.am:
        * GNUmakefile.features.am:
        * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
        API GObject bindings are generated and built.

2012-10-22  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] Enable CSP 1.1
        https://bugs.webkit.org/show_bug.cgi?id=99064

        Reviewed by Martin Robinson.

        Enable CSP 1.1 in development builds but keep it disabled when the
        unstable features should not be enabled (like in stable releases).

        No new tests - they already exist and will be unskipped.

        * GNUmakefile.am:
        * GNUmakefile.features.am:

2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>

        [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
        https://bugs.webkit.org/show_bug.cgi?id=98514

        Reviewed by Kenneth Rohde Christiansen.

        The problem is that we call setFixedVisibleContentRect, which triggers
        a layout, after the document has been put in the page cache and before
        the load has been actually committed.

        This applies the same trick as with setFixedLayoutSize by passing the rect
        in Frame::createView and calling setFixedVisibleContentRect before the
        new FrameView gets attached to the Frame/Document to prevent the layout.

        * WebCore.exp.in:
        * page/Frame.cpp:
        (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
        useFixedLayout arguments as well since they are used exceptionally.
        * page/Frame.h:
        (Frame):

2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Handle GET of blob URLs.
        https://bugs.webkit.org/show_bug.cgi?id=99053

        Reviewed by Simon Hausmann.

        Let BlobResourceHandle handle Blob request internally.

        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):

2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>

        HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
        https://bugs.webkit.org/show_bug.cgi?id=99966

        Reviewed by Kent Tamura.

        If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.

        No new tests. Confirmed the fix by using Address Sanitizer.

        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::shape):
        (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
        (HarfBuzzShaper):

2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] ASSERT triggered when we try reprojecting fallback elements.
        https://bugs.webkit.org/show_bug.cgi?id=99815

        Reviewed by Hajime Morita.

        When fallback elements of InsertionPoint is reprojected, they were attached twice.
        We have to skip attaching them if they are attached. We also add a few ASSERT not to
        allow attaching twice if not necessary.

        We have confirmed that this patch does not regress the performance. The summary of the
        performance test is the following:

        Dromaeo/dom-modify.html [runs/s]:
                               median stdev    min    max
           without this patch:   3928   184   3655   4361
           with this patch   :   3925   178   3652   4350

        Parser/html5-full-render.html [s]:
                               median stdev    min    max
           without this patch:   3821    17   3811   3850
           with this patch   :   3838   4.4   3833   3844

        Test: fast/dom/shadow/content-reprojection-fallback-crash.html

        * dom/ContainerNode.cpp:
        (WebCore):
        (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
        be attached in advance because of ShadowDOM attaching process.
        * dom/ContainerNode.h:
        (ContainerNode):
        (WebCore):
        (WebCore::ContainerNode::attachChildren):
        * dom/Element.cpp:
        (WebCore::Element::attach):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::attach):

2012-10-22  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: merge "docked" state into the "dock side" enum.
        https://bugs.webkit.org/show_bug.cgi?id=99717

        Reviewed by Vsevolod Vlasov.

        Otherwise, it is hard to manage these inter-dependent flags.

        * WebCore.exp.in:
        * inspector/InspectorFrontendClient.h:
        (InspectorFrontendClient):
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
        * inspector/InspectorFrontendClientLocal.h:
        (InspectorFrontendClientLocal):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::requestSetDockSide):
        * inspector/InspectorFrontendHost.h:
        (InspectorFrontendHost):
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/DockController.js:
        (WebInspector.DockController):
        (WebInspector.DockController.prototype._updateUI.get sides):
        (WebInspector.DockController.prototype._updateUI):
        (WebInspector.DockController.prototype._toggleDockState):
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.setAttachedWindow):
        (InspectorFrontendAPI.setDockSide):
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
        * inspector/front-end/externs.js:

2012-10-22  MORITA Hajime  <morrita@google.com>

        Unreviewed follow up to update test result after r132033.

        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::installPerContextProperties):

2012-10-21  MORITA Hajime  <morrita@google.com>

        [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
        https://bugs.webkit.org/show_bug.cgi?id=99954

        Reviewed by Kentaro Hara.

        It now refers ScriptExecutionContext of the creation context instead of document() of
        wrapped object.

        No new tests. No behavior change at this time.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementation):

2012-10-21  Kent Tamura  <tkent@chromium.org>

        Page popup: Fix crash by events after closing
        https://bugs.webkit.org/show_bug.cgi?id=99951

        Reviewed by Hajime Morita.

        WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.

        No new tests. The bug is timing-dependent.

        * page/DOMWindowPagePopup.cpp:
        (WebCore::DOMWindowPagePopup::uninstall):
        Added. Calls Supplementable::removeSupplement.
        * page/DOMWindowPagePopup.h:
        (DOMWindowPagePopup): Declare uninstall.
        * platform/Supplementable.h:
        (WebCore::Supplementable::removeSupplement): Added.

2012-10-21  Keishi Hattori  <keishi@webkit.org>

        Refactor picker tests to fix flakiness and share code
        https://bugs.webkit.org/show_bug.cgi?id=99671

        Reviewed by Kent Tamura.

        Disable transitions until the picker is fully ready. This should fix flakiness.

        No new tests.

        * Resources/pagepopups/calendarPicker.css:
        (.preparing .unavailable): Disable transitions.
        (.preparing .available): Disable transitions.
        * Resources/pagepopups/calendarPicker.js:
        (CalendarPicker): Set "preparing" class.
        (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.

2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>

        Web Inspector: Shadow DOM: Node removal doesn't reflect.
        https://bugs.webkit.org/show_bug.cgi?id=99567

        Reviewed by Pavel Feldman.

        We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
        Otherwise, node won't be removed from the inspector.

        Test: inspector/elements/update-shadowdom.html

        * dom/ContainerNode.cpp:
        (WebCore::dispatchChildRemovalEvents):

2012-10-21  Andreas Kling  <kling@webkit.org>

        Remove Page::javaScriptURLsAreAllowed setting.
        <http://webkit.org/b/99944>

        Reviewed by Anders Carlsson.

        This setting was exposed through internal WebView API in Apple's WebKit1.
        There are no longer any clients of that API.

        This is a step towards preventing elements from modifying their own attributes
        below attributeChanged().

        * WebCore.exp.in:
        * WebCore.order:
        * bindings/ScriptControllerBase.cpp:
        (WebCore::ScriptController::executeIfJavaScriptURL):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute):
        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        (Page):

2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>

        Add a separate flag for rgb swizzling whether it can be modified or not
        https://bugs.webkit.org/show_bug.cgi?id=98728

        BitmapTexture swizzles the source image if the OpenGL driver
        doesn't support the BGRA extension.
        In case of directly composited images, the source image should not
        be modified.

        http://www.satine.org/research/webkit/snowleopard/snowstack.html

        Reviewed by Noam Rosenthal.

        No new tests as this is only testable on specific hardware and
        currently not avaiable in the bots.

        * platform/graphics/texmap/TextureMapper.h:
        (BitmapTexture):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperTile::updateContents):
        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (TextureMapperTile):
        (TextureMapperTiledBackingStore):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawRepaintCounter):
        (WebCore::BitmapTextureGL::updateContents):
        * platform/graphics/texmap/TextureMapperGL.h:
        (BitmapTextureGL):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::updateContents):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        (BitmapTextureImageBuffer):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::updateBackingStore):

2012-10-21  Antti Koivisto  <antti@apple.com>

        Factor stylesheet invalidation analysis code into a class
        https://bugs.webkit.org/show_bug.cgi?id=99933

        Reviewed by Sam Weinig.

        Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
        further progress easier.

        The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
        and DocumentStyleSheetCollection there. No functional changes.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/SelectorChecker.cpp:
        (WebCore):
        * css/SelectorChecker.h:
        (WebCore):
        * css/StyleInvalidationAnalysis.cpp: Added.
        (WebCore):
        (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
        (WebCore::StyleInvalidationAnalysis::create):
        (WebCore::determineSelectorScopes):
        (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
        (WebCore::elementMatchesSelectorScopes):
        (WebCore::StyleInvalidationAnalysis::invalidateStyle):
        * css/StyleInvalidationAnalysis.h: Added.
        (WebCore):
        (StyleInvalidationAnalysis):
        (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::checkRegionSelector):
        * css/StyleResolver.h:
        (StyleResolver):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore):
        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
        * dom/DocumentStyleSheetCollection.h:
        (DocumentStyleSheetCollection):

2012-10-08  Robert Hogan  <robert@webkit.org>

        In some float situations, the original layout is wrong and only corrects itself on repaint
        https://bugs.webkit.org/show_bug.cgi?id=18939

        Reviewed by Levi Weintraub.

        A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
        This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
        does not.

        Test: fast/block/br-with-clearance-after-collapsing-space.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):

2012-10-08  Robert Hogan  <robert@webkit.org>

        floated element with negative margin causes text wrap bug
        https://bugs.webkit.org/show_bug.cgi?id=94825

        Reviewed by Levi Weintraub.

        Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
        floats on the line is at least as much as the offset given by border, margin and padding. This only
        happens when a negative margin on the float brings its edge back before the offset
        given by the border, margin and padding of its parents.

        Test: fast/block/float/float-on-line-obeys-container-padding.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):

2012-10-20  Martin Robinson  <mrobinson@igalia.com>

        Fix 'make dist' for the GTK+ port

        * GNUmakefile.am: Add missing files to the source list.
        * GNUmakefile.list.am: Ditto.

2012-10-20  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
        https://bugs.webkit.org/show_bug.cgi?id=99918

        Reviewed by Geoff Garen.

        -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
        asked for size 0, and this is what Font::drawGlyphs uses to draw the text.

        Test: fast/text/zero-font-size-2.html

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs): Added an early return if the size is zero.

2012-10-20  Andreas Kling  <kling@webkit.org>

        Clean up QualifiedName-as-hash-key scenario.
        <http://webkit.org/b/99394>

        Reviewed by Anders Carlsson.

        Cache the hash on QualifiedNameImpl after the first time it's computed.
        This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
        which I believe is fine, since QualifiedName is a shared object.

        Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
        and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
        create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
        added to  the global QualifiedName cache, etc.

        Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
        the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
        directly instead.

        Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.

        * dom/QualifiedName.cpp:
        (WebCore::nullQName):
        (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
        * dom/QualifiedName.h:
        (QualifiedNameImpl):
        (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
        (WebCore::QualifiedNameHash::hash):
        * svg/SVGElement.h:
        (WebCore::SVGAttributeHashTranslator::hash):

2012-10-20  Yael Aharon  <yael.aharon@intel.com>

        [EFL][AC] Build fix after r131933
        https://bugs.webkit.org/show_bug.cgi?id=99901

        Reviewed by Kentaro Hara.

        Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.

        No new tests.

        * CMakeLists.txt:

2012-10-19  Adam Barth  <abarth@webkit.org>

        [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
        https://bugs.webkit.org/show_bug.cgi?id=99876

        Reviewed by Kentaro Hara.

        We want to remove the document parameter to instantiateV8Object. There
        isn't always a Document available, so it doesn't make sense to pass it
        as a parameter. We're just waiting for a V8 API change so we can still
        construct Node wrappers quickly.

        This patch removes a use of the document that snuck in. Rather than
        passing the ScriptExecutionContext around, we get it from the
        CreationContext of the prototype object (and only when we actually need
        it).

        * Modules/notifications/NotificationCenter.cpp:
        * Modules/notifications/NotificationCenter.h:
        (NotificationCenter):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateConstructorGetter):
        (GenerateImplementation):
        (GenerateToV8Converters):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::installDOMWindow):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::instantiateV8Object):
        * bindings/v8/V8PerContextData.cpp:
        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
        (WebCore::V8PerContextData::constructorForTypeSlowCase):
        * bindings/v8/V8PerContextData.h:
        (WebCore::V8PerContextData::createWrapperFromCache):
        (WebCore::V8PerContextData::constructorForType):
        (V8PerContextData):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
        * bindings/v8/WrapperTypeInfo.h:
        (WebCore):
        (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):

2012-10-19  Florin Malita  <fmalita@chromium.org>

        Incorrect pattern scaling
        https://bugs.webkit.org/show_bug.cgi?id=99870

        Reviewed by Dirk Schulze.

        The pattern space transform scale should reflect the tile_size(user space)
        to tile_image_size ratio, instead of tile_size to absolute_tile_size.

        Test: svg/custom/pattern-scaling.svg

        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::applyResource):

2012-10-19  Tony Chang  <tony@chromium.org>

        RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
        https://bugs.webkit.org/show_bug.cgi?id=97827

        Reviewed by Ojan Vafai.

        I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
        border and padding), so just add an assert.

        No new tests, the assert is for code clarity.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):

2012-10-19  Tony Chang  <tony@chromium.org>

        Replace calls to updateLogicalHeight with calls to computeLogicalHeight
        https://bugs.webkit.org/show_bug.cgi?id=99883

        Reviewed by Ojan Vafai.

        In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
        saving the old height, calling update logical height, then restoring the old height.

        No new tests, this is just a refactoring.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
        (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
        (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.

2012-10-19  Pablo Flouret  <pablof@motorola.com>

        Implement setRangeText() on text controls
        https://bugs.webkit.org/show_bug.cgi?id=91907

        Reviewed by Kent Tamura.

        setRangeText() replaces a range of text with some other text, and
        adjusts the existing selection according to its parameters.

        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext

        Tests: fast/forms/color/color-setrangetext.html
               fast/forms/date/date-setrangetext.html
               fast/forms/datetime/datetime-setrangetext.html
               fast/forms/datetimelocal/datetimelocal-setrangetext.html
               fast/forms/file/file-setrangetext.html
               fast/forms/hidden/hidden-setrangetext.html
               fast/forms/image/image-setrangetext.html
               fast/forms/month/month-setrangetext.html
               fast/forms/number/number-setrangetext.html
               fast/forms/range/range-setrangetext.html
               fast/forms/search/search-setrangetext.html
               fast/forms/setrangetext.html
               fast/forms/textarea/textarea-setrangetext.html
               fast/forms/time/time-setrangetext.html
               fast/forms/week/week-setrangetext.html


        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipFunction):
            The GObject generator doesn't support function overloads, so skip the
            version of setRangeText() that has only one argument, its behavior
            can be emulated with the four-argument version.

        * html/InputType.cpp:
        (WebCore::InputType::supportsSelectionAPI):
        (WebCore):
        * html/InputType.h:
        (InputType):
            Add supportsSelectionAPI() which indicates whether the various
            selection api functions like setRangeText, setSelectionRange, etc.
            are supported by this input element.

        * html/BaseTextInputType.cpp:
        (WebCore::BaseTextInputType::supportsSelectionAPI):
        (WebCore):
        * html/BaseTextInputType.h:
        (BaseTextInputType):
            Text-based input types support the selection APIs.

        * html/EmailInputType.cpp:
        (WebCore::EmailInputType::supportsSelectionAPI):
        (WebCore):
        * html/EmailInputType.h:
        (EmailInputType):
            Email inputs don't support the selection APIs.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setRangeText):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
            Add a setRangeText override which checks if it should apply to the
            input type, and calls the actual implementation on the parent class.
        * html/HTMLInputElement.idl:
        * html/HTMLTextAreaElement.idl:

        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::setRangeText):
        * html/HTMLTextFormControlElement.h:
        (HTMLTextFormControlElement):
            setRangeText implementation.


2012-10-19  Luke Macpherson   <macpherson@chromium.org>

        Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
        https://bugs.webkit.org/show_bug.cgi?id=99782

        Reviewed by Sam Weinig.

        Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
        to use it instead of adding a line to StyleBuilder.
        Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
        I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.

        Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)

        * css/StyleResolver.cpp:
        (WebCore):
        (WebCore::StyleResolver::applyProperty):

2012-10-19  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Hidden indexing events are visible to script via bubbling/capture
        https://bugs.webkit.org/show_bug.cgi?id=96566

        Reviewed by Tony Chang.

        Stop propagation of error events fired at internal indexing requests as a result of
        aborting, as they should not be visible to scripts.

        Test: storage/indexeddb/index-population.html

        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::IDBRequest):
        (WebCore::IDBRequest::dispatchEvent):
        * Modules/indexeddb/IDBRequest.h:
        (WebCore::IDBRequest::preventPropagation):
        (IDBRequest):

2012-10-19  Simon Fraser  <simon.fraser@apple.com>

        Remove .get() calls in assertions as suggested by Darin Adler.
        
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::appendSublayer):
        (PlatformCALayer::insertSublayer):
        (PlatformCALayer::replaceSublayer):

2012-10-19  Simon Fraser  <simon.fraser@apple.com>

        Fix a hang when combining tile cache layers with preserve-3d or reflections
        https://bugs.webkit.org/show_bug.cgi?id=99890
        <rdar://problem/12539560>

        Reviewed by Dean Jackson.

        The new tile cache code added an updateSublayers() call when switching to/from
        tiled layers. This confused later sublayer rebuilding, causing us to attempt to
        add a layer as a child of itself, causing a hang in CA.
        
        Fix by removing all the explicit calls to updateFoo when updating the structural
        layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
        on the fact that these flag-dirtying functions get called before the later functions
        that process those dirty flags. This is assured by some reordering of the update
        function calls.
        
        A final wrinkle is that ensureStructuralLayer() can change the layer that our
        parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
        list directly like we used to, just call noteSublayersChanged() on the parent, and have
        commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
        of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
        only do this work if a sublayer requested it).
        
        Tests: compositing/tiling/preserve3d-tiled.html
               compositing/tiling/reflected-tiled.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
        (PlatformCALayer::insertSublayer): Ditto.
        (PlatformCALayer::replaceSublayer): Ditto.

2012-10-19  Chris Fleizach  <cfleizach@apple.com>

        AX: aria-hidden=false does not work as expected
        https://bugs.webkit.org/show_bug.cgi?id=98787

        Reviewed by Beth Dakin.

        ARIA requires that aria-hidden=false override an element's native visibility and include that
        node in the AX hierarchy.

        To accomplish this we have to allow invisible items to be included, as well as items that
        have no renderers associated with them.

        Test: accessibility/aria-hidden-negates-no-visibility.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        * accessibility/AccessibilityARIAGrid.cpp:
        (WebCore::AccessibilityARIAGrid::addTableCellChild):
        (WebCore::AccessibilityARIAGrid::addChildren):
        * accessibility/AccessibilityARIAGrid.h:
        (AccessibilityARIAGrid):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore):
       (WebCore::AccessibilityNodeObject::boundingBoxRect):
        (WebCore::AccessibilityNodeObject::insertChild):
        (WebCore::AccessibilityNodeObject::addChild):
        (WebCore::AccessibilityNodeObject::addChildren):
        (WebCore::AccessibilityNodeObject::textUnderElement):
        * accessibility/AccessibilityNodeObject.h:
        (AccessibilityNodeObject):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
        (WebCore):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):
        (WebCore::AccessibilityObject::addChild):
        (WebCore::AccessibilityObject::insertChild):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore):
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
        (WebCore::AccessibilityRenderObject::addHiddenChildren):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):

2012-10-19  Michael Saboff  <msaboff@apple.com>

        Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
        https://bugs.webkit.org/show_bug.cgi?id=99735

        Reviewed by Filip Pizlo.

        Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
        to chromium platform version of LinkHashChromium.cpp.
        Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
        new form.

        No changes to functionality, so no new tests.

        * WebCore.exp.in:
        * loader/HistoryController.cpp:
        (WebCore::addVisitedLink):
        * page/PageGroup.cpp:
        (WebCore::PageGroup::addVisitedLink):
        * platform/LinkHash.cpp:
        (WebCore::visitedLinkHashInline):
        (WebCore::visitedLinkHash):
        * platform/LinkHash.h:
        * platform/chromium/LinkHashChromium.cpp:
        (WebCore::visitedLinkHash):

2012-10-19  Michael Saboff  <msaboff@apple.com>

        String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
        https://bugs.webkit.org/show_bug.cgi?id=99794

        Reviewed by Filip Pizlo.

        Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.

        No new test, added 8 bit path.

        * platform/text/cf/StringCF.cpp:
        (WTF::String::String):

2012-10-19  Dima Gorbik  <dgorbik@apple.com>

        Page should be removed from the cache right after restore was called.
        https://bugs.webkit.org/show_bug.cgi?id=99737

        Reviewed by Brady Eidson.

        The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
        but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
        This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
        behavior in LayoutTests. All the current tests that exercise the page cache do pass.

        No new tests.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::commitProvisionalLoad):

2012-10-19  Max Vujovic  <mvujovic@adobe.com>

        [WebGL] getUniformLocation fails for uniform array name without array brackets
        https://bugs.webkit.org/show_bug.cgi?id=99854

        Reviewed by Dean Jackson.

        Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
        location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
        returns the array location.

        In the process of adding a check to the following Khronos WebGL conformance test:
        conformance/glsl/misc/glsl-long-variable-names.html

        * platform/graphics/ANGLEWebKitBridge.cpp:
        (WebCore::getSymbolInfo):
            Before, we used to check that the symbol size was greater than one to determine that the
            symbol was an array. However, this doesn't identify arrays of length one. Now, we check
            if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
            names.
            If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
            name. We set the isArray flag on the symbol, so we don't lose the information that it is
            an array.
            Then, we create symbols for each array element like before. However, instead of
            replacing the "0" in array[0]" with each index, we take the base name "array" and
            append array brackets containing each index (e.g. "array" + "[7]").
        * platform/graphics/ANGLEWebKitBridge.h:
        (ANGLEShaderSymbol):
            Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
            anymore, this is the only way to identify arrays.

2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed, rolling out r131915.
        http://trac.webkit.org/changeset/131915
        https://bugs.webkit.org/show_bug.cgi?id=98787

        It broke the build on platforms with \!HAVE(ACCESSIBILITY)

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::nodeIsTextControl):
        * accessibility/AXObjectCache.h:
        (WebCore):
        * accessibility/AccessibilityARIAGrid.cpp:
        (WebCore::AccessibilityARIAGrid::addChild):
        (WebCore::AccessibilityARIAGrid::addChildren):
        * accessibility/AccessibilityARIAGrid.h:
        (AccessibilityARIAGrid):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::elementRect):
        (WebCore::AccessibilityNodeObject::addChildren):
        (WebCore::AccessibilityNodeObject::textUnderElement):
        * accessibility/AccessibilityNodeObject.h:
        (AccessibilityNodeObject):
        * accessibility/AccessibilityObject.cpp:
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::textIteratorBehaviorForTextRange):
        (WebCore):
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):

2012-10-19  Tony Chang  <tony@chromium.org>

        Unreviewed, rolling out r131936.
        http://trac.webkit.org/changeset/131936
        https://bugs.webkit.org/show_bug.cgi?id=99717

        Broke the clang build

        * WebCore.exp.in:
        * inspector/InspectorFrontendClient.h:
        (InspectorFrontendClient):
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
        (WebCore):
        (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
        * inspector/InspectorFrontendClientLocal.h:
        (InspectorFrontendClientLocal):
        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::requestAttachWindow):
        (WebCore):
        (WebCore::InspectorFrontendHost::requestDetachWindow):
        (WebCore::InspectorFrontendHost::requestSetDockSide):
        * inspector/InspectorFrontendHost.h:
        (InspectorFrontendHost):
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/DockController.js:
        (WebInspector.DockController):
        (WebInspector.DockController.prototype.setDocked):
        (WebInspector.DockController.prototype._innerSetDocked.set if):
        (WebInspector.DockController.prototype._innerSetDocked):
        (WebInspector.DockController.prototype._updateUI.get states):
        (WebInspector.DockController.prototype._updateUI):
        (WebInspector.DockController.prototype._toggleDockState):
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.setAttachedWindow):
        (InspectorFrontendAPI.setDockSide):
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
        (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
        (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
        * inspector/front-end/externs.js:
        (InspectorFrontendHostAPI.prototype.requestAttachWindow):
        (InspectorFrontendHostAPI.prototype.requestDetachWindow):

2012-10-09  Martin Robinson  <mrobinson@igalia.com>

        REGRESSION (r130699): 5 various fast/ tests started failing
        https://bugs.webkit.org/show_bug.cgi?id=98729

        Reviewed by Xan Lopez.

        Do not try to remove the URL fragment for data URLs. This will likely
        just corrupt the URL.

        No new tests. This unskips some previously failing tests.

        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.

2012-10-19  Simon Fraser  <simon.fraser@apple.com>

        Use tile caches in place of CATiledLayer
        https://bugs.webkit.org/show_bug.cgi?id=99806
        <rdar://problem/6474145>

        Reviewed by Tim Horton.

        Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
        layers that exceed the 2000px size threshold.

        * platform/graphics/TiledBacking.h:
        (TiledBacking): Have normal getter and setter for the visible rect.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
        to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
        our current visible rect, which result in no tile area work.
        (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
        return the rect, for clarity.
        (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
        visible rect, and use the change flags mechanism to ensure that we recompute
        tile areas later.
        When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
        its own visible rect as the old visible rect.
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
        oldVisibleRect so that updateVisibleRect() can use this to see how the
        visibleRect is changing.
        (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
        compares the old and new visible rects, and extends the tile coverage area
        in directions where more content is being exposed. It takes care to avoid
        "jitter" in the visible rect deltas causing edge tiles to get created then
        destroyed by keeping any extra padding that already exists in a direction
        where more content is being exposed.
        (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
        and use the result to update the TiledBacking's visibleRect.
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
        LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
        cache layers involve adding an extra layer to the hierarchy (the tile container),
        we call updateSublayerList() when changing layer type.
        * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
        that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
        size changes.
        (WebCore::GraphicsLayerCA::visibleRect):
        * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
        for pages in the page cache, for which the root layer is unattached.
        (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
        to setVisibleRect().

2012-10-19  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=99768
        We should limit the tile cache coverage when a page can't take 
        advantage of fast tile scrolling anyway

        Reviewed by Simon Fraser.

        When sites can't use fast-scrolling, there is no need to inflate the 
        tile cache. In fact, we get a performance boost by keeping it small 
        on painting-intensive sites. 

        Instead of just looking a whether or not the FrameView 
        canHaveScrollbar(), consult 
        shouldUpdateScrollLayerPositionOnMainThread().
        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        
        Expose shouldUpdateScrollLayerPositionOnMainThread().
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
        (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
        (WebCore):
        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):

        Bug fix. Should be bitwise and.
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::tileCoverageRect):

2012-10-19  Mark Lam  <mark.lam@apple.com>

        Added WTF::StackStats mechanism.
        https://bugs.webkit.org/show_bug.cgi?id=99805.

        Reviewed by Geoffrey Garen.

        Added StackStats probes in layout methods.

        * dom/Document.cpp:
        (WebCore::Document::updateLayout):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layout):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::layout):
        * rendering/RenderDialog.cpp:
        (WebCore::RenderDialog::layout):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::layout):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::layout):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::layout):
        * rendering/RenderIFrame.cpp:
        (WebCore::RenderIFrame::layout):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::layout):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::layout):
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::layout):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::layout):
        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::layout):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::layout):
        * rendering/RenderObject.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::layout):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::layout):
        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::layout):
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::layout):
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::layout):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::layout):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::layout):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::layout):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::layout):
        * rendering/RenderTextTrackCue.cpp:
        (WebCore::RenderTextTrackCue::layout):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::layout):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::layout):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::layout):
        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::layout):
        * rendering/svg/RenderSVGGradientStop.cpp:
        (WebCore::RenderSVGGradientStop::layout):
        * rendering/svg/RenderSVGHiddenContainer.cpp:
        (WebCore::RenderSVGHiddenContainer::layout):
        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::layout):
        * rendering/svg/RenderSVGResourceMarker.cpp:
        (WebCore::RenderSVGResourceMarker::layout):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::layout):
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::layout):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::layout):

2012-10-19  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: merge "docked" state into the "dock side" enum.
        https://bugs.webkit.org/show_bug.cgi?id=99717

        Reviewed by Vsevolod Vlasov.

        Otherwise, it is hard to manage these inter-dependent flags.

        * inspector/InspectorFrontendClient.h:
        (InspectorFrontendClient):
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
        * inspector/InspectorFrontendClientLocal.h:
        (InspectorFrontendClientLocal):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::requestSetDockSide):
        * inspector/InspectorFrontendHost.h:
        (InspectorFrontendHost):
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/DockController.js:
        (WebInspector.DockController):
        (WebInspector.DockController.prototype._updateUI.get sides):
        (WebInspector.DockController.prototype._updateUI):
        (WebInspector.DockController.prototype._toggleDockState):
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.setAttachedWindow):
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):

2012-10-19  Joshua Bell  <jsbell@chromium.org>

        [V8] IndexedDB: Crash when lazy-indexing Date keys
        https://bugs.webkit.org/show_bug.cgi?id=99860

        Reviewed by Adam Barth.

        Missing a scope/context needed when digging values out of Date objects
        in an indexing callback.

        Test: storage/indexeddb/lazy-index-types.html

        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromScriptValueAndKeyPath):

2012-10-18  Dean Jackson  <dino@apple.com>

        Shader translator needs option to clamp uniform array accesses in vertex shaders
        https://bugs.webkit.org/show_bug.cgi?id=98977
        https://code.google.com/p/angleproject/issues/detail?id=49

        Reviewed by Alok Priyadarshi and Ken Russell.

        WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
        ensure that non-direct array indexing is clamped to the bounds of the array.

        Test: fast/canvas/webgl/array-bounds-clamping.html

        * platform/graphics/ANGLEWebKitBridge.cpp:
        (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS

2012-10-19  Justin Novosad  <junov@chromium.org>

        [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
        https://bugs.webkit.org/show_bug.cgi?id=99856

        Reviewed by Stephen White.

        Marking internal bitmap copy as immutable to prevent it from being
        unnecessarily duplicated in skia by SkBitmapHeap.

        No new tests: code path already well covered by existing layout tests 
        fast/canvas/canvas-pattern-*

        * platform/graphics/skia/PatternSkia.cpp:
        (WebCore::Pattern::platformPattern):

2012-10-19  Antti Koivisto  <antti@apple.com>

        Maintain a list of active CSS stylesheets
        https://bugs.webkit.org/show_bug.cgi?id=99843

        Reviewed by Andreas Kling.

        Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
        This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
        a list of active CSS stylesheets separately simplifies code in number of places.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
        (WebCore::StyleResolver::appendAuthorStyleSheets):
        (WebCore::collectCSSOMWrappers):
        * css/StyleResolver.h:
        (StyleResolver):
        * css/StyleSheetList.cpp:
        (WebCore::StyleSheetList::styleSheets):
        (WebCore::StyleSheetList::detachFromDocument):
        * dom/Document.cpp:
        (WebCore::Document::setCompatibilityMode):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
        (WebCore::styleSheetsUseRemUnits):
        (WebCore::filterEnabledCSSStyleSheets):
        (WebCore):
        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
        * dom/DocumentStyleSheetCollection.h:
        (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
        (DocumentStyleSheetCollection):
        (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):

2012-09-08  Alpha Lam  <hclam@chromium.org>

        [chromium] Implement deferred image decoding
        https://bugs.webkit.org/show_bug.cgi?id=94240

        Reviewed by Stephen White.

        Objectives:

        To record image decoding operations during painting and to defer
        decoding operations until rasterization.

        Rationale:

        This is a key feature that enables impl-side painting which requires
        fast recording of drawing operations. The existing decode-on-draw
        restricts that recording has to block on expensive decoding operations.
        This change allows recording of image decoding operations during paint
        time.

        Design:

        Image decoding happens when a BitmapImage is drawn into a
        GraphicsContext. When per-tile painting is enabled GraphicsContext
        is backed by SkCanvas in recording mode. This SkCanvas records drawing
        and image decoding operations to minimize recording time.

        An image decoding operation is recorded as a SkPixelRef object
        implemented by LazyDecodingPixelRef. This object references raw encoded
        data, regions to be decoded and scaling information.

        When used in conjunction with per-tile painting this feature defers
        image decoding until the SkCanvas referencing the image is rasterized.

        Both recording and rasterization happen on the main thread.

        Performance Impact:

        This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
        and does not have an impact when disabled.

        This feature is disabled by default.

        Upcoming Changes:

        1. Implement a full-featured image cache in ImageDecodingStore.
        2. Allow rasterization and decoding on impl thread.

        Classes Involved:

        BitmapImage

        BitmapImage is the entry point for deferred image decoding. When
        drawing a BitmapImage into a GraphicsContext it makes a request to
        create a NativeImageSkia. We substitute the content in NativeImageSkia
        such that it is lazily decoded.

        DeferredImageDecoder

        This is the platform implementation of a image decoder for Chromium.
        This is a bridge layer that either delegates calls to the actual
        ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
        to ImageDecodingStore.

        ImageDecodingStore

        This object manages all encoded images. It keeps track of encoded
        data and the corresponding ImageDecoder for doing actual decoding. It
        is also responsible for generating lazily decoded SkBitmaps. This
        SkBitmap contains a LazyDecodingPixelRef object which references to an
        image entry in ImageDecodingStore.

        ScaledImageFragment

        A container for a scaled image fragment. In addition to bitmap pixels
        it contains information about the ID of the image, scale and clipping.

        ImageFrameGenerator

        This object is responsible for generating decoded pixels. It is also
        a container for encoded image data and corresponding image decoder.

        LazyDecodingPixelRef

        This object is embedded in a SkBitmap to enable lazy decoding. When
        SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
        contains information to locate an image and scaling info, these
        information is submitted to ImageDecodingStore to access actual pixels.

        Layout tests. There are about 80 tests in this virtual test suite
        running this feature in this directory:

        platform/chromium/virtual/deferred/fast/images

        Unit tests. Added DeferredImageDecoderTest to verify deferred
        image decoding behavior.

        * WebCore.gypi:
        * platform/graphics/ImageSource.cpp:
        (WebCore::ImageSource::setData):
        * platform/graphics/ImageSource.h:
        (WebCore):
        (ImageSource):
        * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
        (WebCore):
        (WebCore::DeferredImageDecoder::DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::create):
        (WebCore::DeferredImageDecoder::createForTesting):
        (WebCore::DeferredImageDecoder::filenameExtension):
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
        (WebCore::DeferredImageDecoder::setData):
        (WebCore::DeferredImageDecoder::isSizeAvailable):
        (WebCore::DeferredImageDecoder::size):
        (WebCore::DeferredImageDecoder::frameSizeAtIndex):
        (WebCore::DeferredImageDecoder::frameCount):
        (WebCore::DeferredImageDecoder::repetitionCount):
        (WebCore::DeferredImageDecoder::clearFrameBufferCache):
        (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
        (WebCore::DeferredImageDecoder::frameBytesAtIndex):
        * platform/graphics/chromium/DeferredImageDecoder.h: Added.
        (WebCore):
        (DeferredImageDecoder):
        * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
        (WebCore::ImageDecodingStore::ImageDecodingStore):
        (WebCore):
        (WebCore::ImageDecodingStore::~ImageDecodingStore):
        (WebCore::ImageDecodingStore::instanceOnMainThread):
        (WebCore::ImageDecodingStore::initializeOnMainThread):
        (WebCore::ImageDecodingStore::shutdown):
        (WebCore::ImageDecodingStore::isLazyDecoded):
        (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
        (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
        (WebCore::ImageDecodingStore::setData):
        (WebCore::ImageDecodingStore::lockPixels):
        (WebCore::ImageDecodingStore::unlockPixels):
        (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
        (WebCore::ImageDecodingStore::calledOnValidThread):
        (WebCore::ImageDecodingStore::lookupFrameCache):
        (WebCore::ImageDecodingStore::deleteFrameCache):
        * platform/graphics/chromium/ImageDecodingStore.h: Added.
        (WebCore):
        (ImageDecodingStore):
        (WebCore::ImageDecodingStore::create):
        * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
        (WebCore):
        (WebCore::ScaledImageFragment::~ScaledImageFragment):
        (WebCore::ScaledImageFragment::ScaledImageFragment):
        (WebCore::ScaledImageFragment::isEqual):
        * platform/graphics/chromium/ScaledImageFragment.h: Added.
        (WebCore):
        (ScaledImageFragment):
        (WebCore::ScaledImageFragment::create):
        (WebCore::ScaledImageFragment::bitmap):
        (WebCore::ScaledImageFragment::isComplete):
        * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
        (WebCore):
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::decoder):
        (WebCore::ImageFrameGenerator::setData):
        * platform/graphics/chromium/ImageFrameGenerator.h: Added.
        (WebCore):
        (ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::create):
        (WebCore::ImageFrameGenerator::size):
        (WebCore::ImageFrameGenerator::imageId):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
        (WebCore):
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::isScaled):
        (WebCore::LazyDecodingPixelRef::isClipped):
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
        * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
        (WebCore):
        (LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::frameGenerator):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::resizedBitmap):
        * platform/image-decoders/ImageDecoder.h:
        (ImageFrame):
        (WebCore::ImageFrame::setSkBitmap):
        (WebCore::ImageFrame::getSkBitmap):

2012-10-18  Yael Aharon  <yael.aharon@intel.com>

        [EFL] GraphicsContext3D::m_renderStyle is not initialized
        https://bugs.webkit.org/show_bug.cgi?id=99721

        Reviewed by Antonio Gomes.

        Initialize GraphicsContext3D::m_renderStyle.

        No new tests, no new functionality.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):

2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>

        Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
        https://bugs.webkit.org/show_bug.cgi?id=99804

        Reviewed by Julien Chaffraix.

        CSS3 text related properties will be implemented under this flag,
        including text decoration, text-align-last, and text-justify.

        No new functionality, no new test.

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:
        * GNUmakefile.features.am:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::addTextDecorationProperty):
        (WebCore::CSSParser::parseTextDecoration):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:
        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        (WebCore):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:
        (StyleRareNonInheritedData):

2012-10-19  Nate Chapin  <japhet@chromium.org>

        Reorder some functions in SubresourceLoader to permit main resources
        https://bugs.webkit.org/show_bug.cgi?id=99769

        Reviewed by Adam Barth.

        Most resource types that go through the memory cache (and therefore
        through SubresourceLoader) are not sensitive to the exact ordering of
        the callbacks they receive, particularly as it relates to ResourceLoadNotifier
        calls.  Main resources are not so lenient.  For main resources to be cacheable
        and maintain the current behavior as precisely as possible, we will need to
        rearrange SubresourceLoader's willSendRequest() and didReceiveData().

        No new tests, refactor only.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
            in the request being canceled, plus calls to CachedResource::willSendRequest() and
            ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
            CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
            is called, but the calls are out of order for that, so swap those.
        (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
            before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
            before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.

2012-10-19  Chris Fleizach  <cfleizach@apple.com>

        AX: aria-hidden=false does not work as expected
        https://bugs.webkit.org/show_bug.cgi?id=98787

        Reviewed by Beth Dakin.

        ARIA requires that aria-hidden=false override an element's native visibility and include that
        node in the AX hierarchy.
 
        To accomplish this we have to allow invisible items to be included, as well as items that
        have no renderers associated with them.

        Test: accessibility/aria-hidden-negates-no-visibility.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        * accessibility/AccessibilityARIAGrid.cpp:
        (WebCore::AccessibilityARIAGrid::addTableCellChild):
        (WebCore::AccessibilityARIAGrid::addChildren):
        * accessibility/AccessibilityARIAGrid.h:
        (AccessibilityARIAGrid):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore):
        (WebCore::AccessibilityNodeObject::boundingBoxRect):
        (WebCore::AccessibilityNodeObject::insertChild):
        (WebCore::AccessibilityNodeObject::addChild):
        (WebCore::AccessibilityNodeObject::addChildren):
        (WebCore::AccessibilityNodeObject::textUnderElement):
        * accessibility/AccessibilityNodeObject.h:
        (AccessibilityNodeObject):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
        (WebCore):
        * accessibility/AccessibilityObject.h:
        (AccessibilityObject):
        (WebCore::AccessibilityObject::addChild):
        (WebCore::AccessibilityObject::insertChild):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore):
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
        (WebCore::AccessibilityRenderObject::addHiddenChildren):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):

2012-10-19  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Rename owner to client in MediaStreamDescriptor
        https://bugs.webkit.org/show_bug.cgi?id=99593

        Reviewed by Adam Barth.

        This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.

        No new tests needed, covered by existing tests.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::MediaStream):
        (WebCore::MediaStream::~MediaStream):
        * Modules/mediastream/MediaStream.h:
        (MediaStream):
        * Modules/mediastream/PeerConnection00.cpp:
        (WebCore::PeerConnection00::didRemoveRemoteStream):
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
        * platform/mediastream/MediaStreamCenter.cpp:
        (WebCore::MediaStreamCenter::endLocalMediaStream):
        (WebCore::MediaStreamCenter::addMediaStreamTrack):
        (WebCore::MediaStreamCenter::removeMediaStreamTrack):
        * platform/mediastream/MediaStreamDescriptor.h:
        (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
        (WebCore::MediaStreamDescriptor::client):
        (WebCore::MediaStreamDescriptor::setClient):
        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
        (MediaStreamDescriptor):

2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>

        Elements assigned to <shadow> should not be reprojected.
        https://bugs.webkit.org/show_bug.cgi?id=99680

        Reviewed by Dimitri Glazkov.

        In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
        reprojected to content. However, we can select them by <shadow>.

        Tests: fast/dom/shadow/content-reprojection-complex.html
               fast/dom/shadow/content-reprojection-shadow.html
               fast/dom/shadow/shadow-reprojection-prohibited.html

        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
        to POOL. Instead, <shadow> itself should be added to POOL.
        * html/shadow/HTMLContentElement.h:
        (WebCore::isHTMLContentElement):
        (WebCore):

2012-10-19  Chris Fleizach  <cfleizach@apple.com>

        VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
        https://bugs.webkit.org/show_bug.cgi?id=96325

        Reviewed by Beth Dakin.

         When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
         modifies the original findLegend method to take a parameter to determine what should be done.

        Test: accessibility/hidden-legend.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::titleUIElement):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::findLegend):
        * rendering/RenderFieldset.h:

2012-10-17  Chris Fleizach  <cfleizach@apple.com>

        AX: Refactor accessibility name computation so it's more platform independent
        https://bugs.webkit.org/show_bug.cgi?id=99502

        Reviewed by Beth Dakin.

        The current model of determining the accessible text for an object has a lot of Mac biases built in
        due to legacy implementation. 

        This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
        allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
        http://www.w3.org/TR/wai-aria/roles#textalternativecomputation

        This change tried very hard not to change any test behavior, even though it exposed a number of weird
        edge cases where we were treating attributes differently based on element type. 

        Future patches will resolve those discrepancies.

        * accessibility/AccessibilityImageMapLink.cpp:
        (WebCore::AccessibilityImageMapLink::accessibilityText):
        * accessibility/AccessibilityImageMapLink.h:
        (AccessibilityImageMapLink):
        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaControl::accessibilityText):
        * accessibility/AccessibilityMediaControls.h:
        (AccessibilityMediaControl):
        (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::titleElementText):
        (WebCore::AccessibilityNodeObject::accessibilityText):
        (WebCore::AccessibilityNodeObject::ariaLabeledByText):
        (WebCore::AccessibilityNodeObject::alternativeText):
        (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
        (WebCore::AccessibilityNodeObject::visibleText):
        (WebCore::AccessibilityNodeObject::helpText):
        (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
        * accessibility/AccessibilityNodeObject.h:
        (AccessibilityNodeObject):
        * accessibility/AccessibilityObject.h:
        (AccessibilityText):
        (WebCore::AccessibilityText::AccessibilityText):
        (WebCore::AccessibilityObject::isMediaControlLabel):
        (AccessibilityObject):
        (WebCore::AccessibilityObject::accessibilityText):
        (WebCore::AccessibilityObject::setAccessibleName):
        (WebCore::AccessibilityObject::accessibilityDescription):
        (WebCore::AccessibilityObject::title):
        (WebCore::AccessibilityObject::helpText):
        (WebCore::AccessibilityObject::stringValue):
        (WebCore::AccessibilityObject::textUnderElement):
        (WebCore::AccessibilityObject::text):
        (WebCore::AccessibilityObject::textLength):
        (WebCore::AccessibilityObject::setRoleValue):
        (WebCore::AccessibilityObject::roleValue):
        (WebCore::AccessibilityObject::selection):
        (WebCore::AccessibilityObject::hierarchicalLevel):
        * accessibility/AccessibilityRenderObject.cpp:
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
        (-[WebAccessibilityObjectWrapper accessibilityDescription]):
        (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
        * platform/LocalizedStrings.cpp:
        (WebCore::localizedMediaControlElementHelpText):

2012-10-19  Kent Tamura  <tkent@chromium.org>

        Use Localizer::monthFormat to construct input[type=month] UI
        https://bugs.webkit.org/show_bug.cgi?id=99818

        Reviewed by Kentaro Hara.

        Use an LDML format returned by Localizer::monthFormat for
        input[type=month] UI.

        Because the format may contain symbolic month names and symbolic
        stand-alone month names, we need to add:
         - Symbolic/numeric detection in DateTimeEditBuilder
         - Normal/stand-alone detection in DateTimeEditBuilder
         - Symbolic edit field for months

        Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
              fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html

        * html/MonthInputType.cpp:
        (WebCore::MonthInputType::setupLayoutParameters):
        Use Localizer::monthFormat.

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitField):
        - If the number of continuous field character is greater than 2, use
        DateTimeSymbolicMonthFieldElement.
        - Supports stand-alone month field.

        * html/shadow/DateTimeFieldElements.h:
        (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
        * html/shadow/DateTimeFieldElements.cpp:
        (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
        Added.
        (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
        (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
        We need to add 1 because the internal integer representation is 0-based
        and DateTimeFieldsState uses 1-based month.
        (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
        DateComponents::month is 0-based.
        (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
        We need to subtract 1 because the internal integer representation is 0-based
        and DateTimeFieldsState uses 1-based month.

        * html/shadow/DateTimeSymbolicFieldElement.h:
        (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
        Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.

2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
        https://bugs.webkit.org/show_bug.cgi?id=99519

        Reviewed by Alexander Pavlov.

        Extracted _styleContentSet callback in a class method to make it sniffable by tests.

        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StyleFile.prototype._commitIncrementalEdit):
        (WebInspector.StyleFile.prototype._styleContentSet):

2012-10-19  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: add object-src 'none' to the inspector.html
        https://bugs.webkit.org/show_bug.cgi?id=99728

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/inspector.html:

2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
        https://bugs.webkit.org/show_bug.cgi?id=99823

        Reviewed by Yury Semikhatsky.

        Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.

        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
        (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
        * inspector/front-end/Workspace.js:
        (WebInspector.Project.prototype.addTemporaryUISourceCode):

2012-10-19  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
        https://bugs.webkit.org/show_bug.cgi?id=99729

        Reviewed by Vsevolod Vlasov.

        Decode only the first line number digit written in a six-character escaped Unicode format.

        * inspector/front-end/SASSSourceMapping.js:
        (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
        (WebInspector.SASSSourceMapping.prototype._resourceAdded):

2012-10-19  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Update the RuntimeEnabledFeatures flags
        https://bugs.webkit.org/show_bug.cgi?id=99714

        Reviewed by Adam Barth.

        Updating the RuntimeEnabledFeatures flags to match reality:
        isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
        isDeprecatedPeerConnectionEnabled false.

        Patch covered by existing tests.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):

2012-10-19  Adam Barth  <abarth@webkit.org>

        [V8] Simplify GCPrologueVisitor
        https://bugs.webkit.org/show_bug.cgi?id=99819

        Reviewed by Kentaro Hara.

        Previously, GCPrologueVisitor used a complicated traits-based template
        design. That's not necessary. We can just implement it directly without
        template magic.

        The one subtly here is that MessagePort is not actually a subclass of
        ActiveDOMObject. The next stage of this cleanup is to make MessagePort
        inherit from ActiveDOMObject and remove this special case entirely.

        * bindings/v8/V8GCController.cpp:
        (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
        (WebCore):
        (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
        (WebCore::NodeVisitor::visitDOMWrapper):
        (WebCore::V8GCController::gcPrologue):

2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
        https://bugs.webkit.org/show_bug.cgi?id=99179

        Reviewed by Yury Semikhatsky.

        Added method "close" to InspectorFrontendHost.
        Symantically, this method forces to flush all unsaved buffers for
        specified file. In native implementation this turns to be no-op.

        In stub implementation "close" causes compilation of blob object an
        navigating to blob-schema url.

        Removed "canAppend", as appending in now suppurted
        by all implementations.

        Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
        to avoid out-of-memory errors.

        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::close): Compiles blob object and
        navigates to blob-object url.
        (WebCore):
        * inspector/InspectorFrontendHost.h: Added "close" method.
        * inspector/InspectorFrontendHost.idl: Ditto.
        * inspector/front-end/FileManager.js:
        (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
        * inspector/front-end/FileUtils.js:
        (WebInspector.FileOutputStream.prototype.close):
        Invoke "close" on FileManager.
        (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
        * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
        * inspector/front-end/HeapSnapshotView.js:
        (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub):
        Added "appendable" behaviour emulation.
        * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
        * inspector/front-end/externs.js: Replaced "canAppend" with "close"

2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>

        AX: labelForElement is slow when there are a lot of DOM elements
        https://bugs.webkit.org/show_bug.cgi?id=97825

        Reviewed by Ryosuke Niwa.

        Adds a DocumentOrderedMap to TreeScope that allows accessibility to
        quickly map from an id to the label for that id. This speeds up
        AccessibilityNode::labelForElement, which was a bottleneck in Chromium
        when accessibility was on.

        Tests: accessibility/title-ui-element-correctness.html
               perf/accessibility-title-ui-element.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::labelForElement):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::keyMatchesLabelForAttribute):
        (WebCore):
        (WebCore::DocumentOrderedMap::get):
        (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
        * dom/DocumentOrderedMap.h:
        (DocumentOrderedMap):
        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        (WebCore::Element::updateLabel):
        (WebCore):
        (WebCore::Element::willModifyAttribute):
        * dom/Element.h:
        (Element):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::TreeScope):
        (WebCore::TreeScope::destroyTreeScopeData):
        (WebCore::TreeScope::addLabel):
        (WebCore):
        (WebCore::TreeScope::removeLabel):
        (WebCore::TreeScope::labelElementForId):
        * dom/TreeScope.h:
        (WebCore):
        (TreeScope):
        (WebCore::TreeScope::shouldCacheLabelsByForAttribute):

2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Update localizedStrings.js
        https://bugs.webkit.org/show_bug.cgi?id=99701

        Reviewed by Yury Semikhatsky.

        Fixed most of missing strings and orphans.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/SettingsScreen.js:

2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
        https://bugs.webkit.org/show_bug.cgi?id=99457

        Reviewed by Yury Semikhatsky.

        countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
        getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.

        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::reportJSHeapInfo):
        (WebCore::reportRenderTreeInfo):
        (WebCore):
        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
        * inspector/MemoryInstrumentationImpl.cpp:
        (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
        * inspector/MemoryInstrumentationImpl.h:
        (MemoryInstrumentationClientImpl):
        (WebCore::MemoryInstrumentationClientImpl::countedObjects):

2012-10-19  Adam Barth  <abarth@webkit.org>

        [V8] DOMObjectVisitor does nothing
        https://bugs.webkit.org/show_bug.cgi?id=99812

        Reviewed by Kentaro Hara.

        This code doesn't do anything, even in Debug! We should just remove it.

        * bindings/v8/V8GCController.cpp:
        (WebCore):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::V8GCController::gcEpilogue):

2012-10-19  Adam Barth  <abarth@webkit.org>

        [V8] Remove unused typedef from V8GCController.cpp
        https://bugs.webkit.org/show_bug.cgi?id=99808

        Reviewed by Kentaro Hara.

        This typedef is not used.

        * bindings/v8/V8GCController.cpp:

2012-10-18  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
        https://bugs.webkit.org/show_bug.cgi?id=99720

        Reviewed by Yury Semikhatsky.

        Non-inherited properties are now disregarded in inherited styles.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
        (WebInspector.StylesSidebarPane.prototype._markUsedProperties):

2012-10-18  Adam Barth  <abarth@webkit.org>

        [V8] GrouperVisitor is secretly two entirely separate objects
        https://bugs.webkit.org/show_bug.cgi?id=99810

        Reviewed by Kentaro Hara.

        We can separate out the two things that GrouperVisitor is trying to do
        because they have nothing to do with each other.

        * bindings/v8/V8GCController.cpp:
        (ObjectVisitor):
        (WebCore::ObjectVisitor::visitDOMWrapper):
        (WebCore):
        (WebCore::V8GCController::gcPrologue):

2012-10-18  Kiran Muppala  <cmuppala@apple.com>

        Automatically start plugins created within a user gesture, skipping snapshotting
        https://bugs.webkit.org/show_bug.cgi?id=99778

        Reviewed by Alexey Proskuryakov.

        If a user gesture is being processed, do not set the display state of
        HTMLPluginImageElement to WaitingForSnapshot.

        No new tests, since it only affects when plugins switch from snapshot to running
        state.  Does not affect rendering of other elements.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):

2012-10-18  Kent Tamura  <tkent@chromium.org>

        Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
        https://bugs.webkit.org/show_bug.cgi?id=99787

        Reviewed by Kentaro Hara.

        This is going to be used for input[type=month] UI. This doesn't affect
        any bahevior yet.

        Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
        layout tests later.

        * platform/text/Localizer.h:
        (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
        virtual member functions.

        * platform/text/LocaleICU.h:
        (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
        * platform/text/LocaleICU.cpp:
        (WebCore::LocaleICU::shortMonthLabels): Added.
        (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.

        * platform/text/LocaleNone.cpp:
        (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
        (WebCore::LocaleNone::shortMonthLabels):
        Added. Always returns English labels.
        (WebCore::LocaleNone::shortStandAloneMonthLabels):
        Addes. Just calls shortMonthLabels.

        * platform/text/LocaleWin.h:
        (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
        * platform/text/LocaleWin.cpp:
        (WebCore::LocaleWin::shortMonthLabels): Added.
        (WebCore::LocaleWin::shortStandAloneMonthLabels):
        Added. Always returns shortMonthLabels.

        * platform/text/mac/LocaleMac.h:
        (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::shortMonthLabels): Added.
        (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.

2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        Implement value sanitization algorithm for type=datetime
        https://bugs.webkit.org/show_bug.cgi?id=76893

        Reviewed by Kent Tamura.

        Implement the value sanitization algorithm for type=datetime that adjusts
        the value to a valid normalized forced-UTC global date and time string.
        See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string

        Test: fast/forms/datetime/datetime-value-sanitization.html

        * html/DateTimeInputType.cpp:
        (WebCore::DateTimeInputType::sanitizeValue): Implemented.
        (WebCore):
        * html/DateTimeInputType.h:
        (DateTimeInputType): Add sanitizeValue.
        * platform/DateComponents.cpp:
        (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
        of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).

2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>

        Fix build warning.
        https://bugs.webkit.org/show_bug.cgi?id=99788

        Reviewed by Kentaro Hara.

        Use UNUSED_PARAM macro for removing -Wunused-parameter.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::currentTransform):

2012-10-18  Benjamin Poulain  <bpoulain@apple.com>

        [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
        https://bugs.webkit.org/show_bug.cgi?id=99771

        Reviewed by Anders Carlsson.

        * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
        to the general section.

2012-10-18  Adam Barth  <abarth@webkit.org>

        [V8] fast/dom/gc-9.html fails for document.styleSheets
        https://bugs.webkit.org/show_bug.cgi?id=99786

        Reviewed by Kentaro Hara.

        V8 needs to know about this IDL attribute as well.

        * css/StyleSheetList.idl:

2012-10-18  Adam Barth  <abarth@webkit.org>

        [V8] fast/dom/gc-9.html fails for document.implementation
        https://bugs.webkit.org/show_bug.cgi?id=99783

        Reviewed by Kentaro Hara.

        In order to correctly manage the lifetime of document.implementation,
        we need to implement GenerateIsReachable=ImplDocument.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateVisitDOMWrapper):
        * bindings/scripts/IDLAttributes.txt:
        * dom/DOMImplementation.idl:

2012-10-18  Chris Fleizach  <cfleizach@apple.com>

        AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
        https://bugs.webkit.org/show_bug.cgi?id=96443

        Reviewed by Beth Dakin.

        Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
        to determine which line this crash is happening on.

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):

2012-10-18  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
        https://bugs.webkit.org/show_bug.cgi?id=99773

        Reviewed by Tony Chang.

        Refactor to begin separating out metadata from stateful backend objects,
        in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.

        Also includes some #include dependency cleanup so that the backing store
        depends less on the stateful backend objects.

        No new tests as this is purely a refactor.

        * Modules/indexeddb/IDBBackingStore.h:
        (WebCore):
        (IDBBackingStore):
        * Modules/indexeddb/IDBCursor.h:
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
        (WebCore::IDBDatabaseBackendImpl::openInternal):
        (WebCore::IDBDatabaseBackendImpl::metadata):
        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
        (WebCore::IDBDatabaseBackendImpl::setVersion):
        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
        (WebCore::IDBDatabaseBackendImpl::openConnection):
        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
        (WebCore::IDBDatabaseBackendImpl::resetVersion):
        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
        (WebCore::IDBDatabaseBackendImpl::id):
        (IDBDatabaseBackendImpl):
        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
        * Modules/indexeddb/IDBLevelDBBackingStore.h:
        (IDBLevelDBBackingStore):
        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
        * Modules/indexeddb/IDBTransaction.h:
        (WebCore):

2012-10-18  Peter Kasting  <pkasting@google.com>

        [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
        https://bugs.webkit.org/show_bug.cgi?id=99781

        Reviewed by Adam Barth.

        No tests, since the actual effects of this bug are fickle and it's not
        clear how to extract and check particular subframes of an animated GIF.

        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::copyBitmapData):

2012-10-18  Pan Deng  <pan.deng@intel.com>

        [Resource Timing]Implementation of resource timing buffer size restriction functionality
        https://bugs.webkit.org/show_bug.cgi?id=84885.

        Reviewed by Tony Gentilcore.

        http://www.w3.org/TR/2012/CR-resource-timing-20120522/
        This patch enable functionality of set buffer size(default is 150 as spec). When buffer is full, resourceTimingBufferFull event will be fired. Incoming entries will be dropped if no more space for them. 

        Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html

        * page/Performance.cpp:
        (WebCore):
        (WebCore::Performance::Performance):
        (WebCore::Performance::webkitSetResourceTimingBufferSize):
        (WebCore::Performance::addResourceTiming):
        (WebCore::Performance::isResourceTimingBufferFull):
        * page/Performance.h:
        (Performance):

2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
        https://bugs.webkit.org/show_bug.cgi?id=99663

        Reviewed by Enrica Casucci and Levi Weintraub.

        The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
        ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
        positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
        moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
        the length after t2 is merged.

        Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
        Also use the right offset.

        Test: editing/pasteboard/copy-paste-first-line-in-textarea.html

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):

2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
        https://bugs.webkit.org/show_bug.cgi?id=82882

        Reviewed by Xan Lopez.

        Based on a patch by Milan Crha <mcrha@redhat.com>

        Prevent an invalid access to a pointer while clearing the DOM
        object cache.
        * bindings/gobject/DOMObjectCache.cpp:
        (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.

2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r131810.
        http://trac.webkit.org/changeset/131810
        https://bugs.webkit.org/show_bug.cgi?id=99762

        Broke linux debug webkit_unit_tests (Requested by
        danakj|gardening on #webkit).

        * WebCore.gypi:
        * platform/graphics/ImageSource.cpp:
        (WebCore::ImageSource::setData):
        * platform/graphics/ImageSource.h:
        (WebCore):
        (ImageSource):
        * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
        * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
        * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
        * platform/graphics/chromium/ImageDecodingStore.h: Removed.
        * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
        * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
        * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
        * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
        * platform/graphics/chromium/ScaledImageFragment.h: Removed.
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::resizedBitmap):
        * platform/image-decoders/ImageDecoder.h:
        (ImageFrame):

2012-10-18  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Do some cleanup in the chromium WebKit API
        https://bugs.webkit.org/show_bug.cgi?id=99713

        Reviewed by Adam Barth.

        Removing the deprecated version of WebMediaStreamDescriptor::initialize.

        No testing needed since only an unused function is removed.

        * platform/chromium/support/WebMediaStreamDescriptor.cpp:

2012-10-18  Alpha Lam  <hclam@chromium.org>

        [chromium] Implement deferred image decoding
        https://bugs.webkit.org/show_bug.cgi?id=94240

        Reviewed by Stephen White.

        Objectives:

        To record image decoding operations during painting and to defer
        decoding operations until rasterization.

        Rationale:

        This is a key feature that enables impl-side painting which requires
        fast recording of drawing operations. The existing decode-on-draw
        restricts that recording has to block on expensive decoding operations.
        This change allows recording of image decoding operations during paint
        time.

        Design:

        Image decoding happens when a BitmapImage is drawn into a
        GraphicsContext. When per-tile painting is enabled GraphicsContext
        is backed by SkCanvas in recording mode. This SkCanvas records drawing
        and image decoding operations to minimize recording time.

        An image decoding operation is recorded as a SkPixelRef object
        implemented by LazyDecodingPixelRef. This object references raw encoded
        data, regions to be decoded and scaling information.

        When used in conjunction with per-tile painting this feature defers
        image decoding until the SkCanvas referencing the image is rasterized.

        Both recording and rasterization happen on the main thread.

        Performance Impact:

        This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
        and does not have an impact when disabled.

        This feature is disabled by default.

        Upcoming Changes:

        1. Implement a full-featured image cache in ImageDecodingStore.
        2. Allow rasterization and decoding on impl thread.

        Classes Involved:

        BitmapImage

        BitmapImage is the entry point for deferred image decoding. When
        drawing a BitmapImage into a GraphicsContext it makes a request to
        create a NativeImageSkia. We substitute the content in NativeImageSkia
        such that it is lazily decoded.

        DeferredImageDecoder

        This is the platform implementation of a image decoder for Chromium.
        This is a bridge layer that either delegates calls to the actual
        ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
        to ImageDecodingStore.

        ImageDecodingStore

        This object manages all encoded images. It keeps track of encoded
        data and the corresponding ImageDecoder for doing actual decoding. It
        is also responsible for generating lazily decoded SkBitmaps. This
        SkBitmap contains a LazyDecodingPixelRef object which references to an
        image entry in ImageDecodingStore.

        ScaledImageFragment

        A container for a scaled image fragment. In addition to bitmap pixels
        it contains information about the ID of the image, scale and clipping.

        ImageFrameGenerator

        This object is responsible for generating decoded pixels. It is also
        a container for encoded image data and corresponding image decoder.

        LazyDecodingPixelRef

        This object is embedded in a SkBitmap to enable lazy decoding. When
        SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
        contains information to locate an image and scaling info, these
        information is submitted to ImageDecodingStore to access actual pixels.

        Layout tests. There are about 80 tests in this virtual test suite
        running this feature in this directory:

        platform/chromium/virtual/deferred/fast/images

        Unit tests. Added DeferredImageDecoderTest to verify deferred
        image decoding behavior.

        * WebCore.gypi:
        * platform/graphics/ImageSource.cpp:
        (WebCore::ImageSource::setData):
        * platform/graphics/ImageSource.h:
        (WebCore):
        (ImageSource):
        * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
        (WebCore):
        (WebCore::DeferredImageDecoder::DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
        (WebCore::DeferredImageDecoder::create):
        (WebCore::DeferredImageDecoder::createForTesting):
        (WebCore::DeferredImageDecoder::filenameExtension):
        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
        (WebCore::DeferredImageDecoder::setData):
        (WebCore::DeferredImageDecoder::isSizeAvailable):
        (WebCore::DeferredImageDecoder::size):
        (WebCore::DeferredImageDecoder::frameSizeAtIndex):
        (WebCore::DeferredImageDecoder::frameCount):
        (WebCore::DeferredImageDecoder::repetitionCount):
        (WebCore::DeferredImageDecoder::clearFrameBufferCache):
        (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
        (WebCore::DeferredImageDecoder::frameBytesAtIndex):
        * platform/graphics/chromium/DeferredImageDecoder.h: Added.
        (WebCore):
        (DeferredImageDecoder):
        * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
        (WebCore::ImageDecodingStore::ImageDecodingStore):
        (WebCore):
        (WebCore::ImageDecodingStore::~ImageDecodingStore):
        (WebCore::ImageDecodingStore::instanceOnMainThread):
        (WebCore::ImageDecodingStore::initializeOnMainThread):
        (WebCore::ImageDecodingStore::shutdown):
        (WebCore::ImageDecodingStore::isLazyDecoded):
        (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
        (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
        (WebCore::ImageDecodingStore::setData):
        (WebCore::ImageDecodingStore::lockPixels):
        (WebCore::ImageDecodingStore::unlockPixels):
        (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
        (WebCore::ImageDecodingStore::calledOnValidThread):
        (WebCore::ImageDecodingStore::lookupFrameCache):
        (WebCore::ImageDecodingStore::deleteFrameCache):
        * platform/graphics/chromium/ImageDecodingStore.h: Added.
        (WebCore):
        (ImageDecodingStore):
        (WebCore::ImageDecodingStore::create):
        * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
        (WebCore):
        (WebCore::ScaledImageFragment::~ScaledImageFragment):
        (WebCore::ScaledImageFragment::ScaledImageFragment):
        (WebCore::ScaledImageFragment::isEqual):
        * platform/graphics/chromium/ScaledImageFragment.h: Added.
        (WebCore):
        (ScaledImageFragment):
        (WebCore::ScaledImageFragment::create):
        (WebCore::ScaledImageFragment::bitmap):
        (WebCore::ScaledImageFragment::isComplete):
        * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
        (WebCore):
        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::decoder):
        (WebCore::ImageFrameGenerator::setData):
        * platform/graphics/chromium/ImageFrameGenerator.h: Added.
        (WebCore):
        (ImageFrameGenerator):
        (WebCore::ImageFrameGenerator::create):
        (WebCore::ImageFrameGenerator::size):
        (WebCore::ImageFrameGenerator::imageId):
        * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
        (WebCore):
        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::isScaled):
        (WebCore::LazyDecodingPixelRef::isClipped):
        (WebCore::LazyDecodingPixelRef::onLockPixels):
        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
        (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
        * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
        (WebCore):
        (LazyDecodingPixelRef):
        (WebCore::LazyDecodingPixelRef::frameGenerator):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::resizedBitmap):
        * platform/image-decoders/ImageDecoder.h:
        (ImageFrame):
        (WebCore::ImageFrame::setSkBitmap):
        (WebCore::ImageFrame::getSkBitmap):

2012-10-18  Yael Aharon  <yael.aharon@intel.com>

        [EFL] GraphicsContext3D::m_renderStyle is not initialized
        https://bugs.webkit.org/show_bug.cgi?id=99721

        Reviewed by Antonio Gomes.

        Initialize GraphicsContext3D::m_renderStyle.

        No new tests, no new functionality.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):

2012-10-18  Max Vujovic  <mvujovic@adobe.com>

        [CSS Shaders] Validate types of built-in vertex attributes
        https://bugs.webkit.org/show_bug.cgi?id=98972

        Reviewed by Dean Jackson.

        Reject custom filters in which the author defined built-in attributes with the wrong type.
        For example, the GLSL declaration "attribute float a_position" is incorrect because
        a_position should be a vec4, not a float.

        Test: css3/filters/custom/invalid-custom-filter-attribute-types.html

        * platform/graphics/ANGLEWebKitBridge.h:
        (WebCore::ANGLEShaderSymbol::isSampler):
            Add const qualifier to isSampler method.
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
        (WebCore):
        (WebCore::builtInAttributeNameToTypeMap):
            New file static function. Returns a map of the CSS Custom Filters built-in attribute
            names and their expected types.
        (WebCore::validateSymbols):
            New file static function. Loop through all of the symbols. Reject the shader if we find
            a built-in attribute defined with the wrong type.
        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
            Call the new validateSymbols function. If it returns false, exit the constructor early,
            which rejects the program.
            Move the loop that checks if any uniform is a sampler into the the validateSymbols
            function.

2012-10-18  Mike Reed  <reed@google.com>

        Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
        https://bugs.webkit.org/show_bug.cgi?id=99752

        Reviewed by Stephen White.

        Current code does not check if we were able to allocate the pixels, but still returns the canvas.
        However, the caller explicitly is checking for null on failure, so it will continue (and possibly
        crash later on).
        This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
        TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.

        No new tests. Existing tests exercise ImageBuffer constructor.

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::createNonPlatformCanvas):

2012-10-18  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=99668
        REGRESSION: Crash in 
        WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
        -and corresponding-
        <rdar://problem/12491901>

        Reviewed by Simon Fraser.

        http://trac.webkit.org/changeset/130783 changed the lifetime of the 
        ScrollingStateTree's rootStateNode. Before that patch, the root state 
        node was never destroyed. It was just constantly re-used for 
        different RenderLayerBackings. This crash is just one of a few bugs 
        that has occurred because of that change. I have fixed the other bugs 
        individually, but I think that long-term, it is the safest solution 
        to go back to the original ownership model.

        So this patch ensures that the state tree will always have a root 
        state node. Instead of destroying and re-creating the root node when 
        it's scroll ID changes, we just update the ID.

        attachToStateTree() now takes an additional ID representing the ID of 
        the parent node.
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::attachToStateTree):

        Add a way to set the scrolling node ID.
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::ScrollingStateNode::setScrollingNodeID):

        This code that provided a way to mark all properties as having 
        changed was added in http://trac.webkit.org/changeset/130989 as a way 
        to ensure we would re-set ScrollingThread's nodes when we destroyed 
        and re-created the rootStateNode. Now that we are no longer 
        destroying and re-creating the rootStateNode, this code is no longer 
        necessary.
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        * page/scrolling/ScrollingStateScrollingNode.h:

        create m_rootStateNode right in the ScrollingStateTree's constructor.
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::ScrollingStateTree):

        Don't let removeNode() destroy m_rootStateNode.
        (WebCore::ScrollingStateTree::removeNode):

        Also a part of r130989 that is no longer needed.
        (WebCore::ScrollingStateTree::rootLayerDidChange():
        * page/scrolling/ScrollingStateTree.h:
        (WebCore::ScrollingStateTree::rootStateNode):
        (ScrollingStateTree):
        (WebCore::ScrollingStateTree::setRootStateNode):

        attachToStateTree() now takes an additional ID representing the ID of 
        the parent node.
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        (ScrollingCoordinatorMac):

        We no longer need ScrollingStateTree::rootLayerDidChange()
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):

        Do not destroy and re-create the state node. Just update its ID. When 
        we support child nodes soon, we will create them in this function.
        (WebCore::ScrollingCoordinatorMac::attachToStateTree):

        No need to null-check the rootStateNode.
        (WebCore::ScrollingCoordinatorMac::clearStateTree):

        Send 0 as the parent node ID to attachToStateTree() to represent the 
        root node.
        (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
        * rendering/RenderLayerBacking.cpp:

        RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
        layer.
        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):

        Since this is the root, send 0 to represent the parent layer.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateBacking):

2012-10-18  Yael Aharon  <yael.aharon@intel.com>

        [EFL] GraphicsContext3D::m_renderStyle is not initialized
        https://bugs.webkit.org/show_bug.cgi?id=99721

        Reviewed by Antonio Gomes.

        Initialize GraphicsContext3D::m_renderStyle.

        No new tests, no new functionality.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):

2012-10-18  Brian White  <bcwhite@chromium.org>

        WebKit Doesn't Recognize Content-Language HTTP Header
        https://bugs.webkit.org/show_bug.cgi?id=97929

        Reviewed by Alexey Proskuryakov.

        The HTTP "Content-Language" header may be present and include the
        language of the page contents (as opposed to an embedded meta tag).

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didBeginDocument):

2012-10-18  Jer Noble  <jer.noble@apple.com>

        Crash in WebCore::Document::webkitExitFullscreen + 618
        https://bugs.webkit.org/show_bug.cgi?id=99496

        Reviewed by Eric Carlson.

        Prospective fix for null-dereference crash in Document::webkitExitFullscreen().

        * dom/Document.cpp:
        (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.

2012-10-18  Pablo Flouret  <pablof@motorola.com>

        Implement css3-conditional's @supports rule
        https://bugs.webkit.org/show_bug.cgi?id=86146

        Reviewed by Antti Koivisto.

        The "@supports" rule is a conditional group rule whose condition tests
        whether the user agent supports CSS property:value pairs.

        http://dev.w3.org/csswg/css3-conditional/#at-supports

        Test: css3/supports.html

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:
        * GNUmakefile.features.am:
            Add an ENABLE_CSS3_CONDITIONAL_RULES flag.

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore):
        (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
        (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
        (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
        * css/CSSParser.h: Added new SupportsMode parsing mode.
        (CSSParser):

2012-10-18  Marja Hölttä  <marja@chromium.org>

        Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
        https://bugs.webkit.org/show_bug.cgi?id=99730

        Reviewed by Jochen Eisinger.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestSVGDocument):

2012-10-18  Jer Noble  <jer.noble@apple.com>

        Fullscreen movie controls behave incorrectly when clicked (and dragged)
        https://bugs.webkit.org/show_bug.cgi?id=99610

        Reviewed by Eric Carlson.

        Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
        store the cumulative drag offset and accumulate during each additional drag.

        No new tests; modified the fullscreen/video-controls-drag.html test.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
        (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
        (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
        * html/shadow/MediaControlElements.h:

2012-10-18  Brandon Jones  <bajones@google.com>

        Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
        https://bugs.webkit.org/show_bug.cgi?id=97400

        Reviewed by Kenneth Russell.

        Implemented OES_element_index_uint WebGL extension

        Test: fast/canvas/webgl/oes-element-index-uint.html

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
        (WebCore):
        (WebCore::OESElementIndexUint::OESElementIndexUint):
        (WebCore::OESElementIndexUint::~OESElementIndexUint):
        (WebCore::OESElementIndexUint::getName):
        (WebCore::OESElementIndexUint::create):
        * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
        (WebCore):
        (OESElementIndexUint):
        * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::validateElementArraySize):
        (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
        (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
        (WebCore::WebGLRenderingContext::validateRenderingState):
        (WebCore::WebGLRenderingContext::drawElements):
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        * html/canvas/WebGLRenderingContext.h:
        (WebCore):
        (WebGLRenderingContext):
        * platform/graphics/Extensions3D.h:
        (Extensions3D):
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::supportsExtension):

2012-10-18  Jer Noble  <jer.noble@apple.com>

        Add diagnostic logging to track per-page media engine usage.
        https://bugs.webkit.org/show_bug.cgi?id=99615
        <rdar://problem/12476473>

        Reviewed by Eric Carlson.

        Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.

        * html/HTMLMediaElement.cpp:
        (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
        (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
        (WebCore::HTMLMediaElement::setReadyState): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.

        Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
        * page/Page.cpp:
        (WebCore::Page::hasSeenAnyMediaEngine):
        (WebCore::Page::hasSeenMediaEngine):
        (WebCore::Page::sawMediaEngine):
        (WebCore::Page::resetSeenMediaEngines):
        * page/Page.h:

        Add new static logging key definitions:
        * page/DiagnosticLoggingKeys.cpp:
        (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
        (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
        * page/DiagnosticLoggingKeys.h:

2012-10-18  Michael Saboff  <msaboff@apple.com>

        Add 8-bit path to RenderBlock::handleTrailingSpaces()
        https://bugs.webkit.org/show_bug.cgi?id=99731

        Reviewed by Dan Bernstein.

        Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
        approriate character pointer type.

        No tests needed, change covered by existing tests.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::findFirstTrailingSpace):
        (WebCore::RenderBlock::handleTrailingSpaces):

2012-10-18  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
        https://bugs.webkit.org/show_bug.cgi?id=99216

        Reviewed by Dirk Schulze.

        Added a FloatRect::extend() method which simplifies writing loops that
        accumulate the bounding box for a sequence of FloatPoints. The new method
        is used by ExclusionPolygon to initialize the shape's logical and physical
        bounding boxes. This a clean-up, not a change in functionality. It's already
        covered by the existing fast/exclusions LayoutTests.

        * platform/graphics/FloatRect.cpp:
        (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
        (WebCore):
        * platform/graphics/FloatRect.h:
        (FloatRect): Added extend() method.
        * rendering/ExclusionPolygon.cpp:
        (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
        * rendering/ExclusionShape.cpp:
        (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
        * rendering/ExclusionShape.h:
        (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
        (ExclusionShape):

2012-10-18  Hans Muller  <hmuller@adobe.com>

        [CSS Exclusions] Handle special case "empty" shapes
        https://bugs.webkit.org/show_bug.cgi?id=99342

        Reviewed by Dirk Schulze.

        Provide expclit coverage of the simple "empty" shape-inside shapes.
        Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
        and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
        This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
        with 0 radiusX or radiusY, polygons with less than 3 vertices.

        Test: fast/exclusions/shape-inside/shape-inside-empty.html

        * rendering/ExclusionPolygon.cpp:
        (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
        (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
        (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
        * rendering/ExclusionPolygon.h: Added the isEmpty() method.
        * rendering/ExclusionRectangle.cpp:
        (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
        (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
        * rendering/ExclusionRectangle.h: Added the isEmpty() method.
        * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
        (ExclusionShape):

2012-10-18  Takashi Sakamoto  <tasak@google.com>

        REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
        https://bugs.webkit.org/show_bug.cgi?id=99587

        Reviewed by Dimitri Glazkov.

        Since contents in datalist are not shown, summary in datalist is not
        shown either. So the summary has no render style. On the other hand,
        the summary is implemented by shadow DOM and it has some insertion
        point. Its child, e.g. title in the below test, is distributed.
        To solve the child's user-modify, looking at shadow host(=summary)'s
        style causes null-pointer crash.

        Test: fast/dom/shadow/user-modify-in-datalist-crash.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForElement):
        Added a code to check whether the shadow host has any style or not.

2012-10-17  Philippe Normand  <pnormand@igalia.com>

        [GTK] AudioBusGtk sometimes fails to load the HRTF database
        https://bugs.webkit.org/show_bug.cgi?id=99601

        Reviewed by Martin Robinson.

        AudioBusGtk now first lookup for the uninstalled resource files,
        if the AUDIO_RESOURCES_PATH environment variable is
        set. Additionally the audio file reader is now better dealing with
        errors, returning an empty AudioBus in such cases and issuing
        warnings on the console output. The cleanup of some member
        variables was also moved to the destructor.

        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (AudioFileReader):
        (WebCore::AudioFileReader::AudioFileReader):
        (WebCore::AudioFileReader::~AudioFileReader): Clear and free
        member variables. This was done in createBus before.
        (WebCore::AudioFileReader::handleMessage): Issue warnings in case
        of error and exit from the main loop so the pipeline is not
        forever stuck.
        (WebCore::AudioFileReader::createBus): Return an empty bus in case
        of error.
        * platform/audio/gtk/AudioBusGtk.cpp:
        (WebCore::AudioBus::loadPlatformResource): Load uninstalled
        resources first if AUDIO_RESOURCES_PATH is set.

2012-10-18  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
        https://bugs.webkit.org/show_bug.cgi?id=99718

        Reviewed by Vsevolod Vlasov.

        Adds stub method that could be executed from the embedder.

        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.setDockSide):

2012-10-18  Kent Tamura  <tkent@chromium.org>

        Add Localizer::monthFormat and implementations
        https://bugs.webkit.org/show_bug.cgi?id=99704

        Reviewed by Kentaro Hara.

        Localizer::monthFormat will be used for constructing input[type=month] UI.

        Tests: Add unit tests to Source/WebKit/chromium/tests/.

        * platform/text/Localizer.h:
        (Localizer): Declare pure virtual monthFormat function.

        * platform/text/LocaleNone.cpp:
        (LocaleNone): Declare monthFormat.
        (WebCore::LocaleNone::monthFormat):
        Added. Always reutrns an ISO-8601 format, "yyyy-MM"

        * platform/text/LocaleICU.h:
        (LocaleICU): Declare monthFormat.
        * platform/text/LocaleICU.cpp:
        (WebCore::getFormatForSkeleton):
        A helper to get a format for the specified skeleton.
        The overflow-allocalte-try-again pattern is similar to
        LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
        (WebCore::LocaleICU::monthFormat):
        Added. Calls getFormatForSkeleton with "yyyyMMM".

        * platform/text/mac/LocaleMac.h:
        (LocaleMac): Declare monthFormat.
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::monthFormat):
        Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".

        * platform/text/LocaleWin.h:
        (LocaleWin): Declare monthFormat.
        * platform/text/LocaleWin.cpp:
        (WebCore::LocaleWin::monthFormat):
        Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.

2012-10-18  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: add X-WebKit-CSP header into inspector.html
        https://bugs.webkit.org/show_bug.cgi?id=99710

        Reviewed by Vsevolod Vlasov.

        A simple sanity measure.

        * inspector/front-end/inspector.html:

2012-10-18  Huang Dongsung  <luxtella@company100.net>

        [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
        https://bugs.webkit.org/show_bug.cgi?id=98733

        Reviewed by Noam Rosenthal.

        Change CustomFilterOperation::parameters() to const function, because
        this method is a getter and a const instance needs to call this method.

        No new tests because there is no change in behavior.

        * platform/graphics/filters/CustomFilterOperation.h:
        (WebCore::CustomFilterOperation::parameters):

2012-10-18  Hayato Ito  <hayato@chromium.org>

        treeScopeOfParent doesn't return the TreeScope of the parent
        https://bugs.webkit.org/show_bug.cgi?id=98207

        Reviewed by Hajime Morita.

        A minor clean up. Remove treeScopeOfParent() in Element.cpp.

        No tests needed, this is just a clean up.

        * dom/Element.cpp:
        (WebCore::Element::removedFrom):

2012-10-18  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
        https://bugs.webkit.org/show_bug.cgi?id=99711

        Reviewed by Vsevolod Vlasov.

        Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.

        * inspector/front-end/CSSCompletions.js:
        (WebInspector.CSSCompletions):
        (WebInspector.CSSCompletions.requestCSSNameCompletions):
        (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
        * inspector/front-end/CSSKeywordCompletions.js:
        (WebInspector.CSSKeywordCompletions.forProperty):

2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>

        Unreviewed, do not make UseV8.cmake executable.

        * UseV8.cmake: Removed property svn:executable.

2012-10-18  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Add better RTCPeerConnectionHandler creation logic
        https://bugs.webkit.org/show_bug.cgi?id=99308

        Reviewed by Adam Barth.

        This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
        the RTCPeerConnection constructor throws an exception.

        Not full testable, existing tests cover the normal case though.

        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandler::create):
        (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
        (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
        (WebCore::RTCPeerConnectionHandlerChromium::initialize):
        (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
        (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
        (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
        (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
        (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
        (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
        (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
        (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
        (WebCore::RTCPeerConnectionHandlerChromium::addStream):
        (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
        (WebCore::RTCPeerConnectionHandlerChromium::getStats):
        (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
        (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
        (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
        (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
        (WebCore::RTCPeerConnectionHandlerChromium::stop):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (RTCPeerConnectionHandlerChromium):

2012-10-19  Zeno Albisser  <zeno@webkit.org>

        Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
        https://bugs.webkit.org/show_bug.cgi?id=99320

        The current version of Qt5 deployed on the buildbots does not yet have
        an implementation for QCocoaNativeInterface::nativeResourceForContext().
        Therefore we disable this code path until Qt5/qtbase has been updated to
        a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.

        Once Qt5 has been updated, this patch must be reverted.

        Reviewed by Noam Rosenthal.

        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):

2012-10-18  Zeno Albisser  <zeno@webkit.org>

        GraphicsSurface should not modify the current GL context.
        https://bugs.webkit.org/show_bug.cgi?id=99320

        Instead of reusing the currently bound GL context for drawing
        the texture onto the GraphicsSurface, GraphicsSurface should
        create a new context that shares the texture names with a context
        provided by the caller.
        This way the OpenGL states are clearly separated and we do not
        risk interfeering with the currently bound GL context.

        Reviewed by Noam Rosenthal.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
            When creating a GraphicsSurface pass the platform GL context
            as a parameter, so it can be used for sharing textures with.
        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
            Pass the texture instead of the FBO. A Texture can be drawn
            directly or bound to another FBO, where a framebuffer
            always needs to be blit onto the surface.
        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
            Pass the platform GL context as a parameter.
        * platform/graphics/surfaces/GraphicsSurface.cpp:
        (WebCore::GraphicsSurface::create):
        (WebCore::GraphicsSurface::copyFromTexture):
        * platform/graphics/surfaces/GraphicsSurface.h:
        (GraphicsSurface):
        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
            Create a new GL context that shares the textures with the
            context provided by the caller.
        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
            Add a convenience function to make the context that
            belongs to the surface current.
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
            Add a convenience function to make the previously
            bound context current again.
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
            Move blitting of the texture onto the surface
            into a separate function within GraphicsSurfacePrivate.
        (WebCore::GraphicsSurface::platformCopyFromTexture):
            Rename function platformCopyFromFramebuffer to
            platformCopyFromTexture, as we are now passing the texture only.
        (WebCore::GraphicsSurface::platformCreate):
        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
        (WebCore):
        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::makeCurrent):
            Add a convenience function to make the context that
            belongs to the surface current.
        (GraphicsSurfacePrivate):
        (WebCore::GraphicsSurfacePrivate::doneCurrent):
            Add a convenience function to make the previously
        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
            Move blitting of the texture onto the surface
            into a separate function within GraphicsSurfacePrivate.
        (WebCore::resolveGLMethods):
            Resolve additional GL methods necessary for this change.
        (WebCore::GraphicsSurface::platformCopyFromTexture):
            Rename function platformCopyFromFramebuffer to
            platformCopyFromTexture, as we are now passing the texture only.
        (WebCore::GraphicsSurface::platformCreate):

2012-10-18  Kent Tamura  <tkent@chromium.org>

        Set min-width property instead of width property for date/time fields
        https://bugs.webkit.org/show_bug.cgi?id=99673

        Reviewed by Hajime Morita.

        A field can have a text wider than pre-computed width because of
        :first-letter property. So, we should set min-width, not width.

        Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html

        * html/shadow/DateTimeNumericFieldElement.cpp:
        (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
        Set min-width instead of width.
        * html/shadow/DateTimeSymbolicFieldElement.cpp:
        (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.

2012-10-18  MORITA Hajime  <morrita@google.com>

        Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
        https://bugs.webkit.org/show_bug.cgi?id=99510

        Reviewed by Kent Tamura.

        Shadow DOM notification call didn't have checks for mutation detection.
        This change adds such checks.

        Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html

        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):

2012-10-17  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests.

        * bindings/scripts/test/V8/V8Float64Array.h:
        (V8Float64Array):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
        (V8TestActiveDOMObject):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
        (V8TestCustomNamedGetter):
        * bindings/scripts/test/V8/V8TestEventConstructor.h:
        (V8TestEventConstructor):
        * bindings/scripts/test/V8/V8TestEventTarget.h:
        (V8TestEventTarget):
        * bindings/scripts/test/V8/V8TestException.h:
        (V8TestException):
        * bindings/scripts/test/V8/V8TestInterface.h:
        (V8TestInterface):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
        (V8TestMediaQueryListListener):
        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
        (V8TestNamedConstructor):
        * bindings/scripts/test/V8/V8TestNode.h:
        (V8TestNode):
        * bindings/scripts/test/V8/V8TestObj.h:
        (V8TestObj):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
        (V8TestSerializedScriptValueInterface):

2012-10-17  Mike West  <mkwst@chromium.org>

        Move mixed content logic out of FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45638

        Reviewed by Eric Seidel.

        This change moves checks for mixed content out of FrameLoader, and into
        a new MixedContentChecker object. It's a pretty straightforward
        refactoring with no change to the overall logic, and only minor changes
        to the code to reduce repetition.

        The only substantive change is renaming the methods from 'checkIf*' to
        'can*' to reflect the value of the boolean they return.

        The visible functionality shouldn't change; this change should be
        covered by existing tests in http/tests/security/mixedContent.

        This patch is mostly a revitalization of Eric Sidel's original
        patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
            Hey, look! A new file!
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader):
        * loader/FrameLoader.h:
        (WebCore::FrameLoader::mixedContentChecker):
        (FrameLoader):
        * loader/MixedContentChecker.cpp: Added.
        (WebCore):
        (WebCore::MixedContentChecker::MixedContentChecker):
        (WebCore::MixedContentChecker::client):
        (WebCore::asUTF8):
        (WebCore::MixedContentChecker::isMixedContent):
        (WebCore::MixedContentChecker::canDisplayInsecureContent):
        (WebCore::MixedContentChecker::canRunInsecureContent):
        (WebCore::MixedContentChecker::logWarning):
        * loader/MixedContentChecker.h: Added.
        (WebCore):
        (MixedContentChecker):
            Migrate functionality from FrameLoader::checkIf* to
            MixedContentChecker::can*.
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::willSendRequest):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::pluginIsLoadable):
        (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::checkInsecureContent):
            Use the new method locations.

2012-10-17  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
        https://bugs.webkit.org/show_bug.cgi?id=99654

        Reviewed by Adele Peterson.

        When the base character of a combining character sequence is not covered by any one of the
        available fonts, there is no point looking for a font that covers the entire sequence, nor
        to try to use a combination of fallback fonts for the entire sequence.

        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
        here and renamed it.
        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
        systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
        for a base character with combining marks, regardless of whether the base character was
        covered by any font. Changed it to preserve the return value of
        fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
        any font, while systemFallbackFontData() is used to indicate that no single font in the
        fallback list covers all characters in the sequence, but the base character is in some font.
        * platform/graphics/mac/ComplexTextController.h:
        (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
        move.
        * platform/graphics/mac/FontComplexTextMac.cpp:
        (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
        systemFallbackFontData() if no single font in the fallback list covers all characters in the
        sequence, while using 0 to signal the base character does not exist in any font.

2012-10-17  Dan Bernstein  <mitz@apple.com>

        Try to fix the build after r131701.

        * WebCore.exp.in:

2012-10-17  Hayato Ito  <hayato@chromium.org>

        Content element does not expose distributedNodes property.
        https://bugs.webkit.org/show_bug.cgi?id=99232

        Reviewed by Dimitri Glazkov.

        Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
        static NodeList whose node are distributed to the content element.

        Test: fast/dom/shadow/content-element-distributed-nodes.html

        * html/shadow/HTMLContentElement.idl:
        * html/shadow/InsertionPoint.cpp:
        (WebCore::InsertionPoint::getDistributedNodes):
        * html/shadow/InsertionPoint.h:
        (InsertionPoint):
        * testing/Internals.cpp:
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-10-17  Pan Deng  <pan.deng@intel.com>

        [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
        https://bugs.webkit.org/show_bug.cgi?id=90963

        Reviewed by Tony Gentilcore.

        This patch implemented mark(), measure(), clearMarks() and clearMeasures() interface of User Timing. Getters are not exposed by Performance Timeline yet, it will be future patch.

        Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
               http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
               http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
               http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
               http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
               http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
               http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
               http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * page/Performance.cpp:
        (WebCore::Performance::webkitGetEntries):
        (WebCore::Performance::webkitGetEntriesByType):
        (WebCore::Performance::webkitGetEntriesByName):
        (WebCore):
        (WebCore::Performance::webkitMark):
        (WebCore::Performance::webkitClearMarks):
        (WebCore::Performance::webkitMeasure):
        (WebCore::Performance::webkitClearMeasures):
        * page/Performance.h:
        (WebCore):
        (Performance):
        * page/Performance.idl:
        * page/PerformanceMark.h: Added.
        (WebCore):
        (PerformanceMark):
        (WebCore::PerformanceMark::create):
        (WebCore::PerformanceMark::PerformanceMark):
        (WebCore::PerformanceMark::~PerformanceMark):
        * page/PerformanceMark.idl: Added.
        * page/PerformanceMeasure.h: Added.
        (WebCore):
        (PerformanceMeasure):
        (WebCore::PerformanceMeasure::create):
        (WebCore::PerformanceMeasure::PerformanceMeasure):
        (WebCore::PerformanceMeasure::~PerformanceMeasure):
        * page/PerformanceMeasure.idl: Added.
        * page/PerformanceUserTiming.cpp: Added.
        (WebCore):
        (WebCore::UserTiming::UserTiming):
        (WebCore::insertPerformanceEntry):
        (WebCore::clearPeformanceEntries):
        (WebCore::UserTiming::mark):
        (WebCore::UserTiming::clearMarks):
        (WebCore::UserTiming::findExistingMarkStartTime):
        (WebCore::UserTiming::measure):
        (WebCore::UserTiming::clearMeasures):
        * page/PerformanceUserTiming.h: Added.
        (WebCore):
        (UserTiming):
        (WebCore::UserTiming::create):

2012-10-17  James Robinson  <jamesr@chromium.org>

        Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.

        * platform/graphics/GraphicsLayerUpdater.h:
        (GraphicsLayerUpdater):

2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>

        Attempt to fix the build after r131680.

        Unreviewed build fix.

        * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h

2012-10-17  Elliott Sprehn  <esprehn@chromium.org>

        StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
        https://bugs.webkit.org/show_bug.cgi?id=99560

        Reviewed by Eric Seidel.

        Previously we only compared the first ContentData in the linked
        list of ContentData's which meant that if the resolved style
        for content had the same prefix we wouldn't update the content.

        This patch adds a loop to compare each of the ContentData objects
        in the linked list.

        Test: fast/css-generated-content/content-property-change.html

        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::contentDataEquivalent):

2012-10-17  Elliott Sprehn  <esprehn@chromium.org>

        Remove StyleContentType since it's not used anymore
        https://bugs.webkit.org/show_bug.cgi?id=99659

        Reviewed by Eric Seidel.

        Remove StyleContentType enum since it's not used anymore and
        make the is*() type checking methods on ContentData public.

        No new tests needed, this is just deleting dead code.

        * rendering/style/ContentData.h:
        (ContentData):
        * rendering/style/RenderStyleConstants.h:

2012-10-17  Simon Fraser  <simon.fraser@apple.com>

        Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
        https://bugs.webkit.org/show_bug.cgi?id=99518

        Reviewed by Dean Jackson.

        When using tile caches in place of tiled layers, we need to recompute their
        visible area periodically while animations and scrolling are happening.
        Make a new class, GraphicsLayerUpdater, to handle this updating.
        Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
        
        GraphicsLayer clients are notified that layers need periodic updates. Clients
        are free to make use of GraphicsLayerUpdater to handle this updating, as
        RenderLayerCompositor does.
        
        Also do some minor refactoring of methods in RenderLayerCompositor that
        get to Page.

        * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
        * GNUmakefile.list.am: Ditto.
        * PlatformBlackBerry.cmake: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * dom/Document.cpp:
        (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
        changed, so it can tell the GraphicsLayerUpdater if it has one.
        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
        for layers that need periodic updates, like tile cache layers.
        * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
        to flush layers before the next refresh.
        (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
        (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
        (WebCore::GraphicsLayerUpdater::scheduleUpdate):
        (WebCore::GraphicsLayerUpdater::screenDidChange):
        (WebCore::GraphicsLayerUpdater::displayRefreshFired):
        * platform/graphics/GraphicsLayerUpdater.h: Added.
        (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
        (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
        tell the client that this layer should be updated soon to update the visible rect.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
        on to the compositor.
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
        Add OVERRIDE to all the client overrides.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
        (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
        about the current state of animations inside the flush (for visible rect computation), so we
        need a AnimationUpdateBlock to make sure all the animation times are in sync.
        (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
        if necessary, and tell it to update soon.
        (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
        Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
        (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
        (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
        (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
        (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
        (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
        (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
        (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
        (WebCore::RenderLayerCompositor::page): The helper.
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor): Add OVERRIDE to all the client overrides.

2012-10-17  Eric Seidel  <eric@webkit.org>

        Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
        https://bugs.webkit.org/show_bug.cgi?id=99652

        Reviewed by Adam Barth.

        My testing showed this moved dom-query.html from  465560 runs/s to 479019
        which is about 2% if I'm doing my math correctly.

        I suspect that's due to avoiding the ref-churn we were incurring by using
        return-by-value symantics here.

        This is just the tip of the iceburg. :)

        * bindings/v8/V8StringResource.cpp:
        (StringTraits):
        * bindings/v8/V8ValueCache.h:
        (WebCore::WebCoreStringResource::webcoreString):
        (WebCore::WebCoreStringResource::atomicString):

2012-10-17  Luke Macpherson   <macpherson@chromium.org>

        Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
        https://bugs.webkit.org/show_bug.cgi?id=99534

        Reviewed by Alexis Menard.

        One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.

        Covered by fast/overflow/line-clamp.html

        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2012-10-17  Andy Estes  <aestes@apple.com>

        [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
        https://bugs.webkit.org/show_bug.cgi?id=99662

        Reviewed by Sam Weinig.

        Export needed symbols.

        * WebCore.exp.in:

2012-10-17  Adam Barth  <abarth@webkit.org>

        [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
        https://bugs.webkit.org/show_bug.cgi?id=99653

        Reviewed by Eric Seidel.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):

2012-10-17  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Destroy leveldb directory if unknown schema is detected
        https://bugs.webkit.org/show_bug.cgi?id=99636

        Reviewed by Tony Chang.

        chromium browser test in progress at
        https://codereview.chromium.org/11196029

        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
        (WebCore):
        (WebCore::isSchemaKnown):
        Return true when the schema key doesn't exist because new databases
        won't have one.

        (WebCore::setUpMetadata):
        (WebCore::IDBLevelDBBackingStore::open):
        Piggy-back on existing leveldb::destroy code.

2012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        Incorrect rendering of borders on <col> with span > 1
        https://bugs.webkit.org/show_bug.cgi?id=76246

        Reviewed by Julien Chaffraix.

        The HTML5 rendering specification [10.2.2 - Display Types] states that
        "For the purposes of the CSS table model, the col element is expected to
        be treated as if it was present as many times as its span attribute
        specifies."
        We should thus apply a col element's border as if the element is present
        as many number of times as its span attribute.

        Apart from this, we should also treat the col and its enclosing colgroup
        separately while computing the collapsed borders.

        Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::computeCollapsedStartBorder):
        (WebCore::RenderTableCell::computeCollapsedEndBorder):
        Borders from col and its enclosing colgroup element should be handled
        separately, while considering the preceeding col's end border (for start
        border computation) and the next col's start border (for end border
        computation).

        Also, have made changes for handling of col elements with span attribute as
        per the specification. We now apply the border (start or end) of the col
        element irrespective of whether it has any span specified for it or not.

2012-10-17  Tom Sepez  <tsepez@chromium.org>

        Crash in ContainerNode::removeAllChildren()
        https://bugs.webkit.org/show_bug.cgi?id=98443

        Reviewed by Eric Carlson.

        This patch makes the errorEventSender added in WebKit Revision 112190 interact
        with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
        existing event senders.

        Test: http/tests/security/video-poster-cross-origin-crash2.html

        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::setImage):
        (WebCore::ImageLoader::updateFromElement):
        (WebCore::ImageLoader::notifyFinished):
        (WebCore::ImageLoader::updatedHasPendingEvent):
        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
        (WebCore::ImageLoader::dispatchPendingLoadEvent):
        * loader/ImageLoader.h:
        (ImageLoader):

2012-10-17  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Closing connection in upgradeneeded should result in error event
        https://bugs.webkit.org/show_bug.cgi?id=99486

        Reviewed by Tony Chang.

        The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
        This was being handled during the "enqueue" phase, which was too early either for synchronously
        executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
        logic to the "dispatch" phase.

        Test: storage/indexeddb/intversion-close-in-oncomplete.html

        * Modules/indexeddb/IDBOpenDBRequest.cpp:
        (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
        (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
        * Modules/indexeddb/IDBOpenDBRequest.h:
        (IDBOpenDBRequest):

2012-10-17  Elliott Sprehn  <esprehn@chromium.org>

        Use virtual dispatch to create ContentData renderers
        https://bugs.webkit.org/show_bug.cgi?id=99646

        Reviewed by Eric Seidel.

        ContentData are conceptually very similar to Nodes and we can use
        the same createRenderer pattern on them to simplify creating
        renderers for generated content. Now each ContentData class knows
        how to create its own renderer.

        Previously we switched over the StyleContentType which required a
        case for CONTENT_NONE and made the code look like it could return
        null, but this case is actually impossible because no ContentData
        class ever has a type of CONTENT_NONE and no null checks are really
        needed.

        This is the final step in removing dependence on StyleContentType.

        No new tests needed, this is just a refactor.

        * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
        * rendering/style/ContentData.cpp:
        (WebCore::ImageContentData::createRenderer):
        (WebCore):
        (WebCore::TextContentData::createRenderer):
        (WebCore::CounterContentData::createRenderer):
        (WebCore::QuoteContentData::createRenderer):
        * rendering/style/ContentData.h: Added a new virtual method createRenderer.
        (WebCore):
        (ContentData):
        (ImageContentData):
        (TextContentData):
        (CounterContentData):
        (QuoteContentData):

2012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>

        RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
        https://bugs.webkit.org/show_bug.cgi?id=89393

        Reviewed by Eric Seidel.

        Performance optimization, covered by existing tests.

        Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
        painting, it would benefit from the same optimization.

        On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
        it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
        (I didn't measure the exact timing).

        Note that as in bug 88888, the multi-column code is not covered by this optimization.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTest):
        This is the entrance to the hit testing code so we check if we can bail out early.

        (WebCore::RenderLayer::hitTestList):
        If we have no self-painting descendant layers, we can bail out.

        (WebCore::RenderLayer::hitTestContents):
        (WebCore::RenderLayer::hitTestLayer):
        hitTest should filter the layers that call these functions. Added some ASSERT to
        make sure we don't mistakenly call them when could avoid it.

2012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Certain SVG content freezes QtWebKit
        https://bugs.webkit.org/show_bug.cgi?id=97258

        Reviewed by Simon Hausmann.

        Ensure dashpattern is well-formed by avoiding divisions by zero.

        Test: svg/stroke/zero-width-hang.html

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::setLineDash):

2012-10-17  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
        https://bugs.webkit.org/show_bug.cgi?id=99619

        Reviewed by Adam Barth.

        Rather than pass SerializedScriptValue tokens from the backend,
        send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
        undefined, (as onSucess()), and integers (as onSuccess(long long))

        This reduces backend dependency on things that might require a JS
        interpreter on the backend.

        No new tests, this is a refactor and existing tests cover
        correctness. Tests that might fail include:

        Test: storage/indexeddb/index-count.html
        Test: storage/indexeddb/objectstore-count.html
        Test: storage/indexeddb/database-basics.html

        * Modules/indexeddb/IDBCallbacks.h:
        (IDBCallbacks):
        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::advanceInternal):
        (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
        * Modules/indexeddb/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::value):
        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
        * Modules/indexeddb/IDBIndex.cpp:
        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::openCursorInternal):
        (WebCore::IDBIndexBackendImpl::countInternal):
        (WebCore::IDBIndexBackendImpl::getInternal):
        * Modules/indexeddb/IDBObjectStore.cpp:
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::getInternal):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        (WebCore::IDBObjectStoreBackendImpl::clearInternal):
        (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
        (WebCore::IDBObjectStoreBackendImpl::countInternal):
        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):
        (WebCore):
        * Modules/indexeddb/IDBRequest.h:
        * Modules/indexeddb/IDBTransaction.cpp:
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        * Modules/indexeddb/IDBTransactionBackendInterface.h:
        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::deserializeIDBValue):
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):

2012-10-17  Nate Chapin  <japhet@chromium.org>

        Move ResourceRequest construction out of SubresourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=99627

        Reviewed by Adam Barth.

        CachedResource::load() fills out a bunch of http headers.
        SubresourceLoader::create() adds a bunch more. Merge them.
        Note that this merge requires a bit more care in CachedRawResource::canReuse(),
        because more headers are set directly on CachedResource::m_resourceRequest, rather
        than on a copy of it.

        No new tests, no functionality change intended.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::create):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::shouldIgnoreHeaderForCacheReuse):
        (WebCore):
        (WebCore::CachedRawResource::canReuse):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::failBeforeStarting):
        (WebCore):
        (WebCore::CachedResource::addAdditionalRequestHeaders):
        (WebCore::CachedResource::load):
        * loader/cache/CachedResource.h:
        (CachedResource):

2012-10-17  Anders Carlsson  <andersca@apple.com>

        Clean up Vector.h
        https://bugs.webkit.org/show_bug.cgi?id=99622

        Reviewed by Benjamin Poulain.

        Fix fallout from removing std::max and std::min using declarations.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::currentAge):

2012-10-17  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Enforce unsigned long/unsigned long long ranges
        https://bugs.webkit.org/show_bug.cgi?id=99637

        Reviewed by Tony Chang.

        The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
        arguments, which requires the implementation to throw TypeError for negative values or
        values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
        specifically forbidden by the APIs as well.

        A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
        address this in the implementation.

        Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.

        Tests: storage/indexeddb/cursor-advance.html
               storage/indexeddb/intversion-bad-parameters.html
               storage/indexeddb/intversion-encoding.html

        * Modules/indexeddb/IDBCursor.cpp:
        (WebCore::IDBCursor::advance): Validate argument range.
        * Modules/indexeddb/IDBCursor.h:
        (IDBCursor):
        * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
        not yet doing the correct validation.
        * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
        (WebCore):
        (WebCore::IDBFactory::open): Validate the int version here, then pass to...
        (WebCore::IDBFactory::openInternal): ... this method.
        * Modules/indexeddb/IDBFactory.h:
        (IDBFactory):
        * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
        code right now, can be re-added once webkit.org/b/96798 lands.

2012-10-17  Tony Chang  <tony@chromium.org>

        fast/forms/range/input-appearance-range-rtl.html off by one pixel
        https://bugs.webkit.org/show_bug.cgi?id=99625

        Reviewed by Ojan Vafai.

        Previously, we would assume that a vertical slider in RTL would render identically to
        a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.

        This worked in deprecated flexbox because it doesn't adjust for RTL when applying
        box-align: center.

        Tests: fast/forms/range/input-appearance-range-rtl.html

        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
        just in case the user switches from vertical to horizontal.

2012-10-17  Michael Saboff  <msaboff@apple.com>

        Creating a String from an NSString should check for all 8 bit strings
        https://bugs.webkit.org/show_bug.cgi?id=99392

        Reviewed by Geoffrey Garen.

        Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.

        No functional change, change covered by existing tests.

        * platform/text/mac/StringMac.mm:
        (WTF::String::String):

2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>

        [EFL] Remove redundant OpenGL library addition from the build system.
        https://bugs.webkit.org/show_bug.cgi?id=99629

        Reviewed by Rob Buis.

        * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
        WebCore_LIBRARIES, this is already done in CMakeLists.txt these
        days.

2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>

        [CMake] Set WebCore_LIBRARIES earlier.
        https://bugs.webkit.org/show_bug.cgi?id=99630

        Reviewed by Rob Buis.

        * CMakeLists.txt: Follow the style we use in other CMakeList.txt
        files and set the Foo_LIBRARIES variables before we start checking
        for optional features, as they might append other libraries to the
        list (it already happens with WTF_USE_3D_GRAPHICS, for example).

2012-10-17  Philip Rogers  <pdr@google.com>

        Allow lazy initialization of SVG XML animated properties.
        https://bugs.webkit.org/show_bug.cgi?id=84657

        Reviewed by Tim Horton.

        When animating a property in the shadow tree, instance properties and tearoffs are created
        but they simply reference the animated element's animating properties.

        When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
        we initialize the root property and instance properties using startAnimValAnimation(...).
        If an instance property is added while the root property is animating, this initialization
        will not occur and we crash.

        This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
        property if it is not already animating. After this patch, instance properties can be added
        in the middle of animation and they will be properly started/initialized.

        Test: svg/animations/use-while-animating-crash.html

        * svg/SVGAnimatedTypeAnimator.h:
        (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
        (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
        (WebCore::SVGAnimatedTypeAnimator::executeAction):

2012-10-17  Dan Carney  <dcarney@google.com>

        Bind isolatedWorldSecurityOrigin to world
        https://bugs.webkit.org/show_bug.cgi?id=99582

        Reviewed by Adam Barth.

        Security origin of isolated worlds was not previously set at the world
        level, although it could have been. 

        No new tests. No change in functionality.

        * bindings/v8/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::deallocate):
        (WebCore):
        (WebCore::isolatedWorldSecurityOrigins):
        (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
        (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
        (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
        * bindings/v8/DOMWrapperWorld.h:
        (DOMWrapperWorld):
        (WebCore::DOMWrapperWorld::isIsolatedWorldId):
        (WebCore::DOMWrapperWorld::isIsolatedWorld):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::resetIsolatedWorlds):
        (WebCore::ScriptController::evaluateInIsolatedWorld):
        (WebCore::ScriptController::collectIsolatedContexts):
        * bindings/v8/ScriptController.h:
        (ScriptController):
        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
        * bindings/v8/V8DOMWindowShell.h:
        (V8DOMWindowShell):
        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
        (WebCore::V8XMLHttpRequest::constructorCallback):

2012-10-17  Simon Fraser  <simon.fraser@apple.com>

        GraphicsLayer visible rect computation needs to use the current animating transform
        https://bugs.webkit.org/show_bug.cgi?id=99529

        Reviewed by Dean Jackson.

        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):

2012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        plugins: Allow a plugin to dictate whether it can receive drag events or not.
        https://bugs.webkit.org/show_bug.cgi?id=99355

        Reviewed by Tony Chang.

        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):

2012-10-17  Andreas Kling  <kling@webkit.org>

        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):

2012-10-17  Christophe Dumez  <christophe.dumez@intel.com>

        xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
        https://bugs.webkit.org/show_bug.cgi?id=99571

        Reviewed by Kenneth Rohde Christiansen.

        Check that the iconURL is not empty in IconController::continueLoadWithDecision()
        to avoid hitting assertions later when trying to commit this empty URL to the
        database. IconController::url() may indeed return an empty URL but there was
        no check for it.

        No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.

        * loader/icon/IconController.cpp:
        (WebCore::IconController::continueLoadWithDecision):

2012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>

        Fix build warnings : -Wunused-parameter, -Wunused-variable
        https://bugs.webkit.org/show_bug.cgi?id=99539

        Reviewed by Kentaro Hara.

        Fix build warnings about unused parameter or unused variable when
        WTF_USE_TILED_BACKING_STORE option is enabled.

        * html/shadow/HTMLContentElement.cpp:
        (WebCore::contentTagName):
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::getImageData):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::createSurface):
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::BitmapTexture::canReuseWith):
        (WebCore::TextureMapper::beginPainting):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawRepaintCounter):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::updateContents):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::sortByZOrder):
        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):

2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>

        Dynamically added elements do not get re-projected.
        https://bugs.webkit.org/show_bug.cgi?id=99227

        Reviewed by Dimitri Glazkov.

        When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
        is changed.

        Test: fast/dom/shadow/content-reprojection-dynamic.html

        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::distribute):

2012-10-17  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
        https://bugs.webkit.org/show_bug.cgi?id=99602

        Reviewed by Pavel Feldman.

        Add delete items to the watch expression's value's context menu.

        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
        (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
        (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):

2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
        https://bugs.webkit.org/show_bug.cgi?id=99598

        Reviewed by Pavel Feldman.

        workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
        when change returns uiSourceCode to non dirty state.
        Added wasDirty parameter to workingCopyChanged event.

        Test: inspector/debugger/live-edit-breakpoints.html

        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.setWorkingCopy):

2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build

        Reviewed by Tor Arne Vestbø.

        The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
        so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
        changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
        unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
        therefore the target will always run.

        * DerivedSources.pri:

2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed fix for ImageSourceCG.

        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::reportMemoryUsage):

2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed fix for compilation on CG bots.

        * platform/graphics/cg/ImageSourceCG.cpp:

2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
        https://bugs.webkit.org/show_bug.cgi?id=99540

        Reviewed by Yury Semikhatsky.

        * platform/graphics/ImageSource.cpp:
        (WebCore::ImageSource::reportMemoryUsage):
        (WebCore):
        * platform/graphics/ImageSource.h:
        (ImageSource):
        * platform/image-decoders/ImageDecoder.cpp:
        (WebCore::ImageFrame::reportMemoryUsage):
        (WebCore):
        (WebCore::ImageDecoder::reportMemoryUsage):
        * platform/image-decoders/ImageDecoder.h:
        (ImageFrame):
        (ImageDecoder):
        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::reportMemoryUsage):
        (WebCore):

2012-10-17  Zeno Albisser  <zeno@webkit.org>

        [Qt] Fix build on Mac OSX 10.6 and earlier.
        https://bugs.webkit.org/show_bug.cgi?id=99595

        Reviewed by Simon Hausmann.

        * Target.pri:

2012-10-17  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: display "disconnected" message when remote debugging terminates
        https://bugs.webkit.org/show_bug.cgi?id=99316

        Reviewed by Yury Semikhatsky.

        Otherwise, it is not clear that the front-end is no longer functional.

        * inspector/front-end/InspectorFrontendHostStub.js:
        (WebInspector.RemoteDebuggingTerminatedScreen):
        * inspector/front-end/inspector.js:
        (WebInspector.loaded.WebInspector.socket.onclose):
        (WebInspector.loaded):

2012-10-17  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: delete watch expression button overlaps with the expression value
        https://bugs.webkit.org/show_bug.cgi?id=99569

        Reviewed by Vsevolod Vlasov.

        Delete watch expression button now doesn't overlap with the watch expression.

        * inspector/front-end/inspector.css:
        (.properties-tree.watch-expressions > li > .value):

2012-10-17  Luke Macpherson   <macpherson@chromium.org>

        Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
        https://bugs.webkit.org/show_bug.cgi?id=99536

        Reviewed by Alexis Menard.

        One small step towards removing the giant switch statement in StyleResolver,
        this patch moves pointer event property into StyleBuilder.

        Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.

        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2012-10-17  Keishi Hattori  <keishi@webkit.org>

        Localized date should be based on LDML
        https://bugs.webkit.org/show_bug.cgi?id=99570

        Reviewed by Kent Tamura.

        Localized date should be based on LDML to match the format inside DateTimeEditElement.

        No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.

        * platform/text/LocaleICU.cpp: Removed formatDateTime.
        * platform/text/LocaleICU.h:
        (LocaleICU):
        * platform/text/LocaleNone.cpp: Removed formatDateTime.
        (LocaleNone):
        * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
        (WebCore):
        * platform/text/LocaleWin.h:
        (LocaleWin):
        * platform/text/Localizer.cpp:
        (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
        (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
        * platform/text/Localizer.h:
        * platform/text/mac/LocaleMac.h:
        (LocaleMac):
        * platform/text/mac/LocaleMac.mm: Removed formatDateTime.

2012-10-17  Harald Alvestrand  <hta@google.com>

        Implement the Selector argument to RTCPeerConnection.getStats
        https://bugs.webkit.org/show_bug.cgi?id=99460

        Reviewed by Adam Barth.

        The change adds two new parameters to the RTCStatsRequest object:
        stream and component. Together these are enough to identify a
        MediaStreamTrack.

        Test: fast/mediastream/RTCPeerConnection-statsSelector.html

        * Modules/mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::streamDescriptor):
        (WebCore):
        * Modules/mediastream/MediaStreamTrack.h:
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::getStats):
        * Modules/mediastream/RTCStatsRequestImpl.cpp:
        (WebCore::RTCStatsRequestImpl::create):
        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
        (WebCore::RTCStatsRequestImpl::hasSelector):
        (WebCore):
        (WebCore::RTCStatsRequestImpl::stream):
        (WebCore::RTCStatsRequestImpl::component):
        * Modules/mediastream/RTCStatsRequestImpl.h:
        (RTCStatsRequestImpl):
        * platform/chromium/support/WebRTCStatsRequest.cpp:
        (WebKit):
        (WebKit::WebRTCStatsRequest::hasSelector):
        (WebKit::WebRTCStatsRequest::stream):
        (WebKit::WebRTCStatsRequest::component):
        * platform/mediastream/RTCStatsRequest.h:
        (WebCore):
        (RTCStatsRequest):

2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Enable use of more AllInOne files
        https://bugs.webkit.org/show_bug.cgi?id=99579

        Reviewed by Tor Arne Vestbø.

        The AllInOne files reduce pressure during final link time because the object files contain less duplicated
        symbols.

        * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
        * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
        * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
        where the X headers get confused by the "Region" type that's also declared in WebCore.
        * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
        #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.

2012-10-17  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
        https://bugs.webkit.org/show_bug.cgi?id=99572

        Reviewed by Kentaro Hara.

        We use flexible box since r131421, and it seems text baseline becomes
        incorrect if there are text nodes in a flex container.

        Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html

        * css/html.css:
        (input::-webkit-datetime-edit-text): Added.
        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditBuilder::visitLiteral):
        Wrap text with an element with ::-webkit-datetime-edit-text.

2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>

        [WK2][EFL] Implementation of spellchecking feature.
        https://bugs.webkit.org/show_bug.cgi?id=91854

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake:
        Add enchant-related compiler flags: header paths and the library flag.

2012-10-17  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Avoid style updates when retrieving the inline stylesheet text
        https://bugs.webkit.org/show_bug.cgi?id=99576

        Reviewed by Vsevolod Vlasov.

        Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::inlineStyleSheetText):

2012-10-17  Patrick Gansterer  <paroga@webkit.org>

        Build fix for WinCE after r131365.

        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBufferAdvance::width):
        * platform/graphics/wince/FontWinCE.cpp:
        (WebCore::cursorToX):
        * platform/graphics/wince/GraphicsContextWinCE.cpp:
        (WebCore::GraphicsContext::drawText):

2012-10-17  Mike West  <mkwst@chromium.org>

        V8 should throw a more descriptive exception when blocking 'eval' via CSP.
        https://bugs.webkit.org/show_bug.cgi?id=94332

        Reviewed by Adam Barth.

        Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
        patch wires up the new error message mechanism to V8, and updates the
        Chromium test expectations accordingly.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::disableEval):
            Pass 'errorMessage' through to V8.
        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initializeIfNeeded):
            Grab the error message from ContentSecurityPolicy, and pass it
            through to V8.
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
        (WebCore::WorkerContextExecutionProxy::evaluate):
        (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
        * bindings/v8/WorkerContextExecutionProxy.h:
        (WorkerContextExecutionProxy):
            Convert 'm_disableEvalPending' to a string to store the current
            error message, and use it to set the eval state.
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::disableEval):
            Pass 'errorMessage' through to V8.

2012-10-17  MORITA Hajime  <morrita@google.com>

        Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
        https://bugs.webkit.org/show_bug.cgi?id=99566

        Reviewed by Kent Tamura.

        It had a too optimistic assertion. This change removes it.

        Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html

        * html/HTMLFormControlElement.cpp:
        (WebCore::updateFromElementCallback):

2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
        https://bugs.webkit.org/show_bug.cgi?id=99555

        Reviewed by Yury Semikhatsky.

        Save As context menu handler now commits working copy for dirty UISourceCodes.

        * inspector/front-end/HandlerRegistry.js:

2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
        https://bugs.webkit.org/show_bug.cgi?id=99554

        Reviewed by Yury Semikhatsky.

        Moved saving to disk from SourceFrame to UISourceCode.

        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame.prototype._commitEditing):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype._commitContent):

2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] SASS sources are not saved to disk.
        https://bugs.webkit.org/show_bug.cgi?id=99551

        Reviewed by Yury Semikhatsky.

        Added resource null checks.

        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):

2012-10-17  Elliott Sprehn  <esprehn@chromium.org>

        Clean up ContentData operator overloads
        https://bugs.webkit.org/show_bug.cgi?id=99556

        Reviewed by Eric Seidel.

        Use virtual dispatch for checking ContentData equality instead
        of a switch over the type. This the first step in getting rid
        of the StyleContentType enum and all the switch statements over
        the type().

        No tests needed, this is just a refactor.        

        * rendering/style/ContentData.cpp:
        * rendering/style/ContentData.h:
        (ContentData):
        (WebCore::operator==):
        (WebCore):
        (WebCore::operator!=):

2012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>

        NEON intrinsics Gauss filter does not work properly
        https://bugs.webkit.org/show_bug.cgi?id=98875

        Reviewed by Zoltan Herczeg.

        Fixing the NEON intrinsics Gauss filter. The stride parameter
        was missing from the intrinsics algorithm. Tested with pixel
        checks, now it's working properly.

        * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
        (WebCore::boxBlurNEON):

2012-10-17  MORITA Hajime  <morrita@google.com>

        Crash on Frame::inScope() part 2
        https://bugs.webkit.org/show_bug.cgi?id=99543

        Reviewed by Kent Tamura.

        FrameTree::scopedChildCount() can be called even when the one of child frames
        is in orphan state. This change added a guard for that case.

        No new tests. A hard-to-test timing issue.

        * page/Frame.cpp:
        (WebCore::Frame::inScope):

2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>

        Remove shadowAncestorNode() from VisibleSelection
        https://bugs.webkit.org/show_bug.cgi?id=99544

        Reviewed by Hajime Morita.

        An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.

        No new tests, no change in behavior.

        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
        an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.

2012-10-17  Douglas Stockwell  <dstockwell@chromium.org>

        Content of replaced elements should be trimmed to the content edge curve.
        https://bugs.webkit.org/show_bug.cgi?id=63899

        Reviewed by Simon Fraser.

        When a border-radius is specified the content of replaced elements needs to be clipped to avoid
        being painted over the padding or border in the corners. Previously the clip that was applied
        was set to the border-edge curve, this patch contracts the clip by the size of the border and
        padding (the content-edge curve) to match the css3 spec.
        Spec: http://www.w3.org/TR/css3-background/#corner-clipping

        Test: fast/replaced/border-radius-clip-content-edge.html

        * rendering/RenderBoxModelObject.h:
        (RenderBoxModelObject):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::paint):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint):

2012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>

        The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
        https://bugs.webkit.org/show_bug.cgi?id=90539

        Reviewed by Kent Tamura.

        Fix a bug where form(action|enctype|method|target) attributes of <button> are not
        honored if the target of the click event is an element nested within the button.

        Test: fast/forms/formaction-attribute.html

        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create): Looks for the attributes for form submission
        from the nearest FormControlElement ancestor of the event target.

2012-10-16  MORITA Hajime  <morrita@google.com>

        [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
        https://bugs.webkit.org/show_bug.cgi?id=99428

        Reviewed by Adam Barth.

        A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
        - Some properties are added per-context basis by turnin the flag on and
        - There are bunch of DOMWindow object in the page (that is, there are many iframes.)

        This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.

        * dom/ContextFeatures.cpp:
        * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
        * dom/Position.cpp:
        (WebCore::Position::Position):
        (WebCore::Position::findParent):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::getSelection):
        * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
        (defaultTagPropertyHash):
        (printConstructorInterior):
        (printFactoryCppFile):
        (printWrapperFunctions):
        (printWrapperFactoryCppFile):
        * html/HTMLTagNames.in:
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::contentTagName):
        * page/DOMWindow.idl:

2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>

        Make RenderObject destruction during detach a top-down operation
        https://bugs.webkit.org/show_bug.cgi?id=98336

        Reviewed by Eric Seidel.

        detach() is a DOM-driven operation that destroys the renderers bottom-up.
        While this is correct, it causes extra-work to be done (tree cleaning, ...)
        as it doesn't know about the render tree's structure.

        The render tree on the other side already supports top-down operations
        but it was overriden by the DOM side of detach.

        This change only makes ContainerNode::detach do a top-down render tree
        destruction. This is a required step towards doing smarter destruction.

        Refactoring covered by existing tests.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::detach):
        Changed the method to do a top-down destruction.

        * dom/Node.cpp:
        (WebCore::Node::detach):
        Added this ASSERT that ensures that we have properly cleaned up the
        whole DOM subtree. The only exception is child content belonging to a
        flow-thread as the code will shuffle the renderers under the flow-thread.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed):
        As we don't update the node's renderer on the DOM side, do it here.
        The upside is that it ensures that we don't left any stray renderer
        in the tree.

        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::destroyLeftoverChildren):
        Removed the calls to setRenderer as they are redundant with what we do
        in willBeDestroyed.

        * rendering/RenderTextFragment.cpp:
        (WebCore::RenderTextFragment::setText):
        Removed some now unneeded code, replaced by an ASSERT. This is because
        destroying m_firstLetter would automatically reset the node's renderer
        in destroyLeftoverChildren.

2012-10-16  Joseph Pecoraro  <pecoraro@apple.com>

        HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
        https://bugs.webkit.org/show_bug.cgi?id=99523

        Reviewed by Simon Fraser.

        There was a call site where the optionIndex was being passed to a
        function that expected the listIndex. Convert appropriately.

        Extends Test: platform/mac/fast/objc/dom-html-select-activate.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::optionSelectedByUser):

2012-10-16  Jian Li  <jianli@chromium.org>

        Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
        https://bugs.webkit.org/show_bug.cgi?id=98975

        Reviewed by Adam Barth.

        Renaming is needed to better match with the draggable region code.

        No new tests due to no functional change.

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * WebCore.exp.in:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore):
        (WebCore::Document::reportMemoryUsage):
        * dom/Document.h:
        (WebCore):
        (Document):
        * page/Chrome.cpp:
        (WebCore):
        * page/ChromeClient.h:
        (ChromeClient):
        * page/FrameView.cpp:
        (WebCore::FrameView::layout):
        (WebCore):
        (WebCore::FrameView::paintContents):
        * page/FrameView.h:
        (FrameView):
        * rendering/RenderInline.cpp:
        (WebCore):
        (WebCore::RenderInline::addAnnotatedRegions):
        * rendering/RenderInline.h:
        (RenderInline):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo):
        (WebCore::RenderLayer::setHasHorizontalScrollbar):
        (WebCore::RenderLayer::setHasVerticalScrollbar):
        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::setHasVerticalScrollbar):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleWillChange):
        (WebCore):
        (WebCore::RenderObject::addAnnotatedRegions):
        * rendering/RenderObject.h:
        (WebCore::AnnotatedRegionValue::operator==):
        (AnnotatedRegionValue):
        (RenderObject):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:
        (StyleRareNonInheritedData):

2012-10-16  James Simonsen  <simonjam@chromium.org>

        [Page Visibility API] View-less documents should report as hidden
        https://bugs.webkit.org/show_bug.cgi?id=99410

        Reviewed by Tony Gentilcore.

        Test: fast/events/page-visibility-null-view.html

        * dom/Document.cpp:
        (WebCore::Document::visibilityState):

2012-10-16  Michael Saboff  <msaboff@apple.com>

        Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
        https://bugs.webkit.org/show_bug.cgi?id=99484

        Reviewed by Eric Seidel.

        Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).

        No new tests.  Changed macro name, no functional change.

        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun):
        (WebCore::TextRun::subRun):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::constructTextRun):
        * rendering/RenderBlock.h:
        (RenderBlock):

2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>

        [Qt] REGRESSION(r131485): It broke the build
        https://bugs.webkit.org/show_bug.cgi?id=99499

        Unreviewed build (warning) fix.

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::TextureMapperShaderProgram::getLocation):

2012-10-16  David Grogan  <dgrogan@chromium.org>

        Inspector: Don't fire assert when inspecting an empty db
        https://bugs.webkit.org/show_bug.cgi?id=99370

        Reviewed by Vsevolod Vlasov.

        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):

2012-10-16  Tony Chang  <tony@chromium.org>

        Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.

        * rendering/RenderingAllInOne.cpp:

2012-10-16  Andrew Scherkus  <scherkus@chromium.org>

        Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
        https://bugs.webkit.org/show_bug.cgi?id=97951

        Reviewed by Simon Fraser.

        No new tests as it's a speculative fix based on crash dump analysis.
     
        Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::makeTransparent):

2012-10-16  Emil A Eklund  <eae@chromium.org>

        Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
        https://bugs.webkit.org/show_bug.cgi?id=99376

        Reviewed by Levi Weintraub.

        In r122769 (bug 91410) we added a special-case handling for
        replaced elements in InlineFlowBox::placeBoxesInBlockDirection
        to work around positioning issues in a couple of svg tests.
        This was needed to compensate for a workaround in the table
        painting code that was fixed in r131358 (bug 99364). As such the
        special-case handling for replaced elements is no longer needed
        in InlineFlowBox::placeBoxesInBlockDirection.

        Furthermore this caused problems with caret repainting leaving
        residual pixels which motivated this change.

        No new tests, have not been able to write a repaint test to
        demonstrate the caret repaint issue.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):

2012-10-16  Simon Fraser  <simon.fraser@apple.com>

        Some #include hygiene
        https://bugs.webkit.org/show_bug.cgi?id=99500

        Reviewed by Tony Chang.

        Clean up some #includes, mostly related to GraphicsLayer.h. In many
        cases this can be replaced by PlatformLayer.h.
        
        Remove an #include of PluginViewBase.h from Page.h, which was a source
        of #include fan-out.

        * html/canvas/CanvasRenderingContext2D.h:
        * page/Page.h:
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingStateNode.h:
        * page/scrolling/mac/ScrollingStateNodeMac.mm:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        * platform/graphics/gpu/DrawingBuffer.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        * plugins/PluginViewBase.h:

2012-10-16  Adam Barth  <abarth@webkit.org>

        Document::adoptNode shouldn't special-case <iframe>
        https://bugs.webkit.org/show_bug.cgi?id=99247

        Reviewed by Ryosuke Niwa.

        The special case was added in http://trac.webkit.org/changeset/75293 to
        fix a bug with magic iframes. Originally, I planned to remove this
        special case, but further investigation reveals that other browsers
        throw exceptions for other frame owner elements as well. Now we treat
        all frame owner elements the same way.

        Test: fast/frames/adopt-object-into-itself.html

        * dom/Document.cpp:
        (WebCore::Document::adoptNode):

2012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>

        Init timeout flag in ResourceErrorMac
        https://bugs.webkit.org/show_bug.cgi?id=99478

        Reviewed by Alexey Proskuryakov.

        On construction from platform error types, initialize the timeout flag 
        to true if the error results from a timeout.

        No new tests, covered by tests that will be added in bug 74802.

        * platform/network/mac/ResourceErrorMac.mm:
        (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.

2012-10-16  Tony Chang  <tony@chromium.org>

        input[type=range] as a flex item renders thumb at wrong position
        https://bugs.webkit.org/show_bug.cgi?id=98666

        Reviewed by Ojan Vafai.

        Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
        The previous code was trying to set the height to 100% and had a bunch of hacks in
        the renderer code to set an explicit height. Using the new flexbox allows us to
        remove these renderer hacks.

        Test: css3/flexbox/flexitem-stretch-range.html

        * css/html.css:
        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
        (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
        no longer setting top/left in the layout code.
        * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
        * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
        since the height of the control should change when adding/removing a datalist.
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
        (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
        height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
        we use the intrinsic size.
        (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
        This used to be handled in the thumb's layout method, but I deleted that.
        * html/shadow/SliderThumbElement.h:
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::RenderSlider): Use new flexbox.
        (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
        for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
        and expects the input to also have a height of 1px.  It worked before because the height of the input
        didn't depend on the height of its children.
        * rendering/RenderSlider.h: Fix indentation.
        (RenderSlider): Use new flexible box.

2012-10-16  Dima Gorbik  <dgorbik@apple.com>

        Remove Platform.h include from the header files.
        https://bugs.webkit.org/show_bug.cgi?id=98665

        Reviewed by Eric Seidel.

        We don't want other clients that include WebKit headers to know about Platform.h.

        No new tests.

        * platform/MemoryPressureHandler.h:
        * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
        * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
        * platform/graphics/filters/arm/FELightingNEON.h:

2012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>

        [Chromium] Android: Need a way to get appropriate font for some specific characters.
        https://bugs.webkit.org/show_bug.cgi?id=67587

        Reviewed by Adam Barth.

        Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.

        No new tests. The following existing tests pass with the change:
        fast/writing-mode/vertical-subst-font-vert-no-dflt.html
        fast/dynamic/text-combine.html
        fast/writing-mode/japanese-rl-text.html
        fast/writing-mode/japanese-rl-selection.html
        fast/writing-mode/japanese-lr-text.html
        fast/repaint/japanese-rl-selection-repaint.html
        fast/writing-mode/border-vertical-lr.html

        * platform/graphics/chromium/FontCacheAndroid.cpp:
        (WebCore::FontCache::getFontDataForCharacters):

2012-10-16  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Add the chromium API for RTCDataChannel
        https://bugs.webkit.org/show_bug.cgi?id=99435

        Reviewed by Adam Barth.

        Adding WebRTCDataChannel.

        Test: fast/mediastream/RTCPeerConnection-datachannel.html

        * WebCore.gypi:
        * platform/chromium/support/WebRTCDataChannel.cpp: Added.
        (WebKit):
        (ExtraDataContainer):
        (WebKit::ExtraDataContainer::ExtraDataContainer):
        (WebKit::ExtraDataContainer::extraData):
        (WebKit::WebRTCDataChannel::WebRTCDataChannel):
        (WebKit::WebRTCDataChannel::initialize):
        (WebKit::WebRTCDataChannel::assign):
        (WebKit::WebRTCDataChannel::reset):
        (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
        (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
        (WebKit::WebRTCDataChannel::extraData):
        (WebKit::WebRTCDataChannel::setExtraData):
        (WebKit::WebRTCDataChannel::label):
        (WebKit::WebRTCDataChannel::reliable):
        (WebKit::WebRTCDataChannel::setBufferedAmount):
        (WebKit::WebRTCDataChannel::readyStateChanged):
        (WebKit::WebRTCDataChannel::dataArrived):
        (WebKit::WebRTCDataChannel::error):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
        (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
        (WebCore):
        (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
        (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):

2012-10-16  Brady Eidson  <beidson@apple.com>

        Update indentation in *ResourceLoader headers to match modern WebKit style
        https://bugs.webkit.org/show_bug.cgi?id=99487

        Reviewed by Beth Dakin.

        I'm going to be working on these classes and the indentation is driving me crazy.

        * loader/MainResourceLoader.h:
        (WebCore):
        (MainResourceLoader):
        (WebCore::MainResourceLoader::isLoadingMultipartContent):

        * loader/NetscapePlugInStreamLoader.h:
        (WebCore):
        (NetscapePlugInStreamLoaderClient):
        (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
        (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
        (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
        (NetscapePlugInStreamLoader):

        * loader/ResourceLoader.h:
        (WebCore):
        (ResourceLoader):
        (WebCore::ResourceLoader::documentLoader):
        (WebCore::ResourceLoader::originalRequest):
        (WebCore::ResourceLoader::identifier):
        (WebCore::ResourceLoader::didReceiveCachedMetadata):
        (WebCore::ResourceLoader::willStopBufferingData):
        (WebCore::ResourceLoader::shouldUseCredentialStorage):
        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
        (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
        (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
        (WebCore::ResourceLoader::receivedCancellation):
        (WebCore::ResourceLoader::url):
        (WebCore::ResourceLoader::handle):
        (WebCore::ResourceLoader::sendResourceLoadCallbacks):
        (WebCore::ResourceLoader::reachedTerminalState):
        (WebCore::ResourceLoader::request):
        (WebCore::ResourceLoader::cancelled):
        (WebCore::ResourceLoader::defersLoading):

2012-10-16  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=99254
        Make ScrollingTree an actual tree of nodes, and have it reflect the 
        ScrollingStateTree

        Reviewed by Simon Fraser.

        This patch finally makes the ScrollingTree over on the 
        ScrollingThread aware of the changes that we have been making to the 
        ScrollingStateTree.

        First, it makes ScrollingTreeNode a much more generic class, similar 
        to ScrollingStateNode. It is an abstract class and we will add other 
        types of nodes such as ScrollingTreeFixedNodes that will inherit from 
        this class. 

        All of the scrolling functionality that was in ScrollingTreeNode has 
        been moved to ScrollingTreeScrollingNode. And likewise, 
        ScrollingTreeNodeMac has been re-named to 
        ScrollingTreeScrollingNodeMac. 

        And finally, instead of just updating and creating the root node, 
        ScrollingTree now recurses through the whole ScrollingStateTree to 
        create and update a full tree of nodes.

        New files and moves files.
        * WebCore.xcodeproj/project.pbxproj:

        Add a getter for the children vector since we need to recurse it in 
        ScrollingTree.
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::ScrollingStateNode::children):
        (ScrollingStateNode):

        m_rootNode is now a ScrollingTreeScrollingNode.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):

        Instead of just updating the root node, call two new functions that 
        will take care of updating the whole tree.
        (WebCore::ScrollingTree::commitNewTreeState):

        This function ecurses through the ScrollingStateTree and updates the 
        corresponding ScrollingTreeNodes.
        (WebCore::ScrollingTree::updateNodesFromStateNode):

        This function takes the ScrollingStateTree's list of removed nodes 
        and removes the corresponding nodes from the ScrollingTree. It will 
        destroy the nodes after removing it as long as it's not the root 
        node. I think it's the safest choice for now to never remove the root 
        node. 
        (WebCore::ScrollingTree::removeDestroyedNodes):

        ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
        ScrollingTreeNodes.
        * page/scrolling/ScrollingTree.h:

        All of the scrolling-related functionality has been moved from this 
        class to new class ScrollingTreeScrollingNode. And some basic tree 
        traversal functionality has been added.
        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
        (WebCore::ScrollingTreeNode::appendChild):
        (WebCore::ScrollingTreeNode::removeChild):
        * page/scrolling/ScrollingTreeNode.h:
        (WebCore):
        (ScrollingTreeNode):
        (WebCore::ScrollingTreeNode::scrollingNodeID):
        (WebCore::ScrollingTreeNode::setScrollingNodeID):
        (WebCore::ScrollingTreeNode::parent):
        (WebCore::ScrollingTreeNode::setParent):
        (WebCore::ScrollingTreeNode::scrollingTree):

        This class contains all of the scrolling-related work that used to be 
        done in ScrollingTreeNode.
        * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
        (WebCore):
        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
        (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
        (WebCore::ScrollingTreeScrollingNode::update):
        * page/scrolling/ScrollingTreeScrollingNode.h: Added.
        (WebCore):
        (ScrollingTreeScrollingNode):
        (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
        (WebCore::ScrollingTreeScrollingNode::viewportRect):
        (WebCore::ScrollingTreeScrollingNode::contentsSize):
        (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
        (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
        (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
        (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
        (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
        (WebCore::ScrollingTreeScrollingNode::scrollOrigin):

        I noticed this whitespace error and had to fix it.
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):

        Include ScrollingTreeScrollingNodeMac.h instead of 
        ScrollingTreeNodeMac.h
        * page/scrolling/mac/ScrollingTreeMac.mm:

        This class was just re-named.
        * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
        * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
        (ScrollingTreeScrollingNodeMac):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
        (WebCore::ScrollingTreeScrollingNode::create):
        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
        (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
        (WebCore::ScrollingTreeScrollingNodeMac::update):
        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
        (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
        (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
        (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
        (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
        (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
        (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
        (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
        (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
        (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
        (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
        (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
        (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):

2012-10-16  Simon Fraser  <simon.fraser@apple.com>

        Add a new layer type for the page tiled cache layer
        https://bugs.webkit.org/show_bug.cgi?id=99491

        Reviewed by Dean Jackson.

        In preparation for using tile cache layers in place of CATiledLayer,
        add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
        since the page tile cache will have some different behavior from
        other tile cache layers.
        
        Generalize code that was looking at LayerTypeTileCacheLayer to use
        usesTileCacheLayer() if it applies to both types of tile caches.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
        (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
        wash for tiled layers as well as layers with transforms (the tile
        wash is just for debugging).
        (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        * platform/graphics/ca/PlatformCALayer.h:
        (WebCore::PlatformCALayer::usesTileCacheLayer):
        (PlatformCALayer):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::PlatformCALayer):
        (PlatformCALayer::~PlatformCALayer):
        (PlatformCALayer::tiledBacking):
        * platform/graphics/mac/WebLayer.mm:
        (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.

2012-10-16  Stephen Chenney  <schenney@chromium.org> 
        An feImage that tries to render itself should be stopped
        https://bugs.webkit.org/show_bug.cgi?id=94652

        Reviewed by Eric Seidel.

        An SVG feImage filter element will accept, as the src to render, an
        SVG document that makes use of the feImage itself. This causes the
        feImage to try to draw itself while already in the process of drawing
        itself. Various problems arise from this. The invariant we wish to
        maintain is that no element in the src tree of an feImage element
        refers to that feImage.

        This patch adds a flag to all FilterData objects that tracks whether or
        not the filter is currently applying itself, and avoids applying the
        filter recursively.

        While it may seem better to catch this problem when the src is set, or
        when the filter is built, that turns out to be challenging and
        inefficient. Say we choose to test when the src atttribute is set. To
        do so would require looking through all of the DOM nodes that will be
        rendered for the src, finding all resources used, and checking if any
        of them make use fo the feImage element that we are setting the source
        for. The infrastructure is not in place to do that, and it would
        involve walking a potentially very large portion of the DOM in order
        to detect a very rare situation. Note that it is not enough just to
        walk the DOM directly under the src; we also need to recursively follow any
        resource links to see if they use the feImage (e.g. patterns or
        masks or use or ...).

        If we instead try to use the renderer node to find self referencing,
        we need to recursively walk a potentially very large render tree,
        tracing all resources in search of the feImage. This would need to be
        done every time the filter is built, which is again a significant
        overhead for a situation that is very unlikely to occur. And we do not
        have methods that make it easy to find feImage filter effect nodes; they are
        hidden behind filter resource nodes.

        Hence the runtime check to catch the problem. The check must be in
        FilterData and RenderSVGResourceFilter code because we must prevent
        the destruction of the feImage when we encounter it recursively.

        This patch also renames FilterData::builded to FilterData::isBuilt.

        Test: svg/filters/feImage-self-referencing.html

        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
        clear the isApplying flag even if the postApplyResource method returns early.
        (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
        rename builded to isBuilt.
        (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
        it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
        * rendering/svg/RenderSVGResourceFilter.h:
        (WebCore::FilterData::FilterData):
        (FilterData): Add isApplying and rename builded to isBuilt.

2012-10-16  Nate Chapin  <japhet@chromium.org>

        sendResourceLoadCallbacks() is poorly named
        https://bugs.webkit.org/show_bug.cgi?id=99482

        Reviewed by Alexey Proskuryakov.

        In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
        to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.

        No new tests, simple renaming.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::shouldSendResourceLoadCallbacks):

2012-10-16  Chris Rogers  <crogers@google.com>

        Rename some AudioNodes
        https://bugs.webkit.org/show_bug.cgi?id=99358

        Reviewed by Daniel Bates.

        Here's a list of the node names, showing the changing ones:
            AudioBufferSourceNode
            MediaElementAudioSourceNode
            MediaStreamAudioSourceNode
            JavaScriptAudioNode ------------> ScriptProcessorNode
            RealtimeAnalyserNode ------------> AnalyserNode
            AudioGainNode ------------> GainNode
            DelayNode
            BiquadFilterNode
            AudioPannerNode ------------> PannerNode
            ConvolverNode
            AudioChannelSplitter ------------> ChannelSplitterNode
            AudioChannelMerger ------------> ChannelMergerNode
            DynamicsCompressorNode
            Oscillator ------------> OscillatorNode

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
        * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
        * Modules/webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::setPannerNode):
        * Modules/webaudio/AudioBufferSourceNode.h:
        (AudioBufferSourceNode):
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createJavaScriptNode):
        (WebCore::AudioContext::createPanner):
        (WebCore::AudioContext::createAnalyser):
        (WebCore::AudioContext::createGainNode):
        (WebCore::AudioContext::createChannelSplitter):
        (WebCore::AudioContext::createChannelMerger):
        (WebCore::AudioContext::createOscillator):
        * Modules/webaudio/AudioContext.h:
        (WebCore):
        (AudioContext):
        * Modules/webaudio/AudioContext.idl:
        * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
        * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
        (WebCore):
        (ChannelMergerNode):
        * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
        * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
        * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
        (WebCore):
        (ChannelSplitterNode):
        * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
        * Modules/webaudio/DOMWindowWebAudio.idl:
        * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
        * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
        * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
        * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
        * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
        * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
        * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
        * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
        (WebCore):
        * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
        * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
        * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
        (WebCore):
        * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
        * Modules/webaudio/WaveTable.cpp:
        (WebCore::WaveTable::createSine):
        (WebCore::WaveTable::createSquare):
        (WebCore::WaveTable::createSawtooth):
        (WebCore::WaveTable::createTriangle):
        (WebCore::WaveTable::generateBasicWaveform):
        * Target.pri:
        * UseJSC.cmake:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
        (WebCore):
        (WebCore::JSScriptProcessorNode::visitChildren):
        * dom/EventTarget.h:
        (WebCore):
        * dom/EventTargetFactory.in:

2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Refactor TextureMapperShaderManager to be clearer
        https://bugs.webkit.org/show_bug.cgi?id=86048

        Reviewed by Martin Robinson.

        Previous implementation of TextureMapperShaderManager was very verbose, calling for too
        many casts and ambiguous ownership.
        This refactor does the following:
        1. TextureMapperShaderProgram is one class without subclasses.
        2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
           generate both the C++ access function, as well as the GLSL name of the variable. This
           allows adding/removing variables from a shader without adding broiler-plate code like
           before.

        After this change TextureMapperShaderManager has only one responsibility - dealing with
        TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
        in TextureMapperGL.

        This is a refactor without new functionality. It has been verified to not break any existing
        relevant test.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::drawBorder):
        (WebCore::TextureMapperGL::drawQuad):
        (WebCore::TextureMapperGL::drawTextureRectangleARB):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
        (WebCore::TextureMapperGL::beginClip):
            Use the MACRO-generated uniform accessors.

        (WebCore):
        (WebCore::keyForFilterType):
        (WebCore::getPassesRequiredForFilter):
        (WebCore::gauss):
        (WebCore::gaussianKernel):
        (WebCore::prepareFilterProgram):
        (WebCore::TextureMapperGL::drawFiltered):
        (WebCore::BitmapTextureGL::applyFilters):
            Move the filter logic to TextureMapperGL

        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
        (WebCore::TextureMapperShaderProgram::getLocation):
        (ShaderSpec):
        (WebCore::ShaderSpec::ShaderSpec):
        (WebCore::getShaderSpec):
        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
        (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
        (WebCore::TextureMapperShaderManager::getShaderProgram):
        * platform/graphics/texmap/TextureMapperShaderManager.h:
        (WebCore):
        (WebCore::TextureMapperShaderProgram::programID):
        (WebCore::TextureMapperShaderProgram::context):
        (WebCore::TextureMapperShaderProgram::create):
        (TextureMapperShaderProgram):
        (TextureMapperShaderManager):
            See description.

2012-10-16  Nico Weber  <thakis@chromium.org>

        [chromium/mac] Make spelling indicator HighDPI
        https://bugs.webkit.org/show_bug.cgi?id=99417

        Reviewed by Stephen White.

        This is the mac version of http://trac.webkit.org/changeset/130940
        Since the mac and non-mac code are very similar again, merge the two
        code paths again.

        Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::drawLineForDocumentMarker):

2012-10-16  Tony Chang  <tony@chromium.org>

        in a column flexbox, input overflows the box when stretched
        https://bugs.webkit.org/show_bug.cgi?id=99273

        Reviewed by Ojan Vafai.

        Fix a bug where we didn't properly subtract padding and border when overriding the child size.
        We didn't see this because of a performance optimization in RenderBox where we stretch children.
        Also apply this performance optimization in new flexbox for form controls.

        Test: css3/flexbox/stretch-input-in-column.html

        * rendering/RenderBox.cpp:
        (WebCore::flexboxChildHasStretchAlignment):
        (WebCore::isStretchingVerticalFlexboxChild):
        (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.

2012-10-16  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r128787): Fixed position div causes other elements to not update correctly
        https://bugs.webkit.org/show_bug.cgi?id=98579

        Reviewed by Beth Dakin.

        RenderLayers cache repaint rects which are computed relative to the repaint container.
        Repaint containers depend on whether a RenderLayerBacking has its own backing store,
        so if that changes, we need to recompute repaint rects for all descendants.
        
        Test: compositing/repaint/requires-backing-repaint.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):

2012-10-16  Zan Dobersek  <zandobersek@gmail.com>

        [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
        https://bugs.webkit.org/show_bug.cgi?id=95833

        Reviewed by Philippe Normand.

        The render bus used in GStreamer's implementation of AudioDestination no longer
        allocates memory for each of its channels. Rather than that, when looping, the
        data is rendered into a channel-specific GstBuffer. Each buffer is then chained
        to the appropriate GstPad, as has been the case before.

        No new tests - there are tests covering this change but they are not yet working
        on the GTK port or any other GStreamer implementation of Web Audio.

        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
        (webkit_web_audio_src_init): Remove an unnecessary line.
        (webKitWebAudioSrcConstructed): Ditto.
        (webKitWebAudioSrcLoop):

2012-10-16  Pablo Flouret  <pablof@motorola.com>

        Pre-process CSSGrammar.y before running through bison.
        https://bugs.webkit.org/show_bug.cgi?id=94290

        Reviewed by Tony Chang.

        Running CSSGrammar.y through a preprocessor allows the use of feature
        defines in all places of the yacc file (i.e. not just in C blocks).
        Mostly useful to be able to keep every part of a feature under feature
        flags for self-documenting purposes.

        No new tests, CSSGrammar.y should be generated correctly and everything
        should keep working as before.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
            Modify build systems to use makegrammar.pl to generate the .y files
            and run those through bison.

        * WebCore.gyp/WebCore.gyp:
            Add a new action to preprocess the CSSGrammar.y.in file before the
            bison rule is run.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
            Add the new .y.in / .y.includes files.

        * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
            Also moved the top declarations section that has includes, defines,
            etc. to its own file. These shouldn't be touched by the first
            pass of the preprocessor. And changed the existing ENABLE(FEATURE)
            ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
            yet.
        * css/CSSGrammar.y.includes: Added.
            The aforementioned declarations header section. After the .y.in file
            is processed it will be concatenated with this one to make the
            CSSGrammar.y file.

        * css/makegrammar.pl:
            Modify the script to handle .y.in files.

2012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>

        Implement testRunner.dumpSelectionRect() in WebKitTestRunner
        https://bugs.webkit.org/show_bug.cgi?id=69545

        Reviewed by Simon Fraser.

        * WebCore.exp.in:

2012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        [Qt] Implement fastBoundingPath/boundingPath distinction.
        https://bugs.webkit.org/show_bug.cgi?id=99471

        Reviewed by Noam Rosenthal.

        Tested by existing test: svg/custom/getBBox-path.svg

        * platform/graphics/Path.cpp:
        * platform/graphics/qt/PathQt.cpp:
        (WebCore::Path::fastBoundingRect):
        (WebCore::Path::boundingRect):

2012-10-16  Rob Buis  <rbuis@rim.com>

        [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
        https://bugs.webkit.org/show_bug.cgi?id=99302

        Reviewed by Yong Li.

        Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::compileShader):

2012-10-16  Antoine Quint  <graouts@apple.com>

        Inspector should allow reading the compositing debug settings
        https://bugs.webkit.org/show_bug.cgi?id=99458

        Reviewed by Timothy Hatcher.

        * inspector/Inspector.json:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::getCompositingBordersVisible):
        * inspector/InspectorPageAgent.h:

2012-10-16  Dan Bernstein  <mitz@apple.com>

        Code to reverse a GlyphBuffer range is repeated in several places
        https://bugs.webkit.org/show_bug.cgi?id=99424

        Reviewed by Adele Peterson.

        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
        GlyphBuffer::reverse.
        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
        (WebCore::GlyphBuffer::swap): Made private.
        * platform/graphics/WidthIterator.cpp:
        (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
        corrected their bounds.
        * platform/graphics/mac/FontComplexTextMac.cpp:
        (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
        GlyphBuffer::range.

2012-10-16  Nate Chapin  <japhet@chromium.org>

        Re-order CachedRawResource::data() to set m_data earlier
        https://bugs.webkit.org/show_bug.cgi?id=99361

        Reviewed by Adam Barth.

        Currently, we calculate the diff between the data parameter and m_data, call
        dataReceived(), then set m_data to data. If something inside dataReceived()
        tries to access m_data via CachedResource::resourceBuffer(), it will see the
        old data instead of the new data, which seems inconsistent.

        No new tests, as no one appears to try to access m_data within dataReceived() currently.

        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::data):

2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>

        Fold setCellLogicalWidths logic into RenderTableSection layout
        https://bugs.webkit.org/show_bug.cgi?id=99382

        Reviewed by Eric Seidel.

        setCellLogicalWidths was implemented as a pre-phase to laying out
        the table's sections. This split was artificial as any change in
        the columns' logical width should trigger a sections' relayout, which
        could propagate and mark the cells / rows as needed.

        Merging setCellLogicalWidths into RenderTableSection::layout removes
        an unneeded cells walking and some clunkiness from our implementation.

        Refactoring covered by the existing tests.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable): Initialize our new boolean.
        (WebCore::RenderTable::layout):
        If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
        are marked for layout if there is the logical width change.

        * rendering/RenderTable.h:
        (WebCore::RenderTable):
        Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).

        (WebCore::RenderTable::setColumnPosition):
        If a column position changed, register that our column logical widths changed. This is not
        totally true, so added a comment about when it will be wrong.

        * rendering/RenderTableCell.h:
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::setCellLogicalWidth):
        Updated the function to mark the cell and the row for layout. Also changed the argument to
        be an 'int' as this was what was passed in.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::layout):
        * rendering/RenderTableSection.h:
        Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
        the table layout's logical widths first so that rows are marked as needing layout as appropriate.

2012-10-16  Takashi Sakamoto  <tasak@google.com>

        [Meta] [Shadow] contenteditable attribute for distributed nodes.
        https://bugs.webkit.org/show_bug.cgi?id=90017

        Reviewed by Dimitri Glazkov.

        If an element is distributed to an insertion point, the element's
        webkit-user-modify is inherited from its shadow host.

        No new tests, because the existing test: user-modify-inheritance.html
        covers this change.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForElement):
        After an element inherits a style from its parent, override user-modify
        by using the shadow host's style if the element is distributed.

2012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
        https://bugs.webkit.org/show_bug.cgi?id=99469

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.py:
        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
        * inspector/front-end/CompilerScriptMapping.js:
        * inspector/front-end/JavaScriptSource.js: Removed.
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
        (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
        (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
        (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
        (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
        (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
        (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
        (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
        (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
        (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
        (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
        (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
        (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
        (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
        * inspector/front-end/NetworkUISourceCodeProvider.js:
        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.ScriptSnippetModel):
        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
        (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
        (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
        (WebInspector.SnippetScriptFile):
        (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
        (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
        (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
        (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
        (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
        (WebInspector.SnippetJavaScriptSourceFrame):
        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
        * inspector/front-end/StyleSheetOutlineDialog.js:
        (WebInspector.StyleSheetOutlineDialog):
        (WebInspector.StyleSheetOutlineDialog.show):
        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
        * inspector/front-end/StyleSource.js: Removed.
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2012-10-15  Jer Noble  <jer.noble@apple.com>

        WebAudio: limit output level to 0db
        https://bugs.webkit.org/show_bug.cgi?id=95792
        <rdar://problem/11966135>

        Reviewed by Chris Rogers.

        Clamp the output buffer data to the range of [-1,1], which limits
        output volume to 0db. This ensures that malicious or poorly-written
        pages will not be able to blow through the system volume limit by
        creating >0db buffers and effects.

        No new tests; added ManualTests/webaudio/limit-level-0db.html.

        Clamp the output vector to values of [-1,1]:
        * platform/audio/mac/AudioDestinationMac.cpp:
        (WebCore::AudioDestinationMac::render):

        Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
        * platform/audio/VectorMath.h:
        * platform/audio/VectorMath.cpp:
        (VectorMath):
        (WebCore::VectorMath::vclip):

2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
        https://bugs.webkit.org/show_bug.cgi?id=99301

        Reviewed by Pavel Feldman.

        StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
        them instead of being called explicitly.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
        (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
        (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
        (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
        (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
        (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
        * inspector/front-end/ResourceScriptMapping.js:
        (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
        (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
        (WebInspector.ResourceScriptFile):
        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
        * inspector/front-end/ScriptSnippetModel.js:
        (WebInspector.SnippetScriptFile):
        (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
        (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
        * inspector/front-end/StylesSourceMapping.js:
        (WebInspector.StyleFile):
        (WebInspector.StyleFile.prototype._workingCopyCommitted):
        (WebInspector.StyleFile.prototype._workingCopyChanged):
        (WebInspector.StyleFile.prototype._commitIncrementalEdit):
        (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
        (WebInspector.StyleFile.prototype.addRevision):
        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.setWorkingCopy):
        (WebInspector.UISourceCode.prototype.commitWorkingCopy):

2012-10-16  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
        https://bugs.webkit.org/show_bug.cgi?id=99336

        Reviewed by Vsevolod Vlasov.

        Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
        Drive-by: fix text node editing artifact in the DOM tree.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
        (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):

2012-10-16  Mike West  <mkwst@chromium.org>

        Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
        https://bugs.webkit.org/show_bug.cgi?id=98945

        Reviewed by Pavel Feldman.

        Support for styling console messages via '%c' landed without any
        parsing of the style information provided. This means that it's fairly
        simple to accidentally or maliciously break the console with cleverly
        styled messages. To mitigate this risk, whitelisting a safe subset of
        CSS seems appropriate.

        As a first pass at a reasonable whitelist, this patch allows
        'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
        'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
        '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
        '-webkit-padding[-*]', and '-webkit-text[-*]'.

        Test: inspector/console/console-format-style-whitelist.html

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
            Create a buffer element onto which the user-provided styles are
            applied. Whitelisted styles are transfered from the buffer onto
            the actual console message.
        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
             Returns true if the specific style is whitelisted. Expects styles
             in the hyphenated form (that is, '-webkit-padding-start' rather than
             CSSOM's 'webkitPaddingStart').

2012-10-16  Luke Macpherson   <macpherson@chromium.org>

        Handle CSSPropertyOpacity in StyleBuilder.
        https://bugs.webkit.org/show_bug.cgi?id=99418

        Reviewed by Alexis Menard.

        One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.

        Covered by many existing tests, for example fast/text/complex-text-opacity.html.

        * css/StyleBuilder.cpp:
        (WebCore::StyleBuilder::StyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2012-10-16  Kent Tamura  <tkent@chromium.org>

        Fix some appearance glitches of multiple fields input elements
        https://bugs.webkit.org/show_bug.cgi?id=99412

        A follow-up change for r131421.

        * css/themeWin.css:
        (input[type="text"]): Don't reset paddings for date/time types.

2012-10-16  Kenichi Ishibashi  <bashi@chromium.org>

        hb_face_t instances should not depend on FontPlatformData
        https://bugs.webkit.org/show_bug.cgi?id=99430

        Reviewed by Kent Tamura.

        Use platform specific font data (e.g. SkTypeface) to get
        font tables for harfbuzz-ng.

        No new tests. No changes in behavior.

        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
        (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
        (WebCore::HarfBuzzNGFace::createFace):
        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
        (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
        (WebCore::HarfBuzzNGFace::createFace):
        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
        (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
        (WebCore::HarfBuzzNGFace::createFace):

2012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r131418.
        http://trac.webkit.org/changeset/131418
        https://bugs.webkit.org/show_bug.cgi?id=99431

        since 131403 seems innocent (Requested by shinyak|_ on
        #webkit).

        * dom/Document.cpp:
        (WebCore::isValidNameNonASCII):
        (WebCore):
        (WebCore::Document::isValidName):

2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
        https://bugs.webkit.org/show_bug.cgi?id=99426

        Reviewed by Yury Semikhatsky.

        New object type InspectorOverlay was added. InspectorOverlay was instrumented.
        The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.

        * dom/WebCoreMemoryInstrumentation.cpp:
        (WebCore):
        * dom/WebCoreMemoryInstrumentation.h:
        (WebCoreMemoryTypes):
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::reportMemoryUsage):
        (WebCore):
        * inspector/InspectorOverlay.h:
        (InspectorOverlay):

2012-10-16  Kent Tamura  <tkent@chromium.org>

        Remove unused functions in Locale* classes
        https://bugs.webkit.org/show_bug.cgi?id=99425

        Reviewed by Yuta Kitamura.

        Locale*::currentLocale has been unused since LocalizedDate* and
        LocalizedNumber* were removed.

        No new tests. This shouldn't change any behavior.

        * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
        * platform/text/LocaleICU.h: Ditto.
        * platform/text/LocaleWin.cpp: Remove currentLocale.
        * platform/text/LocaleWin.h: Ditto.
        * platform/text/mac/LocaleMac.h: Remove currentLocale.
        * platform/text/mac/LocaleMac.mm: Ditto.

2012-10-15  Kent Tamura  <tkent@chromium.org>

        Fix some appearance glitches of multiple fields input elements
        https://bugs.webkit.org/show_bug.cgi?id=99412

        Reviewed by Kentaro Hara.

        1. If CSS-specified width is wider than the intrinsic width of an input,
        the spin button and the picker indicator triangle should be put at the
        right side of the content area.

        2. Remove top, right, and bottom paddings to match input[type=number]
        appearance as possible.

        3. Remove unnecessary position:relative for spin buttons.

        4. Center content vertically if the height is taller than the intrinsic height.

        Tests: Update all of rendering tests for input element with multiple fields UI.

        * css/html.css:
        (input[type="date"]):
        - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
        - Remove top/right/bottom paddings.
        (input[type="datetime"]): Ditto.
        (input[type="datetime-local"]): Ditto.
        (input[type="month"]): Ditto.
        (input[type="time"]): Ditto.
        (input[type="week"]): Ditto.
        (input::-webkit-datetime-edit):
        - Switch to the starndard flexible box from the legacy one.
        - Add white-space:pre to avoid to collapse white spaces.
        (input::-webkit-datetime-edit-gap):
        Added. This element is added to push a spin button to the right side.
        (input::-webkit-date-and-time-container):
        Add -webkit-flex:1 for the input flexible box.
        Sort properties.
        (input[type="week"]::-webkit-inner-spin-button):
        - Use this in date, datetime, datetime-local, and week types.
        - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
        - Add position:static to cancel position:relative below.

        * html/shadow/DateTimeEditElement.cpp:
        (WebCore::DateTimeEditElement::layout):
        Add an element with -webkit-datetime-edit-gap before a spin button.

2012-10-15  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: can't click delete button if watch expression is very long
        https://bugs.webkit.org/show_bug.cgi?id=99414

        Reviewed by Vsevolod Vlasov.

        Minus button in watch expression section doesn't overlap with the
        expression/value anymore.

        * inspector/front-end/inspector.css:
        (.properties-tree.watch-expressions > li.hovered):

2012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r131403.
        http://trac.webkit.org/changeset/131403
        https://bugs.webkit.org/show_bug.cgi?id=99420

        Suspicious to cause Performance test failing (Requested by
        shinyak|gardenin on #webkit).

        * dom/Document.cpp:
        (WebCore::Document::isValidName):

2012-10-15  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: restore watch expression expansion state
        https://bugs.webkit.org/show_bug.cgi?id=99304

        Reviewed by Pavel Feldman.

        Expand watch expression value and its properties if they were expanded
        before update.

        Test: inspector/debugger/watch-expressions-preserve-expansion.html

        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
        (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
        (WebInspector.WatchExpressionTreeElement.prototype.onattach):
        (WebInspector.WatchExpressionTreeElement.prototype._expression):
        (WebInspector.WatchedPropertyTreeElement):
        (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
        (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
        (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
        (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):

2012-10-15  Mike West  <mkwst@chromium.org>

        Warn when CSP headers don't separate directives with ';'.
        https://bugs.webkit.org/show_bug.cgi?id=99274

        Reviewed by Adam Barth.

        A recent bug report exhibited confusion as to what role, exactly,
        semicolons play in Content Security Policy definitions. This patch
        adjusts the parser to warn web authors if a directive name is
        encountered while parsing a source list, which would almost certainly
        point to a missing semicolon. For example, something like:

            script-src 'self' object-src 'self' style-src *

        would throw two warnings, noting that 'object-src' and 'style-src' are
        probably meant as directives, and not as source expressions in the
        'script-src' source list.

        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html

        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPSourceList::parse):
            Throw the new warning onto the console if the hostname of a source
            expression matches a CSP directive name.
        (WebCore::CSPDirectiveList::addDirective):
            Use the exciting new static variables so that the names of various
            directives are available outside of CSPDirectiveList::addDirective.
            These were previously defined as local static ASCIILiterals. Now
            they're static const char[] in an anonymous namespace.
        (WebCore::ContentSecurityPolicy::isDirectiveName):
            Static method that compares a string to all the known directive
            names, returning true if there's a (case-insensitive) match.
        (WebCore):
        (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
            A new warning message which should be printed when a directive name
            is encountered as a source expression. Matching the directive name
            is done via a new 'isDirectiveName' function which lives in an
            anonymous namespace along with the other CSP helper functions.
        * page/ContentSecurityPolicy.h:
            Added 'reportDirectiveAsSourceExpression' signature.

2012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, rolling out r131349.
        http://trac.webkit.org/changeset/131349
        https://bugs.webkit.org/show_bug.cgi?id=97173

        Revert r131349 because API test is broken by this commit.

        * platform/efl/RunLoopEfl.cpp:
        (WebCore::RunLoop::RunLoop):
        (WebCore::RunLoop::~RunLoop):

2012-10-15  Nate Chapin  <japhet@chromium.org>

        ResourceLoader::sendResourceLoadCallbacks() is backwards
        https://bugs.webkit.org/show_bug.cgi?id=99366

        Reviewed by Daniel Bates.

        No new tests, this function is uncalled but will be used
        in a later patch.

        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::sendResourceLoadCallbacks):

2012-10-15  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
        https://bugs.webkit.org/show_bug.cgi?id=99413

        Reviewed by Adele Peterson.

        r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
        from there down to WidthIterator::advance(). However, when measuring the width of a run, a
        GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.

        No new test, because there is no change in behavior.

        * platform/graphics/Font.cpp:
        (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
        floatWidthForSimpleText().
        * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
        All but the above caller were passing 0.
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
        local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
        typesetting features require it.
        (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
        floatWidthForSimpleText.
        * platform/graphics/pango/FontPango.cpp:
        (WebCore::Font::floatWidthForComplexText): Ditto.

2012-10-15  Pablo Flouret  <pablof@motorola.com>

        Add force parameter to DOMTokenList.toggle
        https://bugs.webkit.org/show_bug.cgi?id=99375

        Reviewed by Darin Adler.

        See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
        https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463

        Essentially, the optional boolean force parameter, if present, makes
        toggle always add or remove a class.

        No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js

        * html/DOMTokenList.cpp:
        (WebCore::DOMTokenList::toggle):
        (WebCore):
        * html/DOMTokenList.h:
        (DOMTokenList):
        * html/DOMTokenList.idl:
            New toggle() overload that takes a force parameter and calls
            addInternal() or removeInternal() based on it.

2012-10-15  Dan Bernstein  <mitz@apple.com>

        Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
        https://bugs.webkit.org/show_bug.cgi?id=99406

        Reviewed by Darin Adler.

        * platform/graphics/WidthIterator.cpp:
        * platform/graphics/WidthIterator.h:
        (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
        shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
        Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
        does not support kerning and ligatures.

2012-10-15  Michael Saboff  <msaboff@apple.com>

        Add 8 bit patch to Document::isValidName() for the non ASCII case
        https://bugs.webkit.org/show_bug.cgi?id=99402

        Reviewed by Darin Adler.

        Added 8 bit path to complete the processing of an 8 bit names without up-converting.

        * dom/Document.cpp:
        (WebCore::isValidNameNonASCII):
        (WebCore::Document::isValidName):

2012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>

        Support for background-clip:content-box and padding-box with border-radius
        https://bugs.webkit.org/show_bug.cgi?id=23166

        Reviewed by Simon Fraser.

        Test: fast/css/background-clip-radius-values.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
        (WebCore):
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderBoxModelObject.h:

2012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>

        Fix unused parameter build warning.
        https://bugs.webkit.org/show_bug.cgi?id=99400

        Reviewed by Gyuyoung Kim.

        Remove the name of unused parameters to fix the build warning (-Wunused-parameter).

        * platform/network/soup/ResourceErrorSoup.cpp:
        (WebCore::ResourceError::tlsError):

2012-10-15  Kenichi Ishibashi  <bashi@chromium.org>

        [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
        https://bugs.webkit.org/show_bug.cgi?id=99282

        Reviewed by Yuta Kitamura.

        Reset decompression state if WebSocketInflater decompress a block with
        BFINAL set to 1.

        Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html

        * Modules/websockets/WebSocketDeflater.cpp:
        (WebCore::WebSocketInflater::addBytes):
        Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
        of the current block was set to 1.
        (WebCore::WebSocketInflater::finish): Add an assertion.

2012-10-15  Simon Fraser  <simon.fraser@apple.com>

        Fix GraphicsLayer visible rect computation when scrolling in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=99385

        Reviewed by Dean Jackson, Tim Horton.

        RenderLayerCompositor always used frameView->frameRect() as the visible
        rect on the root used for GraphicsLayer visibleRect computation. This
        was wrong for subframes, which require a rect with an origin of (0,0)
        and size of the contentsSize().
        
        It was also wrong when the scrolling is not represented in the GraphicsLayer
        tree. When scrolling is done elsewhere, we need to use the ScrollView's
        visibleContentRect().

        Tests: compositing/visible-rect/scrolled.html
               compositing/visible-rect/iframe-and-layers.html
               compositing/visible-rect/iframe-no-layers.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):

2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>

        Remove page visibility hidden histograms
        https://bugs.webkit.org/show_bug.cgi?id=99360

        Reviewed by Ojan Vafai.

        The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
        investigate a potential optimization where we would destroy the render tree when
        a tab was hidden. The optimization was abandoned but the histograms were never
        removed. They are too narrow to be reused so this change removes them.

        * page/Page.cpp:
        (WebCore::Page::setVisibilityState):

2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>

        REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
        https://bugs.webkit.org/show_bug.cgi?id=99397

        Unreviewed, build fix.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):

2012-10-14  Kent Tamura  <tkent@chromium.org>

        Input elements with multiple fields UI should set appropriate direction for browser locale automatically
        https://bugs.webkit.org/show_bug.cgi?id=99291

        Reviewed by Hajime Morita.

        Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
        direction property, and their direction should be decided by the browser
        locale. If the browser locale is a RTL language, date/time input fields
        show formats/digits for the RTL language. The layout should be always
        RTL regardless of the direction in such case.

        Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html

        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
        Set approriate dir attribute value to the child element of the UA shadow root.

2012-10-15  Andreas Kling  <kling@webkit.org>

        StyleResolver: Garbage collect the matched properties cache on a timer.
        <http://webkit.org/b/98625>

        Reviewed by Eric Seidel.

        Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
        svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
        and defers the actual sweep for 60 seconds.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
        (WebCore::StyleResolver::addToMatchedPropertiesCache):
        * css/StyleResolver.h:
        (StyleResolver):

2012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>

        [GStreamer] GstCaps are leaked when building with gstreamer-1.0
        https://bugs.webkit.org/show_bug.cgi?id=99362

        Reviewed by Martin Robinson.

        Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).

        Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
        use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
        refeference count.

        Covered by existing tests.

        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
        (WTF::adoptGRef):
        (WTF):
        * platform/graphics/gstreamer/GRefPtrGStreamer.h:
        (WTF):
        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
        (webkitGstGetPadCaps):
        * platform/graphics/gstreamer/GStreamerVersioning.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        (webkitVideoSinkRender):

2012-10-15  Tony Chang  <tony@chromium.org>

        Unreviewed, rolling out r131367.
        http://trac.webkit.org/changeset/131367
        https://bugs.webkit.org/show_bug.cgi?id=98666

        crashes on Apple Mac

        * css/html.css:
        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
        (input[type="range"]::-webkit-slider-runnable-track):
        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
        * css/mediaControlsChromium.css:
        (input[type="range"]::-webkit-media-slider-thumb):
        * css/mediaControlsChromiumAndroid.css:
        (input[type="range"]::-webkit-media-slider-thumb):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::listAttributeTargetChanged):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderThumb::layout):
        (WebCore):
        (WebCore::RenderSliderContainer::RenderSliderContainer):
        (RenderSliderContainer):
        (WebCore::RenderSliderContainer::layout):
        * html/shadow/SliderThumbElement.h:
        (RenderSliderThumb):
        * rendering/RenderSlider.cpp:
        (WebCore):
        (WebCore::RenderSlider::RenderSlider):
        (WebCore::RenderSlider::layout):
        * rendering/RenderSlider.h:
        (WebCore):
        (RenderSlider):
        (WebCore::RenderSlider::renderName):
        (WebCore::RenderSlider::isSlider):
        (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
        (WebCore::toRenderSlider):

2012-10-15  Dan Bernstein  <mitz@apple.com>

        Try to fix the build again after r131375.

        * platform/graphics/WidthIterator.h:
        (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.

2012-10-15  Dan Bernstein  <mitz@apple.com>

        Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
        code path after r131365.

        * platform/graphics/WidthIterator.cpp:
        (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
        sequences.
        * platform/graphics/WidthIterator.h:
        (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
        shorter than 2 characters.

2012-10-15  Dan Bernstein  <mitz@apple.com>

        Try to fix the Chromium Mac build after r131365.

        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBufferAdvance::height): Added.
        * platform/graphics/skia/FontSkia.cpp:
        (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.

2012-10-15  Simon Fraser  <simon.fraser@apple.com>

        Ensure that GraphicsLayer positions are updated while doing threaded scrolling
        https://bugs.webkit.org/show_bug.cgi?id=99372

        Reviewed by Anders Carlsson.

        When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
        but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
        works incorrectly.
        
        Threaded scrolling is not testabled in layout tests.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
        * platform/graphics/GraphicsLayer.h:
        (GraphicsLayer):
        (WebCore::GraphicsLayer::syncPosition):

2012-10-15  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Implement RTCDataChannel
        https://bugs.webkit.org/show_bug.cgi?id=99080

        Reviewed by Adam Barth.

        This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
        Since the data channel belongs to a peer connection object I have reused part of its infrastructure.

        Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/mediastream/RTCDataChannel.cpp: Added.
        (WebCore):
        (WebCore::RTCDataChannel::create):
        (WebCore::RTCDataChannel::RTCDataChannel):
        (WebCore::RTCDataChannel::~RTCDataChannel):
        (WebCore::RTCDataChannel::label):
        (WebCore::RTCDataChannel::reliable):
        (WebCore::RTCDataChannel::readyState):
        (WebCore::RTCDataChannel::bufferedAmount):
        (WebCore::RTCDataChannel::binaryType):
        (WebCore::RTCDataChannel::setBinaryType):
        (WebCore::RTCDataChannel::send):
        (WebCore::RTCDataChannel::close):
        (WebCore::RTCDataChannel::readyStateChanged):
        (WebCore::RTCDataChannel::dataArrived):
        (WebCore::RTCDataChannel::error):
        (WebCore::RTCDataChannel::descriptor):
        (WebCore::RTCDataChannel::interfaceName):
        (WebCore::RTCDataChannel::scriptExecutionContext):
        (WebCore::RTCDataChannel::stop):
        (WebCore::RTCDataChannel::eventTargetData):
        (WebCore::RTCDataChannel::ensureEventTargetData):
        * Modules/mediastream/RTCDataChannel.h: Added.
        (WebCore):
        (RTCDataChannel):
        (WebCore::RTCDataChannel::refEventTarget):
        (WebCore::RTCDataChannel::derefEventTarget):
        * Modules/mediastream/RTCDataChannel.idl: Added.
        * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
        (WebCore):
        (WebCore::RTCDataChannelEvent::create):
        (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
        (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
        (WebCore::RTCDataChannelEvent::channel):
        (WebCore::RTCDataChannelEvent::interfaceName):
        * Modules/mediastream/RTCDataChannelEvent.h: Added.
        (WebCore):
        (RTCDataChannelEvent):
        * Modules/mediastream/RTCDataChannelEvent.idl: Added.
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::createDataChannel):
        (WebCore):
        (WebCore::RTCPeerConnection::close):
        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
        (WebCore::RTCPeerConnection::stop):
        * Modules/mediastream/RTCPeerConnection.h:
        (WebCore):
        (RTCPeerConnection):
        * Modules/mediastream/RTCPeerConnection.idl:
        * WebCore.gypi:
        * dom/EventNames.h:
        (WebCore):
        * dom/EventNames.in:
        * dom/EventTargetFactory.in:
        * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
        (WebCore):
        (WebCore::RTCDataChannelDescriptor::create):
        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
        (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
        (WebCore::RTCDataChannelDescriptor::dataArrived):
        (WebCore::RTCDataChannelDescriptor::error):
        * platform/mediastream/RTCDataChannelDescriptor.h: Added.
        (WebCore):
        (RTCDataChannelDescriptorClient):
        (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
        (RTCDataChannelDescriptor):
        (ExtraData):
        (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
        (WebCore::RTCDataChannelDescriptor::client):
        (WebCore::RTCDataChannelDescriptor::setClient):
        (WebCore::RTCDataChannelDescriptor::label):
        (WebCore::RTCDataChannelDescriptor::reliable):
        (WebCore::RTCDataChannelDescriptor::readyState):
        (WebCore::RTCDataChannelDescriptor::bufferedAmount):
        (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
        (WebCore::RTCDataChannelDescriptor::extraData):
        (WebCore::RTCDataChannelDescriptor::setExtraData):
        * platform/mediastream/RTCPeerConnectionHandler.cpp:
        (RTCPeerConnectionHandlerDummy):
        (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
        (WebCore):
        (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
        (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
        (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
        * platform/mediastream/RTCPeerConnectionHandler.h:
        (WebCore):
        (RTCPeerConnectionHandler):
        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
        (WebCore):
        (RTCPeerConnectionHandlerClient):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
        (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
        (WebCore):
        (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
        (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
        (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
        (RTCPeerConnectionHandlerChromium):

2012-10-15  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
        https://bugs.webkit.org/show_bug.cgi?id=99097

        Reviewed by Tony Chang.

        Include the error causing the abort in the callback from back end to
        front end so it can be exposed on the IDBTransaction.error property.

        Test: lazy-index-population.html

        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
        * Modules/indexeddb/IDBDatabaseCallbacks.h:
        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::onAbort):
        * Modules/indexeddb/IDBTransaction.h:
        (IDBTransaction):
        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore):
        (WebCore::IDBTransactionBackendImpl::commit):
        * Modules/indexeddb/IDBTransactionBackendImpl.h:
        (IDBTransactionBackendImpl):
        * Modules/indexeddb/IDBTransactionCallbacks.h:
        (IDBTransactionCallbacks):
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):

2012-10-15  Mike Reed  <reed@google.com>

        In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
        https://bugs.webkit.org/show_bug.cgi?id=99326

        Reviewed by Stephen White.

        No new tests -- existing layouttests exercise this, esp. 
          png-partial-load-no-alpha.html
          webp-partial-load.html
        These two fail if skia is told that these are opaque, which it is w/o this CL.

        At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
        This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
        in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.

        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::ImageFrame):
        (WebCore::ImageFrame::operator=):
        (WebCore::ImageFrame::zeroFillPixelData):
        (WebCore::ImageFrame::hasAlpha):
        (WebCore::ImageFrame::setHasAlpha):
        (WebCore::ImageFrame::setStatus):

2012-10-12  Tony Chang  <tony@chromium.org>

        input[type=range] as a flex item renders thumb at wrong position
        https://bugs.webkit.org/show_bug.cgi?id=98666

        Reviewed by Ojan Vafai.

        Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
        The previous code was trying to set the height to 100% and had a bunch of hacks in
        the renderer code to set an explicit height. Using the new flexbox allows us to
        remove these renderer hacks.

        Test: css3/flexbox/flexitem-stretch-range.html

        * css/html.css:
        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
        (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
        no longer setting top/left in the layout code.
        * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
        * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
        since the height of the control should change when adding/removing a datalist.
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
        (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
        height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
        we use the intrinsic size.
        (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
        This used to be handled in the thumb's layout method, but I deleted that.
        * html/shadow/SliderThumbElement.h:
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::RenderSlider): Use new flexbox.
        (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
        for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
        and expects the input to also have a height of 1px.  It worked before because the height of the input
        didn't depend on the height of its children.
        * rendering/RenderSlider.h: Fix indentation.
        (RenderSlider): Use new flexible box.

2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>

        Make RenderTable columns() and columnPositions() return a const reference
        https://bugs.webkit.org/show_bug.cgi?id=99339

        Reviewed by Abhishek Arya.

        The 2 getters were returning a non-const reference. This means that callers
        could have modified the Vector's where only FixedTableLayout and AutoTableLayout
        were expected to (for columnPositions(), no one should modify columns()).

        Refactoring covered by existing tests.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::layout):
        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::layout):
        Updated those functions to use the new setter.

        * rendering/RenderTable.h:
        (WebCore::RenderTable::columns):
        (WebCore::RenderTable::columnPositions):
        Made the 2 functions return a const reference. They are also const now!

        (WebCore::RenderTable::setColumnPosition):
        Added this setter.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addCell):
        (WebCore::RenderTableSection::setCellLogicalWidths):
        (WebCore::RenderTableSection::dirtiedColumns):
        Updated to use a const reference.

2012-10-15  Dan Bernstein  <mitz@apple.com>

        WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
        https://bugs.webkit.org/show_bug.cgi?id=99113

        Reviewed by Tim Horton.

        * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
        * platform/graphics/Font.cpp:
        (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
        (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
        features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
        typesetting features.
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
        WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
        about how this is not entirely correct when kerning or ligatures are enabled.
        (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
        WidthIterator::advance() when advancing to or from the range of interest.
        (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
        WidthIterator::advanceOneCharacter().
        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
        available.
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
        data member.
        (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
        characters treated as spaces.
        (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
        required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
        maintaining the advances of characters that are treated as spaces and the characters
        preceding them, if necessary.
        (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
        of each contiguous run of glyphs from the same font. Also added code to maintain a vector
        of spaces and characters treated as space.
        (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
        a reference.
        * platform/graphics/WidthIterator.h:
        (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
        instances support the typesetting features of the given font. Returns true if the font is
        not a screen font and its typesetting features are kerning, ligatures or both.
        (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
        features include kerning or ligatures.
        * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
        wkCTFontTransformGlyphs.
        * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
        WidthIterator::advance().
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.

2012-10-15  Mark Lam  <mark.lam@apple.com>

        Fix build broken by r131348.
        https://bugs.webkit.org/show_bug.cgi?id=97533.

        Not reviewed.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::layoutContent):

2012-10-15  Andreas Kling  <kling@webkit.org>

        Remove WTF::fastDeleteAllValues().
        <http://webkit.org/b/99345>

        Reviewed by Eric Seidel.

        It was only used to fastDelete() a class that was already overriding operator delete
        by way of WTF_MAKE_FAST_ALLOCATED anyway.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::~CSSParser):

2012-10-15  Levi Weintraub  <leviw@chromium.org>

        Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
        https://bugs.webkit.org/show_bug.cgi?id=99194

        Reviewed by Eric Seidel.

        Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
        these two types of elements would cause us to increase our preferred width forever.

        Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):

2012-10-15  Emil A Eklund  <eae@chromium.org>

        Revert rounding change in RenderTable::paintObject
        https://bugs.webkit.org/show_bug.cgi?id=99364

        Reviewed by Levi Weintraub.

        Bug 91410 changed RenderTable::paintObject to round the offset
        in order to avoid table-background bleed through. The root cause
        for that has since been fixed and the rounding workaround is no
        longer needed. This change reverts the code change from bug
        91410 while preserving the test added as a part of that change
        as it now passes without the workaround.

        No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::paintObject):
        Remove unnecessary rounding.

2012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>

        [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
        https://bugs.webkit.org/show_bug.cgi?id=96448

        Reviewed by Kenneth Rohde Christiansen.

        CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
        the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
        that m_programType encoded the very same information. Dependencies have been updated to reflect
        this change.

        Current tests already cover this code.

        * css/CSSComputedStyleDeclaration.cpp: 
        (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
        by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
        new filter program.
        * platform/graphics/filters/CustomFilterProgram.cpp:
        (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
        reflect the need of setting the program type explicitly.
        (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
        type explicitly.
        * platform/graphics/filters/CustomFilterProgram.h:
        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
        (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
        (WebCore::CustomFilterProgramInfo::hash): ditto
        (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
        the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
        * platform/graphics/filters/CustomFilterProgramInfo.h:
        (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
        (WebCore::CustomFilterProgramMixSettings::operator==): ditto
        (CustomFilterProgramInfo):
        (WebCore::CustomFilterProgramInfo::programType):
        * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
        created according to the program type.
        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
        (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
        has been replaced with a check for the program type.
        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
        * rendering/style/StyleCustomFilterProgram.h:
        (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
        (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto

2012-10-15  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Key paths should support non-ASCII identifiers
        https://bugs.webkit.org/show_bug.cgi?id=98814

        Reviewed by Kentaro Hara.

        Update the parser for key paths to use the unicode classes from
        the IdentifierName production in ECMA-262.

        Test: storage/indexeddb/keypath-basics.html

        * Modules/indexeddb/IDBKeyPath.cpp:
        (WebCore):
        (WebCore::IDBKeyPathLexer::lexIdentifier):

2012-10-15  Yael Aharon  <yael.aharon@intel.com>

        [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
        https://bugs.webkit.org/show_bug.cgi?id=99325

        Reviewed by Kenneth Rohde Christiansen.

        Based on a patch from Regina Chung.
        This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
        The gl context is used as key in a hash map and cannot be NULL.

        No new tests. Accelerated compositing is not yet enabled in the EFL port.

        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):

2012-10-15  Mike West  <mkwst@chromium.org>

        Console messages containing long URLs should cut at some reasonable length.
        https://bugs.webkit.org/show_bug.cgi?id=97980

        Reviewed by Pavel Feldman.

        This patch lightly modifies the current styling of linkified URLs inside
        console messages in order to cut them down to some reasonable size for
        viewing. The middle of the URL is snipped out such that the whole
        thing fits into 150 characters. This only effects the displayed text;
        the link's href isn't changed; the link remains available via the
        context menu, accessible via the title attribute, and clicking it still
        takes the user directly to the resource in question.

        Test: inspector/console/console-trim-long-urls.html

        * inspector/front-end/ResourceUtils.js:
        (WebInspector.linkifyURLAsNode):
            Trim the middle of the URL to bring the whole string down to  down
            to 150 characters, and set the link's title to the full URL.

2012-10-15  Tony Chang  <tony@chromium.org>

        Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
        https://bugs.webkit.org/show_bug.cgi?id=99348

        Reviewed by Ojan Vafai.

        Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
        I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
        non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
        eventually.

        No new tests, this is just a code refactor.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
        (WebCore):
        * rendering/RenderMultiColumnSet.h:
        (RenderMultiColumnSet):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::computeLogicalHeight):
        * rendering/RenderView.h:

2012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>

        [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
        https://bugs.webkit.org/show_bug.cgi?id=97173

        Reviewed by Gyuyoung Kim.

        Remove codes to initialize and shutdown the EFL libraries from
        RunLoopEfl.cpp. Initialization and shutdown will be done in the
        ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
        process.

        No new tests. This patch doesn't change behavior.

        * platform/efl/RunLoopEfl.cpp:
        (WebCore::RunLoop::RunLoop):
        (WebCore::RunLoop::~RunLoop):

2012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Add support for auto-height regions (without region-breaks)
        https://bugs.webkit.org/show_bug.cgi?id=97533

        Reviewed by Julien Chaffraix.

        Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
        The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps

        When the flow thread contains regions with auto logical height, a 2pass layout algorithm is needed to determine the height of auto logical height regions.
        In each step of the layout, the regions are laid out before the flow thread is laid out.

        In the first pass of layout (normal layout phase), the content of the flow thread is laid out unconstrained in the regions. The region marked as having auto logical height
        displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
        determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
        value for the second pass in its overridden logical content height property.

        In the second pass of layout (constrained flow threads layout phase), when the content of the flow thread is laid out constrained in the regions, the regions are laid out again and they are using
        the overridden logical content height from the first pass to update their logical height. Then, the flow thread content is laid out in the associated region chain,
        for which the auto logical height regions have proper logical height.

        A future patch will properly take region breaks into account for the first pass of layout.

        Tests: fast/regions/autoheight-abspos-region.html
               fast/regions/autoheight-floatright-region.html
               fast/regions/autoheight-horizontal-bt.html
               fast/regions/autoheight-inlineblock-normalflow-region.html
               fast/regions/autoheight-maxheight-region.html
               fast/regions/autoheight-minheight-region.html
               fast/regions/autoheight-normalflow-region.html
               fast/regions/autoheight-vertical-lr.html
               fast/regions/autoheight-vertical-rl.html

        * rendering/FlowThreadController.cpp:
        (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
        For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
        Those regions are marked as needing layout (along with their ancestors).
        (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
        Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
        * rendering/FlowThreadController.h:
        * rendering/RenderBox.cpp:
        Add helper functions to clear out individual logical content width/height.
        (WebCore::RenderBox::clearOverrideLogicalContentHeight):
        (WebCore::RenderBox::clearOverrideLogicalContentWidth):
        (WebCore::RenderBox::clearOverrideSize):
        * rendering/RenderBox.h:
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::computeLogicalHeight):
        If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
        bail out early since we cannot compute the flow thread logical height.
        (WebCore::RenderFlowThread::regionAtBlockOffset):
        If the offset is inside an auto logical height region for which we did not compute the overrideLogicalContentHeight, then we consider this region tall enough to accommodate all
        the content and we return this region. Otherwise, for an auto logical height region, we use either the overrideLogicalContentHeight (if we are in the first layout phase) or
        the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
        (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
        (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
        (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
        (WebCore::RenderFlowThread::addForcedRegionBreak):
        Simulate a region break at the specified offset. It will be extended to properly process the region breaks. At this moment, only one auto height region for a thread
        can have its height properly computed.
        * rendering/RenderFlowThread.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::boxIntersectsRegion):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::updateLogicalHeight):
        If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
        we use the overrideLogicalContentHeight to update the region logical height.
        (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
        * rendering/RenderRegion.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        (WebCore::RenderView::layoutContent):
        Added a new function to contain the RenderView block layout and flow threads layout.
        (WebCore::RenderView::checkLayoutState):
        Helper function keeping the original asserts from RenderView, used in more than one place.
        (WebCore::RenderView::layout):
        * rendering/RenderView.h:
        (WebCore::RenderView::normalLayoutPhase):
        (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):

2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Fix memory leak in TreeOutline
        https://bugs.webkit.org/show_bug.cgi?id=99307

        Reviewed by Alexander Pavlov.

        Added cleanup of empty buckets in elements cache.

        * inspector/front-end/treeoutline.js:

2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>

        Web Inspector: Hide useless controls in remote-debugging mode.
        https://bugs.webkit.org/show_bug.cgi?id=99300

        Reviewed by Vsevolod Vlasov.

        "Close inspector" and "change docking mode" buttons seem to be rather
        useless in remote debugging mode.

        * inspector/front-end/inspector.css:
        (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
        (body.remote .dock-status-bar-item):

2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][WK2] Implement Favicons API
        https://bugs.webkit.org/show_bug.cgi?id=99087

        Reviewed by Kenneth Rohde Christiansen.

        Moved ewk_util from WebKit to WebCore and rename it
        to CairoUtilityEfl so that the code can be shared
        between WebKit1 and WebKit2. Some related utility
        code was also moved from RenderThemeEfl to
        CairoUtilityEfl.

        No new tests, no behavior change.

        * PlatformEfl.cmake:
        * platform/efl/RenderThemeEfl.cpp:
        * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
        (WebCore):
        (WebCore::evasObjectFromCairoImageSurface):
        (WebCore::createSurfaceForBackingStore):
        * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
        (WebCore):

2012-10-15  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=99350
        REGRESSION (r131238): Repro crash in 
       WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
        opening pdf page
        -and corresponding-
        <rdar://problem/12499839>

        Reviewed by Simon Fraser.

        We have to null-check node here. It won't be found if  
        clearStateTree() was recently called.
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):

2012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>

        [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
        https://bugs.webkit.org/show_bug.cgi?id=99302

        Reviewed by Rob Buis.

        RIM PR: 210884
        The marco BBLOG() is defined as a no-op in release mode which will
        save a function call in the release build.
        Internally reviewed by Charles Wei.

        No new tests since there's no functional change.

        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
        (WebCore::GraphicsContext3D::logFrameBufferStatus):
        * platform/graphics/blackberry/LayerCompositingThread.cpp:
        (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
        * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
        (WebCore::VideoLayerWebKitThread::setHolePunchRect):
        (WebCore::VideoLayerWebKitThread::boundsChanged):
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::compileShader):

2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Provide logging for OnlineState detection code
        https://bugs.webkit.org/show_bug.cgi?id=99299

        Reviewed by Kenneth Rohde Christiansen.

        Add logging to NetworkStateNotifierEfl.cpp to facilitate
        debugging of this functionality.

        No new tests, no behavior change.

        * platform/network/efl/NetworkStateNotifierEfl.cpp:
        (WebCore::NetworkStateNotifier::updateState):

2012-10-15  MORITA Hajime  <morrita@google.com>

        [Regression r131167] run-webkit-tests fails
        https://bugs.webkit.org/show_bug.cgi?id=99279

        Reviewed by Kentaro Hara.

        CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
        overlooked TestObj. This fix relaxes that assumption to accept it.

        No new tests. Fixing an existing test.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateConstructorGetter):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjV8Internal::TestObjConstructorGetter):

2012-10-15  Joe Mason  <jmason@rim.com>

        [BlackBerry] Fix WebSockets which was disabled by recent string changes
        https://bugs.webkit.org/show_bug.cgi?id=99248

        Reviewed by George Staikos.

        PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
        BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
        updated to the new signature, so the status message is not getting passed on because it is
        not calling the correct override.

        No new tests because this is fixing a regression.

        * platform/network/blackberry/SocketStreamHandle.h:
        (SocketStreamHandle):
        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
        (WebCore::SocketStreamHandle::notifyStatusReceived):

2012-10-15  Rob Buis  <rbuis@rim.com>

        Remove RenderTextControl::isSelectableElement
        https://bugs.webkit.org/show_bug.cgi?id=99334

        Reviewed by Andreas Kling.

        It seems this method is not used anymore.

        * WebCore.order:
        * rendering/RenderTextControl.h:

2012-10-15  Mike West  <mkwst@chromium.org>

        CSP source expressions should support paths at file-level granularity.
        https://bugs.webkit.org/show_bug.cgi?id=99250

        Reviewed by Adam Barth.

        After a bit of discussion on public-webappsec[1], path support for CSP
        source expressions has been tuned to support file-level granularity. In
        particular, this means that:

        - 'example.com/js' matches a file named 'js'
        - 'example.com/js/' matches all files under a directory named 'js'
          (note the trailing slash)
        - 'example.com/js/file.js' matches only a file named 'file.js'
          inside a directory named 'js'

        Though this is part of the CSP 1.1 spec, it continues to be exposed
        outside the CSP_NEXT flag for back-compatibility.

        Test cases have been added to the existing
        http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
        in order ensure that the new functionality works correctly.

        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPSource::pathMatches):
            If the path ends with '/', do a prefix check. If not, check for an
            exact match.
        (WebCore::CSPSourceList::parsePath):
            Don't automatically append a '/' to paths.

2012-10-15  George Staikos  <staikos@webkit.org>

        [BlackBerry] Adapt to Platform API changes in string handling
        https://bugs.webkit.org/show_bug.cgi?id=99248

        Reviewed by Yong Li.

        Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
        * page/blackberry/SettingsBlackBerry.cpp:
        (WebCore):
        (WebCore::Settings::initializeDefaultFontFamilies):
        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
        * platform/blackberry/PasteboardBlackBerry.cpp:
        (WebCore::Pasteboard::writeSelection):
        (WebCore::Pasteboard::writeURL):
        (WebCore::Pasteboard::writePlainText):
        (WebCore::Pasteboard::plainText):
        (WebCore::Pasteboard::documentFragment):
        * platform/blackberry/ReadOnlyLatin1String.h: Removed.
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
        (WebCore::MediaPlayerPrivate::getSupportedTypes):
        (WebCore::MediaPlayerPrivate::supportsType):
        (WebCore::MediaPlayerPrivate::setCertificatePath):
        (WebCore::MediaPlayerPrivate::load):
        (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
        (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
        (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
        (WebCore::MediaPlayerPrivate::lookupMediaStream):
        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
        (MediaPlayerPrivate):
        (WebCore::MediaPlayerPrivate::engineDescription):
        * platform/network/blackberry/DNSBlackBerry.cpp:
        (WebCore::prefetchDNS):
        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::initialize):
        (WebCore::NetworkJob::notifyStatusReceived):
        (WebCore::NetworkJob::notifyHeadersReceived):
        (WebCore::NetworkJob::handleNotifyClose):
        (WebCore::NetworkJob::sendRequestWithCredentials):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::NetworkManager::startJob):
        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
        (WebCore::ResourceRequest::initializePlatformRequest):
        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
        (WebCore::SocketStreamHandle::SocketStreamHandle):
        * platform/text/blackberry/StringBlackBerry.cpp:
        (WTF::String::String):
        (WTF::String::operator BlackBerry::Platform::String):
        * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:

2012-10-15  Jay Civelli  <jcivelli@chromium.org>

        Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
        its current position is at a segment boundary (4096) ends up adding an
        unitialized segment (with uninitialized memory) to the SharedBuffer.
        https://bugs.webkit.org/show_bug.cgi?id=99000

        Reviewed by Adam Barth.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::append):

2012-10-15  Luke Macpherson   <macpherson@chromium.org>

        Make CSS variable names case-insensitive.
        https://bugs.webkit.org/show_bug.cgi?id=98712

        Reviewed by Tony Chang.

        This patch modifies the parser to normalize all variable names to lower case,
        making variable definitions consistent with other property names, which are also case insensitive.
        Spec: http://dev.w3.org/csswg/css-variables/#defining-variables

        Test: fast/css/variables/case-insensitive.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::createPrimitiveNumericValue):
        (WebCore):
        (WebCore::CSSParser::createPrimitiveVariableNameValue):
        (WebCore::CSSParser::parseValidPrimitive):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::storeVariableDeclaration):
        (WebCore::CSSParserString::lowerSubstring):
        Added function to compute a lower case substring as an AtomicString from a CSSParserString.
        * css/CSSParser.h:
        (CSSParser):
        * css/CSSParserValues.h:
        (CSSParserString):
        (WebCore::CSSParserString::lowerSubstring):

2012-10-15  Michael Saboff  <msaboff@apple.com>

        Update RenderText to use String instead of UChar* for text
        https://bugs.webkit.org/show_bug.cgi?id=96979

        Reviewed by Dan Bernstein.

        RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
        actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
        somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
        now written as rt->characterAt(n).
        Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
        text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
        to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
        as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
        parameter.  
        Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
        for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
        updated to TextRun's with 8 bit data.
        Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.

        No function change therefore no new tests.

        * html/parser/HTMLTokenizer.cpp:
        (WebCore::vectorEqualsString):
        (WebCore::HTMLTokenizer::nextToken):
        * html/parser/HTMLTokenizer.h:
        (HTMLTokenizer):
        * html/track/WebVTTTokenizer.cpp:
        (WebCore::vectorEqualsString):
        (WebCore::WebVTTTokenizer::nextToken):
        * html/track/WebVTTTokenizer.h:
        (WebVTTTokenizer):
        * platform/graphics/Font.h:
        (WebCore::Font::glyphDataForCharacter):
        * platform/graphics/FontFastPath.cpp:
        (WebCore):
        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun):
        (WebCore::TextRun::subRun):
        (TextRun):
        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::TextLayout::isNeeded):
        (WebCore::TextLayout::constructTextRun):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
        * rendering/InlineIterator.h:
        (WebCore::InlineIterator::atTextParagraphSeparator):
        (WebCore::InlineIterator::current):
