WebKit-https.git
5 years ago[CSS Grid Layout] Fix grid-template-areas parsing to avoid spaces
rego@igalia.com [Fri, 12 Jun 2015 21:01:17 +0000 (21:01 +0000)]
[CSS Grid Layout] Fix grid-template-areas parsing to avoid spaces
https://bugs.webkit.org/show_bug.cgi?id=145860

Reviewed by Sergio Villar Senin.

Source/WebCore:

The spec doesn't require to have spaces between unnamed and named areas
in grid-template-areas syntax. But spaces are currently required in our
code.

This was confirmed in the CSS WG mailing list:
https://lists.w3.org/Archives/Public/www-style/2015May/0239.html

This patch updates grid-template-areas parsing to allow the possibility
of removing spaces between unnamed and named areas.

Added new cases to fast/css-grid-layout/grid-template-areas-get-set.html.

* css/CSSParser.cpp:
(WebCore::parseGridTemplateAreasColumnNames): New helper method to
determine the column names split by white spaces or dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
method to get the column names.
(WebCore::containsOnlyDots): Deleted. Not needed anymore as
parseGridTemplateAreasColumnNames() is using a single dot for unnamed
grid areas (despite of being defined with 1 or more dots).

LayoutTests:

* fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
* fast/css-grid-layout/grid-template-areas-get-set.html: Add new test
cases.

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

5 years ago[Mac] AirPlay menu button doesn't always show on page load
eric.carlson@apple.com [Fri, 12 Jun 2015 20:41:36 +0000 (20:41 +0000)]
[Mac] AirPlay menu button doesn't always show on page load
https://bugs.webkit.org/show_bug.cgi?id=145936

Reviewed by Brent Fulgham.

* Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::mediaProducerStateString): New, return a string representing MediaStateFlags.
(WebCore::WebMediaSessionManager::clientStateDidChange): Log the states as strings.
(WebCore::WebMediaSessionManager::toString): New, return a string representing ConfigurationTasks.
(WebCore::WebMediaSessionManager::scheduleDelayedTask): Add logging.
(WebCore::WebMediaSessionManager::taskTimerFired): Add logging.
* Modules/mediasession/WebMediaSessionManager.h:

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: Override wirelessVideoPlaybackDisabled
  so it is possible to activate route monitoring for a movie loaded with this engine.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h: Ditto.

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

5 years agoAdd the remaining missing override specifiers under Source/WebCore/
zandobersek@gmail.com [Fri, 12 Jun 2015 18:48:53 +0000 (18:48 +0000)]
Add the remaining missing override specifiers under Source/WebCore/
https://bugs.webkit.org/show_bug.cgi?id=145907

Reviewed by Darin Adler.

Fix the remaining compiler warnings about missing override specifiers
for overriding method declarations in classes under Source/WebCore/.

Where the addition had to be performed on all virtual methods of the
class, the virtual specifier was removed so now only the override
specifier is in use.

* Modules/indexeddb/IDBOpenDBRequest.h:
* Modules/indexeddb/IDBRequest.h:
* Modules/webdatabase/DatabaseServer.h:
* bindings/js/ReadableJSStream.h:
* editing/InsertTextCommand.h:
* mathml/MathMLInlineContainerElement.h:
* platform/audio/EqualPowerPanner.h:
(WebCore::EqualPowerPanner::reset):
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::load):
(WebCore::NullMediaPlayerPrivate::cancelLoad):
(WebCore::NullMediaPlayerPrivate::prepareToPlay):
(WebCore::NullMediaPlayerPrivate::play):
(WebCore::NullMediaPlayerPrivate::pause):
(WebCore::NullMediaPlayerPrivate::platformMedia):
(WebCore::NullMediaPlayerPrivate::platformLayer):
(WebCore::NullMediaPlayerPrivate::naturalSize):
(WebCore::NullMediaPlayerPrivate::hasVideo):
(WebCore::NullMediaPlayerPrivate::hasAudio):
(WebCore::NullMediaPlayerPrivate::setVisible):
(WebCore::NullMediaPlayerPrivate::durationDouble):
(WebCore::NullMediaPlayerPrivate::currentTimeDouble):
(WebCore::NullMediaPlayerPrivate::seekDouble):
(WebCore::NullMediaPlayerPrivate::seeking):
(WebCore::NullMediaPlayerPrivate::setRateDouble):
(WebCore::NullMediaPlayerPrivate::setPreservesPitch):
(WebCore::NullMediaPlayerPrivate::paused):
(WebCore::NullMediaPlayerPrivate::setVolumeDouble):
(WebCore::NullMediaPlayerPrivate::supportsMuting):
(WebCore::NullMediaPlayerPrivate::setMuted):
(WebCore::NullMediaPlayerPrivate::hasClosedCaptions):
(WebCore::NullMediaPlayerPrivate::setClosedCaptionsVisible):
(WebCore::NullMediaPlayerPrivate::networkState):
(WebCore::NullMediaPlayerPrivate::readyState):
(WebCore::NullMediaPlayerPrivate::maxTimeSeekableDouble):
(WebCore::NullMediaPlayerPrivate::minTimeSeekable):
(WebCore::NullMediaPlayerPrivate::buffered):
(WebCore::NullMediaPlayerPrivate::totalBytes):
(WebCore::NullMediaPlayerPrivate::didLoadingProgress):
(WebCore::NullMediaPlayerPrivate::setSize):
(WebCore::NullMediaPlayerPrivate::canLoadPoster):
(WebCore::NullMediaPlayerPrivate::setPoster):
(WebCore::NullMediaPlayerPrivate::hasSingleSecurityOrigin):
* platform/graphics/filters/DistantLightSource.h:
* platform/graphics/filters/FEComposite.h:
* platform/graphics/filters/FEDisplacementMap.h:
(WebCore::FEDisplacementMap::determineAbsolutePaintRect):
* platform/graphics/filters/FEFlood.h:
(WebCore::FEFlood::determineAbsolutePaintRect):
* platform/graphics/filters/PointLightSource.h:
* platform/graphics/filters/SpotLightSource.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerPrivateGStreamer::hasVideo):
(WebCore::MediaPlayerPrivateGStreamer::hasAudio):
(WebCore::MediaPlayerPrivateGStreamer::audioSourceProvider):
(WebCore::MediaPlayerPrivateGStreamer::engineDescription):
(WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
(WebCore::MediaPlayerPrivateGStreamer::totalVideoFrames):
(WebCore::MediaPlayerPrivateGStreamer::droppedVideoFrames):
(WebCore::MediaPlayerPrivateGStreamer::corruptedVideoFrames):
(WebCore::MediaPlayerPrivateGStreamer::totalFrameDelay):
* platform/graphics/texmap/BitmapTextureGL.h:
(WebCore::BitmapTextureGL::isBackedByOpenGL):
* platform/graphics/transforms/Matrix3DTransformOperation.h:
* platform/graphics/transforms/MatrixTransformOperation.h:
* platform/graphics/transforms/PerspectiveTransformOperation.h:
* platform/graphics/transforms/RotateTransformOperation.h:
* platform/graphics/transforms/ScaleTransformOperation.h:
* platform/graphics/transforms/SkewTransformOperation.h:
* platform/image-decoders/png/PNGImageDecoder.h:
(WebCore::PNGImageDecoder::filenameExtension):
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
* platform/mock/MockRealtimeMediaSourceCenter.h:

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

5 years agoUnreviewed, rolling out r185512.
commit-queue@webkit.org [Fri, 12 Jun 2015 18:43:01 +0000 (18:43 +0000)]
Unreviewed, rolling out r185512.
https://bugs.webkit.org/show_bug.cgi?id=145932

Many asserts on layout tests and on API tests (Requested by
ap_ on #webkit).

Reverted changeset:

"Use modern for-loops in WebCore/rendering - 1"
https://bugs.webkit.org/show_bug.cgi?id=145831
http://trac.webkit.org/changeset/185512

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

5 years agoOpenGLESSPI.h doesn't need to include UIKit.h
simon.fraser@apple.com [Fri, 12 Jun 2015 18:22:32 +0000 (18:22 +0000)]
OpenGLESSPI.h doesn't need to include UIKit.h
https://bugs.webkit.org/show_bug.cgi?id=145931

Reviewed by Darin Adler.

No need to suck in all of UIKit from OpenGLESSPI.h.

* platform/spi/ios/OpenGLESSPI.h:

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

5 years agoAdd barebones implementation of media session invocation algorithm.
commit-queue@webkit.org [Fri, 12 Jun 2015 17:53:35 +0000 (17:53 +0000)]
Add barebones implementation of media session invocation algorithm.
https://bugs.webkit.org/show_bug.cgi?id=145847

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-12
Reviewed by Darin Adler.

* Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::invoke): Move the media session to an active state.
* Modules/mediasession/MediaSession.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::playInternal): Call the media session invocation algorithm as described in the
  Media Session spec.

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

5 years agoNetwork Cache: Use SHA1 for header checksum
antti@apple.com [Fri, 12 Jun 2015 17:43:31 +0000 (17:43 +0000)]
Network Cache: Use SHA1 for header checksum
https://bugs.webkit.org/show_bug.cgi?id=145928

Reviewed by Chris Dumez.

Use SHA1 everywhere for consistency and robustness.

* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::bodyPathForKey):
(WebKit::NetworkCache::RecordMetaData::RecordMetaData):
(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):
(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::Storage::encodeRecord):
(WebKit::NetworkCache::hashData): Deleted.

    This was the last user of 32 bit hashes in cache code.

* NetworkProcess/cache/NetworkCacheStorage.h:

    Also bump the cache version number as recent changes have changed the format.
    Old caches would transition fine but this makes it easier to identify which version user has.

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

5 years agoUse modern for-loops in WebCore/rendering - 1
commit-queue@webkit.org [Fri, 12 Jun 2015 17:10:07 +0000 (17:10 +0000)]
Use modern for-loops in WebCore/rendering - 1
https://bugs.webkit.org/show_bug.cgi?id=145831

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-06-12
Reviewed by Darin Adler.

No new tests because there is no behavior change.

* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build):
(WebCore::FilterEffectRenderer::clearIntermediateResults):
* rendering/FilterEffectRenderer.h:
* rendering/FloatingObjects.cpp:
(WebCore::FloatingObjects::clearLineBoxTreePointers):
(WebCore::FloatingObjects::moveAllToFloatInfoMap):
(WebCore::FloatingObjects::computePlacedFloatsTree):
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::collectFixedPositionedLayers):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::append):
* rendering/ImageQualityController.cpp:
(WebCore::ImageQualityController::highQualityRepaintTimerFired):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
* rendering/RenderBlock.cpp:
(WebCore::removeBlockFromDescendantAndContainerMaps):
(WebCore::RenderBlock::addOverflowFromPositionedObjects):
(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markPositionedObjectsForLayout):
(WebCore::RenderBlock::paintContinuationOutlines):
(WebCore::clipOutPositionedObjects):
(WebCore::RenderBlock::removeFromTrackedRendererMaps):
(WebCore::RenderBlock::removePositionedObjects):
(WebCore::RenderBlock::checkPositionedObjectsNeedLayout):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
(WebCore::RenderBlockFlow::styleDidChange):
(WebCore::RenderBlockFlow::moveFloatsTo):
(WebCore::RenderBlockFlow::addOverflowFromFloats):
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::paintFloats):
(WebCore::RenderBlockFlow::clipOutFloatingObjects):
(WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
(WebCore::RenderBlockFlow::lowestInitialLetterLogicalBottom):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::addIntrudingFloats):
(WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout):
(WebCore::RenderBlockFlow::adjustForBorderFit):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::repaintDirtyFloats):
(WebCore::RenderBlockFlow::layoutLineBoxes):
(WebCore::RenderBlockFlow::checkFloatsInCleanLine):
(WebCore::RenderBlockFlow::determineStartPosition):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::destroyCounterNodes):
(WebCore::updateCounters):
(WebCore::RenderCounter::rendererStyleChanged):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::autoMarginOffsetInMainAxis):
(WebCore::RenderFlexibleBox::freezeViolations):
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
(WebCore::RenderFlexibleBox::numberOfInFlowPositionedChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::RenderFlexibleBox::alignFlexLines):
(WebCore::RenderFlexibleBox::alignChildren):
(WebCore::RenderFlexibleBox::flipForWrapReverse):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addAnnotatedRegions):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
(WebCore::RenderLayer::updateDescendantDependentFlags):
* rendering/RenderLayerBacking.cpp:
(WebCore::descendantLayerPaintsIntoAncestor):
(WebCore::RenderLayerBacking::startAnimation):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::paint):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
* rendering/RenderMenuList.cpp:
(WebCore::selectedOptionCount):
(RenderMenuList::updateOptionsWidth):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::distributeImplicitBreaks):

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

5 years ago[iOS WK2] Video with reflection crashes WebKit and Safari
simon.fraser@apple.com [Fri, 12 Jun 2015 17:04:48 +0000 (17:04 +0000)]
[iOS WK2] Video with reflection crashes WebKit and Safari
https://bugs.webkit.org/show_bug.cgi?id=145905
rdar://problem/18364939

Reviewed by Anders Carlsson.

On iOS, AVPlayerLayers are contained inside a WebVideoContainerLayer, but
the layer type is still LayerTypeAVPlayerLayer.

Avoid throwing exceptions when cloning such layers by checking the layer class.

* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::clone):

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

5 years agoFix unused private field warning in ResourceHandleSoup.cpp
ossy@webkit.org [Fri, 12 Jun 2015 16:59:26 +0000 (16:59 +0000)]
Fix unused private field warning in ResourceHandleSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=145910

Reviewed by Darin Adler.

* platform/network/soup/ResourceHandleSoup.cpp:

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

5 years ago[EFL] Fix unused private field warning in WebContextMenuProxyEfl.cpp
ossy@webkit.org [Fri, 12 Jun 2015 16:56:02 +0000 (16:56 +0000)]
[EFL] Fix unused private field warning in WebContextMenuProxyEfl.cpp
https://bugs.webkit.org/show_bug.cgi?id=145911

Reviewed by Darin Adler.

* UIProcess/efl/WebContextMenuProxyEfl.cpp:
(WebKit::WebContextMenuProxyEfl::WebContextMenuProxyEfl): Deleted.
* UIProcess/efl/WebContextMenuProxyEfl.h:

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

5 years ago[GTK] Fix return type warning in WebViewTest.cpp
ossy@webkit.org [Fri, 12 Jun 2015 16:52:38 +0000 (16:52 +0000)]
[GTK] Fix return type warning in WebViewTest.cpp
https://bugs.webkit.org/show_bug.cgi?id=145914

Reviewed by Darin Adler.

* TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
(WebViewTest::isEditable):

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

5 years agoWeb Inspector: CRASH trying to inspect text that was removed/replaced
commit-queue@webkit.org [Fri, 12 Jun 2015 16:48:58 +0000 (16:48 +0000)]
Web Inspector: CRASH trying to inspect text that was removed/replaced
https://bugs.webkit.org/show_bug.cgi?id=145898

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-12
Reviewed by Darin Adler.

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::inspect):
(WebCore::InspectorDOMAgent::focusNode):
Ensure we only cause focusNode with a node to focus. If the original
node that was provided is no longer in the document, then we won't
actually find a node to inspect.

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

5 years ago[EFL] canvas/philip/tests/toDataURL.jpeg.foo tests have been failed since r185417.
hyuki.kim@samsung.com [Fri, 12 Jun 2015 16:45:15 +0000 (16:45 +0000)]
[EFL] canvas/philip/tests/toDataURL.jpeg.foo tests have been failed since r185417.
https://bugs.webkit.org/show_bug.cgi?id=145878

Reviewed by Gyuyoung Kim.

Fix input buffer alignment issue.

No new tests, canvas/philip/tests/toDataURL.jpeg.foo can be used.

