WebKit-https.git
4 years agoMake Gamepads be a WK2 ExperimentalFeature.
beidson@apple.com [Fri, 12 Aug 2016 00:35:18 +0000 (00:35 +0000)]
Make Gamepads be a WK2 ExperimentalFeature.
https://bugs.webkit.org/show_bug.cgi?id=160788

Reviewed by Alex Christensen.

* Shared/WebPreferencesDefinitions.h:

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

4 years agoDon't use a NetworkingContext when creating SocketStreamHandles
commit-queue@webkit.org [Fri, 12 Aug 2016 00:34:22 +0000 (00:34 +0000)]
Don't use a NetworkingContext when creating SocketStreamHandles
https://bugs.webkit.org/show_bug.cgi?id=160732

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-11
Reviewed by Brady Eidson.

Source/WebCore:

No change in behavior.  After r204327 a SessionID is all we need to get the NetworkStorageSession,
and we pass the SessionID to the SocketStreamHandle constructor, so use that instead.
SessionIDs can be serialized and sent over IPC.  NetworkingContexts can't.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::connect):
* page/SocketProvider.cpp:
(WebCore::SocketProvider::createSocketStreamHandle):
* page/SocketProvider.h:
* platform/network/cf/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::create):
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::getStoredCONNECTProxyCredentials):
* platform/network/curl/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::create):
* platform/network/soup/SocketStreamHandle.h:
* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::create):

Source/WebKit2:

* WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::createSocketStreamHandle):
* WebProcess/Network/WebSocketProvider.h:

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

4 years agoUse StringBuilder::appendLiteral when possible don't append result of makeString
commit-queue@webkit.org [Fri, 12 Aug 2016 00:33:47 +0000 (00:33 +0000)]
Use StringBuilder::appendLiteral when possible don't append result of makeString
https://bugs.webkit.org/show_bug.cgi?id=160772

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-11
Reviewed by Sam Weinig.

Source/JavaScriptCore:

* API/tests/ExecutionTimeLimitTest.cpp:
(testExecutionTimeLimit):
* API/tests/PingPongStackOverflowTest.cpp:
(PingPongStackOverflowObject_hasInstance):
* bytecompiler/NodesCodegen.cpp:
(JSC::ArrayPatternNode::toString):
(JSC::RestParameterNode::toString):
* runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::sanitizedToString):
* runtime/Options.cpp:
(JSC::Options::dumpOption):

Source/WebCore:

StringBuilder::append does an unnecessary strlen call.
append(makeString(...)) always does unnecessary allocations and copies.
It's currently only used in debug logging, but we shouldn't have this pattern in WebKit.

* Modules/indexeddb/server/IndexValueStore.cpp:
(WebCore::IDBServer::IndexValueStore::loggingString):
* Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
(WebCore::IDBDatabaseInfo::loggingString):
* Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
(WebCore::IDBObjectStoreInfo::loggingString):
* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::prefixTreeVertexToString):
(WebCore::ContentExtensions::recursivePrint):
* html/HTMLMediaElement.cpp:
(WebCore::actionName):
* html/MediaElementSession.cpp:
(WebCore::restrictionName):
* loader/ResourceLoadStatistics.cpp:
(WebCore::appendBoolean):
(WebCore::appendHashCountedSet):
(WebCore::ResourceLoadStatistics::toString):
* platform/PODInterval.h:
(WebCore::PODInterval::toString):
* platform/URL.cpp:
(WebCore::URL::setHost):
(WebCore::URL::setHostAndPort):
(WebCore::URL::serialize):
* testing/Internals.cpp:
(WebCore::appendOffsets):
(WebCore::Internals::scrollSnapOffsets):

Source/WebKit2:

* Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::isNull):
(WebKit::GamepadData::loggingString):
* Shared/Gamepad/GamepadData.h:
* UIProcess/WebProcessPool.h:

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

4 years ago[JSC] Revert most of r203808
commit-queue@webkit.org [Fri, 12 Aug 2016 00:22:20 +0000 (00:22 +0000)]
[JSC] Revert most of r203808
https://bugs.webkit.org/show_bug.cgi?id=160784

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-11
Reviewed by Geoffrey Garen.

Switching to fastMalloc() caused regressions on Jetstream and Octane
on MacBook Air. I was able to get back some of it in the following
patches but the tests that never go to FTL are still regressed.

This patch revert r203808 except of the node index.
Nodes are allocated with the custom allocator like before but they are
now also kept in a table, addressed by the node index.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/B3SparseCollection.h:
(JSC::B3::SparseCollection::packIndices): Deleted.
* dfg/DFGAllocator.h: Added.
(JSC::DFG::Allocator::Region::size):
(JSC::DFG::Allocator::Region::headerSize):
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion):
(JSC::DFG::Allocator::Region::data):
(JSC::DFG::Allocator::Region::isInThisRegion):
(JSC::DFG::Allocator::Region::regionFor):
(JSC::DFG::Allocator<T>::Allocator):
(JSC::DFG::Allocator<T>::~Allocator):
(JSC::DFG::Allocator<T>::allocate):
(JSC::DFG::Allocator<T>::free):
(JSC::DFG::Allocator<T>::freeAll):
(JSC::DFG::Allocator<T>::reset):
(JSC::DFG::Allocator<T>::indexOf):
(JSC::DFG::Allocator<T>::allocatorOf):
(JSC::DFG::Allocator<T>::bumpAllocate):
(JSC::DFG::Allocator<T>::freeListAllocate):
(JSC::DFG::Allocator<T>::allocateSlow):
(JSC::DFG::Allocator<T>::freeRegionsStartingAt):
(JSC::DFG::Allocator<T>::startBumpingIn):
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::~Graph):
(JSC::DFG::Graph::addNodeToMapByIndex):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::packNodeIndices):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::addNode):
(JSC::DFG::Graph::maxNodeCount):
(JSC::DFG::Graph::nodeAt):
* dfg/DFGLongLivedState.cpp: Added.
(JSC::DFG::LongLivedState::LongLivedState):
(JSC::DFG::LongLivedState::~LongLivedState):
(JSC::DFG::LongLivedState::shrinkToFit):
* dfg/DFGLongLivedState.h: Added.
* dfg/DFGNode.h:
* dfg/DFGNodeAllocator.h: Added.
(operator new ):
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGPlan.h:
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::runThread):
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:

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

4 years agoMarking transitions/clip-path-transitions.html and transitions/clip-path-path-transit...
ryanhaddad@apple.com [Fri, 12 Aug 2016 00:08:50 +0000 (00:08 +0000)]
Marking transitions/clip-path-transitions.html and transitions/clip-path-path-transitions.html as flaky on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=153809

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

4 years agoREGRESSION (r204264): Web Inspector: Uncaught Exception in Network tab when reloading...
nvasilyev@apple.com [Fri, 12 Aug 2016 00:05:09 +0000 (00:05 +0000)]
REGRESSION (r204264): Web Inspector: Uncaught Exception in Network tab when reloading a web page
https://bugs.webkit.org/show_bug.cgi?id=160781
<rdar://problem/27810452>

Reviewed by Matt Baker.

WebInspector.TimelineDataGrid.prototype.closed was removed in r204264.
Define a stub method on DataGrid so it's available to all its subclasses.

* UserInterface/Views/DataGrid.js:
this._dataGrid.closed()

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

4 years agoAlign Range.surroundContents() with the latest DOM specification
cdumez@apple.com [Thu, 11 Aug 2016 22:27:17 +0000 (22:27 +0000)]
Align Range.surroundContents() with the latest DOM specification
https://bugs.webkit.org/show_bug.cgi?id=160777

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that all checks are passing.

* web-platform-tests/dom/ranges/Range-surroundContents-expected.txt:

Source/WebCore:

Align Range.surroundContents() with the latest DOM specification:
- https://dom.spec.whatwg.org/#dom-range-surroundcontents

In particular, the following changes were made:
1. Drop early check to see if startContainer() accepts children like
   newParent. This check is not in the specification. Let the later
   call to Range.insertNode() take care of doing the check and
   throwing.
2. Drop early check to see if newParent contains the range's start
   node, for the same reasons as above.
3. Move extractContents() call *before* removing newParent's children
   to match the order in the specification (steps 3 & 4).

This makes our behavior much closer to Firefox's as well.

No new tests, rebaselined existing W3C test.

* dom/Range.cpp:
(WebCore::Range::surroundContents):

LayoutTests:

Rebaseline existing due to behavior change.

* fast/dom/Range/surroundContents-1-expected.txt:
* fast/dom/Range/surroundContents-1.html:

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

4 years agoKeep EWS logs for longer
aakash_jain@apple.com [Thu, 11 Aug 2016 21:25:08 +0000 (21:25 +0000)]
Keep EWS logs for longer
https://bugs.webkit.org/show_bug.cgi?id=160776

Reviewed by Daniel Bates.

* EWSTools/start-queue-mac.sh: Keep logs for 30 days instead of 14 days.

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

4 years agoThe jsc shell's Element host constructor should throw if it fails to construct an...
mark.lam@apple.com [Thu, 11 Aug 2016 21:21:55 +0000 (21:21 +0000)]
The jsc shell's Element host constructor should throw if it fails to construct an object.
https://bugs.webkit.org/show_bug.cgi?id=160773
<rdar://problem/27328608>

Reviewed by Saam Barati.

JSTests:

* stress/generational-opaque-roots.js:

Source/JavaScriptCore:

The Element object is a test object provided in the jsc shell for testing use only.
JavaScriptCore expects host constructors to either throw an error or return a
constructed object.  Element has a host constructor that did not obey this contract.
As a result, the following statement will fail a RELEASE_ASSERT:

    new (Element.bind())

This is now fixed.

* jsc.cpp:
(functionCreateElement):

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

4 years agoDisallow synchronous sweeping for eden GCs.
mark.lam@apple.com [Thu, 11 Aug 2016 21:18:14 +0000 (21:18 +0000)]
Disallow synchronous sweeping for eden GCs.
https://bugs.webkit.org/show_bug.cgi?id=160716

Reviewed by Geoffrey Garen.

JSTests:

* stress/eden-gc-with-retired-blocks.js: Added.
- This test is just in case we add back support for eden GCs with synchronous
  sweeping in the future.

Source/JavaScriptCore:

* heap/Heap.cpp:
(JSC::Heap::collectAllGarbage):
(JSC::Heap::collectAndSweep): Deleted.
* heap/Heap.h:
(JSC::Heap::collectAllGarbage): Deleted.
- No need for a separate collectAndSweep() anymore since we only call it for
  FullCollections.
- Since we've already swept all the blocks, I cleared m_blockSnapshot so that the
  IncrementalSweeper can bail earlier when it runs later.

* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::sweepHelper):
- Removed the unreachable return statement.

* heap/MarkedBlock.h:
- Document what "Retired" means.

* tools/JSDollarVMPrototype.cpp:
(JSC::JSDollarVMPrototype::edenGC):

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

4 years agoiOS DRT/WTR project cleanup
simon.fraser@apple.com [Thu, 11 Aug 2016 21:17:44 +0000 (21:17 +0000)]
iOS DRT/WTR project cleanup
https://bugs.webkit.org/show_bug.cgi?id=160778

Reviewed by Tim Horton.

Move TARGETED_DEVICE_FAMILY from the project to an xcconfig file.

Remove AppDelegate.* which were unused.

Exclude ios/Launch.storyboard on more platforms.

* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
* WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.h: Removed.
* WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.m: Removed.
(-[AppDelegate application:didFinishLaunchingWithOptions:]): Deleted.

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

4 years agoRebaseline more iOS tests after r204363.
ryanhaddad@apple.com [Thu, 11 Aug 2016 20:49:32 +0000 (20:49 +0000)]
Rebaseline more iOS tests after r204363.

Unreviewed test gardening.

* fast/events/ios/keyboard-scrolling-distance-expected.txt:
* fast/events/ios/keyboard-should-not-trigger-resize-expected.txt:
* fast/forms/ios/accessory-bar-navigation-expected.txt:
* fast/forms/ios/focus-input-in-fixed-expected.txt:
* fast/forms/ios/focus-input-in-iframe-expected.txt:
* fast/forms/ios/focus-input-via-button-expected.txt:
* fast/forms/ios/focus-input-via-button-ipad-expected.txt:
* fast/forms/ios/focus-input-via-button-no-scaling-expected.txt:
* fast/forms/ios/focus-long-textarea-expected.txt:
* fast/forms/ios/zoom-after-input-tap-expected.txt:
* fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt:

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

4 years agoFix Yosemite bots' cookie accept policies after r204365.
achristensen@apple.com [Thu, 11 Aug 2016 20:21:25 +0000 (20:21 +0000)]
Fix Yosemite bots' cookie accept policies after r204365.
https://bugs.webkit.org/show_bug.cgi?id=160758

* TestWebKitAPI/Tests/WebKit2Cocoa/CookieAcceptPolicy.mm:
(TEST):
This makes the test fully clean up after itself.

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

4 years agoFix Yosemite bots' cookie accept policies after r204365.
achristensen@apple.com [Thu, 11 Aug 2016 20:20:05 +0000 (20:20 +0000)]
Fix Yosemite bots' cookie accept policies after r204365.
https://bugs.webkit.org/show_bug.cgi?id=160758

* TestWebKitAPI/Tests/WebKit2Cocoa/CookieAcceptPolicy.mm:
(TEST):
I didn't restore the cookieAcceptPolicy of the sharedHTTPCookieStorage after changing it with this API test.
On Yosemite, this is changing the cookieAcceptPolicy that DumpRenderTree uses.
On more recent Cocoa platforms, it is only changing the cookieAcceptPolicy that TestWebKitAPI uses, which isn't
causing any problems because there are no other API tests that do anything with cookies.
My solution will be to restore the original cookieAcceptPolicy after running this API test to clean up,
but first I am committing this patch setting the cookieAcceptPolicy to NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain
to reset any bots that have run tests since r204365.  I will commit a followup that sets it to originalCookieAcceptPolicy.

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

