[WK2] Another build fix for NetworkProcess on iOS
https://bugs.webkit.org/show_bug.cgi?id=124797

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-11-22
Reviewed by Alexey Proskuryakov.

* NetworkProcess/NetworkResourceLoader.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159719 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Clean up ColorSpace handling in Windows code
https://bugs.webkit.org/show_bug.cgi?id=124795

Reviewed by Tim Horton.

Functionality covered by existing fast/css/color test suite.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::safeRGBColorSpaceRef): Handle case of Windows CG implementation not
handling sRGB correctly.
(WebCore::sRGBColorSpaceRef): Use new helper function.
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs): Pass correct color space to fill functions.
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::platformInit): Initialize color space to value passed
via the style to the constructor.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159720 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CodeBlock::m_numCalleeRegisters shouldn't also mean frame size, frame size needed for exit, or any other unrelated things
https://bugs.webkit.org/show_bug.cgi?id=124793

Reviewed by Mark Hahnenberg.
        
Now m_numCalleeRegisters always refers to the number of locals that the attached
bytecode uses. It never means anything else.
        
For frame size, we now have it lazily computed from m_numCalleeRegisters for the
baseline engines and we have it stored in DFG::CommonData for the optimizing JITs.
        
For frame-size-needed-at-exit, we store that in DFG::CommonData, too.
        
The code no longer implies that there is any arithmetic relationship between
m_numCalleeRegisters and frameSize. Previously it implied that the latter is greater
than the former.
        
The code no longer implies that there is any arithmetic relationship between the
frame Size and the frame-size-needed-at-exit. Previously it implied that the latter
is greater that the former.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::frameRegisterCount):
* bytecode/CodeBlock.h:
* dfg/DFGCommonData.h:
(JSC::DFG::CommonData::CommonData):
(JSC::DFG::CommonData::requiredRegisterCountForExecutionAndExit):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::frameRegisterCount):
(JSC::DFG::Graph::requiredRegisterCountForExit):
(JSC::DFG::Graph::requiredRegisterCountForExecutionAndExit):
* dfg/DFGGraph.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compileFunction):
* dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
(JSC::DFG::VirtualRegisterAllocationPhase::run):
* ftl/FTLLink.cpp:
(JSC::FTL::link):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
* ftl/FTLOSREntry.cpp:
(JSC::FTL::prepareOSREntry):
* interpreter/CallFrame.cpp:
(JSC::CallFrame::frameExtentInternal):
* interpreter/JSStackInlines.h:
(JSC::JSStack::pushFrame):
* jit/JIT.h:
(JSC::JIT::frameRegisterCountFor):
* jit/JITOperations.cpp:
* llint/LLIntEntrypoint.cpp:
(JSC::LLInt::frameRegisterCountFor):
* llint/LLIntEntrypoint.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159721 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] Can't drag full-screen video to another monitor
https://bugs.webkit.org/show_bug.cgi?id=124798

Reviewed by Geoffrey Garen.

Source/WebCore:

Make full screen windows movable by default. Previously, we wanted non-movable full screen
windows since they were in the same space and were just placed atop non-full screen windows.
Now that all our supported Mac platforms have explicit full screen support, we can remove this
non-movable restriction.

* platform/mac/WebCoreFullScreenWindow.mm:
(-[WebCoreFullScreenWindow initWithContentRect:styleMask:backing:defer:]):

Source/WebKit2:

Make full screen windows resizable by default. This allows the window to be resized when
moved between monitors with different resolutions.

* UIProcess/API/mac/WKView.mm:
(-[WKView createFullScreenWindow]):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159722 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSC Obj-C API should have real documentation
https://bugs.webkit.org/show_bug.cgi?id=124805

Reviewed by Geoffrey Garen.

Massaging the header comments into proper headerdocs.

* API/JSContext.h:
* API/JSExport.h:
* API/JSManagedValue.h:
* API/JSValue.h:
* API/JSVirtualMachine.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Upstream iOS WebKit2 to OpenSource (part 3).
https://bugs.webkit.org/show_bug.cgi?id=124803

Reviewed by Anders Carlsson and Tim Horton.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159724 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Attempt build fixes for 32-bit after 159724.

There's probably a better fix, but this will work for now.

* UIProcess/API/mac/WKView.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159725 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Layout Test editing/deleting/password-delete-performance.html is failing
https://bugs.webkit.org/show_bug.cgi?id=124781

Reviewed by Alexey Proskuryakov.

PerformanceTests:

Add a new performance test to replace editing/deleting/password-delete-performance.html.
We skip this test by default since it's a micro benchmark.

* Interactive/DeletingInPasswordField.html: Added.
* Skipped:

LayoutTests:

Removed the test that has been timing out.