* platform/graphics/efl/ImageBufferEfl.cpp:
(WebCore::encodeImagePNG):
(WebCore::encodeImageJPEG):
(WebCore::ImageBuffer::toDataURL):

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

5 years agoDFG Object Allocation Sinking should not consider GetClosureVar as escapes
basile_clement@apple.com [Fri, 12 Jun 2015 16:33:37 +0000 (16:33 +0000)]
DFG Object Allocation Sinking should not consider GetClosureVar as escapes
https://bugs.webkit.org/show_bug.cgi?id=145904

Reviewed by Filip Pizlo.

The object allocation sinking phase is currently able to sink
CreateActivation nodes, but will consider any GetClosureVar node as
escaping.

This is not problematic in general as most of the GetClosureVar nodes
we would have been able to sink over will have been eliminated by CSE
anyway. Still, this is an oversight that we should fix since the
machinery is already in place.

* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
* dfg/DFGPromoteHeapAccess.h:
(JSC::DFG::promoteHeapAccess):

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

5 years agoUnreviewed build fix after r185502.
zandobersek@gmail.com [Fri, 12 Jun 2015 14:46:15 +0000 (14:46 +0000)]
Unreviewed build fix after r185502.

* NetworkProcess/cache/NetworkCacheFileSystem.cpp:
GRefPtr.h header has been moved to a different place.

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

5 years agoAdd missing override specifiers under Source/WebCore/svg/
zandobersek@gmail.com [Fri, 12 Jun 2015 13:44:43 +0000 (13:44 +0000)]
Add missing override specifiers under Source/WebCore/svg/
https://bugs.webkit.org/show_bug.cgi?id=145841

Reviewed by Darin Adler.

Add missing override specifiers to virtual method overrides for classes
under Source/WebCore/svg/, suppressing a bunch of warnings when compiling
with Clang 3.6.

Add the BEGIN_DECLARE_ANIMATED_PROPERTIES_BASE() macro that doesn't
override the localAttributeToPropertyMap() method declaration, and
have the BEGIN_DECLARE_ANIMATED_PROPERTIES() macro add the override
specifier. The new macro is used in SVGElement.

Change the DECLARE_ANIMATED_PROPERTY() to accept the optional override
specifier as the fifth parameter. Current DECLARE_ANIMATED_*() macros
are modified to just pass an empty argument, not adding any specifier.
DECLARE_ANIMATED_BOOLEAN_OVERRIDE() and DECLARE_ANIMATED_STRING_OVERRIDE()
macros are added to override the methods for the externalResourcesRequired
and href animated properties, where required.

* svg/SVGAElement.h:
* svg/SVGAltGlyphElement.h:
* svg/SVGAnimatedAngle.h:
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedEnumeration.h:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedLength.h:
* svg/SVGAnimatedNumber.h:
* svg/SVGAnimatedPreserveAspectRatio.h:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimatedString.h:
* svg/SVGAnimationElement.h:
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.h:
* svg/SVGCursorElement.h:
* svg/SVGDefsElement.h:
* svg/SVGElement.h:
* svg/SVGEllipseElement.h:
* svg/SVGFEImageElement.h:
* svg/SVGFilterElement.h:
* svg/SVGFontElement.h:
* svg/SVGForeignObjectElement.h:
* svg/SVGGElement.h:
* svg/SVGGlyphRefElement.h:
* svg/SVGGradientElement.h:
* svg/SVGImageElement.h:
* svg/SVGLineElement.h:
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.h:
* svg/SVGPathElement.h:
* svg/SVGPatternElement.h:
* svg/SVGPolyElement.h:
* svg/SVGRectElement.h:
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.h:
* svg/SVGSwitchElement.h:
* svg/SVGSymbolElement.h:
* svg/SVGTRefElement.h:
* svg/SVGTextContentElement.h:
* svg/SVGTextPathElement.h:
* svg/SVGURIReference.h: Add the hrefBaseValue() pure virtual method
so it can be overridden by any class that also overrides the
corresponding setHrefBaseValue() method.
* svg/SVGUseElement.h:
* svg/SVGViewElement.h:
* svg/properties/SVGAnimatedPropertyMacros.h:
* svg/properties/SVGMatrixTearOff.h:
(WebCore::SVGMatrixTearOff::commitChange):

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

5 years ago[GLib] Move files under Source/WTF/wtf/gobject to Source/WTF/wtf/glib
zandobersek@gmail.com [Fri, 12 Jun 2015 13:32:03 +0000 (13:32 +0000)]
[GLib] Move files under Source/WTF/wtf/gobject to Source/WTF/wtf/glib
https://bugs.webkit.org/show_bug.cgi?id=145799

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Update header inclusions for headers that have been moved
to Source/WTF/wtf/glib/.

* accessibility/atk/AXObjectCacheAtk.cpp:
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
* bindings/gobject/DOMObjectCache.cpp:
* bindings/gobject/GObjectEventListener.h:
* bindings/gobject/GObjectNodeFilterCondition.h:
* bindings/gobject/GObjectXPathNSResolver.h:
* bindings/gobject/WebKitDOMEventTarget.cpp:
* platform/Pasteboard.h:
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
* platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
* platform/audio/gtk/AudioBusGtk.cpp:
* platform/geoclue/GeolocationProviderGeoclue.h:
* platform/geoclue/GeolocationProviderGeoclue2.cpp:
* platform/glib/BatteryProviderUPower.cpp:
* platform/glib/BatteryProviderUPower.h:
* platform/graphics/gstreamer/GRefPtrGStreamer.h:
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
* platform/graphics/gstreamer/GUniquePtrGStreamer.h:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/graphics/gtk/ImageBufferGtk.cpp:
* platform/graphics/gtk/ImageGtk.cpp:
* platform/gtk/ContextMenuGtk.cpp:
* platform/gtk/ContextMenuItemGtk.cpp:
* platform/gtk/DataObjectGtk.cpp:
* platform/gtk/DataObjectGtk.h:
* platform/gtk/FileSystemGtk.cpp:
* platform/gtk/GRefPtrGtk.h:
* platform/gtk/GUniquePtrGtk.h:
* platform/gtk/GamepadsGtk.cpp:
* platform/gtk/GtkUtilities.cpp:
* platform/gtk/LanguageGtk.cpp:
* platform/gtk/LocalizedStringsGtk.cpp:
* platform/gtk/PasteboardHelper.cpp:
* platform/gtk/ScrollbarThemeGtk.cpp:
* platform/gtk/SharedBufferGtk.cpp:
* platform/gtk/SharedTimerGtk.cpp:
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
* platform/network/ResourceHandleInternal.h:
* platform/network/gtk/CredentialBackingStore.cpp:
* platform/network/soup/CertificateInfo.h:
* platform/network/soup/CookieJarSoup.cpp:
* platform/network/soup/DNSSoup.cpp:
* platform/network/soup/GRefPtrSoup.h:
* platform/network/soup/GUniquePtrSoup.h:
* platform/network/soup/ResourceError.h:
* platform/network/soup/ResourceErrorSoup.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
* platform/network/soup/ResourceResponse.h:
* platform/network/soup/SocketStreamHandle.h:
* platform/network/soup/SocketStreamHandleSoup.cpp:
* platform/network/soup/SoupNetworkSession.h:
* platform/text/gtk/HyphenationLibHyphen.cpp:
* rendering/RenderThemeGtk.cpp:

Source/WebKit2:

Update header inclusions for headers that have been moved
to Source/WTF/wtf/glib/.

* NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
* NetworkProcess/cache/NetworkCacheIOChannel.h:
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
* NetworkProcess/soup/NetworkProcessSoup.cpp:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/Downloads/soup/DownloadSoup.cpp:
* Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h:
* Shared/PrintInfo.h:
* Shared/gtk/ArgumentCodersGtk.cpp:
* Shared/gtk/ArgumentCodersGtk.h:
* Shared/gtk/KeyedDecoder.h:
* Shared/gtk/KeyedEncoder.h:
* Shared/gtk/ProcessExecutablePathGtk.cpp:
* UIProcess/API/gtk/WebKitBackForwardList.cpp:
* UIProcess/API/gtk/WebKitBackForwardListItem.cpp:
* UIProcess/API/gtk/WebKitColorChooser.h:
* UIProcess/API/gtk/WebKitContextMenu.cpp:
* UIProcess/API/gtk/WebKitContextMenuItem.cpp:
* UIProcess/API/gtk/WebKitCookieManager.cpp:
* UIProcess/API/gtk/WebKitDownload.cpp:
* UIProcess/API/gtk/WebKitDownloadClient.cpp:
* UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
* UIProcess/API/gtk/WebKitFindController.cpp:
* UIProcess/API/gtk/WebKitFormClient.cpp:
* UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp:
* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
* UIProcess/API/gtk/WebKitJavascriptResult.cpp:
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
* UIProcess/API/gtk/WebKitMimeInfo.cpp:
* UIProcess/API/gtk/WebKitNavigationAction.cpp:
* UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
* UIProcess/API/gtk/WebKitPolicyClient.cpp:
* UIProcess/API/gtk/WebKitPrintOperation.cpp:
* UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
* UIProcess/API/gtk/WebKitUIClient.cpp:
* UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
* UIProcess/API/gtk/WebKitWebContext.cpp:
* UIProcess/API/gtk/WebKitWebInspector.cpp:
* UIProcess/API/gtk/WebKitWebResource.cpp:
* UIProcess/API/gtk/WebKitWebView.cpp:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
* UIProcess/InspectorServer/WebSocketServer.h:
* UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
* UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
* UIProcess/Plugins/gtk/PluginInfoCache.h:
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
* UIProcess/gtk/DragAndDropHandler.cpp:
* UIProcess/gtk/GestureController.h:
* UIProcess/gtk/InputMethodFilter.cpp:
* UIProcess/gtk/InputMethodFilter.h:
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
* UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
* UIProcess/gtk/WebPopupMenuProxyGtk.h:
* UIProcess/gtk/WebProcessPoolGtk.cpp:
* WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
* WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
* WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp:
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
* WebProcess/WebPage/gtk/PrinterListGtk.h:
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
* WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
* WebProcess/gtk/WebGtkExtensionManager.h:
* WebProcess/soup/WebKitSoupRequestInputStream.cpp:
* WebProcess/soup/WebProcessSoup.cpp:
* WebProcess/soup/WebSoupRequestManager.h:

Source/WTF:

Move the GLib-specific files to the Source/WTF/wtf/glib/ directory.
'gobject' wasn't the most appropriate name for the directory since
GObject is a submodule of GLib, but a lot of the code there didn't
have much to do with GObject specifically.

Build rules for the moved files are also updated.

* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* wtf/Platform.h:
* wtf/PlatformEfl.cmake:
* wtf/PlatformGTK.cmake:
* wtf/RunLoop.h:
* wtf/WorkQueue.h:
* wtf/glib/GLibUtilities.cpp: Renamed from Source/WTF/wtf/gobject/GlibUtilities.cpp.
(getCurrentExecutablePath):
* wtf/glib/GLibUtilities.h: Renamed from Source/WTF/wtf/gobject/GlibUtilities.h.
* wtf/glib/GMainLoopSource.cpp: Renamed from Source/WTF/wtf/gobject/GMainLoopSource.cpp.
(WTF::GMainLoopSource::create):
(WTF::GMainLoopSource::GMainLoopSource):
(WTF::GMainLoopSource::~GMainLoopSource):
(WTF::GMainLoopSource::isScheduled):
(WTF::GMainLoopSource::isActive):
(WTF::GMainLoopSource::cancel):
(WTF::GMainLoopSource::scheduleIdleSource):
(WTF::GMainLoopSource::schedule):
(WTF::GMainLoopSource::scheduleTimeoutSource):
(WTF::GMainLoopSource::scheduleAfterDelay):
(WTF::createMicrosecondsTimeoutSource):
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):
(WTF::GMainLoopSource::prepareVoidCallback):
(WTF::GMainLoopSource::finishVoidCallback):
(WTF::GMainLoopSource::voidCallback):
(WTF::GMainLoopSource::prepareBoolCallback):
(WTF::GMainLoopSource::finishBoolCallback):
(WTF::GMainLoopSource::boolCallback):
(WTF::GMainLoopSource::socketCallback):
(WTF::GMainLoopSource::voidSourceCallback):
(WTF::GMainLoopSource::boolSourceCallback):
(WTF::GMainLoopSource::socketSourceCallback):
(WTF::GMainLoopSource::Context::destroySource):
* wtf/glib/GMainLoopSource.h: Renamed from Source/WTF/wtf/gobject/GMainLoopSource.h.
(WTF::GMainLoopSource::Context::operator=):
* wtf/glib/GMutexLocker.h: Renamed from Source/WTF/wtf/gobject/GMutexLocker.h.
(WTF::MutexWrapper<GMutex>::lock):
(WTF::MutexWrapper<GMutex>::unlock):
(WTF::MutexWrapper<GRecMutex>::lock):
(WTF::MutexWrapper<GRecMutex>::unlock):
(WTF::GMutexLocker::GMutexLocker):
(WTF::GMutexLocker::~GMutexLocker):
(WTF::GMutexLocker::lock):
(WTF::GMutexLocker::unlock):
* wtf/glib/GRefPtr.cpp: Renamed from Source/WTF/wtf/gobject/GRefPtr.cpp.
(WTF::refGPtr):
(WTF::derefGPtr):
* wtf/glib/GRefPtr.h: Renamed from Source/WTF/wtf/gobject/GRefPtr.h.
(WTF::GRefPtr::GRefPtr):
(WTF::GRefPtr::~GRefPtr):
(WTF::GRefPtr::clear):
(WTF::GRefPtr::outPtr):
(WTF::GRefPtr::isHashTableDeletedValue):
(WTF::GRefPtr::get):
(WTF::GRefPtr::operator*):
(WTF::GRefPtr::operator->):
(WTF::GRefPtr::operator!):
(WTF::GRefPtr::operator UnspecifiedBoolType):
(WTF::GRefPtr::hashTableDeletedValue):
(WTF::=):
(WTF::GRefPtr<T>::swap):
(WTF::swap):
(WTF::operator==):
(WTF::operator!=):
(WTF::static_pointer_cast):
(WTF::const_pointer_cast):
(WTF::adoptGRef):
(WTF::refGPtr):
(WTF::derefGPtr):
* wtf/glib/GThreadSafeMainLoopSource.cpp: Renamed from Source/WTF/wtf/gobject/GThreadSafeMainLoopSource.cpp.
(WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource):
(WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource):
(WTF::GThreadSafeMainLoopSource::cancel):
(WTF::GThreadSafeMainLoopSource::schedule):
(WTF::GThreadSafeMainLoopSource::scheduleAfterDelay):
(WTF::GThreadSafeMainLoopSource::prepareVoidCallback):
(WTF::GThreadSafeMainLoopSource::finishVoidCallback):
(WTF::GThreadSafeMainLoopSource::voidCallback):
(WTF::GThreadSafeMainLoopSource::prepareBoolCallback):
(WTF::GThreadSafeMainLoopSource::finishBoolCallback):
(WTF::GThreadSafeMainLoopSource::boolCallback):
* wtf/glib/GThreadSafeMainLoopSource.h: Renamed from Source/WTF/wtf/gobject/GThreadSafeMainLoopSource.h.
* wtf/glib/GTypedefs.h: Renamed from Source/WTF/wtf/gobject/GTypedefs.h.
* wtf/glib/GUniquePtr.h: Renamed from Source/WTF/wtf/gobject/GUniquePtr.h.
(WTF::GPtrDeleter::operator()):
(WTF::GUniqueOutPtr::GUniqueOutPtr):
(WTF::GUniqueOutPtr::~GUniqueOutPtr):
(WTF::GUniqueOutPtr::outPtr):
(WTF::GUniqueOutPtr::release):
(WTF::GUniqueOutPtr::operator*):
(WTF::GUniqueOutPtr::operator->):
(WTF::GUniqueOutPtr::get):
(WTF::GUniqueOutPtr::operator!):
(WTF::GUniqueOutPtr::operator UnspecifiedBoolType):
(WTF::GUniqueOutPtr::reset):
* wtf/glib/MainThreadGLib.cpp:
* wtf/gobject/GMainLoopSource.cpp:
(WTF::GMainLoopSource::create): Deleted.
(WTF::GMainLoopSource::GMainLoopSource): Deleted.
(WTF::GMainLoopSource::~GMainLoopSource): Deleted.
(WTF::GMainLoopSource::isScheduled): Deleted.
(WTF::GMainLoopSource::isActive): Deleted.
(WTF::GMainLoopSource::cancel): Deleted.
(WTF::GMainLoopSource::scheduleIdleSource): Deleted.
(WTF::GMainLoopSource::schedule): Deleted.
(WTF::GMainLoopSource::scheduleTimeoutSource): Deleted.
(WTF::GMainLoopSource::scheduleAfterDelay): Deleted.
(WTF::createMicrosecondsTimeoutSource): Deleted.
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): Deleted.
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Deleted.
(WTF::GMainLoopSource::prepareVoidCallback): Deleted.
(WTF::GMainLoopSource::finishVoidCallback): Deleted.
(WTF::GMainLoopSource::voidCallback): Deleted.
(WTF::GMainLoopSource::prepareBoolCallback): Deleted.
(WTF::GMainLoopSource::finishBoolCallback): Deleted.
(WTF::GMainLoopSource::boolCallback): Deleted.
(WTF::GMainLoopSource::socketCallback): Deleted.
(WTF::GMainLoopSource::voidSourceCallback): Deleted.
(WTF::GMainLoopSource::boolSourceCallback): Deleted.
(WTF::GMainLoopSource::socketSourceCallback): Deleted.
(WTF::GMainLoopSource::Context::destroySource): Deleted.
* wtf/gobject/GMainLoopSource.h:
(WTF::GMainLoopSource::Context::operator=): Deleted.
* wtf/gobject/GMutexLocker.h:
(WTF::MutexWrapper<GMutex>::lock): Deleted.
(WTF::MutexWrapper<GMutex>::unlock): Deleted.
(WTF::MutexWrapper<GRecMutex>::lock): Deleted.
(WTF::MutexWrapper<GRecMutex>::unlock): Deleted.
(WTF::GMutexLocker::GMutexLocker): Deleted.
(WTF::GMutexLocker::~GMutexLocker): Deleted.
(WTF::GMutexLocker::lock): Deleted.
(WTF::GMutexLocker::unlock): Deleted.
* wtf/gobject/GRefPtr.cpp:
(WTF::refGPtr): Deleted.
(WTF::derefGPtr): Deleted.
* wtf/gobject/GRefPtr.h:
(WTF::GRefPtr::GRefPtr): Deleted.
(WTF::GRefPtr::~GRefPtr): Deleted.
(WTF::GRefPtr::clear): Deleted.
(WTF::GRefPtr::outPtr): Deleted.
(WTF::GRefPtr::isHashTableDeletedValue): Deleted.
(WTF::GRefPtr::get): Deleted.
(WTF::GRefPtr::operator*): Deleted.
(WTF::GRefPtr::operator->): Deleted.
(WTF::GRefPtr::operator!): Deleted.
(WTF::GRefPtr::operator UnspecifiedBoolType): Deleted.
(WTF::GRefPtr::hashTableDeletedValue): Deleted.
(WTF::=): Deleted.
(WTF::GRefPtr<T>::swap): Deleted.
(WTF::swap): Deleted.
(WTF::operator==): Deleted.
(WTF::operator!=): Deleted.
(WTF::static_pointer_cast): Deleted.
(WTF::const_pointer_cast): Deleted.
(WTF::adoptGRef): Deleted.
(WTF::refGPtr): Deleted.
(WTF::derefGPtr): Deleted.
* wtf/gobject/GThreadSafeMainLoopSource.cpp:
(WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource): Deleted.
(WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource): Deleted.
(WTF::GThreadSafeMainLoopSource::cancel): Deleted.
(WTF::GThreadSafeMainLoopSource::schedule): Deleted.
(WTF::GThreadSafeMainLoopSource::scheduleAfterDelay): Deleted.
(WTF::GThreadSafeMainLoopSource::prepareVoidCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::finishVoidCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::voidCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::prepareBoolCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::finishBoolCallback): Deleted.
(WTF::GThreadSafeMainLoopSource::boolCallback): Deleted.
* wtf/gobject/GUniquePtr.h:
(WTF::GPtrDeleter::operator()): Deleted.
(WTF::GUniqueOutPtr::GUniqueOutPtr): Deleted.
(WTF::GUniqueOutPtr::~GUniqueOutPtr): Deleted.
(WTF::GUniqueOutPtr::outPtr): Deleted.
(WTF::GUniqueOutPtr::release): Deleted.
(WTF::GUniqueOutPtr::operator*): Deleted.
(WTF::GUniqueOutPtr::operator->): Deleted.
(WTF::GUniqueOutPtr::get): Deleted.
(WTF::GUniqueOutPtr::operator!): Deleted.
(WTF::GUniqueOutPtr::operator UnspecifiedBoolType): Deleted.
(WTF::GUniqueOutPtr::reset): Deleted.
* wtf/gobject/GlibUtilities.cpp:
(getCurrentExecutablePath): Deleted.

Tools:

Update header inclusions for headers that have been moved
to Source/WTF/wtf/glib/.

Also move the unit tests under TestWebKitAPI/Tests/WTF/gobject/
to TestWebKitAPI/Tests/WTF/glib/ and update the build rules.

* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp: Renamed from Tools/TestWebKitAPI/Tests/WTF/gobject/GMainLoopSource.cpp.
(TestWebKitAPI::GMainLoopSourceTest::GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::~GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::runLoop):
(TestWebKitAPI::GMainLoopSourceTest::delayedFinish):
(TestWebKitAPI::GMainLoopSourceTest::finish):
(TestWebKitAPI::GMainLoopSourceTest::source):
(TestWebKitAPI::basicRescheduling):
(TestWebKitAPI::TEST):
(TestWebKitAPI::reentrantRescheduling):
(TestWebKitAPI::cancelRepeatingSourceDuringDispatch):
(TestWebKitAPI::basicDestroyCallbacks):
(TestWebKitAPI::destroyCallbacksAfterCancellingDuringDispatch):
(TestWebKitAPI::destroyCallbacksAfterReschedulingDuringDispatch):
* TestWebKitAPI/Tests/WTF/glib/GUniquePtr.cpp: Renamed from Tools/TestWebKitAPI/Tests/WTF/gobject/GUniquePtr.cpp.
(log):
(takeLogStr):
(TestWebKitAPI::TEST):
(TestWebKitAPI::returnOutChar):
* TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp:
* TestWebKitAPI/Tests/WTF/gobject/GMainLoopSource.cpp:
(TestWebKitAPI::GMainLoopSourceTest::GMainLoopSourceTest): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::~GMainLoopSourceTest): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::runLoop): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::delayedFinish): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::finish): Deleted.
(TestWebKitAPI::GMainLoopSourceTest::source): Deleted.
(TestWebKitAPI::basicRescheduling): Deleted.
(TestWebKitAPI::TEST): Deleted.
(TestWebKitAPI::reentrantRescheduling): Deleted.
(TestWebKitAPI::cancelRepeatingSourceDuringDispatch): Deleted.
(TestWebKitAPI::basicDestroyCallbacks): Deleted.
(TestWebKitAPI::destroyCallbacksAfterCancellingDuringDispatch): Deleted.
(TestWebKitAPI::destroyCallbacksAfterReschedulingDuringDispatch): Deleted.
* TestWebKitAPI/Tests/WTF/gobject/GUniquePtr.cpp:
(log): Deleted.
(takeLogStr): Deleted.
(TestWebKitAPI::TEST): Deleted.
(TestWebKitAPI::returnOutChar): Deleted.
* TestWebKitAPI/Tests/WebKit2/gtk/InputMethodFilter.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestAuthentication.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestInspector.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestPrinting.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebExtensions.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitAccessibility.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFaviconDatabase.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFindController.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:
* TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
* TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
* TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
* TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h:
* TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.cpp:
* TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.h:
* TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.cpp:
* TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.h:
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.h:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
* WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp:
* WebKitTestRunner/InjectedBundle/gtk/InjectedBundleUtilities.cpp:
* WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
* WebKitTestRunner/PlatformGTK.cmake:
* WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
* WebKitTestRunner/gtk/TestControllerGtk.cpp:

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

5 years agoFix the build when the PICTURE_SIZES flag is off
yoav@yoav.ws [Fri, 12 Jun 2015 13:17:09 +0000 (13:17 +0000)]
Fix the build when the PICTURE_SIZES flag is off
https://bugs.webkit.org/show_bug.cgi?id=145926

Reviewed by Csaba Osztrogonác.

No new tests since there's no functionality change.

* html/parser/HTMLPreloadScanner.cpp: Remove the guard around the definition of m_sizesAttribute.

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

5 years agoNetwork Cache: Use SHA1 for key hash
antti@apple.com [Fri, 12 Jun 2015 12:58:36 +0000 (12:58 +0000)]
Network Cache: Use SHA1 for key hash
https://bugs.webkit.org/show_bug.cgi?id=143829

Reviewed by Anders Carlsson.

For consistency with blobs, use SHA1 instead of MD5.

* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<MD5::Digest>::encode): Deleted.
(WebKit::NetworkCache::Coder<MD5::Digest>::decode): Deleted.

    No longer needed.

* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::hashString):
(WebKit::NetworkCache::Key::computeHash):
* NetworkProcess/cache/NetworkCacheKey.h:

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

5 years agoUnreviewed, rolling out r185492.
rego@igalia.com [Fri, 12 Jun 2015 12:54:26 +0000 (12:54 +0000)]
Unreviewed, rolling out r185492.
https://bugs.webkit.org/show_bug.cgi?id=145927

Causes crashes on debug (Requested by rego on #webkit).

Reverted changeset:

"[CSS Grid Layout] Fix grid-template-areas parsing to avoid
spaces"
https://bugs.webkit.org/show_bug.cgi?id=145860
http://trac.webkit.org/changeset/185492

Patch by Commit Queue <commit-queue@webkit.org> on 2015-06-12

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

5 years agoFix mismatched-tags warning in Source/WebKit2/UIProcess/gtk/InputMethodFilter.h
ossy@webkit.org [Fri, 12 Jun 2015 12:47:22 +0000 (12:47 +0000)]
Fix mismatched-tags warning in Source/WebKit2/UIProcess/gtk/InputMethodFilter.h
https://bugs.webkit.org/show_bug.cgi?id=145923

Reviewed by Carlos Garcia Campos.

* UIProcess/gtk/InputMethodFilter.h:

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

5 years agoUse SHA1 for cache coder checksums
antti@apple.com [Fri, 12 Jun 2015 10:46:47 +0000 (10:46 +0000)]
Use SHA1 for cache coder checksums
https://bugs.webkit.org/show_bug.cgi?id=145880

Reviewed by Anders Carlsson.

Make cache data error detection more robust by using SHA1 for checksums.

* NetworkProcess/cache/NetworkCacheDecoder.cpp:
(WebKit::NetworkCache::Decoder::Decoder):
(WebKit::NetworkCache::Decoder::decodeFixedLengthData):
(WebKit::NetworkCache::Decoder::decodeNumber):
(WebKit::NetworkCache::Decoder::verifyChecksum):
* NetworkProcess/cache/NetworkCacheDecoder.h:
* NetworkProcess/cache/NetworkCacheEncoder.cpp:
(WebKit::NetworkCache::Encoder::Encoder):
(WebKit::NetworkCache::Encoder::grow):
(WebKit::NetworkCache::Encoder::updateChecksumForData):
(WebKit::NetworkCache::Encoder::encodeFixedLengthData):
(WebKit::NetworkCache::Encoder::encodeNumber):
(WebKit::NetworkCache::Encoder::encodeChecksum):
* NetworkProcess/cache/NetworkCacheEncoder.h:
(WebKit::NetworkCache::Encoder::buffer):
(WebKit::NetworkCache::Encoder::bufferSize):
(WebKit::NetworkCache::Encoder::updateChecksumForNumber):

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

5 years ago[EFL] Fix deprecated declarations warnings related to WK2 versioned structs
ossy@webkit.org [Fri, 12 Jun 2015 10:34:14 +0000 (10:34 +0000)]
[EFL] Fix deprecated declarations warnings related to WK2 versioned structs
https://bugs.webkit.org/show_bug.cgi?id=145913

Reviewed by Gyuyoung Kim.

Source/WebKit2:

* UIProcess/API/efl/ewk_favicon_database.cpp:
(EwkFaviconDatabase::EwkFaviconDatabase):
* UIProcess/efl/ContextHistoryClientEfl.cpp:
(WebKit::ContextHistoryClientEfl::ContextHistoryClientEfl):
* UIProcess/efl/ContextMenuClientEfl.cpp:
(ContextMenuClientEfl::ContextMenuClientEfl):
* UIProcess/efl/DownloadManagerEfl.cpp:
(WebKit::DownloadManagerEfl::DownloadManagerEfl):
* UIProcess/efl/FindClientEfl.cpp:
(WebKit::FindClientEfl::FindClientEfl):
* UIProcess/efl/FormClientEfl.cpp:
(WebKit::FormClientEfl::FormClientEfl):
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::PageUIClientEfl):

Tools:

* TestWebKitAPI/Tests/WebKit2/Geolocation.cpp:
(TestWebKitAPI::setupGeolocationProvider):
* TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFrames.cpp:
(TestWebKitAPI::setPageLoaderClient):
* TestWebKitAPI/Tests/WebKit2/UserMessage.cpp:
(TestWebKitAPI::WebKit2UserMessageRoundTripTest::setPageLoaderClient):
* WebKitTestRunner/GeolocationProviderMock.cpp:
(WTR::GeolocationProviderMock::GeolocationProviderMock):
* WebKitTestRunner/WebNotificationProvider.cpp:
(WTR::WebNotificationProvider::provider):

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

5 years ago[EFL] Bump EWebKit version from 1.11.0 to 1.14.0
gyuyoung.kim@webkit.org [Fri, 12 Jun 2015 10:30:43 +0000 (10:30 +0000)]
[EFL] Bump EWebKit version from 1.11.0 to 1.14.0
https://bugs.webkit.org/show_bug.cgi?id=145909

Reviewed by Csaba Osztrogonác.

Bump EWebKit version based on efl library version used by the EWebKit.

* Source/cmake/OptionsEfl.cmake:

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

5 years agoFix the libusrsctp build with clang
ossy@webkit.org [Fri, 12 Jun 2015 10:03:06 +0000 (10:03 +0000)]
Fix the libusrsctp build with clang
https://bugs.webkit.org/show_bug.cgi?id=145128

Reviewed by Gyuyoung Kim.

* efl/jhbuild.modules:
* gtk/jhbuild.modules:

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

5 years agoBindings generator should generate code for Promise-based APIs
youenn.fablet@crf.canon.fr [Fri, 12 Jun 2015 09:25:46 +0000 (09:25 +0000)]
Bindings generator should generate code for Promise-based APIs
https://bugs.webkit.org/show_bug.cgi?id=145833

Reviewed by Darin Adler.

Covered by existing tests.

