WebKit-https.git
4 years agoExplicitly dismiss correction panel when user types a new character
rniwa@webkit.org [Mon, 8 Jun 2015 21:25:55 +0000 (21:25 +0000)]
Explicitly dismiss correction panel when user types a new character
https://bugs.webkit.org/show_bug.cgi?id=145732
<rdar://problem/19596892>

Reviewed by Darin Adler.

Explicitly dismiss the correction panel when the user types a new character.
This patch shouldn't change any behavior we're currently relying on AppKit to do the same.

Manually ran tests in ManualTests/autocorrection.

* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::respondToAppliedEditing):

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

4 years agoRemove more unused Objective-C methods
andersca@apple.com [Mon, 8 Jun 2015 20:40:57 +0000 (20:40 +0000)]
Remove more unused Objective-C methods
https://bugs.webkit.org/show_bug.cgi?id=145761

Reviewed by Geoffrey Garen.

* Misc/WebNSImageExtras.h:
* Misc/WebNSImageExtras.m:
(-[NSImage _web_saveAndOpen]): Deleted.
* Misc/WebNSViewExtras.h:
* Misc/WebNSViewExtras.m:
(-[NSView _web_DragImageForElement:rect:event:pasteboard:source:offset:]): Deleted.
(-[NSView _web_convertRect:toView:]): Deleted.

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

4 years ago[CSS Grid Layout] Setting height on a grid item doesn't have any effect
jfernandez@igalia.com [Mon, 8 Jun 2015 20:26:02 +0000 (20:26 +0000)]
[CSS Grid Layout] Setting height on a grid item doesn't have any effect
https://bugs.webkit.org/show_bug.cgi?id=145604

Reviewed by Sergio Villar Senin.

Source/WebCore:

Box Alignment spec states that stretch is only possible when height is
'auto' and no 'auto' margins are used.

It might be the case that style changes so that stretching is not allowed,
hence we need to detect it and clear the override height the stretching
algorithm previously set. The new layout triggered by the style change
will then set grid item's height according to the new style rules.

Test: fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change.html

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

LayoutTests:

Tests to verify that we clear the override height set by the stretching logic
whenever height or margin change in a way they don't allow stretching anymore.

* fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change-expected.txt: Added.
* fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change.html: Added.

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

4 years agoTry to fix the Mavericks build.
andersca@apple.com [Mon, 8 Jun 2015 19:55:23 +0000 (19:55 +0000)]
Try to fix the Mavericks build.

* WebView/WebPDFView.mm:
(removeUselessMenuItemSeparators):

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

4 years agoBuild fix.
ap@apple.com [Mon, 8 Jun 2015 19:47:57 +0000 (19:47 +0000)]
Build fix.

* wtf/TinyPtrSet.h: (WTF::TinyPtrSet::isEmpty): s/poointer/pointer/

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

4 years agoThe tiny set magic in StructureSet should be available in WTF
fpizlo@apple.com [Mon, 8 Jun 2015 19:41:47 +0000 (19:41 +0000)]
The tiny set magic in StructureSet should be available in WTF
https://bugs.webkit.org/show_bug.cgi?id=145722

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

I moved the generic logic of small sets of pointers and moved it into WTF. Now,
StructureSet is a subclass of TinyPtrSet<Structure*>. There shouldn't be any functional
change.

* bytecode/StructureSet.cpp:
(JSC::StructureSet::filter):
(JSC::StructureSet::filterArrayModes):
(JSC::StructureSet::speculationFromStructures):
(JSC::StructureSet::arrayModesFromStructures):
(JSC::StructureSet::dumpInContext):
(JSC::StructureSet::dump):
(JSC::StructureSet::clear): Deleted.
(JSC::StructureSet::add): Deleted.
(JSC::StructureSet::remove): Deleted.
(JSC::StructureSet::contains): Deleted.
(JSC::StructureSet::merge): Deleted.
(JSC::StructureSet::exclude): Deleted.
(JSC::StructureSet::isSubsetOf): Deleted.
(JSC::StructureSet::overlaps): Deleted.
(JSC::StructureSet::operator==): Deleted.
(JSC::StructureSet::addOutOfLine): Deleted.
(JSC::StructureSet::containsOutOfLine): Deleted.
(JSC::StructureSet::copyFromOutOfLine): Deleted.
(JSC::StructureSet::OutOfLineList::create): Deleted.
(JSC::StructureSet::OutOfLineList::destroy): Deleted.
* bytecode/StructureSet.h:
(JSC::StructureSet::onlyStructure):
(JSC::StructureSet::StructureSet): Deleted.
(JSC::StructureSet::operator=): Deleted.
(JSC::StructureSet::~StructureSet): Deleted.
(JSC::StructureSet::isEmpty): Deleted.
(JSC::StructureSet::genericFilter): Deleted.
(JSC::StructureSet::isSupersetOf): Deleted.
(JSC::StructureSet::size): Deleted.
(JSC::StructureSet::at): Deleted.
(JSC::StructureSet::operator[]): Deleted.
(JSC::StructureSet::last): Deleted.
(JSC::StructureSet::iterator::iterator): Deleted.
(JSC::StructureSet::iterator::operator*): Deleted.
(JSC::StructureSet::iterator::operator++): Deleted.
(JSC::StructureSet::iterator::operator==): Deleted.
(JSC::StructureSet::iterator::operator!=): Deleted.
(JSC::StructureSet::begin): Deleted.
(JSC::StructureSet::end): Deleted.
(JSC::StructureSet::ContainsOutOfLine::ContainsOutOfLine): Deleted.
(JSC::StructureSet::ContainsOutOfLine::operator()): Deleted.
(JSC::StructureSet::copyFrom): Deleted.
(JSC::StructureSet::OutOfLineList::list): Deleted.
(JSC::StructureSet::OutOfLineList::OutOfLineList): Deleted.
(JSC::StructureSet::deleteStructureListIfNecessary): Deleted.
(JSC::StructureSet::isThin): Deleted.
(JSC::StructureSet::pointer): Deleted.
(JSC::StructureSet::singleStructure): Deleted.
(JSC::StructureSet::structureList): Deleted.
(JSC::StructureSet::set): Deleted.
(JSC::StructureSet::setEmpty): Deleted.
(JSC::StructureSet::getReservedFlag): Deleted.
(JSC::StructureSet::setReservedFlag): Deleted.
* dfg/DFGStructureAbstractValue.cpp:
(JSC::DFG::StructureAbstractValue::clobber):
(JSC::DFG::StructureAbstractValue::filter):
(JSC::DFG::StructureAbstractValue::filterSlow):
(JSC::DFG::StructureAbstractValue::contains):
* dfg/DFGStructureAbstractValue.h:
(JSC::DFG::StructureAbstractValue::makeTop):

Source/WTF:

As the management of structure sets evolved in JSC, the StructureSet data structure grew
increasingly smart. It's got some smart stuff for managing small sets of pointers. I
wanted to take the generic logic out of JSC and put it into a reusable templatized class
in WTF.

* WTF.vcxproj/WTF.vcxproj:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/TinyPtrSet.h: Added.
(WTF::TinyPtrSet::TinyPtrSet):
(WTF::TinyPtrSet::operator=):
(WTF::TinyPtrSet::~TinyPtrSet):
(WTF::TinyPtrSet::clear):
(WTF::TinyPtrSet::onlyEntry):
(WTF::TinyPtrSet::isEmpty):
(WTF::TinyPtrSet::add):
(WTF::TinyPtrSet::remove):
(WTF::TinyPtrSet::contains):
(WTF::TinyPtrSet::merge):
(WTF::TinyPtrSet::forEach):
(WTF::TinyPtrSet::genericFilter):
(WTF::TinyPtrSet::filter):
(WTF::TinyPtrSet::exclude):
(WTF::TinyPtrSet::isSubsetOf):
(WTF::TinyPtrSet::isSupersetOf):
(WTF::TinyPtrSet::overlaps):
(WTF::TinyPtrSet::size):
(WTF::TinyPtrSet::at):
(WTF::TinyPtrSet::operator[]):
(WTF::TinyPtrSet::last):
(WTF::TinyPtrSet::iterator::iterator):
(WTF::TinyPtrSet::iterator::operator*):
(WTF::TinyPtrSet::iterator::operator++):
(WTF::TinyPtrSet::iterator::operator==):
(WTF::TinyPtrSet::iterator::operator!=):
(WTF::TinyPtrSet::begin):
(WTF::TinyPtrSet::end):
(WTF::TinyPtrSet::operator==):
(WTF::TinyPtrSet::addOutOfLine):
(WTF::TinyPtrSet::containsOutOfLine):
(WTF::TinyPtrSet::copyFrom):
(WTF::TinyPtrSet::copyFromOutOfLine):
(WTF::TinyPtrSet::OutOfLineList::create):
(WTF::TinyPtrSet::OutOfLineList::destroy):
(WTF::TinyPtrSet::OutOfLineList::list):
(WTF::TinyPtrSet::OutOfLineList::OutOfLineList):
(WTF::TinyPtrSet::deleteListIfNecessary):
(WTF::TinyPtrSet::isThin):
(WTF::TinyPtrSet::pointer):
(WTF::TinyPtrSet::singleEntry):
(WTF::TinyPtrSet::list):
(WTF::TinyPtrSet::set):
(WTF::TinyPtrSet::setEmpty):
(WTF::TinyPtrSet::getReservedFlag):
(WTF::TinyPtrSet::setReservedFlag):

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

4 years ago[ARM] Add the missing setupArgumentsWithExecState functions after r185240
ossy@webkit.org [Mon, 8 Jun 2015 18:21:59 +0000 (18:21 +0000)]
[ARM] Add the missing setupArgumentsWithExecState functions after r185240
https://bugs.webkit.org/show_bug.cgi?id=145754

Reviewed by Benjamin Poulain.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):

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

4 years agoCompletely remove all IDB properties/constructors when it is disabled at runtime.
beidson@apple.com [Mon, 8 Jun 2015 16:49:57 +0000 (16:49 +0000)]
Completely remove all IDB properties/constructors when it is disabled at runtime.
rdar://problem/18429374 and https://bugs.webkit.org/show_bug.cgi?id=137034

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

* runtime/CommonIdentifiers.h:

Source/WebCore:

Test: storage/indexeddb/properties-disabled-at-runtime.html

- Make constructors all runtime enabled.
- Remove autogeneration of the window.(webkit)indexedDB accessors.
- Add manual overrides for the (webkit)indexedDB accessors at runtime.

* Modules/indexeddb/DOMWindowIndexedDatabase.idl:
* Modules/indexeddb/IDBAny.idl:
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBCursorWithValue.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBKeyRange.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/indexeddb/IDBOpenDBRequest.idl:
* Modules/indexeddb/IDBRequest.idl:
* Modules/indexeddb/IDBTransaction.idl:
* Modules/indexeddb/IDBVersionChangeEvent.idl:
* page/DOMWindow.idl:

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowIndexedDB):
(WebCore::JSDOMWindow::getOwnPropertySlot):

Source/WebKit2:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess): Enable IDB at runtime if it's enabled at compile time.

LayoutTests:

* platform/mac-mavericks/TestExpectations: Disable global-constructors-attributes on Mavericks as
  there is no way to have different WK1 and WK2 results.
* platform/mac-wk1/TestExpectations: Enable the new "properties are missing" test for Mac WK1.
* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: Added.
* platform/win/TestExpectations: Enable the new "properties are missing" test for Win WK1
* platform/wk2/TestExpectations: Disable the new "properties are missing" test for all WK2.
* storage/indexeddb/properties-disabled-at-runtime-expected.txt: Added.
* storage/indexeddb/properties-disabled-at-runtime.html: Added.

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

4 years ago[GTK] Fix parentheses warning in TestWebKitWebView.cpp
ossy@webkit.org [Mon, 8 Jun 2015 16:48:27 +0000 (16:48 +0000)]
[GTK] Fix parentheses warning in TestWebKitWebView.cpp
https://bugs.webkit.org/show_bug.cgi?id=145759

Reviewed by Carlos Garcia Campos.

* TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
(testWebViewSave):

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

4 years ago[SOUP] Performs DNS prefetch when a proxy is configured (information leak)
mcatanzaro@igalia.com [Mon, 8 Jun 2015 16:17:39 +0000 (16:17 +0000)]
[SOUP] Performs DNS prefetch when a proxy is configured (information leak)
https://bugs.webkit.org/show_bug.cgi?id=145542

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests, because it's hard to test whether a DNS request has been sent. We could do
this by adding new API to modify the GProxyResolver and GResolver used by the SoupSession in
the network process, but even if such API were desirable, it would be a big job. Tests
should not be allowed to dictate our public API.

* platform/network/DNSResolveQueue.cpp:
(WebCore::DNSResolveQueue::add): Do not check whether the system is using a proxy, since
this can't be determined for all ports here.
(WebCore::DNSResolveQueue::timerFired): Do not check whether the system is using a proxy,
since this can't be determined for all ports here.
(WebCore::DNSResolveQueue::DNSResolveQueue): Remove member variables and member functions
that are only needed by the CF backend. Rename platformResolve to
platformMaybeResolveHost.
(WebCore::DNSResolveQueue::isUsingProxy): Moved to DNSCFNet.cpp.
* platform/network/DNSResolveQueue.h: Remove member variables that are only needed by the
CF backend.
* platform/network/cf/DNSCFNet.cpp:
(WebCore::proxyIsEnabledInSystemPreferences): Renamed from
platformProxyIsEnabledInSystemPreferences.
(WebCore::isUsingProxy): Moved from DNSResolveQueue.cpp. The member variables removed from
DNSResolveQueue are not static here. This is safe since it's a singleton.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Renamed from platformResolve.
Bail early from here if a proxy is configured.
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Renamed to
proxyIsEnabledInSystemPreferences.
(WebCore::DNSResolveQueue::platformResolve): Renamed to platformMaybeResolveHost.
* platform/network/soup/DNSSoup.cpp:
(WebCore::gotProxySettingsCallback): Added. Call soup_session_prefetch_dns from here only
if a proxy would not be used to resolve the host.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Renamed from platformResolve.
Look up proxy settings using g_proxy_resolver_lookup_async rather than calling
soup_session_prefetch_dns directly.
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Deleted.
(WebCore::DNSResolveQueue::platformResolve): Renamed to platformMaybeResolveHost.