4 years agoEWS should check if the patch is still valid before executing every major step
aakash_jain@apple.com [Thu, 11 Aug 2016 19:45:13 +0000 (19:45 +0000)]
EWS should check if the patch is still valid before executing every major step
https://bugs.webkit.org/show_bug.cgi?id=160739
rdar://problem/27768813

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/tool/bot/commitqueuetask.py:
(CommitQueueTask.run): validate method is now executed in base class.
* Scripts/webkitpy/tool/bot/earlywarningsystemtask.py:
(EarlyWarningSystemTask.run): validate method is now executed in base class.
* Scripts/webkitpy/tool/bot/stylequeuetask.py:
(StyleQueueTask.validate): Raise an PatchIsNotValid exception instead of returning False.
* Scripts/webkitpy/tool/bot/patchanalysistask.py:
(PatchAnalysisTask._run_command): validate the patch before executing any command. This is to ensure
that we do not waste time on any patch which has become invalid (e.g.: obsolete, r-).
* Scripts/webkitpy/tool/commands/perfalizer.py:
(PerfalizerTask.validate): Added.
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(test_manual_reject_during_processing): Updated test case.

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

4 years agoRegression(r204268): Mail crashes when trying to compose an email
cdumez@apple.com [Thu, 11 Aug 2016 19:22:26 +0000 (19:22 +0000)]
Regression(r204268): Mail crashes when trying to compose an email
https://bugs.webkit.org/show_bug.cgi?id=160775

Reviewed by Anders Carlsson.

Properly initialize PageConfiguration.pluginInfoProvider in
[WebView initSimpleHTMLDocumentWithStyle] to avoid a null
dereference in Mail when trying to compose an email.

* WebView/WebView.mm:
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

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

4 years agoAdd URLParser stub
achristensen@apple.com [Thu, 11 Aug 2016 19:09:39 +0000 (19:09 +0000)]
Add URLParser stub
https://bugs.webkit.org/show_bug.cgi?id=160770

Reviewed by Sam Weinig.

Source/WebCore:

Added API test stub.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* platform/URL.h:
* platform/URLParser.cpp: Added.
(WebCore::URLParser::parse):
* platform/URLParser.h: Added.
(WebCore::URLParser::parse):

Tools:

* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/PlatformWin.cmake:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/URLParser.cpp: Added.
(TestWebKitAPI::TEST_F):

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

4 years agoAdd NSButtonType to AppKitCompatibilityDeclarations.h.
commit-queue@webkit.org [Thu, 11 Aug 2016 18:39:26 +0000 (18:39 +0000)]
Add NSButtonType to AppKitCompatibilityDeclarations.h.
https://bugs.webkit.org/show_bug.cgi?id=160767.

Patch by Maureen Daum <mdaum@apple.com> on 2016-08-11
Reviewed by Dan Bernstein.

Add NSButtonType to AppKitCompatibilityDeclarations.h so that we can use the new
names but still build successfully on older OS versions.

* wtf/mac/AppKitCompatibilityDeclarations.h:

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

4 years ago[iOS DRT] Allow DRT to be iPad-sized in the iPad simulator
simon.fraser@apple.com [Thu, 11 Aug 2016 18:14:05 +0000 (18:14 +0000)]
[iOS DRT] Allow DRT to be iPad-sized in the iPad simulator
https://bugs.webkit.org/show_bug.cgi?id=160761

Reviewed by Tim Horton.

Give iOS DRT a Launch storyboard.

Have it use a UIViewController so future forms testing works correctly.

Add TARGETED_DEVICE_FAMILY = "1,2" to the build settings for the .app, so that it
can run in iPad mode.

Remove empty InfoPlist.strings files.

* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* DumpRenderTree/ios/Info.plist:
* DumpRenderTree/ios/Launch.storyboard: Added.
* DumpRenderTree/mac/DumpRenderTree.mm:
(createWebViewAndOffscreenWindow):
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/WebKitTestRunnerApp/en.lproj/InfoPlist.strings: Removed.
* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::PlatformWebView): Drive-by leak fix.

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

4 years agoMove dataset attribute from Element to HTMLElement / SVGElement
cdumez@apple.com [Thu, 11 Aug 2016 17:48:57 +0000 (17:48 +0000)]
Move dataset attribute from Element to HTMLElement / SVGElement
https://bugs.webkit.org/show_bug.cgi?id=160766

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Move dataset attribute from Element to HTMLElement / SVGElement as per
the specifications:
- https://html.spec.whatwg.org/multipage/dom.html#htmlelement
- https://svgwg.org/svg2-draft/types.html#InterfaceSVGElement

Firefox and Chrome seem to have dataset on HTMLElement but not on
SVGElement (yet).

No new tests, rebaselined existing test.

* dom/Element.idl:
* html/HTMLElement.idl:
* svg/SVGElement.idl:

LayoutTests:

Rebaseline existing tests now that properties are in different order
when iterating.

* js/dom/dom-static-property-for-in-iteration-expected.txt:

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

4 years ago[Win] Unable to reliably run tests in parallel
pvollan@apple.com [Thu, 11 Aug 2016 17:42:27 +0000 (17:42 +0000)]
[Win] Unable to reliably run tests in parallel
https://bugs.webkit.org/show_bug.cgi?id=140914

Reviewed by Brent Fulgham.

The cygpath utility function can fail badly when running with multiple DumpRenderTree
processes. We can use string replacement to convert the Cygwin path to a Windows path
instead.

* Scripts/webkitpy/common/system/path.py:
(cygpathFast):
* Scripts/webkitpy/port/driver.py:
(Driver._command_from_driver_input):

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

4 years agoUnreviewed, update MediaRemoteSPI.h after r204082.
eric.carlson@apple.com [Thu, 11 Aug 2016 16:34:23 +0000 (16:34 +0000)]
Unreviewed, update MediaRemoteSPI.h after r204082.

* platform/spi/mac/MediaRemoteSPI.h:

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

4 years agoUnskip 2d.gradient.interpolate.colouralpha on macOS Sierra
commit-queue@webkit.org [Thu, 11 Aug 2016 13:55:02 +0000 (13:55 +0000)]
Unskip 2d.gradient.interpolate.colouralpha on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=160765
<rdar://problem/24025664>

Patch by Antoine Quint <graouts@apple.com> on 2016-08-11
Reviewed by Eric Carlson.

We fixed the tests in https://bugs.webkit.org/show_bug.cgi?id=160689 but forgot to unskip them.

* platform/mac/TestExpectations:

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

4 years ago[Win] Warning fix.
pvollan@apple.com [Thu, 11 Aug 2016 12:02:42 +0000 (12:02 +0000)]
[Win] Warning fix.
https://bugs.webkit.org/show_bug.cgi?id=160734

Reviewed by Sam Weinig.

Add static cast from int to uint32_t.

* bytecode/ArithProfile.h:

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

4 years ago[GTK] German translation update
clopez@igalia.com [Thu, 11 Aug 2016 11:26:52 +0000 (11:26 +0000)]
[GTK] German translation update
https://bugs.webkit.org/show_bug.cgi?id=152228

Rubber-Stamped by Michael Catanzaro.

Patch by Bernd Homuth <dev@hmt.im> on 2016-08-11

* de.po: Update to reviewed translation from 2016-08-05.

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

4 years agoTest 2d.gradient.interpolate.colouralpha.html is broken on macOS Sierra
commit-queue@webkit.org [Thu, 11 Aug 2016 10:22:06 +0000 (10:22 +0000)]
Test 2d.gradient.interpolate.colouralpha.html is broken on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=160689
<rdar://problem/24025664>

Patch by Antoine Quint <graouts@apple.com> on 2016-08-11
Reviewed by Dean Jackson.

When the test samples 25th pixel it expect the value to be exactly 25% interpolation of the color values.
However, the sampling location is the center of the pixel, i.e. it should correspond to 25.5% interpolation,
which would expect the color of (189.975, 189.75, 65.25, 65.25). The new values are a rounded values of
interpolation “by hand” at steps of 25.5%, 50.5% and 75.5%.

LayoutTests/imported/w3c:

* canvas/2d.gradient.interpolate.colouralpha.html:

LayoutTests:

* canvas/philip/tests/2d.gradient.interpolate.colouralpha.html:

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

4 years agoWeb Inspector: Should be able to Edit Node Attributes and Styles for non-UserAgent...
commit-queue@webkit.org [Thu, 11 Aug 2016 03:35:01 +0000 (03:35 +0000)]
Web Inspector: Should be able to Edit Node Attributes and Styles for non-UserAgent Shadow DOM nodes
https://bugs.webkit.org/show_bug.cgi?id=160762
<rdar://problem/27798271>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-10
Reviewed by Ryosuke Niwa.

Source/WebCore:

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::assertEditableNode):
(WebCore::InspectorDOMAgent::assertEditableElement):
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::addInspectedNode):
Allow editing shadow DOM nodes as long as they are not in a UserAgent shadow tree.

Source/WebInspectorUI:

* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode.prototype.isInUserAgentShadowTree):
(WebInspector.DOMNode.prototype.isShadowRoot):
(WebInspector.DOMNode.prototype.isUserAgentShadowRoot):
(WebInspector.DOMNode.prototype.ancestorShadowRoot):
(WebInspector.DOMNode.prototype.ancestorShadowHost):
Add methods for determining the shadow root, host, and easily
checking the type of shadow tree a node is in.

* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration.prototype.get editable):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.get editable):
(WebInspector.DOMTreeElement.prototype._startEditingTarget):
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
Allow editing shadow DOM nodes as long as they are not in a UserAgent shadow tree.

* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype._populateContextMenu):
Disallow "Log Element" on UserAgent shadow tree nodes.

LayoutTests:

* inspector/dom/shadowRootType-expected.txt:
* inspector/dom/shadowRootType.html:
Add tests for DOMNode.prototype.isInUserAgentShadowTree.

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

4 years agoPull in recent upstream web-platform-tests changes for dom/ and html/
cdumez@apple.com [Thu, 11 Aug 2016 03:26:55 +0000 (03:26 +0000)]
Pull in recent upstream web-platform-tests changes for dom/ and html/
https://bugs.webkit.org/show_bug.cgi?id=160759

Reviewed by Alex Christensen.

* web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
* web-platform-tests/dom/events/EventTarget-dispatchEvent.html:
* web-platform-tests/dom/nodes/Document-Element-getElementsByTagName.js:
(test_getElementsByTagName):
* web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
* web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:

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

4 years agoOptimization in Node.insertBefore() is not spec-compliant
cdumez@apple.com [Thu, 11 Aug 2016 02:21:42 +0000 (02:21 +0000)]
Optimization in Node.insertBefore() is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=160746

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in Node.insertBefore(newNode, refChild) to avoid
doing any work when newNode == refChild or newNode.nextSibling == refChild.

This optimization is not in the specification:
- https://dom.spec.whatwg.org/#concept-node-replace

The issue is that this optimization is observable with DOM mutation
observers / listeners or DOM ranges.

This patch addresses the issue by dropping the optimization. This case
does not seem common enough to be worth optimizing for. However, if it
turns out to regress the performance of things we care about, we could
fallback to doing the optimization only when it is not observable.

Test: fast/dom/Node/insertBefore-no-op-mutationobserver.html

* dom/ContainerNode.cpp:
(WebCore::checkAcceptChild):
Move refChild->parent() == parent check from insertBefore() to our
pre-insertion check function, right after checking if newNode contains
parent. This was done in order to match more closely the specification
and to make sure that exception are thrown in the correct order:
- https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity (steps 2 and 3)

(WebCore::ContainerNode::insertBefore):
1. Drop the (refChild->previousSibling() == &newChild || refChild == &newChild)
   optimization as it is not spc-compliant.
2. If refChild is newNode, then set refChild to newChild.nextSibling as per:
   - https://dom.spec.whatwg.org/#concept-node-pre-insert (step 3)

LayoutTests:

Add layout test to make sure mutation observers / listeners are always
notified when Node.insertBefore() is called.

* fast/dom/Node/insertBefore-no-op-mutationobserver-expected.txt: Added.
* fast/dom/Node/insertBefore-no-op-mutationobserver.html: Added.

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

4 years agoMove document.defineElement to customElements.define
rniwa@webkit.org [Thu, 11 Aug 2016 02:08:17 +0000 (02:08 +0000)]
Move document.defineElement to customElements.define
https://bugs.webkit.org/show_bug.cgi?id=160731

Reviewed by Chris Dumez.

Source/WebCore:

Replaced Document.prototype.defineElement by CustomElementsRegistry.prototype.define to match
the latest HTML specification: https://html.spec.whatwg.org/#custom-elements-api

This patch renames the existing CustomElementDefinitions to CustomElementsRegistry and exposes
it on window.customElements. CustomElementDefinitions is now owned by DOMWindow instead of
Document to match the spec's new semantics.

No new tests. The existing tests have been updated to reflect the change.

* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCustomElementsRegistryCustom.cpp: Added.
(WebCore::JSCustomElementsRegistry::define): Moved from JSDocumentCustom. Removed the check for
the existence of DOMWindow since CustomElementsRegistry is an attribute on DOMWindow itself.
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::defineElement): Deleted.
* bindings/js/JSHTMLElementCustom.cpp: Added the code to check the existence of DOMWindow since
the registry is associated with DOMWindow, not Document.
(WebCore::constructJSHTMLElement):
* dom/CustomElementsRegistry.cpp: Renamed from Source/WebCore/dom/CustomElementDefinitions.cpp.
(WebCore::CustomElementsRegistry::create): Added.
(WebCore::CustomElementsRegistry::CustomElementsRegistry): Added.
(WebCore::CustomElementsRegistry::~CustomElementsRegistry): Added.
(WebCore::CustomElementsRegistry::addElementDefinition): Moved from CustomElementDefinitions.
(WebCore::CustomElementsRegistry::addUpgradeCandidate): Ditto.
(WebCore::CustomElementsRegistry::findInterface): Ditto.
(WebCore::CustomElementsRegistry::containsConstructor): Ditto.
* dom/CustomElementsRegistry.h: Renamed from Source/WebCore/dom/CustomElementDefinitions.h.
* dom/CustomElementsRegistry.idl: Added.
* dom/Document.cpp:
(WebCore::createUpgradeCandidateElement): Extracted out of createHTMLElementWithNameValidation
and createFallbackHTMLElement to share code.
(WebCore::createHTMLElementWithNameValidation):
(WebCore::createFallbackHTMLElement): This function was missing a check for the runtime flag.
Sharing code with createHTMLElementWithNameValidation via createUpgradeCandidateElement fixes it.
(WebCore::Document::ensureCustomElementDefinitions): Deleted.
* dom/Document.h:
(WebCore::Document::customElementDefinitions): Deleted.
* dom/Document.idl:
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::ensureCustomElementsRegistry): Added. Moved from Document.
* page/DOMWindow.h:
* page/DOMWindow.idl: Added customElements on DOMWindow.

LayoutTests:

Updated the tests and their expected results to reflect the move of Document.prototype.defineElement to
CustomElementsRegistry.prototype.define. I'm going to rename tests in a follow up.

* fast/custom-elements/Document-createElement.html:
* fast/custom-elements/Document-defineElement-expected.txt:
* fast/custom-elements/Document-defineElement.html: Removed test cases for testing defining elements
in a viewless/windowless document since those documents don't have a corresponding window object.
* fast/custom-elements/HTMLElement-constructor.html:
* fast/custom-elements/attribute-changed-callback.html:
* fast/custom-elements/defined-pseudo-class.html:
* fast/custom-elements/defined-rule.html:
* fast/custom-elements/lifecycle-callback-timing.html:
* fast/custom-elements/parser/parser-constructs-custom-element-in-document-write.html:
* fast/custom-elements/parser/parser-constructs-custom-element-synchronously.html:
* fast/custom-elements/parser/parser-constructs-custom-elements-expected.txt:
* fast/custom-elements/parser/parser-constructs-custom-elements.html:
* fast/custom-elements/parser/parser-fallsback-to-unknown-element.html:
* fast/custom-elements/parser/parser-sets-attributes-and-children.html:
* fast/custom-elements/parser/parser-uses-constructed-element.html:
* fast/custom-elements/parser/parser-uses-registry-of-owner-document.html:
* fast/custom-elements/upgrading/Node-cloneNode.html:
* fast/custom-elements/upgrading/upgrading-parser-created-element.html:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:

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

4 years agoFix WinCairo build after r204327.
achristensen@apple.com [Thu, 11 Aug 2016 01:22:34 +0000 (01:22 +0000)]
Fix WinCairo build after r204327.

* platform/network/NetworkStorageSessionStub.cpp:
(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): Renamed from create...
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.

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

4 years agoFix crash when changing cookie accept policy after r204327
achristensen@apple.com [Thu, 11 Aug 2016 01:14:00 +0000 (01:14 +0000)]
Fix crash when changing cookie accept policy after r204327
https://bugs.webkit.org/show_bug.cgi?id=160758

Reviewed by Simon Fraser.

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/CookieAcceptPolicy.mm: Added.
(-[CookieAcceptPolicyMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/CookieMessage.html: Added.

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

4 years ago[iOS WK2] Have WebKitTestRunnerApp.app use a UIViewController, and fix to avoid the...
simon.fraser@apple.com [Thu, 11 Aug 2016 00:09:41 +0000 (00:09 +0000)]
[iOS WK2] Have WebKitTestRunnerApp.app use a UIViewController, and fix to avoid the status bar
https://bugs.webkit.org/show_bug.cgi?id=160757

Reviewed by Tim Horton.

When programmatically creating the test UIWindow, make a root UIViewController and parent
the WKWebView in its view. This makes the app more like a normal UIKit application.

Move the WKWebView down 20px to avoid the status bar.

Give the UIWindow a gray background so it's obvious where the window and view positioned.

Sorted the project file. Removed the link to UIKit which showed red, and wasn't necessary.

Remove duplicate references to Launch.storyboard.

* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.h: Add license.
* WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.m: Add license.
(-[AppDelegate applicationWillResignActive:]): Deleted.
(-[AppDelegate applicationDidEnterBackground:]): Deleted.
(-[AppDelegate applicationWillEnterForeground:]): Deleted.
(-[AppDelegate applicationDidBecomeActive:]): Deleted.
(-[AppDelegate applicationWillTerminate:]): Deleted.
* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::viewRectForWindowRect):
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::setWindowFrame):

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

4 years ago[iOS WK2] Use the simulated device's screen size, rather than a harcoded size
simon.fraser@apple.com [Thu, 11 Aug 2016 00:09:38 +0000 (00:09 +0000)]
[iOS WK2] Use the simulated device's screen size, rather than a harcoded size
https://bugs.webkit.org/show_bug.cgi?id=160748

Reviewed by Tim Horton.

Tools:

Use the main UIScreen's bounds for the window size if we're using a flexible viewport. This
opens the door for tests using other device sizes.

* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformConfigureViewForTest):

LayoutTests:

Move fast/viewport/ios skipping to ios-simulator-wk2/TestExpectations since the tests
are WK2-only.

* fast/viewport/ios/width-is-device-width-expected.txt:
* fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt:
* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-simulator/TestExpectations:
* platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt:
* platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
* platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
* platform/ios-simulator/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
* platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.txt:
* platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt: Removed.

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

4 years agoBaseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
msaboff@apple.com [Wed, 10 Aug 2016 23:45:05 +0000 (23:45 +0000)]
Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
https://bugs.webkit.org/show_bug.cgi?id=160749

Reviewed by Filip Pizlo.

JSTests:

New test that causes baseline GetByValWithCachedId and PutByValWithCachedId
stubs to be generated and then throws exceptions for those stub to handle
to verify that they are properly handled.

* stress/regress-160749.js: Added.
(testCachedGetByVal.):
(testCachedGetByVal.get for):
(testCachedGetByVal):
(testCachedPutByVal.):
(testCachedPutByVal.set for):
(testCachedPutByVal):

Source/JavaScriptCore:

We were emitting "callOperation()" calls in emitGetByValWithCachedId() and
emitPutByValWithCachedId() without linking the exception checks created by the
code emitted.  This manifested itself in various ways depending on the processor.
This is due to what the destination is for an unlinked branch.  On X86, an unlinked
branch goes tot he next instructions.  On ARM64, we end up with an infinite loop
as we branch to the same instruction.  On ARM we branch to 0 as the branch is to
an absolute address of 0.

Now we save the exception handler address for the original generated function and
link the exception cases for these by-val stubs to this handler.

* bytecode/ByValInfo.h:
(JSC::ByValInfo::ByValInfo): Added the address of the exception handler we should
link to.

* jit/JIT.cpp:
(JSC::JIT::link): Compute the linked exception handler address and pass it to
the ByValInfo constructor.
(JSC::JIT::privateCompileExceptionHandlers): Make sure that we generate the
exception handler if we have any by-val handlers.

* jit/JIT.h:
Added a label for the exception handler.  We'll link this later for the
by value handlers.

* jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
Link exception branches to the exception handler for the main function.

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

4 years agoAX: Media controls timeline should have percentage value description
n_wang@apple.com [Wed, 10 Aug 2016 23:30:24 +0000 (23:30 +0000)]
AX: Media controls timeline should have percentage value description
https://bugs.webkit.org/show_bug.cgi?id=160619

Reviewed by Eric Carlson.

Source/WebCore:

Added aria-valuetext attribute to the timeline slider and set its value to
the percentage format. Also formatted the elapsed/remaining timer's description
so that it's more human readable.

Test: http/tests/media/hls/video-duration-accessibility.html

* English.lproj/mediaControlsLocalizedStrings.js:
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.drawVolumeBackground):
(Controller.prototype.formatTimeDescription):
(Controller.prototype.formatTime):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):

LayoutTests:

* http/tests/media/hls/video-duration-accessibility-expected.txt: Added.
* http/tests/media/hls/video-duration-accessibility.html: Added.
* http/tests/media/resources/hls/generate-vod.php: Added.
* media/media-controls-accessibility-expected.txt:
* platform/efl/accessibility/media-element-expected.txt:
* platform/gtk/accessibility/media-element-expected.txt:
* platform/mac/accessibility/media-element-expected.txt:

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

4 years agoDFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
mark.lam@apple.com [Wed, 10 Aug 2016 23:19:49 +0000 (23:19 +0000)]
DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
https://bugs.webkit.org/show_bug.cgi?id=160755
<rdar://problem/27488507>

Reviewed by Filip Pizlo.

JSTests:

* stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.

Source/JavaScriptCore:

If the DFG sees that an inlined function will result in an OSR exit every time,
it will treat all downstream blocks as dead.  However, it still needs to keep
locals that are alive in the bytecode alive for the compiled function so that
those locals are properly written to the stack by the OSR exit ramp.

The existing code neglected to do this.  This patch remedies this issue.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::flushDirect):
(JSC::DFG::ByteCodeParser::addFlushOrPhantomLocal):
(JSC::DFG::ByteCodeParser::phantomLocalDirect):
(JSC::DFG::ByteCodeParser::flushForTerminal):

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

4 years agoRevert back to the old style member function state machine for callbacks
andersca@apple.com [Wed, 10 Aug 2016 22:37:47 +0000 (22:37 +0000)]
Revert back to the old style member function state machine for callbacks
https://bugs.webkit.org/show_bug.cgi?id=160756

Reviewed by Tim Horton.

This is another step towards merging SQLTransactionBackend and SQLTransaction,
and using a single state machine for both sides.

* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::performPendingCallback):
(WebCore::SQLTransaction::checkAndHandleClosedDatabase):
(WebCore::SQLTransaction::scheduleCallback):
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::runCurrentStatement):
(WebCore::SQLTransaction::handleCurrentStatementError):
(WebCore::SQLTransaction::handleTransactionError):
(WebCore::SQLTransaction::postflightAndCommit):
(WebCore::SQLTransaction::debugStepName):
* Modules/webdatabase/SQLTransaction.h:

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

4 years ago[ES2016] Implement Object.values
gskachkov@gmail.com [Wed, 10 Aug 2016 22:32:48 +0000 (22:32 +0000)]
[ES2016] Implement Object.values
https://bugs.webkit.org/show_bug.cgi?id=160410

Reviewed by Saam Baraty, Yusuke Suzuki.

This patch adds values function to Object that return list of
own values of the object. Patch did according to the point of
spec http://tc39.github.io/ecma262/#sec-object.values

Also patch adds generic builtin intrinsic constants:
@IterationKindKey/@IterationKindValue/@IterationKindKeyValue
that is used in  EnumerableOwnProperties to set Kind of operation
and replace own IterationKind enums in following iterators:
ArrayIterator, MapIterator, and SetIterator

Source/JavaScriptCore:

* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/ObjectConstructor.js:
(globalPrivate.enumerableOwnProperties):
(values):
* bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
* bytecode/BytecodeIntrinsicRegistry.h:
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::getInternalProperties):
* runtime/ArrayIteratorPrototype.h:
* runtime/IterationKind.h: Copied from Source/JavaScriptCore/builtins/ObjectConstructor.js.
* runtime/JSMapIterator.h:
(JSC::JSMapIterator::create):
(JSC::JSMapIterator::next):
(JSC::JSMapIterator::kind):
(JSC::JSMapIterator::JSMapIterator):
* runtime/JSSetIterator.h:
(JSC::JSSetIterator::create):
(JSC::JSSetIterator::next):
(JSC::JSSetIterator::kind):
(JSC::JSSetIterator::JSSetIterator):
* runtime/MapPrototype.cpp:
(JSC::mapProtoFuncValues):
(JSC::mapProtoFuncEntries):
(JSC::mapProtoFuncKeys):
(JSC::privateFuncMapIterator):
* runtime/ObjectConstructor.cpp:
* runtime/SetPrototype.cpp:
(JSC::setProtoFuncValues):
(JSC::setProtoFuncEntries):
(JSC::privateFuncSetIterator):

Source/WebCore:

* ForwardingHeaders/runtime/IterationKind.h: Added.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):

JSTests:

* stress/object-values.js: Added.
(compare):
(string_appeared_here.forEach):
(const.getInvokedFunctions.):
(const.getInvokedFunctions):
(Array.prototype.push):

LayoutTests:

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

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

4 years agoMove more functions to from SQLTransactionBackend to SQLTransaction
andersca@apple.com [Wed, 10 Aug 2016 21:54:29 +0000 (21:54 +0000)]
Move more functions to from SQLTransactionBackend to SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160752

Reviewed by Tim Horton.

* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::acquireLock):
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::runStatements):
(WebCore::SQLTransaction::cleanupAndTerminate):
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
* Modules/webdatabase/SQLTransaction.h:
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::cleanupAndTerminate):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):

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

4 years agoBegin moving member functions from SQLTransactionBackend to SQLTransaction
andersca@apple.com [Wed, 10 Aug 2016 21:31:07 +0000 (21:31 +0000)]
Begin moving member functions from SQLTransactionBackend to SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160747

Reviewed by Tim Horton.

