Move more style change code from RenderObject to RenderElement
https://bugs.webkit.org/show_bug.cgi?id=121822

Reviewed by Darin Adler.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::~RenderElement):
        
    RenderTexts are no longer registered as image clients. They don't need be unregistered either.

(WebCore::RenderElement::adjustStyleDifference):
(WebCore::RenderElement::hasImmediateNonWhitespaceTextChild):
(WebCore::RenderElement::shouldRepaintForStyleDifference):
(WebCore::RenderElement::updateFillImages):
(WebCore::RenderElement::updateImage):
(WebCore::RenderElement::updateShapeImage):
(WebCore::RenderElement::setStyle):
        
    Move from RenderObject and remove the text specific bits.

* rendering/RenderElement.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle):
(WebCore::RenderObject::arenaDelete):
* rendering/RenderObject.h:
        
    Remove styleWill/DidChange which move to subclasses.

* rendering/RenderText.cpp:
(WebCore::RenderText::setStyle):
        
    Add simple text specific setStyle.

* rendering/RenderText.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Bump the GTK+ dependency in the Wayland-specific Jhbuild moduleset
https://bugs.webkit.org/show_bug.cgi?id=121787

Reviewed by Gustavo Noronha Silva.

* gtk/jhbuild-wayland.modules: Bump the GTK+ dependency that's intended for use when building
with the Wayland target enabled to version 3.10.0.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156326 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Fix accelerated compositing disabling under Wayland displays
https://bugs.webkit.org/show_bug.cgi?id=121788

Reviewed by Gustavo Noronha Silva.

* webkit/webkitwebview.cpp:
(updateAcceleratedCompositingSetting): Fix a ridiculous early return in the case of disabling the accelerated
compositing setting. There's no need to re-disable the setting if it was already disabled, but it should
definitely be disabled if the setting was previously enabled.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156327 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Enable the Wayland target if GTK+ dependency is found
https://bugs.webkit.org/show_bug.cgi?id=121704

Reviewed by Gustavo Noronha Silva.

The Wayland target should be enabled by default if the GTK+ dependency is of version 3.9.14 or later.

* Source/autotools/FindDependencies.m4: If the Wayland target was not strictly disabled, the GTK+ dependency
is tested if it can provide the Wayland GDK backend, and that the version of that backend matches the version
of the master GTK+ dependency for which we already tested. If found, the target is enabled, otherwise we either
warn or error out, depending on whether the build target was set to auto or completely disabled through configuration.
* Source/autotools/ReadCommandLineArguments.m4: Switch the default Wayland target status to 'auto', meaning
it will be disabled if the GTK+ dependency is not found.
* Source/autotools/Versions.m4: Require GTK+ 3.9.14 for the Wayland target only.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156328 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] RepaintRequested signal sometimes not emitted
https://bugs.webkit.org/show_bug.cgi?id=121790

Reviewed by Simon Hausmann.

We should also emit repaintRequested after calling PageClient::update().

* WidgetSupport/PageClientQt.cpp:
(WebCore::PageClientQWidget::repaintViewport):
(WebCore::PageClientQGraphicsWidget::repaintViewport):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Crash when trying to download blob url
https://bugs.webkit.org/show_bug.cgi?id=121681

Reviewed by Simon Hausmann.

Source/WebCore:

Resolve any blob URLs before creating a QUrl.

* platform/network/qt/ResourceRequestQt.cpp:
(WebCore::appendBlobResolved):
(WebCore::resolveBlobUrl):
(WebCore::ResourceRequest::toNetworkRequest):

Source/WebKit/qt:

Do not crash if a download was triggered on a resource WebCore handles internally.

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

LayoutTests:

Unskip two tests that downloads blob URLs. Note the two tests do not use the download attribute feature.

* platform/qt/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] fast/images/exif-orientation-composited.html is failing
https://bugs.webkit.org/show_bug.cgi?id=119731

Patch by Anton Obzhirov <a.obzhirov@samsung.com> on 2013-09-24
Reviewed by Carlos Garcia Campos.