Source/WebKit2:

Add documentation to webkit_web_context_prefetch_dns to indicate that the function does
nothing if the system configuration indicates we should use a proxy to resolve the host.

* UIProcess/API/gtk/WebKitWebContext.cpp:

Source/WTF:

Add template specialization for GUniquePtr<char*>. This smart pointer will free its data
with g_strfreev() (as opposed to g_free(), which is used for GUniquePtr<char>).

* wtf/gobject/GUniquePtr.h:

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

4 years agoRemove WebNSArrayExtras
andersca@apple.com [Mon, 8 Jun 2015 16:16:08 +0000 (16:16 +0000)]
Remove WebNSArrayExtras
https://bugs.webkit.org/show_bug.cgi?id=145747

Reviewed by Darin Adler.

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

* History/WebHistoryItem.mm:
(-[WebHistoryItem initFromDictionaryRepresentation:]):
* Misc/WebNSArrayExtras.h: Removed.
* Misc/WebNSArrayExtras.m: Removed.
(-[NSArray _webkit_numberAtIndex:]): Deleted.
(-[NSArray _webkit_stringAtIndex:]): Deleted.
(-[NSMutableArray _webkit_removeUselessMenuItemSeparators]): Deleted.
* WebView/WebPDFView.mm:
(removeUselessMenuItemSeparators):
(-[WebPDFView _menuItemsFromPDFKitForEvent:]):

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

4 years ago[CSS Grid Layout] Add some more testing for grid line names
svillar@igalia.com [Mon, 8 Jun 2015 16:13:42 +0000 (16:13 +0000)]
[CSS Grid Layout] Add some more testing for grid line names
https://bugs.webkit.org/show_bug.cgi?id=145691

Reviewed by Darin Adler.

After moving to the new syntax which uses brackets instead of
parentheses for grid line names lists, it's good to improve a bit
the testing of the feature with some more new test cases.

* fast/css-grid-layout/named-grid-line-get-set-expected.txt:
* fast/css-grid-layout/named-grid-line-get-set.html:

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

4 years agoREGRESSION(r185251): [GTK] webkit_web_context_set_disk_cache_directory() doesn't...
carlosgc@webkit.org [Mon, 8 Jun 2015 15:59:14 +0000 (15:59 +0000)]
REGRESSION(r185251): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work when using shared secondary process model after r185251
https://bugs.webkit.org/show_bug.cgi?id=145751

Reviewed by Darin Adler.

In r185251 the CFNetwork cache was disabled in the web process,
but it also removed the disk cache directory web process
initialization parameter. While we support networking in the web
process when shared secondary process model is used, the network
cache should still work. We can remove this if we eventually
switch to use the network process unconditionally.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Encode disk cache directory.
(WebKit::WebProcessCreationParameters::decode): Decode disk cache directory.
* Shared/WebProcessCreationParameters.h: Bring back disk cache directory only for soup.
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess): Initialize disk cache directory parameter.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Use the disck cache directory parameter again.

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

4 years agoUse modern for-loops in WebCore/Modules - 2
commit-queue@webkit.org [Mon, 8 Jun 2015 14:36:47 +0000 (14:36 +0000)]
Use modern for-loops in WebCore/Modules - 2
https://bugs.webkit.org/show_bug.cgi?id=145541

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

No new tests, no behavior changes.

* Modules/mediastream/RTCConfiguration.h:
(WebCore::RTCConfiguration::iceServers):
* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::scheduledEventTimerFired):
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::scheduledEventTimerFired):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::processIceServer):
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::getStreamById):
(WebCore::RTCPeerConnection::hasLocalStreamWithTrackId):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):
* Modules/mediastream/RTCStatsReport.cpp:
(WebCore::RTCStatsReport::names):
* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::initProtocolHandlerWhitelist):
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::getVoices):
* Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::memoryCost):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::derefFinishedSourceNodes):
(WebCore::AudioContext::derefUnfinishedSourceNodes):
(WebCore::AudioContext::handleDeferredFinishDerefs):
(WebCore::AudioContext::handleDirtyAudioSummingJunctions):
(WebCore::AudioContext::handleDirtyAudioNodeOutputs):
(WebCore::AudioContext::updateAutomaticPullNodes):
(WebCore::AudioContext::processAutomaticPullNodes):
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::updateChannelsForInputs):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
(WebCore::AudioNode::pullInputs):
(WebCore::AudioNode::inputsAreSilent):
(WebCore::AudioNode::silenceOutputs):
(WebCore::AudioNode::unsilenceOutputs):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::disableOutputsIfNecessary):
(WebCore::AudioNode::finishDeref):
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::numberOfChannels):
(WebCore::AudioNodeInput::sumAllConnections):
* Modules/webaudio/AudioNodeOutput.cpp:
(WebCore::AudioNodeOutput::propagateChannelCount):
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):
* Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::calculateFinalValues):
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::insertEvent):
* Modules/webaudio/AudioSummingJunction.cpp:
(WebCore::AudioSummingJunction::updateRenderingState):
* Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):
* Modules/webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::setOversample):
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::handlePausedQueue):
(WebCore::DatabaseThread::databaseThread):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::setDatabasesPaused):
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::SQLTransactionCoordinator::shutdown):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* Modules/websockets/WebSocketExtensionDispatcher.cpp:
(WebCore::WebSocketExtensionDispatcher::addProcessor):
(WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
(WebCore::WebSocketExtensionDispatcher::processHeaderValue):
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientHandshakeMessage):

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

4 years ago[GTK] Remove the unused scroll function from WebPageGtk.cpp
ossy@webkit.org [Mon, 8 Jun 2015 14:08:24 +0000 (14:08 +0000)]
[GTK] Remove the unused scroll function from WebPageGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=145756

Reviewed by Carlos Garcia Campos.

* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::scroll): Deleted.

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

4 years agoREGRESSION(r185262): [EFL] Modify legacyPlatformDefaultNetworkCacheDirectory() accord...
gyuyoung.kim@webkit.org [Mon, 8 Jun 2015 10:45:05 +0000 (10:45 +0000)]
REGRESSION(r185262): [EFL] Modify legacyPlatformDefaultNetworkCacheDirectory() according to network cache
https://bugs.webkit.org/show_bug.cgi?id=145752

Reviewed by Carlos Garcia Campos.

EFL port needs to add different prefix for network cache directory since r185262.
Modify it basedon GTK port fix.

* UIProcess/efl/WebProcessPoolEfl.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):

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

4 years agoFixed the build.
mitz@apple.com [Mon, 8 Jun 2015 07:59:49 +0000 (07:59 +0000)]
Fixed the build.

* WebView/WebView.mm:
(+[WebView _setCacheModel:]):

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

4 years ago[GTK] Add editor mode to MiniBrowser
carlosgc@webkit.org [Mon, 8 Jun 2015 06:38:06 +0000 (06:38 +0000)]
[GTK] Add editor mode to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=145595

Reviewed by Sergio Villar Senin.

It loads an empty editable web view with an edit toolbar. It makes
easier to test the editor, editing commands and input methods.

* MiniBrowser/gtk/BrowserWindow.c:
(editingCommandCallback):
(browserWindowSetupEditorToolbar):
(browserWindowConstructed):
* MiniBrowser/gtk/main.c:
(createBrowserWindow):

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

4 years agoREGRESSION(r185262): [GTK] webkit_web_context_set_disk_cache_directory() doesn't...
carlosgc@webkit.org [Mon, 8 Jun 2015 06:35:31 +0000 (06:35 +0000)]
REGRESSION(r185262): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work after r185262
https://bugs.webkit.org/show_bug.cgi?id=145735

Reviewed by Darin Adler.

* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess): Use
the directory name to clear the old cache, since the disk cache
subdirectory is now added in the UI process.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_disk_cache_directory): Update the
WebProcessPool configuration to override the disk cache directory.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess): Use the
configuration to get the disk cache directory.
(WebKit::WebProcessPool::WebProcessPool): Remove
m_diskCacheDirectory member initialization.
* UIProcess/WebProcessPool.h: Remove m_diskCacheDirectory member.
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
Append the disk cache subdirectory.

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

4 years agoREGRESSION (r181720): Unnecessary layout triggered any time animated GIF advances...
darin@apple.com [Mon, 8 Jun 2015 02:39:15 +0000 (02:39 +0000)]
REGRESSION (r181720): Unnecessary layout triggered any time animated GIF advances to a new frame
https://bugs.webkit.org/show_bug.cgi?id=145733

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/images/animated-gif-no-layout.html

* rendering/RenderImage.cpp:
(WebCore::RenderImage::styleDidChange): Correctly pass ImageSizeChangeNone in cases
where we don't need to report a change in intrinsic size that happened outside the
repaintOrMarkForLayout function.
(WebCore::RenderImage::repaintOrMarkForLayout): Move work that should only be done
when size changed inside the if statement.

* testing/Internals.cpp:
(WebCore::Internals::layoutCount): Added.
* testing/Internals.h: Added layoutCount.
* testing/Internals.idl: Ditto.

LayoutTests:

* TestExpectations: Expect image failures on the animated GIF tests (the one
old one I am fixing and the one new one I am adding) because they don't yet work
under DumpRenderTree.

* fast/images/animated-gif-no-layout-expected.html: Added.
* fast/images/animated-gif-no-layout.html: Added.

* fast/images/gif-loop-count-expected.html: Added. This test was worthless as a render
tree dump test, and only valuable as a pixel test. And that hid the fact that it was
failing under WebKit1. Changing it to a reference test makes it a valuable test again.
* fast/images/gif-loop-count-expected.png: Removed.
* fast/images/gif-loop-count-expected.txt: Removed.

* platform/wk2/TestExpectations: Expect successes on these two tests.

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

4 years agoFix strncpy use in WebCore::Text::formatForDebugger
mcatanzaro@igalia.com [Mon, 8 Jun 2015 01:39:35 +0000 (01:39 +0000)]
Fix strncpy use in WebCore::Text::formatForDebugger
https://bugs.webkit.org/show_bug.cgi?id=145608

Reviewed by Darin Adler.

r185137 replaced a call to strncpy with a call to strlcpy, which broke the build on Linux
since strlcpy does not exist there. r185148 reverted this to use strncpy again, but got the
size argument off by one, "introducing" a buffer overrun. But this code has always been
wrong, since it used strncpy without ensuring that the buffer is null-terminated after the
call to strncpy. Fix this as well.

* dom/Text.cpp:
(WebCore::Text::formatForDebugger):

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

4 years agoRemove WebKitSystemBits
andersca@apple.com [Mon, 8 Jun 2015 00:05:13 +0000 (00:05 +0000)]
Remove WebKitSystemBits
https://bugs.webkit.org/show_bug.cgi?id=145746

Reviewed by Dan Bernstein.

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Fold WebVolumeFreeSize into its only caller and get rid of WebKitSystemBits.

* Misc/WebKitSystemBits.h: Removed.
* Misc/WebKitSystemBits.m: Removed.
* WebView/WebPreferences.mm:
* WebView/WebView.mm:
(+[WebView _setCacheModel:]):

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

4 years agoRemove another SPI method that hasn't been used since Tiger
andersca@apple.com [Sun, 7 Jun 2015 23:54:31 +0000 (23:54 +0000)]
Remove another SPI method that hasn't been used since Tiger
https://bugs.webkit.org/show_bug.cgi?id=145745

Reviewed by Dan Bernstein.

* WebView/WebView.mm:
(-[WebView handleAuthenticationForResource:challenge:fromDataSource:]): Deleted.
* WebView/WebViewPrivate.h:

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

4 years agoRemove another unused SPI method
andersca@apple.com [Sun, 7 Jun 2015 23:44:56 +0000 (23:44 +0000)]
Remove another unused SPI method
https://bugs.webkit.org/show_bug.cgi?id=145743

Reviewed by Dan Bernstein.

* WebView/WebView.mm:
(+[WebView _pointingHandCursor]): Deleted.
* WebView/WebViewPrivate.h:

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

4 years agoRemove unused SPI
andersca@apple.com [Sun, 7 Jun 2015 23:36:41 +0000 (23:36 +0000)]
Remove unused SPI
https://bugs.webkit.org/show_bug.cgi?id=145742

Reviewed by Dan Bernstein.

* WebCoreSupport/WebFrameNetworkingContext.h:
* WebCoreSupport/WebFrameNetworkingContext.mm:
(WebFrameNetworkingContext::clearPrivateBrowsingSessionCookieStorage): Deleted.
* WebView/WebView.mm:
(+[WebView _clearPrivateBrowsingSessionCookieStorage]): Deleted.
* WebView/WebViewPrivate.h:

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

4 years agoWeb Inspector: Add PrettyPrinter CSSRule tests
commit-queue@webkit.org [Sun, 7 Jun 2015 23:11:55 +0000 (23:11 +0000)]
Web Inspector: Add PrettyPrinter CSSRule tests
https://bugs.webkit.org/show_bug.cgi?id=145740

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-06-07
Reviewed by Brian Burg.

* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma.css: Added.
* Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed.css: Added.
* Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Added.
* Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Added.

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

4 years agoReverted r185302 because it broke the build
mitz@apple.com [Sun, 7 Jun 2015 17:37:37 +0000 (17:37 +0000)]
Reverted r185302 because it broke the build

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

4 years agoUnifiy the definition of UNREACHABLE_FOR_PLATFORM
mitz@apple.com [Sun, 7 Jun 2015 17:35:12 +0000 (17:35 +0000)]
Unifiy the definition of UNREACHABLE_FOR_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=145737

Reviewed by Anders Carlsson.

