WebKit-https.git
5 years agoFix macros for wireless playback
jonlee@apple.com [Thu, 28 May 2015 07:27:13 +0000 (07:27 +0000)]
Fix macros for wireless playback
https://bugs.webkit.org/show_bug.cgi?id=145239
rdar://problem/21049541

Reviewed by Anders Carlsson.

Encompass the logic within ENABLE(WIRELESS_TARGET_PLAYBACK). Update property name.

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Wrap in ENABLE.
(-[WebPreferences allowsAirPlayForMediaPlayback]): Ditto.
(-[WebPreferences setAllowsAirPlayForMediaPlayback:]): Ditto.
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Ditto.

Source/WebKit2:

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h: Update names. Add a WKDeprecated
category section.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Update name of variables to reflect new property names.
(-[WKWebViewConfiguration copyWithZone:]): Ditto.
(-[WKWebViewConfiguration mediaPlaybackAllowsAirPlay]): Get and set off of the new
variable.
(-[WKWebViewConfiguration setMediaPlaybackAllowsAirPlay:]): Ditto.
(-[WKWebViewConfiguration mediaPlaybackRequiresUserAction]): Ditto.
(-[WKWebViewConfiguration setMediaPlaybackRequiresUserAction:]): Ditto.

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

5 years agoRemove unused ResourceRequest "user initiated" flag.
beidson@apple.com [Thu, 28 May 2015 06:14:50 +0000 (06:14 +0000)]
Remove unused ResourceRequest "user initiated" flag.
https://bugs.webkit.org/show_bug.cgi?id=145428

Reviewed by Alexey Proskuryakov.

No new tests (No change in behavior).

* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.mm:

* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::initiatedByUserGesture): Deleted.
(WebCore::ResourceRequestBase::setInitiatedByUserGesture): Deleted.
(WebCore::ResourceRequestBase::encodeWithoutPlatformData): Deleted.
(WebCore::ResourceRequestBase::decodeWithoutPlatformData): Deleted.

* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest): Deleted.
(WebCore::ResourceRequest::doUpdateResourceRequest): Deleted.

* platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest): Deleted.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Deleted.

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

5 years ago[Mac] Fix clang static analyzer build
ap@apple.com [Thu, 28 May 2015 06:12:46 +0000 (06:12 +0000)]
[Mac] Fix clang static analyzer build
https://bugs.webkit.org/show_bug.cgi?id=145426
rdar://problem/20947408

Reviewed by Dan Bernstein.

* wtf/spi/darwin/XPCSPI.h: Correct declarations of xpc_retain and xpc_release.

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

5 years agoDelete media/controls-layers.html. It's a bad test that fails and asserts, and there
ap@apple.com [Thu, 28 May 2015 05:52:59 +0000 (05:52 +0000)]
Delete media/controls-layers.html. It's a bad test that fails and asserts, and there
are apparently no plans to fix any of that (see https://bugs.webkit.org/show_bug.cgi?id=145420).

* media/controls-layers.html: Removed.
* platform/mac-mavericks/media/controls-layers-expected.txt: Removed.
* platform/mac/media/controls-layers-expected.txt: Removed.

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

5 years agoArray.of should work with other constructors
commit-queue@webkit.org [Thu, 28 May 2015 05:47:11 +0000 (05:47 +0000)]
Array.of should work with other constructors
https://bugs.webkit.org/show_bug.cgi?id=145365
Source/JavaScriptCore:

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of
step 4

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-27
Reviewed by Yusuke Suzuki.

* builtins/ArrayConstructor.js:
(of):
* runtime/ArrayConstructor.cpp:
(JSC::arrayConstructorOf): Deleted.

LayoutTests:

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-27
Reviewed by Yusuke Suzuki.

* js/array-of-expected.txt:
* js/script-tests/array-of.js:
(Foo):

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

5 years agoAdd a "should open urls externally" flag to DocumentLoader.
beidson@apple.com [Thu, 28 May 2015 04:52:25 +0000 (04:52 +0000)]
Add a "should open urls externally" flag to DocumentLoader.
rdar://problem/21025301 and https://bugs.webkit.org/show_bug.cgi?id=145417

Reviewed by Geoff Garen.

Source/WebCore:

No new tests (No change in behavior, testable at API level with a followup patch)

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setTriggeringAction): Apply the current flag value to the
  new NavigationAction so it can be used later.
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::setShouldOpenExternalURLsPolicy):
(WebCore::DocumentLoader::shouldOpenExternalURLsPolicy):
(WebCore::DocumentLoader::setTriggeringAction): Deleted.

FrameLoadRequest should hold the new flag to pass into FrameLoader machinery:
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::setShouldOpenExternalURLsPolicy):
(WebCore::FrameLoadRequest::shouldOpenExternalURLsPolicy):

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load): Set the flag on the newly created DocumentLoader but
  only if it is for the main frame.

* loader/FrameLoaderTypes.h: Add a new enum for the flag.

Navigation action should hold the new flag to pass to the policy delegate:
* loader/NavigationAction.cpp:
(WebCore::NavigationAction::NavigationAction):
* loader/NavigationAction.h:
(WebCore::NavigationAction::shouldOpenExternalURLsPolicy):
(WebCore::NavigationAction::setShouldOpenExternalURLsPolicy):

* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy): Include the flag from the DocumentLoader
  in the NavigationAction.

Source/WebKit2:

Rename "user initiated" to "should open external URLs":
* Shared/API/Cocoa/_WKNSURLRequestExtras.h:
* Shared/API/Cocoa/_WKNSURLRequestExtras.mm:
(-[NSURLRequest _web_shouldOpenExternalURLs]):
(-[NSMutableURLRequest _web_setShouldOpenExternalURLs:]):
(-[NSURLRequest _web_isUserInitiated]): Deleted.
(-[NSMutableURLRequest _web_setIsUserInitiated:]): Deleted.

Hold the new flag as a bool, and encode/decode it across IPC:
* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):
(WebKit::NavigationActionData::NavigationActionData): Deleted.
* Shared/NavigationActionData.h:

* UIProcess/API/APINavigationAction.h: Add accessor for the bool flag.

* UIProcess/API/C/WKPage.cpp:
(WKPageLoadURLWithUserData): Use "ShouldNotAllow" in the legacy C API for now.
(WKPageLoadURLRequestWithUserData): Ditto.

* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadRequest:userData:]): Set the value of the flag
  based on whether or not the initiating NSURLRequest was user initiated.

* UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction _shouldOpenExternalURLs]): Add accessor for the bool flag.
* UIProcess/API/Cocoa/WKNavigationActionPrivate.h:

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadRequest:]): Set the value of the flag based on whether or not the
  initiating NSURLRequest was user initiated.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequest): Pass the value down to the WebProcess to load.
(WebKit::WebPageProxy::loadFile): Ditto, but always with "ShouldNotAllow".
* UIProcess/WebPageProxy.h:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Translate
  the NavigationAction flag to a bool in the NavigationActionData object.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest): Set the value of the flag in the FrameLoadRequest that
  will be loaded.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

5 years agoPurge PassRefPtr in WebCore/Modules - 2
gyuyoung.kim@webkit.org [Thu, 28 May 2015 04:22:37 +0000 (04:22 +0000)]
Purge PassRefPtr in WebCore/Modules - 2
https://bugs.webkit.org/show_bug.cgi?id=145304

Reviewed by Darin Adler.

As a step to remove PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr.

No new tests, no behavior changes

* Modules/mediasource/SourceBufferList.h:
* Modules/mediastream/AllAudioCapabilities.h:
(WebCore::AllAudioCapabilities::create):
* Modules/mediastream/AllVideoCapabilities.h:
(WebCore::AllVideoCapabilities::create):
* Modules/mediastream/CapabilityRange.cpp:
(WebCore::CapabilityRange::create):
* Modules/mediastream/CapabilityRange.h:
* Modules/mediastream/MediaSourceStates.cpp:
(WebCore::MediaSourceStates::create):
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::create):
* Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:
(WebCore::MediaStreamTrackSourcesRequest::create):
* Modules/mediastream/MediaTrackConstraint.cpp:
(WebCore::MediaTrackConstraint::create):
* Modules/mediastream/MediaTrackConstraint.h:
* Modules/mediastream/RTCConfiguration.h:
(WebCore::RTCConfiguration::create):
* Modules/mediastream/RTCIceServer.h:
(WebCore::RTCIceServer::create):
* Modules/mediastream/RTCSessionDescription.cpp:
(WebCore::RTCSessionDescription::create):
* Modules/mediastream/RTCSessionDescription.h:
* Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
(WebCore::RTCSessionDescriptionRequestImpl::create):
* Modules/mediastream/RTCStatsReport.cpp:
(WebCore::RTCStatsReport::create):
* Modules/mediastream/RTCStatsReport.h:
* Modules/mediastream/RTCStatsRequestImpl.cpp:
(WebCore::RTCStatsRequestImpl::create):
* Modules/mediastream/RTCStatsRequestImpl.h:
* Modules/mediastream/RTCStatsResponse.cpp:
(WebCore::RTCStatsResponse::create):
* Modules/mediastream/RTCStatsResponse.h:
* Modules/mediastream/RTCVoidRequestImpl.cpp:
(WebCore::RTCVoidRequestImpl::create):
* Modules/mediastream/RTCVoidRequestImpl.h:
* Modules/mediastream/SourceInfo.cpp:
(WebCore::SourceInfo::create):
* Modules/mediastream/SourceInfo.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::create):
* Modules/mediastream/UserMediaRequest.h:
* Modules/quota/StorageInfo.h:
(WebCore::StorageInfo::create):
* Modules/quota/StorageQuota.h:
(WebCore::StorageQuota::create):
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::create):
* Modules/speech/SpeechSynthesis.h:
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::create):
* Modules/speech/SpeechSynthesisUtterance.h:
* Modules/speech/SpeechSynthesisVoice.cpp:
(WebCore::SpeechSynthesisVoice::create):
* Modules/speech/SpeechSynthesisVoice.h:
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::create):
* Modules/webaudio/ChannelMergerNode.h:
* Modules/webaudio/ChannelSplitterNode.cpp:
(WebCore::ChannelSplitterNode::create):
* Modules/webaudio/ChannelSplitterNode.h:
* Modules/webaudio/DefaultAudioDestinationNode.h:
(WebCore::DefaultAudioDestinationNode::create):
* Modules/webaudio/GainNode.h:
(WebCore::GainNode::create):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::create):
* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::create):
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
* Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::create):
* Modules/webaudio/MediaStreamAudioSource.h:
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::create):
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::setType):
* Modules/webaudio/PannerNode.h:
(WebCore::PannerNode::create):
* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::create):
(WebCore::PeriodicWave::createSine):
(WebCore::PeriodicWave::createSquare):
(WebCore::PeriodicWave::createSawtooth):
(WebCore::PeriodicWave::createTriangle):
* Modules/webaudio/PeriodicWave.h:
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::create):
* Modules/webaudio/ScriptProcessorNode.h:
* Modules/webaudio/WaveShaperNode.h:
(WebCore::WaveShaperNode::create):

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

5 years agoWeb Inspector: Show Page Source does not switch to Resources tab if inspector was...
commit-queue@webkit.org [Thu, 28 May 2015 01:55:25 +0000 (01:55 +0000)]
Web Inspector: Show Page Source does not switch to Resources tab if inspector was closed
https://bugs.webkit.org/show_bug.cgi?id=145423

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

* UserInterface/Base/Main.js:
(WebInspector._frameWasAdded.delayedWork):
(WebInspector._frameWasAdded):
In the special case where we are holding to show a frame's source code when
the frame becomes available (_frameIdentifierToShowSourceCodeWhenAvailable)
we should be forcing to show the tab.

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

5 years agoWeb Inspector: Toggling an inherited property sometimes stops working
commit-queue@webkit.org [Thu, 28 May 2015 01:51:41 +0000 (01:51 +0000)]
Web Inspector: Toggling an inherited property sometimes stops working
https://bugs.webkit.org/show_bug.cgi?id=145416

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

* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
Ensure we update the existing model objects with the new state information
before possibly bailing. This may produce changed events that update
parts of the inspector appropriately.

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

5 years ago[JSC] Add undefined->double conversion to DoubleRep
benjamin@webkit.org [Thu, 28 May 2015 01:30:58 +0000 (01:30 +0000)]
[JSC] Add undefined->double conversion to DoubleRep
https://bugs.webkit.org/show_bug.cgi?id=145293

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-05-27
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds undefined to double conversion to the DoubleRep
node for the cases were we speculate "undefined" as part of the types
processed.

The use case is doing math with accidental out-of-bounds access. For example,
something like:
    for (var i = 0; i <= length; ++i)
        ouptput += array[i];

would cause us to OSR exit every time i === length.

When hitting one of those cases, we would already speculate double math,
but the DoubleRep node was unable to convert the undefined and would exit.

With this patch the use kind NotCellUse cover this conversion for DoubleRep.
I have been quite conservative so in general we will not find "undefined"
until a few recompile but being optimistic seems better since this is a corner case.

This patch is a 80% progression on WebXPRT's DNA Sequencing test.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
* dfg/DFGNode.h:
(JSC::DFG::Node::sawUndefined):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
* dfg/DFGUseKind.cpp:
(WTF::printInternal):
* dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):
* tests/stress/double-rep-with-undefined.js: Added.
(addArgsNumberAndUndefined):
(addArgsInt32AndUndefined):
(testFallbackWithDouble):
(addArgsDoubleAndUndefined):
(testFallbackWithObject.):
(testFallbackWithObject):
(addArgsOnlyUndefined):
(testFallbackWithString):

LayoutTests:

* js/regress/math-with-out-of-bounds-array-values-expected.txt: Added.
* js/regress/math-with-out-of-bounds-array-values.html: Added.
* js/regress/script-tests/math-with-out-of-bounds-array-values.js: Added.

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

5 years agoREGRESSION (r183820): webkit.org/blog/ background painting issue on reload, when...
simon.fraser@apple.com [Thu, 28 May 2015 00:39:35 +0000 (00:39 +0000)]
REGRESSION (r183820): webkit.org/blog/ background painting issue on reload, when the page contains videos
https://bugs.webkit.org/show_bug.cgi?id=145420

Reviewed by Dean Jackson.
Source/WebCore:

After r183820, the media controls no longer had a wrapper that created CSS stacking context.
The media controls on Mac use mix-blend-mode, which causes the compositing code to look for
a stacking context ancestor and make it composited. After this change, it would walk up
to a layer outside of the media element (e.g. the document element's layer), and make
that composited. This triggered bugs with root background painting.

Prevent mix-blend-mode affecting content outside the media elements by having the media element's
layer act as a stacking context.

Test: media/controls-layers.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
* rendering/RenderLayer.h:

LayoutTests:

Test that dumps compositing layers in a document with media controls.

* media/controls-layers.html: Added.
* platform/mac/media/controls-layers-expected.txt: Added.
* platform/mac-mavericks/media/controls-layers-expected.txt: Added.

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

5 years agoCan't load local files in WKWebView from containerized app
andersca@apple.com [Thu, 28 May 2015 00:34:39 +0000 (00:34 +0000)]
Can't load local files in WKWebView from containerized app
https://bugs.webkit.org/show_bug.cgi?id=145424
rdar://problem/20831176

Reviewed by Dan Bernstein.

Allow the network process to load local files from its bundle as long as it has
the sandbox extensions to do so.

This was originally added to only allow SSO to read the Info.plist inside its own application
bundle, but being able to read the application bundle from within the network process should be OK.

* Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

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

5 years ago[WK2] Local storage areas should get torn down when they have no remaining references.
akling@apple.com [Thu, 28 May 2015 00:30:59 +0000 (00:30 +0000)]
[WK2] Local storage areas should get torn down when they have no remaining references.
<https://webkit.org/b/143339>
<rdar://problem/20156436>

Reviewed by Darin Adler.

Source/WebCore:

Add StorageArea::securityOrigin() implementations.

* loader/EmptyClients.cpp:
* storage/StorageArea.h:

Source/WebKit:

Add StorageArea::securityOrigin() implementation.

* Storage/StorageAreaImpl.h:

Source/WebKit2:

Let StorageNamespaceImpl own its StorageAreaMaps weakly instead of through RefPtr.
Ownership is flipped so that StorageAreaMap refs the StorageNamespaceImpl instead.
This allows the StorageAreaMaps to get destroyed once all of its clients are gone.

Practically speaking, this means that the garbage collector now decides when local
storage databases can be closed, instead of us keeping them open for the lifetime
of the web process.

For session storage, it works a bit differently. In the web process, they get torn
down when their last client disappears, but they stay alive in the UI process.
If/when the web process asks the UI process to open session storage for an origin,
the UI process checks if one already exists, and if so, just updates the ID of the
old storage with the new one provided by the web process.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::isSessionStorage):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
* WebProcess/Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::securityOrigin):
* WebProcess/Storage/StorageAreaImpl.h:
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
* WebProcess/Storage/StorageAreaMap.h:
(WebKit::StorageAreaMap::securityOrigin):
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap):
(WebKit::StorageNamespaceImpl::storageArea):
* WebProcess/Storage/StorageNamespaceImpl.h:

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

5 years agoDisable network cache for old clients
antti@apple.com [Thu, 28 May 2015 00:25:52 +0000 (00:25 +0000)]
Disable network cache for old clients
https://bugs.webkit.org/show_bug.cgi?id=145418
rdar://problem/21126587

Reviewed by Andy Estes.

Old clients might use NSURLCache API to clear the cache. New cache requires use of new APIs.

* UIProcess/Cocoa/VersionChecks.h: Added.
* UIProcess/Cocoa/VersionChecks.mm: Added.

    Add linked-on-or-after check mechanism similar to WebKit1.

(WebKit::linkTimeVersion):
(WebKit::linkedOnOrAfter):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

    Use it when deciding whether to enable the cache.

* WebKit2.xcodeproj/project.pbxproj:

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

5 years agoimg.currentSrc problem in strict mode with old picturefill
dino@apple.com [Thu, 28 May 2015 00:16:47 +0000 (00:16 +0000)]
img.currentSrc problem in strict mode with old picturefill
https://bugs.webkit.org/show_bug.cgi?id=144095
<rdar://problem/21087013>

Reviewed by Simon Fraser.

.:

Add a PICTURE_SIZES flag.

* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWindows.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Add a PICTURE_SIZES flag.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Add a PICTURE_SIZES flag. This allows us to easily remove the currentSrc
attribute on HTMLImageElement, which is causing some issues with
<picture> polyfills.

* Configurations/FeatureDefines.xcconfig:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate): Add guard around use of m_currentSrc.
* html/HTMLImageElement.h:
* html/HTMLImageElement.idl: Guard the currentSrc attribute.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

Source/WebKit/mac:

Add a PICTURE_SIZES flag.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Add a PICTURE_SIZES flag.

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

Add a PICTURE_SIZES flag.

* wtf/FeatureDefines.h:

Tools:

Add a PICTURE_SIZES flag.

* Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

Add a PICTURE_SIZES flag.

* win/tools/vsprops/FeatureDefines.props:
* win/tools/vsprops/FeatureDefinesCairo.props:

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

5 years agoLazyNode comparison can return incorrect results when comparing an empty value
basile_clement@apple.com [Wed, 27 May 2015 23:47:40 +0000 (23:47 +0000)]
LazyNode comparison can return incorrect results when comparing an empty value
https://bugs.webkit.org/show_bug.cgi?id=145421

Reviewed by Geoffrey Garen.

When comparing a LazyNode to another, we compare the value pointers if
we have one, and otherwise compare the nodes.
We should be comparing value pointers if the other LazyNode has one as
well, otherwise we risk an incoherency when we are a empty LazyNode
being compared to a FrozenValue without node.

Note that this is not a problem in any other case because if we don't
have a FrozenValue and we are not an empty LazyNode, we are a
non-constant node, and comparing the node pointers is correct.

* dfg/DFGLazyNode.h:
(JSC::DFG::LazyNode::operator==):

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

5 years agoREGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
ggaren@apple.com [Wed, 27 May 2015 23:43:22 +0000 (23:43 +0000)]
REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
https://bugs.webkit.org/show_bug.cgi?id=145412

Reviewed by Benjamin Poulain.

Cache strings when doing a string-converting sort.

This is a 21% speedup.

* builtins/Array.prototype.js:
(sort.stringComparator): Use subtraction instead of branching because
it's slightly faster.

(sort.comparatorSort):
(sort.stringSort):
(sort): Add a special case for string sorting to avoid redundant string
conversion.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::createBindingPattern): Names can be empty if
they are private names.

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

5 years agoWeb Inspector: REGRESSION(r179286) Editing Style Metrics Values no longer works
commit-queue@webkit.org [Wed, 27 May 2015 23:21:58 +0000 (23:21 +0000)]
Web Inspector: REGRESSION(r179286) Editing Style Metrics Values no longer works
https://bugs.webkit.org/show_bug.cgi?id=143164

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-27
Reviewed by Brian Burg.

* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.toggleInlineStyleProperty):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.didToggle):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode):
(WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
Make it so editing in the metrics pane just evaluates elem.style.setProperty
on the inspected page. Use "!important" to try and give the maximum priority
possible, which is a change from older behavior. Finally, refresh the sidebar
to update all values, and update the UI if bad input didn't change styles.

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

5 years agoAttempt to fix internal build following <http://trac.webkit.org/changeset/184760>
dbates@webkit.org [Wed, 27 May 2015 22:11:27 +0000 (22:11 +0000)]
Attempt to fix internal build following <trac.webkit.org/changeset/184760>
(https://bugs.webkit.org/show_bug.cgi?id=145289)

Reviewed by Jer Noble.

* platform/spi/mac/AVFoundationSPI.h:

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

5 years agoAssertion hit in WebPage::didChangeSelection()
cdumez@apple.com [Wed, 27 May 2015 21:51:22 +0000 (21:51 +0000)]
Assertion hit in WebPage::didChangeSelection()
https://bugs.webkit.org/show_bug.cgi?id=145413
<rdar://problem/21001129>

Reviewed by Ryosuke Niwa.

We sometimes hit the "ASSERT(layoutCount == view->layoutCount())"
assertion in WebPage::didChangeSelection(). We manage to prevent
synchronous layouts in most cases when calling editorState(). However,
it seems it can still happen in some cases. Crashing in this case seems
overkill and can be annoying to other developers, especially
considering the implications are only on performance.

This patch drops the assertion.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChangeSelection): Deleted.

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

5 years agoRefactor WebKit1 specific threading code out of WebVideoFullscreen code that is share...
commit-queue@webkit.org [Wed, 27 May 2015 21:41:02 +0000 (21:41 +0000)]
Refactor WebKit1 specific threading code out of WebVideoFullscreen code that is shared with WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=143954

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-27
Reviewed by Darin Adler.

WebVideoFullscreenInterfaceAVKit is used in both WebKit1 and WebKit2. In WebKit1, the model runs in the WebThread, while
the interface is on the main thread. So there is code to dispatch between these two thread when communicating between the
interface and the model. In WebKit2, this is handled automatically by the IPC mechanism. As a result, the threading code
in WebVideoFullscreenbInterfaceAVKit and in WebVideoFullscreenModelVideoElement is redundant in WebKit2 and relies on
WebThreadRun being a no-op in WebKit2.

This change clarifies this and simplifies the WebKit2 path by moving the WebKit1 specific threading code into
WebVideoFullscreenControllerContext, which is the WebKit1 specific controller.

* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::WebVideoFullscreenControllerContext):
(WebVideoFullscreenControllerContext::setController):
(WebVideoFullscreenControllerContext::didSetupFullscreen):
(WebVideoFullscreenControllerContext::didExitFullscreen):
(WebVideoFullscreenControllerContext::didCleanupFullscreen):
(WebVideoFullscreenControllerContext::fullscreenMayReturnToInline):
(WebVideoFullscreenControllerContext::resetMediaState):
(WebVideoFullscreenControllerContext::setDuration):
(WebVideoFullscreenControllerContext::setCurrentTime):
(WebVideoFullscreenControllerContext::setBufferedTime):
(WebVideoFullscreenControllerContext::setRate):
(WebVideoFullscreenControllerContext::setVideoDimensions):
(WebVideoFullscreenControllerContext::setSeekableRanges):
(WebVideoFullscreenControllerContext::setCanPlayFastReverse):
(WebVideoFullscreenControllerContext::setAudioMediaSelectionOptions):
(WebVideoFullscreenControllerContext::setLegibleMediaSelectionOptions):
(WebVideoFullscreenControllerContext::setExternalPlayback):
(WebVideoFullscreenControllerContext::play):
(WebVideoFullscreenControllerContext::pause):
(WebVideoFullscreenControllerContext::togglePlayState):
(WebVideoFullscreenControllerContext::beginScrubbing):
(WebVideoFullscreenControllerContext::endScrubbing):
(WebVideoFullscreenControllerContext::seekToTime):
(WebVideoFullscreenControllerContext::fastSeek):
(WebVideoFullscreenControllerContext::beginScanningForward):
(WebVideoFullscreenControllerContext::beginScanningBackward):
(WebVideoFullscreenControllerContext::endScanning):
(WebVideoFullscreenControllerContext::requestExitFullscreen):
(WebVideoFullscreenControllerContext::setVideoLayerFrame):
(WebVideoFullscreenControllerContext::setVideoLayerGravity):
(WebVideoFullscreenControllerContext::selectAudioMediaOption):
(WebVideoFullscreenControllerContext::selectLegibleMediaOption):
(WebVideoFullscreenControllerContext::fullscreenModeChanged):
(WebVideoFullscreenControllerContext::setupFullscreen):
(WebVideoFullscreenControllerContext::exitFullscreen):
(WebVideoFullscreenControllerContext::requestHideAndExitFullscreen):
(-[WebVideoFullscreenController init]):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController enterFullscreen:mode:]):
(-[WebVideoFullscreenController exitFullscreen]):
(-[WebVideoFullscreenController requestHideAndExitFullscreen]):
(-[WebVideoFullscreenController didFinishFullscreen:]):
(WebVideoFullscreenControllerChangeObserver::setTarget): Deleted.
(-[WebVideoFullscreenController didSetupFullscreen]): Deleted.
(-[WebVideoFullscreenController didEnterFullscreen]): Deleted.
(-[WebVideoFullscreenController didExitFullscreen]): Deleted.
(-[WebVideoFullscreenController didCleanupFullscreen]): Deleted.
(-[WebVideoFullscreenController fullscreenMayReturnToInline]): Deleted.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVVideoLayer setBounds:]):
(-[WebAVVideoLayer resolveBounds]):
(WebVideoFullscreenInterfaceAVKit::resetMediaState):
(WebVideoFullscreenInterfaceAVKit::setDuration):
(WebVideoFullscreenInterfaceAVKit::setCurrentTime):
(WebVideoFullscreenInterfaceAVKit::setBufferedTime):
(WebVideoFullscreenInterfaceAVKit::setRate):
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges):
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse):
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard):
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
(WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal):
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen):
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal):
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline):
(WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::willCancelOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didCancelOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::setVideoLayerFrame):
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Deleted.
* platform/ios/WebVideoFullscreenModel.h:
* platform/ios/WebVideoFullscreenModelVideoElement.h:
* platform/ios/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer):
(WebVideoFullscreenModelVideoElement::play):
(WebVideoFullscreenModelVideoElement::pause):
(WebVideoFullscreenModelVideoElement::togglePlayState):
(WebVideoFullscreenModelVideoElement::beginScrubbing):
(WebVideoFullscreenModelVideoElement::endScrubbing):
(WebVideoFullscreenModelVideoElement::seekToTime):
(WebVideoFullscreenModelVideoElement::fastSeek):
(WebVideoFullscreenModelVideoElement::beginScanningForward):
(WebVideoFullscreenModelVideoElement::beginScanningBackward):
(WebVideoFullscreenModelVideoElement::endScanning):
(WebVideoFullscreenModelVideoElement::requestExitFullscreen):
(WebVideoFullscreenModelVideoElement::fullscreenModeChanged):
(WebVideoFullscreenModelVideoElement::videoLayerFrame): Deleted.
(WebVideoFullscreenModelVideoElement::videoLayerGravity): Deleted.

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

5 years agoJIT-generated store barrier code should assume the buffer pointer and capacity to...
fpizlo@apple.com [Wed, 27 May 2015 21:29:09 +0000 (21:29 +0000)]
JIT-generated store barrier code should assume the buffer pointer and capacity to be compile-time constants
https://bugs.webkit.org/show_bug.cgi?id=145404