* Modules/webaudio/AudioContext.idl: Removing custom binding for resume, suspend and close.
* bindings/js/JSAudioContextCustom.cpp: Ditto.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader): Refactoring to use IsReturningPromise.
(GenerateImplementation): Disabling include for return type if it is a promise.
(GenerateParametersCheck): Adding DeferredWrapper() as argument to the DOM method if JS method returns a promise.
(GenerateImplementationFunctionCall): Added support for promise-returning API.
(IsReturningPromise): Checking whether function is returning a promise.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_test_promise_function):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj testPromiseFunction]):
* bindings/scripts/test/TestObj.idl: Adding promise returning function.

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

5 years ago[CSS Grid Layout] Fix grid-template-areas parsing to avoid spaces
rego@igalia.com [Fri, 12 Jun 2015 08:19:36 +0000 (08:19 +0000)]
[CSS Grid Layout] Fix grid-template-areas parsing to avoid spaces
https://bugs.webkit.org/show_bug.cgi?id=145860

Reviewed by Sergio Villar Senin.

Source/WebCore:

The spec doesn't require to have spaces between unnamed and named areas
in grid-template-areas syntax. But spaces are currently required in our
code.

This was confirmed in the CSS WG mailing list:
https://lists.w3.org/Archives/Public/www-style/2015May/0239.html

This patch updates grid-template-areas parsing to allow the possibility
of removing spaces between unnamed and named areas.

Added new cases to fast/css-grid-layout/grid-template-areas-get-set.html.

* css/CSSParser.cpp:
(WebCore::parseGridTemplateAreasColumnNames): New helper method to
determine the column names split by white spaces or dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
method to get the column names.
(WebCore::containsOnlyDots): Deleted. Not needed anymore as
parseGridTemplateAreasColumnNames() is using a single dot for unnamed
grid areas (despite of being defined with 1 or more dots).

LayoutTests:

* fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
* fast/css-grid-layout/grid-template-areas-get-set.html: Add new test
cases.

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

5 years agoVersioning.
bshafiei@apple.com [Fri, 12 Jun 2015 07:00:49 +0000 (07:00 +0000)]
Versioning.

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

5 years agoWebCore::reportException() needs to be able to accept a raw thrown value in addition...
mark.lam@apple.com [Fri, 12 Jun 2015 05:39:28 +0000 (05:39 +0000)]
WebCore::reportException() needs to be able to accept a raw thrown value in addition to Exception objects.
https://bugs.webkit.org/show_bug.cgi?id=145872

Reviewed by Michael Saboff.

Source/JavaScriptCore:

In r185259, we changed exception handling code inside the VM to work with
Exception objects instead of the thrown JSValue.  The handling code will get the
exception stack trace from the Exception object.

However, there is some code that cannot be updated to pass the Exception object.
An example of this are the ObjC API functions.  Those functions are specified to
return any thrown exception JSValue in a JSValueRef.  Since these APIs are
public, we cannot arbitrarily change them to use the Exception object.

There are client code that calls these APIs and then passes the returned exception
JSValue to WebCore::reportException() to be reported.  WebCore::reportException()
previously relied on the VM::exceptionStackTrace() to provide a cache of the
stack trace of the last thrown exception.  VM::exceptionStackTrace() no longer
exists in the current code.

To restore this functionality, we will introduce VM::lastException() which
caches the last thrown Exception object.  With this, if the exception passed to
WebCore::reportException() to be reported isn't an Exception object (which has its
own stack trace), reportException() can again use the cached exception stack trace
which is available from VM::lastException().

* heap/Heap.cpp:
(JSC::Heap::visitException):
- visit VM::m_lastException on GCs.

* interpreter/CallFrame.h:
(JSC::ExecState::lastException):
(JSC::ExecState::clearLastException):
- convenience functions to get and clear the last exception.

* runtime/Exception.cpp:
(JSC::Exception::create):
(JSC::Exception::finishCreation):
- add support to create an Exception object without capturing the JS stack trace.
  This is needed for making an Exception object to wrap a thrown value that does
  not have a stack trace.
  Currently, this is only used by WebCore::reportException() when there is no
  Exception object and no last exception available to provide a stack trace.

* runtime/Exception.h:
(JSC::Exception::cast): Deleted.  No longer needed.

* runtime/VM.h:
(JSC::VM::clearLastException):
(JSC::VM::setException):
(JSC::VM::lastException):
(JSC::VM::addressOfLastException):
- Added support for VM::m_lastException.
  VM::m_lastException serves to cache the exception stack of the most recently
  thrown exception like VM::exceptionStackTrace() used to before r185259.

* runtime/VMEntryScope.cpp:
(JSC::VMEntryScope::VMEntryScope):
- Clear VM::m_lastException when we re-enter the VM.  Exceptions should have been
  handled before we re-enter the VM anyway.  So, this is a good place to release
  the cached last exception.

  NOTE: this is also where the old code before r185259 clears the last exception
  stack trace.  So, we're just restoring the previous behavior here in terms of
  the lifecycle of the last exception stack.

Source/WebCore:

API test added: WebKit1.ReportExceptionTest.

* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
- Added a version of reportException() that takes a JSValue instead of an Exception
  object.  This version will ensure that we have an Exception object before calling
  into the original reportException() as follows:

  1. If the JSValue is already an Exception object, we're good to go.

  2. Else, if VM::lastException() is available, use that as the exception.
     This is how the old code use to behave (in terms of where it gets the exception
     stack trace).  The assumption is that reportException() will be called in
     a timely manner before the exception stack trace has been purged.

  3. Else, create an Exception object with no stack trace.  This is the fall back
     in case the client did not call reportException() in a timely manner.

- Also clear the last exception after we've reported it.  This is how the old code
  before r185259 behave (in terms of the lifecycle of the last exception stack
  trace).  We're restoring that behavior here.

* bindings/js/JSDOMBinding.h:

Source/WebKit/mac:

* WebView/WebView.mm:
(+[WebView _reportException:inContext:]):
- Don't assume we have an Exception object.  Let WebCore::reportException() take
  care of it.

Source/WebKit/win:

* WebView.cpp:
(WebView::reportException):
- Don't assume we have an Exception object.  Let WebCore::reportException() take
  care of it.

Source/WebKit2:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::reportException):
- Don't assume we have an Exception object.  Let WebCore::reportException() take
  care of it.

Tools:

* TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm:
(-[DidCreateJavaScriptContextFrameLoadDelegate webView:didCreateJavaScriptContext:forFrame:]):
- Exercises the JSC ObjC API to call a function which throws an exception.  That
  exception will be returned as a JSValue instead of an Exception object.  We
  will use this JSValue to test WebCore::reportException() to confirm that it is
  able to handle an exception value which is not an Exception object.

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

5 years agojsSubstring() should support creating substrings from substrings.
akling@apple.com [Fri, 12 Jun 2015 04:09:11 +0000 (04:09 +0000)]
jsSubstring() should support creating substrings from substrings.
<https://webkit.org/b/145427>

Reviewed by Geoffrey Garen

Tweak jsSubstring() to support base strings that are themselves substrings.
They will now share the same grandparent base. This avoids creating a new StringImpl.

* runtime/JSString.h:
(JSC::jsSubstring): Don't force rope resolution here. Instead do that in finishCreation()
if the base string is a non-substring rope. Note that resolveRope() is the very last thing
called, since it may allocate and the JSRopeString needs to be ready for marking.

(JSC::JSString::isSubstring): Added a helper to find out if a JSString is
a substring. This is just for internal use, so you don't have to cast to
JSRopeString for the real substringness flag.

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

5 years agoWeb Inspector: CSS Regions not displaying DOM Trees in inspector
commit-queue@webkit.org [Fri, 12 Jun 2015 02:59:59 +0000 (02:59 +0000)]
Web Inspector: CSS Regions not displaying DOM Trees in inspector
https://bugs.webkit.org/show_bug.cgi?id=145903

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-11
Reviewed by Timothy Hatcher.

* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
Fix function inside the assertion to actually return a value.

* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.update):
For DOMTreeOutlines without a root node, don't clear the tree on updates,
since that will clear the nodes that have already been added explicitly.

* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
ResourceTab and sidebar can deal with ContentFlow related views.

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

5 years agoDo not crash when the descendant frame tree is destroyed during layout.
zalan@apple.com [Fri, 12 Jun 2015 02:49:12 +0000 (02:49 +0000)]
Do not crash when the descendant frame tree is destroyed during layout.
https://bugs.webkit.org/show_bug.cgi?id=144540
rdar://problem/20793184

Reviewed by Andreas Kling.

Source/WebCore:

Widget::setFrameRect(), through WebHTMLView layout, could trigger a style recalc, which in turn
could initiate an onBeforeLoad callback.
If javascript happens to destroy the current iframe in the onBeforeLoad callback, we lose the descendant
render tree, including the child FrameView (the iframe element's view). However the RenderIFrame
object stays protected until after the layout is done. (see protectRenderWidgetUntilLayoutIsDone())

Climbing back on the callstack, we need to make sure that
1. the root widget of the descendant render tree (FrameView) stays valid as long as it is needed.
2. RenderFrameBase::layoutWithFlattening() can handle the case when the associated widget (child FrameView) is set to nullptr.
(see RenderWidget::willBeDestroyed() -> setWidget(nullptr))

(and later, when layout is finished this (RenderIFrame) object gets destroyed too.)

Covered by fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

* page/FrameView.cpp:
(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::updateEmbeddedObject):
(WebCore::FrameView::updateWidgetPositions):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setFrameRect):
* platform/mac/WidgetMac.mm:
(WebCore::Widget::setFrameRect):
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening):
(WebCore::RenderFrameBase::childRenderView):
(WebCore::RenderFrameBase::peformLayoutWithFlattening):
* rendering/RenderFrameBase.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::updateWidgetPosition):
* rendering/RenderWidget.h:

LayoutTests:

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

* TestExpectations:

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

5 years agoMove cursor to corner and fix safari window size before running benchmark
commit-queue@webkit.org [Fri, 12 Jun 2015 02:16:28 +0000 (02:16 +0000)]
Move cursor to corner and fix safari window size before running benchmark
https://bugs.webkit.org/show_bug.cgi?id=145858

Patch by Dewei Zhu <dewei_zhu@apple.com> on 2015-06-11
Reviewed by Ryosuke Niwa

* Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver.prepareEnv):
(OSXBrowserDriver):
(OSXBrowserDriver.moveCursor):
(OSXBrowserDriver.getScreenSize):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
(OSXChromeDriver.launchUrl):
(OSXChromeCanaryDriver.launchUrl):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
(OSXFirefoxDriver.launchUrl):
(OSXFirefoxNightlyDriver.launchUrl):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.prepareEnv):
(OSXSafariDriver):
(OSXSafariDriver.maximizeWindow):

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

5 years ago[CMake] Unreviewed build fix after r185479.
clopez@igalia.com [Fri, 12 Jun 2015 01:46:42 +0000 (01:46 +0000)]
[CMake] Unreviewed build fix after r185479.

* CMakeLists.txt: Unlist the files that r185479 deleted.

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

5 years agoUnreviewed, rolling out r185470.
commit-queue@webkit.org [Fri, 12 Jun 2015 00:21:01 +0000 (00:21 +0000)]
Unreviewed, rolling out r185470.
https://bugs.webkit.org/show_bug.cgi?id=145902

Caused ASan violations (Requested by ap on #webkit).

Reverted changeset:

"Add an appearance keyword for wireless playback / airplay
icon"
https://bugs.webkit.org/show_bug.cgi?id=145892
http://trac.webkit.org/changeset/185470

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

5 years agoIndexedDB onupgradeneeded event has incorrect value for oldVersion.
beidson@apple.com [Fri, 12 Jun 2015 00:17:32 +0000 (00:17 +0000)]
IndexedDB onupgradeneeded event has incorrect value for oldVersion.
<rdar://problem/18309792> and https://bugs.webkit.org/show_bug.cgi?id=136888

Reviewed by Sam Weinig.

Source/WebCore:

Test: storage/indexeddb/version-change-event-basic.html

"NoIntVersion" is an internal bookkeeping concept that we never should've been passing to Javascript.

This cleans up things by:
- Adjusting an old version of "NoIntVersion" to "0" before making the version change callback.
- Removing the VersionNullness parameter from almost everywhere.
- Removing the nullability of the newVersion parameter from the IDL.

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange):
* Modules/indexeddb/IDBDatabase.h:

* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):

* Modules/indexeddb/IDBDatabaseCallbacks.h:
* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
(WebCore::IDBDatabaseCallbacksImpl::onVersionChange):
* Modules/indexeddb/IDBDatabaseCallbacksImpl.h:

* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onBlocked):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):

* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):

* Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
* Modules/indexeddb/IDBVersionChangeEvent.h:
(WebCore::IDBVersionChangeEvent::create):
(WebCore::IDBVersionChangeEvent::newVersion):
* Modules/indexeddb/IDBVersionChangeEvent.idl:

LayoutTests:

* storage/indexeddb/version-change-event-basic-expected.txt: Added.
* storage/indexeddb/version-change-event-basic.html: Added.

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

5 years agoGet rid of WebOriginDataManager
andersca@apple.com [Fri, 12 Jun 2015 00:13:41 +0000 (00:13 +0000)]
Get rid of WebOriginDataManager
https://bugs.webkit.org/show_bug.cgi?id=145896

Reviewed by Andreas Kling.

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::DatabaseProcess): Deleted.
(WebKit::DatabaseProcess::getOrigins): Deleted.
(WebKit::DatabaseProcess::deleteEntriesForOrigin): Deleted.
(WebKit::DatabaseProcess::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::DatabaseProcess::deleteAllEntries): Deleted.
* DatabaseProcess/DatabaseProcess.h:
* DerivedSources.make:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didReceiveMessage): Deleted.
* UIProcess/WebOriginDataManagerProxy.cpp: Removed.
(WebKit::WebOriginDataManagerProxy::supplementName): Deleted.
(WebKit::WebOriginDataManagerProxy::create): Deleted.
(WebKit::WebOriginDataManagerProxy::WebOriginDataManagerProxy): Deleted.
(WebKit::WebOriginDataManagerProxy::~WebOriginDataManagerProxy): Deleted.
(WebKit::WebOriginDataManagerProxy::processPoolDestroyed): Deleted.
(WebKit::WebOriginDataManagerProxy::processDidClose): Deleted.
(WebKit::WebOriginDataManagerProxy::shouldTerminate): Deleted.
(WebKit::WebOriginDataManagerProxy::refWebContextSupplement): Deleted.
(WebKit::WebOriginDataManagerProxy::derefWebContextSupplement): Deleted.
(WebKit::CallbackSynchronizer::create): Deleted.
(WebKit::CallbackSynchronizer::~CallbackSynchronizer): Deleted.
(WebKit::CallbackSynchronizer::taskStarted): Deleted.
(WebKit::CallbackSynchronizer::taskCompleted): Deleted.
(WebKit::CallbackSynchronizer::CallbackSynchronizer): Deleted.
(WebKit::createSynchronizedCallback): Deleted.
(WebKit::sendMessageToAllProcessesInProcessPool): Deleted.
(WebKit::WebOriginDataManagerProxy::getOrigins): Deleted.
(WebKit::WebOriginDataManagerProxy::didGetOrigins): Deleted.
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin): Deleted.
(WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::WebOriginDataManagerProxy::didDeleteEntries): Deleted.
(WebKit::WebOriginDataManagerProxy::deleteAllEntries): Deleted.
(WebKit::WebOriginDataManagerProxy::didDeleteAllEntries): Deleted.
* UIProcess/WebOriginDataManagerProxy.h: Removed.
* UIProcess/WebOriginDataManagerProxy.messages.in: Removed.
* UIProcess/WebProcessPool.cpp:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/OriginData/WebOriginDataManager.cpp: Removed.
(WebKit::WebOriginDataManager::WebOriginDataManager): Deleted.
(WebKit::WebOriginDataManager::getOrigins): Deleted.
(WebKit::WebOriginDataManager::deleteEntriesForOrigin): Deleted.
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::WebOriginDataManager::deleteAllEntries): Deleted.
* WebProcess/OriginData/WebOriginDataManager.h: Removed.
* WebProcess/OriginData/WebOriginDataManager.messages.in: Removed.
* WebProcess/OriginData/WebOriginDataManagerSupplement.h: Removed.
(WebKit::WebOriginDataManagerSupplement::WebOriginDataManagerSupplement): Deleted.
(WebKit::WebOriginDataManagerSupplement::~WebOriginDataManagerSupplement): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::~WebProcess):
(WebKit::WebProcess::WebProcess): Deleted.
(WebKit::WebProcess::getOrigins): Deleted.
(WebKit::WebProcess::deleteEntriesForOrigin): Deleted.
(WebKit::WebProcess::deleteEntriesModifiedBetweenDates): Deleted.
(WebKit::WebProcess::deleteAllEntries): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:

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