* TestExpectations:
* editing/deleting/password-delete-performance.html: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Build break after r159724
https://bugs.webkit.org/show_bug.cgi?id=124806

Reviewed by Tim Horton.

* Platform/CoreIPC/Connection.h: Include atomic header.
* UIProcess/CoordinatedGraphics/WebView.cpp: Rename didChangeContentsSize to didChangeContentSize.
(WebKit::WebView::didChangeContentSize):
* UIProcess/CoordinatedGraphics/WebView.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h: Adjust TARGET_OS_IPHONE macro.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159727 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add DatabaseProcessCreationParameters, starting with the database path.
https://bugs.webkit.org/show_bug.cgi?id=124804

Reviewed by Dean Jackson and Benjamin Poulain.

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::initializeDatabaseProcess):
* DatabaseProcess/DatabaseProcess.h:
(WebKit::DatabaseProcess::indexedDatabaseDirectory):
* DatabaseProcess/DatabaseProcess.messages.in:

* Shared/Databases/DatabaseProcessCreationParameters.cpp: Added.
(WebKit::DatabaseProcessCreationParameters::DatabaseProcessCreationParameters):
(WebKit::DatabaseProcessCreationParameters::encode):
(WebKit::DatabaseProcessCreationParameters::decode):
* Shared/Databases/DatabaseProcessCreationParameters.h: Added.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureDatabaseProcess):

* WebKit2.xcodeproj/project.pbxproj:
* Scripts/webkit2/messages.py:
(struct_or_class):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaseline empty-clear-blocks.html after r159575

Unreviewed, rebaselining.

* platform/gtk/fast/block/margin-collapse/empty-clear-blocks-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159729 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GStreamer] Remove 0.10 codepath
https://bugs.webkit.org/show_bug.cgi?id=124534

Reviewed by Philippe Normand.

.:

* Source/cmake/OptionsEfl.cmake: Removed GST_API_VERSION_1
definition.

Source/WebCore:

All GStreamer ports are using 1.0 now so we remove the 0.10
codepath.