Reviewed by Andreas Kling.

We never change the capacity of a write barrier buffer. We never repoint the buffer
pointer. So, the JIT shouldn't load those from memory; it should take advantage of the
fact that these are compile-time constants.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::storeToWriteBarrierBuffer):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::emitStoreBarrier):
* heap/WriteBarrierBuffer.h:
(JSC::WriteBarrierBuffer::currentIndexAddress):
(JSC::WriteBarrierBuffer::capacity):
(JSC::WriteBarrierBuffer::buffer):
(JSC::WriteBarrierBuffer::currentIndexOffset): Deleted.
(JSC::WriteBarrierBuffer::capacityOffset): Deleted.
(JSC::WriteBarrierBuffer::bufferOffset): Deleted.
* jit/Repatch.cpp:
(JSC::emitPutTransitionStubAndGetOldStructure):

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

5 years agoUpdate Mac WebKit1 TestExpectations for platform/mac/fast/ruby/ruby-expansion-cjk...
ap@apple.com [Wed, 27 May 2015 21:13:16 +0000 (21:13 +0000)]
Update Mac WebKit1 TestExpectations for platform/mac/fast/ruby/ruby-expansion-cjk-2.html

* platform/mac-wk1/TestExpectations: It's an image failure, so counter-intuitively,
Failure expectation is not the right one.

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

5 years agoREGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
ggaren@apple.com [Wed, 27 May 2015 20:42:00 +0000 (20:42 +0000)]
REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
https://bugs.webkit.org/show_bug.cgi?id=145412

Reviewed by Darin Adler.

Use @toString instead of the String constructor because calls to the
String constructor are never optimized. (See
https://bugs.webkit.org/show_bug.cgi?id=144458.)

This is a ~2X speedup.

* builtins/Array.prototype.js:
(sort.stringComparator):

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

5 years ago[Mac] short-circuit MIME type lookup when possible
eric.carlson@apple.com [Wed, 27 May 2015 20:33:09 +0000 (20:33 +0000)]
[Mac] short-circuit MIME type lookup when possible
https://bugs.webkit.org/show_bug.cgi?id=145362

Reviewed by Jer Noble.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::isUnsupportedMIMEType): Renamed from unsupportedMIMEType. Convert type to lower case
once instead of calling equalIgnoringCase many times.
(WebCore::staticMIMETypeList): Renamed from staticMimeTypeCache. Initialize static set in a lambda,
using an array of C strings in a loop.
(WebCore::avfMIMETypes): Renamed from avfMimeTypeCache. Initialize static set in a lambda.
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes): avfMimeTypeCache -> avfMIMETypes.
(WebCore::keySystemIsSupported): equalIgnoringCase -> equalIgnoringASCIICase.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem): unsupportedMIMEType ->
isUnsupportedMIMEType, equalIgnoringCase -> equalIgnoringASCIICase, staticMimeTypeCache ->
staticMIMETypeList, avfMimeTypeCache -> avfMIMETypes.
(WebCore::unsupportedMIMEType): Deleted.
(WebCore::staticMimeTypeCache): Deleted.
(WebCore::avfMimeTypeCache): Deleted.

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

5 years agoUpdate Mac WebKit1 TestExpectations for platform/mac/fast/ruby/ruby-expansion-cjk...
dbates@webkit.org [Wed, 27 May 2015 20:14:05 +0000 (20:14 +0000)]
Update Mac WebKit1 TestExpectations for platform/mac/fast/ruby/ruby-expansion-cjk-2.html

* platform/mac-wk1/TestExpectations:

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

5 years agoFix Mac Yosemite layout test failure following <http://trac.webkit.org/changeset...
dbates@webkit.org [Wed, 27 May 2015 19:17:07 +0000 (19:17 +0000)]
Fix Mac Yosemite layout test failure following <trac.webkit.org/changeset/184899>
(https://bugs.webkit.org/show_bug.cgi?id=145336)

Mark test platform/mac/fast/ruby/ruby-expansion-cjk-2.html as failing on Yosemite.

Also remove references to fast/ruby/ruby-expansion-cjk*.html from TestExpectations files
of other ports since we consider these tests specific to Mac.

* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/ios-simulator/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:

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

5 years agoAddress a follow-up review comment from Darin.
andersca@apple.com [Wed, 27 May 2015 19:00:22 +0000 (19:00 +0000)]
Address a follow-up review comment from Darin.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeMediaKeys):

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

5 years agoWKWebsiteDataStore should handle media keys
andersca@apple.com [Wed, 27 May 2015 18:53:49 +0000 (18:53 +0000)]
WKWebsiteDataStore should handle media keys
https://bugs.webkit.org/show_bug.cgi?id=145394
rdar://problem/20617794.

Reviewed by Darin Adler.

* Shared/WebsiteData/WebsiteDataTypes.h:
Add WebsiteDataTypeMediaKeys enum.

* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set up mediaKeysStorageDirectory.

* UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):
* UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: Added.
Add _WKWebsiteDataTypeMediaKeys.

* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
Set up mediaKeysStorageDirectory.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
Set m_mediaKeysStorageDirectory.

(WebKit::WebsiteDataStore::fetchData):
Make CallbackAggregator ThreadSafeRefCounted.
Handle WebsiteDataTypeMediaKeys by calling mediaKeyOrigins on our background queue.

(WebKit::WebsiteDataStore::removeData):
Make CallbackAggregator ThreadSafeRefCounted.
Handle WebsiteDataTypeMediaKeys by calling removeMediaKeys on our background queue.

(WebKit::WebsiteDataStore::mediaKeyOrigins):
Compute the origins.

(WebKit::computeMediaKeyFile):
Add helper function that returns the media key given a containing directory.

(WebKit::WebsiteDataStore::removeMediaKeys):
Remove media key files.

* UIProcess/WebsiteData/WebsiteDataStore.h:
Add new members.

* WebKit2.xcodeproj/project.pbxproj:
Add new files.

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

5 years ago[Mac] short-circuit MIME type lookup when possible
eric.carlson@apple.com [Wed, 27 May 2015 18:37:28 +0000 (18:37 +0000)]
[Mac] short-circuit MIME type lookup when possible
https://bugs.webkit.org/show_bug.cgi?id=145362

Reviewed by Dean Jackson.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::unsupportedMIMEType): New, reject types known to not be supported.
(WebCore::staticMimeTypeCache): Accept MIME types known to be supported.
(WebCore::avfMimeTypeCache): Renamed from mimeTypeCache.
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes): mimeTypeCache -> staticMimeTypeCache.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Return immediately if
unsupportedMIMEType returns true, don't call AVFoundation if staticMimeTypeCache returns true.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem): Ditto.
(WebCore::mimeTypeCache): Deleted.

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

5 years ago[Mac] occasional crash in MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest
eric.carlson@apple.com [Wed, 27 May 2015 18:31:12 +0000 (18:31 +0000)]
[Mac] occasional crash in MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest
https://bugs.webkit.org/show_bug.cgi?id=145409

Reviewed by Dean Jackson.

* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::stopLoading): NULL-check m_avRequest.

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

5 years agoBackdrop filters don't animate
dino@apple.com [Wed, 27 May 2015 18:15:08 +0000 (18:15 +0000)]
Backdrop filters don't animate
https://bugs.webkit.org/show_bug.cgi?id=145386
<rdar://problem/21110037>

Reviewed by Simon Fraser.

Source/WebCore:

Add support for animation of backdrop filters.

Note that, at the moment, we can only animate/transition
backdrop-filter if it is already present on the element. See
https://bugs.webkit.org/show_bug.cgi?id=145107

Test: css3/filters/backdrop/animation.html

* page/animation/AnimationBase.h: Add m_backdropFilterFunctionListsMatch and backdropFilterFunctionListsMatch.
(WebCore::AnimationBase::backdropFilterFunctionListsMatch):

* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): backdrop-filter is also supported.
(WebCore::PropertyWrapperAcceleratedBackdropFilter::PropertyWrapperAcceleratedBackdropFilter): Added. Works
similarly to the PropertyWrapperAcceleratedFilter.
(WebCore::PropertyWrapperAcceleratedBackdropFilter::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedBackdropFilter::blend):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Construct the
PropertyWrapperAcceleratedBackdropFilter.

* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::reset): Call checkForMatchingBackdropFilterFunctionLists.
(WebCore::ImplicitAnimation::validateTransformFunctionList): Fix typo.
(WebCore::ImplicitAnimation::checkForMatchingFilterFunctionLists): Remove whitespace.
(WebCore::ImplicitAnimation::checkForMatchingBackdropFilterFunctionLists): New method that
checks if the individual filters in a filter list match.
* page/animation/ImplicitAnimation.h: Add checkForMatchingBackdropFilterFunctionLists.

* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::KeyframeAnimation): Call checkForMatchingBackdropFilterFunctionLists.
(WebCore::KeyframeAnimation::checkForMatchingBackdropFilterFunctionLists): Copied from
checkForMatchingFilterFunctionLists, but calls backdropFilter() instead of filter().
(WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists): This was accidentally checking
for backdrop filters as well, but it wouldn't have worked.
* page/animation/KeyframeAnimation.h: Add checkForMatchingBackdropFilterFunctionLists.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::validateFilterOperations): Modify the ASSERT to allow AnimatedPropertyWebkitBackdropFilter.
* platform/graphics/GraphicsLayerClient.h: Add AnimatedPropertyWebkitBackdropFilter to the enum.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::propertyIdToString): Support new enum.
(WebCore::GraphicsLayerCA::addAnimation): Support AnimatedPropertyWebkitBackdropFilter.
(WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes): Ditto.
(WebCore::GraphicsLayerCA::animatedLayer): Use a switch statement now that we have more than
two options, and handle AnimatedPropertyWebkitBackdropFilter.
(WebCore::GraphicsLayerCA::updateAnimations): Deleted a blank line.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation): Support animation of backdrop-filter.
(WebCore::RenderLayerBacking::startTransition): Ditto. Copied the code from the filter transition.
(WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
(WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

LayoutTests:

Add a test for animation of backdrop-filter, and do some
minor cleanups in related files.

* animations/resources/animation-test-helpers.js:
(parseFilterImage): Fix a typo.
(getPropertyValue): Support webkitBackdropFilter.
(comparePropertyValue): Ditto.
* css3/filters/backdrop/animation-expected.txt: Added.
* css3/filters/backdrop/animation.html: Added.

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

5 years agoHandle case where -startOptimizedFullscreen fails.
commit-queue@webkit.org [Wed, 27 May 2015 17:12:14 +0000 (17:12 +0000)]
Handle case where -startOptimizedFullscreen fails.
https://bugs.webkit.org/show_bug.cgi?id=145340

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-27
Reviewed by Eric Carlson.

Add new AVPlayerViewController delegate methods and remove old ones.
-startOptimizedFullscreen can either fail silently because it is not allowed or it will call a delegate.
We prevent silent failure by testing preconditions in enterFullscreenOptimized, and add the
delegate -playerViewControllerFailedToStartOptimizedFullscreen to handle explicitly failure.

* platform/ios/WebVideoFullscreenInterfaceAVKit.h: added/removed method declarations.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController playerViewControllerFailedToStartOptimizedFullscreen:withError:]): Added.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized): Handle silent failure.
(WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen): Hide window on main thread.
(WebVideoFullscreenInterfaceAVKit::failedToStartOptimizedFullscreen): Added
(-[WebAVPlayerController playerViewControllerWillCancelOptimizedFullscreen:]): Deleted.
(-[WebAVPlayerController playerViewControllerDidCancelOptimizedFullscreen:]): Deleted.
(WebVideoFullscreenInterfaceAVKit::willCancelOptimizedFullscreen): Deleted.
(WebVideoFullscreenInterfaceAVKit::didCancelOptimizedFullscreen): Deleted.
* platform/spi/cocoa/AVKitSPI.h: Remove dead SPI. Add isOptimizedFullscreenPossible.

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

5 years agoRemove JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
mitz@apple.com [Wed, 27 May 2015 16:52:51 +0000 (16:52 +0000)]
Remove JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080
https://bugs.webkit.org/show_bug.cgi?id=145403

Reviewed by Anders Carlsson.

JSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 was used to enable the JavaScriptCore Objective-C API
for WebKit and Safari projects building with JavaScriptCore targeting OS X 10.8. We don’t
need it anymore.

* API/JSBase.h:
* API/JSContext.h:
* API/JSManagedValue.h:
* API/JSValue.h:
* API/JSVirtualMachine.h:
* Configurations/Base.xcconfig:
* postprocess-headers.sh:

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

5 years ago[iOS] Rebaseline expected results for tests in LayoutTests/compositing
mattbaker@apple.com [Wed, 27 May 2015 16:08:45 +0000 (16:08 +0000)]
[iOS] Rebaseline expected results for tests in LayoutTests/compositing
https://bugs.webkit.org/show_bug.cgi?id=145401

Reviewed by Simon Fraser.

Rebaselined iOS tests failing due to expected differences in converage rect, scrollbar and contentsScale.

* platform/ios-simulator/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: Added.
* platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt: Added.
* platform/ios-simulator/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/ios-simulator/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/ios-simulator/compositing/tiling/transform-origin-tiled-expected.txt: Copied from LayoutTests/platform/ios-simulator/compositing/tiling/rotated-tiled-clamped-expected.txt.
* platform/ios-simulator/compositing/visible-rect/backing-change-height-from-zero-expected.txt: Added.

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

5 years agoUnreviewed. Update OptionsGTK.cmake and NEWS for 2.9.2 release.
carlosgc@webkit.org [Wed, 27 May 2015 09:50:44 +0000 (09:50 +0000)]
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.2 release.

.:

* Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

* gtk/NEWS: Add release notes for 2.9.2.

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

5 years ago[SOUP] Network Cache: Handle the case when we fail to create the IO stream
carlosgc@webkit.org [Wed, 27 May 2015 08:37:20 +0000 (08:37 +0000)]
[SOUP] Network Cache: Handle the case when we fail to create the IO stream
https://bugs.webkit.org/show_bug.cgi?id=145406

Reviewed by Sergio Villar Senin.

We were asserting in that case, but it can happen that we
fail to create the stream. It happened to me after r184690, that
changed the NetworkCache::Key hash. Since this was not expected to
happen, the async operation never finished and the completion
handler never called, leaving resources loading forever. We
should make sure we call the completion handler with an error
code, so that the load finishes and the entry is silently removed
from the cache.

* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::IOChannel::write):

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

5 years ago[iOS] Arabic ligatures are broken in Google Maps
mmaxfield@apple.com [Wed, 27 May 2015 07:14:23 +0000 (07:14 +0000)]
[iOS] Arabic ligatures are broken in Google Maps
https://bugs.webkit.org/show_bug.cgi?id=145336
<rdar://problem/20689607>

Reviewed by Darin Adler.

Source/WebCore:

When we fall off the end of the font fallback list, we ask the platform for which particular font we should use
to display a particular codepoint. When we do this, we supply the font which is first in the fallback list so
that the platform can try to match it as best it can. However, web fonts' FontPlatformData have a null m_font
property, which means that we were passing nullptr to this platform fallback function.

The solution is something I've wanted to do for a while, which is migrate webfonts from using
CGDataProviderCreateWithCFData() to using CTFontManagerCreateFontDescriptorFromData(). This call creates a
CoreText font for an in-memory buffer (the old call was creating a CoreGraphics front from the same thing).
This means that we can use the FontPlatformData constructor which accepts a CoreText font, thereby making web
fonts not have a null m_font property. Note that not all platforms can use this call, which means that this
new codepath is gated to only certain OSes (which is okay because only certain OSes use the
CTFontCreatePhysicalFontDescriptorForCharactersWithLanguage() call inside FontCache). Because web fonts are the
only user of the constructor which just takes a CG font, we can make the constructor private to the
FontPlatformData class (as soon as all platforms can use this new codepath).

Test: platform/ios-simulator/fast/text/arabic-with-no-supporting-webfont.html

* platform/graphics/FontPlatformData.h: Make the FontPlatformData constructor which takes a CGFontRef private.
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Use the CoreText type instead of the CoreGraphics type.
(WebCore::createFontCustomPlatformData): Migrate to CTFontManagerCreateFontDescriptorFromData().
* platform/graphics/mac/FontCustomPlatformData.h:
(WebCore::FontCustomPlatformData::FontCustomPlatformData): Store a CTFontDescriptorRef instead of a CGFontRef.

LayoutTests:

This patch adds a DRT test to make sure that text gets drawn with the correct font.

It also updates expected results for 4 tests, which I have verified are still correct. However,
because the behavior of Mavericks differs from Yosemite, I copied the old expected results to
platform/mac-mavericks before updating the results in platform/mac.

This patch also moves fast/ruby/ruby-expansion-cjk*.html to platform/mac because they rely on
platform-specific screen-space quantization. This patch also skips these tests on Mavericks
because I can't add platform-specific expected results for reftests.

* platform/ios-simulator/fast/text/arabic-with-no-supporting-webfont-expected.txt:
* platform/ios-simulator/fast/text/arabic-with-no-supporting-webfont.html:

* platform/mac-mavericks/fast/css/font-face-opentype-expected.txt: Copied from platform/mac.
* platform/mac-mavericks/svg/batik/text/xmlSpace-expected.txt: Ditto.
* platform/mac-mavericks/svg/custom/svg-fonts-fallback-expected.txt: Ditto.
* platform/mac-mavericks/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Ditto.
* platform/mac-mavericks/TestExpectations: Skip fast/ruyb/ruby-expansion-cjk*.html
* platform/mac/fast/css/font-face-opentype-expected.txt: Updated.
* platform/mac/svg/batik/text/xmlSpace-expected.txt: Ditto.
* platform/mac/svg/custom/svg-fonts-fallback-expected.txt: Ditto.
* platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Ditto.
* LayoutTests/platform/mac/fast/ruby/resources/green.png: Moved from fast/ruby/resources/green.png
* LayoutTests/platform/mac/fast/ruby/resources/ruby-expansion.svg: Moved from fast/ruby/resources/ruby-expansion.svg
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-2-expected.html: Moved from fast/ruby/ruby-expansion-cjk-2-expected.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-2.html: Moved from fast/ruby/ruby-expansion-cjk-2.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-3-expected.html: Moved from fast/ruby/ruby-expansion-cjk-3-expected.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-3.html: Moved from fast/ruby/ruby-expansion-cjk-3.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-4-expected.html: Moved from fast/ruby/ruby-expansion-cjk-4-expected.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-4.html: Moved from fast/ruby/ruby-expansion-cjk-4.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-5-expected.html: Moved from fast/ruby/ruby-expansion-cjk-5-expected.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-5.html: Moved from fast/ruby/ruby-expansion-cjk-5.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk-expected.html: Moved from fast/ruby/ruby-expansion-cjk-expected.html
* LayoutTests/platform/mac/fast/ruby/ruby-expansion-cjk.html: Moved from fast/ruby/ruby-expansion-cjk.html

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

5 years agoNetwork Cache: Add cache capacity to the totals of JSON file
carlosgc@webkit.org [Wed, 27 May 2015 06:41:02 +0000 (06:41 +0000)]
Network Cache: Add cache capacity to the totals of JSON file
https://bugs.webkit.org/show_bug.cgi?id=145246

Reviewed by Antti Koivisto.

* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::dumpContentsToFile):
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::capacity):

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

5 years agoVersioning.
bshafiei@apple.com [Wed, 27 May 2015 06:19:20 +0000 (06:19 +0000)]
Versioning.

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

5 years agoAn SVG with no intrinsic size does not draw correct slices when used as a border...
commit-queue@webkit.org [Wed, 27 May 2015 04:18:04 +0000 (04:18 +0000)]
An SVG with no intrinsic size does not draw correct slices when used as a border-image for an HTML element.
https://bugs.webkit.org/show_bug.cgi?id=139405

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-26
Reviewed by Darin Adler.
LayoutTests/imported/mozilla:

* svg/as-image/border-image-simple-2.html: Add "border: 0px none;" to
style of the <div> although the style has "border-image: url() 0 fill;".
If the border width is not set to zero in the style, the <div> will have
a 3px border. This seems to be a bug in WebKit but should be unrelated to
the non-intrinsic-sized images with border-image.

Source/WebCore:

When using a non-intrinsic-sized image as an image-border, all the source
slices have to be extracted from the top-left corner of the source image.
This is because the right and bottom sides of the image can not be known.
Also all the slices should not be stretched. In other words, the sizes of
source slices for a non-intrinsic-sized image should be equal to the sizes
of the destination container slices.

This is not compliant with the css3 w3c specs. I think the specs makes it
harder to predict what exactly will be drawn for the image-border in this
case. See http://www.w3.org/TR/css3-background/#border-image-slice. This
approach is implemented by FireFox. And I think it gives a more predictable
rendering for image-border in the case of non-intrinsic-sized images.

Test: fast/borders/border-image-fill-no-intrinsic-size.html

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/LengthBox.cpp: Removed.
* platform/graphics/LayoutBoxExtent.cpp: Removed.
* platform/graphics/LayoutBoxExtent.h: Removed.
* platform/graphics/LayoutRect.h:
Delete LengthBox.cpp and move all the functionalities to LengthBox.h.
Delete LayoutBoxExtent.cpp since it is the same class as LengthBox.

* css/CSSProperty.cpp:
* platform/text/WritingMode.h:
Move the enums LogicalBoxSide and PhysicalBoxSide
from CSSProperty.cpp to WritingMode.h so it can be used by other classes.

* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):
* css/CSSToStyleMap.h:
* inspector/InspectorOverlay.cpp:
(WebCore::buildRendererHighlight):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
* rendering/RenderBox.h:
(WebCore::RenderBox::marginLogicalLeft):
(WebCore::RenderBox::marginLogicalRight):
(WebCore::RenderBox::setMarginBefore):
(WebCore::RenderBox::setMarginAfter):
(WebCore::RenderBox::setMarginStart):
(WebCore::RenderBox::setMarginEnd):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setClip):
(WebCore::RenderStyle::noneDashboardRegions):
* rendering/style/RenderStyle.h:
Use the new BoxExtent access methods for getting and settings the sides of
LengthBox and LayoutBoxExtent.

* platform/LengthBox.h:
(WebCore::BoxExtent::BoxExtent):
(WebCore::BoxExtent::at):
(WebCore::BoxExtent::top):
(WebCore::BoxExtent::right):
(WebCore::BoxExtent::bottom):
(WebCore::BoxExtent::left):
(WebCore::BoxExtent::setAt):
(WebCore::BoxExtent::setTop):
(WebCore::BoxExtent::setRight):
(WebCore::BoxExtent::setBottom):
(WebCore::BoxExtent::setLeft):
(WebCore::BoxExtent::before):
(WebCore::BoxExtent::end):
(WebCore::BoxExtent::after):
(WebCore::BoxExtent::start):
(WebCore::BoxExtent::setBefore):
(WebCore::BoxExtent::setEnd):
(WebCore::BoxExtent::setAfter):
(WebCore::BoxExtent::setStart):
(WebCore::BoxExtent::operator==):
(WebCore::BoxExtent::operator!=):
(WebCore::LengthBox::LengthBox):
(WebCore::LengthBox::isZero):
(WebCore::LengthBox::left): Deleted.
(WebCore::LengthBox::right): Deleted.
(WebCore::LengthBox::top): Deleted.
(WebCore::LengthBox::bottom): Deleted.
(WebCore::LengthBox::operator==): Deleted.
(WebCore::LengthBox::operator!=): Deleted.
(WebCore::LengthBox::nonZero): Deleted.
Define a new template class for 'BoxExtent'. A 'BoxExtent' represents the
extent of four sides of a box. Use this class template to define the exiting
classes 'LengthBox' and 'LayoutBoxExtent'. Use it also to and define the
new class FloatBoxExtent

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::calculateFillTileSize):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::updateContent):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::createShapeForImage):
Change the return value of calculateImageIntrinsicDimensions() to be a
bool which indicates whether the image has an intrinsic size or not. Add
a new reference argument to this function receive the resolved image size.

(WebCore::RenderBoxModelObject::paintNinePieceImage): Move all the painting
code of this function to NinePieceImage::paint()

(WebCore::computeBorderImageSide): Deleted.
Renamed to be NinePieceImage::computeSlice().

* rendering/style/BorderData.h:
(WebCore::BorderData::borderWidth): Add a new method to return the extents
of the border in a FloatBoxExtent.

* rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImage::computeSlice): Moved from NinePieceImage::computeSlice().

(WebCore::NinePieceImage::computeSlices): The first version of this function
computes the slices given their lengths. The slices have to be clamped to
the container size. The second version of this function computes the slices
given their lengths, their actual extents and their source slices.

(WebCore::NinePieceImage::scaleSlicesIfNeeded):  Reduce the slices if they
are too large.

(WebCore::NinePieceImage::isEmptyPieceRect): Returns true if an ImagePiece
should not be drawn.

(WebCore::NinePieceImage::horizontalTileRules):
(WebCore::NinePieceImage::verticalTileRules):
Fill vectors of tiling rules to be passed to GraphicsContext::drawTiledImage()

(WebCore::NinePieceImage::computeIntrinsicRects): Computes the nine pieces
rectangles for an intrinsic-sized container.

(WebCore::NinePieceImage::computeNonIntrinsicRects): Computes the nine
pieces rectangles for an non-intrinsic-sized source image. The computed
rectangles have to start at (0, 0) and their sizes should be equal to
the sizes of the nine pieces rectangles of the destination container.

(WebCore::NinePieceImage::computeIntrinsicSideTileScale):
(WebCore::NinePieceImage::computeIntrinsicMiddleTileScale):
(WebCore::NinePieceImage::computeIntrinsicTileScales):
(WebCore::NinePieceImage::computeNonIntrinsicTileScales):
Computes the scaling factors for drawing the tiles. For non-intrinsic source
images, there should not be any scaling factors.

(WebCore::NinePieceImage::paint): Moved from RenderBoxModelObject::paintNinePieceImage()
but simplified and restructured.

(WebCore::NinePieceImageData::NinePieceImageData): Use nullptr instead of 0.

* rendering/style/NinePieceImage.h:
(WebCore::operator++):
(WebCore::isCornerPiece):
(WebCore::isMiddlePiece):
(WebCore::imagePieceHorizontalSide):
(WebCore::imagePieceVerticalSide):
Add helper functions for the enum ImagePiece.

LayoutTests:

* fast/borders/border-image-fill-no-intrinsic-size-expected.html: Added.
* fast/borders/border-image-fill-no-intrinsic-size.html: Added.
* fast/borders/resources/svg-border-100x100-intrinsic.svg: Added.
* fast/borders/resources/svg-border-140x140-intrinsic.svg: Added.
* fast/borders/resources/svg-border-no-intrinsic.svg: Added.
Make sure the slices of the border-image are drawn correctly. When using an
image with no intrinsic size, all the slices has to be gotten from (0, 0)
of the source image.

* TestExpectations: Removed previously-failing test.

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

5 years ago<font face> doesn't support plus character in font family names.
akling@apple.com [Wed, 27 May 2015 04:13:54 +0000 (04:13 +0000)]
<font face> doesn't support plus character in font family names.
<https://webkit.org/b/145400>
<rdar://problem/21097484>

Reviewed by Darin Adler.

Source/WebCore:

Turn CSSParser::parseFontFaceValue() into a fast-path parser for
<font face> attributes.
Going through the full CSS parser was hurting us here, as it would
misunderstand unquoted family names and choke on e.g '+'.

Test: fast/dom/HTMLFontElement/face-attribute.html

* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceValue):

LayoutTests:

Add a little test for <font face> attributes to cover this problem
and some other interesting cases with spaces and commas.

* fast/dom/HTMLFontElement/face-attribute-expected.txt: Added.
* fast/dom/HTMLFontElement/face-attribute.html: Added.

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

5 years agoAdd a symlink for every file inside /S/L/F/WebKit.framework to the PrivateFrameworks...
andersca@apple.com [Wed, 27 May 2015 02:44:40 +0000 (02:44 +0000)]
Add a symlink for every file inside /S/L/F/WebKit.framework to the PrivateFrameworks mirror.

rdar://problem/21111232.

Reviewed by Dan Bernstein.

* WebKit2.xcodeproj/project.pbxproj:

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

5 years ago[EFL] webview should be updated from (0,0) when using the evasGL.
commit-queue@webkit.org [Wed, 27 May 2015 01:08:29 +0000 (01:08 +0000)]
[EFL] webview should be updated from (0,0) when using the evasGL.
https://bugs.webkit.org/show_bug.cgi?id=137948

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

