buildAccessibilityTree() needs to be removed from individual layout tests
https://bugs.webkit.org/show_bug.cgi?id=95286

Reviewed by Chris Fleizach.

Extracted two functions to 'dump' and 'touch' the accessibility
hierarchies out of different layout tests and into a single file,
living in LayoutTests/resources/accessibility-helper.js

* resources/accessibility-helper.js: Added.
(dumpAccessibilityTree): New, based on buildAccessibilityTree()
for the cases where it was used to actually 'dump' it into the output.
(touchAccessibilityTree): Same, but for the cases where we don't
want to dump the accessibility tree, just to make sure is generated.

Updated affected layout tests to use the newly added helper functions.

* accessibility/adjacent-continuations-cause-assertion-failure.html: Updated.
* accessibility/children-changed-sends-notification.html: Ditto.
* accessibility/deleting-iframe-destroys-axcache.html: Ditto.
* accessibility/div-within-anchors-causes-crash.html: Ditto.
* accessibility/first-letter-text-transform-causes-crash.html: Ditto.
* accessibility/image-map-update-parent-crash.html: Ditto.
* accessibility/table-with-empty-thead-causes-crash.html: Ditto.
* platform/efl/accessibility/media-emits-object-replacement.html: Ditto.
* platform/gtk/accessibility/entry-and-password.html: Ditto.
* platform/gtk/accessibility/media-emits-object-replacement.html: Ditto.
* platform/gtk/accessibility/replaced-objects-in-anonymous-blocks.html: Ditto.

Updated Mac specific expectations not to print the "End of test" element.

* platform/mac-wk2/accessibility/deleting-iframe-destroys-axcache-expected.txt: Updated.
* platform/mac/accessibility/adjacent-continuations-cause-assertion-failure-expected.txt: Ditto.
* platform/mac/accessibility/deleting-iframe-destroys-axcache-expected.txt: Ditto.
* platform/mac/accessibility/div-within-anchors-causes-crash-expected.txt: Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CTTE: ApplicationCacheHost always has a DocumentLoader.
<https://webkit.org/b/b/128435>

Have ApplicationCacheHost store the backpointer to its owning
DocumentLoader as a reference.

Reviewed by Sam Weinig.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::ApplicationCacheHost):
(WebCore::ApplicationCacheHost::~ApplicationCacheHost):
(WebCore::ApplicationCacheHost::selectCacheWithoutManifest):
(WebCore::ApplicationCacheHost::selectCacheWithManifest):
(WebCore::ApplicationCacheHost::maybeLoadMainResource):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
(WebCore::ApplicationCacheHost::failedLoadingMainResource):
(WebCore::ApplicationCacheHost::finishedLoadingMainResource):
(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForError):
(WebCore::ApplicationCacheHost::maybeLoadSynchronously):
(WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
(WebCore::ApplicationCacheHost::stopDeferringEvents):
(WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
(WebCore::ApplicationCacheHost::update):
(WebCore::ApplicationCacheHost::swapCache):
(WebCore::ApplicationCacheHost::abort):
(WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
* loader/appcache/ApplicationCacheHost.h:
(WebCore::ApplicationCacheHost::documentLoader): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
input type=range element should only fire change events after committing a  value
https://bugs.webkit.org/show_bug.cgi?id=134545

Patch by Julien Quint <pom@graougraou.com> on 2014-07-04
Reviewed by Dean Jackson.

Source/WebCore:
A "change" event was fired every time the slider thumb element was dragged
by the user. The "change" event is now fired only after the thumb
element has stopped moving; previously, both "input" and "change" events
where dispatched while changes were being made. This new behavior is
consistent with the specification (cf.
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#event-input-change),
as well as other implementations such as Firefox and Chrome.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls): Listen to the "input" event
rather than the "change" event for the timeline control in order to
keep track of value changes when the user is dragging the thumb.
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::setValue): Dispatch "change" event while
setting the new value rather than dispatching later, since setting the
value now clears the change flag.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::setValue): Update the text value of the
control in the case when no event is to be dispatched, so that this
value can be checked the next time a "change" event dispatch is
requested.
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint): Removed the
dispatch of the "change" event, and no longer track the text value of
the element as a result of dispatching a "change" event.
(WebCore::SliderThumbElement::stopDragging): Dispatch the "change" event
on completing the drag.

LayoutTests:
Two existing tests are updated to count "input" events as well as
"change" events. The tests now verify that "change" is only fired once
after every slider drag completes, whereas "input" may be fired more
than once.

* fast/forms/range/range-drag-expected.txt:
* fast/forms/range/range-drag-when-toggled-disabled-expected.txt:
* fast/forms/range/range-drag-when-toggled-disabled.html:
* fast/forms/range/range-drag.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CTTE: ScriptElement always has a HTTPScriptElement or SVGScriptElement.
<https://webkit.org/b/134637>

