REGRESSION(r150305): WebKit2 build broken with INDEXED_DATABASE enabled
https://bugs.webkit.org/show_bug.cgi?id=116389

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2013-05-18
Reviewed by Martin Robinson.

There's no longer WebKeyValueStorageManager in the web process
after r150305.

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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix some builds.

* UIProcess/API/mac/WKTypeRefWrapper.mm:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150345 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Simplify the StorageArea setter functions
https://bugs.webkit.org/show_bug.cgi?id=116402

Reviewed by Sam Weinig.

Source/WebCore:

Move more security checking code to Storage so more code can be shared between WebKit1 and WebKit2.

* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
* storage/Storage.cpp:
(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):
* storage/StorageArea.h:
(StorageArea):
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::setItem):
(WebCore::StorageAreaImpl::removeItem):
(WebCore::StorageAreaImpl::clear):
* storage/StorageAreaImpl.h:
(StorageAreaImpl):

Source/WebKit2:

Remove security checking code that lives in Storage now.

* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):
* WebProcess/Storage/StorageAreaImpl.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
svg/batik tests are flakey.
webkit.org/b/116398

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150347 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refactor RenderStyle::diff()
https://bugs.webkit.org/show_bug.cgi?id=116397

Reviewed by Andreas Kling.

RenderStyle::diff() was prone to being changed incorrectly, since there was
a poorly documented ordering requirement: style changes that cause layout
have to be detected before those that cause only repainting.

In addition, the existing code made it impossible to separately ask whether
a given style change requires a repaint, if we've already detected that it
requires a positioned-movement-only layout.

Fix by factoring the code into member functions that check for each type
of style change.

No behavior change.

* rendering/style/RenderStyle.cpp:
(WebCore::positionChangeIsMovementOnly):
(WebCore::RenderStyle::changeRequiresLayout):
(WebCore::RenderStyle::changeRequiresPositionedLayoutOnly):
(WebCore::RenderStyle::changeRequiresLayerRepaint):
(WebCore::RenderStyle::changeRequiresRepaint):
(WebCore::RenderStyle::changeRequiresRepaintIfText):
(WebCore::RenderStyle::changeRequiresRecompositeLayer):
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Hoist several chunks of code at the top of RenderLayer::paintLayerContents() onto new functions
https://bugs.webkit.org/show_bug.cgi?id=116406

Reviewed by Andreas Kling.

RenderLayer::paintLayerContents() was getting polluted with code related to filters,
clipping and font subpixel quantization, and hard to follow.

Move three hunks of code into new functions:
setupFontSubpixelQuantization() now contains the code related to whether we disable
font subpixel quantization on the context.
setupClipPath() now contains code related to clipping to shapes and references.
setupFilters() and applyFilters() contain code related to CSS filters.

As part of this, the interaction with FilterEffectRendererHelper was simplified.
It was convenient for setupFilters() to return a FilterEffectRendererHelper object
if successful, so we use an OwnPtr<FilterEffectRendererHelper> now. In addition,
the GraphicsContext swapping was moved from FilterEffectRendererHelper code into RenderLayer
to make it easier to follow. FilterEffectRendererHelper no longer holds on to
the old GraphicsContext.