Tools:

Add handling respect image orientation property in DRT.

* DumpRenderTree/gtk/TestRunnerGtk.cpp:
(TestRunner::overridePreference):

LayoutTests:

Unskip fast/images/exif-orientation-composited.html for GTK WK1 and WK2.

* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156331 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[ATK] Missing WTR AccessibilityController::addNotificationListener implementation
https://bugs.webkit.org/show_bug.cgi?id=121674

Patch by Denis Nomiyama <d.nomiyama@samsung.com> on 2013-09-24
Reviewed by Mario Sanchez Prada.

Tools:

Implemented the global notification listener for
AccessibilityController. The signal is generated by
AXObjectCache::postPlatformNotification() and received by
axObjectEventListener(). axObjectEventListener will then invoke
JSObjectCallAsFunction() with the respective callback function.

There is no additional test for this patch since its implementation will
be tested by an accessibility layout test that is currently failing
(accessibility/loading-iframe-sends-notification.html).

* WebKitTestRunner/InjectedBundle/AccessibilityController.cpp: Removed
stub implementations of addNotificationListener and
removeNotificationListener for the GTK port.
* WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
(WTR::AccessibilityController::addNotificationListener): Creates the
notification handler and sets the notification function callback.
(WTR::AccessibilityController::removeNotificationListener): Removes the
global handler.

LayoutTests:

Updated the expectation of loading-iframe-sends-notification.html test,
which was failing before this fix.

* platform/gtk-wk2/TestExpectations: Removed
loading-iframe-sends-notification.html because it now passes with this
fix.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156332 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Build failed at ProcessLauncherEfl.cpp
https://bugs.webkit.org/show_bug.cgi?id=121826

Reviewed by Gyuyoung Kim.

Fixed a build failure with adding socket.h.

* UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Cache continuation() in a local to avoid repeat hash lookups.
<https://webkit.org/b/121840>

Reviewed by Geoffrey Garen.

RenderBoxModelObject::continuation() does a hash lookup every time.
Cache the result in a local instead of calling it repeatedly.

* rendering/RenderBlock.h:
(WebCore::RenderBlock::isAnonymousBlockContinuation):

    Reorder to check bitfield before hash map.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateDragState):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::absoluteRects):
(WebCore::RenderInline::absoluteQuads):
(WebCore::RenderInline::clippedOverflowRectForRepaint):
(WebCore::RenderInline::updateDragState):
(WebCore::RenderInline::addFocusRingRects):

    Cache continuation() in locals where it's used more than once.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156334 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=121839

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-09-24
Reviewed by Brent Fulgham.

* platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate): Added missing guard.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Initialize settings mediaPlayback{AllowsInline, RequiresUserGesture} and
shouldRespectImageOrientation as appropriate
https://bugs.webkit.org/show_bug.cgi?id=121792

Reviewed by Darin Adler.

On iOS we explicitly want to disable mediaPlaybackAllowsInline, and enable
mediaPlaybackRequiresUserGesture and shouldRespectImageOrientation by default.
This differs from other platforms. We need to extract the initialization logic
for these settings into constants whose definition is conditioned on the platform.

* page/Settings.cpp:
* page/Settings.in:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make hoverAncestor() a RenderElement concept.
<https://webkit.org/b/121845>

Reviewed by Antti Koivisto.

The hover ancestor renderer is always a RenderElement, we only ever
ask RenderElements for their hover ancestors.

Updated Document::updateHoverActiveState() to take advantage of the
tighter typing, removing a few isElementNode() checks.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AX: Replace AXObjectCache postNotification method boolean arguments with enum values.
https://bugs.webkit.org/show_bug.cgi?id=121504

Patch by Samuel White <samuel_white@apple.com> on 2013-09-24
Reviewed by Chris Fleizach.