Have ScriptElement store the pointer to the more specific subclass
element as a reference. Also made the constructor protected since
nobody should instantiate ScriptElement directly.

Reviewed by Antti Koivisto.

* dom/ScriptElement.cpp:
(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::childrenChanged):
(WebCore::ScriptElement::dispatchErrorEvent):
(WebCore::ScriptElement::prepareScript):
(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::executeScript):
(WebCore::ScriptElement::notifyFinished):
(WebCore::ScriptElement::ignoresLoadRequest):
(WebCore::ScriptElement::scriptContent):
* dom/ScriptElement.h:
(WebCore::ScriptElement::element):
* dom/ScriptRunner.cpp:
(WebCore::ScriptRunner::queueScriptForExecution):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::HTMLScriptElement):
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::SVGScriptElement):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] Take TopContentInset into account when sending dictionary lookup point to PluginView
https://bugs.webkit.org/show_bug.cgi?id=134624
<rdar://problem/17222041>

Reviewed by Sam Weinig.

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::performDictionaryLookupAtLocation):
Perform the same coordinate conversion we use for mouse events, which happens
to take the top content inset into account.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Cocoa] -[WKWebView _reload] is unused
https://bugs.webkit.org/show_bug.cgi?id=134638

Reviewed by Sam Weinig.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _reload]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fix after r170811.

* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController reload:]):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CoordinatedGraphics] Use the C++11 syntax to clean-up for loops
https://bugs.webkit.org/show_bug.cgi?id=134594

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2014-07-04
Reviewed by Darin Adler.

Convert a couple of loops to range-based for

No change in functionality, no new tests.

* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::updateTileBuffers):
(WebCore::TiledBackingStore::resizeEdgeTiles):
(WebCore::TiledBackingStore::setKeepRect):
* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::~CompositingCoordinator):
(WebCore::CompositingCoordinator::flushPendingImageBackingChanges):
(WebCore::CompositingCoordinator::setVisibleContentsRect):
(WebCore::CompositingCoordinator::purgeBackingStores):
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
(WebCore::CoordinatedBackingStore::removeAllTiles):
(WebCore::CoordinatedBackingStore::paintToTextureMapper):
(WebCore::CoordinatedBackingStore::drawBorder):
(WebCore::CoordinatedBackingStore::drawRepaintCounter):
(WebCore::CoordinatedBackingStore::commitTileOperations):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
(WebCore::CoordinatedGraphicsScene::commitPendingBackingStoreOperations):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2]Fix build break in EFL WK2
https://bugs.webkit.org/show_bug.cgi?id=134629

Unreviewed build fix.

Patch by Rohit Kumar <kumar.rohit@samsung.com> on 2014-07-04

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::scheduleCompositingLayerFlushImmediately):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] [Media] Prevent page zoom if it started in the video element
https://bugs.webkit.org/show_bug.cgi?id=134640
<rdar://problem/16630794>

Reviewed by Sam Weinig.

In r170572 I attempted to prevent the page zoom from happening
when the user was attempting to fullscreen the video. That fix was
not complete, because it relied on the touchstart event being
sent before a gesture event. It turns out this doesn't always happen,
so we need to apply the same check in the gesture event - if the
gesture began with two fingers on the media, don't do a page zoom.
The exception is zooming out, if you've managed to make the video
cover the entire screen (also, the pinch-out-of-fullscreen gesture
does not get handled by WebKit).

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.handleBaseGestureChange): Add a check to
make sure our pinch didn't start in the video element.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
QualifiedName should use RefPtr<QualifiedNameImpl> internally.
<https://webkit.org/b/132796>

We were not inlining ~QualifiedName() and it was showing up in some
profiles (over 1% on dom-attr.html.)

This patch modernizes QualifiedName a bit by using RefPtr to store
the QualifiedNameImpl instead of doing manual ref() and deref()
in out-of-line functions.

Reviewed by Darin Adler.

* WebCore.exp.in:
* dom/QualifiedName.cpp:
(WebCore::QNameComponentsTranslator::translate):
(WebCore::QualifiedName::QualifiedName):
(WebCore::QualifiedName::~QualifiedName): Deleted.
(WebCore::QualifiedName::deref): Deleted.
* dom/QualifiedName.h:
(WebCore::QualifiedName::QualifiedNameImpl::create):
(WebCore::QualifiedName::QualifiedName):
(WebCore::QualifiedName::isHashTableDeletedValue):
(WebCore::QualifiedName::~QualifiedName):
(WebCore::QualifiedName::operator=):
(WebCore::QualifiedName::impl):
(WebCore::QualifiedName::ref): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170816 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Subpixel rendering: ebay.com rotating billboard on the main page has cut off buttons.
https://bugs.webkit.org/show_bug.cgi?id=134636
<rdar://problem/17529112>