5 years ago[iOS] Cannot run run-webkit-tests with public SDK; LayoutTestRelay fails to build
dbates@webkit.org [Thu, 11 Jun 2015 22:30:52 +0000 (22:30 +0000)]
[iOS] Cannot run run-webkit-tests with public SDK; LayoutTestRelay fails to build
https://bugs.webkit.org/show_bug.cgi?id=145319

Reviewed by David Kilzer.

Add SPI wrapper header for CoreSimulator and update the source files to reference
it instead of directly referencing the CoreSimulator header.

* LayoutTestRelay/LayoutTestRelay.xcodeproj/project.pbxproj:
* LayoutTestRelay/LayoutTestRelay/CoreSimulatorSPI.h: Added.
* LayoutTestRelay/LayoutTestRelay/LTRelayController.m:
* LayoutTestRelay/LayoutTestRelay/main.m:

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

5 years agoMedia Session: Add plumbing for media control event delivery.
commit-queue@webkit.org [Thu, 11 Jun 2015 21:49:49 +0000 (21:49 +0000)]
Media Session: Add plumbing for media control event delivery.
https://bugs.webkit.org/show_bug.cgi?id=145859

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-11
Reviewed by Anders Carlsson.

Source/WebCore:

* Modules/mediasession/MediaEventTypes.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp:
(WebCore::Page::handleMediaEvent): Toggle media playback upon receiving the PlayPause event as described in the spec.
* page/Page.h:

Source/WebKit2:

* UIProcess/API/C/WKPage.cpp:
(WKPageHandleMediaEvent):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMediaEvent):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::handleMediaEvent):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

5 years agoWeb Inspector: IndexedDB data not showing for MDN example page
commit-queue@webkit.org [Thu, 11 Jun 2015 21:40:22 +0000 (21:40 +0000)]
Web Inspector: IndexedDB data not showing for MDN example page
https://bugs.webkit.org/show_bug.cgi?id=145851

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-11
Reviewed by Anders Carlsson.

* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded):
Fix typo in Storage tab refactoring that was causing an
uncaught exception and not showing Indexed DBs.

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

5 years ago[OS X] Decoding fonts may return nil when using force click
mmaxfield@apple.com [Thu, 11 Jun 2015 21:29:56 +0000 (21:29 +0000)]
[OS X] Decoding fonts may return nil when using force click
https://bugs.webkit.org/show_bug.cgi?id=145890

Reviewed by Beth Dakin.

[NSFontDescriptor fontDescriptorWithFontAttributes] might return nil, which
causes the encoding of an NSFont to erroneously return true.

* Shared/mac/ArgumentCodersMac.mm:
(IPC::decode):

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

5 years agoReimplement WKOriginDataManager in terms of API::WebsiteDataStore
andersca@apple.com [Thu, 11 Jun 2015 21:11:45 +0000 (21:11 +0000)]
Reimplement WKOriginDataManager in terms of API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=145889

Reviewed by Dan Bernstein.

* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetOriginDataManager):
* UIProcess/API/C/WKOriginDataManager.cpp:
(WKOriginDataManagerGetTypeID):
(WKOriginDataManagerGetOrigins):
(WKOriginDataManagerDeleteEntriesForOrigin):
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates):
(WKOriginDataManagerDeleteAllEntries):

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

5 years agoFull screen video space can be resized to 1pt wide
bfulgham@apple.com [Thu, 11 Jun 2015 21:06:23 +0000 (21:06 +0000)]
Full screen video space can be resized to 1pt wide
https://bugs.webkit.org/show_bug.cgi?id=145895
<rdar://problem/20907914>

Reviewed by Simon Fraser.

Prior to the upcoming OS X, full screen mode was not resizable. Now that it is,
we need to set a minimum window width that is large enough to hold the media
controls. This makes our full-screen video behave the same as the QuickTimeX player.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Active that new
kWKLayoutModeDynamicSizeWithMinimumViewSize style, and set the minimum view size to
be the width of our media controls, with 20 pixels of padding on either side.
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Set the layout
mode back to the default style.

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

5 years agoUpdate media controls JS and CSS to use picture-in-picture
jonlee@apple.com [Thu, 11 Jun 2015 20:53:49 +0000 (20:53 +0000)]
Update media controls JS and CSS to use picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=145827
<rdar://problem/21311576>

Reviewed by Dean Jackson.

Source/WebCore:

* English.lproj/mediaControlsLocalizedStrings.js: Update localized strings.
Add a string for the placeholder text, and for the aria-label of the
placard.

* Modules/mediacontrols/MediaControlsHost.idl: Remove uncalled functions.
* Modules/mediacontrols/MediaControlsHost.h: Also remove optimizedFullscreenSupported(),
which was never used.
* Modules/mediacontrols/MediaControlsHost.cpp: Remove uncalled functions and media part IDs.
(WebCore::MediaControlsHost::enterFullscreenOptimized): Deleted.
(WebCore::MediaControlsHost::mediaUIImageData): Deleted.

* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-picture-in-picture-button): Update pseudo-element name.
(audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.
* Modules/mediacontrols/mediaControlsApple.js: Update global variable name, and classes.
(Controller.prototype.createControls): Update button name. Add aria-label to the placeholder.
(Controller.prototype.updateFullscreenButtons):
(Controller.prototype.updateLayoutForDisplayedWidth):
(Controller.prototype.handlePictureInPictureButtonClicked): Update handler names.
(Controller.prototype.handleOptimizedFullscreenButtonClicked): Deleted.

* Modules/mediacontrols/mediaControlsiOS.css: Rename pseudo-element.
(audio::-webkit-media-controls-picture-in-picture-button): Add mask images.
(audio::-webkit-media-controls-picture-in-picture-button:active):
(video::-webkit-media-controls-picture-in-picture-button):
(video::-webkit-media-controls-picture-in-picture-button.return-from-picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-top.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-bottom.picture-in-picture):
(audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.
(audio::-webkit-media-controls-optimized-fullscreen-button:active): Deleted.
(video::-webkit-media-controls-optimized-fullscreen-button): Deleted.
(audio::-webkit-media-controls-wireless-playback-status.optimized): Deleted. The placard
pseudo-element should be updated from wireless-playback-status to just playback-status
since it serves both for pip and AirPlay.
(audio::-webkit-media-controls-wireless-playback-text-top.optimized): Deleted.
(audio::-webkit-media-controls-wireless-playback-text-bottom.optimized): Deleted.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.createControls): Update button names.
(ControllerIOS.prototype.configureInlineControls):
(ControllerIOS.prototype.handlePictureInPictureButtonClicked): Update handler name.
(ControllerIOS.prototype.handlePictureInPictureTouchStart):
(ControllerIOS.prototype.handlePictureInPictureTouchEnd):
(ControllerIOS.prototype.handlePictureInPictureTouchCancel):
(ControllerIOS.prototype.handlePresentationModeChange): Remove changes to the inline bg
image style, and rely on the CSS to fill those in. Use localized strings for the placard.
Move the aria-label to createControls().
(ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchStart): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchEnd): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchCancel): Deleted.

* html/HTMLMediaElement.cpp: Remove enterFullscreenOptimized since it is never called.
(WebCore::HTMLMediaElement::enterFullscreenOptimized): Deleted.
* html/HTMLMediaElement.h:
* platform/ios/WebCoreSystemInterfaceIOS.h: Remove wkGetMediaUIImageData.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Remove calls to wkGetMediaUIImageData.

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted GetMediaUIImageData.

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted GetMediaUIImageData.

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

5 years agoWeb Inspector: font-family names interpreted as color
commit-queue@webkit.org [Thu, 11 Jun 2015 20:51:11 +0000 (20:51 +0000)]
Web Inspector: font-family names interpreted as color
https://bugs.webkit.org/show_bug.cgi?id=123468

Patch by Devin Rousso <drousso@apple.com> on 2015-06-11
Reviewed by Timothy Hatcher.

* UserInterface/Views/CodeMirrorAdditions.js: Added logic to prevent color picker buttons from appearing before colors that come after a quote character (both " and ').

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

5 years agoAdd an appearance keyword for wireless playback / airplay icon
dino@apple.com [Thu, 11 Jun 2015 20:50:34 +0000 (20:50 +0000)]
Add an appearance keyword for wireless playback / airplay icon
https://bugs.webkit.org/show_bug.cgi?id=145892
<rdar://problem/21344872>

Reviewed by Simon Fraser.

Source/WebCore:

Add a new "-webkit-appearance" value named "-apple-airplay"
which will be used to render an icon. This change simply
adds support for the value, and puts in hooks for drawing.

At the moment this is only going to be used by Airplay, so
the public-facing name is "-apple-airplay". However, the
implementation in Theme has a more generic name, in case
we hook it up for other ports later.

Test: fast/css/appearance-airplay.html

* css/CSSParser.cpp:
(WebCore::cssValueKeywordID): This new keyword should not get
translated into having a -webkit prefix.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): New mapping from
the Theme to the CSS value.
* css/CSSValueKeywords.in: Add "-apple-airplay".
* platform/ThemeTypes.h: New ControlPart.
* rendering/RenderTheme.cpp: Stub implementation of the rendering and
style update for the new appearance.
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustWirelessPlaybackIconStyle):
(WebCore::RenderTheme::paintWirelessPlaybackIcon):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustWirelessPlaybackIconStyle):
(WebCore::RenderThemeMac::paintWirelessPlaybackIcon):

LayoutTests:

Simple test that makes sure we parse and evaluate
the new appearance value.

* fast/css/appearance-airplay-expected.txt: Added.
* fast/css/appearance-airplay.html: Added.

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

5 years agoUpdate plugins/embed-attributes-style.html to not use the QuickTime plug-in
ap@apple.com [Thu, 11 Jun 2015 20:23:34 +0000 (20:23 +0000)]
Update plugins/embed-attributes-style.html to not use the QuickTime plug-in
https://bugs.webkit.org/show_bug.cgi?id=145891

Reviewed by Anders Carlsson.

* platform/mac/plugins/embed-attributes-style-expected.png:
* plugins/embed-attributes-style.html:

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

5 years agoUnreviewed, rolling out r185464.
commit-queue@webkit.org [Thu, 11 Jun 2015 20:21:07 +0000 (20:21 +0000)]
Unreviewed, rolling out r185464.
https://bugs.webkit.org/show_bug.cgi?id=145894

"This patch is breaking binding tests" (Requested by youenn on
#webkit).

Reverted changeset:

"Bindings generator should generate code for Promise-based
APIs"
https://bugs.webkit.org/show_bug.cgi?id=145833
http://trac.webkit.org/changeset/185464

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

5 years agoUnreviewed, rolling out r185465.
commit-queue@webkit.org [Thu, 11 Jun 2015 20:12:39 +0000 (20:12 +0000)]
Unreviewed, rolling out r185465.
https://bugs.webkit.org/show_bug.cgi?id=145893

"This patch is breaking 32bit mac build" (Requested by youenn
on #webkit).

Reverted changeset:

"[Streams API] ReadableJSStream should handle promises
returned by JS source start callback"
https://bugs.webkit.org/show_bug.cgi?id=145792
http://trac.webkit.org/changeset/185465

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

5 years agoSpeculative build fix for GTK after r185463.
achristensen@apple.com [Thu, 11 Jun 2015 20:09:37 +0000 (20:09 +0000)]
Speculative build fix for GTK after r185463.

* CMakeLists.txt:
Remove WebPluginSiteDataManager.cpp from CMake build.

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

5 years ago[Streams API] ReadableJSStream should handle promises returned by JS source start...
youenn.fablet@crf.canon.fr [Thu, 11 Jun 2015 19:30:25 +0000 (19:30 +0000)]
[Streams API] ReadableJSStream should handle promises returned by JS source start callback
https://bugs.webkit.org/show_bug.cgi?id=145792

Source/JavaScriptCore:

Reviewed by Darin Adler.

Added support for JSFunction implemented by std::function.

* runtime/JSFunction.cpp:
(JSC::getNativeExecutable): Refactored code to share it with the two JSFunction::create
(JSC::JSFunction::create):
(JSC::runStdFunction):
* runtime/JSFunction.h: Added std::function based JSFunction::create prototype.
* runtime.JSPromise.h:

Source/WebCore:

Reviewed by Darin Adler.

Covered by rebased tests.

When calling start callback, the returned value is checked.
If it is not a promise, we do as if it is a resolved promise.
If it is a promise, we call its then() method with two resolve/reject JS functions.

* Modules/streams/ReadableStream.cpp:
* bindings/js/ReadableJSStream.cpp:
(WebCore::ReadableJSStream::invoke): Returns a JSPromise* if any is returned by the JS source callback.
(WebCore::thenPromise): Utility method to call the promise.
(WebCore::createStartResultFulfilledFunction): The promise resolve callback.
(WebCore::ReadableJSStream::doStart): Calls thenPromise if a JSPromise* is returned by invoke.
(WebCore::ReadableJSStream::ReadableJSStream):
* bindings/js/ReadableJSStream.h:

LayoutTests:

Reviewed by Darin Adler.

Rebasing expectations, and removing timeouts for tests that no longer timeout.

* streams/reference-implementation/readable-stream-expected.txt:
* streams/reference-implementation/readable-stream.html:

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

5 years agoBindings generator should generate code for Promise-based APIs
youenn.fablet@crf.canon.fr [Thu, 11 Jun 2015 19:26:47 +0000 (19:26 +0000)]
Bindings generator should generate code for Promise-based APIs
https://bugs.webkit.org/show_bug.cgi?id=145833

Reviewed by Darin Adler.

Covered by existing tests.

* Modules/webaudio/AudioContext.idl: Removing custom binding for resume, suspend and close.
* bindings/js/JSAudioContextCustom.cpp: Ditto.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader): Refactoring to use IsReturningPromise.
(GenerateImplementation): Disabling include for return type if it is a promise.
(GenerateParametersCheck): Adding DeferredWrapper() as argument to the DOM method if JS method returns a promise.
(GenerateImplementationFunctionCall): Added support for promise-returning API.
(IsReturningPromise): Checking whether function is returning a promise.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_test_promise_function):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj testPromiseFunction]):
* bindings/scripts/test/TestObj.idl: Adding promise returning function.

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

5 years agoRemove WebPluginSiteDataManager
andersca@apple.com [Thu, 11 Jun 2015 18:33:51 +0000 (18:33 +0000)]
Remove WebPluginSiteDataManager
https://bugs.webkit.org/show_bug.cgi?id=145884

Reviewed by Andreas Kling.

* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::clearSiteData): Deleted.
* PluginProcess/PluginProcess.h:
* PluginProcess/PluginProcess.messages.in:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
* UIProcess/API/C/WKPluginSiteDataManager.cpp:
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::clearSiteData): Deleted.
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::clearSiteData): Deleted.
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): Deleted.
(WebKit::PluginProcessProxy::didFinishLaunching): Deleted.
(WebKit::PluginProcessProxy::didClearSiteData): Deleted.
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.messages.in:
* UIProcess/Plugins/WebPluginSiteDataManager.cpp: Removed.
(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::GetSitesWithDataState): Deleted.
(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin): Deleted.
(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::didGetSitesWithDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::ClearSiteDataState::ClearSiteDataState): Deleted.
(WebKit::WebPluginSiteDataManager::ClearSiteDataState::clearSiteDataForNextPlugin): Deleted.
(WebKit::WebPluginSiteDataManager::ClearSiteDataState::didClearSiteDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::create): Deleted.
(WebKit::WebPluginSiteDataManager::WebPluginSiteDataManager): Deleted.
(WebKit::WebPluginSiteDataManager::~WebPluginSiteDataManager): Deleted.
(WebKit::WebPluginSiteDataManager::invalidate): Deleted.
(WebKit::WebPluginSiteDataManager::getSitesWithData): Deleted.
(WebKit::WebPluginSiteDataManager::didGetSitesWithData): Deleted.
(WebKit::WebPluginSiteDataManager::clearSiteData): Deleted.
(WebKit::WebPluginSiteDataManager::didClearSiteData): Deleted.
(WebKit::WebPluginSiteDataManager::didGetSitesWithDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins): Deleted.
(WebKit::WebPluginSiteDataManager::didClearSiteDataForSinglePlugin): Deleted.
(WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins): Deleted.
* UIProcess/Plugins/WebPluginSiteDataManager.h: Removed.
(WebKit::WebPluginSiteDataManager::processPool): Deleted.
(WebKit::WebPluginSiteDataManager::clearProcessPool): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
* WebKit2.xcodeproj/project.pbxproj:

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

5 years agoMissing content in UIWebView snapshots sometimes
simon.fraser@apple.com [Thu, 11 Jun 2015 18:01:44 +0000 (18:01 +0000)]
Missing content in UIWebView snapshots sometimes
https://bugs.webkit.org/show_bug.cgi?id=145779
rdar://problem/20744708

Reviewed by Darin Adler.

When expanding collapsed parts of quoted text on iOS, sometimes the "concertina"
images would be blank. This happened because we'd fail to create tiles for regions
outside the LegacyTileCache's visibleRect.

Fix by giving LegacyTileCache an optional override visibleRect, which is set
and cleared during -renderInContext: using the context clip rect.

* platform/ios/LegacyTileCache.h:
* platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::visibleRectInLayer):
(WebCore::LegacyTileCache::setOverrideVisibleRect):
* platform/ios/LegacyTileLayer.mm:
(-[LegacyTileHostLayer renderInContext:]):

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

5 years agoMake WKWebsiteDataStoreRef backed by an API::WebsiteDataStore
andersca@apple.com [Thu, 11 Jun 2015 17:45:35 +0000 (17:45 +0000)]
Make WKWebsiteDataStoreRef backed by an API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=145882

Reviewed by Dan Bernstein.

* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetPluginSiteDataManager):
* UIProcess/API/C/WKPluginSiteDataManager.cpp:
(WKPluginSiteDataManagerGetTypeID):
(WKPluginSiteDataManagerGetSitesWithData):
(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):

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

5 years agoSimplify event handling logic for search cancel button
dbates@webkit.org [Thu, 11 Jun 2015 17:20:53 +0000 (17:20 +0000)]
Simplify event handling logic for search cancel button
https://bugs.webkit.org/show_bug.cgi?id=145780

Reviewed by Darin Adler.

Following the patch for <https://bugs.webkit.org/show_bug.cgi?id=145774> we can take advantage
of the DOM click event to simplify the event handling logic for the search cancel button.
It is sufficient to listen for mousedown and click events instead of listening for mousedown
and mouseup events, capturing all events during drag, and using the hover state of the button
on mouse release together with a instance variable set on mouse press to determine whether
the cancel button was clicked.

As a side effect of removing the requirement that the search cancel button be hovered (a
workaround to ensure that the mouse was pressed and released on the button in absence of
listening for an explicit DOM click event) we can remove the accessibility-specific class,
AccessibilitySearchFieldCancelButton, that was primarily used to fake the hover state of
the button so that the accessibility machinery could simulate a click on it. Instead we
can add use the default accessibility machinery for clicking on an element.

No new tests since no functionality was changed.

* CMakeLists.txt: Remove reference to file AccessibilitySearchFieldButtons.cpp.
* WebCore.vcxproj/WebCore.vcxproj: Remove reference to files AccessibilitySearchFieldButtons.{cpp, h}.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer): Remove special-purpose logic that instantiated
AccessibilitySearchFieldCancelButton for the search cancel button. Instead we can make
use of the existing accessibility machinery to handle this button.
* accessibility/AccessibilityAllInOne.cpp: Remove #include of AccessibilitySearchFieldButtons.cpp
since the file is no longer needed.
* accessibility/AccessibilitySearchFieldButtons.cpp: Removed.
* accessibility/AccessibilitySearchFieldButtons.h: Removed.
* dom/Element.h:
(WebCore::Element::isSearchFieldCancelButtonElement): Deleted.
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement): Set the ARIA role
and label attributes so that the accessibility system identifies the search cancel button as
a button and shows a description for the button, respectively.
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Simplify the event handling logic
such that we clear the field when we receive a DOM click event (i.e. the mouse was pressed
and released on the button). Remove unused variable, oldValue. Substitute emptyString() for the
empty string literal in the call to HTMLInputElement::setValueForUser() to avoid an implicit
conversion to String. Also remove out-of-date comment that repeated what the code does.
(WebCore::SearchFieldCancelButtonElement::willDetachRenderers): Deleted. We no longer need to use
custom style resolve callbacks to reset the state of the EventHandler since we no longer need to
have the EventHandler dispatch all mouse events to us on mouse press.
* html/shadow/TextControlInnerElements.h:

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

5 years agoNetwork process crashes decoding invalid cache entry on 32bit system
antti@apple.com [Thu, 11 Jun 2015 17:03:02 +0000 (17:03 +0000)]
Network process crashes decoding invalid cache entry on 32bit system
https://bugs.webkit.org/show_bug.cgi?id=145842
rdar://problem/21228334

Reviewed by Anders Carlsson.

After cache scheme changes we may end up decoding invalid cache entries. This is by design,
we should just fail decoding and delete these entries.

However Decoder::bufferIsLargeEnoughToContain test in some cases would allow corrupted large
sizes due to overflow in 32bit pointer math and we would crash when allocating a string.

* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<CString>::decode):
(WebKit::NetworkCache::decodeStringText):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode):
(WebKit::NetworkCache::Coder<MD5::Digest>::encode):
* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheDecoder.cpp:
(WebKit::NetworkCache::Decoder::Decoder):
(WebKit::NetworkCache::Decoder::bufferIsLargeEnoughToContain):

    Reshuffle to avoid sum.

(WebKit::NetworkCache::Decoder::decodeFixedLengthData):
* NetworkProcess/cache/NetworkCacheDecoder.h:
(WebKit::NetworkCache::Decoder::bufferSize):
(WebKit::NetworkCache::Decoder::currentOffset):
(WebKit::NetworkCache::Decoder::length): Deleted.
(WebKit::NetworkCache::Decoder::isInvalid): Deleted.
(WebKit::NetworkCache::Decoder::markInvalid): Deleted.

    Remove these, they are not really used or needed.

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

5 years agoRewrite WKPluginSiteDataManager using WebsiteDataStore functions
andersca@apple.com [Thu, 11 Jun 2015 17:01:46 +0000 (17:01 +0000)]
Rewrite WKPluginSiteDataManager using WebsiteDataStore functions
https://bugs.webkit.org/show_bug.cgi?id=145868

Reviewed by Antti Koivisto.

* UIProcess/API/C/WKPluginSiteDataManager.cpp:
(WKPluginSiteDataManagerGetSitesWithData):
(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):
(toNPClearSiteDataFlags): Deleted.
* UIProcess/Plugins/WebPluginSiteDataManager.h:
(WebKit::WebPluginSiteDataManager::processPool):

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

5 years agoUnreviewed, rolling out r185453.
commit-queue@webkit.org [Thu, 11 Jun 2015 16:00:40 +0000 (16:00 +0000)]
Unreviewed, rolling out r185453.
https://bugs.webkit.org/show_bug.cgi?id=145881

it broke the 32-bit build (Requested by clopez on #webkit).

Reverted changeset:

"[GTK] [Wayland] Should be possible to build with support for
both X11 and Wayland."
https://bugs.webkit.org/show_bug.cgi?id=145701
http://trac.webkit.org/changeset/185453

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

5 years agoWeb Inspector: Rendering Frames timeline should distinguish between layout and painting
mattbaker@apple.com [Thu, 11 Jun 2015 15:42:02 +0000 (15:42 +0000)]
Web Inspector: Rendering Frames timeline should distinguish between layout and painting
https://bugs.webkit.org/show_bug.cgi?id=145856

Reviewed by Timothy Hatcher.

This patch formalizes the runloop task concept in the frontend, adds new Paint task type to the Rendering
Frames timeline, and reorders UI elements such as chart sections and frame "segments" to match the order in
which tasks are executed within the runloop.

We will need to make UI changes to the standard Timelines view in a follow up patch, since tree element icons
for Paint records now use a different color that those of other Layout records.

* UserInterface/Images/TimelineRecordPaint.svg:
Changed to use green color.

* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.displayNameForTaskType):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.set return):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
(WebInspector.RenderingFrameTimelineRecord.prototype.get durationRemainder): Deleted.
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForRecords.get var): Deleted.
Added TaskType enum to decouple runloop task types from timeline record types, and removed duration remainder
support now that "Other" has an associated task type.

* UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
Added new grid column for Paint task, reordered columns to be consistent with the rest of the UI.

* UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout):
(.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint):
(.timeline-record-frame > .frame > .duration): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-network): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout): Deleted.
(.timeline-record-frame > .frame > .duration.timeline-record-type-script): Deleted.
Updated styles for Render Frame tasks.

* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
Updated to use Render Frame task types. Frame segment insertion order is now consistent with the rest of the UI.

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.chartData.Object.keys.map):
(WebInspector.TimelineSidebarPanel.set this):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.get this):
(WebInspector.TimelineSidebarPanel): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart.durationForRecordType): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart): Deleted.
Updated to use Render Frame task types.

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

5 years agoWeb Inspector: Wrong overview graph shown after switching from Frames to Timelines
mattbaker@apple.com [Thu, 11 Jun 2015 15:24:55 +0000 (15:24 +0000)]
Web Inspector: Wrong overview graph shown after switching from Frames to Timelines
https://bugs.webkit.org/show_bug.cgi?id=145778

Reviewed by Timothy Hatcher.

TimelineSidebarPanel stores a reference to the selected timeline before switching to the Rendering Frames view,
which is used to restore the tree selection, overview graph, and content views when switching back to the
standard Timelines view. However if another recording is created before switching, the previously selected
timeline tracked by the sidebar cannot be restored, since it doesn't belong to the active recording.

This is addressed by storing the previously selected timeline type, rather than the timeline object itself.
The type is also updated whenever the selected timeline in the tree outline changes, ensuring that the correct
timeline will always be restored.

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.get else): Deleted.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if): Deleted.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject): Deleted.

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

5 years ago[GTK] [Wayland] Should be possible to build with support for both X11 and Wayland.
clopez@igalia.com [Thu, 11 Jun 2015 15:21:07 +0000 (15:21 +0000)]
[GTK] [Wayland] Should be possible to build with support for both X11 and Wayland.
https://bugs.webkit.org/show_bug.cgi?id=145701

Reviewed by Žan Doberšek.

.:

* Source/cmake/OptionsGTK.cmake: Remove conflicting options.

Source/WebCore:

No new tests, no behavior changes.

When building both targets, we have to include the wayland-egl
headers in order to build the Wayland target. This causes that
EGLNativePixmapType and EGLNativeWindowType get defined as
different types than when building only the X11 target.

By type casting them to the ones that are expected, we are able
to build both targets at the same time.

I have done tests (building each target alone as also both targets
at the same time), and everything seems to works as expected.

Once built for both targets, if you try to launch the MiniBrowser
from inside a Wayland compositor (Weston on top of X for example),
it will trigger the X11 target if the DISPLAY environment variable
is set and the environment variable GDK_BACKEND is not set to wayland,
otherwise it will trigger the Wayland target.

* platform/graphics/GLContext.cpp:
(WebCore::GLContext::createContextForWindow): Add type cast.
* platform/graphics/egl/GLContextEGL.cpp: Add missing include when
building both targets that is required for defining DefaultRootWindow().
(WebCore::GLContextEGL::createPixmapContext): Add type cast.

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

5 years ago3% cold PLT regression from network cache on iOS
antti@apple.com [Thu, 11 Jun 2015 12:05:25 +0000 (12:05 +0000)]
3% cold PLT regression from network cache on iOS
https://bugs.webkit.org/show_bug.cgi?id=145694
rdar://problem/21158245

Reviewed by Chris Dumez.

Cache does not help in cold page loads but it shouldn't' be hurting either. Write I/O needs to be toned down a bit.

* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::open):

    Dispatch channels inherit their I/O priority from the target queue. Use background queue for write I/O.

* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::dispatchPendingReadOperations):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):

    Only write one file at a time instead of maximum of three.

(WebKit::NetworkCache::Storage::retrieve):

    For consistency with store prepend new entries here too.

(WebKit::NetworkCache::Storage::store):

    Delay start of the first write operation by 1s.
    Prepend instead of append to the pending write deque so retrieveFromMemory lookup finds newest entries first in case of duplicates

(WebKit::NetworkCache::Storage::traverse):
* NetworkProcess/cache/NetworkCacheStorage.h:

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

5 years ago[EFL] Fix the debug build after r185417.
commit-queue@webkit.org [Thu, 11 Jun 2015 09:30:55 +0000 (09:30 +0000)]
[EFL] Fix the debug build after r185417.
https://bugs.webkit.org/show_bug.cgi?id=145876

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-06-11
Reviewed by Gyuyoung Kim.

* platform/graphics/efl/ImageBufferEfl.cpp: added the missing "MIMETypeRegistry.h".

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

5 years ago[iOS] Tahoma isn't installed on iOS, so there is no need to blacklist it
mmaxfield@apple.com [Thu, 11 Jun 2015 07:00:17 +0000 (07:00 +0000)]
[iOS] Tahoma isn't installed on iOS, so there is no need to blacklist it
https://bugs.webkit.org/show_bug.cgi?id=145865

Reviewed by Dan Bernstein.

No new tests because I can't copy Tahoma into our open source repository.

* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::fontFamilyShouldNotBeUsedForArabic):

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

5 years ago[EFL] dimmed area for popup does not cover the fullscreen mode.
hyuki.kim@samsung.com [Thu, 11 Jun 2015 06:55:48 +0000 (06:55 +0000)]
[EFL] dimmed area for popup does not cover the fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=145133

Reviewed by Gyuyoung Kim.

By calling elm_win_resize_object_add(), popup was added as a resize object of elm_win.
as a result, popup can cover the fullscreen area when it enters a fullscreen mode.

* MiniBrowser/efl/main.c:
(on_fullscreen_accept):
(on_fullscreen_deny):
(on_fullscreen_enter):

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

5 years agoDon't send touch events on link preview.
commit-queue@webkit.org [Thu, 11 Jun 2015 05:48:02 +0000 (05:48 +0000)]
Don't send touch events on link preview.
https://bugs.webkit.org/show_bug.cgi?id=145863

Disable web touch event recognizer on link preview. We do the same when finding nodes in inspector or when long press gesture
is recognized (by _cancelAllTouches).

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-06-10
Reviewed by Beth Dakin.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): Remove touch event gesture recognizer on preview start.
(-[WKContentView didDismissPreviewViewController:committing:]): Add the gesture recognizer back on dismiss.

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