Changed the point of the start position to update the evasObject
correctly when using the evasGL for graphics backend.

* UIProcess/API/efl/EwkView.cpp:
(EwkView::displayTimerFired):

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

5 years agoAX: display:none content exposed to accessibility when aria-hidden is toggled on...
cfleizach@apple.com [Wed, 27 May 2015 00:54:38 +0000 (00:54 +0000)]
AX: display:none content exposed to accessibility when aria-hidden is toggled on ancestor element
https://bugs.webkit.org/show_bug.cgi?id=139142

Reviewed by Darin Adler.

* platform/mac/accessibility/aria-hidden-false-works-in-subtrees-expected.txt:

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

5 years agoAX: display:none content exposed to accessibility when aria-hidden is toggled on...
cfleizach@apple.com [Wed, 27 May 2015 00:53:00 +0000 (00:53 +0000)]
AX: display:none content exposed to accessibility when aria-hidden is toggled on ancestor element
https://bugs.webkit.org/show_bug.cgi?id=139142

Reviewed by Darin Adler.
Source/WebCore:

Amend the code that determines when an invisible, but aria-hidden=false, element is exposed to accessibility.

The new guideline is that you must have aria-hidden=false on every node that is not rendered (except text which inherits)
otherwise the element will not be visible.

Modified existing test: accessibility/aria-hidden-false-works-in-subtrees.html

* accessibility/AXObjectCache.cpp:
(WebCore::isNodeAriaVisible):
(WebCore::AXObjectCache::rootWebArea):

LayoutTests:

* accessibility/aria-hidden-false-works-in-subtrees.html:

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

5 years agoEnable element unsigned index in WebGL2 again.
roger_fong@apple.com [Wed, 27 May 2015 00:18:58 +0000 (00:18 +0000)]
Enable element unsigned index in WebGL2 again.
https://bugs.webkit.org/show_bug.cgi?id=145392
<rdar://problem/21112585>.

Reviewed by Dean Jackson.

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateDrawElements):
Fix some incorrect logic that disables the feature for WebGL2.

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

5 years agoAdd assertions to make sure pages in the PageCache are not loading
cdumez@apple.com [Wed, 27 May 2015 00:05:52 +0000 (00:05 +0000)]
Add assertions to make sure pages in the PageCache are not loading
https://bugs.webkit.org/show_bug.cgi?id=145397
<rdar://problem/20613631>

Reviewed by Antti Koivisto.

Add assertions to make sure pages in the PageCache are not loading.
These will hopefully help track down why PacheCache entries sometimes
have pending subresource loads when being destroyed.

* history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoadingSubresources):
(WebCore::DocumentLoader::addSubresourceLoader):

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

5 years agoWeb Inspector: Function parameter string parsing improperly handles empty parameter...
commit-queue@webkit.org [Tue, 26 May 2015 23:11:13 +0000 (23:11 +0000)]
Web Inspector: Function parameter string parsing improperly handles empty parameter list
https://bugs.webkit.org/show_bug.cgi?id=145391

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

* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):

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

5 years agoUnreviewed, rolling out r184872.
commit-queue@webkit.org [Tue, 26 May 2015 23:00:44 +0000 (23:00 +0000)]
Unreviewed, rolling out r184872.
https://bugs.webkit.org/show_bug.cgi?id=145396

Bindings tests broken on the bots. (Requested by dethbakin on
#webkit).

Reverted changeset:

"Binding generator should support interfaces with
CustomConstructor and NoInterfaceObject"
https://bugs.webkit.org/show_bug.cgi?id=145016
http://trac.webkit.org/changeset/184872

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

5 years agoOverhanging float sets are not cleaned up properly when floating renderer is destroyed.
zalan@apple.com [Tue, 26 May 2015 22:59:40 +0000 (22:59 +0000)]
Overhanging float sets are not cleaned up properly when floating renderer is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=145323
rdar://problem/20980628

Reviewed by Dave Hyatt.

This patch ensures when an overhanging float renderer is destroyed,
all the sibling containers' floating object set(m_floatingObjects) gets properly cleaned up.

When an overhanging float is present, we cache the renderer on the parent and on the affected
sibling containers too. (RenderBlockFlow::m_floatingObjects) These caches(sets) get cleared and repopulated
during ::layout(). In order to have a float renderer removed from a set, a layout needs to be initiated on the container.
This is normally done through RenderBlockFlow::markSiblingsWithFloatsForLayout() and RenderBlockFlow::markAllDescendantsWithFloatsForLayout().
However, when the float container's parent's writing direction changes (and we promote the children containers to new formatting contexts),
the layout propagation through siblings does not work anymore.

The avoidsFloats() check in RenderBlockFlow::markSiblingsWithFloatsForLayout() has very little performance gain, but it prevents us
from propagating layout to siblings when certain properties of the parent container changes.

Source/WebCore:

Test: fast/block/float/crash-when-floating-object-is-removed.xhtml

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout):
* rendering/RenderBox.cpp:
(WebCore::outermostBlockContainingFloatingObject):
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
(WebCore::RenderBox::outermostBlockContainingFloatingObject): Deleted.
* rendering/RenderBox.h:

LayoutTests:

* fast/block/float/crash-when-floating-object-is-removed-expected.txt: Added.
* fast/block/float/crash-when-floating-object-is-removed.xhtml: Added.

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

5 years agoPhoto Booth hangs under JSC::MachineThreads::tryCopyOtherThreadStacks
ggaren@apple.com [Tue, 26 May 2015 22:59:38 +0000 (22:59 +0000)]
Photo Booth hangs under JSC::MachineThreads::tryCopyOtherThreadStacks
https://bugs.webkit.org/show_bug.cgi?id=145395

Reviewed by Mark Hahnenberg.

No test case because we already have --threaded mode, which runs lots of
parallel GC, but it (and the original in-app test case) can't reproduce
this bug.

* heap/MachineStackMarker.cpp:
(JSC::MachineThreads::tryCopyOtherThreadStacks): Use a lock to prevent
two threads from mutually suspending each other.

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

5 years agoInteger overflow in XLarge allocation (due to unchecked roundUpToMultipleOf)
ggaren@apple.com [Tue, 26 May 2015 22:48:13 +0000 (22:48 +0000)]
Integer overflow in XLarge allocation (due to unchecked roundUpToMultipleOf)
https://bugs.webkit.org/show_bug.cgi?id=145385

Reviewed by Andreas Kling.

Added some checking to verify that round-up operations will not overflow
a size_t.

The simplest way to do this was to introduce a notion of xLargeMax, like
we have for smallMax, mediumMax, and largeMax. It's a bit surprising at
first to think that there is an xLargeMax, since xLarge is what we use
to handle the biggest things. But computers have limits, so it makes sense.

FWIW, TCMalloc used to have an xLargeMax too, which it called kMaxValidPages.

No test because this bug was found by code inspection and I don't know
of a practical way to convince WebKit to make an allocation this large.

* bmalloc/Allocator.cpp:
(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocate):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase): Check against xLargeMax to avoid
overflow when rounding up.

* bmalloc/BAssert.h: Added support for explicit crashing.

* bmalloc/Sizes.h:

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

5 years agoFixes compatibility issues with recent dashboard cleanup.
dburkart@apple.com [Tue, 26 May 2015 22:31:04 +0000 (22:31 +0000)]
Fixes compatibility issues with recent dashboard cleanup.
https://bugs.webkit.org/show_bug.cgi?id=144814

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotStaticAnalyzerQueueView.js:
(BuildbotStaticAnalyzerQueueView):
(BuildbotStaticAnalyzerQueueView.prototype.update):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
(documentReady):

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

5 years agostorage/indexeddb/deleteIndex-bug110792.html is flaky
bdakin@apple.com [Tue, 26 May 2015 22:15:34 +0000 (22:15 +0000)]
storage/indexeddb/deleteIndex-bug110792.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=145390

Marking as flaky.
* TestExpectations:

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

5 years agoAdd Array.prototype.copyWithin to JSC features.json
utatane.tea@gmail.com [Tue, 26 May 2015 22:06:33 +0000 (22:06 +0000)]
Add Array.prototype.copyWithin to JSC features.json
https://bugs.webkit.org/show_bug.cgi?id=145387

Reviewed by Darin Adler.

* features.json:

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

5 years agoBotwatcher's dashboard doesn't show JSC test regressions on Apple bots
ap@apple.com [Tue, 26 May 2015 22:06:05 +0000 (22:06 +0000)]
Botwatcher's dashboard doesn't show JSC test regressions on Apple bots
https://bugs.webkit.org/show_bug.cgi?id=143091
rdar://problem/19330328

Reviewed by Darin Adler and Timothy Hatcher.

We have many of these, which are hard to fit on the dashboard. Added a view that
collapses to a single green bubble when everything is good, and expands when there
are failures (or manually).

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html: Added BuildbotCombinedQueueView.js

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:
(Buildbot.prototype.set isAuthenticated):
(Buildbot.prototype._normalizeQueueInfo):
(Buildbot.prototype._normalizeQueuesInfo):
(Buildbot.prototype.updateQueues):
Moved queue info normalization here from BuildbitQueue. The latter is a model class
that shouldn't have to know about presentation, and this lets us leep the knowledge
about combined queues out if it. Later, we can refactor existing code, and move out
all knowledge about headings and such.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:
Added the new view. It's not quite universal, and doesn't have as helpful popovers
as other views, but we can extend it when/if we use it for more than JSC.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:
(BuildbotQueue): Now that info is normalized before creating a queue, don't do that here.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
(documentReady): Added support for combined queues. These are currently always ending up
in Other column, but it's easy to customize in the future if we need to.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot): Added JSC queus.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:
(.combined-queue-popover):
(.combined-queue-popover .revision):
Added styles for the combined view.

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

5 years agoWeb Inspector: Add Array.prototype.copyWithin parameter list
commit-queue@webkit.org [Tue, 26 May 2015 21:50:39 +0000 (21:50 +0000)]
Web Inspector: Add Array.prototype.copyWithin parameter list
https://bugs.webkit.org/show_bug.cgi?id=145388

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

* UserInterface/Models/NativeFunctionParameters.js:

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

5 years agoWeb Inspector: focus outline of a search field should have a radius
nvasilyev@apple.com [Tue, 26 May 2015 21:48:41 +0000 (21:48 +0000)]
Web Inspector: focus outline of a search field should have a radius
https://bugs.webkit.org/show_bug.cgi?id=145383

Add a focus outline animation to roughly mimic the default focus outline of OS X.

Reviewed by Timothy Hatcher.

* UserInterface/Views/Toolbar.css:
(.toolbar .search-bar > input[type="search"]):
-webkit-focus-ring-color doesn't follow element's curvature (e.g. border-radius)
and it cannot be animated. Replace it with box-shadow.

(.toolbar .search-bar > input[type="search"]:focus):

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

5 years ago[EFL][CoordinatedGraphics] Remove CoordinatedTileClient and CoordinatedTileBackend
ryuan.choi@navercorp.com [Tue, 26 May 2015 21:38:57 +0000 (21:38 +0000)]
[EFL][CoordinatedGraphics] Remove CoordinatedTileClient and CoordinatedTileBackend
https://bugs.webkit.org/show_bug.cgi?id=133337

Reviewed by Darin Adler.

This patch simplifies relationship between CoordinatedGraphicsLayer and TiledBackingStore
by removing TiledBackingStoreBackend because TiledBackingStore only support
CoordinatedTileBackend.
And it also moves CoordinatedTileClient interface to TiledBackingStoreClient.

* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::createBackingStore):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
* platform/graphics/texmap/coordinated/CoordinatedTile.cpp:
(WebCore::CoordinatedTile::create):
(WebCore::CoordinatedTile::CoordinatedTile):
(WebCore::CoordinatedTile::~CoordinatedTile):
(WebCore::CoordinatedTile::updateBackBuffer):
(WebCore::CoordinatedTileBackend::CoordinatedTileBackend): Deleted.
(WebCore::CoordinatedTileBackend::createTile): Deleted.
(WebCore::CoordinatedTileBackend::paintCheckerPattern): Deleted.
* platform/graphics/texmap/coordinated/CoordinatedTile.h:
(WebCore::CoordinatedTile::create): Deleted.
(WebCore::CoordinatedTileClient::~CoordinatedTileClient): Deleted.
* platform/graphics/texmap/coordinated/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::createTiles):
* platform/graphics/texmap/coordinated/TiledBackingStore.h:
* platform/graphics/texmap/coordinated/TiledBackingStoreBackend.h: Removed.
(WebCore::TiledBackingStoreBackend::~TiledBackingStoreBackend): Deleted.
* platform/graphics/texmap/coordinated/TiledBackingStoreClient.h:

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

5 years agoFullscreen video does not display on platforms without accelerated video rendering
commit-queue@webkit.org [Tue, 26 May 2015 21:37:40 +0000 (21:37 +0000)]
Fullscreen video does not display on platforms without accelerated video rendering
https://bugs.webkit.org/show_bug.cgi?id=145118

In order to paint video contents in fullscreen mode, add supportsAcceleratedRendering condition.

Patch by Daegyu Lee <daegyu.lee@navercorp.com> on 2015-05-26
Reviewed by Simon Fraser.

* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::paintReplaced):

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

5 years agoSVG fragment identifier rendering issue
commit-queue@webkit.org [Tue, 26 May 2015 21:24:05 +0000 (21:24 +0000)]
SVG fragment identifier rendering issue
https://bugs.webkit.org/show_bug.cgi?id=137328

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-26
Reviewed by Darin Adler.

Source/WebCore:

This is a follow up for http://trac.webkit.org/changeset/164983. In this
changeset, scrolling to the fragment should have been added before the
the paint to guarantee setting the proper display position for the SVG
fragment.

Test: svg/css/svg-resource-fragment-identifier-order.html

* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw): Move view->scrollToFragment() before calling
view->paint().

LayoutTests:

* svg/css/svg-resource-fragment-identifier-order-expected.html: Added.
* svg/css/svg-resource-fragment-identifier-order.html: Added.
Ensure the SVG fragment is drawn correctly when the same SVG image is
referenced multiple times.

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

5 years agoWeb Inspector: The bottom part "debugger" is clipped in the tab’s title
nvasilyev@apple.com [Tue, 26 May 2015 21:20:50 +0000 (21:20 +0000)]
Web Inspector: The bottom part "debugger" is clipped in the tab’s title
https://bugs.webkit.org/show_bug.cgi?id=145381