* GNUmakefile.list.am:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters: Removed
GStreamerVersioning.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(onGStreamerWavparsePadAddedCallback): Removed.
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
Replaced webkitGstPipelineGetBus and removed 0.10 codepath.
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
Replaced webkitGstPipelineGetBus.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::copyGstreamerBuffersToAudioChannel):
(WebCore::onAppsinkPullRequiredCallback): Removed 0.10 codepath.
(WebCore::AudioFileReader::~AudioFileReader): Replaced
webkitGstPipelineGetBus and removed 0.10 codepath.
(WebCore::AudioFileReader::handleSample): Left as only codepath.
(WebCore::AudioFileReader::handleBuffer): Removed.
(WebCore::AudioFileReader::handleNewDeinterleavePad): Removed 0.10
codepath.
(WebCore::AudioFileReader::plugDeinterleave): Replaced
getGstAudioCaps.
(WebCore::AudioFileReader::decodeAudioForBusCreation): Replaced
webkitGstPipelineGetBus.
(WebCore::AudioFileReader::createBus): Removed 0.10 codepath.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(getGStreamerMonoAudioCaps):
(webKitWebAudioGStreamerChannelPosition): Removed 0.10 codepath.
(webkit_web_audio_src_class_init): Replaced
setGstElementClassMetadata.
(webkit_web_audio_src_init):
(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcFinalize):
(webKitWebAudioSrcLoop): Removed 0.10 codepath.
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::GstElement):
(WTF::GstPad):
(WTF::GstPadTemplate):
(WTF::GstTask):
(WTF::GstBus):
(WTF::GstElementFactory):
(WTF::adoptGRef): Replaced gstObjectIsFloating.
(WTF::refGRef): Replaced webkitGstObjectRefSink.
(WTF::GstTagList):
(WTF::GstSample): Removed checks for 1.0 as it is the only
codepath now.
* platform/graphics/gstreamer/GRefPtrGStreamer.h: Removed checks
for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::webkitGstGhostPadFromStaticTemplate):
(WebCore::getVideoSizeAndFormatFromCaps):
(WebCore::createGstBuffer):
(WebCore::createGstBufferForData):
(WebCore::getGstBufferDataPointer):
(WebCore::mapGstBuffer):
(WebCore::unmapGstBuffer): Moved here from GstVersioning and added
to WebCore namespace.
* platform/graphics/gstreamer/GStreamerUtilities.h:
(WebCore::webkitGstCheckVersion): Moved here from GstVersioning
and added to WebCore namespace.
* platform/graphics/gstreamer/GStreamerVersioning.cpp: Removed.
* platform/graphics/gstreamer/GStreamerVersioning.h: Removed.
* platform/graphics/gstreamer/ImageGStreamer.h: Removed checks for
1.0 as it is the only codepath now.
* platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
(ImageGStreamer::ImageGStreamer): Removed 0.10 codepath.
(ImageGStreamer::~ImageGStreamer): Removed checks for 1.0 as it is
the only codepath now.
* platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::setAudioStreamPropertiesCallback): Removed 0.10 codepath.
(WebCore::mediaPlayerPrivateTextChangedCallback): Removed checks
for 1.0 as it is the only codepath now.
(WebCore::MediaPlayerPrivateGStreamer::isAvailable): Replaced
gPlaybinName.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
Removed checks for 1.0 and replaced webkitGstPipelineGetBus.
(WebCore::MediaPlayerPrivateGStreamer::duration): Removed 0.10
codepath.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::textChanged):
Removed checks for 1.0 as it is the only codepath now.
(WebCore::MediaPlayerPrivateGStreamer::buffered): Replaced
gPercentMax.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Removed
0.10 codepath.
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContents):
Removed checks for 1.0 as it is the only codepath now.
(WebCore::MediaPlayerPrivateGStreamer::totalBytes): Removed 0.10
codepath.
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Replaced
gPlaybinName and webkitGstPipelineGetBus and removed checks for
1.0.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Removed 0.10
codepath.
* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
* platform/graphics/gstreamer/TextCombinerGStreamer.h:
* platform/graphics/gstreamer/TextSinkGStreamer.cpp:
* platform/graphics/gstreamer/TextSinkGStreamer.h:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Removed
checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRender): Removed 0.10 codepath and added WebCore
as createGstBuffer namespace.
(webkitVideoSinkSetCaps): Removed 0.10 codepath.
(webkitVideoSinkProposeAllocation): Removed checks for 1.0 as it
is the only codepath now.
(webkitVideoSinkMarshalVoidAndMiniObject): Removed as it was 0.10.
(webkit_video_sink_class_init): Removed 0.10 codepath and replaced
setGstElementClassMetadata.
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
(webkit_media_src_class_init): Replaced
setGstElementClassMetadata.
(webKitMediaSrcAddSrc): Added WebCore namespace to
webkitGstGhostPadFromStaticTemplate.
(MediaSourceClientGstreamer::didReceiveData): Added WebCore
namespace to createGstBufferForData.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
Removed 0.10 codepath.
(webKitWebSrcQuery): Removed as it was 0.10 only.
(void webkit_web_src_class_init): Replaced setGstElementClassMetadata.
(webkit_web_src_init): Removed haveAppSrc27 private attribute and
0.10 codepath.
(webKitWebSrcStop): Removed checks for 1.0 as it is the only
codepath now.
(webKitWebSrcSetProperty):
(webKitWebSrcUriGetType):
(webKitWebSrcGetProtocols):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri): Removed 0.10 codepath.
(StreamingClient::createReadBuffer): Removed checks for 1.0 and
replaced getGstBufferSize.
(StreamingClient::handleResponseReceived): Removed 0.10 codepath
and replaced notifyGstTagsOnPad.
(StreamingClient::handleDataReceived): Removed 0.10 codepath and
replaced setGstBufferSize and gst_buffer_get_size.

Source/WebKit:

* PlatformEfl.cmake: Removed FullscreenVideoControllerEfl.cpp.

Source/WebKit/efl:

* WebCoreSupport/FullscreenVideoControllerEfl.cpp: Removed.

Source/WTF:

* wtf/Platform.h: Removed macro for GStreamer 1.0 as it is the
only codepath now.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159730 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove lint from expected result.

Unreviewed.

* platform/gtk/fast/block/margin-collapse/empty-clear-blocks-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159731 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r156291): TileController tiles don't always repaint when they resize
https://bugs.webkit.org/show_bug.cgi?id=124796

Reviewed by Simon Fraser.

In removing platformCALayerDidCreateTiles, r156291 also removed
the call to setNeedsDisplay when tiles are resized, without
putting it somewhere else.

* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::setNeedsDisplay):
Use hasStaleContent when invalidating a whole tile, just
like we do for partial tile repaints.

(WebCore::TileController::setTileNeedsDisplayInRect):
Mark hasStaleContent for any unparented layers, so they'll be painted
when they are reparented.

(WebCore::TileController::ensureTilesForRect):
Invalidate the whole tile when it changes size.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159732 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Generate toHTMLMarquee|OListElement() to cleanup static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=124707

Reviewed by Darin Adler.

As a step to use toFoo(), we need to generate toHTMLMarquee|OListElement().
Besides this patch cleans up remaining static_cast<> usage.