* wtf/Assertions.h:
(UNREACHABLE_FOR_PLATFORM): Use the macro for clang as well. Its expansion includes
__attribute((__noreturn__)) so the pragmas are unnecessary.

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

4 years agoCrashTracer: [USER] com.apple.WebKit.WebContent.Development at com.apple.WebCore...
antti@apple.com [Sun, 7 Jun 2015 14:42:28 +0000 (14:42 +0000)]
CrashTracer: [USER] com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::FrameLoader::subresourceCachePolicy const + 11
https://bugs.webkit.org/show_bug.cgi?id=145736
rdar://problem/21246971

Reviewed by David Kilzer.

No repro, no test.

* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet):

    Null check frame. It may be null during frame teardown.

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

4 years ago[EFL][GTK] Fix build break since r185262
gyuyoung.kim@webkit.org [Sun, 7 Jun 2015 08:48:28 +0000 (08:48 +0000)]
[EFL][GTK] Fix build  break since r185262
https://bugs.webkit.org/show_bug.cgi?id=145724

Unreviewed, fix build break for EFL and GTK ports.

* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
* UIProcess/efl/WebProcessPoolEfl.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):

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

4 years agoDon’t enable manual sandboxing in the iOS Simulator. This should fix all the tests...
mitz@apple.com [Sun, 7 Jun 2015 04:42:44 +0000 (04:42 +0000)]
Don’t enable manual sandboxing in the iOS Simulator. This should fix all the tests timing out.

* Configurations/DebugRelease.xcconfig:

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

4 years ago[iOS] Can’t debug with Development XPC services due to automatic sandboxing
mitz@apple.com [Sun, 7 Jun 2015 02:08:46 +0000 (02:08 +0000)]
[iOS] Can’t debug with Development XPC services due to automatic sandboxing
https://bugs.webkit.org/show_bug.cgi?id=145731

Reviewed by Darin Adler.

In iOS, the XPC services are automatically sandboxed based on their entitlements. The
sandbox doesn’t allow them to re-exec, which is necessary for linking against engineering
builds of the WebKit frameworks placed in a non-system location.

The solution is to opt Engineering builds into manual sandboxing.

* Configurations/BaseTarget.xcconfig:
- Add ENABLE_MANUAL_SANDBOXING to
  GCC_PREPROCESSOR_DEFINITIONS when WK_MANUAL_SANDBOXING_ENABLED is YES.
- Set WK_MANUAL_SANDBOXING_ENABLED to YES for OS X, because we always use manual
  sandboxing on that platform.

* Configurations/DebugRelease.xcconfig: Removed unused definition of DEBUG_OR_RELEASE. Set
  WK_MANUAL_SANDBOXING_ENABLED to YES for all engineering builds.

* Configurations/BaseXPCService.xcconfig: Define CODE_SIGN_ENTITLEMENTS for iOS to be empty
  if the service is not installed; to use the base entitlements file from Configurations if
  manual sandboxing is not enabled; and to use a derived entitlements file, which doesn’t
  specify a sandbox profile, if manual sandboxing is enabled.

* Configurations/DatabaseService.Development.xcconfig: Define
  WK_XPC_SERVICE_IOS_ENTITLEMENTS_BASE and let BaseXPCService.xcconfig define
  CODE_SIGN_ENTITLEMENTS for iOS.

* Configurations/DatabaseService.xcconfig: Ditto.
* Configurations/NetworkService.Development.xcconfig: Ditto.
* Configurations/NetworkService.xcconfig: Ditto.
* Configurations/WebContentService.Development.xcconfig: Ditto.
* Configurations/WebContentService.xcconfig: Ditto.

* WebKit2.xcodeproj/project.pbxproj:
- In the Derived Sources target, added a Derive Entitlements for Manual Sandboxing script
  build phase. When building for iOS with manual sandboxing enabled, it creates copies of
  the iOS entitlements files with a -no-sandbox suffix and the seatbelt-profiles key
  removed.
- In the WebKit target, added a Copy iOS Sandbox Profiles for Manual Sandboxing script build
  phase. When building for iOS with manual sandboxing enabled, it copies the iOS sandbox
  profiles into the framework, so that the services can apply them to themselves at runtime.

* Shared/ios/ChildProcessIOS.mm:
(WebKit::ChildProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) and don’t define it
here.

* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) instead of defining
and using ENABLE_MANUAL_WEBPROCESS_SANDBOXING here.

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

4 years agoRestored binary compatibility with shipping Safari.
mitz@apple.com [Sun, 7 Jun 2015 02:07:15 +0000 (02:07 +0000)]
Restored binary compatibility with shipping Safari.

Suggested by Anders Carlsson.

* Misc/WebKitNSStringExtras.mm:
(-[NSString _webkit_fixedCarbonPOSIXPath]): Added an implementation that returns self, so
that Safari doesn’t crash when trying to call this method.

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

4 years agoClean up tests for blocking mixed content
ap@apple.com [Sun, 7 Jun 2015 00:09:27 +0000 (00:09 +0000)]
Clean up tests for blocking mixed content
https://bugs.webkit.org/show_bug.cgi?id=145718

Reviewed by Darin Adler.

Stop using timeouts, which were making the tests flaky.

* http/tests/xmlhttprequest/access-control-response-with-body.html: This wasn't even
a mixed content test, but the file was reused in one. I now made a separate helper
document, so this is just a regular test now, not another test's resource.

* http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
* http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
* http/tests/security/mixedContent/resources/frame-with-insecure-frame.html:
* http/tests/security/mixedContent/resources/frame-with-redirect-http-to-https-frame.html:
* http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-frame.html:
Refactored to not depend on timeouts.

* http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:
* http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
* http/tests/security/mixedContent/resources/insecure-xhr-in-main-frame-window.html: Added.
This test still needs a timeout, because of a WebKit bug. I just made it much longer.

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

4 years agoFixed the build.
mitz@apple.com [Sat, 6 Jun 2015 22:55:41 +0000 (22:55 +0000)]
Fixed the build.

* Plugins/WebBasePluginPackage.mm:

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

4 years agoRemove support from getting plug-in information from Carbon resources
andersca@apple.com [Sat, 6 Jun 2015 21:22:18 +0000 (21:22 +0000)]
Remove support from getting plug-in information from Carbon resources
https://bugs.webkit.org/show_bug.cgi?id=145730

Reviewed by Dan Bernstein.

Source/WebCore:

Remove a now unused function.

* platform/mac/WebCoreNSStringExtras.h:
* platform/mac/WebCoreNSStringExtras.mm:
(stringEncodingForResource): Deleted.

Source/WebKit/mac:

No current plug-in versions use this feature, and both Chrome and Mozilla for
Mac stopped looking at Carbon resources years ago.

* Misc/WebKitNSStringExtras.h:
* Misc/WebKitNSStringExtras.mm:
(+[NSString _web_encodingForResource:]): Deleted.
* Plugins/WebBasePluginPackage.mm:
* Plugins/WebNetscapePluginPackage.mm:
(-[WebNetscapePluginPackage _initWithPath:]):
(-[WebNetscapePluginPackage stringForStringListID:andIndex:]): Deleted.
(-[WebNetscapePluginPackage getPluginInfoFromResources]): Deleted.

Source/WebKit2:

No current plug-in versions use this feature, and both Chrome and Mozilla for
Mac stopped looking at Carbon resources years ago.

* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::NetscapePluginModule::getPluginInfo):
(WebKit::ResourceMap::ResourceMap): Deleted.
(WebKit::ResourceMap::~ResourceMap): Deleted.
(WebKit::ResourceMap::isValid): Deleted.
(WebKit::getStringListResource): Deleted.
(WebKit::getPluginInfoFromCarbonResources): Deleted.

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

4 years agoRemove now unused category methods
andersca@apple.com [Sat, 6 Jun 2015 20:01:09 +0000 (20:01 +0000)]
Remove now unused category methods
https://bugs.webkit.org/show_bug.cgi?id=145729

Reviewed by Dan Bernstein.

* Configurations/WebKitLegacy.xcconfig:
* Misc/WebKitNSStringExtras.h:
* Misc/WebKitNSStringExtras.mm:
(-[NSString _webkit_fixedCarbonPOSIXPath]): Deleted.
* Misc/WebNSFileManagerExtras.h:
* Misc/WebNSFileManagerExtras.mm:
(-[NSFileManager _webkit_startupVolumeName]): Deleted.

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

4 years agoFix build.
andersca@apple.com [Sat, 6 Jun 2015 19:50:18 +0000 (19:50 +0000)]
Fix build.

* WebKit.mac.exp:

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

4 years agoStop using _webkit_fixedCarbonPOSIXPath in plug-in code
andersca@apple.com [Sat, 6 Jun 2015 19:45:38 +0000 (19:45 +0000)]
Stop using _webkit_fixedCarbonPOSIXPath in plug-in code
https://bugs.webkit.org/show_bug.cgi?id=145728

Reviewed by Dan Bernstein.

This code was put in place to support old plug-ins that would pass Carbon paths to NPAPI functions.
WebKit2 never supported this and we've never had any problems so let's just get rid of it.

* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::loadURL):
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]):

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

4 years agoRemove SPI that's no longer used
andersca@apple.com [Sat, 6 Jun 2015 19:37:00 +0000 (19:37 +0000)]
Remove SPI that's no longer used
https://bugs.webkit.org/show_bug.cgi?id=145727

Reviewed by Dan Bernstein.

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

* Plugins/WebPluginsPrivate.h: Removed.
* Plugins/WebPluginsPrivate.m: Removed.

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

4 years agoOnly allow plug-ins to create custom MIME property lists on older versions of OS X
andersca@apple.com [Sat, 6 Jun 2015 19:22:29 +0000 (19:22 +0000)]
Only allow plug-ins to create custom MIME property lists on older versions of OS X
https://bugs.webkit.org/show_bug.cgi?id=145726

Reviewed by Dan Bernstein.

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

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

4 years agoUnreviewed, rolling out r185284.
commit-queue@webkit.org [Sat, 6 Jun 2015 08:43:10 +0000 (08:43 +0000)]
Unreviewed, rolling out r185284.
https://bugs.webkit.org/show_bug.cgi?id=145723

it needs some discussion before landing (Requested by dino on
#webkit).

Reverted changeset:

"[iOS] Don't force compositing layers for no-op 3D transforms
on low-memory devices."
https://bugs.webkit.org/show_bug.cgi?id=145719
http://trac.webkit.org/changeset/185284

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

4 years agoTyping is slow in Gmail on iPads
rniwa@webkit.org [Sat, 6 Jun 2015 08:21:20 +0000 (08:21 +0000)]
Typing is slow in Gmail on iPads
https://bugs.webkit.org/show_bug.cgi?id=145686

Reviewed by Enrica Casucci.

The bug was caused by nextCandidate and nextVisuallyDistinctCandidate traversing through each character
in a text node without a renderer. Skip any node that doesn't have a renderer in both of those functions
and corresponding previous* functions.

It's fine to skip unrendered nodes in PositionIterator because only other clients of PositionIterator
are Position::upstream and Position::downstream and they don't care about un-rendered nodes either.

* dom/PositionIterator.cpp:
(WebCore::PositionIterator::increment):
(WebCore::PositionIterator::decrement):
* editing/htmlediting.cpp:
(WebCore::nextVisuallyDistinctCandidate):
(WebCore::previousVisuallyDistinctCandidate):

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

4 years agoReturned Exception* values need to be initialized to nullptr when no exceptions are...
mark.lam@apple.com [Sat, 6 Jun 2015 07:55:21 +0000 (07:55 +0000)]
Returned Exception* values need to be initialized to nullptr when no exceptions are thrown.
https://bugs.webkit.org/show_bug.cgi?id=145720

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluate):

Source/WebCore:

No new tests because this issue is already covered by the existing inspector-protocol tests.

* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):

LayoutTests:

* platform/win/TestExpectations:
- Undoing skipped tests.

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

4 years agoFrom r185273 on WTF::RefCounter exposes the actual refcount instead of a boolean...
zalan@apple.com [Sat, 6 Jun 2015 04:40:18 +0000 (04:40 +0000)]
From r185273 on WTF::RefCounter exposes the actual refcount instead of a boolean value.

Reviewed by Dan Bernstein.

* TestWebKitAPI/Tests/WTF/RefCounter.cpp:
(TestWebKitAPI::TEST):

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

4 years ago[iOS] Don't force compositing layers for no-op 3D transforms on low-memory devices.
akling@apple.com [Sat, 6 Jun 2015 03:11:28 +0000 (03:11 +0000)]
[iOS] Don't force compositing layers for no-op 3D transforms on low-memory devices.
<https://webkit.org/b/145719>
<rdar://problem/19973042>

Reviewed by Geoffrey Garen.

We put elements with 3D identity transforms onto compositing layers because
we anticipate that they will somehow animate in the future.

This can get extremely expensive, especially on low-memory devices.
This patch makes WebKit stop handing out compositing layers for this kinda thing:

    -webkit-transform: translate3d(0,0,0)

..on devices with 512MB or less. This dramatically improves stability on some
web pages.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForTransform):

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

4 years agoGardening: skip some inspector-protocol tests while the issue is being investigated.
mark.lam@apple.com [Sat, 6 Jun 2015 01:23:21 +0000 (01:23 +0000)]
Gardening: skip some inspector-protocol tests while the issue is being investigated.
https://bugs.webkit.org/show_bug.cgi?id=145720

Not reviewed.

* platform/win/TestExpectations:

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

4 years agoWeb Inspector: Fixing code style and adding more limitations for bug 141262
commit-queue@webkit.org [Sat, 6 Jun 2015 01:23:12 +0000 (01:23 +0000)]
Web Inspector: Fixing code style and adding more limitations for bug 141262
https://bugs.webkit.org/show_bug.cgi?id=145668

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

* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.prototype.isValidPropertyName): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added isValidPropertyName function.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property and to prevent invalid style from being applied incorrectly.

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