5 years agoUnreviewed, rolling out r185442.
commit-queue@webkit.org [Thu, 11 Jun 2015 04:16:24 +0000 (04:16 +0000)]
Unreviewed, rolling out r185442.
https://bugs.webkit.org/show_bug.cgi?id=145871

seems to have broken WTF.StringOperators test (Requested by
alexchristensen on #webkit).

Reverted changeset:

"[Content Extensions] Limit number of rules."
https://bugs.webkit.org/show_bug.cgi?id=145663
http://trac.webkit.org/changeset/185442

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

5 years agoUpdate presentation mode JS API to using 'picture-in-picture'
jonlee@apple.com [Thu, 11 Jun 2015 02:57:08 +0000 (02:57 +0000)]
Update presentation mode JS API to using 'picture-in-picture'
https://bugs.webkit.org/show_bug.cgi?id=145826
rdar://problem/2131153

Reviewed by Anders Carlsson.

Update presentation modes to use 'picture-in-picture' in lieu of 'optimized'.

* html/HTMLVideoElement.idl: Update to "picture-in-picture".
* html/HTMLVideoElement.cpp:
(WebCore::presentationModePictureInPicture): Rename static function returning string.
(WebCore::presentationModeOptimized): Deleted.
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Use the new static function name.
(WebCore::HTMLVideoElement::webkitSetPresentationMode): Ditto.
(WebCore::HTMLVideoElement::webkitPresentationMode): Ditto.

* Modules/mediacontrols/mediaControlsiOS.js: Update to 'picture-in-picture'.
(ControllerIOS.prototype.configureInlineControls):
(ControllerIOS.prototype.isFullScreen):
(ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked):
(ControllerIOS.prototype.handlePresentationModeChange):
(ControllerIOS.prototype.controlsAlwaysVisible):

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

5 years agoWKWebsiteDataStore should handle removing plug-in data for individual records
andersca@apple.com [Thu, 11 Jun 2015 02:34:03 +0000 (02:34 +0000)]
WKWebsiteDataStore should handle removing plug-in data for individual records
https://bugs.webkit.org/show_bug.cgi?id=145864

Reviewed by Beth Dakin.

* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::deleteWebsiteDataForHostNames):
* PluginProcess/PluginProcess.h:
* PluginProcess/PluginProcess.messages.in:
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::deleteWebsiteDataForHostNames):
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames):
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didFinishLaunching):
(WebKit::PluginProcessProxy::didDeleteWebsiteDataForHostNames):
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.messages.in:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):

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

5 years ago[Mobile Safari, WKWebView] increase DeviceOrientationEvent events emission frequency
benjamin@webkit.org [Thu, 11 Jun 2015 02:01:46 +0000 (02:01 +0000)]
[Mobile Safari, WKWebView] increase DeviceOrientationEvent events emission frequency
https://bugs.webkit.org/show_bug.cgi?id=145814

Patch by Boris Smus <boris@smus.com> on 2015-06-10
Reviewed by Benjamin Poulain.

Increased the sampling rate of DeviceOrientationEvent from 20 Hz to 60
Hz to make good head tracking possible.

* platform/ios/WebCoreMotionManager.h:

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

5 years ago[Mobile Safari, WKWebView] increase DeviceOrientationEvent events emission frequency
benjamin@webkit.org [Thu, 11 Jun 2015 01:57:49 +0000 (01:57 +0000)]
[Mobile Safari, WKWebView] increase DeviceOrientationEvent events emission frequency
https://bugs.webkit.org/attachment.cgi?bugid=145814

Patch by Boris Smus <boris@smus.com> on 2015-06-10
Reviewed by Benjamin Poulain.

Increased the sampling rate of DeviceOrientationEvent from 20 Hz to 60
Hz to make good head tracking possible.

* platform/ios/WebCoreMotionManager.h:

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

5 years agoSource/WebCore:
achristensen@apple.com [Thu, 11 Jun 2015 00:52:22 +0000 (00:52 +0000)]
Source/WebCore:
[Content Extensions] Limit number of rules.
https://bugs.webkit.org/show_bug.cgi?id=145663
rdar://problem/21242407

Reviewed by Benjamin Poulain.

Added an API test to make sure that parsing fails when there are too many rules.

* contentextensions/ContentExtensionError.cpp:
(WebCore::ContentExtensions::contentExtensionErrorCategory):
* contentextensions/ContentExtensionError.h:
* contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::loadEncodedRules):
Fail to parse a content extension with more than 50000 rules.

Tools:
[Content Extensions] Make max NFA size and max rule count user defaults.
https://bugs.webkit.org/show_bug.cgi?id=145663
rdar://problem/21242407

Reviewed by Benjamin Poulain.

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):

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

5 years agoASSERTION FAILED: s.length() > 1 on LayoutTests/js/regexp-flags.html
utatane.tea@gmail.com [Thu, 11 Jun 2015 00:40:17 +0000 (00:40 +0000)]
ASSERTION FAILED: s.length() > 1 on LayoutTests/js/regexp-flags.html
https://bugs.webkit.org/show_bug.cgi?id=145599

Unreviewed, simple follow up patch.

use jsString instead of jsMakeNontrivialString
since the flag string may be trivial (0 or 1 length).

* runtime/RegExpPrototype.cpp:
(JSC::regExpProtoGetterFlags):

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

5 years agoWKWebsiteDataStore should handle removing plug-in data
andersca@apple.com [Thu, 11 Jun 2015 00:27:39 +0000 (00:27 +0000)]
WKWebsiteDataStore should handle removing plug-in data
https://bugs.webkit.org/show_bug.cgi?id=145862

Reviewed by Sam Weinig.

* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::deleteWebsiteData):
* PluginProcess/PluginProcess.h:
* PluginProcess/PluginProcess.messages.in:
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::deleteWebsiteData):
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::~PluginProcessProxy):
(WebKit::PluginProcessProxy::deleteWebsiteData):
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didFinishLaunching):
(WebKit::PluginProcessProxy::didDeleteWebsiteData):
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.messages.in:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):

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

5 years agoREGRESSION (r184895): Vertical border elements ([-webkit]-border-image set to 'repeat...
commit-queue@webkit.org [Wed, 10 Jun 2015 23:50:33 +0000 (23:50 +0000)]
REGRESSION (r184895): Vertical border elements ([-webkit]-border-image set to 'repeat') that used to render perfectly are now rendering incorrectly.
https://bugs.webkit.org/show_bug.cgi?id=145801

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-10
Reviewed by Simon Fraser.

Source/WebCore:

When using the tiling to draw the sides of an image-border, the image slice
is repeated only in one direction. For top and bottom sides, the slice is
repeated horizontally and for left and right sides, it's repeated vertically.
The tile might be scaled in the other direction of the tiling if the border
extent and the slice extent are different in this direction.

The bug happens because we were scaling the tile in the tiling direction.

Test: fast/borders/border-image-repeat-stretch.html

* rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImage::scaleSlicesIfNeeded): Fix the type and the name
of deviceScaleFactor.

(WebCore::NinePieceImage::computeIntrinsicSideTileScale): Fix the scaling
direction of the border image side tiling.

* rendering/style/NinePieceImage.h:

LayoutTests:

* fast/borders/border-image-repeat-stretch-expected.html: Added.
* fast/borders/border-image-repeat-stretch.html: Added.
* fast/borders/resources/border-image-repeat-stretch-expected.svg: Added.
* fast/borders/resources/border-image.svg: Added.
Ensure that the sides of a border-images are drawn correctly in the cases
of 'repeat' and 'stretch'.

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

5 years agoJavaScript: Drop the “escaped reserved words as identifiers” compatibility measure
utatane.tea@gmail.com [Wed, 10 Jun 2015 23:43:20 +0000 (23:43 +0000)]
JavaScript: Drop the “escaped reserved words as identifiers” compatibility measure
https://bugs.webkit.org/show_bug.cgi?id=90678

Reviewed by Darin Adler.

After ES6, escaped reserved words in identifiers are prohibited.
After parsing Identifier, we should perform `m_buffer16.shrink(0)`.

* parser/Lexer.cpp:
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):
* tests/mozilla/ecma_3/Unicode/uc-003.js:
(test): Deleted.
* tests/stress/reserved-word-with-escape.js: Added.
(testSyntax):
(testSyntaxError):

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

5 years agoMeta refresh preference is not respected on fast path WebView
jhoneycutt@apple.com [Wed, 10 Jun 2015 23:35:36 +0000 (23:35 +0000)]
Meta refresh preference is not respected on fast path WebView
initialization

<https://bugs.webkit.org/show_bug.cgi?id=145861>
<rdar://problem/21309911>

Reviewed by Brady Eidson.

* WebView/WebView.mm:
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Set the WebCore setting from the WebPreferences preference.

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

5 years agoASSERT_WITH_SECURITY_IMPLICATION in WebCore::DocumentOrderedMap::getElementById
cdumez@apple.com [Wed, 10 Jun 2015 23:07:55 +0000 (23:07 +0000)]
ASSERT_WITH_SECURITY_IMPLICATION in WebCore::DocumentOrderedMap::getElementById
https://bugs.webkit.org/show_bug.cgi?id=145857
<rdar://problem/16798440>

Reviewed by Darin Adler.

Source/WebCore:

Make sure Node::insertedInto() gets called on the inserted node and its
descendants after its insertion into the tree but *before*
ContainerNode::childrenChanged() is called on the parent node. This is
needed so that the descendants know they've been inserted into the tree
(and their InDocumentFlag flag gets set) before the parent node does
anything with them in childrenChanged().

In the case of <rdar://problem/16798440>, executing HTMLScriptElement's
childrenChanged() after appending a child to a script element was causing
the script to be executed. The script would call getElementBy() which
would traverse the DOM tree and find a matching Element in the newly
inserted subtree. However, the matching Element's InDocumentFlag flag was
not set yet because the element's insertedInto() method has not been called
yet at this point. This would cause us to hit an assertion as
DocumentOrderedMap::getElementById() is only supposed to return elements
that are in a Document.

This patch is based on Blink r178976 by <esprehn@chromium.org>:
https://src.chromium.org/viewvc/blink?view=rev&revision=178976

Tests: fast/dom/script-getElementById-during-insertion.html
       fast/dom/script-remove-child-id-map.html

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::notifyChildInserted):
(WebCore::ContainerNode::notifyChildRemoved):
(WebCore::ContainerNode::removeChildren):
(WebCore::ContainerNode::parserInsertBefore): Deleted.
(WebCore::ContainerNode::removeChild): Deleted.
(WebCore::ContainerNode::parserRemoveChild): Deleted.
(WebCore::ContainerNode::parserAppendChild): Deleted.
(WebCore::ContainerNode::childrenChanged): Deleted.
(WebCore::ContainerNode::setAttributeEventListener): Deleted.
(WebCore::ContainerNode::querySelector): Deleted.
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
(WebCore::ChildNodeInsertionNotifier::notify):
(WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument): Deleted.
* dom/Element.cpp:
(WebCore::Element::addShadowRoot):

LayoutTests:

Add layout tests covering different crashes caused by the same bug.

* fast/dom/script-getElementById-during-insertion-expected.txt: Added.
* fast/dom/script-getElementById-during-insertion.html: Added.

Reduction test case for <rdar://problem/16798440>.

* fast/dom/script-remove-child-id-map-expected.txt: Added.
* fast/dom/script-remove-child-id-map.html: Added.

Test imported from Blink r178976.

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

5 years ago[Web Timing] Fix flaky test.
commit-queue@webkit.org [Wed, 10 Jun 2015 22:53:42 +0000 (22:53 +0000)]
[Web Timing] Fix flaky test.
https://bugs.webkit.org/show_bug.cgi?id=145846

Patch by Alex Christensen <achristensen@webkit.org> on 2015-06-10
Reviewed by Alexey Proskuryakov.

The timing data is gathered in ResourceHandle::getConnectionTimingData as
millisecond deltas from the fetch start time, not the navigation start time.
The difference between navigation and fetch start time is usually so small that
it only caused one flaky test, but this should fix that flakiness. This patch
corrects how the millisecond deltas are used.

* page/PerformanceTiming.cpp:
(WebCore::PerformanceTiming::domainLookupStart):
(WebCore::PerformanceTiming::domainLookupEnd):
(WebCore::PerformanceTiming::connectStart):
(WebCore::PerformanceTiming::connectEnd):
(WebCore::PerformanceTiming::secureConnectionStart):
(WebCore::PerformanceTiming::requestStart):
(WebCore::PerformanceTiming::responseStart):
(WebCore::PerformanceTiming::responseEnd):
(WebCore::PerformanceTiming::documentLoadTiming):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToFetchStart):
(WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Deleted.
* page/PerformanceTiming.h:

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

5 years agoUnreviewed, fix an typo in unused template code.
basile_clement@apple.com [Wed, 10 Jun 2015 22:44:12 +0000 (22:44 +0000)]
Unreviewed, fix an typo in unused template code.

* wtf/TinyPtrSet.h:
(WTF::TinyPtrSet::iterator::operator*): s/at(index)/at(m_index)/

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

5 years agoImplement RegExp.prototype.flags
commit-queue@webkit.org [Wed, 10 Jun 2015 22:32:36 +0000 (22:32 +0000)]
Implement RegExp.prototype.flags
https://bugs.webkit.org/show_bug.cgi?id=145599

Patch by Jordan Harband <ljharb@gmail.com> on 2015-06-10
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.flags

* runtime/CommonIdentifiers.h:
* runtime/RegExpPrototype.cpp:
(JSC::flagsString):
(JSC::regExpProtoFuncToString):
(JSC::regExpProtoGetterFlags):
* tests/stress/static-getter-in-names.js:

LayoutTests:

* js/Object-getOwnPropertyNames-expected.txt:
* js/regexp-flags-expected.txt: Added.
* js/regexp-flags.html: Added.
* js/script-tests/Object-getOwnPropertyNames.js:
* js/script-tests/regexp-flags.js: Added.
(.get shouldBe):

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

5 years agoOverriding the overlay scrollbar style on WKView doesn't take effect immediately
bdakin@apple.com [Wed, 10 Jun 2015 21:53:42 +0000 (21:53 +0000)]
Overriding the overlay scrollbar style on WKView doesn't take effect immediately
https://bugs.webkit.org/show_bug.cgi?id=145855
-and corresponding-
rdar://problem/20948706

Reviewed by Simon Fraser.

Since we opt into layer-per-part scrollbars in order to move the knob on the
secondary thread, AppKit is creating its own layers for the knob and track. To
invalidate them, we need to call into the ScrollbarPainter’s setNeedsDisplay.

New virtual function on ScrollAnimator to call into ScrollbarPainter’s
setNeedsDispay.
* platform/ScrollAnimator.h:

Call the new function when setting the overlay style.
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::setScrollbarOverlayStyle):

Add setNeedsDisplay to the list of ScrollbarPainter methods.
* platform/mac/NSScrollerImpDetails.h:

Implement invalidateScrollbarPartLayers.
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::invalidateScrollbarPartLayers):

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

5 years agoMove all content extension tests to same directory to fix flakiness.
achristensen@apple.com [Wed, 10 Jun 2015 21:30:23 +0000 (21:30 +0000)]
Move all content extension tests to same directory to fix flakiness.
https://bugs.webkit.org/show_bug.cgi?id=145854

Reviewed by Alexey Proskuryakov.