Reviewed by Timothy Hatcher.

* UserInterface/Views/TabBar.css:
(.tab-bar > .item):
Set line-height to fit "debugger". Setting line-height to 16px, which is the
size of the tabs icons, moves the text one pixel up, so set it to 15px.

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

5 years agoBinding generator should support interfaces with CustomConstructor and NoInterfaceObject
youenn.fablet@crf.canon.fr [Tue, 26 May 2015 21:18:37 +0000 (21:18 +0000)]
Binding generator should support interfaces with CustomConstructor and NoInterfaceObject
https://bugs.webkit.org/show_bug.cgi?id=145016

Reviewed by Darin Adler.

Updated code generator to generate the necessary declarations (constructor property in the prototype, the constructor class).
In the case of CustomConstructor with NoInterfaceObject, the implementation of the constructor property related JS function is changed as follow:
It creates a constructor object and shadows the constructor property JS function with this object.
This ensures that only one constructor object is created per prototype.
The constructor is not exposed as it is not added to the global object constructor map.

NoInterfaceObject is asking to not make the interface visible, which is contradictory with having a visible constructor of the interface.
The case for having NoInterfaceObject and CustomConstructor is the following:
We do not want to expose the interface but we still want to have a constructor property on the prototype of objects implementing the interface.
One such case is https://streams.spec.whatwg.org/#globals

Added TestCustomConstructorWithNoInterfaceObject.idl to check that case.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateAttributesHashTable):
(GenerateImplementation):
(HasConstructorProperty):
* bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObject.cpp: Added.
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestCustomConstructorWithNoInterfaceObject):
(webkit_dom_test_custom_constructor_with_no_interface_object_finalize):
(webkit_dom_test_custom_constructor_with_no_interface_object_constructor):
(webkit_dom_test_custom_constructor_with_no_interface_object_class_init):
(webkit_dom_test_custom_constructor_with_no_interface_object_init):
* bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObject.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestCustomConstructorWithNoInterfaceObjectPrivate.h: Added.
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: Added.
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::create):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::createStructure):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::JSTestCustomConstructorWithNoInterfaceObjectPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::create):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::createStructure):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::JSTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::getConstructData):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::JSTestCustomConstructorWithNoInterfaceObject):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::createPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::getPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::destroy):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::~JSTestCustomConstructorWithNoInterfaceObject):
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::getConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize):
(WebCore::toJS):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: Added.
(WebCore::wrapperOwner):
(WebCore::toJS):
* bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.h: Added.
* bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.mm: Added.
(-[DOMTestCustomConstructorWithNoInterfaceObject dealloc]):
(-[DOMTestCustomConstructorWithNoInterfaceObject finalize]):
(core):
(kit):
* bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObjectInternal.h: Added.
* bindings/scripts/test/TestCustomConstructor.idl: Added.

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

5 years agoReflect nits for r184863
utatane.tea@gmail.com [Tue, 26 May 2015 21:17:22 +0000 (21:17 +0000)]
Reflect nits for r184863
https://bugs.webkit.org/show_bug.cgi?id=145107

Reviewed by Darin Adler.

1. Added the copyright line.
2. Added an optional argument (/*, end */). To do so, fixed generate-js-builtins.
3. Dropped the unnecessary variable `thisValue`.
4. Fix the type error messages. This is also found in StringIterator.prototype.js.
5. Added tests for 0 arguments.

* builtins/Array.prototype.js:
(copyWithin):
* builtins/StringIterator.prototype.js:
(next):
* generate-js-builtins:
* tests/stress/array-copywithin.js:
* tests/stress/string-iterators.js:

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

5 years agoUpdate Autofill button icon
dbates@webkit.org [Tue, 26 May 2015 20:40:34 +0000 (20:40 +0000)]
Update Autofill button icon
https://bugs.webkit.org/show_bug.cgi?id=145191
<rdar://problem/20178942>

Update expected results for Windows.

* platform/win/fast/forms/input-auto-fill-button-expected.txt:

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

5 years agoCSS properties (font-synthesis, column-fill) are missing in getComputedStyles
commit-queue@webkit.org [Tue, 26 May 2015 19:50:18 +0000 (19:50 +0000)]
CSS properties (font-synthesis, column-fill) are missing in getComputedStyles
https://bugs.webkit.org/show_bug.cgi?id=145343

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

Source/WebCore:

* css/CSSComputedStyleDeclaration.cpp:

LayoutTests:

* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-font-family-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:

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

5 years agoInline @Array / @Object callsites
utatane.tea@gmail.com [Tue, 26 May 2015 19:47:56 +0000 (19:47 +0000)]
Inline @Array / @Object callsites
https://bugs.webkit.org/show_bug.cgi?id=145382

Reviewed by Geoffrey Garen.

As the same to Array/Object callsite inlining, @Array/@Object also
should be inlined in bytecode level.
While `new @Object` style is not encouraged in the builtins,
`@Array(len)` is already used at least in Array.from code.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::expectedFunctionForIdentifier):

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

5 years agoStringView should have find(StringView, start).
akling@apple.com [Tue, 26 May 2015 18:57:00 +0000 (18:57 +0000)]
StringView should have find(StringView, start).
<https://webkit.org/b/145351>

Reviewed by Darin Adler.

Move the class agnostic guts of StringImpl's find() implementation from StringImpl
to StringCommon.h and templatize the code into a findCommon() helper.

StringImpl::find() and StringView::find() now both call findCommon().

* wtf/text/StringCommon.h:
(WTF::findInner):
(WTF::find):
(WTF::findCommon):
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::find):
(WTF::findInner): Deleted.
* wtf/text/StringImpl.h:
(WTF::find): Deleted.
* wtf/text/StringView.cpp:
(WTF::StringView::find):
* wtf/text/StringView.h:

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

5 years agoString.prototype.charCodeAt() should use StringView.
akling@apple.com [Tue, 26 May 2015 18:56:42 +0000 (18:56 +0000)]
String.prototype.charCodeAt() should use StringView.
<https://webkit.org/b/145353>

Reviewed by Darin Adler.

Use JSString::view() in charCodeAt() to avoid reifying the JSString if it's
a substring. This avoids StringImpl allocation in some cases and ref churn
in all cases.

* runtime/StringPrototype.cpp:
(JSC::stringProtoFuncCharCodeAt):

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

5 years agoString.prototype.charAt() should use StringView.
akling@apple.com [Tue, 26 May 2015 18:54:01 +0000 (18:54 +0000)]
String.prototype.charAt() should use StringView.
<https://webkit.org/b/145352>

Reviewed by Darin Adler.

Remove the jsSingleCharacterSubstring() function since it's actually completely
counter-productive: it could create a single-character string that would retain
a much larger string for the duration of its lifetime.

This made sense before StringImpl learned to put its characters at the tail end
of its own allocation. Now that it does, it's far better to just create a new
single-character StringImpl.

With that out of the way, we can make String.prototype.charAt() use StringView
to avoid reifying substring JSStrings (and avoid some ref churn too.)

* runtime/JSString.cpp:
(JSC::JSRopeString::getIndexSlowCase):
* runtime/JSString.h:
(JSC::JSString::getIndex):
(JSC::jsSingleCharacterSubstring): Deleted.
* runtime/StringPrototype.cpp:
(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncSplit):

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

5 years agoChanged a file to use Unix line endings.
mitz@apple.com [Tue, 26 May 2015 18:52:34 +0000 (18:52 +0000)]
Changed a file to use Unix line endings.

* LayoutTestRelay/Configurations/DebugRelease.xcconfig:

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

5 years ago[ES6] Implement Array.prototype.copyWithin
utatane.tea@gmail.com [Tue, 26 May 2015 18:23:59 +0000 (18:23 +0000)]
[ES6] Implement Array.prototype.copyWithin
https://bugs.webkit.org/show_bug.cgi?id=145107

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch implements ES6 Array.prototype.copyWithin.
It is intended to be used for copying the region to the other region
in the callee array itself safely (like memmove, not memcpy).
This function is proposed in the context of WebGL.

* builtins/Array.prototype.js:
(.maxWithPositives):
(.minWithMaybeNegativeZeroAndPositive):
(copyWithin):
* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::finishCreation):
* tests/stress/array-copywithin.js: Added.
(shouldBe):
(shouldBeArray):
(shouldThrow):
(arrayToObject):
(valueOf):

LayoutTests:

* js/Object-getOwnPropertyNames-expected.txt:
* js/script-tests/Object-getOwnPropertyNames.js:

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

5 years ago<rdar://problem/21104551> Update build settings
mitz@apple.com [Tue, 26 May 2015 17:54:53 +0000 (17:54 +0000)]
<rdar://problem/21104551> Update build settings

Reviewed by Anders Carlsson.

Source/bmalloc:

* Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:

Source/ThirdParty:

* gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:

Source/WebCore:

* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:

Source/WebInspectorUI:

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:

Source/WebKit/mac:

* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:

Source/WebKit2:

* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebContentService.Development.xcconfig:
* Configurations/WebContentService.xcconfig:

Source/WTF:

* Configurations/DebugRelease.xcconfig:

Tools:

* ContentExtensionTester/Configurations/DebugRelease.xcconfig:
* DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
* MiniBrowser/Configurations/DebugRelease.xcconfig:
* TestWebKitAPI/Configurations/DebugRelease.xcconfig:
* WebEditingTester/Configurations/DebugRelease.xcconfig:
* WebKitTestRunner/Configurations/DebugRelease.xcconfig:
* asan/asan.xcconfig:

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

5 years agoFix build.
andersca@apple.com [Tue, 26 May 2015 17:35:15 +0000 (17:35 +0000)]
Fix build.

* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseForceDown):
(WTR::EventSenderProxy::mouseForceUp):
(WTR::EventSenderProxy::mouseForceChanged):

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

5 years agoTry to use StringView when comparing JSStrings for equality.
akling@apple.com [Tue, 26 May 2015 17:28:32 +0000 (17:28 +0000)]
Try to use StringView when comparing JSStrings for equality.
<https://webkit.org/b/145379>

Reviewed by Darin Adler.

Use JSString::view() when sending two JSStrings to WTF::equal()
for comparison. This avoids creating new objects in the case where
the strings are actually substrings.

* jit/JITOperations.cpp:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::equalSlowCaseInline):
(JSC::JSValue::strictEqualSlowCaseInline):

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

5 years ago[JSC] Generate put_by_val_direct for indexed identifiers instead of put_by_id with...
utatane.tea@gmail.com [Tue, 26 May 2015 17:26:40 +0000 (17:26 +0000)]
[JSC] Generate put_by_val_direct for indexed identifiers instead of put_by_id with direct postfix
https://bugs.webkit.org/show_bug.cgi?id=145360

Reviewed by Darin Adler.

JSObject::putDirect only accepts non-indexed properties.
So when generating put_by_id (with direct postfix) for indexed property,
we should generate put_by_val_direct instead.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitDirectPutById):
* bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitPutConstantProperty):
* tests/stress/put-by-id-direct-should-be-done-for-non-index-property.js: Added.

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

5 years agobuild.webkit.org/dashboard: Don't list test steps in BuildbotIteration twice
ap@apple.com [Tue, 26 May 2015 17:23:49 +0000 (17:23 +0000)]
build.webkit.org/dashboard: Don't list test steps in BuildbotIteration twice
https://bugs.webkit.org/show_bug.cgi?id=145342

Reviewed by Darin Adler.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype._parseData):

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

5 years ago[ARM] Build SVGPathElement.cpp with -O2 due to a GCC bug
ossy@webkit.org [Tue, 26 May 2015 11:53:15 +0000 (11:53 +0000)]
[ARM] Build SVGPathElement.cpp with -O2 due to a GCC bug
https://bugs.webkit.org/show_bug.cgi?id=145377

Reviewed by Carlos Garcia Campos.

* CMakeLists.txt:

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

5 years ago[GTK] Expand wildcards inside generate-inspector-gresource-manifest.py
commit-queue@webkit.org [Tue, 26 May 2015 11:26:51 +0000 (11:26 +0000)]
[GTK] Expand wildcards inside generate-inspector-gresource-manifest.py
https://bugs.webkit.org/show_bug.cgi?id=138134

Patch by Milan Crha <mcrha@redhat.com> on 2015-05-26
Reviewed by Žan Doberšek.

Source/WebKit2:

* PlatformGTK.cmake: Command line with expanded resources exceeds 32KB, which
is a limit on Windows. It's better to expand wildcards inside the python script.

Tools:

* gtk/generate-inspector-gresource-manifest.py:
(get_filenames): Command line with expanded resources exceeds 32KB, which
is a limit on Windows. It's better to expand wildcards inside the python script.

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

5 years agoUnreviewed. Export DatabaseProcessMainUnix symbol.
carlosgc@webkit.org [Tue, 26 May 2015 06:29:34 +0000 (06:29 +0000)]
Unreviewed. Export DatabaseProcessMainUnix symbol.

Add DatabaseProcessMainUnix symbol to gtksymbols.filter so that it
is exported in production builds.

* Source/cmake/gtksymbols.filter:

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

5 years agoFixed a failing bindings test after r184853.
mitz@apple.com [Tue, 26 May 2015 05:20:07 +0000 (05:20 +0000)]
Fixed a failing bindings test after r184853.

* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation): Removed an extraneous semicolon.

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

5 years agoASSERT_MAIN_THREAD and DOM_ASSERT_MAIN_THREAD are unnecessary no-ops
mitz@apple.com [Tue, 26 May 2015 02:26:34 +0000 (02:26 +0000)]
ASSERT_MAIN_THREAD and DOM_ASSERT_MAIN_THREAD are unnecessary no-ops
https://bugs.webkit.org/show_bug.cgi?id=145372

Reviewed by Sam Weinig.

Source/WebCore:

* Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES.

* bindings/objc/DOMAbstractView.mm:
(-[DOMAbstractView dealloc]): Removed use of DOM_ASSERT_MAIN_THREAD.
(kit): Ditto.

* bindings/objc/ExceptionHandlers.h: Removed definition of DOM_ASSERT_MAIN_THREAD.

* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation): Don’t emit DOM_ASSERT_MAIN_THREAD.