4 years ago[EFL] API test has been broken since r184357
gyuyoung.kim@webkit.org [Sat, 6 Jun 2015 01:19:36 +0000 (01:19 +0000)]
[EFL] API test has been broken since r184357
https://bugs.webkit.org/show_bug.cgi?id=145635

Reviewed by Darin Adler.

r184357 suppress cmake build warning using TARGET_FILE property. However
many EFL API test cases have been broken after applying it.

* TestWebKitAPI/CMakeLists.txt:

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

4 years ago[Win] Skip fast/text/decorations-vertical-underline-expected.html
zalan@apple.com [Sat, 6 Jun 2015 01:18:37 +0000 (01:18 +0000)]
[Win] Skip fast/text/decorations-vertical-underline-expected.html

Unreviewed gardening.

* platform/win/TestExpectations:

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

4 years agoWeb Inspector: Highlighting a CSS section does not deselect previously highlighted...
commit-queue@webkit.org [Sat, 6 Jun 2015 01:16:22 +0000 (01:16 +0000)]
Web Inspector: Highlighting a CSS section does not deselect previously highlighted CSS sections
https://bugs.webkit.org/show_bug.cgi?id=145399

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

* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Added delegate variable to constructor.
(WebInspector.CSSStyleDeclarationSection.prototype.clearSelection):
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor): Added event listener to codeMirror on "focus".
(WebInspector.CSSStyleDeclarationTextEditor.prototype.clearSelection): Sets the cursor of the codeMirror to character 0 on line 0.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._editorFocused): Function that calls the delegate function "editorFocused" when the codeMirror is focused
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Loops through all sections except for the ignoredSection (parameter) and clears the selected text in each of them.

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

4 years agoWeb Inspector: "Other" time in the framerate table is often negative
mattbaker@apple.com [Sat, 6 Jun 2015 01:06:28 +0000 (01:06 +0000)]
Web Inspector: "Other" time in the framerate table is often negative
https://bugs.webkit.org/show_bug.cgi?id=145712

Reviewed by Timothy Hatcher.

The Inspector frontend flattens the timeline event tree it receives from the backend, which can contain nested
paint records. The nested records represent a single paint event, but were being interpreted as two separate
events for purposes of calculating total layout time. This caused the calculated "other" time to be less than
it should be (and in some cases negative).

* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
Paint records are no longer nested, we simply drop the child paint event.

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

4 years agoSubclasses of JSNonFinalObject with gc'able children need to implement visitChildren().
mark.lam@apple.com [Sat, 6 Jun 2015 00:33:43 +0000 (00:33 +0000)]
Subclasses of JSNonFinalObject with gc'able children need to implement visitChildren().
https://bugs.webkit.org/show_bug.cgi?id=145709

Reviewed by Geoffrey Garen.

* jsc.cpp:
(functionSetElementRoot):
- The Element class has a member of type Root which extends JSDestructibleObject.
  It should be stored in a WriteBarrier, and visited by visitChildren().

* runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::materializeSpecialsIfNecessary):
(JSC::ClonedArguments::visitChildren):
* runtime/ClonedArguments.h:
- Add missing visitChildren().

* tests/stress/cloned-arguments-should-visit-callee-during-gc.js: Added.
(makeTransientFunction.transientFunc):
(makeTransientFunction):

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

4 years ago[Win] Update expected results.
zalan@apple.com [Sat, 6 Jun 2015 00:04:40 +0000 (00:04 +0000)]
[Win] Update expected results.

Unreviewed gardening.

* platform/win/fast/forms/select-element-focus-ring-expected.txt: Added.
* platform/win/fast/text/emoji-expected.txt: Added.

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

4 years agoUnreviewed, speculative Windows build fix after r185273.
cdumez@apple.com [Fri, 5 Jun 2015 23:50:24 +0000 (23:50 +0000)]
Unreviewed, speculative Windows build fix after r185273.

* platform/VNodeTracker.h:

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

4 years agoOnly allow plug-ins to create custom MIME property lists on older versions of OS X
andersca@apple.com [Fri, 5 Jun 2015 23:49:43 +0000 (23:49 +0000)]
Only allow plug-ins to create custom MIME property lists on older versions of OS X
https://bugs.webkit.org/show_bug.cgi?id=145716

Reviewed by Dan Bernstein.

* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
* Shared/Plugins/Netscape/NetscapePluginModule.h:
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::getMIMETypesFromPluginBundle):
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

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

4 years ago[WK2][iOS] Limit the number of vnodes used by the WebContent processes
cdumez@apple.com [Fri, 5 Jun 2015 23:20:06 +0000 (23:20 +0000)]
[WK2][iOS] Limit the number of vnodes used by the WebContent processes
https://bugs.webkit.org/show_bug.cgi?id=145672
<rdar://problem/21126637>

Reviewed by Antti Koivisto.

Source/WebCore:

Limit the number of vnodes used by the WebContent processes to reduce
the chance of getting killed due to the system running out of vnodes.
We sometimes see the WebContent process use up to 50% of the system's
vnode limit on some tests on iOS, which seems excessive. Most vnodes
are due to CachedResources which are mmap'd from the WebKit disk cache
and kept alive due to caches such as the Memory Cache / PageCache.

This patch adds tracking for the number of SharedBuffer objects that are
backed by a CFDataRef as this should track most of the vnodes used by
the process. The WebContent process registers a vnode pressure handler
upon initialization (likely it already does for memory pressure
handling). This handler gets called when the process uses over 15% of
of system's vnode limit and the "critical" flag is set if it uses over
20% of the system limit. The vnode pressure handler currently calls the
memory pressure handler as freeing our caches (especially PageCache,
MemoryCache) and doing a JS GC frees up vnodes.

On iPhone 6 Plus, the system limit is at 3000, which would lead to the
following limits being used:
soft: 450 / hard: 600

However, on older hardware, the system limit can be as low as 2000,
which would lead to the following limits being used:
soft: 300 / hard: 400

vnode tracking is currently only enabled on iOS because system vnode
limits are usually much higher on Mac (e.g. 473695 on Mac Pro, 9984
on a 2011 MacBook Air) and we normally don't get killed.

* WebCore.xcodeproj/project.pbxproj:

Add new files to the XCode project.

* platform/SharedBuffer.h:

Add a VNodeTracker::Token member next to the CFDataRef member that we
initialize if the SharedBuffer is constructed from a CFDataRef.

* platform/VNodeTracker.cpp: Added.
(WebCore::VNodeTracker::singleton):
(WebCore::VNodeTracker::VNodeTracker):
(WebCore::VNodeTracker::checkPressureState):
(WebCore::VNodeTracker::pressureWarningTimerFired):
(WebCore::VNodeTracker::nextPressureWarningInterval):
(WebCore::VNodeTracker::platformInitialize):
* platform/VNodeTracker.h: Added.
(WebCore::VNodeTracker::setPressureHandler):

Add a new VNodeTracker singleton to keep track the number of vnodes
used by the process since the system does not issue warnings before
reaching its vnode limit. Call sites should request Tokens for
every vnode they use for tracking purposes. Each process can then
set a vnode pressure handler function that will be called when the
process is over the designated limits.

* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::SharedBuffer):

Take a VNodeToken from the VNodeTracker when constructing the
SharedBuffer from a CFDataRef as these usually use mmap.

* platform/cocoa/VNodeTrackerCocoa.cpp: Added.
(WebCore::VNodeTracker::platformInitialize):

Get the system's vnode limit and uses 15% of that value as soft
limit for the process and 20% of that value as hard limit.

Source/WebKit2:

Have the WebContent process register a vnode pressure handler on iOS,
which calls the memory pressure handler.

On non-critical pressure, it will prune dead resources from the memory
cache, which should free up some vnodes. On critical pressure, the
handler will clear the PageCache and do a JS GC, which should free even
more vnodes.

* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

* wtf/RefCounter.h:
(WTF::RefCounter::value):

Expose the actual refcount instead of a boolean value.

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

4 years agoLingering checkbox animations when rapidly switching between views on WK1
dino@apple.com [Fri, 5 Jun 2015 23:16:26 +0000 (23:16 +0000)]
Lingering checkbox animations when rapidly switching between views on WK1
https://bugs.webkit.org/show_bug.cgi?id=145715
<rdar://problem/17381121>

Reviewed by Simon Fraser.

On WK1, the NSView we use for NSButtonCells is parented in the ScrollView.
Our checkbox and radiobutton animations cause AppKit to create a CALayer which
is parented into that view. As we render the animations, we see the CALayer getting
drawn also.

The fix was to use an unparented layer on WK1 when drawing these controls, the same
way WK2 does. This technique may apply to all controls, but restricting it
to just the buttons at the moment is less risky.

This only happens during the swap between a checked and non-checked state,
and we have no way to test it :(

* platform/mac/ThemeMac.h: New optional parameter to ensuredView.
* platform/mac/ThemeMac.mm:
(WebCore::paintToggleButton): If we're on Yosemite or highter, use an unparented view.
(WebCore::ThemeMac::ensuredView): Return either a parented or unparented view.

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

4 years agoREGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector...
commit-queue@webkit.org [Fri, 5 Jun 2015 22:59:16 +0000 (22:59 +0000)]
REGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector.clearLogOnReload.value')
https://bugs.webkit.org/show_bug.cgi?id=145695

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-05
Reviewed by Mark Lam.

Move and rename the clear log on reload setting property from
WebInspector (Main.js) to LogManager (shared with tests).

* UserInterface/Base/Main.js:
(WebInspector.loaded): Deleted.
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager):
(WebInspector.LogManager.prototype._delayedMessagesCleared):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):

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

4 years agoMediaSessions should keep track of their participating media elements.
commit-queue@webkit.org [Fri, 5 Jun 2015 22:33:23 +0000 (22:33 +0000)]
MediaSessions should keep track of their participating media elements.
https://bugs.webkit.org/show_bug.cgi?id=145703

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

* Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::addMediaElement): Add the given media element to the media session.
(WebCore::MediaSession::removeMediaElement): Remove the given media element from the media session.
(WebCore::MediaSession::activeParticipatingElements): Dynamically build a vector of actively-playing media
  elements.
* Modules/mediasession/MediaSession.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Ensure the element is removed from its media session.
(WebCore::HTMLMediaElement::setSession): Update sessions' references to their media elements.

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

4 years agoRegression(r176212): Broke app switching on iCloud.com
cdumez@apple.com [Fri, 5 Jun 2015 22:10:19 +0000 (22:10 +0000)]
Regression(r176212): Broke app switching on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=145708
<rdar://problem/21235277>

Reviewed by Simon Fraser.

Source/WebCore:

Roll out r176212 and follow-up fixes for now, to fix iCloud.com.
We can reconsider later how to do this in a safer way.

* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Deleted.
* dom/Element.cpp:
* dom/Element.h:
* dom/ElementRareData.cpp:
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::~ElementRareData): Deleted.
* dom/Node.cpp:
(WebCore::Node::materializeRareData):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.
* page/DOMTimer.cpp:
(WebCore::DOMTimerFireState::scriptMadeNonUserObservableChanges): Deleted.
(WebCore::DOMTimerFireState::scriptMadeUserObservableChanges): Deleted.
(WebCore::NestedTimersMap::instanceForContext): Deleted.
(WebCore::DOMTimer::install): Deleted.
(WebCore::DOMTimer::fired): Deleted.
(WebCore::DOMTimer::alignedFireTime): Deleted.
(WebCore::DOMTimer::activeDOMObjectName): Deleted.
* page/DOMTimer.h:
* page/FrameView.cpp:
(WebCore::FrameView::reset): Deleted.
(WebCore::FrameView::viewportContentsChanged): Deleted.
(WebCore::FrameView::autoSizeIfEnabled): Deleted.
* page/FrameView.h:

LayoutTests:

Remove layout tests covering DOM Timer throttling.

* fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt: Removed.
* fast/canvas/canvas-outside-viewport-timer-throttling.html: Removed.
* fast/dom/nested-timer-display-none-element-throttling-expected.txt: Removed.
* fast/dom/nested-timer-display-none-element-throttling.html: Removed.
* fast/dom/repeating-timer-display-none-element-throttling-expected.txt: Removed.
* fast/dom/repeating-timer-display-none-element-throttling.html: Removed.
* fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt: Removed.
* fast/dom/repeating-timer-element-overflow-hidden-throttling.html: Removed.
* fast/dom/resources/timer-throttling-iframe.html: Removed.
* fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Removed.
* fast/dom/timer-throttle-on-scrolling-iframe-away.html: Removed.
* fast/dom/timer-unthrottle-on-layout-expected.txt: Removed.
* fast/dom/timer-unthrottle-on-layout.html: Removed.
* fast/dom/timer-unthrottle-on-scroll-expected.txt: Removed.
* fast/dom/timer-unthrottle-on-scroll.html: Removed.

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

4 years agoDropAllLocks RELEASE_ASSERT on iOS
ggaren@apple.com [Fri, 5 Jun 2015 22:03:50 +0000 (22:03 +0000)]
DropAllLocks RELEASE_ASSERT on iOS
https://bugs.webkit.org/show_bug.cgi?id=139654

Reviewed by Mark Lam.

* runtime/JSLock.cpp:
(JSC::JSLock::dropAllLocks): Removed a comment because it duplicated
the code beneath it. Removed a FIXME because we can't ASSERT that
we're holding the lock. WebKit1 on iOS drops the lock before calling to
delegates, not knowing whether it holds the lock or not.

(JSC::JSLock::DropAllLocks::DropAllLocks): Only ASSERT that we are not
GC'ing if we hold the lock. If we do not hold the lock, it is perfectly
valid for some other thread, which does hold the lock, to be GC'ing.
What is not valid is to drop the lock in the middle of GC, since GC
must be atomic.

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

4 years agospeculateRealNumber() should early exit if you're already a real number, not if you...
fpizlo@apple.com [Fri, 5 Jun 2015 22:00:54 +0000 (22:00 +0000)]
speculateRealNumber() should early exit if you're already a real number, not if you're already a real double.