* Modules/webdatabase/Database.cpp:
(WebCore::Database::performClose):
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::doPerformTask):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL):
(WebCore::SQLTransaction::lockAcquired):
(WebCore::SQLTransaction::performNextStep):
(WebCore::SQLTransaction::performPendingCallback):
(WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransaction::enqueueStatement):
(WebCore::SQLTransaction::getNextStatement):
(WebCore::SQLTransaction::runCurrentStatement):
(WebCore::SQLTransaction::handleCurrentStatementError):
(WebCore::SQLTransaction::handleTransactionError):
(WebCore::SQLTransaction::postflightAndCommit):
(WebCore::SQLTransaction::acquireOriginLock):
(WebCore::SQLTransaction::releaseOriginLockIfNeeded):
* Modules/webdatabase/SQLTransaction.h:
(WebCore::SQLTransaction::backend): Deleted.
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
(WebCore::SQLTransactionBackend::enqueueStatement): Deleted.
(WebCore::SQLTransactionBackend::performNextStep): Deleted.
(WebCore::SQLTransactionBackend::executeSQL): Deleted.
(WebCore::SQLTransactionBackend::lockAcquired): Deleted.
(WebCore::SQLTransactionBackend::getNextStatement): Deleted.
(WebCore::SQLTransactionBackend::runCurrentStatement): Deleted.
(WebCore::SQLTransactionBackend::handleCurrentStatementError): Deleted.
(WebCore::SQLTransactionBackend::handleTransactionError): Deleted.
(WebCore::SQLTransactionBackend::postflightAndCommit): Deleted.
(WebCore::SQLTransactionBackend::acquireOriginLock): Deleted.
(WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded): Deleted.
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::SQLTransactionCoordinator::processPendingTransactions):
(WebCore::SQLTransactionCoordinator::shutdown):

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

4 years ago[JSC] Speed up SparseCollection & related maps
benjamin@webkit.org [Wed, 10 Aug 2016 21:25:28 +0000 (21:25 +0000)]
[JSC] Speed up SparseCollection & related maps
https://bugs.webkit.org/show_bug.cgi?id=160733

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Saam Barati.

On MBA, Graph::addNode() shows up in profiles due to SparseCollection::add().
This is unfortunate.

The first improvement is to build the new unique_ptr in the empty slot
instead of moving a new value into it.

Previously, the code would load the previous value, test if it is null
then invoke the destructor and finally fastFree(). The initial test
obviously fails so that's a whole bunch of code that is never executed.

With the new code, we just have a store.

I also removed the bounds checking on our maps based on node index.
Those bounds checks are never eliminated by clang because the index
is always loaded from memory instead of being computed.
There are unfortunately too many nodes processed and the bounds checks
get costly.

* b3/B3SparseCollection.h:
(JSC::B3::SparseCollection::add):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::abstractValuesCache):
* dfg/DFGInPlaceAbstractState.h:

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

4 years ago[JSC] TinyPtrSet::deleteListIfNecessary() no longer needs to test for reservedValue
benjamin@webkit.org [Wed, 10 Aug 2016 21:23:20 +0000 (21:23 +0000)]
[JSC] TinyPtrSet::deleteListIfNecessary() no longer needs to test for reservedValue
https://bugs.webkit.org/show_bug.cgi?id=160721

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Sam Weinig.

Previously, TinyPtrSet was using a ThinFlag if there was no OutOfLineList.
A side effect is that isThin() was false for reservedValue. When deleting
the list, we had to consider both cases: isThin() and reservedValue.

In r204065, I changed the flag to a FatFlag to ensure TinyPtrSet can be initialized
with bzero().
This changes the value of isThin() of reservedValue to true since reservedValue
does not have the FatFlag bit set.
This patch removes the useless condition from deleteListIfNecessary().

* wtf/TinyPtrSet.h:
(WTF::TinyPtrSet::deleteListIfNecessary):

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

4 years agoWeb Inspector: rebase inspector/model/remote-object-get-properties.html and unskip
sbarati@apple.com [Wed, 10 Aug 2016 21:20:47 +0000 (21:20 +0000)]
Web Inspector: rebase inspector/model/remote-object-get-properties.html and unskip
https://bugs.webkit.org/show_bug.cgi?id=160738
<rdar://problem/27788116>

Reviewed by Joseph Pecoraro.

* TestExpectations:
* inspector/model/remote-object-get-properties-expected.txt:

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

4 years ago[JSC] Remove some useless code I left when rewriting CSE's large maps
benjamin@webkit.org [Wed, 10 Aug 2016 21:19:03 +0000 (21:19 +0000)]
[JSC] Remove some useless code I left when rewriting CSE's large maps
https://bugs.webkit.org/show_bug.cgi?id=160720

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Michael Saboff.

* dfg/DFGCSEPhase.cpp:
The maps m_worldMap && m_sideStateMap are useless. They come from the previous
iteration that had weaker constraints.

Also move m_heapMap after m_fallbackStackMap since that is the order
in which they are used in the algorithm.

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

4 years agoRemove AbstractInterpreter::executeEdges(unsigned), it is no longer used anywhere
benjamin@webkit.org [Wed, 10 Aug 2016 21:15:18 +0000 (21:15 +0000)]
Remove AbstractInterpreter::executeEdges(unsigned), it is no longer used anywhere
https://bugs.webkit.org/show_bug.cgi?id=160708

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Mark Lam.

* dfg/DFGAbstractInterpreter.h:
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEdges): Deleted.

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

4 years agoMarking http/tests/fetch/fetch-in-worker-crash.html as a flaky crash.
ryanhaddad@apple.com [Wed, 10 Aug 2016 21:00:02 +0000 (21:00 +0000)]
Marking http/tests/fetch/fetch-in-worker-crash.html as a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=160510

Unreviewed test gardening.

* TestExpectations:

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

4 years agoMove all SQLTransactionBackend member variables to SQLTransaction
andersca@apple.com [Wed, 10 Aug 2016 20:30:14 +0000 (20:30 +0000)]
Move all SQLTransactionBackend member variables to SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160745

Reviewed by Tim Horton.

* Modules/webdatabase/ChangeVersionWrapper.cpp:
(WebCore::ChangeVersionWrapper::performPreflight):
(WebCore::ChangeVersionWrapper::performPostflight):
(WebCore::ChangeVersionWrapper::handleCommitFailedAfterPostflight):
* Modules/webdatabase/ChangeVersionWrapper.h:
(WebCore::ChangeVersionWrapper::sqlError): Deleted.
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::hasCallback): Deleted.
(WebCore::SQLTransaction::hasSuccessCallback): Deleted.
(WebCore::SQLTransaction::hasErrorCallback): Deleted.
* Modules/webdatabase/SQLTransaction.h:
(WebCore::SQLTransaction::isReadOnly):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::~SQLTransactionBackend):
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::enqueueStatement):
(WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransactionBackend::executeSQL):
(WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::getNextStatement):
(WebCore::SQLTransactionBackend::runCurrentStatement):
(WebCore::SQLTransactionBackend::handleCurrentStatementError):
(WebCore::SQLTransactionBackend::handleTransactionError):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::cleanupAndTerminate):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
(WebCore::SQLTransactionBackend::requestTransitToState):
(WebCore::SQLTransactionBackend::acquireOriginLock):
(WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
(WebCore::SQLTransactionBackend::currentStatement): Deleted.
(WebCore::SQLTransactionBackend::transactionError): Deleted.
(WebCore::SQLTransactionBackend::setShouldRetryCurrentStatement): Deleted.
(WebCore::SQLTransactionBackend::enqueueStatementBackend): Deleted.
* Modules/webdatabase/SQLTransactionBackend.h:
(WebCore::SQLTransactionBackend::database): Deleted.
(WebCore::SQLTransactionBackend::isReadOnly): Deleted.
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::SQLTransactionCoordinator::processPendingTransactions):
(WebCore::SQLTransactionCoordinator::releaseLock):

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

4 years agoSort the project file.
simon.fraser@apple.com [Wed, 10 Aug 2016 20:24:06 +0000 (20:24 +0000)]
Sort the project file.

* WebCore.xcodeproj/project.pbxproj:

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

4 years agoSort the feature flags in the FEATURE_DEFINES lines
simon.fraser@apple.com [Wed, 10 Aug 2016 20:23:03 +0000 (20:23 +0000)]
Sort the feature flags in the FEATURE_DEFINES lines
https://bugs.webkit.org/show_bug.cgi?id=160742

Reviewed by Anders Carlsson.
Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

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

4 years agoAdd JS array sort test case
bfulgham@apple.com [Wed, 10 Aug 2016 20:21:40 +0000 (20:21 +0000)]
Add JS array sort test case
https://bugs.webkit.org/show_bug.cgi?id=160680

Incorporate a test case related to a improper JavaScript Array
sorting behavior. The actual bug was fixed more than a year ago,
as a side effect of Bug 144013, but no test case was provided.

* js/array-sort-crash-expected.txt: Added.
* js/array-sort-crash.html: Added.

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

4 years agoVersioning.
bshafiei@apple.com [Wed, 10 Aug 2016 20:21:20 +0000 (20:21 +0000)]
Versioning.

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

4 years agoLogging and other minor improvements to iOS webkitpy
simon.fraser@apple.com [Wed, 10 Aug 2016 19:59:08 +0000 (19:59 +0000)]
Logging and other minor improvements to iOS webkitpy
https://bugs.webkit.org/show_bug.cgi?id=160722

Reviewed by Dan Bates.

Fix --debug-rwt-logging to log all the calls to simctl as well as device state information,
to make it easier to debug launching issues.

Have reset_preferences() reset the device, rather than just nuking the data
directory (which broke some versions of the simulator).

Make the Simulator.app launch in the background with open -g.

Wait for the simulator device to be in a known state in some more places.

* Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.setup_test_run):
(IOSSimulatorPort._quit_ios_simulator):
(IOSSimulatorPort.clean_up_test_run):
(IOSSimulatorPort.setup_environ_for_server):
(IOSSimulatorPort.reset_preferences):
* Scripts/webkitpy/xcode/simulator.py:
(Device.create):
(Device.delete):
(Device):
(Device.reset):
(Simulator.wait_until_device_is_booted):
(Simulator.wait_until_device_is_in_state):
(Simulator):
(Simulator.delete_device):
(Simulator.reset_device):
(Simulator.lookup_or_create_device):

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

4 years agoMarking inspector/model/remote-object-get-properties.html as failing
ryanhaddad@apple.com [Wed, 10 Aug 2016 19:37:38 +0000 (19:37 +0000)]
Marking inspector/model/remote-object-get-properties.html as failing
https://bugs.webkit.org/show_bug.cgi?id=160738

Unreviewed test gardening.

* TestExpectations:
* platform/mac/TestExpectations:

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

4 years agoWeb Inspector: Can't click on the lower half of "S" icon in JavaScript Allocations...
nvasilyev@apple.com [Wed, 10 Aug 2016 19:35:40 +0000 (19:35 +0000)]
Web Inspector: Can't click on the lower half of "S" icon in JavaScript Allocations timeline
https://bugs.webkit.org/show_bug.cgi?id=160743
<rdar://problem/27790098>

Reviewed by Timothy Hatcher.

"S" icons are covered by .scroll-container, which has `z-index: calc(var(--z-index-resizer) + 1)`.
Set larger z-index on the "S" icons.

* UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:
(.timeline-overview-graph.heap-allocations > img.snapshot):

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

4 years agoMake SQLTransactionBackend a member of SQLTransaction
andersca@apple.com [Wed, 10 Aug 2016 18:41:33 +0000 (18:41 +0000)]
Make SQLTransactionBackend a member of SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160741

Reviewed by Tim Horton.

This is another step towards merging SQLTransaction and SQLTransactionBackend.

* Modules/webdatabase/Database.cpp:
(WebCore::Database::performClose):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::runTransaction):
* Modules/webdatabase/Database.h:
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::doPerformTask):
* Modules/webdatabase/DatabaseTask.h:
(WebCore::DatabaseTransactionTask::transaction):
* Modules/webdatabase/DatabaseThread.cpp:
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::deliverSuccessCallback):
(WebCore::SQLTransaction::executeSQL):
(WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransaction::setBackend): Deleted.
* Modules/webdatabase/SQLTransaction.h:
(WebCore::SQLTransaction::backend):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runCurrentStatement):
(WebCore::SQLTransactionBackend::handleCurrentStatementError):
(WebCore::SQLTransactionBackend::handleTransactionError):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::requestTransitToState):
(WebCore::SQLTransactionBackend::create): Deleted.
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier):
(WebCore::SQLTransactionCoordinator::processPendingTransactions):
(WebCore::SQLTransactionCoordinator::acquireLock):
(WebCore::SQLTransactionCoordinator::releaseLock):
(WebCore::SQLTransactionCoordinator::shutdown):
* Modules/webdatabase/SQLTransactionCoordinator.h:

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

4 years agochild-transform-with-anchor-point-expected.html renders incorrectly
simon.fraser@apple.com [Wed, 10 Aug 2016 17:37:49 +0000 (17:37 +0000)]
child-transform-with-anchor-point-expected.html renders incorrectly
https://bugs.webkit.org/show_bug.cgi?id=160616

Reviewed by Zalan Bujtas.
Source/WebCore:

If a layer has perspective, we need to ensure that its bounds don't collapse to 0x0 when clipped out,
otherwise the sublayerTransform geometry gets messed up.

Test: compositing/geometry/clipped-out-perspective.html

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):

LayoutTests:

* compositing/geometry/clipped-out-perspective-expected.html: Added.
* compositing/geometry/clipped-out-perspective.html: Added.
* compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt: Rebaseline.
* platform/mac-wk1/TestExpectations:

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

4 years agoRemove support for array types in IDLs
weinig@apple.com [Wed, 10 Aug 2016 17:32:15 +0000 (17:32 +0000)]
Remove support for array types in IDLs
https://bugs.webkit.org/show_bug.cgi?id=160729

Reviewed by Anders Carlsson.

Array types have been removed from WebIDL in favor of sequence<> and FrozenArray<>.

- Replace all current uses of Array types with sequences. This causes
  no functional change.

* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/IDLParser.pm:
Remove array support from the generators.