* http/tests/contentextensions/loading/main-resource-redirect-blocked-expected.txt: Removed.
* http/tests/contentextensions/loading/main-resource-redirect-blocked.php: Removed.
* http/tests/contentextensions/loading/main-resource-redirect-blocked.php.json: Removed.
* http/tests/contentextensions/loading/resources/main-resource-redirect-blocked-target.html: Removed.
* http/tests/contentextensions/main-resource-redirect-blocked-expected.txt: Copied from http/tests/contentextensions/loading/main-resource-redirect-blocked-expected.txt.
* http/tests/contentextensions/main-resource-redirect-blocked.php: Copied from http/tests/contentextensions/loading/main-resource-redirect-blocked.php.
* http/tests/contentextensions/main-resource-redirect-blocked.php.json: Copied from http/tests/contentextensions/loading/main-resource-redirect-blocked.php.json.
* http/tests/contentextensions/resources/main-resource-redirect-blocked-target.html: Copied from http/tests/contentextensions/loading/resources/main-resource-redirect-blocked-target.html.

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

5 years agoMediaRemoteControls should be marked JSGenerateToJSObject.
commit-queue@webkit.org [Wed, 10 Jun 2015 20:50:48 +0000 (20:50 +0000)]
MediaRemoteControls should be marked JSGenerateToJSObject.
https://bugs.webkit.org/show_bug.cgi?id=145849

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-10
Reviewed by Eric Carlson.

Since MediaRemoteControls has a parent interface, we need to add the JSGenerateToJSObject attribute so the
toJS(...) function gets generated. This is required for event handling to work.

* Modules/mediasession/MediaRemoteControls.idl:

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

5 years ago[WK2] Do not indicate Media Keys are present when they are not
bfulgham@apple.com [Wed, 10 Jun 2015 20:47:15 +0000 (20:47 +0000)]
[WK2] Do not indicate Media Keys are present when they are not
https://bugs.webkit.org/show_bug.cgi?id=145713
<rdar://problem/19752566>

Reviewed by Dean Jackson.

Correct the reporting of Media Key presence by checking for the actual
media key file, not just the directory. Sometimes the directory will exist
with no media key files (e.g., if a user navigates to the directory using
the Finder).

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeMediaKeyFile): Moved earlier in file so it could be used by
the 'mediaKeyOrigins' method.
(WebKit::WebsiteDataStore::mediaKeyOrigins): Only indicate we have a media key
origin if the folder actually contains the media key file.
(WebKit::WebsiteDataStore::removeMediaKeys): Use the existing 'computeMediaKeyFile',
rather than manually building the file from strings.

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

5 years agoDFG ASSERTION FAILED: !iterate() on stress/singleton-scope-then-overwrite.js.ftl...
fpizlo@apple.com [Wed, 10 Jun 2015 20:35:14 +0000 (20:35 +0000)]
DFG ASSERTION FAILED: !iterate() on stress/singleton-scope-then-overwrite.js.ftl-eager
https://bugs.webkit.org/show_bug.cgi?id=145853

Unreviewed, remove the assertion.

* dfg/DFGCSEPhase.cpp:

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

5 years agoUser can not scroll on page when dragging inside video
dino@apple.com [Wed, 10 Jun 2015 18:56:32 +0000 (18:56 +0000)]
User can not scroll on page when dragging inside video
https://bugs.webkit.org/show_bug.cgi?id=145848
<rdar://problem/20997158>

Reviewed by Brent Fulgham.

Revert the change made in http://trac.webkit.org/changeset/183797
which breaks panning on pages if the touch starts inside the video.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.handleWrapperTouchStart): Do not return true, which stops
the handleEvent call in the superclass from preventing the default action.

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

5 years agoJetStream should have a more rational story for jitter-oriented latency tests
fpizlo@apple.com [Wed, 10 Jun 2015 18:44:50 +0000 (18:44 +0000)]
JetStream should have a more rational story for jitter-oriented latency tests
https://bugs.webkit.org/show_bug.cgi?id=145762

Reviewed by Geoffrey Garen.

JetStream has some latency tests that are meant to measure jitter.  Prior to this change, they
did this by computing the RMS.  But the RMS is a pretty bad metric.  The thing that it rewards
isn't really the thing that you'd want your browser to do.  These RMS-based tests involve taking
the geomean of the RMS of some samples and the sample average.  The lower the geomean, the better
(in the JetStream harness we then invert the scores so that higher is better, but let's ignore
that for this discussion and assume that lower is better).  Here's an example of how this can go
bad.  A browser that always computes a task in some horribly long time (say, 1000ms) but never
varies that time will perform better than a browser that usually computes the task super quickly
(say, 10ms) and sometimes just a little bit less quickly (say, 15ms).  The former browser will
have an RMS of 0 and an average of 1000.  The latter will have a RMS somewhere around 3.5 and an
average of 12.5 (assuming equal probability of 10ms and 15ms).  The geomean of (0, 1000) is 0.
The geomean of (3.5, 12.5) is 6.6.  Lower is better, so the former browser scores higher - even
though it's obviously never better to have a browser always complete a task in 1000ms when a
different browser can do it in 15ms in the worst case.

JetStream should not have this pathology.  The right way of avoiding it is to replace RMS with
some other metric of how bad things get.  A good metric is the average of the worst percentile.
The worst 1% or the worst 5% would be good things to average.  This will catch cases where the VM
jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
to a VM whose best case is worst than another VM's worst case.

For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
is the best thing - it might include too many scores that are around the best-case performance -
but it's certainly better than RMS and it might be good enough to keep. But because of that
uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
release this yet.

* JetStream/Octane2/base.js:
(.this.Setup.setup.setup):
(.this.TearDown.tearDown.tearDown):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.RunSingleBenchmark):
* JetStream/Octane2/mandreel.js:
(setupMandreel):
(updateMandreelStats):
(startMandreelTimer):
(latencyMandreel):
(tearDownMandreel):
(RMSMandreel): Deleted.
* JetStream/Octane2/splay.js:
(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplayTearDown):
(SplayRMS): Deleted.
* JetStream/create.rb:

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

5 years agoExplicitly keep track of active HTMLMediaElements in MediaSessions.
commit-queue@webkit.org [Wed, 10 Jun 2015 18:43:52 +0000 (18:43 +0000)]
Explicitly keep track of active HTMLMediaElements in MediaSessions.
https://bugs.webkit.org/show_bug.cgi?id=145829

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-10
Reviewed by Eric Carlson.

* Modules/mediasession/MediaSession.cpp: Add support for keeping track of active media elements.
(WebCore::MediaSession::addActiveMediaElement):
* Modules/mediasession/MediaSession.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::playInternal): If the paused attribute is true and the readyState attribute has the
  value HAVE_FUTURE_DATA or HAVE_ENOUGH_DATA, the media element becomes an active participating element of the
  media session.

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

5 years agoDrop unused argument for Node::didNotifySubtreeInsertions()
cdumez@apple.com [Wed, 10 Jun 2015 18:15:23 +0000 (18:15 +0000)]
Drop unused argument for Node::didNotifySubtreeInsertions()
https://bugs.webkit.org/show_bug.cgi?id=145845

Reviewed by Andreas Kling.

* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildNodeInsertionNotifier::notify):
* dom/Node.h:
(WebCore::Node::didNotifySubtreeInsertions):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions):
* html/HTMLFrameElementBase.h:
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::didNotifySubtreeInsertions):
* svg/SVGFEImageElement.h:
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::didNotifySubtreeInsertions):
* svg/SVGMPathElement.h:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::didNotifySubtreeInsertions):
* svg/SVGTRefElement.h:
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::didNotifySubtreeInsertions):
* svg/SVGTextPathElement.h:
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::didNotifySubtreeInsertions):
* svg/animation/SVGSMILElement.h:

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

5 years agoSupport fetching website data
andersca@apple.com [Wed, 10 Jun 2015 16:57:20 +0000 (16:57 +0000)]
Support fetching website data
https://bugs.webkit.org/show_bug.cgi?id=145828

Reviewed by Darin Adler.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::plugins):
* UIProcess/WebsiteData/WebsiteDataStore.h:

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

5 years agoUnreviewed, rolling out r185414.
commit-queue@webkit.org [Wed, 10 Jun 2015 16:43:13 +0000 (16:43 +0000)]
Unreviewed, rolling out r185414.
https://bugs.webkit.org/show_bug.cgi?id=145844

broke debug and jsc tests (Requested by alexchristensen on
#webkit).

Reverted changeset:

"JavaScript: Drop the “escaped reserved words as identifiers”
compatibility measure"
https://bugs.webkit.org/show_bug.cgi?id=90678
http://trac.webkit.org/changeset/185414

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

5 years agoUnreviewed. Fixing the build for the GTK port with Clang.
zandobersek@gmail.com [Wed, 10 Jun 2015 15:58:40 +0000 (15:58 +0000)]
Unreviewed. Fixing the build for the GTK port with Clang.

* UIProcess/gtk/InputMethodFilter.h: Add the <functional> header inclusion
to avoid compilation errors due to missing std::function<>.

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

5 years ago[EFL] Jpeg image export implementation for Canvas.
hyuki.kim@samsung.com [Wed, 10 Jun 2015 15:58:13 +0000 (15:58 +0000)]
[EFL] Jpeg image export implementation for Canvas.
https://bugs.webkit.org/show_bug.cgi?id=145457

Reviewed by Gyuyoung Kim.

Add implementation of jpeg image export on Webkit EFL by using JPEGImageEncoder.

No new tests, fast/canvas/toDataURL-supportedTypes.html can be reused.

* PlatformEfl.cmake:
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypesForEncoding):
* platform/graphics/cairo/ImageBufferCairo.cpp:
* platform/graphics/efl/ImageBufferEfl.cpp: Added.
(WebCore::writeFunction):
(WebCore::encodeImage):
(WebCore::ImageBuffer::toDataURL):
* platform/image-encoders/JPEGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToJPEG):

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

5 years ago[GTK] Move KeyBindingTranslator from platform to WebKit2 layer
carlosgc@webkit.org [Wed, 10 Jun 2015 15:17:53 +0000 (15:17 +0000)]
[GTK] Move KeyBindingTranslator from platform to WebKit2 layer
https://bugs.webkit.org/show_bug.cgi?id=145840

Reviewed by Martin Robinson.

It's currently used only by WebKit2 in the UI process and it's
another file built twice because of the GTK2 plugin process.

* PlatformGTK.cmake:
Source/WebKit2:

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
* UIProcess/gtk/KeyBindingTranslator.cpp: Renamed from Source/WebCore/platform/gtk/KeyBindingTranslator.cpp.
(WebKit::backspaceCallback):
(WebKit::selectAllCallback):
(WebKit::cutClipboardCallback):
(WebKit::copyClipboardCallback):
(WebKit::pasteClipboardCallback):
(WebKit::toggleOverwriteCallback):
(WebKit::popupMenuCallback):
(WebKit::showHelpCallback):
(WebKit::deleteFromCursorCallback):
(WebKit::moveCursorCallback):
(WebKit::KeyBindingTranslator::KeyBindingTranslator):
(WebKit::KeyBindingTranslator::commandsForKeyEvent):
* UIProcess/gtk/KeyBindingTranslator.h: Renamed from Source/WebCore/platform/gtk/KeyBindingTranslator.h.
(WebKit::KeyBindingTranslator::addPendingEditorCommand):

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

5 years ago[GTK] Get rid of GetEditorCommandsForKeyEvent sync message
carlosgc@webkit.org [Wed, 10 Jun 2015 13:32:22 +0000 (13:32 +0000)]
[GTK] Get rid of GetEditorCommandsForKeyEvent sync message
https://bugs.webkit.org/show_bug.cgi?id=145598

Reviewed by Žan Doberšek.

Source/WebCore:

* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::commands):
* platform/gtk/KeyBindingTranslator.cpp: Use a single list of
custom key bindings. We don't need to distinguish between key down and
key press commands, since the web editor client already does that
when executing the commands.
(WebCore::KeyBindingTranslator::commandsForKeyEvent): This is
getEditorCommandsForKeyEvent() renamed as commandsForKeyEvent(),
since it now returns the list of commands to simplify the
code. Also simplify the custom key bindings handling, by using the
global list instead of moving it to a HashMap.
(WebCore::KeyBindingTranslator::getEditorCommandsForKeyEvent): Deleted.
* platform/gtk/KeyBindingTranslator.h:

Source/WebKit2:

We are sending GetEditorCommandsForKeyEvent sync message from web
process to the UI process for every key pressed. And if the
keydown event doesn't handle the key, the message is sent again
for the keypress event, so in many cases it happens twice per
keypress. We can get the list of commands when the key press event
happens in the web view, and send it to the web process as part of
the keyboard event like mac port does. In the web process,
commands not inserting text will be handled by keydown and the
rest in keypress without having to use any other IPC message for that.

* Shared/NativeWebKeyboardEvent.h: Add command list parameter to
the constructor.
* Shared/WebEvent.h: Add GTK specific constructor that receives a
list of commands and whether the event was handled by input methods.
(WebKit::WebKeyboardEvent::commands): Returns the list of commands.
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
Also copy the commands and handledByInputMethod member.
* Shared/WebKeyboardEvent.cpp:
(WebKit::WebKeyboardEvent::WebKeyboardEvent): Implement GTK
specific constructor that receives a list of commands and whether
the event was handled by input methods.
(WebKit::WebKeyboardEvent::encode): Encode commands and handledByInputMethod.
(WebKit::WebKeyboardEvent::decode): Decode commands and handledByInputMethod.
* Shared/gtk/NativeWebKeyboardEventGtk.cpp:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Add
command list parameter to the constructor.
* Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebKeyboardEvent): Use the new
WebKeyboardEvent constructor and simplify the code. We don't need
to explicitly set VK_PROCESSKEY as windows virtual key code when
the event was handled by input methods. The WebCore event handler
already does that.
* Shared/gtk/WebEventFactory.h:
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::getEditorCommandsForKeyEvent): Deleted.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp: Add a
KeyBindingTranslator member.
(webkitWebViewBaseKeyPressEvent): Use the new
InputMethodFilter::filterKeyEvent() API and get the list of
commands for the key when events was not handled by input methods.
(webkitWebViewBaseKeyReleaseEvent): Use the new
InputMethodFilter::filterKeyEvent() API.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.messages.in: Remove GetEditorCommandsForKeyEvent message.
* UIProcess/gtk/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::handleKeyboardEvent): Call the
completation handler.
(WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults): Ditto.
(WebKit::InputMethodFilter::filterKeyEvent): Use a completion
handler for the task, so that the caller (the web view) can handle
the keyboard event.
* UIProcess/gtk/InputMethodFilter.h:
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::getEditorCommandsForKeyEvent): Deleted.
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::handleKeyboardEvent): Return earlier if
the event was handled by input methods. And get the list of
commands from the PlatformKeyboardEvent instead of sending a sync
message to the UI process.
(WebKit::WebEditorClient::handleInputMethodKeydown): If the event
was handled by inpout methods, set the event as default handled so
that the WebCore event handler sets VK_PROCESSKEY as windows
virtual key code.
(WebKit::WebEditorClient::getEditorCommandsForKeyEvent): Deleted.

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

5 years agoJavaScript: Drop the “escaped reserved words as identifiers” compatibility measure
utatane.tea@gmail.com [Wed, 10 Jun 2015 13:25:38 +0000 (13:25 +0000)]
JavaScript: Drop the “escaped reserved words as identifiers” compatibility measure
https://bugs.webkit.org/show_bug.cgi?id=90678

Reviewed by Darin Adler.

After ES6, escaped reserved words in identifiers are prohibited.

* parser/Lexer.cpp:
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):
* tests/stress/reserved-word-with-escape.js: Added.
(testSyntax):
(testSyntaxError):

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

5 years agoUnreviewed. Fix GTK build after r185412.
carlosgc@webkit.org [Wed, 10 Jun 2015 13:07:36 +0000 (13:07 +0000)]
Unreviewed. Fix GTK build after r185412.

Add missing include.

* NetworkProcess/cache/NetworkCacheFileSystem.cpp:

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