Rubber stamped by Mark Lam.

This was causing: https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK1%20(Tests)/r185261%20(5180)/webaudio/note-grain-on-timing-crash-log.txt

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

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

4 years ago[iOS] Emoji overlap preceeding lines
mmaxfield@apple.com [Fri, 5 Jun 2015 21:46:25 +0000 (21:46 +0000)]
[iOS] Emoji overlap preceeding lines
https://bugs.webkit.org/show_bug.cgi?id=145678
<rdar://problem/10684914>

Reviewed by Enrica Casucci.

Source/WebCore:

In WebKit, we first lay out lines, and then we lay out text inside those lines. Text is vertically centered in
its containing line. If the author has not specified a particular line-height, the height of a line comes from
the font metrics for the primary font of the line.

In iOS, we were specifically hardcoding the line height metric of Apple Color Emoji to be 0. This means that,
if Apple Color Emoji is the primary font for a line, and an explicit line-height was not specified, the lines
are laid out with 0 height. Then, when we vertically center the text inside the line, the top half of the text
overlaps the preceeding line.

I'm not sure exactly why were were hardcoding this value to 0, as it is surely wrong. I'm going to ask Enrica
to review this patch; hopefully she knows the answer.

Test: fast/text/emoji.html

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

LayoutTests:

* fast/text/emoji.html:
* platform/mac/TestExpectations: Removed unnecessary line.
* platform/mac-mavericks/fast/text/emoji-expected.html:
* platform/mac/fast/text/emoji-expected.html:
* platform/ios-simulator/fast/text/emoji-expected.html:
* TestExpectations: Removed unnecessary line.

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

4 years agoFix refacto, don't put IndexedDB databases in the cache directory
andersca@apple.com [Fri, 5 Jun 2015 21:42:22 +0000 (21:42 +0000)]
Fix refacto, don't put IndexedDB databases in the cache directory
https://bugs.webkit.org/show_bug.cgi?id=145714

Reviewed by Antti Koivisto.

* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):

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

4 years ago[Web Timing] Use new SPI to enable data collection.
achristensen@apple.com [Fri, 5 Jun 2015 21:37:44 +0000 (21:37 +0000)]
[Web Timing] Use new SPI to enable data collection.
https://bugs.webkit.org/show_bug.cgi?id=145650
rdar://problem/21203358

Reviewed by Chris Dumez.

Source/WebCore:

* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
Gather web timing data on iOS.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::setCollectsTimingData):
Gather web timing data on Mac.

Source/WTF:

* wtf/Platform.h:
Added HAVE_TIMINGDATAOPTIONS for platform and version dependent feature.

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

4 years agoWeb Inspector: [REGRESSION] Dashboard's resource count does not reset when main resou...
nvasilyev@apple.com [Fri, 5 Jun 2015 21:36:16 +0000 (21:36 +0000)]
Web Inspector: [REGRESSION] Dashboard's resource count does not reset when main resource navigates
https://bugs.webkit.org/show_bug.cgi?id=144553

Add missing _mainResourceDidChange, which was removed after switching to the tabs UI.

Reviewed by Timothy Hatcher.

* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard):
_waitingForFirstMainResourceToStartTrackingSize is not used anywhere, remove it.

(WebInspector.DefaultDashboard.prototype._mainResourceDidChange): Added.

(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange): Removed.
Unused.

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

4 years agoMake the network cache directory part of WKContextConfigurationRef
andersca@apple.com [Fri, 5 Jun 2015 21:31:27 +0000 (21:31 +0000)]
Make the network cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145711

Reviewed by Antti Koivisto.

Source/WebKit2:

Also, make the UI process be in control of where we place the new network cache.
When using the Modern WebKit API, put the cache in ~/Library/Caches/<Bundle ID>/WebKit/NetworkCache,
and put the cache in ~/Library/Caches/<Bundle ID>/WebKitCache otherwise (this is just for Safari).

* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::open):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextSetDiskCacheDirectory): Deleted.
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCopyDiskCacheDirectory):
(WKContextConfigurationSetDiskCacheDirectory):
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::isNetworkCacheEnabled):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::diskCacheDirectory): Deleted.
* UIProcess/WebProcessPool.h:

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):

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

4 years agoMake the application cache directory part of WKContextConfigurationRef
andersca@apple.com [Fri, 5 Jun 2015 19:27:26 +0000 (19:27 +0000)]
Make the application cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145704

Reviewed by Geoffrey Garen.

Source/WebKit2:

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextSetApplicationCacheDirectory): Deleted.
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCopyApplicationCacheDirectory):
(WKContextConfigurationSetApplicationCacheDirectory):
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::applicationCacheDirectory): Deleted.
* UIProcess/WebProcessPool.h:

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):

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

4 years ago[Streams API] ReadableStream should store callbacks as a Deque
youenn.fablet@crf.canon.fr [Fri, 5 Jun 2015 19:08:47 +0000 (19:08 +0000)]
[Streams API] ReadableStream should store callbacks as a Deque
https://bugs.webkit.org/show_bug.cgi?id=145641

Reviewed by Darin Adler.

Source/WebCore:

Covered by existing tests.

* Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::resolveReadCallback): Use of Deque.takeFirst
* Modules/streams/ReadableStream.h: Using Deque in lieu of Vector for storing callbacks.

Source/WTF:

* wtf/Deque.h:
(WTF::Deque::append): Adding not templated append method, forwarding to templated append method.

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

4 years agofinally blocks should not set the exception stack trace when re-throwing the exception.
mark.lam@apple.com [Fri, 5 Jun 2015 18:52:12 +0000 (18:52 +0000)]
finally blocks should not set the exception stack trace when re-throwing the exception.
https://bugs.webkit.org/show_bug.cgi?id=145525

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

How exceptions presently work:
=============================
1. op_throw can throw any JSValue.
2. the VM tries to capture the stack at the throw point and propagate that as needed.
3. finally blocks are implemented using op_catch to catch the thrown value, and throws it again using op_throw.

What's wrong with how it presently works:
========================================
1. finally's makes for bad exception throw line numbers in the Inspector console.

   The op_throw in finally will throw the value anew i.e. it captures a stack from the re-throw point.
   As a result, the Inspector sees the finally block as the throw point.  The original stack is lost.

2. finally's breaks the Inspector's "Breaks on Uncaught Exception"

   This is because finally blocks are indistinguishable from catch blocks.  As a result, a try-finally,
   which should break in the Inspector on the throw, does not because the Inspector thought the
   exception was "caught".

3. finally's yields confusing break points when the Inspector "Breaks on All Exceptions"

   a. In a try-finally scenario, the Inspector breaks 2 times: 1 at the throw, 1 at the finally.
   b. In a for-of loop (which has synthesized finallys), the Inspector will do another break.
      Similarly for other cases of JS code which synthesize finallys.
   c. At VM re-entry boundaries (e.g. js throws & returns to native code, which returns to js),
      the Inspector will do another break if there's an uncaught exception.

How this patch fixes the issues:
===============================
1. We introduce an Exception object that wraps the thrown value and the exception stack.

   When throwing an exception, the VM will check if the thrown value is an Exception
   object or not.  If it is not an Exception object, then we must be throwing a new
   exception.  The VM will create an Exception object to wrap the thrown value and
   capture the current stack for it.

   If the thrown value is already an Exception object, then the requested throw operation
   must be a re-throw.  The VM will not capture a new stack for it.

2. op_catch will now populate 2 locals: 1 for the Exception, 1 for the thrown JSValue.

   The VM is aware of the Exception object and uses it for rethrows in finally blocks.
   JS source code is never aware of the Exception object.

   JS code is aware of the thrown value.  If it throws the caught thrown value, that
   constitutes a new throw, and a new Exception object will be created for it.

3. The VM no longer tracks the thrown JSValue and the exception stack.  It will only
   track a m_exception field which is an Exception*.

4. The BytecodeGenerator has already been updated in a prior patch to distinguish
   between Catch, Finally, and SynthesizedFinally blocks.  The interpreter runtime will
   now report to the debugger whether we have a Catch handler, not just any handlers.

   The debugger will use this detail to determine whether to break or not.  "Break on
   uncaught exceptions" will only break if no Catch handler was found.

   This solves the issue of the debugger breaking at finally blocks, and for-of statements.

5. The Exception object will also have a flag to indicate whether the debugger has been
   notified of the Exception being thrown.  Once the Interpreter notifies the debugger
   of the Exception object, it will mark this flag and not repeat the notify the debugger
   again of the same Exception.

   This solves the issue of the debugger breaking at VM re-entry points due to uncaught
   exceptions.

6. The life-cycle of the captured exception stack trace will now follow the life-cycle
   of the Exception object.

Other changes:
7. Change all clients of the VM::exception() to expect an Exception* instead of JSValue.

8. Fixed a few bugs where thrown exceptions are not cleared before exiting the VM.

9. Also renamed some variables and classes to better describe what they are.

* API/JSBase.cpp:
(JSEvaluateScript):
(JSCheckScriptSyntax):

* API/JSObjectRef.cpp:
(handleExceptionIfNeeded):
- The functions below all do the same exception check.  Added this helper
  to simplify the code.
(JSClassCreate):
(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):

* API/JSScriptRef.cpp:
* API/JSValue.mm:
(JSContainerConvertor::take):
(reportExceptionToInspector):

* API/JSValueRef.cpp:
(handleExceptionIfNeeded):
- The functions below all do the same exception check.  Added this helper
  to simplify the code.
(evernoteHackNeeded):
(JSValueIsEqual):
(JSValueIsInstanceOfConstructor):
(JSValueCreateJSONString):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
- Added new files Exception.h and Exception.cpp.

* bindings/ScriptFunctionCall.cpp:
(Deprecated::ScriptFunctionCall::call):
* bindings/ScriptFunctionCall.h:

* bytecode/BytecodeList.json:
- op_catch now had 2 operands: the exception register, and the thrown value register.

* bytecode/BytecodeUseDef.h:
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::handlerForBytecodeOffset):
* bytecode/CodeBlock.h:
- handlerForBytecodeOffset() now can look for just Catch handlers only.

* bytecode/HandlerInfo.h:
- Cleaned up some white space I accidentally added in a previous patch.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitEnumeration):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitThrow):
* bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):
- Adding support for op_catch's 2 operands.

* debugger/Debugger.cpp:
(JSC::Debugger::hasBreakpoint):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::exception):
* debugger/Debugger.h:
* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::thisValue):
(JSC::DebuggerCallFrame::evaluate):
* debugger/DebuggerCallFrame.h:
(JSC::DebuggerCallFrame::isValid):
* inspector/InjectedScriptManager.cpp:
(Inspector::InjectedScriptManager::createInjectedScript):
* inspector/InspectorEnvironment.h:
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
* inspector/JSGlobalObjectInspectorController.h:
* inspector/JSGlobalObjectScriptDebugServer.h:
* inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::evaluate):
* inspector/JavaScriptCallFrame.h:
(Inspector::JavaScriptCallFrame::vmEntryGlobalObject):
(Inspector::JavaScriptCallFrame::thisValue):
(Inspector::JavaScriptCallFrame::evaluate):
* inspector/ScriptCallStackFactory.cpp:
(Inspector::extractSourceInformationFromException):
(Inspector::createScriptCallStackFromException):
* inspector/ScriptCallStackFactory.h:
* inspector/ScriptDebugServer.cpp:
(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::handleBreakpointHit):
(Inspector::ScriptDebugServer::handleExceptionInBreakpointCondition):
* inspector/ScriptDebugServer.h:
* interpreter/CallFrame.h:
(JSC::ExecState::clearException):
(JSC::ExecState::exception):
(JSC::ExecState::hadException):
(JSC::ExecState::atomicStringTable):
(JSC::ExecState::propertyNames):
(JSC::ExecState::clearSupplementaryExceptionInfo): Deleted.

* interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
(JSC::Interpreter::stackTraceAsString):
(JSC::GetCatchHandlerFunctor::GetCatchHandlerFunctor):
(JSC::GetCatchHandlerFunctor::operator()):
(JSC::Interpreter::unwind):
- Added a check for didNotifyInspectorOfThrow() here to prevent duplicate reports
  of the same Exception to the debugger.

(JSC::GetExceptionHandlerFunctor::GetExceptionHandlerFunctor): Deleted.
(JSC::GetExceptionHandlerFunctor::operator()): Deleted.
- Renamed GetExceptionHandlerFunctor to GetCatchHandlerFunctor since the debugger
  is only interested in knowing whether we have Catch handlers.

* interpreter/Interpreter.h:
(JSC::SuspendExceptionScope::SuspendExceptionScope):
(JSC::SuspendExceptionScope::~SuspendExceptionScope):
(JSC::Interpreter::sampler):
(JSC::ClearExceptionScope::ClearExceptionScope): Deleted.
(JSC::ClearExceptionScope::~ClearExceptionScope): Deleted.
- Renamed ClearExceptionScope to SuspendExceptionScope because "clear" implies that
  we're purging the exception.  Instead, we're merely suspending any handling of
  that exception for a period defined by the scope.

* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitExceptionCheck):

* jit/JITExceptions.cpp:
(JSC::genericUnwind):
- Removed the exception argument.  It is always the value in VM::exception() anyway.
  genericUnwind() can just get it from the VM, and save everyone some work.

* jit/JITExceptions.h:
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_catch):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_catch):
- Add support for the new op_catch operands.

* jit/JITOperations.cpp:
* jit/ThunkGenerators.cpp:
(JSC::nativeForGenerator):
* jsc.cpp:
(functionRun):
(functionLoad):
(runWithScripts):
(runInteractive):
* llint/LLIntOffsetsExtractor.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
- Add support for the new op_catch operands.  Also update the code to handle
  VM::m_exception being an Exception pointer, not a JSValue.

* parser/NodeConstructors.h:
(JSC::TryNode::TryNode):
* parser/Nodes.h:
* runtime/CallData.cpp:
(JSC::call):
* runtime/CallData.h:

* runtime/Completion.cpp:
(JSC::evaluate):
* runtime/Completion.h:
(JSC::evaluate):
- Change evaluate() to take a reference to the returned exception value instead
  of a pointer.  In all but 2 or 3 cases, we want the returned exception anyway.
  Might as well simplify the code by requiring the reference.

* runtime/Error.h:
(JSC::throwVMError):
(JSC::throwVMTypeError):

* runtime/Exception.cpp: Added.
(JSC::Exception::create):
(JSC::Exception::destroy):
(JSC::Exception::createStructure):
(JSC::Exception::visitChildren):
(JSC::Exception::Exception):
(JSC::Exception::~Exception):
* runtime/Exception.h: Added.
(JSC::Exception::valueOffset):
(JSC::Exception::cast):
(JSC::Exception::value):
(JSC::Exception::stack):
(JSC::Exception::didNotifyInspectorOfThrow):
(JSC::Exception::setDidNotifyInspectorOfThrow):

* runtime/ExceptionHelpers.cpp:
(JSC::createTerminatedExecutionException):
(JSC::isTerminatedExecutionException):
(JSC::createStackOverflowError):
* runtime/ExceptionHelpers.h:
* runtime/GetterSetter.cpp:
(JSC::callGetter):
* runtime/IteratorOperations.cpp:
(JSC::iteratorClose):
* runtime/JSObject.cpp:
* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise):
* runtime/JSPromiseDeferred.cpp:
(JSC::updateDeferredFromPotentialThenable):
(JSC::abruptRejection):
* runtime/JSPromiseReaction.cpp:
(JSC::ExecutePromiseReactionMicrotask::run):

* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::releaseExecutableMemory):
(JSC::VM::throwException):
(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::getExceptionInfo): Deleted.
(JSC::VM::setExceptionInfo): Deleted.
(JSC::VM::clearException): Deleted.
(JSC::clearExceptionStack): Deleted.
* runtime/VM.h:
(JSC::VM::targetMachinePCForThrowOffset):
(JSC::VM::clearException):
(JSC::VM::setException):
(JSC::VM::exception):
(JSC::VM::addressOfException):
(JSC::VM::exceptionStack): Deleted.
* runtime/VMEntryScope.cpp:
(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::setEntryScopeDidPopListener):

Source/WebCore:

Update to use the new JSC::Exception object.

Test: inspector/debugger/break-on-exceptions.html

* ForwardingHeaders/runtime/Exception.h: Added.
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsArray):
(WebCore::reportException):
(WebCore::reportCurrentException):
* bindings/js/JSDOMBinding.h:
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSMainThreadExecState.cpp:
(WebCore::JSMainThreadExecState::didLeaveScriptContext):
(WebCore::functionCallHandlerFromAnyThread):
(WebCore::evaluateHandlerFromAnyThread):
* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::currentState):
(WebCore::JSMainThreadExecState::call):
(WebCore::JSMainThreadExecState::evaluate):
(WebCore::JSMainThreadExecState::runTask):

* bindings/js/JSMediaDevicesCustom.cpp:
(WebCore::JSMediaDevices::getUserMedia):
- Fixed a bug where the exception was not cleared before entering the VM to
  call JS code.

* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
* bindings/js/ReadableJSStream.cpp:
(WebCore::getPropertyFromObject):
(WebCore::callFunction):
(WebCore::ReadableJSStream::Source::start):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):
(WebCore::WorkerScriptController::scheduleExecutionTermination):
* bindings/js/WorkerScriptController.h:
(WebCore::WorkerScriptController::workerGlobalScopeWrapper):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):
* bindings/js/WorkerScriptDebugServer.h:
* bindings/objc/WebScriptObject.mm:
(WebCore::createJSWrapper):
(WebCore::addExceptionToConsole):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
- Changed to call a version of JSMainThreadExecState::evaluate() that provides
  a stub returnedException because evaluateWebScript: doesn't need the exception.

* inspector/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):
* inspector/PageScriptDebugServer.h:
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):

Source/WebKit/mac:

* WebView/WebView.mm:
(+[WebView _reportException:inContext:]):
(WebKitInitializeApplicationCachePathIfNecessary):
- Changed to use the new Exception object.

Source/WebKit/win:

* WebView.cpp:
(WebView::reportException):
- Changed to use the new Exception object.

Source/WebKit2:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::reportException):
- Changed to use the new Exception object.

LayoutTests:

* TestExpectations:
- Skip the new tests until webkit.org/b/145090 is fixed.

* fast/dom/regress-131530-expected.txt:
- Rebased results because we now have a proper line number.

* http/tests/inspector/inspector-test.js:
(InspectorTestProxy.clearResults):
(InspectorTestProxy.reportUncaughtException):
- Add the feature to sanitize the url reported by reportUncaughtException() since
  we can have tests that do expect uncaught exceptions, and we need the test
  results to be invariant.  Sanitization of the url, in this case means, stripping
  off the preceding path.

* inspector/debugger/break-on-exception-expected.txt: Added.
* inspector/debugger/break-on-exception.html: Added.
* inspector/debugger/break-on-exception-catch-expected.txt: Added.
* inspector/debugger/break-on-exception-catch.html: Added.
* inspector/debugger/break-on-exception-finally-expected.txt: Added.
* inspector/debugger/break-on-exception-finally.html: Added.
* inspector/debugger/break-on-exception-native-expected.txt: Added.
* inspector/debugger/break-on-exception-native.html: Added.

* inspector/debugger/break-on-exception-throw-in-promise-expected.txt: Added.
* inspector/debugger/break-on-exception-throw-in-promise.html: Added.
* inspector/debugger/break-on-exception-throw-in-promise-with-catch-expected.txt: Added.
* inspector/debugger/break-on-exception-throw-in-promise-with-catch.html: Added.
* inspector/debugger/break-on-exception-throw-in-promise-then-expected.txt: Added.
* inspector/debugger/break-on-exception-throw-in-promise-then.html: Added.
* inspector/debugger/break-on-exception-throw-in-promise-then-with-catch-expected.txt: Added.
* inspector/debugger/break-on-exception-throw-in-promise-then-with-catch.html: Added.
* inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
* inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch.html: Added.

* inspector/debugger/break-on-exception-window-onerror-expected.txt: Added.
* inspector/debugger/break-on-exception-window-onerror.html: Added.

* inspector/debugger/break-on-uncaught-exception-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception.html: Added.
* inspector/debugger/break-on-uncaught-exception-catch-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-catch.html: Added.
* inspector/debugger/break-on-uncaught-exception-finally-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-finally.html: Added.
* inspector/debugger/break-on-uncaught-exception-native-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-native.html: Added.

* inspector/debugger/break-on-uncaught-exception-throw-in-promise-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise.html: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch.html: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-then.html: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch.html: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch.html: Added.

* inspector/debugger/break-on-uncaught-exception-window-onerror-expected.txt: Added.
* inspector/debugger/break-on-uncaught-exception-window-onerror.html: Added.

* inspector/debugger/resources/break-on-exception-tests.js: Added.
(doThrow):
(testCatch):
(testFinally):
(testThrowingThruNativeCode):
(testThrowingInPromise):
(testThrowingInPromiseWithCatch):
(testThrowingInPromiseThen):
(testThrowingInPromiseThenWithCatch):
(testThrowingInPromiseWithRethrowInCatch):

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

4 years agoLayout tests fullscreen/video-controls-drag.html and media/video-fullscreeen-only...
eric.carlson@apple.com [Fri, 5 Jun 2015 18:39:08 +0000 (18:39 +0000)]
Layout tests fullscreen/video-controls-drag.html and media/video-fullscreeen-only-controls.html
fail on WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=145675

Reviewed by Dean Jackson.

Source/WebCore:

No new tests, changes covered by existing tests.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.updateControls): Use shouldHaveControls() to test if controls should
  be visible.
(Controller.prototype.handleWrapperMouseMove): Don't return early when in fullscreen.
(Controller.prototype.updateFullscreenButtons): Drive-by fix: always show the (exit) fullscreen
  button when in fullscreen.

LayoutTests:

* TestExpectations: Unskip tests.
* fullscreen/video-controls-drag.html: Minor cleanup, force layout before testing control location.

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

4 years ago[iOS] Rebaseline expected results.
zalan@apple.com [Fri, 5 Jun 2015 18:35:13 +0000 (18:35 +0000)]
[iOS] Rebaseline expected results.

Unreviewed gardening.

* platform/ios-simulator/compositing/overflow/overflow-positioning-expected.txt:
* platform/ios-simulator/css3/selectors3/xhtml/css3-modsel-15c-expected.txt:
* platform/ios-simulator/css3/selectors3/xml/css3-modsel-15c-expected.txt:
* platform/ios-simulator/ios/scrolling/overflow-div-scrolling-expected.txt:
* platform/ios-simulator/ios/touch/touch-handler-on-window-expected.txt:

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

4 years agoUnderlines too close in vertical Chinese text.
hyatt@apple.com [Fri, 5 Jun 2015 18:26:07 +0000 (18:26 +0000)]
Underlines too close in vertical Chinese text.
https://bugs.webkit.org/show_bug.cgi?id=145651
<rdar://problem/11105920>

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/decorations-vertical-underline.html

* style/InlineTextBoxStyle.cpp:
(WebCore::computeUnderlineOffset):
Make sure the to map text-underline-position: auto to under when a line has an ideographic baseline.

LayoutTests:

* fast/text/decorations-vertical-underline-expected.html: Added.
* fast/text/decorations-vertical-underline.html: Added.

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

4 years agoWeb Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames...
mattbaker@apple.com [Fri, 5 Jun 2015 18:11:32 +0000 (18:11 +0000)]
Web Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=145671

Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
"Idle" string no longer used.

* UserInterface/Views/TimelineRecordFrame.js:
Reduced maximum frame width by 2px.

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart):
Added inner radius to chart and removed "Idle" value.

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

4 years agoLayout test http/tests/misc/acid3.html times out on Yosemite WK2 Debug.
said@apple.com [Fri, 5 Jun 2015 18:09:58 +0000 (18:09 +0000)]
Layout test http/tests/misc/acid3.html times out on Yosemite WK2 Debug.
https://bugs.webkit.org/show_bug.cgi?id=145702

* platform/mac-wk2/TestExpectations: Marking as flaky for now.

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

4 years ago[iOS] Rebaseline expected results for svg font tests
said@apple.com [Fri, 5 Jun 2015 17:41:55 +0000 (17:41 +0000)]
[iOS] Rebaseline expected results for svg font tests

Reviewed by Daniel Bates.

* platform/ios-simulator/svg/custom/svg-fonts-no-latin-glyph-expected.txt: Added.
* platform/ios-simulator/svg/custom/svg-fonts-segmented-expected.txt:
* platform/ios-simulator/svg/custom/svg-fonts-with-no-element-reference-expected.txt: Added.
* platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
* platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.txt:
* svg/custom/svg-fonts-no-latin-glyph-expected.txt:
* svg/custom/svg-fonts-no-latin-glyph.html:

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

4 years ago[GTK] [Wayland] The MiniBrowser crashes inside Weston.
clopez@igalia.com [Fri, 5 Jun 2015 17:19:47 +0000 (17:19 +0000)]
[GTK] [Wayland] The MiniBrowser crashes inside Weston.
https://bugs.webkit.org/show_bug.cgi?id=145645

Reviewed by Žan Doberšek.

No new tests, no behavior changes.

The issue was caused because we were not properly initializing the
Wayland display, and we were returning a nullptr in PlatformDisplayWayland::create(),
therefore a crash was happening on WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1136
<http://trac.webkit.org/browser/trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp?rev=185245#L1136>

* platform/graphics/wayland/PlatformDisplayWayland.cpp:
(WebCore::PlatformDisplayWayland::create): When connecting to the Wayland
server socket we should use the default value (NULL). This allows the value
to be overwritten at run-time by the environment variables WAYLAND_DISPLAY or
WAYLAND_SOCKET that the Wayland compositor should define. Also add a couple
of warnings to get information about what is going wrong when we fail to
initialize the display instead of just crashing without giving more information.
* platform/graphics/wayland/PlatformDisplayWayland.h:
(WebCore::PlatformDisplayWayland::isInitialized): Not longer check for m_webkitgtk
to signal that the display is ready because the UIProcess embedded Wayland
subcompositer is still not implemented. Added a FIXME note about it.

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

4 years agoDisable the CFNetwork cache in the web process
andersca@apple.com [Fri, 5 Jun 2015 17:19:37 +0000 (17:19 +0000)]
Disable the CFNetwork cache in the web process
https://bugs.webkit.org/show_bug.cgi?id=145700
rdar://problem/20243343

Reviewed by Geoffrey Garen.

* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::open):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Deleted.
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess): Deleted.
(WebKit::WebProcess::initializeWebProcess): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetCacheModel): Deleted.
(WebKit::WebProcess::platformTerminate): Deleted.

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

4 years ago[iOS] Mask layer now is part of the layer tree output.
zalan@apple.com [Fri, 5 Jun 2015 17:17:30 +0000 (17:17 +0000)]
[iOS] Mask layer now is part of the layer tree output.

Unreviewed gardening.

* platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:

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

4 years ago[Mac] Popup focus is cut off
dino@apple.com [Fri, 5 Jun 2015 17:08:18 +0000 (17:08 +0000)]
[Mac] Popup focus is cut off
https://bugs.webkit.org/show_bug.cgi?id=145688
<rdar://problem/18313375>

Reviewed by Brent Fulgham.

Source/WebCore:

Yosemite increased the width of focus rings, causing
some ugly clipping on Yosemite. The solution was to
not set a clip (which was code introduced for Leopard).

Test: fast/forms/select-element-focus-ring.html

* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMenuList): Don't clip on Yosemite.

LayoutTests:

* fast/forms/select-element-focus-ring.html: Added.
* platform/mac/fast/forms/select-element-focus-ring-expected.png: Added.
* platform/mac/fast/forms/select-element-focus-ring-expected.txt: Added.

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