No behavior change.

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::filterContext):
(WebCore::FilterEffectRendererHelper::beginFilterEffect):
(WebCore::FilterEffectRendererHelper::applyFilterEffect):
* rendering/FilterEffectRenderer.h:
(WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper):
(WebCore::FilterEffectRendererHelper::hasStartedFilterEffect):
(FilterEffectRendererHelper):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupFontSubpixelQuantization):
(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
* rendering/RenderLayer.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Eliminate the Editor::newGeneralClipboard function
https://bugs.webkit.org/show_bug.cgi?id=116410

Reviewed by Andreas Kling.

This is one of the clean-ups made possible by the changes to the DOM clipboard class.
I had been waiting until all the platforms were moved over to it, but it turns out to be
easy to do this now, just with #ifdefs.

* PlatformBlackBerry.cmake: Deleted EditorBlackBerry.cpp.

* editing/Editor.cpp:
(WebCore::Editor::dispatchCPPEvent): Call Clipboard::createForCopyAndPaste directly when
using the new version of the Clipboard class. Also some small style cleanup nearby.

* editing/blackberry/EditorBlackBerry.cpp: Removed. The only function in this file was
newGeneralClipboard.

* editing/mac/EditorMac.mm: Deleted newGeneralClipboard.
* platform/efl/ClipboardEfl.cpp: Ditto.
* platform/gtk/ClipboardGtk.cpp: Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, addressing test-webkitpy failures after r150317.

* Scripts/webkitpy/w3c/test_converter.py:
(W3CTestConverter.read_webkit_prefixed_css_property_list): CssPropertyNames.in doesn't exist, but CSSPropertyNames.in does.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove ChromeClient::webView()
https://bugs.webkit.org/show_bug.cgi?id=116054

Source/WebCore:

Reviewed by Darin Adler.

This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
client or not. We already have a (slightly less horrible) way to do that.

* loader/EmptyClients.h:
* page/ChromeClient.h:
(ChromeClient):

Source/WebKit/blackberry:

Reviewed by Andreas Kling.

This blatantly horrible layer violation was only used by the Chromium port; get rid of it.

* WebCoreSupport/ChromeClientBlackBerry.h:
(ChromeClientBlackBerry):

Source/WebKit/efl:

Reviewed by Darin Adler.

This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
client or not. We already have a (slightly less horrible) way to do that.

* WebCoreSupport/ChromeClientEfl.h:
(ChromeClientEfl):

Source/WebKit/gtk:

Reviewed by Darin Adler.

This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
client or not. We already have a (slightly less horrible) way to do that.

* WebCoreSupport/ChromeClientGtk.h:
(ChromeClient):

Source/WebKit/mac:

Reviewed by Darin Adler.

This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
client or not. We already have a (slightly less horrible) way to do that.

* WebCoreSupport/WebChromeClient.h:
(WebChromeClient):

Source/WebKit/qt:

Reviewed by Darin Adler.

This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
client or not. We already have a (slightly less horrible) way to do that.

* WebCoreSupport/ChromeClientQt.h:
(ChromeClientQt):

Source/WebKit/win:

Reviewed by Darin Adler.

This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
client or not. We already have a (slightly less horrible) way to do that.

* WebCoreSupport/WebChromeClient.h:
(WebChromeClient):

Source/WebKit/wince:

Reviewed by Darin Adler.

This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
client or not. We already have a (slightly less horrible) way to do that.

* WebCoreSupport/ChromeClientWinCE.h:
(ChromeClientWinCE):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use Element instead of Node in DragState, also redo DragState struct
https://bugs.webkit.org/show_bug.cgi?id=116411

Reviewed by Sam Weinig.

The drag source is an element, so use RefPtr<Element> instead of RefPtr<Node>.

Also, the entire drag state is about dragging, so no need for the word "drag" in the
name of its members. Also, it's a struct, so the members don't need m_ prefixes.

* page/DragController.cpp: Removed unneeded include of Node.h since it's included by
Element.h, which is also included.
(WebCore::DragController::draggableElement): Renamed from Node to Element and changed
the types and names of arguments accordingly. Also made this function handle a
startElement of 0 so callers don't need to. Also updated for changes to DragState members.
(WebCore::DragController::startDrag): Updated for changes to DragState members.
Since dragSource can only be an element, was able to get rid of isElementNode checks.

* page/DragController.h: Fixed style of forward declarations of structs. Updated for
change of draggableNode to draggableElement. Also removed declarations of nonexistent
selectionDraggingRect and doDrag functions.

* page/DragState.h: Rewrote practically this whole header. Added an include of Element
instead of Node since that's what we use now. Removed includes that are redundant.
There's no problem copying a DragState, so removed WTF_MAKE_NONCOPYABLE. There's no need
to allocate a DragState on the heap, so removed WTF_MAKE_FAST_ALLOCATED. The event dispatch
boolean is never set to a constant, so there's no need for a policy enum; it can just be
a boolean. Removed the "m_" prefixes from the struct members, since this is a struct with
public members and we don't use the prefix in those cases. Removed the word "drag" from the
struct member names since this entire struct is about dragging and has drag in its name.
Left the comments mostly intact, even though I'm not certain of their value.

* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent): Updated for changes to DragState.
(WebCore::EventHandler::eventMayStartDrag):
Use innerElement instead of innerNode to call draggableElement instead of draggableNode.
(WebCore::EventHandler::updateDragAndDrop): Updated for changes to DragState.
(WebCore::EventHandler::cancelDragAndDrop): Ditto.
(WebCore::EventHandler::handleWheelEvent): Added FIXME.
(WebCore::EventHandler::dragHysteresisExceeded): Updated for changes to DragState.
(WebCore::EventHandler::freeClipboard): Updated for changes to DragState. Also re-added
code to release the clipboard object, which is needed here to avoid keeping it around in
memory until the next drag.
(WebCore::EventHandler::dragSourceEndedAt): Updated for changes to DragState.
(WebCore::EventHandler::updateDragStateAfterEditDragIfNeeded): Ditto.
(WebCore::EventHandler::dispatchDragSrcEvent): Ditto.
(WebCore::EventHandler::handleDrag): Updated for changes to DragState. Use innerElement
instead of innerNode to call draggableElement instead of draggableNode. No longer need to
null check innerElement because draggableElement does that. Removed unneeded else that was
setting m_dragSrc to zero since it's guaranteed to already be zero.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change the terminology used by rendering code when painting a given node and its children from "paintingRoot" to "subtreePaintRoot"
https://bugs.webkit.org/show_bug.cgi?id=116417

Reviewed by Sam Weinig.

PaintInfo and RenderLayer code referred to a "paintingRoot". This is only set when
FrameView::setNodeToDraw() has been called and is used to restrict painting to
some part of the subtree, but it could easily be misinterpreted, and confused with
the "rootLayer" used by RenderLayer (which is usually not the layer associated with
the paintingRoot).