* Modules/gamepad/Gamepad.idl:
* Modules/gamepad/NavigatorGamepad.idl:
* Modules/gamepad/deprecated/Gamepad.idl:
* Modules/mediacontrols/MediaControlsHost.idl:
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/MediaTrackConstraints.idl:
* Modules/mediastream/RTCConfiguration.idl:
* Modules/mediastream/RTCIceServer.idl:
* Modules/mediastream/RTCTrackEvent.idl:
* crypto/CryptoKey.idl:
* dom/MessageEvent.idl:
* testing/Internals.idl:
Switch from array to sequence.

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

4 years agoUnreviewed. Skip a JSC test that's timing out and an inspector test that needs to...
sbarati@apple.com [Wed, 10 Aug 2016 17:19:31 +0000 (17:19 +0000)]
Unreviewed. Skip a JSC test that's timing out and an inspector test that needs to be rebased after r204321

* TestExpectations:
* js/regress/script-tests/bound-function-construction-performance.js:
(makeBoundFunc):

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

4 years agoUse unsigned for locations in URL
commit-queue@webkit.org [Wed, 10 Aug 2016 17:05:49 +0000 (17:05 +0000)]
Use unsigned for locations in URL
https://bugs.webkit.org/show_bug.cgi?id=160706

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-10
Reviewed by Sam Weinig.

No change in behavior.

* platform/URL.cpp:
(WebCore::isSchemeFirstChar):
(WebCore::findFirstOf):
(WebCore::checkEncodedString):
(WebCore::URL::host):
(WebCore::URL::protocolIs):
(WebCore::URL::setPort):
(WebCore::URL::setUser):
(WebCore::URL::setPass):
(WebCore::escapeAndAppendNonHierarchicalPart):
(WebCore::copyPathRemovingDots):
(WebCore::URL::serialize):
(WebCore::isDefaultPortForScheme):
(WebCore::hostPortIsEmptyButCredentialsArePresent):
(WebCore::URL::parse):
(WebCore::protocolHostAndPortAreEqual):
(WebCore::hostsAreEqual):
(WebCore::protocolIs):
(WebCore::findHostnamesInMailToURL):
(WebCore::findHostnameInHierarchicalURL):
(WebCore::encodeHostnames):
(WebCore::encodeRelativeString):
* platform/URL.h:

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

4 years agoMove SQLTransactionBackend construction inside SQLTransaction
andersca@apple.com [Wed, 10 Aug 2016 16:47:12 +0000 (16:47 +0000)]
Move SQLTransactionBackend construction inside SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160726

Reviewed by Tim Horton.

This is the first step towards re-merging SQLTransactionBackend and SQLTransaction and clean up the code.

* Modules/webdatabase/ChangeVersionWrapper.cpp:
* Modules/webdatabase/ChangeVersionWrapper.h:
* Modules/webdatabase/Database.cpp:
(WebCore::Database::performClose):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
(WebCore::Database::readTransaction):
(WebCore::Database::runTransaction):
* Modules/webdatabase/Database.h:
* Modules/webdatabase/DatabaseTask.cpp:
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::create):
(WebCore::SQLTransaction::SQLTransaction):
* Modules/webdatabase/SQLTransaction.h:
(WebCore::SQLTransactionWrapper::~SQLTransactionWrapper):
(WebCore::SQLTransaction::backend):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::requestTransitToState):
* Modules/webdatabase/SQLTransactionBackend.h:
(WebCore::SQLTransactionWrapper::~SQLTransactionWrapper): Deleted.

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

4 years ago[GTK][EFL] ALSA_CARD environment variable is not passed for layout tests.
clopez@igalia.com [Wed, 10 Aug 2016 15:57:10 +0000 (15:57 +0000)]
[GTK][EFL] ALSA_CARD environment variable is not passed for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=160697

Reviewed by Antonio Gomes.

* Scripts/webkitpy/port/base.py:
(Port.to.setup_environ_for_server): Add ALSA_CARD and sort the Linux
list of environment variables to copy.

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

4 years agoIt should be possible to re-initialize a MutationEvent after it's been dispatched
cdumez@apple.com [Wed, 10 Aug 2016 14:49:20 +0000 (14:49 +0000)]
It should be possible to re-initialize a MutationEvent after it's been dispatched
https://bugs.webkit.org/show_bug.cgi?id=160703

Reviewed by Sam Weinig.

Source/WebCore:

It should be possible to re-initialize a MutationEvent after it's been dispatched,
similarly to Event:
- https://www.w3.org/TR/2015/WD-uievents-20151215/#widl-MutationEvent-initMutationEvent

Test: fast/events/initMutationEvent-after-dispatch.html

* dom/MutationEvent.cpp:
(WebCore::MutationEvent::initMutationEvent):

LayoutTests:

Add layout test coverage.

* fast/events/initMutationEvent-after-dispatch-expected.txt: Added.
* fast/events/initMutationEvent-after-dispatch.html: Added.

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

4 years ago[ES6] Add ModuleLoaderPrototype and move methods to it
utatane.tea@gmail.com [Wed, 10 Aug 2016 08:37:06 +0000 (08:37 +0000)]
[ES6] Add ModuleLoaderPrototype and move methods to it
https://bugs.webkit.org/show_bug.cgi?id=160633

Reviewed by Saam Barati.

Source/JavaScriptCore:

In the future, we need to add the ability to create the new Loader object (by users).
So rather than holding all the methods in the ModuleLoaderObject instance, moving them
to ModuleLoaderPrototype and create the default JSModuleLoader instance is better.

No behavior change.

* CMakeLists.txt:
* DerivedSources.make:
* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/ModuleLoaderObject.js:
(setStateToMax): Deleted.
(newRegistryEntry): Deleted.
(ensureRegistered): Deleted.
(forceFulfillPromise): Deleted.
(fulfillFetch): Deleted.
(fulfillTranslate): Deleted.
(fulfillInstantiate): Deleted.
(commitInstantiated): Deleted.
(instantiation): Deleted.
(requestFetch): Deleted.
(requestTranslate): Deleted.
(requestInstantiate): Deleted.
(requestResolveDependencies.): Deleted.
(requestResolveDependencies): Deleted.
(requestInstantiateAll): Deleted.
(requestLink): Deleted.
(requestReady): Deleted.
(link): Deleted.
(moduleEvaluation): Deleted.
(provide): Deleted.
(loadAndEvaluateModule): Deleted.
(loadModule): Deleted.
(linkAndEvaluateModule): Deleted.
* builtins/ModuleLoaderPrototype.js: Renamed from Source/JavaScriptCore/builtins/ModuleLoaderObject.js.
(setStateToMax):
(newRegistryEntry):
(ensureRegistered):
(forceFulfillPromise):
(fulfillFetch):
(fulfillTranslate):
(fulfillInstantiate):
(commitInstantiated):
(instantiation):
(requestFetch):
(requestTranslate):
(requestInstantiate):
(requestResolveDependencies.):
(requestResolveDependencies):
(requestInstantiateAll):
(requestLink):
(requestReady):
(link):
(moduleEvaluation):
(provide):
(loadAndEvaluateModule):
(loadModule):
(linkAndEvaluateModule):
* bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
* jsc.cpp:
(GlobalObject::moduleLoaderResolve):
(GlobalObject::moduleLoaderFetch):
* runtime/Completion.cpp:
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::moduleLoader):
(JSC::JSGlobalObject::moduleLoaderStructure):
* runtime/JSModuleLoader.cpp: Added.
(JSC::JSModuleLoader::JSModuleLoader):
(JSC::JSModuleLoader::finishCreation):
(JSC::printableModuleKey):
(JSC::JSModuleLoader::provide):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::resolve):
(JSC::JSModuleLoader::fetch):
(JSC::JSModuleLoader::translate):
(JSC::JSModuleLoader::instantiate):
(JSC::JSModuleLoader::evaluate):
* runtime/JSModuleLoader.h: Copied from Source/JavaScriptCore/runtime/ModuleLoaderObject.h.
(JSC::JSModuleLoader::create):
(JSC::JSModuleLoader::createStructure):
* runtime/JSModuleRecord.h:
* runtime/ModuleLoaderObject.cpp: Removed.
(JSC::ModuleLoaderObject::ModuleLoaderObject): Deleted.
(JSC::ModuleLoaderObject::finishCreation): Deleted.
(JSC::printableModuleKey): Deleted.
(JSC::ModuleLoaderObject::provide): Deleted.
(JSC::ModuleLoaderObject::loadAndEvaluateModule): Deleted.
(JSC::ModuleLoaderObject::loadModule): Deleted.
(JSC::ModuleLoaderObject::linkAndEvaluateModule): Deleted.
(JSC::ModuleLoaderObject::resolve): Deleted.
(JSC::ModuleLoaderObject::fetch): Deleted.
(JSC::ModuleLoaderObject::translate): Deleted.
(JSC::ModuleLoaderObject::instantiate): Deleted.
(JSC::ModuleLoaderObject::evaluate): Deleted.
(JSC::moduleLoaderObjectParseModule): Deleted.
(JSC::moduleLoaderObjectRequestedModules): Deleted.
(JSC::moduleLoaderObjectModuleDeclarationInstantiation): Deleted.
(JSC::moduleLoaderObjectResolve): Deleted.
(JSC::moduleLoaderObjectFetch): Deleted.
(JSC::moduleLoaderObjectTranslate): Deleted.
(JSC::moduleLoaderObjectInstantiate): Deleted.
(JSC::moduleLoaderObjectEvaluate): Deleted.
* runtime/ModuleLoaderObject.h:
(JSC::ModuleLoaderObject::create): Deleted.
(JSC::ModuleLoaderObject::createStructure): Deleted.
* runtime/ModuleLoaderPrototype.cpp: Added.
(JSC::ModuleLoaderPrototype::ModuleLoaderPrototype):
(JSC::moduleLoaderPrototypeParseModule):
(JSC::moduleLoaderPrototypeRequestedModules):
(JSC::moduleLoaderPrototypeModuleDeclarationInstantiation):
(JSC::moduleLoaderPrototypeResolve):
(JSC::moduleLoaderPrototypeFetch):
(JSC::moduleLoaderPrototypeTranslate):
(JSC::moduleLoaderPrototypeInstantiate):
(JSC::moduleLoaderPrototypeEvaluate):
* runtime/ModuleLoaderPrototype.h: Renamed from Source/JavaScriptCore/runtime/ModuleLoaderObject.h.
(JSC::ModuleLoaderPrototype::create):
(JSC::ModuleLoaderPrototype::createStructure):

Source/WebCore:

No behavior change.

* ForwardingHeaders/runtime/JSModuleLoader.h: Added.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderResolve):
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSModuleLoader.cpp:
(WebCore::JSModuleLoader::resolve):
(WebCore::JSModuleLoader::fetch):
(WebCore::JSModuleLoader::evaluate):
* bindings/js/JSModuleLoader.h:

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

4 years ago[Win] Warning fix.
pvollan@apple.com [Wed, 10 Aug 2016 08:18:03 +0000 (08:18 +0000)]
[Win] Warning fix.
https://bugs.webkit.org/show_bug.cgi?id=160687

Reviewed by Sam Weinig.

Avoid forward declarations with different dll linkage.

* platform/spi/cf/CFNetworkSPI.h:

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

4 years ago[Win] Warning fix.
pvollan@apple.com [Wed, 10 Aug 2016 08:14:23 +0000 (08:14 +0000)]
[Win] Warning fix.
https://bugs.webkit.org/show_bug.cgi?id=160690

Reviewed by Sam Weinig.

Use static cast to convert from enum to unsigned.

* platform/network/ProtectionSpaceHash.h:
(WebCore::ProtectionSpaceHash::hash):

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

4 years agoMove NetworkStorageSession management to WebCore
achristensen@apple.com [Wed, 10 Aug 2016 07:01:32 +0000 (07:01 +0000)]
Move NetworkStorageSession management to WebCore
https://bugs.webkit.org/show_bug.cgi?id=160173

Reviewed by Brady Eidson.

Source/WebCore:

No new tests.  No change in behaviour.
Just moving the mapping from SessionID to NetworkStorageSession so we can use it from WebCore.
I need this so we can get to the NetworkStorageSession from SocketStreamHandle without requiring a NetworkingContext.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* loader/CookieJar.cpp:
* platform/network/NetworkStorageSession.cpp: Added.
(WebCore::globalSessionMap):
(WebCore::NetworkStorageSession::storageSession):
(WebCore::NetworkStorageSession::destroySession):
(WebCore::NetworkStorageSession::forEach):
Moved from forEachNetworkStorageSession and fixed the FIXME.  This function now includes the default NetworkStorageSession.
* platform/network/NetworkStorageSession.h:
* platform/network/NetworkingContext.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::defaultStorageSession):
(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession):
(WebCore::NetworkStorageSession::cookieStorage):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.
* platform/network/cf/SocketStreamHandleCFNet.cpp:
* platform/network/soup/CookieJarSoup.cpp:
* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::defaultStorageSession):
(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.
* platform/network/soup/ResourceHandleSoup.cpp:

Source/WebKit/mac:

* WebCoreSupport/WebFrameNetworkingContext.mm:
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebFrameNetworkingContext::destroyPrivateBrowsingSession):
* WebCoreSupport/WebPlatformStrategies.mm:
* WebView/WebView.mm:

Source/WebKit/win:

* WebCoreSupport/WebFrameNetworkingContext.cpp:
(identifierBase):
(WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebFrameNetworkingContext::destroyPrivateBrowsingSession):
(WebFrameNetworkingContext::blockedError):
(WebFrameNetworkingContext::storageSession):
(privateSession): Deleted.
* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createPasteboardStrategy):
(WebPlatformStrategies::createBlobRegistry):