Updated expected bindings test results:
* bindings/scripts/test/ObjC/DOMFloat64Array.mm:
* bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm:
* bindings/scripts/test/ObjC/DOMTestCallback.mm:
* bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm:
* bindings/scripts/test/ObjC/DOMTestEventConstructor.mm:
* bindings/scripts/test/ObjC/DOMTestEventTarget.mm:
* bindings/scripts/test/ObjC/DOMTestException.mm:
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm:
* bindings/scripts/test/ObjC/DOMTestInterface.mm:
* bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm:
* bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm:
* bindings/scripts/test/ObjC/DOMTestNode.mm:
* bindings/scripts/test/ObjC/DOMTestNondeterministic.mm:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
* bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
* bindings/scripts/test/ObjC/DOMattribute.mm:
* bindings/scripts/test/ObjC/DOMreadonly.mm:

Source/WebKit/ios:

* Misc/WebGeolocationCoreLocationProvider.mm:
(-[WebGeolocationCoreLocationProvider initWithListener:]): Removed use of ASSERT_MAIN_THREAD.
(-[WebGeolocationCoreLocationProvider dealloc]): Ditto.
(-[WebGeolocationCoreLocationProvider requestGeolocationAuthorization]): Ditto.
(-[WebGeolocationCoreLocationProvider start]): Ditto.
(-[WebGeolocationCoreLocationProvider stop]): Ditto.
(-[WebGeolocationCoreLocationProvider setEnableHighAccuracy:]): Ditto.

Source/WebKit/mac:

* Carbon/CarbonWindowAdapter.mm:
(-[CarbonWindowAdapter finalize]): Removed use of ASSERT_MAIN_THREAD.

* Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES.

* History/WebHistoryItem.mm:
(-[WebHistoryItem URLString]): Removed use of ASSERT_MAIN_THREAD.
(-[WebHistoryItem originalURLString]): Ditto.
(-[WebHistoryItem title]): Ditto.
(-[WebHistoryItem lastVisitedTimeInterval]): Ditto.
(-[WebHistoryItem isEqual:]): Ditto.
(-[WebHistoryItem description]): Ditto.
(-[WebHistoryItem initFromDictionaryRepresentation:]): Ditto.
(-[WebHistoryItem scrollPoint]): Ditto.

* Misc/WebElementDictionary.mm:
(-[WebElementDictionary finalize]): Ditto.

* Misc/WebIconDatabase.mm:
(-[WebIconDatabase iconForURL:withSize:cache:]): Ditto.
(-[WebIconDatabase iconURLForURL:]): Ditto.
(-[WebIconDatabase defaultIconWithSize:]): Ditto.
(-[WebIconDatabase retainIconForURL:]): Ditto.
(-[WebIconDatabase releaseIconForURL:]): Ditto.
(+[WebIconDatabase delayDatabaseCleanup]): Ditto.
(+[WebIconDatabase allowDatabaseCleanup]): Ditto.
(-[WebIconDatabase removeAllIcons]): Ditto.
(-[WebIconDatabase _iconForFileURL:withSize:]): Ditto.
(webGetNSImage): Ditto.

* Misc/WebKitLogging.h: Removed definition of ASSERT_MAIN_THREAD.

* Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView finalize]): Removed use of ASSERT_MAIN_THREAD.

* Plugins/WebBasePluginPackage.mm:
(-[WebBasePluginPackage finalize]): Ditto.

* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView finalize]): Ditto.

* WebCoreSupport/WebEditorClient.mm:
(-[WebUndoStep finalize]): Ditto.

* WebView/WebDataSource.mm:
(-[WebDataSource finalize]): Ditto.

* WebView/WebHTMLView.mm:
(-[WebHTMLViewPrivate finalize]): Ditto.
(-[WebHTMLView finalize]): Ditto.
(-[WebHTMLView drawRect:]): Ditto.

* WebView/WebViewData.mm:
(-[WebViewPrivate finalize]): Ditto.

Source/WebKit2:

* Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES.

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

5 years agoReplaced 0 with nullptr in WebCore/svg.
commit-queue@webkit.org [Tue, 26 May 2015 01:46:15 +0000 (01:46 +0000)]
Replaced 0 with nullptr in WebCore/svg.
https://bugs.webkit.org/show_bug.cgi?id=145367

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

No new tests, no behavior changes.

* svg/PatternAttributes.h:
(WebCore::PatternAttributes::PatternAttributes):
* svg/SVGAnimatedType.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::cursorElementRemoved):
(WebCore::SVGElement::cursorImageValueRemoved):
(WebCore::SVGElement::getPresentationAttribute):
* svg/SVGException.cpp:
(WebCore::SVGException::initializeDescription):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::clearResourceReferences):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::SVGFontFaceElement):
(WebCore::SVGFontFaceElement::removedFrom):
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::loadFont):
* svg/SVGLength.h:
(WebCore::SVGLength::blend):
* svg/SVGPathBlender.cpp:
(WebCore::SVGPathBlender::SVGPathBlender):
(WebCore::SVGPathBlender::cleanup):
* svg/SVGPathBuilder.cpp:
(WebCore::SVGPathBuilder::SVGPathBuilder):
* svg/SVGPathBuilder.h:
* svg/SVGPathByteStreamBuilder.cpp:
(WebCore::SVGPathByteStreamBuilder::SVGPathByteStreamBuilder):
* svg/SVGPathByteStreamBuilder.h:
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::dPropertyInfo):
* svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::SVGPathParser):
(WebCore::SVGPathParser::cleanup):
* svg/SVGPathSegListBuilder.cpp:
(WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):
* svg/SVGPathSegListBuilder.h:
* svg/SVGPathTraversalStateBuilder.cpp:
(WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder):
* svg/SVGPathUtilities.cpp:
(WebCore::globalSVGPathBuilder):
(WebCore::globalSVGPathSegListBuilder):
(WebCore::globalSVGPathByteStreamBuilder):
(WebCore::globalSVGPathStringBuilder):
(WebCore::globalSVGPathTraversalStateBuilder):
(WebCore::globalSVGPathParser):
(WebCore::globalSVGPathBlender):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::pointsPropertyInfo):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefTargetEventListener::cast):
(WebCore::SVGTRefTargetEventListener::SVGTRefTargetEventListener):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::textLengthPropertyInfo):
* svg/SVGURIReference.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::viewBoxPropertyInfo):
(WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
(WebCore::SVGViewSpec::transformPropertyInfo):
* svg/SVGViewSpec.h:
(WebCore::SVGViewSpec::resetContextElement):
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::updateAnimations):
* svg/animation/SVGSMILElement.cpp:
(WebCore::ConditionEventListener::cast):
(WebCore::ConditionEventListener::disconnectAnimation):
(WebCore::SVGSMILElement::SVGSMILElement):
(WebCore::SVGSMILElement::removedFrom):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawForContainer):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::FEImage):
* svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::clearEffects):
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
(WebCore::SVGAnimatedPathSegListPropertyTearOff::animationEnded):
(WebCore::SVGAnimatedPathSegListPropertyTearOff::SVGAnimatedPathSegListPropertyTearOff):
* svg/properties/SVGAnimatedPropertyDescription.h:
(WebCore::SVGAnimatedPropertyDescription::SVGAnimatedPropertyDescription):
* svg/properties/SVGAnimatedPropertyTearOff.h:
(WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff):
* svg/properties/SVGAnimatedStaticPropertyTearOff.h:
(WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
(WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
* svg/properties/SVGPropertyTearOff.h:
(WebCore::SVGPropertyTearOff::SVGPropertyTearOff):

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

5 years ago[GTK] Add construct property to WebKitWebContext to set the IndexedDB database directory
carlosgc@webkit.org [Mon, 25 May 2015 15:15:38 +0000 (15:15 +0000)]
[GTK] Add construct property to WebKitWebContext to set the IndexedDB database directory
https://bugs.webkit.org/show_bug.cgi?id=140882

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

Add WebKitWebContext:indexed-db-database-directory construct only property.

* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkitWebContextConstructed):
(webkit_web_context_class_init):

Tools:

Make sure unit tests write IndexedDB databases to the temporary
directory, and add a test case to check that the directory is
correctly created at the expected path.

* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
(testWebContextConfiguration):
(serverCallback):
* TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h:
(Test::Test):

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

5 years ago[GTK] Enable IndexedDB
carlosgc@webkit.org [Mon, 25 May 2015 07:05:03 +0000 (07:05 +0000)]
[GTK] Enable IndexedDB
https://bugs.webkit.org/show_bug.cgi?id=98932

Reviewed by Žan Doberšek.

.:

* Source/cmake/OptionsGTK.cmake: Enable DATABASE_PROCESS and INDEXED_DATABASE.
* Source/cmake/WebKitFeatures.cmake: Add ENABLE_DATABASE_PROCESS.

Tools:

* Scripts/webkitperl/FeatureList.pm: Enable IndexedDB for the GTK port.

LayoutTests:

* platform/gtk/TestExpectations: Update IndexedDB test expectations.

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

5 years ago[GTK] Bump GCC requirements to 4.9.0
carlosgc@webkit.org [Mon, 25 May 2015 06:55:01 +0000 (06:55 +0000)]
[GTK] Bump GCC requirements to 4.9.0
https://bugs.webkit.org/show_bug.cgi?id=145211

Reviewed by Žan Doberšek.

It's required to build with IndexedDB support when using GCC,
clang works just fine. See https://bugs.webkit.org/show_bug.cgi?id=98932.

* Source/cmake/OptionsGTK.cmake:

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

5 years agoArray#findIndex/find should not skip holes
commit-queue@webkit.org [Mon, 25 May 2015 03:51:17 +0000 (03:51 +0000)]
Array#findIndex/find should not skip holes
https://bugs.webkit.org/show_bug.cgi?id=145361
Source/JavaScriptCore:

per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.findindex
and https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.find

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-24
Reviewed by Yusuke Suzuki.

* builtins/Array.prototype.js:
(find): Deleted.
(findIndex): Deleted.

LayoutTests:

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-24
Reviewed by Yusuke Suzuki.

* js/array-find-expected.txt:
* js/array-findIndex-expected.txt:
* js/script-tests/array-find.js:
* js/script-tests/array-findIndex.js:

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

5 years agoWeb Inspector: Uncaught exception when using Inspect tool on SVG elements
burg@cs.washington.edu [Mon, 25 May 2015 02:38:22 +0000 (02:38 +0000)]
Web Inspector: Uncaught exception when using Inspect tool on SVG elements
https://bugs.webkit.org/show_bug.cgi?id=145363

Reviewed by Joseph Pecoraro.

The injected script failed by chaining a call to String.prototype.trim to the result of
SVG*Element.className, which is an SVGAnimatedString and lacks useful methods. So, obtain
the class name using Node.getAttribute, which always returns a DOMString.

* inspector/InjectedScriptSource.js:
(InjectedScriptSource.prototype._getDescription): use getAttribute instead of className.

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

5 years agoCrash when using a removed ScriptMessageHandler
weinig@apple.com [Sun, 24 May 2015 23:22:06 +0000 (23:22 +0000)]
Crash when using a removed ScriptMessageHandler
<rdar://problem/20888499>
https://bugs.webkit.org/show_bug.cgi?id=145359

Reviewed by Dan Bernstein.

Source/WebCore:

Added tests:
    WKUserContentController.ScriptMessageHandlerBasicRemove
    WKUserContentController.ScriptMessageHandlerCallRemovedHandler

* page/UserMessageHandler.cpp:
(WebCore::UserMessageHandler::~UserMessageHandler):
(WebCore::UserMessageHandler::postMessage):
(WebCore::UserMessageHandler::name):
* page/UserMessageHandler.h:
(WebCore::UserMessageHandler::create):
* page/UserMessageHandler.idl:
* page/UserMessageHandlerDescriptor.cpp:
(WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):
* page/UserMessageHandlerDescriptor.h:
(WebCore::UserMessageHandlerDescriptor::client):
(WebCore::UserMessageHandlerDescriptor::invalidateClient):
Add support for invalidating the descriptor and throw an exception if someone tries
to post a message using an invalidated descriptor.

* page/UserMessageHandlersNamespace.cpp:
(WebCore::UserMessageHandlersNamespace::handler):
Add logic to remove message handlers if their descriptor has been invalidated.

Source/WebKit2:

* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy):
Invalidate the descriptor when the message handler client (as implemented by WebUserMessageHandlerDescriptorProxy)
goes away. This will happen if a script message handler is removed at the API level or the WebUserContentController
is destroyed (which will happen if all the pages get destroyed).

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:
Add tests for removing script message handlers.

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

5 years agoRemove unused definitions of WEBKIT_VERSION_MIN_REQUIRED
mitz@apple.com [Sun, 24 May 2015 19:30:49 +0000 (19:30 +0000)]
Remove unused definitions of WEBKIT_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=145345

Reviewed by Sam Weinig.

Source/bmalloc:

* Configurations/Base.xcconfig: Also changed to use $(inherited).

Source/JavaScriptCore:

* Configurations/Base.xcconfig: Also changed to use $(inherited).

Source/WebCore:

* Configurations/WebCore.xcconfig: Also changed to use $(inherited).

Source/WebInspectorUI:

* Configurations/Base.xcconfig:

Source/WebKit/mac:

* Configurations/WebKitLegacy.xcconfig: Also changed to use $(inherited).

Source/WTF:

* Configurations/Base.xcconfig: Also changed to use $(inherited).

Tools:

* DumpRenderTree/mac/Configurations/Base.xcconfig:
* LayoutTestRelay/Configurations/Base.xcconfig:
* TestWebKitAPI/Configurations/Base.xcconfig:
* WebKitTestRunner/Configurations/Base.xcconfig:

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

5 years agoUse modern for-loops in WebCore/svg.
commit-queue@webkit.org [Sun, 24 May 2015 18:31:31 +0000 (18:31 +0000)]
Use modern for-loops in WebCore/svg.
https://bugs.webkit.org/show_bug.cgi?id=145209

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

No new tests, no behavior changes.