Reviewed by Darin Adler.

Missing pixel snapping when clipping the transparency layer for BackgroundBleedUseTransparencyLayer.
Clipping needs to take the same snapping strategy as the rest of the painting code.

Source/WebCore:
Test: fast/borders/border-radius-on-subpixel-position-non-hidpi.html

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

LayoutTests:
* fast/borders/border-radius-on-subpixel-position-non-hidpi-expected.html: Added.
* fast/borders/border-radius-on-subpixel-position-non-hidpi.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170817 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fast path for jsStringWithCache() when asked for the same string repeatedly.
<https://webkit.org/b/134635>

Source/JavaScriptCore:
Also moved the whole thing from WebCore to JavaScriptCore since it
makes more sense here, and inline the lightweight checks, leaving only
the hashmap stuff out of line.

Reviewed by Darin Adler.

* runtime/JSString.cpp:
(JSC::jsStringWithCacheSlowCase):
* runtime/JSString.h:
(JSC::jsStringWithCache):
* runtime/VM.h:

Source/WebCore:
Reviewed by Darin Adler.

* WebCore.exp.in:
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsStringWithCache): Deleted.
* bindings/js/JSDOMBinding.h:
(WebCore::JSValueTraits<String>::arrayJSValue):
(WebCore::jsStringWithCache): Deleted.
* bridge/c/c_utility.cpp:
(JSC::Bindings::convertNPVariantToValue):
* loader/cache/CachedResourceHandle.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Enhance the Minibrowser to show selected/highlighted text in search bar, if any.
https://bugs.webkit.org/show_bug.cgi?id=134485

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-07-04
Reviewed by Gyuyoung Kim.

Use script_execute_callback to get selected/highlighted text and show in search bar.

* MiniBrowser/efl/main.c:
(script_execute_callback):
(on_key_down):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CSS JIT: compile :in-range and :out-of-range
https://bugs.webkit.org/show_bug.cgi?id=134639

Reviewed by Andreas Kling.

The pseudo class :in-range and :out-of-range are trivial non-inlined selectors.

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/SelectorCheckerTestFunctions.h:
(WebCore::isInRange):
(WebCore::isOutOfRange):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Support Geolocation
https://bugs.webkit.org/show_bug.cgi?id=134439

Reviewed by Antonio Gomes.

.:
* Source/cmake/OptionsEfl.cmake: Turn on ENABLE_GEOLOCATION.

Source/WebCore:
Add geoclue files in order to enable geolocation for EFL port.

* PlatformEfl.cmake:

Tools:
* Scripts/webkitperl/FeatureList.pm: Enable geolocation for EFL port.

LayoutTests:
* platform/efl/TestExpectations: Unskip geolocation tests.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Add libgeoclue-dev to Tools/efl/install-dependencies.
https://bugs.webkit.org/show_bug.cgi?id=134648

Patch by KwangHyuk Kim <hyuki.kim@samsung.com> on 2014-07-05
Reviewed by Gyuyoung Kim.

As Geoclue is enabled for EFL, libgeoclue-dev is also added to Tools/efl/install-dependencies.

* efl/install-dependencies:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Generate isMathMLFoo() toMathMLFoo() by using NODE_TYPE_CASTS macro and generateTypeHelpers
https://bugs.webkit.org/show_bug.cgi?id=134647

Reviewed by Andreas Kling.

Use type cast macro and generation tag for isFoo() and toFoo() in some MathML classes.

No new tests, no behavior change.

* mathml/MathMLElement.h: Place MathMLElementTypeHelpers.h to the bottom of the
file so that functions from that file can use the Element|Node classes and other things defined in this file.
(WebCore::isMathMLElement): Deleted.
* mathml/MathMLMencloseElement.h:
(WebCore::toMathMLMencloseElement): Deleted.
* mathml/mathtags.in:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r170825.
https://bugs.webkit.org/show_bug.cgi?id=134653

broke debug builds (Requested by kling on #webkit).

Reverted changeset:

"Generate isMathMLFoo() toMathMLFoo() by using NODE_TYPE_CASTS
macro and generateTypeHelpers"
https://bugs.webkit.org/show_bug.cgi?id=134647
http://trac.webkit.org/changeset/170825

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] MediaDocument should set a viewport
https://bugs.webkit.org/show_bug.cgi?id=134658
<rdar://problem/17552339>

Reviewed by Zalan Bujtas.

A MediaDocument should fill the viewport, so set its
initial-scale to 1 and make it non-zoomable.

* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure): Create
a <head> element and a <meta> element with a 1:1 viewport.

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