No new tests, no functional changes. Changed argument type from bool
to enum per "Names" rule #10 in the WebKit coding style guidelines.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::textChanged):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::checkedStateChanged):
(WebCore::AXObjectCache::selectedChildrenChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::postNotification):
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::didUpdateActiveOption):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::childrenChanged):
(WebCore::AccessibilityNodeObject::changeValueByStep):
(WebCore::AccessibilityNodeObject::changeValueByPercent):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
(WebCore::AccessibilityRenderObject::textChanged):
* dom/Document.cpp:
(WebCore::Document::implicitClose):
* editing/Editor.cpp:
(WebCore::Editor::respondToChangedContents):
(WebCore::Editor::markAndReplaceFor):
* editing/mac/FrameSelectionMac.mm:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
* html/InputType.cpp:
(WebCore::InputType::applyStep):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
* page/FocusController.cpp:
(WebCore::FocusController::setInitialFocus):
* page/FrameView.cpp:
(WebCore::FrameView::layout):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156339 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Breakpoint Actions input should disable spellchecking
https://bugs.webkit.org/show_bug.cgi?id=121846

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-09-24
Reviewed by Timothy Hatcher.

* UserInterface/BreakpointActionView.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Begin adopting std::tuple for IPC decoding
https://bugs.webkit.org/show_bug.cgi?id=121848

Reviewed by Sam Weinig.

This is the first step towards getting rid of the horrible Arguments class hierarchy.

* Platform/CoreIPC/Arguments.h:
(CoreIPC::TupleCoder::encode):
(CoreIPC::TupleCoder::decode):
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::callMemberFunction):
(CoreIPC::handleMessage):
(CoreIPC::handleMessageVariadic):
(CoreIPC::handleMessageDelayed):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156341 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed crash fix after r156321.

Fix a few mistakes in the use of Vectors and counting that introduced test crashes.

* WebHistory.cpp:
(WebHistory::removeAllItems): Loop termination tried to test an unsigned for negative size.
(WebHistory::removeItemFromDateCaches): Vector was being created with empty entries.
(WebHistory::addItemToDateCaches): Ditto.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Fix compilation problems when setting ENABLE_DRAG_SUPPORT = FALSE
https://bugs.webkit.org/show_bug.cgi?id=121782

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2013-09-24
Reviewed by Martin Robinson.

Disabled drag functions.

Source/WebCore:

* page/gtk/EventHandlerGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:

Source/WebKit/gtk:

* WebCoreSupport/DragClientGtk.cpp:
* WebCoreSupport/DragClientGtk.h:

Source/WebKit2:

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkit_web_view_base_class_init):
* WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156345 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Properly handle bottom margin on float with shape-outside
https://bugs.webkit.org/show_bug.cgi?id=121808

Reviewed by David Hyatt.

Source/WebCore:

When a float has a shape-outside, inline content must conform to the
shape, not to the margin box. Thus, if a float with shape-outside has
a bottom margin and the shape does not intrude into that margin, then
the inline content should ignore the margin. Before this patch, inline
content would drop below the margin box instead of obeying the shape.

Note that content that should clear the float still clears the margin
box, not the shape's contour.

Tests: csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-002.html
       csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-003.html
       csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-004.html

* rendering/LineWidth.cpp:
(WebCore::LineWidth::fitBelowFloats): Compute the logical bottom based
on the shape.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nextFloatLogicalBottomBelow): Add option to
compute the logical bottom based on the shape instead of on the margin
box.
* rendering/RenderBlock.h:

LayoutTests:

Import new tests for floats wish shape-outside and bottom margins.

* csswg/contributors/adobe/submitted/shapes/shape-outside/resources/w3c-import.log:
* csswg/contributors/adobe/submitted/shapes/shape-outside/resources/rounded-rectangle.js: Remove whitespace at ends of lines.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-002.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-003-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-003.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/w3c-import.log:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Upstream -webkit-touch-callout
https://bugs.webkit.org/show_bug.cgi?id=121507

Reviewed by Antti Koivisto.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in: Added -webkit-touch-callout.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::willRespondToMouseClickEvents): Added.
* html/HTMLImageElement.h:
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:

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