4 years agoConsolidate default website data directory computations
andersca@apple.com [Fri, 5 Jun 2015 16:50:51 +0000 (16:50 +0000)]
Consolidate default website data directory computations
https://bugs.webkit.org/show_bug.cgi?id=145698

Reviewed by Andreas Kling.

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
(API::applicationCacheDirectory): Deleted.

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

4 years agoAdd WK1 versions of tests from Bugs 145637 and 145642
bfulgham@apple.com [Fri, 5 Jun 2015 16:19:26 +0000 (16:19 +0000)]
Add WK1 versions of tests from Bugs 145637 and 145642
https://bugs.webkit.org/show_bug.cgi?id=145649

Reviewed by Zalan Bujtas.

* platform/mac/fast/scrolling/iframe_in_iframe-expected.txt: Added.
* platform/mac/fast/scrolling/iframe_in_iframe.html: Added.
* platform/mac/fast/scrolling/resources/inner_content.html: Added.
* platform/mac/fast/scrolling/resources/testContent.html: Added.
* platform/mac/fast/scrolling/resources/testImage.png: Added.

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

4 years ago[CSS Grid Layout] Support dots sequences in grid-template-areas
rego@igalia.com [Fri, 5 Jun 2015 15:19:43 +0000 (15:19 +0000)]
[CSS Grid Layout] Support dots sequences in grid-template-areas
https://bugs.webkit.org/show_bug.cgi?id=145693

Reviewed by Sergio Villar Senin.

Source/WebCore:

The CSS WG agreed to consider a sequence of "." characters a single null
cell token for grid-template-areas. That way authors can match the
number of dots to the width of the column.

For more information see:
https://lists.w3.org/Archives/Public/www-style/2015May/0175.html

Added new test cases to check the new behavior.

* css/CSSParser.cpp:
(WebCore::containsOnlyDots): New helper function to check that the grid
area name is composed by only dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
function to look for unnamed areas.

LayoutTests:

Added new test cases to check the new behavior.

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

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

4 years agocheck-webkit-style should recommend using nullptr instead of recommending using 0...
clopez@igalia.com [Fri, 5 Jun 2015 11:06:49 +0000 (11:06 +0000)]
check-webkit-style should recommend using nullptr instead of recommending using 0 for the null pointer in C++ code.
https://bugs.webkit.org/show_bug.cgi?id=145680

Reviewed by Brent Fulgham.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_for_null):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_null_false_zero):

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

4 years agoMake the web server more robust to timing issues..
slewis@apple.com [Fri, 5 Jun 2015 09:11:24 +0000 (09:11 +0000)]
Make the web server more robust to timing issues..

Reviewed by Ryosuke Niwa.

Cleaned up exception handling.
Test server is actually serving pages before returning.
Clean up some style issues.

* Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
* Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
(SimpleHTTPServerDriver.__init__):
(SimpleHTTPServerDriver.serve): check output, wait for pages to serve
(SimpleHTTPServerDriver.baseUrl):
(SimpleHTTPServerDriver.fetchResult):
(SimpleHTTPServerDriver.killServer):
(SimpleHTTPServerDriver.getReturnCode):

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

4 years agoAdd errors to run-benchmark exception handling.
slewis@apple.com [Fri, 5 Jun 2015 09:11:21 +0000 (09:11 +0000)]
Add errors to run-benchmark exception handling.

Reviewed by Ryosuke Niwa.

* Scripts/run-benchmark:
(main):
* Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:
(GenericBenchmarkBuilder.prepare):
(GenericBenchmarkBuilder._runCreateScript):
(GenericBenchmarkBuilder._applyPatch):
(GenericBenchmarkBuilder.clean):
* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.__init__):
(BenchmarkRunner.execute):
(BenchmarkRunner):
(BenchmarkRunner.cleanup):
* Scripts/webkitpy/benchmark_runner/generic_factory.py:
(GenericFactory.iterateGetItem):
(GenericFactory.create):
* Scripts/webkitpy/benchmark_runner/utils.py:
(loadModule):
(loadJSONFromFile):
(forceRemove):

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

4 years agoStreamline run-benchmark browser
slewis@apple.com [Fri, 5 Jun 2015 09:11:18 +0000 (09:11 +0000)]
Streamline run-benchmark browser

Reviewed by Ryosuke Niwa.

Add Caffeinate so computer won't sleep while running.
Remove calls to collect output since we were just dumping to stdout anyway.
Add xpc dyld_path.
Default to system safari.

* Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver.launchProcess):
(OSXBrowserDriver.terminateProcesses):
(OSXBrowserDriver):
(OSXBrowserDriver.launchCaffeinateForProcess):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

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

4 years ago[iOS] Uploading an animated GIF from the photo library uploads a JPEG
jhoneycutt@apple.com [Fri, 5 Jun 2015 06:44:55 +0000 (06:44 +0000)]
[iOS] Uploading an animated GIF from the photo library uploads a JPEG

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

Selecting a photo from the photo library using UIImagePickerController
results in an NSDictionary with image info and a UIImage with the
image. It's not possible to get the original image data from the
UIImage, only a PNG or JPEG representation, so we were getting a JPEG
representation and uploading that to the server. For animated GIFs,
this meant a JPEG representation of the first frame.

To fix this, we'll get the asset URL, if available, and use the Photos
API to query for the original image data.

Reviewed by Andy Estes and Joe Pecoraro.

* UIProcess/ios/forms/WKFileUploadPanel.mm:
Soft link the Photos framework.

(-[WKFileUploadPanel _uploadItemForImageData:originalImage:imageName:successBlock:failureBlock:]):
Save the image's data to a temporary location, and create a
_WKImageFileUploadItem. Code moved from
-_uploadItemFromMediaInfo:successBlock:failureBlock:.

(-[WKFileUploadPanel _uploadItemForJPEGRepresentationOfImage:successBlock:failureBlock:]):
Get a JPEG representation of the UIImage, and create an upload item
from that data.

(uploadImageNameFromUTI):
Return a filename for the uploaded image based on the UTI.

(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):
Fetch the photo asset with the given asset URL. Create an image manager
object, and request the image data for the photo asset. Create an
upload item from that data. If we fail, fall back to a JPEG
representation.

(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
Return early if the media item is not an image type. If it is, and we
have an asset URL, try to create an upload item for the native image.
If we don't have an asset URL, use a JPEG representation of the image.

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

4 years ago[JSC] Always track out-of-bounds array access explicitly instead of relying on the...
benjamin@webkit.org [Fri, 5 Jun 2015 05:20:45 +0000 (05:20 +0000)]
[JSC] Always track out-of-bounds array access explicitly instead of relying on the slow case
https://bugs.webkit.org/show_bug.cgi?id=145673

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
Reviewed by Geoffrey Garen.

Previously, we were deciding to use out-of-bounds speculation based on two informations:
-Explicitly detected out-of-bounds accesses tracked on ArrayProfile.
-The number of time we took the slow cases in the baseline JIT.

The heuristic based on slow cases was a little too fragile.

In some cases, we were running into that limit just because the indexing type changes between
two values (typically Int32Array and DoubleArray). Sometimes we were just unlucky on what
we used for the inline cache.

In Kraken, this was hurting us on "audio-beat-detection" and "audio-fft". The array types we see
change between Int32 and Double. We run into the slow path a bit but never hit
out-of-bounds.

By the time we compile in DFG, we have stable Double Arrays but we speculate out-of-bounds based
on the number of slow cases we took. Because of that, we start boxing the double on GetByVal,
using DoubleRep, etc. adding a ton of overhead over otherwise very simple operations.

WebXPRT was also suffering from this problem but the other way arround: we were missing
the out-of-bounds accesses due to changes in indexing types, we were below the threshold
of slow-path access, thus we predicted in-bounds accesses for code that was doing plenty
of out-of-bands.

This patch fixes the problem by tracking the out-of-bounds access explicitly any time we go
into the slow path in baseline JIT. Since we no longer miss any out-of-bounds, we can remove
the slow-path heuristic.

There is new additional special case in the C code regarding out-of-bounds: Arguments access.
Mispredicting out-of-bounds accesses on arguments is a disaster for performance, so those are
tracked in the way DFG expect it.

There are a few important cases that are still not covered optimally:
-PutByVal on Arguments.
-Get/Put ByVal on TypedArray.
Those are simply not used by DFG in any way. TypedArrays should probably be looked at in the future.

* bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::computeUpdatedPrediction):
The inline-cache repatch cases now update the ArrayProfile information. This has no value in baseline
JIT but it helps avoiding one recompile in DFG for the missing ArrayProfile information.

* bytecode/ArrayProfile.h:
(JSC::ArrayProfile::setOutOfBounds):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::getArrayModeConsideringSlowPath): Deleted.
* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_has_indexed_property):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_has_indexed_property):
* jit/JITOperations.cpp:
(JSC::canUseFastArgumentAccess):
This is not my favorite part of this patch.

I tried having JSObject::canGetIndexQuickly() handle arguments which would put everything
on the generic path. Unfortunately, that code is very performance sensitive and some benchmarks were
impacted by over 10%

I left JSObject::canGetIndexQuickly() alone, and I added the canUseFastArgumentAccess() mirroring
how DFG uses out-of-bounds for Arguments.

(JSC::getByVal):
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
* runtime/JSPromiseFunctions.cpp:
* tests/stress/get-by-val-out-of-bounds-basics.js: Added.
(opaqueGetByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(testIndexingTypeChangesOnInt32Array):
(opaqueGetByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):
(testIndexingTypeChangesOnStringArray):
(opaqueGetByValOnStringAndInt32ArrayHotOutOfBounds):
(testStringAndInt32ArrayHotOutOfBounds):
(opaqueGetByValOnDoubleArrayHotOutOfBounds):
* tests/stress/put-by-val-out-of-bounds-basics.js: Added.
(opaquePutByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(opaquePutByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):

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

4 years agoSimplify unboxing of double JSValues known to be not NaN and not Int32
fpizlo@apple.com [Fri, 5 Jun 2015 04:59:28 +0000 (04:59 +0000)]
Simplify unboxing of double JSValues known to be not NaN and not Int32
https://bugs.webkit.org/show_bug.cgi?id=145618

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:

In many cases we know that we most likely loaded a non-NaN double value from the heap.
Prior to this patch, we would do two branches before unboxing the double. This patch
reduces this to one branch in the common case. Before:

    if (is int32)
        unbox int32 and convert to double
    else if (is number)
        unbox double
    else
        exit

After:

    tmp = unbox double
    if (tmp == tmp)
        done
    else if (is int32)
        unbox int32 and convert to double
    else
        exit

We only use the new style if we have profiling that tells us that we are unlikely to see
either Int32 or NaN - since we will now exit on NaN and int32 requires an extra branch.

This is a 8% speed-up on Octane/box2d. On one microbenchmark this is a 25% speed-up.

Rolling this back in after I made DFG::SpeculativeJIT call a new version of unboxDouble()
that doesn't assert that the JSValue is a double, since we are intentionally using it
before doing the "is a double" test. This wasn't a problem on 32-bit since unboxDouble()
does no such assertion on 32-bit.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
* dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateDoubleReal):
(JSC::DFG::Node::shouldSpeculateNumber):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal): Deleted.
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGUseKind.cpp:
(WTF::printInternal):
* dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::boxDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepReal):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal): Deleted.
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):

LayoutTests:

* js/regress/double-real-use-expected.txt: Added.
* js/regress/double-real-use.html: Added.
* js/regress/script-tests/double-real-use.js: Added.
(foo):

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

4 years agoPurge PassRefPtr create() factory functions in WebCore/css
commit-queue@webkit.org [Fri, 5 Jun 2015 04:46:17 +0000 (04:46 +0000)]
Purge PassRefPtr create() factory functions in WebCore/css
https://bugs.webkit.org/show_bug.cgi?id=144905

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-06-04
Reviewed by Darin Adler.

Return Ref instead of PassRefPtr in create() factory functions in css,
because the factory can't return null.

No new tests, no new behaviours.