Source/WebKit2:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::storageSession):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::sessionID):
NetworkSessions no longer own NetworkStorageSessions, but they should still have the same lifetime.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(WebKit::NetworkSession::setSourceApplicationAuditTokenData):
(WebKit::NetworkSession::create):
(WebKit::NetworkSession::defaultSession):
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::networkStorageSession):
(WebKit::NetworkSession::clearCredentials):
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::storageSession):
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* Shared/SessionTracker.cpp:
(WebKit::SessionTracker::networkSession):
(WebKit::SessionTracker::setSession):
(WebKit::SessionTracker::destroySession):
(WebKit::SessionTracker::storageSession): Deleted.
(WebKit::staticStorageSessionMap): Deleted.
(WebKit::SessionTracker::sessionID): Deleted.
(WebKit::SessionTracker::forEachNetworkStorageSession): Deleted.
* Shared/SessionTracker.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::addCookie):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:

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

4 years agoOptimization in Node.replaceChild() is not spec-compliant
cdumez@apple.com [Wed, 10 Aug 2016 05:44:31 +0000 (05:44 +0000)]
Optimization in Node.replaceChild() is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=160730

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/dom/nodes/MutationObserver-childList-expected.txt:
* web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in Node.replaceChild() to avoid doing any work
when the reference child and the new child are the same node. This
optimization is not spec-compliant:
- https://dom.spec.whatwg.org/#concept-node-replace

This is an issue because it is observable via Mutation observers /
listeners or DOM ranges.

To address the issue, this patch drops the optimization. This is
probably not common enough to be worth optimizing for. However,
if it turns out to regress performance of things we care about,
we can fall back to do the optimization only in cases where it
is not observable.

No new tests, rebaselined existing tests.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceChild):
1. Drop the oldChild == newChild optimization which is not in the
   specification.
2. Add a null check for oldChild.parentNode() before trying to
   remove it from its parent, as per step 12 of the specification.
   oldChild.parentNode() is null when oldChild is newChild.
3. Make sure we enqueue separate mutation records for the adoption
   of newNode into parent's node document and for the removal of
   oldChild / insertion of newChild. This is mandated by the
   specification (steps 10 and 15). Without this change, the
   following test would still not pass after dropping the
   optimization:
   imported/w3c/web-platform-tests/dom/nodes/MutationObserver-childList.html

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

4 years agoFix iOS build.
andersca@apple.com [Wed, 10 Aug 2016 03:55:29 +0000 (03:55 +0000)]
Fix iOS build.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.

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

4 years agoOptimization in Node::appendChild() is not spec-compliant
cdumez@apple.com [Wed, 10 Aug 2016 03:47:58 +0000 (03:47 +0000)]
Optimization in Node::appendChild() is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=160728

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in Node::appendChild() that avoid doing any work
if the node to be appended is already the last child. This optimization
is not spec-compliant:
- https://dom.spec.whatwg.org/#dom-node-appendchild

The issue is that this is observable via DOM Mutation observers / listeners
or DOM ranges.

To address the issue, this patch drops the optimization in appendChild().
This seems like an odd case to optimize for as I am not convinced it is
common to call parent.appendChild(parent.lastChild). If it turns out to
regress the performance of things we care about though, we could fall
back to do the optimization only when it is not observable.

Test: fast/dom/Node/appendChild-no-op-mutationobserver.html

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::appendChild): Deleted.

LayoutTests:

Add layout test to make sure that mutation events are always fired
when calling Node::appendChild(), even if the new node is already
the last child.

* fast/dom/Node/appendChild-no-op-mutationobserver-expected.txt: Added.
* fast/dom/Node/appendChild-no-op-mutationobserver.html: Added.

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

4 years agoJSBoundFunction should lazily generate its name string
sbarati@apple.com [Wed, 10 Aug 2016 03:39:05 +0000 (03:39 +0000)]
JSBoundFunction should lazily generate its name string
https://bugs.webkit.org/show_bug.cgi?id=160678
<rdar://problem/27043194>

Reviewed by Mark Lam.

JSTests:

* stress/bound-function-lazy-name-generation.js: Added.
(assert):
(test.let.f):
(test.f):
(test):

Source/JavaScriptCore:

We were eagerly allocating the BoundFunction's 'name' string
by prepending the "bound " prefix. This patch makes the 'name'
string creation lazy like we do with ordinary JSFunctions.

This is a 25% speedup on the microbenchmark I added that measures
bound function creation speed. Hopefully this also helps us recover
from a 1% Speedometer regression that was introduced in the original
bound function "bound " prefixing patch.

* runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::JSBoundFunction):
(JSC::JSBoundFunction::finishCreation):
* runtime/JSBoundFunction.h:
* runtime/JSFunction.cpp:
(JSC::JSFunction::finishCreation):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::deleteProperty):
(JSC::JSFunction::defineOwnProperty):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyBoundNameIfNeeded):
* runtime/JSFunction.h:

LayoutTests:

* js/regress/bound-function-construction-performance-expected.txt: Added.
* js/regress/bound-function-construction-performance.html: Added.
* js/regress/script-tests/bound-function-construction-performance.js: Added.
(makeBoundFunc):
(foo.f):
(foo):

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

4 years agoInstantiate WebKit plug-ins at layout time, instead of at style resolution time
andersca@apple.com [Wed, 10 Aug 2016 01:31:17 +0000 (01:31 +0000)]
Instantiate WebKit plug-ins at layout time, instead of at style resolution time
https://bugs.webkit.org/show_bug.cgi?id=160715

Reviewed by Tim Horton.

Source/WebCore:

This gets rid of the differentiation of WebKit plug-ins and Netscape plug-ins, and
always instantiates plug-ins at layout time.

Initially, plug-ins were always instantiated after style recalc, but that lead to bugs
where plug-ins wouldn't be instantiated with their correct size. Fixing that bug lead
to a regression in the Web Clip widget which is why the special casing was introduced.

The Web Clip widget has now been fixed, so we can get rid of the special case.

* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::updateWidget):
* html/HTMLAppletElement.h:
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::updateWidget):
* html/HTMLEmbedElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::updateWidget):
* html/HTMLObjectElement.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::isImageType):
(WebCore::HTMLPlugInImageElement::wouldLoadAsPlugIn):
(WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
(WebCore::HTMLPlugInImageElement::wouldLoadAsNetscapePlugin): Deleted.
* html/HTMLPlugInImageElement.h:
* loader/EmptyClients.h:
* loader/FrameLoaderTypes.h:
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::shouldUsePlugin):
* page/FrameView.cpp:
(WebCore::FrameView::updateEmbeddedObject):

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::objectContentType):

Source/WebKit/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::objectContentType):

Source/WebKit2:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::objectContentType):

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

4 years agoUnreviewed, fix assertions after r204311.
cdumez@apple.com [Wed, 10 Aug 2016 01:16:59 +0000 (01:16 +0000)]
Unreviewed, fix assertions after r204311.

Range::textNodeSplit() can now get called with a node that
does not have a nextSibling(), in the case where this node
does not have a parent.

* dom/Range.cpp:
(WebCore::Range::textNodeSplit):

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

4 years ago[WK2] Only send gamepad input events to the currently focused page.
beidson@apple.com [Wed, 10 Aug 2016 00:49:34 +0000 (00:49 +0000)]
[WK2] Only send gamepad input events to the currently focused page.
https://bugs.webkit.org/show_bug.cgi?id=160699

Reviewed by Tim Horton.

* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::updateTimerFired):
(WebKit::UIGamepadProvider::platformWebProcessProxyForGamepadInput):
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderMac.mm: Copied from Source/WebKit2/UIProcess/API/mac/WKViewInternal.h.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::gamepadActivity):
* UIProcess/WebPageProxy.h:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::gamepadActivity): Deleted.
* UIProcess/WebProcessPool.h:

* WebKit2.xcodeproj/project.pbxproj:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::gamepadActivity):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::gamepadActivity): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

4 years agoRemove code that would tell clients whenever the list of installed plug-ins changes
andersca@apple.com [Wed, 10 Aug 2016 00:31:38 +0000 (00:31 +0000)]
Remove code that would tell clients whenever the list of installed plug-ins changes
https://bugs.webkit.org/show_bug.cgi?id=160719

Reviewed by Tim Horton.

* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::PluginInfoStore): Deleted.
(WebKit::PluginInfoStore::loadPluginsIfNecessary): Deleted.
* UIProcess/Plugins/PluginInfoStore.h:
(WebKit::PluginInfoStoreClient::~PluginInfoStoreClient): Deleted.
(WebKit::PluginInfoStoreClient::PluginInfoStoreClient): Deleted.
(WebKit::PluginInfoStore::setClient): Deleted.
(WebKit::PluginInfoStore::client): Deleted.
* UIProcess/WebContextClient.cpp:
(WebKit::WebContextClient::plugInInformationBecameAvailable): Deleted.
* UIProcess/WebContextClient.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer): Deleted.
(WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins): Deleted.
* UIProcess/WebProcessPool.h:

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

4 years agoCharacterData.data setter optimization is not spec-compliant and is observable
cdumez@apple.com [Wed, 10 Aug 2016 00:10:24 +0000 (00:10 +0000)]
CharacterData.data setter optimization is not spec-compliant and is observable
https://bugs.webkit.org/show_bug.cgi?id=160712

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in CharacterData.setData() that avoid doing any
work if the new data is identical to the old data. However, this
optimization is not spec-compliant:
- https://dom.spec.whatwg.org/#dom-characterdata-data

This is an issue because this is observable using DOM mutation observer
or ranges.

To address the issue, we now:
1. Only use the optimization if there are not DOM mutation observers /
   listeners on the page.
2. We now update the associated range when we use the fast path as well.

Test: fast/dom/Text/setData-no-op-mutation.html

* dom/CharacterData.cpp:
(WebCore::canUseSetDataOptimization):
(WebCore::CharacterData::setData):

LayoutTests:

Add test coverage to make sure that DOM Mutation observers get notified
when CharacterData.data is set to the same data.

* fast/dom/Text/setData-no-op-mutation-expected.txt: Added.
* fast/dom/Text/setData-no-op-mutation.html: Added.

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

4 years agoDon't filter out the latest data point in chart data sampling
rniwa@webkit.org [Tue, 9 Aug 2016 23:22:05 +0000 (23:22 +0000)]
Don't filter out the latest data point in chart data sampling
https://bugs.webkit.org/show_bug.cgi?id=160714

Reviewed by Chris Dumez.

Exclude the last data point from sampling so that it's always included in the "sampled" charts data.
Without this, the last data point can change as we zoom out the time domain.

Luckily, we already had a mechanism to exclude the user selected point from sampling. Extend this
feature by supporting an array of point IDs instead of a single ID to exclude from filering.

* public/v3/components/interactive-time-series-chart.js:
(InteractiveTimeSeriesChart.prototype._sampleTimeSeries): Replaced exclusionPointID by excludedPoints.

* public/v3/components/time-series-chart.js:
(TimeSeriesChart.prototype._ensureSampledTimeSeries): Put the last data point in excludedPoints.
(TimeSeriesChart.prototype._sampleTimeSeries): Check point's id against the list of IDs.

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

4 years agoImplement functionality of media capture on iOS
commit-queue@webkit.org [Tue, 9 Aug 2016 22:58:16 +0000 (22:58 +0000)]
Implement functionality of media capture on iOS
https://bugs.webkit.org/show_bug.cgi?id=158945
<rdar://problem/26893343>

Patch by George Ruan <gruan@apple.com> on 2016-08-09
Reviewed by Tim Horton.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig: Enable media capture feature
for iOS.

Source/WebCore:

No new tests, feature requires user gesture which we are unable to
test currently.

* Configurations/FeatureDefines.xcconfig: Enable Media Capture feature
for iOS.
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent): Modified call for
mediaCaptureType property.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::mediaCaptureType): Returns
MediaCaptureType according to the value of the capture attribute on
the HTMLInputElement.
(WebCore::HTMLInputElement::shouldUseMediaCapture): Deleted.
* html/HTMLInputElement.h:
* html/HTMLInputElement.idl: As the capture attribute is specified as
a boolean attribute in the Media Capture spec, this is a non-standard
web-facing change with accordance to the proposal #1102. We would like
to be able to specify a capture device to pull up upon interaction
with the input type file element. In favor of not introducing a new
attribute to specify the capture device, we reuse the capture
attribute with a set of enumerated values (user, environment, none) to
specify the desired media capture behavior.
* platform/FileChooser.h: Created enum MediaCaptureType representing
whether the front or rear camera shoul dbe shown when the capture
attribute is specified.

Source/WebKit/ios:

* DefaultDelegates/WebDefaultUIKitDelegate.m:
(-[WebDefaultUIKitDelegate
webView:runOpenPanelForFileButtonWithResultListener:configuration:]):
Use a dictionary instead of passing each parameter in separately.
(-[WebDefaultUIKitDelegate webView:runOpenPanelForFileButtonWithResultListener:allowMultipleFiles:acceptMIMETypes:]): Deleted.
* WebCoreSupport/WebChromeClientIOS.mm:
(webMediaCaptureType): Converts from WebCore::MediaCaptureType to
WebMediaCaptureType.
(WebChromeClientIOS::runOpenPanel):
* WebKit.iOS.exp: Expose NSDictionary keys for
runOpenPanelForFileButtonWithResultListener.
* WebView/WebUIKitDelegate.h: Add WebMediaCaptureType enum and
NSDictionary keys for
runOpenPanelForFileButtonWithResultListener.

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig: Enable Media Capture feature
for iOS.

Source/WebKit2:

For a input type file element on iOS, the media capture attribute can
now be used to specify which camera to pull up immediately, as opposed
to having to select the camera from a file picker menu. If the
specified capture type camera device is unavailable, the other
built-in camera will be pulled up instead. If no camera is available,
then the file picker menu will be presented to the user.