No new tests, no behavior changes.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::initElement):
(WebCore::StyleResolver::locateCousinList):
(WebCore::StyleResolver::findSiblingForStyleSharing):
* dom/Attr.cpp:
(WebCore::Attr::style):
* dom/Element.cpp:
(WebCore::Element::removeAttribute):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::wrappingStyleForSerialization):
* editing/Editor.cpp:
(WebCore::Editor::applyEditingStyleToElement):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
* html/HTMLMarqueeElement.h:
* html/HTMLOListElement.h:
* html/HTMLTagNames.in:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
* rendering/RenderCounter.cpp:
(WebCore::planCounter):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::marqueeSpeed):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159733 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2][GTK] Adding SpatialNavigation setting to webkit2
https://bugs.webkit.org/show_bug.cgi?id=114298

Patch by Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>, Arunprasad Rajkumar <arurajku@cisco.com> on 2013-11-24
Reviewed by Anders Carlsson.

Adding SpatialNavigation support to WebPreferencesStore allows us
to toggle that feature on WebKitSettings.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSpatialNavigationEnabled):
(WKPreferencesGetSpatialNavigationEnabled):
* UIProcess/API/C/WKPreferences.h:
* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_set_enable_spatial_navigation):
(webkit_settings_get_enable_spatial_navigation):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159734 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Upstream USE(IOSURFACE) from the iOS port
https://bugs.webkit.org/show_bug.cgi?id=124814

Reviewed by Sam Weinig.

Some code guarded by USE(IOSURFACE) was recently upstreamed,
but not the definition of WTF_USE_IOSURFACE itself.

* wtf/Platform.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix more fallout from failed attempts at div/mod DFG strength reductions
https://bugs.webkit.org/show_bug.cgi?id=124813

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithMod):

LayoutTests: 

* js/dfg-mod-1-int.html: Added.
* js/dfg-mod-1-int-expected.txt: Added.
* js/script-tests/dfg-mod-1-int.js: Added.
(foo):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DatabaseProcess: Add "UniqueIDBDatabase" that multiple WebProcesses can connect to
https://bugs.webkit.org/show_bug.cgi?id=124819

Reviewed by Dan Bernstein.

Source/WebCore:

* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::~IDBDatabaseBackend): Unregister from the IDBFactory.

Source/WebKit2:

UniqueIDBDatabase instances are per-DatabaseProcess, so it manages the set of them.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getOrCreateUniqueIDBDatabase):
(WebKit::DatabaseProcess::removeUniqueIDBDatabase):
* DatabaseProcess/DatabaseProcess.h:

* DatabaseProcess/DatabaseToWebProcessConnection.h:

Start forwarding things along to the appropriate UniqueIDBDatabase.
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::~DatabaseProcessIDBConnection):
(WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess):
(WebKit::DatabaseProcessIDBConnection::establishConnection):
(WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata):
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:

A class that represents a single concrete IDB database that multiple WebProcesses can connect to.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::UniqueIDBDatabase):
(WebKit::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebKit::UniqueIDBDatabase::registerConnection):
(WebKit::UniqueIDBDatabase::unregisterConnection):
(WebKit::UniqueIDBDatabase::getIDBDatabaseMetadata):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
(WebKit::UniqueIDBDatabase::create):
(WebKit::UniqueIDBDatabase::identifier):

A class to help uniquely identify an IDBDatabase that can be expanded as needed.
Importantly, it knows how to be used as a key in a HashMap.
* DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.cpp: Added.
(WebKit::UniqueIDBDatabaseIdentifier::UniqueIDBDatabaseIdentifier):
(WebKit::UniqueIDBDatabaseIdentifier::isHashTableDeletedValue):
(WebKit::UniqueIDBDatabaseIdentifier::hash):
(WebKit::UniqueIDBDatabaseIdentifier::isNull):
(WebKit::operator==):
* DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.h: Added.
(WebKit::UniqueIDBDatabaseIdentifier::databaseName):
(WebKit::UniqueIDBDatabaseIdentifier::openingOrigin):
(WebKit::UniqueIDBDatabaseIdentifier::mainFrameOrigin):
(WebKit::UniqueIDBDatabaseIdentifierHash::hash):
(WebKit::UniqueIDBDatabaseIdentifierHash::equal):
(WebKit::UniqueIDBDatabaseIdentifierHashTraits::isEmptyValue):

* Shared/SecurityOriginData.cpp:
(WebKit::operator==):
* Shared/SecurityOriginData.h:

* UIProcess/WebContext.cpp:

* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::open):
(WebKit::WebIDBFactoryBackend::removeIDBDatabaseBackend):

* WebKit2.xcodeproj/project.pbxproj:

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

* platform/efl/css1/formatting_model/vertical_formatting-expected.txt:
* platform/efl/css2.1/t080301-c411-vt-mrgn-00-b-expected.txt:
* platform/efl/css2.1/t0905-c414-flt-wrap-00-e-expected.txt:

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