* css/BasicShapeFunctions.cpp:
(WebCore::valueForCenterCoordinate):
(WebCore::basicShapeRadiusToCSSValue):
(WebCore::valueForBasicShape):
* css/BasicShapeFunctions.h:
* css/CSSBasicShapes.h:
* css/CSSCalculationValue.cpp:
(WebCore::createCSS):
(WebCore::CSSCalcValue::create):
* css/CSSCalculationValue.h:
* css/CSSCharsetRule.h:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForNinePieceImageSlice):
(WebCore::valueForNinePieceImageQuad):
(WebCore::zoomAdjustedPixelValue):
(WebCore::zoomAdjustedNumberValue):
(WebCore::zoomAdjustedPixelValueForLength):
(WebCore::valueForReflection):
(WebCore::createPositionListForLayer):
(WebCore::positionOffsetValue):
(WebCore::percentageOrZoomAdjustedValue):
(WebCore::autoOrZoomAdjustedValue):
(WebCore::getBorderRadiusCornerValues):
(WebCore::getBorderRadiusCornerValue):
(WebCore::getBorderRadiusShorthandValue):
(WebCore::matrixTransformValue):
(WebCore::computedTransform):
(WebCore::adjustLengthForZoom):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::valueForFilter):
(WebCore::specifiedValueForGridTrackBreadth):
(WebCore::specifiedValueForGridTrackSize):
(WebCore::valueForGridTrackList):
(WebCore::scrollSnapDestination):
(WebCore::scrollSnapPoints):
(WebCore::scrollSnapCoordinates):
(WebCore::createAnimationTriggerValue):
(WebCore::getAnimationTriggerValue):
(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
(WebCore::fillSizeToCSSValue):
(WebCore::lineHeightFromStyle):
(WebCore::fontSizeFromStyle):
(WebCore::zoomAdjustedPaddingOrMarginPixelValue):
(WebCore::shapePropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSComputedStyleDeclaration.h:
* css/CSSFontFace.h:
(WebCore::CSSFontFace::create):
* css/CSSFontFaceLoadEvent.h:
* css/CSSFontFaceRule.h:
* css/CSSGrammar.y.in:
* css/CSSGridLineNamesValue.cpp:
(WebCore::CSSGridLineNamesValue::cloneForCSSOM):
* css/CSSGridLineNamesValue.h:
(WebCore::CSSGridLineNamesValue::create):
* css/CSSImportRule.h:
* css/CSSKeyframeRule.h:
(WebCore::StyleKeyframe::create):
* css/CSSKeyframesRule.h:
* css/CSSMediaRule.h:
* css/CSSPageRule.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseDashboardRegions):
(WebCore::CSSParser::parseClipShape):
(WebCore::CSSParser::parseBasicShape):
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
(WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
* css/CSSParser.h:
(WebCore::CSSParser::ValueWithCalculation::calculation):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::create):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSPropertySourceData.h:
(WebCore::CSSStyleSourceData::create):
(WebCore::CSSRuleSourceData::create):
(WebCore::CSSRuleSourceData::createUnknown):
* css/CSSRuleList.h:
* css/CSSSegmentedFontFace.h:
(WebCore::CSSSegmentedFontFace::create):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::createRareData):
* css/CSSSelector.h:
(WebCore::CSSSelector::RareData::create):
* css/CSSStyleRule.h:
* css/CSSSupportsRule.h:
* css/CSSValuePool.h:
(WebCore::CSSValuePool::createValue):
* css/FontLoader.cpp:
(WebCore::LoadFontCallback::create):
* css/LengthRepeat.h:
(WebCore::LengthRepeat::create):
(WebCore::LengthRepeat::cloneForCSSOM):
* css/MediaList.h:
(WebCore::MediaQuerySet::create):
(WebCore::MediaQuerySet::createAllowingDescriptionSyntax):
(WebCore::MediaList::create):
* css/MediaQueryList.cpp:
(WebCore::MediaQueryList::create):
* css/MediaQueryList.h:
* css/MediaQueryMatcher.h:
(WebCore::MediaQueryMatcher::create):
* css/Pair.h:
(WebCore::Pair::create):
* css/Rect.h:
(WebCore::Rect::create):
(WebCore::Rect::cloneForCSSOM):
(WebCore::Quad::create):
(WebCore::Quad::cloneForCSSOM):
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::paintOrder):
(WebCore::ComputedStyleExtractor::svgPropertyValue):
* css/StyleMedia.h:
(WebCore::StyleMedia::create):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::keyframeStylesForAnimation):
* css/StyleSheetList.h:
(WebCore::StyleSheetList::create):
* css/ViewportStyleResolver.h:
(WebCore::ViewportStyleResolver::create):
* css/WebKitCSSMatrix.h:
* css/WebKitCSSRegionRule.h:
* css/WebKitCSSViewportRule.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilter):
* rendering/style/RenderStyle.h:
(WebCore::adjustFloatForAbsoluteZoom):
* rendering/style/StyleInheritedData.h:

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

4 years agoWeb Inspector: Class constructor appearing as Object Tree property does not include...
commit-queue@webkit.org [Fri, 5 Jun 2015 04:33:34 +0000 (04:33 +0000)]
Web Inspector: Class constructor appearing as Object Tree property does not include parameters
https://bugs.webkit.org/show_bug.cgi?id=145661

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

Source/JavaScriptCore:

* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._classPreview):
(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
The string we will return for previews of class constructor functions.

(InjectedScript.RemoteObject):
(InjectedScript.RemoteObject.prototype._describe):
No longer return the class name as the description string.
Instead return the class name for the RemoteObject.className.

Source/WebInspectorUI:

* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get functionDescription):
Include the className as only use it for "class" types to override
the normal description string. Stash the actual function description
in a property we can access later.

* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
Even if this property is a "class" we want to specifically parse it's
function description string. So use functionDescription.

LayoutTests:

* inspector/model/remote-object-expected.txt:
* inspector/model/remote-object.html:
Update expected results and test we get expected values for class constructors.

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

4 years agoWeb Inspector: Close and open tabs on mouseup, not mousedown
nvasilyev@apple.com [Fri, 5 Jun 2015 04:31:18 +0000 (04:31 +0000)]
Web Inspector: Close and open tabs on mouseup, not mousedown
https://bugs.webkit.org/show_bug.cgi?id=145656

Match Safari's behaviour.

Reviewed by Timothy Hatcher.

* UserInterface/Views/TabBar.js:
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.set newTabItem):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleClick): Added.
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleNewTabClick): Added.
(WebInspector.TabBar.prototype._handleMouseMoved):

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

4 years agoThe last 2 merged DFAs are not minimized by DFACombiner
benjamin@webkit.org [Fri, 5 Jun 2015 03:37:35 +0000 (03:37 +0000)]
The last 2 merged DFAs are not minimized by DFACombiner

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04

* contentextensions/DFACombiner.cpp:
(WebCore::ContentExtensions::DFACombiner::combineDFAs):
I introduced a bug when I made minimization conditional: the last merge
does not minimize if we do not reach the minimum size.

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

4 years agoLatching algorithm in findEnclosingOverflowScroll is broken
bfulgham@apple.com [Fri, 5 Jun 2015 01:35:40 +0000 (01:35 +0000)]
Latching algorithm in findEnclosingOverflowScroll is broken
https://bugs.webkit.org/show_bug.cgi?id=145642
<rdar://problem/21242308>

Reviewed by Simon Fraser.

Source/WebCore:

Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html

* page/mac/EventHandlerMac.mm:
(WebCore::scrollableAreaForBox): Added helper function.
(WebCore::findEnclosingScrollableContainer): Renamed from findEnclosingOverflowScroll.
Only identify something as our scroll element if it can be scrolled in either
axis of the gesture's motion.
(WebCore::scrollableAreaForContainerNode): Use new helper function.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use new function
name, and pass horizontal and vertical deltas.
(WebCore::findEnclosingOverflowScroll): Deleted.

LayoutTests:

Revise the new latching test to remove the image "max-width: 100%" style, which was
preventing this example from having a horizontal scrollable region at the top of the
file.

It still correctly tests the subpixel bug from Bug 145637.

* platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Remove width
adjustment on image.

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

4 years agoREGRESSION(r185091): Crash happens on indexdb tests
gyuyoung.kim@webkit.org [Fri, 5 Jun 2015 01:32:21 +0000 (01:32 +0000)]
REGRESSION(r185091): Crash happens on indexdb tests
https://bugs.webkit.org/show_bug.cgi?id=145549

Reviewed by Darin Adler.

Source/WebCore:

* Modules/indexeddb/IDBDatabaseError.h:
(WebCore::IDBDatabaseError::create): Revert Ref usage of IDBDatabaseError::create().

Source/WebKit2:

* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Remove leakRef() use.
(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):

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

4 years agoCrash in EventDispatcher::dispatchEvent entering a location on Google Maps
simon.fraser@apple.com [Fri, 5 Jun 2015 01:23:56 +0000 (01:23 +0000)]
Crash in EventDispatcher::dispatchEvent entering a location on Google Maps
https://bugs.webkit.org/show_bug.cgi?id=145677
rdar://problem/20698280

Reviewed by Dean Jackson.

If a transition is running on a pseudo-element, and the host element is removed
from the DOM just as the transition ends, and there is a transition event listener,
then we'd crash with a null dereference in event dispatch code.

AnimationController tries to clean up running animations when renderers are destroyed,
but omitted to remove the element from two vectors that store element references.
Elements are only added to these vectors briefly on animation end, before firing
events, but failure to remove the vector entries could result in attempting
to fire an event on a pseudo-element with no host element.

Also convert EventDispatcher code to be more robust to potentially null event
targets, since it's not clear that eventTargetRespectingTargetRules() can always
manage to return a non-null node.

Hard to make a test because this is timing sensitive.

* dom/EventDispatcher.cpp:
(WebCore::eventTargetRespectingTargetRules):
(WebCore::EventDispatcher::dispatchScopedEvent):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventPath::EventPath):
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::clear):

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

4 years agoReplace 0 with nullptr in WebCore/Page.
commit-queue@webkit.org [Fri, 5 Jun 2015 01:07:51 +0000 (01:07 +0000)]
Replace 0 with nullptr in WebCore/Page.
https://bugs.webkit.org/show_bug.cgi?id=145631

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

No new tests, no behavior changes.

* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::AutoscrollController):
(WebCore::AutoscrollController::stopAutoscrollTimer):
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::parseSource):
* page/ContentSecurityPolicy.h:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::clearContextMenu):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::clearTreeScope):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::resetDOMWindowProperties):
(WebCore::DOMWindow::localStorage):
(WebCore::DOMWindow::focus):
* page/DOMWindow.h:
* page/DOMWindowExtension.cpp:
(WebCore::DOMWindowExtension::reconnectFrameFromPageCache):
(WebCore::DOMWindowExtension::willDestroyGlobalObjectInCachedFrame):
* page/DOMWindowProperty.cpp:
(WebCore::DOMWindowProperty::DOMWindowProperty):
(WebCore::DOMWindowProperty::~DOMWindowProperty):
(WebCore::DOMWindowProperty::disconnectFrameForPageCache):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame):
* page/DragController.cpp:
(WebCore::DragController::dragEnded):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::resizeLayerDestroyed):
(WebCore::EventHandler::freeDataTransfer):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):
* page/EventHandler.h:
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
* page/Frame.cpp:
(WebCore::Frame::~Frame):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::willDetachPage):
(WebCore::Frame::createView):
* page/Frame.h:
(WebCore::Frame::detachFromPage):
* page/FrameDestructionObserver.cpp:
(WebCore::FrameDestructionObserver::FrameDestructionObserver):
(WebCore::FrameDestructionObserver::~FrameDestructionObserver):
(WebCore::FrameDestructionObserver::frameDestroyed):
* page/FrameTree.cpp:
(WebCore::FrameTree::~FrameTree):
(WebCore::FrameTree::removeChild):
* page/FrameTree.h:
(WebCore::FrameTree::FrameTree):
(WebCore::FrameTree::detachFromParent):
* page/History.cpp:
(WebCore::History::History):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::findStringMatchingRanges):
* page/PageGroup.cpp:
* page/Performance.cpp:
(WebCore::Performance::Performance):
* page/PointerLockController.cpp:
(WebCore::PointerLockController::didLosePointerLock):
(WebCore::PointerLockController::clearElement):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessDatabase):
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/SpatialNavigation.cpp:
(WebCore::FocusCandidate::FocusCandidate):
* page/SpatialNavigation.h:
(WebCore::FocusCandidate::FocusCandidate):
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::ScrollingTreeNode):
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):

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

4 years agoCombine tiny DFAs into slightly larger ones
benjamin@webkit.org [Fri, 5 Jun 2015 01:01:59 +0000 (01:01 +0000)]
Combine tiny DFAs into slightly larger ones
https://bugs.webkit.org/show_bug.cgi?id=145572

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
Reviewed by Alex Christensen.

Source/WebCore:

This patch changes the ContentExtensions compiler to combine tiny DFA
until they reach a minimum size.

The main tool introduced here is DFAMerger. It combines 2 DFAs into
a single DFA that represent the union of the two machines.
That is done by a simple subset construction on the "name" of the nodes
in each DFAs.

Since we only merge 2 machines, and they are both deterministic, we know that
we can only be in one state of each machine, or a state in one machine without
equivalent in the other machine.
We exploit that to identify the mapping between nodes. To identify a node in
the new machine from nodes in the original machines, we just concatenate the node
IDs into a single 64 bits number. If there is no node in one of the machine, we
use a special tag.

The current algorithm does not have any subgraph pruning, machines grow very very
quickly. Because of that, we only merge very small DFAs at the moment.

Test: http/tests/contentextensions/filters-with-quantifiers-combined.html

* WebCore.xcodeproj/project.pbxproj:
* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionsDebugging.h:
* contentextensions/DFA.cpp:
(WebCore::ContentExtensions::DFA::graphSize):
(WebCore::ContentExtensions::DFA::debugPrintDot):
* contentextensions/DFA.h:
* contentextensions/DFACombiner.cpp: Added.
(WebCore::ContentExtensions::DFAMerger::DFAMerger):
(WebCore::ContentExtensions::DFAMerger::merge):
(WebCore::ContentExtensions::DFAMerger::signatureForIndices):
(WebCore::ContentExtensions::DFAMerger::extractIndexA):
(WebCore::ContentExtensions::DFAMerger::extractIndexB):
(WebCore::ContentExtensions::DFAMerger::getOrCreateCombinedNode):
(WebCore::ContentExtensions::DFAMerger::setHalfSignature):
(WebCore::ContentExtensions::DFAMerger::populateTransitions):
(WebCore::ContentExtensions::DFAMerger::populateFromFallbackTransitions):
(WebCore::ContentExtensions::DFAMerger::createTransitions):
(WebCore::ContentExtensions::DFAMerger::createFallbackTransitionIfNeeded):
(WebCore::ContentExtensions::DFACombiner::combineDFAs):
* contentextensions/DFACombiner.h: Copied from Source/WebCore/contentextensions/DFA.h.
(WebCore::ContentExtensions::DFACombiner::addDFA):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/DFACombiner.cpp: Added.
(TestWebKitAPI::DFACombinerTest::SetUp):
(TestWebKitAPI::combine):
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/DFAHelpers.h: Copied from Source/WebCore/contentextensions/DFA.h.
(TestWebKitAPI::countLiveNodes):
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):
* TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:
(TestWebKitAPI::countLiveNodes): Deleted.
(TestWebKitAPI::createNFAs): Deleted.
(TestWebKitAPI::buildDFAFromPatterns): Deleted.

LayoutTests:

* http/tests/contentextensions/filters-with-quantifiers-combined-expected.txt: Added.
* http/tests/contentextensions/filters-with-quantifiers-combined.html: Added.
* http/tests/contentextensions/filters-with-quantifiers-combined.html.json: Added.

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