* svg/SVGAnimateElementBase.cpp:
(WebCore::propertyTypesAreConsistent):
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
* svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::executeAction):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseAttribute):
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::~SVGCursorElement):
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::pauseAnimations):
(WebCore::SVGDocumentExtensions::unpauseAnimations):
(WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
(WebCore::SVGDocumentExtensions::isElementWithPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
* svg/SVGElement.cpp:
(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateAttributeNameToAnimatedPropertyTypeMap):
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
(WebCore::hasLoadListener):
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection):
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::registerLigaturesInGlyphCache):
(WebCore::SVGKerningMap::insert):
(WebCore::stringMatchesUnicodeRange):
* svg/SVGPathByteStream.h:
(WebCore::SVGPathByteStream::append):
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::updateAnimations):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::parseBeginOrEnd):
(WebCore::SVGSMILElement::connectConditions):
(WebCore::SVGSMILElement::disconnectConditions):
(WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
(WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
* svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::clearResultsRecursive):
* svg/graphics/filters/SVGFilterBuilder.h:
(WebCore::SVGFilterBuilder::addBuiltinEffects):
* svg/properties/SVGAnimatedProperty.cpp:
(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
* svg/properties/SVGListProperty.h:
(WebCore::SVGListProperty::detachListWrappersAndResize):
* svg/properties/SVGPathSegListPropertyTearOff.cpp:
(WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):

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

5 years agoRegister media MIME types as supported by HTML view in WebKit1.
commit-queue@webkit.org [Sun, 24 May 2015 17:43:03 +0000 (17:43 +0000)]
Register media MIME types as supported by HTML view in WebKit1.
https://bugs.webkit.org/show_bug.cgi?id=145356

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-24
Reviewed by Eric Carlson.

Source/WebCore:

getSupportedMediaMIMETypes is now used in WebKit1.

* platform/MIMETypeRegistry.h: Export getSupportedMediaMIMETypes.

Source/WebKit/mac:

WebDataSource and WebFrame view knew about suppotedImageMIMETypes and supportedNonImageMIMETypes,
but not a third category supportedMediaMIMETypes. These are now included along-side
supportedNonImageMIMETypes.

* WebView/WebDataSource.mm:
(+[WebDataSource _repTypesAllowImageTypeOmission:]): use supportedMediaMIMETypes.
* WebView/WebFrameView.mm:
(+[WebFrameView _viewTypesAllowImageTypeOmission:]): use supportedMediaMIMETypes.
* WebView/WebHTMLRepresentation.h: declare -supportedMediaMIMETypes
* WebView/WebHTMLRepresentation.mm:
(+[WebHTMLRepresentation supportedMIMETypes]): include supportedMediaMIMETypes
(+[WebHTMLRepresentation supportedMediaMIMETypes]): added
* WebView/WebHTMLView.mm:
(+[WebHTMLView supportedMediaMIMETypes]): added
* WebView/WebHTMLViewPrivate.h: declare -supportedMediaMIMETypes

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

5 years agoPermanent redirects should have long implicit cache lifetime
antti@apple.com [Sun, 24 May 2015 03:15:00 +0000 (03:15 +0000)]
Permanent redirects should have long implicit cache lifetime
https://bugs.webkit.org/show_bug.cgi?id=145348
Source/WebCore:

rdar://problem/20680519

Reviewed by Sam Weinig.

301 Moved Permanently response that doesn't specify explicit lifetime should have long implicit lifetime.
This matches other browsers.

* platform/network/CacheValidation.cpp:
(WebCore::computeFreshnessLifetimeForHTTPFamily):

    Give 301 Moved Permanently (and similarly semantically permanent 410 Gone) long implicit lifetime.

(WebCore::updateRedirectChainStatus):

LayoutTests:

Reviewed by Sam Weinig.

* http/tests/cache/cache-redirections.html:
* http/tests/cache/resources/cache-control-redirect.php:

    Use less confusing name (max_age->expiration vs. max-age) and fix logic.

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

5 years ago<rdar://problem/21090327> /S/L/PrivateFrameworks/WebKit.framework is missing Headers...
mitz@apple.com [Sun, 24 May 2015 02:50:25 +0000 (02:50 +0000)]
<rdar://problem/21090327> /S/L/PrivateFrameworks/WebKit.framework is missing Headers and PrivateHeaders symlinks
https://bugs.webkit.org/show_bug.cgi?id=145354

Reviewed by David Kilzer.

* WebKit2.xcodeproj/project.pbxproj: Create Headers and PrivateHeaders symlinks alongside
the dylib symlink.

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

5 years agoRename ShareableResource::create(Handle&) to map(Handle&) to match SharedMemory.
commit-queue@webkit.org [Sun, 24 May 2015 01:26:34 +0000 (01:26 +0000)]
Rename ShareableResource::create(Handle&) to map(Handle&) to match SharedMemory.
https://bugs.webkit.org/show_bug.cgi?id=145288

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-23
Reviewed by Sam Weinig.

* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
(WebKit::ShareableResource::map):
(WebKit::ShareableResource::create): Deleted.
* Shared/ShareableResource.h:

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

5 years agoCleanup after r184796
mmaxfield@apple.com [Sun, 24 May 2015 01:22:53 +0000 (01:22 +0000)]
Cleanup after r184796
https://bugs.webkit.org/show_bug.cgi?id=145333

Reviewed by Alexey Proskuryakov.

No new tests because there is no behavior change.

* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::RenderingStyleSaver::RenderingStyleSaver): Deleted.
(WebCore::RenderingStyleSaver::~RenderingStyleSaver): Deleted.

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

5 years agoRebaseline after r184825. Remove artificial extra space between 2 text renderers.
zalan@apple.com [Sat, 23 May 2015 19:28:31 +0000 (19:28 +0000)]
Rebaseline after r184825. Remove artificial extra space between 2 text renderers.

Reviewed by Antti Koivisto.

* animations/lineheight-animation-expected.txt:
* animations/simultaneous-start-transform-expected.txt:
* animations/width-using-ems-expected.txt:
* fast/events/window-events-bubble-expected.txt:
* fast/events/window-events-bubble2-expected.txt:

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

5 years agoIntroduce UniquedStringImpl and SymbolImpl to separate symbolic strings from AtomicSt...
utatane.tea@gmail.com [Sat, 23 May 2015 18:41:53 +0000 (18:41 +0000)]
Introduce UniquedStringImpl and SymbolImpl to separate symbolic strings from AtomicStringImpl
https://bugs.webkit.org/show_bug.cgi?id=144848

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use UniquedStringImpl, SymbolImpl and AtomicStringImpl.

* API/JSCallbackObject.h:
* builtins/BuiltinNames.h:
(JSC::BuiltinNames::isPrivateName):
* bytecode/BytecodeIntrinsicRegistry.h:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecode/ComplexGetStatus.cpp:
(JSC::ComplexGetStatus::computeFor):
* bytecode/ComplexGetStatus.h:
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):
* bytecode/GetByIdStatus.h:
* bytecode/Instruction.h:
(JSC::Instruction::Instruction):
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFromLLInt):
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):
* bytecode/PutByIdStatus.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::visibleNameForParameter):
(JSC::BytecodeGenerator::hasConstant):
(JSC::BytecodeGenerator::addConstant):
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitBytecode):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGDesiredIdentifiers.cpp:
(JSC::DFG::DesiredIdentifiers::addLazily):
(JSC::DFG::DesiredIdentifiers::at):
(JSC::DFG::DesiredIdentifiers::reallyAdd):
* dfg/DFGDesiredIdentifiers.h:
(JSC::DFG::DesiredIdentifiers::operator[]):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::isStringPrototypeMethodSane):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIn):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::identifierUID):
(JSC::DFG::SpeculativeJIT::callOperation):
* ftl/FTLCompile.cpp:
(JSC::FTL::mmAllocateDataSection):
* ftl/FTLInlineCacheDescriptor.h:
(JSC::FTL::InlineCacheDescriptor::InlineCacheDescriptor):
(JSC::FTL::InlineCacheDescriptor::uid):
(JSC::FTL::GetByIdDescriptor::GetByIdDescriptor):
(JSC::FTL::PutByIdDescriptor::PutByIdDescriptor):
(JSC::FTL::CheckInDescriptor::CheckInDescriptor):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compilePutById):
(JSC::FTL::LowerDFGToLLVM::compileIn):
(JSC::FTL::LowerDFGToLLVM::compileMaterializeCreateActivation):
(JSC::FTL::LowerDFGToLLVM::getById):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* ftl/FTLSlowPathCall.cpp:
(JSC::FTL::callOperation):
* ftl/FTLSlowPathCall.h:
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* parser/Nodes.cpp:
(JSC::ProgramNode::setClosedVariables):
* parser/Nodes.h:
(JSC::ScopeNode::captures):
(JSC::ScopeNode::setClosedVariables):
(JSC::ProgramNode::closedVariables):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):
(JSC::Parser<LexerType>::parseContinueStatement):
* parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Scope::pushLabel):
(JSC::Scope::getLabel):
(JSC::Scope::declareCallee):
(JSC::Scope::declareVariable):
(JSC::Scope::declareParameter):
(JSC::Scope::declareBoundParameter):
(JSC::Scope::useVariable):
(JSC::Scope::copyCapturedVariablesToVector):
(JSC::Parser::closedVariables):
(JSC::ScopeLabelInfo::ScopeLabelInfo): Deleted.
* parser/SourceProviderCacheItem.h:
(JSC::SourceProviderCacheItem::usedVariables):
(JSC::SourceProviderCacheItem::writtenVariables):
(JSC::SourceProviderCacheItem::create):
* runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::isPrivateName):
* runtime/CommonIdentifiers.h:
* runtime/Identifier.h:
(JSC::Identifier::impl):
(JSC::Identifier::Identifier):
(JSC::parseIndex):
(JSC::IdentifierRepHash::hash):
* runtime/IdentifierInlines.h:
(JSC::Identifier::fromUid):
* runtime/IntendedStructureChain.cpp:
(JSC::IntendedStructureChain::mayInterceptStoreTo):
* runtime/IntendedStructureChain.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/Lookup.h:
(JSC::HashTable::entry):
* runtime/MapData.h:
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetOwnPropertySymbols):
* runtime/PrivateName.h:
(JSC::PrivateName::PrivateName):
(JSC::PrivateName::uid):
* runtime/PropertyMapHashTable.h:
* runtime/PropertyName.h:
(JSC::PropertyName::PropertyName):
(JSC::PropertyName::uid):
(JSC::PropertyName::publicName):
(JSC::parseIndex):
* runtime/PropertyNameArray.h:
(JSC::PropertyNameArray::addKnownUnique):
(JSC::PropertyNameArray::add):
* runtime/Structure.cpp:
(JSC::StructureTransitionTable::contains):
(JSC::StructureTransitionTable::get):
(JSC::StructureTransitionTable::add):
(JSC::Structure::addPropertyTransitionToExistingStructureImpl):
(JSC::Structure::addPropertyTransitionToExistingStructureConcurrently):
(JSC::Structure::getConcurrently):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::toStructureShape):
* runtime/Structure.h:
(JSC::PropertyMapEntry::PropertyMapEntry):
* runtime/StructureInlines.h:
(JSC::Structure::getConcurrently):
* runtime/StructureTransitionTable.h:
(JSC::StructureTransitionTable::Hash::hash):
* runtime/Symbol.cpp:
(JSC::Symbol::Symbol):
* runtime/Symbol.h:
* runtime/SymbolConstructor.cpp:
(JSC::symbolConstructorFor):
(JSC::symbolConstructorKeyFor):
* runtime/SymbolTable.cpp:
(JSC::SymbolTable::uniqueIDForVariable):
(JSC::SymbolTable::globalTypeSetForVariable):
* runtime/SymbolTable.h:
* runtime/TypeSet.cpp:
(JSC::StructureShape::addProperty):
(JSC::StructureShape::propertyHash):
* runtime/TypeSet.h:

Source/WebCore:

Use UniquedStringImpl, SymbolImpl and AtomicStringImpl.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::write):

Source/WTF:

he current AtomicStringImpl accidentally means the symbol OR atomic StringImpl.
t's not correct to its name and it's error prone.

In this patch, we'll introduce/changes classes into WTF.

1. UniquedStringImpl
It's derived class from StringImpl. And it represents symbol || atomic StringImpl.

2. SymbolImpl
It's derived class from UniquedStringImpl. Only symbol strings can become this.
It ensures the given StringImpl is symbol in compile time.

3. AtomicStringImpl
It's derived class from UniquedStringImpl. Only atomic (non-normal && non-symbol) strings can become this.
It ensures the given StringImpl is atomic in compile time.

And, in this time, I just accept UniqueStringImpl in AtomicString. As the result,
1. Now AtomicStringImpl issue is fixed. Its SymbolImpl is separated and UniquedStringImpl is introduced.
2. But AtomicString still have both symbol and atomic strings.
This should be solved in the separated patch.

* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/PrintStream.cpp:
* wtf/PrintStream.h:
(WTF::printInternal):
* wtf/text/AtomicString.h:
(WTF::AtomicString::AtomicString):
* wtf/text/AtomicStringImpl.h:
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::~StringImpl):
(WTF::StringImpl::createSymbol):
(WTF::StringImpl::createSymbolEmpty):
* wtf/text/StringImpl.h:
* wtf/text/SymbolImpl.h: Copied from Source/JavaScriptCore/runtime/PrivateName.h.
* wtf/text/SymbolRegistry.cpp:
(WTF::SymbolRegistry::symbolForKey):
(WTF::SymbolRegistry::keyForSymbol):
(WTF::SymbolRegistry::remove):
* wtf/text/SymbolRegistry.h:
* wtf/text/UniquedStringImpl.h: Copied from Source/JavaScriptCore/runtime/PrivateName.h.

Tools:

Use UniquedStringImpl, SymbolImpl and AtomicStringImpl.

* TestWebKitAPI/Tests/WTF/StringImpl.cpp:

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

5 years agoSimple line layout: Ignore -webkit-flow-*content while collecting text content for...
zalan@apple.com [Sat, 23 May 2015 16:06:36 +0000 (16:06 +0000)]
Simple line layout: Ignore -webkit-flow-*content while collecting text content for innerText.
https://bugs.webkit.org/show_bug.cgi?id=145344
rdar://problem/20959522

Reviewed by Antti Koivisto.

This patch ensures that when a -webkit-flow-into content is present in a simple line layout container,
we skip it while collecting the text content for innerText.
It's not always guaranteed that a simple line layout container only contains simple text nodes. In such cases,
we need to ensure that text offset computing only takes the simple text nodes into account.

Source/WebCore:

Test: fast/text/simple-line-layout-inner-text-with-flow-content.html

* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
* editing/TextIterator.h:

LayoutTests:

* fast/text/simple-line-layout-inner-text-with-flow-content-expected.txt: Added.
* fast/text/simple-line-layout-inner-text-with-flow-content.html: Added.

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