* Configurations/FeatureDefines.xcconfig: Enable Media Capture feature
on iOS.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FileChooserSettings>::encode): Encode enum
MediaCaptureType.
(IPC::ArgumentCoder<FileChooserSettings>::decode): Decode enum
MediaCaptureType.
* UIProcess/API/APIOpenPanelParameters.cpp:
(API::OpenPanelParameters::mediaCaptureType):
(API::OpenPanelParameters::capture): Deleted.
* UIProcess/API/APIOpenPanelParameters.h: Capture attribute is now
represented with MediaCaptureType instead of boolean.
* UIProcess/API/C/WKOpenPanelParametersRef.cpp:
(WKOpenPanelParametersGetMediaCaptureType): Change function name to
better represent function.
(WKOpenPanelParametersGetCaptureEnabled): Deleted.
* UIProcess/API/C/WKOpenPanelParametersRef.h:
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(cameraDeviceForMediaCaptureType): Translate MediaCaptureType to media
device.
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Immediately pull up media capture device if devices are available and
capture attribute is present.
(-[WKFileUploadPanel _showDocumentPickerMenu]): Only show option to
use media capture device if it is available for the source type.
(-[WKFileUploadPanel _adjustMediaCaptureType]): Determines correct
fallback option for the media capture device.
(-[WKFileUploadPanel _shouldMediaCaptureOpenMediaDevice]): Checks if
the media capture device should be immediately pulled up.
(-[WKFileUploadPanel _showPhotoPickerWithSourceType:]): Specified the
media capture device to use.

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Enable Media
Capture feature on iOS.

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

4 years agoCalling splitText() on a parent-less Text node should update associated ranges
cdumez@apple.com [Tue, 9 Aug 2016 22:30:46 +0000 (22:30 +0000)]
Calling splitText() on a parent-less Text node should update associated ranges
https://bugs.webkit.org/show_bug.cgi?id=160710

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

Calling splitText() on a parent-less Text node should update associated ranges:
- https://dom.spec.whatwg.org/#concept-text-split (Step 9)

Previously, we would only update ranges for Text nodes that have a parent.

No new tests, rebaselined existing test.

* dom/Range.cpp:
(WebCore::boundaryTextNodesSplit):
(WebCore::Range::textNodeSplit): Deleted.
* dom/Text.cpp:
(WebCore::Text::splitText):

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

4 years agoParser<LexerType>::parseFunctionInfo() has the wrong info about captured vars when...
sbarati@apple.com [Tue, 9 Aug 2016 22:03:28 +0000 (22:03 +0000)]
Parser<LexerType>::parseFunctionInfo() has the wrong info about captured vars when a function is not cached.
https://bugs.webkit.org/show_bug.cgi?id=160671
<rdar://problem/27756112>

Reviewed by Mark Lam.

Source/JavaScriptCore:

There was a bug in our captured variable analysis when a function has a default
parameter expression that is a function that captures something from the parent scope.
The bug was that we were relying on the SourceProviderCache to succeed for the
analysis to work. This is obviously wrong. I've fixed this to work regardless
of getting a cache hit. To prevent future bugs that rely on the success of the
SourceProviderCache, I've made the validate testing mode disable the SourceProviderCache

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionInfo):
* parser/Parser.h:
(JSC::Scope::setInnerArrowFunctionUsesEvalAndUseArgumentsIfNeeded):
(JSC::Scope::addClosedVariableCandidateUnconditionally):
(JSC::Scope::collectFreeVariables):
* runtime/Options.h:

Tools:

* Scripts/run-jsc-stress-tests:

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

4 years ago[macOS Sierra] Fix flaky test: media/controls/picture-in-picture.html
adachan@apple.com [Tue, 9 Aug 2016 21:54:58 +0000 (21:54 +0000)]
[macOS Sierra] Fix flaky test: media/controls/picture-in-picture.html
https://bugs.webkit.org/show_bug.cgi?id=160707

Reviewed by Eric Carlson.

This test became flaky after r201474 when we started to delay showing
the inline placeholder until we are sure the video layer has been moved
into the video fullscreen layer. This means we can't guarantee that the
placeholder is visible right away after the video's presentation mode
changes to "picture-in-picture".

To fix this, we'll update the test so that we'll wait until the placeholder
becomes visible before testing its visibility without the "controls" attribute.

* media/controls/picture-in-picture.html:
* platform/mac-wk2/TestExpectations:

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

4 years agoBuild fix after r204187. interval has to be a getter, not a method.
rniwa@webkit.org [Tue, 9 Aug 2016 21:50:54 +0000 (21:50 +0000)]
Build fix after r204187. interval has to be a getter, not a method.

* public/v3/components/time-series-chart.js:
(TimeSeriesChart.prototype._renderTimeSeries):
* public/v3/models/measurement-adaptor.js:
(MeasurementAdaptor.prototype.applyTo):

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

4 years agoFix windows build.
weinig@apple.com [Tue, 9 Aug 2016 21:36:54 +0000 (21:36 +0000)]
Fix windows build.

* wtf/Variant.h:
(std::experimental::__visit_helper2::__visit):
MSVC does not support extended constexpr. Use a ternary operator instead of an if statement.

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

4 years agoFix a typo that was supposed to be fixed in r204296 before landing.
rniwa@webkit.org [Tue, 9 Aug 2016 21:34:03 +0000 (21:34 +0000)]
Fix a typo that was supposed to be fixed in r204296 before landing.

* public/v3/pages/chart-pane.js:
(ChartPane):
(ChartPane.prototype.updateFromSerializedState):
(ChartPane.prototype._analyzeRange):
(ChartPane.prototype._renderTrendLinePopover):
(ChartPane.prototype._trendLineTypeDidChange):

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

4 years agoImplement "dumb" WK2 support for gamepads.
beidson@apple.com [Tue, 9 Aug 2016 21:29:05 +0000 (21:29 +0000)]
Implement "dumb" WK2 support for gamepads.
https://bugs.webkit.org/show_bug.cgi?id=160700

Reviewed by Alex Christensen.

With this patch, gamepads work in WK2.

Things known to be missing to make this mechanism more "smart":
  - Refresh values along with display sync instead of on a 60hz timer (bug 160673)
  - Only send updated values to the current focused web page (bug 160699)

* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:

* Shared/Gamepad/GamepadData.cpp: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.
(WebKit::GamepadData::encode):
(WebKit::GamepadData::decode):
(WebKit::GamepadData::isNull):
(WebKit::GamepadData::loggingString):
* Shared/Gamepad/GamepadData.h: Copied from Source/WebKit2/WebProcess/Gamepad/WebGamepad.h.

* UIProcess/Gamepad/UIGamepad.cpp: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.
(WebKit::UIGamepad::UIGamepad):
(WebKit::UIGamepad::updateFromPlatformGamepad):
(WebKit::UIGamepad::gamepadData):
* UIProcess/Gamepad/UIGamepad.h: Copied from Source/WebKit2/WebProcess/Gamepad/WebGamepad.h.
(WebKit::UIGamepad::index):

* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::updateTimerFired):
(WebKit::UIGamepadProvider::startOrStopSynchingGamepadState):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformGamepads):
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformGamepads):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::gamepadConnected):
(WebKit::WebProcessPool::gamepadDisconnected):
(WebKit::WebProcessPool::gamepadActivity):
* UIProcess/WebProcessPool.h:

* WebProcess/Gamepad/WebGamepad.cpp:
(WebKit::WebGamepad::WebGamepad):
(WebKit::WebGamepad::axisValues):
(WebKit::WebGamepad::buttonValues):
(WebKit::WebGamepad::updateValues):
* WebProcess/Gamepad/WebGamepad.h:

* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadDisconnected):
(WebKit::WebGamepadProvider::gamepadActivity):
(WebKit::WebGamepadProvider::platformGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::gamepadConnected):
(WebKit::WebProcess::gamepadDisconnected):
(WebKit::WebProcess::gamepadActivity):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

4 years agoAlways show segmentation on v3 charts page
rniwa@webkit.org [Tue, 9 Aug 2016 21:22:54 +0000 (21:22 +0000)]
Always show segmentation on v3 charts page
https://bugs.webkit.org/show_bug.cgi?id=160576

Rubber-stamped by Chris Dumez.

Added "Trend Lines" popover to select and customize a moving average or a segmentation to show on charts page
and made Schwarz criterion segmentation the default trend line for all charts.

Because computing the segmentation is expensive, we use WebWorker to parallelize the computation via AsyncTask.
We also compute and cache the segmentation for each cluster separately to avoid processing the entire measurement
set as that could take 10-20s total, which was a huge problem in v2 UI. v3 UI's approach is more incremental and
even opens up an opportunity to cache the results in the server side.

Also brought back "shading" for the confidence interval drawing as done in v1 and v2 UI.

* public/shared/statistics.js:
(Statistics.segmentTimeSeriesByMaximizingSchwarzCriterion): Added segmentCountWeight and gridSize as arguments
to customize the algorithm.
(Statistics.splitIntoSegmentsUntilGoodEnough): Takes segmentCountWeight as BirgeAndMassartC.

* public/v3/async-task.js: Added.
(AsyncTask): Added. This class represents a task such as computing segmentation to be executed in a worker.
(AsyncTask.prototype.execute): Added. Returns a promise that gets resolved when the specified task completes.
(AsyncTaskWorker.waitForAvailableWorker): Added. Calls the given callback with the first available worker. When
all workers are processing some tasks, it waits until one becomes available by putting the callback into a queue.
_didRecieveMessage pops an item out of this queue when a worker completes a task. We don't use a promise here
because calling this function multiple times synchronously could result in all the returned promises getting
resolved with the same worker as none of the callers get to lock away the first available worker until the end
of the current micro-task.
(AsyncTaskWorker._makeWorkerEventuallyAvailable): Added. A helper function for waitForAvailableWorker. Start
a new worker if the number of workers we've started is less than the number of extra cores (e.g. 7 if there are
8 cores on the machine). Avoid starting a new worker if we've started a new worker within the last 50 ms since
starting a new worker takes some time.
(AsyncTaskWorker._findAvailableWorker): Added. Finds a worker that's available right now if there is any.
(AsyncTaskWorker): Added. An instance of AsyncTaskWorker represents a Web worker.
(AsyncTaskWorker.prototype.id): Added.
(AsyncTaskWorker.prototype.sendTask): Added. Sends a task represented by AsyncTask to the worker.
(AsyncTaskWorker.prototype._didRecieveMessage): Added. This function gets called when the current task completes
in the worker. Pop the next callback if some caller of waitForAvailableWorker is still waiting. Otherwise stop
the worker after one second of waiting to avoid worker churning.
(AsyncTaskWorker.workerDidRecieveMessage): Added. Called by onmessage on the worker. Executes the specified task
and sends back a message upon completion with the appropriate timing data.

* public/v3/components/chart-pane-base.js:
(ChartPaneBase.prototype.configure): Uses _createSourceList.
(ChartPaneBase.prototype._createSourceList): Added. Extracted from configure to customize the source list for
the main chart and the overview chart.
(ChartPaneBase.prototype._updateSourceList): Uses _createSourceList.

* public/v3/components/chart-styles.js:
(ChartStyles.createSourceList): Added a boolean showPoint as an extra argument. This specifies whether circles
are drawn for each data point.
(ChartStyles.baselineStyle): Added styles for foreground lines and background lines. They're used for trend lines
and underlying raw data respectively when trend lines are shown.
(ChartStyles.targetStyle): Ditto.
(ChartStyles.currentStyle): Ditto.

* public/v3/components/time-series-chart.js:
(TimeSeriesChart): Added _trendLines, _renderedTrendLines, and _fetchedTimeSeries as instance variables.
(TimeSeriesChart.prototype.setSourceList): Clear _fetchedTimeSeries before calling setSourceList for consistency.
(TimeSeriesChart.prototype.sourceList): Added.
(TimeSeriesChart.prototype.clearTrendLines): Added.
(TimeSeriesChart.prototype.setTrendLine): Added. Preserves the existing trend lines for other sources. This is
necessary because segmentation for "current" and "baseline" lines may become available at different times, and we
don't want to clear one or the other when setting one.
(TimeSeriesChart.prototype._layout): Added a call to _ensureTrendLines.
(TimeSeriesChart.prototype._renderChartContent): Call _renderTimeSeries for trend lines. Trend lines are always
foreground lines and "regular" raw data points are drawn as background if there are trend lines.
(TimeSeriesChart.prototype._renderTimeSeries): Added layerName as an argument. It could be an empty string,
"foreground", or "background". Draw a "shade" just like v1 and v2 UI instead of vertical lines for the confidence
intervals. Pick "foreground", "background", or "regular" chart style based on layerName. Also avoid drawing data
points when *PointRadius is set to zero to reduce the runtime of this function.
(TimeSeriesChart.prototype._sourceOptionWithFallback): Added.
(TimeSeriesChart.prototype._ensureSampledTimeSeries): When *PointRadius is 0, show as many points as there are x
coordinates as a fallback instead of showing every point.
(TimeSeriesChart.prototype._ensureTrendLines): Added. Returns true if the chart contents haven't been re-rendered
since the last update to trend lines. This flag is unset by setTrendLine.

* public/v3/index.html:

* public/v3/models/measurement-cluster.js:
(MeasurementCluster.prototype.addToSeries): Store the data points' index to idMap to help aid MeasurementSet's
_cachedClusterSegmentation efficiently re-create the segmentation from the cache.

* public/v3/models/measurement-set.js:
(MeasurementSet): Added _segmentationCache as an instance variable.
(MeasurementSet.prototype.fetchSegmentation): Added. Calls _cachedClusterSegmentation on each cluster, and
constructs the time series representation of the segmentation from the results.
(MeasurementSet.prototype._cachedClusterSegmentation): Computes and caches the segmentation for each cluster.
The cache of segmentation stores ID of each measurement set at which segment changes instead of its index since
the latter could change in any moment when a new test result is reported, or an existing test result is removed
from the time series; e.g. when it's marked as an outlier.
(MeasurementSet.prototype._validateSegmentationCache): Added. Checks whether the cached segmentation's name and
its parameters match that of the requested one.
(MeasurementSet.prototype._invokeSegmentationAlgorithm): Added. Invokes the segmentation algorithm either in the
main thread or in a Web worker via AsyncTask API based on the size of the time series. While parallelizing the
work is beneficial when the data set is large, the overhead can add up if we keep processing a very small data
set in a worker.