Change the terminology from "paintingRoot" to "subtreePaintRoot" root to make the
purpose of this variable more obvious.

No behavior change.

* page/FrameView.cpp: Add a comment for setNodeToDraw(); in future this should
be called setSubtreePaintRoot() or something. Not done in this patch to avoid
risk; this function is exported from WebCore.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint):
* rendering/PaintInfo.h:
(WebCore::PaintInfo::PaintInfo):
(WebCore::PaintInfo::updateSubtreePaintRootForChildren):
(WebCore::PaintInfo::shouldPaintWithinRoot):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintContents):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paint):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::paintOverlayScrollbars):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
* rendering/RenderObject.cpp: Add a comment to recommend changing the name of
paintingRootRect() to refer to a subtree paint. Not done in this patch to avoid
risk; this function is exported from WebCore.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paint):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintObject):
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove link prerendering code
https://bugs.webkit.org/show_bug.cgi?id=116415

Reviewed by Darin Adler.

.:

This code was only used by Chromium and is dead now.

* Source/autotools/SetupWebKitFeatures.m4:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

This code was only used by Chromium and is dead now.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore):
(Document):
* dom/EventNames.h:
(WebCore):
* html/HTMLLinkElement.cpp:
* html/HTMLLinkElement.h:
* html/LinkRelAttribute.cpp:
(WebCore::LinkRelAttribute::LinkRelAttribute):
* html/LinkRelAttribute.h:
(LinkRelAttribute):
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::~LinkLoader):
(WebCore::LinkLoader::loadLink):
(WebCore::LinkLoader::released):
* loader/LinkLoader.h:
(WebCore):
(LinkLoader):
* loader/LinkLoaderClient.h:
(LinkLoaderClient):
* loader/Prerenderer.cpp: Removed.
* loader/Prerenderer.h: Removed.
* loader/PrerendererClient.cpp: Removed.
* loader/PrerendererClient.h: Removed.
* platform/PrerenderClient.h: Removed.
* platform/PrerenderHandle.h: Removed.

Source/WebKit/blackberry:

This code was only used by Chromium and is dead now.

* WebCoreSupport/AboutDataEnableFeatures.in:

Source/WebKit/mac:

This code was only used by Chromium and is dead now.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

This code was only used by Chromium and is dead now.

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

This code was only used by Chromium and is dead now.

* wtf/FeatureDefines.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Add command line option to MiniBrowser to set user agent
https://bugs.webkit.org/show_bug.cgi?id=116387

Patch by Jinwoo Song <jinwoo7.song@samsung.com> on 2013-05-19
Reviewed by Christophe Dumez.

We need this option to compare the rendering differences according to different user agents.

* MiniBrowser/efl/main.c:
(window_create):
(elm_main):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] Improve string use in PasteboardMac
https://bugs.webkit.org/show_bug.cgi?id=116418

Reviewed by Sam Weinig.

Did a Ben Poulain all over this file.

* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::plainText): Add the newline separately to the string builder.
Prepending it to the string first just does more allocations for no good reason.
(WebCore::Pasteboard::documentFragment): Use emptyString() instead of "" and use
ASCIILiteral where appropriate.
(WebCore::cocoaTypeFromHTMLClipboardType): More ASCIILiteral.
(WebCore::Pasteboard::clear): Use early return instead of a nested if here.
Use emptyString() instead of "".
(WebCore::addHTMLClipboardTypesForCocoaType): More ASCIILiteral.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] init/shutdown should be paired in EWebLauncher
https://bugs.webkit.org/show_bug.cgi?id=116427

Reviewed by Christophe Dumez.

Added ecore_file_shutdown() for cleanup of ecore_file.
Removed edje_init and ecore_evas_init because it was in ewk_init().

* EWebLauncher/main.c:
(main):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Do not use skia in FrameLoaderClientBlackBerry::dispatchDidReceiveIcon()
https://bugs.webkit.org/show_bug.cgi?id=116302

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2013-05-20
Reviewed by Rob Buis.

TiledImage is now the NativeImage of the BlackBerry port.

* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::dispatchDidReceiveIcon):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] LocalizedStringsBlackBerry: add dummy text track strings
https://bugs.webkit.org/show_bug.cgi?id=116300

Patch by Xan Lopez <xlopez@igalia.com> on 2013-05-20
Reviewed by Rob Buis.

These are dummy implementations necessary to make WebKit link.

* platform/blackberry/LocalizedStringsBlackBerry.cpp:
(WebCore::weekFormatInLDML):
(WebCore):
(WebCore::textTrackClosedCaptionsText):
(WebCore::textTrackSubtitlesText):
(WebCore::textTrackOffText):
(WebCore::textTrackNoLabelText):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed EFL gardening.

spelling-double-clicked-word.html passes after r150289.

* platform/efl-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed EFL gardening.

Adding failure expectations for spelling tests.

* platform/efl-wk2/TestExpectations:

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