* public/v3/models/time-series.js: Made the file compatible with Node.
(TimeSeries.prototype.length): Added.
(TimeSeries.prototype.valuesBetweenRange): Added.

* public/v3/pages/chart-pane.js:
(createTrendLineExecutableFromAveragingFunction): Added.
(ChartTrendLineTypes): Added. Similar to StatisticsStrategies (statistics-strategies.js) in v2 UI.
(ChartPane): Added _trendLineType, _trendLineParameters, _trendLineVersion, and _renderedTrendLineOptions as
instance variables.
(ChartPane.prototype.serializeState): Serialize the trend line option. This format is compatible with v2 UI.
(ChartPane.prototype.updateFromSerializedState): Ditto. Parsing is compatible with v2 UI except that we now have
the default trend line set when the specified ID doesn't match an existing type ID.
(ChartPane.prototype._renderActionToolbar): Added a call to _renderTrendLinePopover. This is the popover that
specifies the type of a trend line to show as well as its parameters.
(ChartPane.prototype._renderTrendLinePopover): Added. A popover for specifying and customizing a trend line.
(ChartPane.prototype._trendLineTypeDidChange): Added. Called when a new trend line is selected.
(ChartPane.prototype._defaultParametersForTrendLine): Added.
(ChartPane.prototype._trendLineParameterDidChange): Added. Called when the trend lines' parameters are changed.
(ChartPane.prototype._didFetchData): Added. Overrides the one in ChartPaneBase to trigger a trend line update.
(ChartPane.prototype._updateTrendLine): Added. Update the trend line. Since segmentation can take an arbitrary
long time, avoid updating trend lines if this function had been called again (possibly for a different trend line
type or with different parameters) before the results become available; hence the versioning.
(ChartPane.paneHeaderTemplate): Added the trend line popover.
(ChartPane.cssTemplate): Added styles for the trend line popover. Also use a more opaque background color behind
popovers when the -webkit-backdrop-filter property is not supported.

* public/v3/pages/dashboard-page.js:
(DashboardPage.prototype._createChartForCell): Call createSourceList with showPoints set to true to preserve the
existing behavior.

* tools/js/v3-models.js: Include TimeSeries object.

* unit-tests/measurement-set-tests.js: Added two test cases for MeasurementSet's fetchSegmentation.

* unit-tests/resources/almost-equal.js: Added.
(almostEqual): Extracted out of statistics-tests.js.

* unit-tests/statistics-tests.js:

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

4 years agoDrop unused NodeListsNodeData::isEmpty()
cdumez@apple.com [Tue, 9 Aug 2016 21:13:42 +0000 (21:13 +0000)]
Drop unused NodeListsNodeData::isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=160704

Reviewed by Ryosuke Niwa.

Drop unused NodeListsNodeData::isEmpty(). Its implementation is incorrect
anyway because it fails to check if the m_childNodeList / m_emptyChildNodeList
members are null.

* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::isEmpty): Deleted.

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

4 years ago[Win] Crash in MiniBrowser.
pvollan@apple.com [Tue, 9 Aug 2016 20:59:16 +0000 (20:59 +0000)]
[Win] Crash in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=160686

Reviewed by Sam Weinig.

We need to specify a plugin info provider object in the page configuration.

* WebView.cpp:
(WebView::initWithFrame):

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

4 years agoMake directory reading code in iOSSimulatorDevices() more strict
ap@apple.com [Tue, 9 Aug 2016 20:33:08 +0000 (20:33 +0000)]
Make directory reading code in iOSSimulatorDevices() more strict
https://bugs.webkit.org/show_bug.cgi?id=160702

Reviewed by Tim Horton.

* Scripts/webkitdirs.pm:
(iOSSimulatorDevices):

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

4 years agoSource/WebCore:
weinig@apple.com [Tue, 9 Aug 2016 20:31:42 +0000 (20:31 +0000)]
Source/WebCore:
Replace NodeOrString with std::variant<Ref<Node>, String>
https://bugs.webkit.org/show_bug.cgi?id=160638

Reviewed by Anders Carlsson.

* WebCore.xcodeproj/project.pbxproj:
Remove NodeOrString.h/cpp

* bindings/js/JSNodeOrString.cpp:
* bindings/js/JSNodeOrString.h:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):
* dom/ContainerNode.h:
* dom/Node.cpp:
(WebCore::nodeSetPreTransformedFromNodeOrStringVector):
(WebCore::firstFollowingSiblingNotInNodeSet):
(WebCore::Node::convertNodesOrStringsIntoNode):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
* dom/Node.h:
Replace NodeOrString with std::variant<Ref<Node>, String> and move convertNodesOrStringsIntoNode
into Node.

* dom/NodeOrString.cpp: Removed.
* dom/NodeOrString.h: Removed.

Source/WTF:
Replace NodeOrString with std::variant<RefPtr<Node>, String>
https://bugs.webkit.org/show_bug.cgi?id=160638

Reviewed by Anders Carlsson.

* wtf/StdLibExtras.h:
(WTF::Visitor::Visitor):
(WTF::makeVisitor):
Add WTF::makeVisitor() which takes a list of lambdas to use
an an overload set for a visitor object.

Also, re-export std::experimental::variant (and helpers) in the std
namespace using type aliasing.

* wtf/Variant.h:
Make std::experimental::variant work in WebCore.

Tools:
Replace NodeOrString with std::variant<RefPtr<Node>, String>
https://bugs.webkit.org/show_bug.cgi?id=160638

Reviewed by Anders Carlsson.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/Tests/WTF/Variant.cpp:
Add additional tests for the initial state of std::variant and using
makeVisitor for visiting.

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

4 years agoFix build.
andersca@apple.com [Tue, 9 Aug 2016 19:57:24 +0000 (19:57 +0000)]
Fix build.

* WebCoreSupport/WebPlatformStrategies.h:

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

4 years agoEWS logging should ensure the logging to file is stopped on queue termination
aakash_jain@apple.com [Tue, 9 Aug 2016 19:30:16 +0000 (19:30 +0000)]
EWS logging should ensure the logging to file is stopped on queue termination
https://bugs.webkit.org/show_bug.cgi?id=160698
rdar://problem/24464570

Reviewed by Daniel Bates.

* Scripts/webkitpy/tool/bot/queueengine.py:
(QueueEngine._stopping): Stop logging to file on queue termination.
(QueueEngine._begin_logging): Configure the Python logger to log to file.
* Scripts/webkitpy/common/system/logutils.py:
(configure_logger_to_log_to_file): Return the handler so as to enable caller to remove it later.
* Scripts/webkitpy/tool/bot/queueengine_unittest.py:
(QueueEngineTest._run_engine): Removed extra newline character to improve log readability.
* Scripts/webkitpy/tool/commands/queues.py:
(AbstractQueue._log_directory): Reverting to os.path.join as we don't have host object.
(AbstractQueue.queue_log_path): Same.
(AbstractQueue.begin_work_queue): Removed logging initialization, it is now being done in QueueEngine.
(AbstractQueue.__init__): Removed host parameter, not required anymore, it was required by logging initialization
which moved to QueueEngine now.
(PatchProcessingQueue.__init__): Same.
(CommitQueue.__init__): Same.
(AbstractReviewQueue.__init__): Same.
(StyleQueue.__init__): Same.
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(TestCommitQueue): Removed host parameter.
(TestCommitQueue.__init__): Same.
(AbstractPatchQueueTest.test_next_patch): Same.
(PatchProcessingQueueTest.test_upload_results_archive_for_patch): Same.
(test_commit_queue_failure): Same.
(mock_run_webkit_patch):
(MockCommitQueueTask.results_from_patch_test_run): Same.
(test_rollout_lands): Same.
(test_non_valid_patch): Same.
(test_auto_retry): Same.
(test_style_queue_with_watch_list_exception): Same.
(TestQueue.__init__): Deleted.
(TestReviewQueue.__init__): Deleted.
(TestFeederQueue.__init__): Deleted.

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

4 years agoIt should be possible to re-initialize a CustomEvent after it's been dispatched
cdumez@apple.com [Tue, 9 Aug 2016 18:52:11 +0000 (18:52 +0000)]
It should be possible to re-initialize a CustomEvent after it's been dispatched
https://bugs.webkit.org/show_bug.cgi?id=160664

Reviewed by Darin Adler.

Source/WebCore:

It should be possible to re-initialize a CustomEvent after it's been dispatched:
- https://dom.spec.whatwg.org/#dom-customevent-initcustomevent

Test: fast/events/initCustomEvent-after-dispatch.html

* dom/CustomEvent.cpp:
(WebCore::CustomEvent::initCustomEvent):

LayoutTests:

* fast/events/initCustomEvent-after-dispatch-expected.txt: Copied from LayoutTests/fast/events/initEvent-after-dispatch-expected.txt.
* fast/events/initCustomEvent-after-dispatch.html: Copied from LayoutTests/fast/events/initEvent-after-dispatch.html.
Add layout test coverage.

* fast/events/initEvent-after-dispatch-expected.txt:
* fast/events/initEvent-after-dispatch.html:
Fix related layout test.

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

4 years agoGet rid of PluginStrategy
andersca@apple.com [Tue, 9 Aug 2016 18:06:30 +0000 (18:06 +0000)]
Get rid of PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=160696

Reviewed by Dan Bernstein.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* loader/EmptyClients.cpp:
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::pluginStrategy): Deleted.
* plugins/PluginInfoProvider.h:
* plugins/PluginStrategy.h: Removed.
(WebCore::PluginStrategy::~PluginStrategy): Deleted.

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::createPluginStrategy): Deleted.
* WebCoreSupport/WebPluginInfoProvider.h:
* WebCoreSupport/WebPluginInfoProvider.mm:
(WebPluginInfoProvider::setPluginLoadClientPolicy): Deleted.
(WebPluginInfoProvider::clearPluginClientPolicies): Deleted.

Source/WebKit/win:

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createPluginStrategy): Deleted.

Source/WebKit2:

* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createPluginStrategy): Deleted.
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPluginStrategy): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

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

4 years agoAdd WKPage SPI for looking up a WKFrame given a WKFrameHandle
mitz@apple.com [Tue, 9 Aug 2016 17:01:39 +0000 (17:01 +0000)]
Add WKPage SPI for looking up a WKFrame given a WKFrameHandle
https://bugs.webkit.org/show_bug.cgi?id=160695

Reviewed by Anders Carlsson.

* UIProcess/API/C/WKPage.cpp:
(WKPageLookUpFrameFromHandle): Added. Gets the frame from the map in the page’s process and
  returns it if it belongs to the page.
* UIProcess/API/C/WKPagePrivate.h:

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

4 years agowebkit-gtk tarball fails to build due to missing files
annulen@yandex.ru [Tue, 9 Aug 2016 16:57:46 +0000 (16:57 +0000)]
webkit-gtk tarball fails to build due to missing files
https://bugs.webkit.org/show_bug.cgi?id=160684

Reviewed by Alex Christensen.

* gtk/manifest.txt.in: Added back spi directories.

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

4 years agoMove plug-in enumeration from WebPlatformStrategies to WebPluginInfoProvider
andersca@apple.com [Tue, 9 Aug 2016 16:57:38 +0000 (16:57 +0000)]
Move plug-in enumeration from WebPlatformStrategies to WebPluginInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=160694

Reviewed by Dan Bernstein.

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::createPluginStrategy):
(WebPlatformStrategies::refreshPlugins): Deleted.
(WebPlatformStrategies::getPluginInfo): Deleted.
(WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
(WebPlatformStrategies::setPluginLoadClientPolicy): Deleted.
(WebPlatformStrategies::clearPluginClientPolicies): Deleted.
* WebCoreSupport/WebPluginInfoProvider.mm:
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

Source/WebKit/win:

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createPluginStrategy):
(WebPlatformStrategies::refreshPlugins): Deleted.
(WebPlatformStrategies::getPluginInfo): Deleted.
(WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPluginInfoProvider.cpp:
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

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

4 years agoMove plug-in code from WebPlatformStrategies to WebPluginInfoProvider
andersca@apple.com [Tue, 9 Aug 2016 16:26:28 +0000 (16:26 +0000)]
Move plug-in code from WebPlatformStrategies to WebPluginInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=160679

Reviewed by Alex Christensen.

* WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies):
(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache):
(WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost):
(WebKit::WebPluginInfoProvider::longestMatchedWildcardHostForHost):
(WebKit::WebPluginInfoProvider::replaceHostWithMatchedWildcardHost):
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPluginStrategy):
(WebKit::WebPlatformStrategies::WebPlatformStrategies): Deleted.
(WebKit::WebPlatformStrategies::refreshPlugins): Deleted.
(WebKit::WebPlatformStrategies::getPluginInfo): Deleted.
(WebKit::WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost): Deleted.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
(WebKit::WebPlatformStrategies::populatePluginCache): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicy):
(WebKit::WebProcess::clearPluginClientPolicies):

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

4 years ago[GTK] Build the jhbuild with -O2 optimization level by default
clopez@igalia.com [Tue, 9 Aug 2016 10:37:44 +0000 (10:37 +0000)]
[GTK] Build the jhbuild with -O2 optimization level by default
https://bugs.webkit.org/show_bug.cgi?id=160544

Reviewed by Michael Catanzaro.

* gtk/jhbuildrc: Pass -O2 when building the JHBuild, as also -g1
which don't increases the required disk space significatively and
provides better debug information than no passing it.

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

4 years agoAllow more --cmakeargs option in build-jsc and build-webkit
ossy@webkit.org [Tue, 9 Aug 2016 09:11:06 +0000 (09:11 +0000)]
Allow more --cmakeargs option in build-jsc and build-webkit
https://bugs.webkit.org/show_bug.cgi?id=160340

Reviewed by Michael Catanzaro.

* Scripts/build-jsc:
* Scripts/build-webkit:

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