WebKit-https.git
3 years ago[WinCairo][MediaFoundation] Release Direct3D swap chain object earlier.
peavo@outlook.com [Thu, 17 Dec 2015 20:57:20 +0000 (20:57 +0000)]
[WinCairo][MediaFoundation] Release Direct3D swap chain object earlier.
https://bugs.webkit.org/show_bug.cgi?id=152392

Reviewed by Alex Christensen.

Since we don't use the swap chain object to render the video to a window,
but render frames to Cairo bitmaps, we can let go of the swap chain object
earlier than we currently do.

* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::clearDesiredSampleTime):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createVideoSamples):

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

3 years agorun-webkit-tests shouldn't start multiple iOS simulators while only running one test
commit-queue@webkit.org [Thu, 17 Dec 2015 20:28:50 +0000 (20:28 +0000)]
run-webkit-tests shouldn't start multiple iOS simulators while only running one test
https://bugs.webkit.org/show_bug.cgi?id=152157
<rdar://problem/23851817>

Patch by Aakash Jain <aakash_jain@apple.com> on 2015-12-17
Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner.get_worker_count): Calculate required number of workers.
* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._get_test_inputs): Common method to calculate test_inputs.
(Manager._update_worker_count): Calculate and update required number of workers.

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

3 years agoSkipping http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with...
ryanhaddad@apple.com [Thu, 17 Dec 2015 20:21:19 +0000 (20:21 +0000)]
Skipping http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-* tests on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152390

Unreviewed test gardening.

* platform/ios-simulator/TestExpectations:

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

3 years agoUnreviewed, rolling out r194201.
commit-queue@webkit.org [Thu, 17 Dec 2015 19:52:25 +0000 (19:52 +0000)]
Unreviewed, rolling out r194201.
https://bugs.webkit.org/show_bug.cgi?id=152391

Caused crashes with GuardMalloc (Requested by ap|away on
#webkit).

Reverted changeset:

"Reduce PassRefPtr uses in dom - 2"
https://bugs.webkit.org/show_bug.cgi?id=151936
http://trac.webkit.org/changeset/194201

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

3 years agoData detector yellow highlight location is vertically mirrored in WebKit1
timothy_horton@apple.com [Thu, 17 Dec 2015 19:42:04 +0000 (19:42 +0000)]
Data detector yellow highlight location is vertically mirrored in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=152216
<rdar://problem/23848003>

Reviewed by Darin Adler.

* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
Match the conversion we do at every other WK1 TextIndicator construction.

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

3 years agoClosing a pane on v3 UI always closes the last pane
rniwa@webkit.org [Thu, 17 Dec 2015 18:33:09 +0000 (18:33 +0000)]
Closing a pane on v3 UI always closes the last pane
https://bugs.webkit.org/show_bug.cgi?id=152388

Reviewed by Chris Dumez.

The bug was caused by closePane being called without arguments. (The first argument to bind is "this" value.)
Fixed it by passing in "this" pane object to the first argument.

* public/v3/pages/chart-pane.js:
(ChartPane):

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

3 years agoFix unused parameter handling in WebGLRenderingContextBase.cp
ossy@webkit.org [Thu, 17 Dec 2015 17:58:11 +0000 (17:58 +0000)]
Fix unused parameter handling in WebGLRenderingContextBase.cp
https://bugs.webkit.org/show_bug.cgi?id=152387

Reviewed by Alex Christensen.

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::activeTexture):
(WebCore::WebGLRenderingContextBase::attachShader):
(WebCore::WebGLRenderingContextBase::bindAttribLocation):
(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindRenderbuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::bufferData):
(WebCore::WebGLRenderingContextBase::bufferSubData):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::createShader):
(WebCore::WebGLRenderingContextBase::detachShader):
(WebCore::WebGLRenderingContextBase::disableVertexAttribArray):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::enableVertexAttribArray):
(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getAttachedShaders):
(WebCore::WebGLRenderingContextBase::getBufferParameter):
(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getProgramInfoLog):
(WebCore::WebGLRenderingContextBase::getRenderbufferParameter):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::getShaderInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContextBase::getShaderSource):
(WebCore::WebGLRenderingContextBase::getTexParameter):
(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::getVertexAttrib):
(WebCore::WebGLRenderingContextBase::linkProgram):
(WebCore::WebGLRenderingContextBase::shaderSource):
(WebCore::WebGLRenderingContextBase::uniform1f):
(WebCore::WebGLRenderingContextBase::uniform1fv):
(WebCore::WebGLRenderingContextBase::uniform1i):
(WebCore::WebGLRenderingContextBase::uniform1iv):
(WebCore::WebGLRenderingContextBase::uniform2f):
(WebCore::WebGLRenderingContextBase::uniform2fv):
(WebCore::WebGLRenderingContextBase::uniform2i):
(WebCore::WebGLRenderingContextBase::uniform2iv):
(WebCore::WebGLRenderingContextBase::uniform3f):
(WebCore::WebGLRenderingContextBase::uniform3fv):
(WebCore::WebGLRenderingContextBase::uniform3i):
(WebCore::WebGLRenderingContextBase::uniform3iv):
(WebCore::WebGLRenderingContextBase::uniform4f):
(WebCore::WebGLRenderingContextBase::uniform4fv):
(WebCore::WebGLRenderingContextBase::uniform4i):
(WebCore::WebGLRenderingContextBase::uniform4iv):
(WebCore::WebGLRenderingContextBase::uniformMatrix2fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix3fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix4fv):
(WebCore::WebGLRenderingContextBase::useProgram):
(WebCore::WebGLRenderingContextBase::validateProgram):
(WebCore::WebGLRenderingContextBase::vertexAttribPointer):

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

3 years ago[GTK] Unreviewed gardening
commit-queue@webkit.org [Thu, 17 Dec 2015 13:25:08 +0000 (13:25 +0000)]
[GTK] Unreviewed gardening

Remove failure expectations for tests that have been passing after
r185157, r186191, r189670, r191658 and r191727.

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2015-12-17

* platform/gtk/TestExpectations:

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

3 years agoRemove temporary flakiness expectations for WPT tests introduced for bug 152257
youenn.fablet@crf.canon.fr [Thu, 17 Dec 2015 11:02:22 +0000 (11:02 +0000)]
Remove temporary flakiness expectations for WPT tests introduced for bug 152257
https://bugs.webkit.org/show_bug.cgi?id=152377

Unreviewed.

LayoutTests/imported/w3c:

* web-platform-tests/dom/interfaces-expected.txt: Rebased according latest testharness.js.
* web-platform-tests/html/dom/interfaces-expected.txt: Ditto.

LayoutTests:

* TestExpectations: removing some flakiness expectations.

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

3 years ago[ES6] Handle new_generator_func / new_generator_func_exp in DFG / FTL
utatane.tea@gmail.com [Thu, 17 Dec 2015 10:33:08 +0000 (10:33 +0000)]
[ES6] Handle new_generator_func / new_generator_func_exp in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=152227

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch introduces new_generator_func / new_generator_func_exp into DFG and FTL.
We add a new DFG Node, NewGeneratorFunction. It will construct a function with GeneratorFunction's structure.
The structure of GeneratorFunction is different from one of Function because GeneratorFunction has the different __proto__.

Instead of extending NewFunction / PhantomNewFunction, we just added new DFG nodes, NewGeneratorFunction and PhantomNewGeneratorFunction.
This is because NewGeneratorFunction will generate an object that has different class info from JSFunction (And if JSGeneratorFunction is extended, its size will become different from JSFunction).
So, rather than extending NewFunction with generator flag, just adding new DFG nodes seems cleaner.

Object allocation sinking phase will change NewGeneratorFunction to PhantomNewGeneratorFunction and defer or eliminate its actual materialization.
It is completely the same to NewFunction and PhantomNewFunction.
And when OSR exit occurs, we need to execute deferred NewGeneratorFunction since Baseline JIT does not consider it.
So in FTL operation, we should create JSGeneratorFunction if we see PhantomNewGeneratorFunction materialization.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGMayExit.cpp:
(JSC::DFG::mayExit):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomNewFunction):
(JSC::DFG::Node::convertToPhantomNewGeneratorFunction):
(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::isFunctionAllocation):
(JSC::DFG::Node::isPhantomFunctionAllocation):
(JSC::DFG::Node::isPhantomAllocation):
* dfg/DFGNodeType.h:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewFunction):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validateCPS):
(JSC::DFG::Validate::validateSSA):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewFunction):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):
* tests/stress/generator-function-create-optimized.js: Added.
(shouldBe):
(g):
(test.return.gen):
(test):
(test2.gen):
(test2):
* tests/stress/generator-function-declaration-sinking-no-double-allocate.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(call):
(f):
(sink):
* tests/stress/generator-function-declaration-sinking-osrexit.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(f):
(sink):
* tests/stress/generator-function-declaration-sinking-put.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(f):
(sink):
* tests/stress/generator-function-expression-sinking-no-double-allocate.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(call):
(f):
(sink):
* tests/stress/generator-function-expression-sinking-osrexit.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(sink):
* tests/stress/generator-function-expression-sinking-put.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(sink):

LayoutTests:

Make the test taking longer time.

* js/regress/script-tests/generator-function-create.js:
(test):

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

3 years agoWeb Inspector: REGRESSION (r193913): Popover covers completion suggestions
mattbaker@apple.com [Thu, 17 Dec 2015 08:15:53 +0000 (08:15 +0000)]
Web Inspector: REGRESSION (r193913): Popover covers completion suggestions
https://bugs.webkit.org/show_bug.cgi?id=152369

Reviewed by Timothy Hatcher.

* UserInterface/Views/Variables.css:
(:root):
Swap popover and tooltip z-index ordering.

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

3 years agoMake SessionID use intHash
commit-queue@webkit.org [Thu, 17 Dec 2015 07:49:45 +0000 (07:49 +0000)]
Make SessionID use intHash
https://bugs.webkit.org/show_bug.cgi?id=152356

Patch by Alex Christensen <achristensen@webkit.org> on 2015-12-16
Reviewed by Darin Adler.

* page/SessionID.h:
(WTF::SessionIDHash::hash):
(WTF::SessionIDHash::equal):
(WTF::HashTraits<WebCore::SessionID>::emptyValue):
(WTF::HashTraits<WebCore::SessionID>::constructDeletedValue):
(WTF::HashTraits<WebCore::SessionID>::isDeletedValue):
Use intHash instead of just casting a uint64_t to an unsigned.
This reduces hash collisions in HashTables that are usually quite small so it isn't much of a problem.
Also, needsDestruction hasn't been in HashTraits since r156507.

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

3 years agoProgress towards implementing downloads with NetworkSession
achristensen@apple.com [Thu, 17 Dec 2015 07:07:36 +0000 (07:07 +0000)]
Progress towards implementing downloads with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=152371

Reviewed by Darin Adler.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::downloadRequest):
(WebKit::NetworkProcess::resumeDownload):
(WebKit::NetworkProcess::cancelDownload):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
* Shared/Authentication/AuthenticationManager.h:
* Shared/Downloads/Download.cpp:
(WebKit::Download::Download):
(WebKit::Download::didReceiveAuthenticationChallenge):
* Shared/Downloads/Download.h:
* Shared/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
(WebKit::DownloadManager::convertHandleToDownload):
(WebKit::DownloadManager::resumeDownload):
(WebKit::DownloadManager::cancelDownload):
(WebKit::DownloadManager::downloadFinished):
(WebKit::DownloadManager::didCreateDownload):
* Shared/Downloads/DownloadManager.h:
* Shared/Downloads/cocoa: Added.
* Shared/Downloads/cocoa/DownloadCocoa.mm: Added.
(WebKit::Download::start):
(WebKit::Download::resume):
(WebKit::Download::cancel):
(WebKit::Download::platformInvalidate):
* Shared/Downloads/ios/DownloadIOS.mm:
* Shared/Downloads/mac/DownloadMac.mm:
(WebKit::Download::start):
(WebKit::Download::startWithHandle):
(WebKit::Download::resume):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::resumeDownload):
* UIProcess/WebProcessPool.h:
* WebKit2.xcodeproj/project.pbxproj:

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

3 years agoFix the debug region overlays for RTL documents
simon.fraser@apple.com [Thu, 17 Dec 2015 06:56:55 +0000 (06:56 +0000)]
Fix the debug region overlays for RTL documents
https://bugs.webkit.org/show_bug.cgi?id=152372

Reviewed by Darin Adler.

Fix document overlays to use document coordinates when painting, which requires
translating the CTM, and counter-translating the dirtyRect by the scroll origin.
This is only non-zero for RTL documents.

While doing this, I noticed that the scroll origin was misplaced by the scrollbar
width when using overlay scrollbars. Fix by using occupiedWidth/Height() in
ScrollView::updateScrollbars(). I was not able to make a test for this change.

* page/FrameView.cpp:
(WebCore::FrameView::adjustViewSize):
* page/PageOverlay.cpp:
(WebCore::PageOverlay::drawRect):
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):

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

3 years ago[iOS] Block loading external stylesheets in the Content-Disposition: attachment sandbox
aestes@apple.com [Thu, 17 Dec 2015 05:53:40 +0000 (05:53 +0000)]
[iOS] Block loading external stylesheets in the Content-Disposition: attachment sandbox
https://bugs.webkit.org/show_bug.cgi?id=152375
<rdar://problem/22020902>

Reviewed by Darin Adler.

Source/WebCore:

Tests: http/tests/contentdispositionattachmentsandbox/at-import-stylesheets-disabled.html
       http/tests/contentdispositionattachmentsandbox/external-stylesheets-disabled.html
       http/tests/contentdispositionattachmentsandbox/xml-stylesheet-processing-instructions-disabled.html

* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest): Moved handling of CachedResource::MainResource to canRequestInContentDispositionAttachmentSandbox().
(WebCore::CachedResourceLoader::canRequestInContentDispositionAttachmentSandbox): In addition to handling CachedResource::MainResource,
added handling for CachedResource::CSSStyleSheet. Added a FIXME asking whether we should handle other types of resources, too.
* loader/cache/CachedResourceLoader.h:

LayoutTests:

* http/tests/contentdispositionattachmentsandbox/at-import-stylesheets-disabled-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/at-import-stylesheets-disabled.html: Added.
* http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt:
* http/tests/contentdispositionattachmentsandbox/external-stylesheets-disabled-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/external-stylesheets-disabled.html: Added.
* http/tests/contentdispositionattachmentsandbox/resources/at-import-stylesheets-frame.php: Added.
* http/tests/contentdispositionattachmentsandbox/resources/external-stylesheets-frame.php: Added.
* http/tests/contentdispositionattachmentsandbox/resources/xml-stylesheet-processing-instructions-frame.php: Added.
* http/tests/contentdispositionattachmentsandbox/xml-stylesheet-processing-instructions-disabled-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/xml-stylesheet-processing-instructions-disabled.html: Added.

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

3 years agoARM64 MacroAssembler improperly reuses data temp register in test32() and test8(...
msaboff@apple.com [Thu, 17 Dec 2015 05:02:49 +0000 (05:02 +0000)]
ARM64 MacroAssembler improperly reuses data temp register in test32() and test8() calls
https://bugs.webkit.org/show_bug.cgi?id=152370

Reviewed by Benjamin Poulain.

Changed the test8/32(Address, Register) flavors to use the memoryTempRegister for loading the value
att Address so that it doesn't collide with the subsequent use of dataTempRegister by the
test32(Register, Register) function.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::test32):
(JSC::MacroAssemblerARM64::test8):

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

3 years agoPerf Dashboard v3 UI doesn't show recent data points on v2 UI
rniwa@webkit.org [Thu, 17 Dec 2015 04:26:32 +0000 (04:26 +0000)]
Perf Dashboard v3 UI doesn't show recent data points on v2 UI
https://bugs.webkit.org/show_bug.cgi?id=152368

Reviewed by Chris Dumez.

The bug was caused by the last modified date in measurement set JSON being a string instead of a POSIX timestamp,
which prevented the v3 UI from invalidating the cache. Specifically, the following boolean logic always evaluated
to false because +data['lastModified'] was NaN in MeasurementSet.prototype._fetch (/v3/models/measurement-set.js):

!clusterEndTime && useCache && +data['lastModified'] < self._lastModified

Fixed the bug by calling Database::to_js_time on the last modified date fetched from the database.

* public/api/measurement-set.php:
(MeasurementSetFetcher::fetch_config_list): Convert the string returned by the database to a POSIX timestamp.
* tests/api-measurement-set.js: Added a test to ensure the last modified date in JSON is numeric. Since the value
of the last modified date depends on when tests run, we can't assert it to be a certain value.

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

3 years agoViewportConfiguration functions should return a bool to say if anything changed
simon.fraser@apple.com [Thu, 17 Dec 2015 03:48:34 +0000 (03:48 +0000)]
ViewportConfiguration functions should return a bool to say if anything changed
https://bugs.webkit.org/show_bug.cgi?id=152353

Reviewed by Tim Horton.

Rather than callers all checking whether setting ViewportConfiguration values
changes state, have its functions return a bool if the values change.

Source/WebCore:

* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::setContentsSize):
(WebCore::ViewportConfiguration::setMinimumLayoutSize):
(WebCore::ViewportConfiguration::setViewportArguments):
(WebCore::ViewportConfiguration::setCanIgnoreScalingConstraints):
* page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::setCanIgnoreScalingConstraints): Deleted.

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mainFrameDidLayout):
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportPropertiesDidChange):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):

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

3 years agoREGRESSION (r191299): Zoom gestures are enabled even if allowsMagnification=NO
timothy_horton@apple.com [Thu, 17 Dec 2015 03:04:11 +0000 (03:04 +0000)]
REGRESSION (r191299): Zoom gestures are enabled even if allowsMagnification=NO
https://bugs.webkit.org/show_bug.cgi?id=152373
<rdar://problem/23931998>

Reviewed by Simon Fraser.

* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::gestureEventWasNotHandledByWebCoreFromViewOnly):
Don't pass the event on to ViewGestureController if we shouldn't handle it,
just like we would have done in magnifyWithEvent before.

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

3 years agoGive kernel VM some hints about non-live memory-cached resources.
akling@apple.com [Thu, 17 Dec 2015 02:55:02 +0000 (02:55 +0000)]
Give kernel VM some hints about non-live memory-cached resources.
<https://webkit.org/b/152362>

Reviewed by Geoffrey Garen.

Source/WebCore:

When a file-backed CachedResource has no live clients left, and is only being kept alive
because it's cached in the MemoryCache, give the OS a hint that we probably won't need
that memory very soon.

Normally this doesn't do anything, but in case the system comes under memory pressure,
the kernel can prioritize eviction of such clean-but-unneeded pages, which prevents us
from throwing other processes under the bus too soon.

* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::deleteIfPossible):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::hintMemoryNotNeededSoon):
* platform/SharedBuffer.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::hintMemoryNotNeededSoon):

Source/WTF:

Add an API to OSAllocator for hinting to the OS that a range of memory
is not expected to be used anytime soon.

* wtf/OSAllocator.h:
* wtf/OSAllocatorPosix.cpp:
(WTF::OSAllocator::hintMemoryNotNeededSoon):
* wtf/OSAllocatorWin.cpp:
(WTF::OSAllocator::hintMemoryNotNeededSoon):
* wtf/Platform.h:

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

3 years agoReduce PassRefPtr uses in dom - 2
gyuyoung.kim@webkit.org [Thu, 17 Dec 2015 02:13:00 +0000 (02:13 +0000)]
Reduce PassRefPtr uses in dom - 2
https://bugs.webkit.org/show_bug.cgi?id=151936

Reviewed by Darin Adler.

Change PassRefPtr with RefPtr<Foo>&&, WTF::move(), Foo*, and Foo&.

* dom/ScopedEventQueue.h:
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::registerCallback):
* dom/ScriptedAnimationController.h:
* dom/StaticNodeList.h:
* dom/Traversal.cpp:
(WebCore::NodeIteratorBase::NodeIteratorBase):
* dom/Traversal.h:
* dom/TreeWalker.cpp:
(WebCore::TreeWalker::TreeWalker):
(WebCore::TreeWalker::setCurrentNode):
* dom/TreeWalker.h:
(WebCore::TreeWalker::create):
* dom/UserActionElementSet.h:
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::WebKitNamedFlow):
(WebCore::WebKitNamedFlow::create):
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):
* dom/WebKitNamedFlow.h:
* dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
(WebCore::WheelEvent::initWebKitWheelEvent):
* dom/WheelEvent.h:

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

3 years agorun-webkit-tests fails to delete Simulator device during cleanup
commit-queue@webkit.org [Thu, 17 Dec 2015 01:16:49 +0000 (01:16 +0000)]
run-webkit-tests fails to delete Simulator device during cleanup
https://bugs.webkit.org/show_bug.cgi?id=152363

Patch by Aakash Jain <aakash_jain@apple.com> on 2015-12-16
Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/xcode/simulator.py:
(Simulator.delete_device): Ensure that device is Shutdown before deleting it.

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

3 years agov3 UI should show and link the build number on charts page
rniwa@webkit.org [Thu, 17 Dec 2015 00:37:50 +0000 (00:37 +0000)]
v3 UI should show and link the build number on charts page
https://bugs.webkit.org/show_bug.cgi?id=152359

Reviewed by Chris Dumez.

Show the hyperlinked build number in the v3 UI.

* public/v3/models/builder.js:
(Builder): Renamed _buildURL to _buildUrlTemplate.
(Builder.prototype.urlForBuild): Added.
* public/v3/pages/chart-pane-status-view.js:
(ChartPaneStatusView):
(ChartPaneStatusView.prototype.render): Added the code to render hyperlinked build number when one is available.
(ChartPaneStatusView.prototype.computeChartStatusLabels): Store currentPoint's measurement object as _buildInfo
if the current point is set by an indicator (not by a selection).

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

3 years agoREGRESSION (r194125): Crashes in touchesEndedWithEvent on occasion when interacting...
timothy_horton@apple.com [Thu, 17 Dec 2015 00:13:27 +0000 (00:13 +0000)]
REGRESSION (r194125): Crashes in touchesEndedWithEvent on occasion when interacting with the page
https://bugs.webkit.org/show_bug.cgi?id=152366
<rdar://problem/23929672>

Reviewed by Beth Dakin.

* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::touchesEndedWithEvent):
(WebKit::WebViewImpl::touchesCancelledWithEvent):
NSTouch identifiers aren't pointer-comparable. We need to use isEqual to
compare them and find the ones to remove.

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

3 years agoFTL B3 should support switches
fpizlo@apple.com [Wed, 16 Dec 2015 23:59:13 +0000 (23:59 +0000)]
FTL B3 should support switches
https://bugs.webkit.org/show_bug.cgi?id=152360

Reviewed by Geoffrey Garen.

I implemented this because I was hoping it would less us run V8/crypto, but instead it just led
me to file a fun bug: https://bugs.webkit.org/show_bug.cgi?id=152365.

* ftl/FTLB3Output.h:
(JSC::FTL::Output::check):
(JSC::FTL::Output::switchInstruction):
(JSC::FTL::Output::ret):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::ftlUnreachable):
(JSC::FTL::DFG::LowerDFGToLLVM::crash):

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

3 years agoSimplify isOverlayScrollbar() logic
simon.fraser@apple.com [Wed, 16 Dec 2015 23:41:05 +0000 (23:41 +0000)]
Simplify isOverlayScrollbar() logic
https://bugs.webkit.org/show_bug.cgi?id=152357

Reviewed by Beth Dakin.

Replace code that checks for isOverlayScrollbar() explicitly with calls to new
occupiedWidth()/occupiedHeight() functions on Scrollbar, which do the overlay
scrollbar check internally.

Add ScrollableArea::scrollbarIntrusion() which returns an IntSize with the occupiedWidth
and occupiedHeight of any scrollbars, and use it in a few places.

Source/WebCore:

* page/FrameView.cpp:
(WebCore::FrameView::autoSizeIfEnabled):
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
(WebCore::ScrollView::calculateOverhangAreasForPainting):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollbarIntrusion):
(WebCore::ScrollableArea::visibleContentRectInternal):
* platform/ScrollableArea.h:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::occupiedWidth):
(WebCore::Scrollbar::occupiedHeight):
* platform/Scrollbar.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::visibleContentRectInternal):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::verticalScrollbarWidth):

Source/WebKit2:

* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::updateScrollbars):
(WebKit::PDFPlugin::maximumScrollPosition):

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

3 years agoFix internal Windows build
achristensen@apple.com [Wed, 16 Dec 2015 23:36:49 +0000 (23:36 +0000)]
Fix internal Windows build
https://bugs.webkit.org/show_bug.cgi?id=152364
Source/JavaScriptCore:

Reviewed by Tim Horton.

* JavaScriptCore.vcxproj/JavaScriptCore.proj:

Source/WebCore:

rdar://problem/23928759

Reviewed by Tim Horton.

* WebCore.vcxproj/WebCore.proj:

Source/WebKit:

rdar://problem/23928759

Reviewed by Tim Horton.

* WebKit.vcxproj/WebKit.proj:

Source/WTF:

rdar://problem/23928759

Reviewed by Tim Horton.

* WTF.vcxproj/WTF.proj:

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

3 years agoImprove JSObject::put performance
fpizlo@apple.com [Wed, 16 Dec 2015 22:39:13 +0000 (22:39 +0000)]
Improve JSObject::put performance
https://bugs.webkit.org/show_bug.cgi?id=152347

Reviewed by Geoffrey Garen.

This adds a new benchmark called dynbench, which just uses the C++ API to create, modify, and
query objects. This also adds some optimizations to make the JSObject::put code faster by making
it inlinable in places that really need the performance, like JITOperations and LLIntSlowPaths.
Inlining it is optional because the put() method is large. If you want it inlined, call
putInline(). There's a putInline() variant of both JSObject::put() and JSValue::put().

This is up to a 20% improvement for JSObject::put calls that get inlined all the way (like from
JITOperations and the new benchmark) and it's also a speed-up, albeit a smaller one, for
JSObject::put calls that don't get inlined (i.e. those from the DOM and the JSC C++ library code).
Specific speed-ups are as follows. Note that "dynamic context" means that we told PutPropertySlot
that we're not a static put_by_id, which turns off some type inference.

Get By Id: 2% faster
Put By Id Replace: 23% faster
Put By Id Transition + object allocation: 11% faster
Get By Id w/ dynamic context: 5% faster
Put By Id Replace w/ dynamic context: 25% faster
Put By Id Transition + object allocation w/ dynamic context: 10% faster

* JavaScriptCore.xcodeproj/project.pbxproj:
* dynbench.cpp: Added.
(JSC::benchmarkImpl):
(main):
* jit/CallFrameShuffler32_64.cpp:
* jit/CallFrameShuffler64.cpp:
* jit/JITOperations.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* runtime/ClassInfo.h:
(JSC::ClassInfo::hasStaticProperties):
* runtime/ConsoleClient.cpp:
* runtime/CustomGetterSetter.h:
* runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::finishCreation):
(JSC::addErrorInfoAndGetBytecodeOffset): Deleted.
* runtime/GetterSetter.h:
(JSC::asGetterSetter):
* runtime/JSCInlines.h:
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::put):
(JSC::JSValue::putInternal):
(JSC::JSValue::putByIndex):
* runtime/JSObject.cpp:
(JSC::JSObject::put):
(JSC::JSObject::putByIndex):
* runtime/JSObject.h:
(JSC::JSObject::getVectorLength):
(JSC::JSObject::inlineGetOwnPropertySlot):
(JSC::JSObject::get):
(JSC::JSObject::putDirectInternal):

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

3 years agoModern IDB: Refactor UniqueIDBDatabase in preparation for consolidation open and...
beidson@apple.com [Wed, 16 Dec 2015 21:52:11 +0000 (21:52 +0000)]
Modern IDB: Refactor UniqueIDBDatabase in preparation for consolidation open and delete requests.
https://bugs.webkit.org/show_bug.cgi?id=152355

Reviewed by Alex Christensen.

No new tests (Refactor, existing tests pass).

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations): Deleted.
* Modules/indexeddb/server/UniqueIDBDatabase.h:

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

3 years agov3 dashboard doesn't stretch charts to fill the screen
rniwa@webkit.org [Wed, 16 Dec 2015 21:50:09 +0000 (21:50 +0000)]
v3 dashboard doesn't stretch charts to fill the screen
https://bugs.webkit.org/show_bug.cgi?id=152354

Reviewed by Chris Dumez.

The bug was caused by a workaround to avoid canvas stretching table cell too much.

Fix the problem instead by making the canvas absolutely positioned inside the "time-series-chart" element
so that it does not contribute to the intrinsic/natural width of the cell.

* public/v3/components/time-series-chart.js:
(TimeSeriesChart.prototype._ensureCanvas): Make the canvas absolutely positioned inside the shadow root.
(TimeSeriesChart.prototype._updateCanvasSizeIfClientSizeChanged): Use the container element's size now that
the canvas does not resize with it.
* public/v3/pages/dashboard-page.js:
(DashboardPage.cssTemplate): Updated the CSS so that the chart stretches all the way.

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

3 years agoModern IDB: Have IDBServerOperations know whether they represent an open or delete...
beidson@apple.com [Wed, 16 Dec 2015 20:29:09 +0000 (20:29 +0000)]
Modern IDB: Have IDBServerOperations know whether they represent an open or delete request.
https://bugs.webkit.org/show_bug.cgi?id=152351

Reviewed by NOBODY (OOPS!).

No new tests (Refactor, existing tests pass).

* Modules/indexeddb/IndexedDB.h:

* Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
(WebCore::IDBClient::IDBOpenDBRequest::createDeleteRequest):
(WebCore::IDBClient::IDBOpenDBRequest::createOpenRequest):
(WebCore::IDBClient::IDBOpenDBRequest::IDBOpenDBRequest):
* Modules/indexeddb/client/IDBOpenDBRequestImpl.h:

* Modules/indexeddb/client/IDBRequestImpl.h:
(WebCore::IDBClient::IDBRequest::requestType):

* Modules/indexeddb/server/IDBServerOperation.cpp:
(WebCore::IDBServer::IDBServerOperation::isOpenRequest):
(WebCore::IDBServer::IDBServerOperation::isDeleteRequest):
* Modules/indexeddb/server/IDBServerOperation.h:

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::maybeDeleteDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::notifyConnectionsOfVersionChangeForUpgrade):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
* Modules/indexeddb/server/UniqueIDBDatabase.h:

* Modules/indexeddb/shared/IDBRequestData.cpp:
(WebCore::IDBRequestData::IDBRequestData):
* Modules/indexeddb/shared/IDBRequestData.h:
(WebCore::IDBRequestData::isOpenRequest):
(WebCore::IDBRequestData::isDeleteRequest):

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

3 years agoBuild fix when using NETWORK_SESSION after r193972.
achristensen@apple.com [Wed, 16 Dec 2015 20:06:00 +0000 (20:06 +0000)]
Build fix when using NETWORK_SESSION after r193972.

Rubber-stamped by Joseph Pecoraro.

Renamed NetworkSessionDelegate to WKNetworkSessionDelegate to conform to the
newly-enforced style rule in check-for-inappropriate-objc-class-names.

* NetworkProcess/NetworkSession.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(toNSURLSessionAuthChallengeDisposition):
(-[WKNetworkSessionDelegate initWithNetworkSession:]):
(WebKit::NetworkSession::NetworkSession):
(-[NetworkSessionDelegate initWithNetworkSession:]): Deleted.

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

3 years agoAdding timout expectation to one more wpt test that I missed in the last commit.
ryanhaddad@apple.com [Wed, 16 Dec 2015 19:49:52 +0000 (19:49 +0000)]
Adding timout expectation to one more wpt test that I missed in the last commit.
https://bugs.webkit.org/show_bug.cgi?id=152335

Unreviewed test gardening.

* TestExpectations:

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

3 years agoAdding timeout to wpt TestExpectations due to WK/WPT testharness.js issues.
ryanhaddad@apple.com [Wed, 16 Dec 2015 19:25:47 +0000 (19:25 +0000)]
Adding timeout to wpt TestExpectations due to WK/WPT testharness.js issues.
https://bugs.webkit.org/show_bug.cgi?id=152335

Unreviewed test gadening.

* TestExpectations:

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

3 years agoWork around a bug in LLVM by flipping the unification order
fpizlo@apple.com [Wed, 16 Dec 2015 19:10:55 +0000 (19:10 +0000)]
Work around a bug in LLVM by flipping the unification order
https://bugs.webkit.org/show_bug.cgi?id=152341
rdar://problem/23920749

Reviewed by Mark Lam.

* dfg/DFGUnificationPhase.cpp:
(JSC::DFG::UnificationPhase::run):

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

3 years agoVersioning.
bshafiei@apple.com [Wed, 16 Dec 2015 19:02:42 +0000 (19:02 +0000)]
Versioning.

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

3 years agoRe-baseline pageoverlay/overlay* tests for mac-wk1
ryanhaddad@apple.com [Wed, 16 Dec 2015 19:02:09 +0000 (19:02 +0000)]
Re-baseline pageoverlay/overlay* tests for mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=152338

Unreviewed test gardening.

* platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt:
* platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt:
* platform/mac-wk1/pageoverlay/overlay-small-frame-mouse-events-expected.txt:

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

3 years agoBuild fix after r194156.
achristensen@apple.com [Wed, 16 Dec 2015 18:52:04 +0000 (18:52 +0000)]
Build fix after r194156.

* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):

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

3 years agoModern IDB: Combine handling open requests, delete requests, and transactions into...
beidson@apple.com [Wed, 16 Dec 2015 18:43:54 +0000 (18:43 +0000)]
Modern IDB: Combine handling open requests, delete requests, and transactions into one timer.
https://bugs.webkit.org/show_bug.cgi?id=152344

Reviewed by Alex Christensen.

No new tests (Refactor, existing tests pass).

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformActivateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::invokeDeleteOrRunTransactionTimer): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::deleteOrRunTransactionsTimerFired): Deleted.
* Modules/indexeddb/server/UniqueIDBDatabase.h:

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

3 years agoBuild fix after r194156.
achristensen@apple.com [Wed, 16 Dec 2015 18:38:26 +0000 (18:38 +0000)]
Build fix after r194156.

* platform/network/cf/ResourceHandleCFNet.cpp:
* platform/network/mac/ResourceHandleMac.mm:
Include definition of _TimingDataOptionsEnableW3CNavigationTiming

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

3 years agoAdd "explicit operator bool" to ScratchRegisterAllocator::PreservedState
sbarati@apple.com [Wed, 16 Dec 2015 18:36:20 +0000 (18:36 +0000)]
Add "explicit operator bool" to ScratchRegisterAllocator::PreservedState
https://bugs.webkit.org/show_bug.cgi?id=152337

Reviewed by Mark Lam.

If we have a default constructor, we should also have a way
to tell if a PreservedState is invalid.

* jit/ScratchRegisterAllocator.cpp:
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
* jit/ScratchRegisterAllocator.h:
(JSC::ScratchRegisterAllocator::PreservedState::PreservedState):
(JSC::ScratchRegisterAllocator::PreservedState::operator bool):

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

3 years ago[mac-wk2] fast/events force click tests crashing
timothy_horton@apple.com [Wed, 16 Dec 2015 18:32:22 +0000 (18:32 +0000)]
[mac-wk2] fast/events force click tests crashing
https://bugs.webkit.org/show_bug.cgi?id=152339

Reviewed by Beth Dakin.

* WebKitTestRunner/mac/EventSenderProxy.mm:
(-[EventSenderSyntheticEvent initPressureEventAtLocation:globalLocation:stage:pressure:stageTransition:phase:time:eventNumber:window:]):
Set the NSEvent's _type member in addition to overriding -type,
because there are assertions in touch event handling code that depend on it.

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

3 years agoImplement Web Timing when using NETWORK_SESSION
achristensen@apple.com [Wed, 16 Dec 2015 18:25:00 +0000 (18:25 +0000)]
Implement Web Timing when using NETWORK_SESSION
https://bugs.webkit.org/show_bug.cgi?id=152285

Reviewed by Darin Adler.

Source/WebCore:

Covered by existing tests.

* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceHandle.h:
* platform/network/ResourceLoadTiming.h:
(WebCore::ResourceLoadTiming::encode):
Moved setCollectsTimingData from ResourceHandle to ResourceLoadTiming.h to be shared
with WebKit2 when using NETWORK_SESSION, which does not use ResourceHandle.
Also moved getConnectionTimingData to copyTimingData in ResourceLoadTiming for the same reason.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
Use the proper definition of _TimingDataOptionsEnableW3CNavigationTiming.
* platform/network/cocoa/ResourceLoadTiming.mm: Added.
(WebCore::timingValue):
(WebCore::copyTimingData):
Moved from getConnectionTimingData, and use objectForKey instead of valueForKey,
and check to see if there is no object in the dictionary with the given key.
This should never happen with the current CFNetwork implementation, but it's good to check dictionaries.
(WebCore::setCollectsTimingData):
Use _collectTimingDataWithOptions, which should be a slight performance improvement on Mavericks
because we are not collecting unused timing data. Hooray!
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::getConnectionTimingData):
(WebCore::ResourceHandle::setCollectsTimingData): Deleted.
* platform/spi/cf/CFNetworkSPI.h:
* platform/spi/cocoa/NSURLConnectionSPI.h:
Moved definitions of SPI to proper SPI headers.

Source/WebKit2:

* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSession::NetworkSession):
Use functions moved to ResourceLoadTiming.h.  setCollectsTimingData is for Mavericks, _timingDataOptions is post-Mavericks.

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

3 years agoLegacy style scrollbars do not change color when you mouse over them if you
bdakin@apple.com [Wed, 16 Dec 2015 18:08:57 +0000 (18:08 +0000)]
Legacy style scrollbars do not change color when you mouse over them if you
are scrolled
https://bugs.webkit.org/show_bug.cgi?id=152319
-and corresponding-
rdar://problem/23317668

Reviewed by Darin Adler.

The scrollbar’s frameRect is in window coordinates, so we need to compare a
point in window coordinates when we test this.

The call to convertFromContainingWindow does not return a point in view
coordinates, so we should not call the variable viewPoint. We do still need
to call it for subframes. convertFromContainingWindow doesn’t do anything for
the root ScrollView (for Mac WK2 at least).
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollbarAtPoint):

HitTestLocation is in contents coordinates. It needs to be converted to
window coordinates
* rendering/RenderView.cpp:
(WebCore::RenderView::hitTest):

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

3 years agoMark additional wpt tests as flaky due to WK/WPT testharness.js
youenn.fablet@crf.canon.fr [Wed, 16 Dec 2015 18:04:37 +0000 (18:04 +0000)]
Mark additional wpt tests as flaky due to WK/WPT testharness.js
https://bugs.webkit.org/show_bug.cgi?id=152335

Unreviewed.

LayoutTests/imported/w3c:

Rebasing according WPT testharness.js current version.

* web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
* web-platform-tests/XMLHttpRequest/responsetype-expected.txt:
* web-platform-tests/XMLHttpRequest/timeout-sync-expected.txt:
* web-platform-tests/dom/interfaces-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

LayoutTests:

* TestExpectations: marking some more tests as flaky.

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

3 years ago[JSC] fix error message for eval/arguments CoverInitializedName in strict code
commit-queue@webkit.org [Wed, 16 Dec 2015 17:49:14 +0000 (17:49 +0000)]
[JSC] fix error message for eval/arguments CoverInitializedName in strict code
https://bugs.webkit.org/show_bug.cgi?id=152304

Patch by Caitlin Potter <caitp@igalia.com> on 2015-12-16
Reviewed by Darin Adler.

Because the error was originally classified as indicating a Pattern, the
error in AssignmentPattern parsing causes the reported message to revert to
the original Expression error message, which in this case is incorrect.

This change modifies the implementation of the strict code
error slightly, and reclassifies the error to prevent the message revert,
which improves the clarity of the message overall.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseAssignmentElement):
(JSC::Parser<LexerType>::parseDestructuringPattern):
* parser/Parser.h:
(JSC::Parser::ExpressionErrorClassifier::reclassifyExpressionError):
(JSC::Parser::reclassifyExpressionError):
* tests/stress/destructuring-assignment-syntax.js:

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

3 years agoREGRESSION: Web Inspector: console.dir(...) should force allowing object expansion
commit-queue@webkit.org [Wed, 16 Dec 2015 17:46:02 +0000 (17:46 +0000)]
REGRESSION: Web Inspector: console.dir(...) should force allowing object expansion
https://bugs.webkit.org/show_bug.cgi?id=152328

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

* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatParameter):
Propogate the force parameter down.

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

3 years agoWeb Inspector: Improve copy of console messages with multiple arguments - console...
commit-queue@webkit.org [Wed, 16 Dec 2015 17:44:10 +0000 (17:44 +0000)]
Web Inspector: Improve copy of console messages with multiple arguments - console.log(obj1, obj2)
https://bugs.webkit.org/show_bug.cgi?id=152330

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

* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype.toClipboardString):
Copy the inner text of the extra arguments list as well, for
console messages with multiple objects. Rearrange the sections
that, if there is a stack trace it comes at the end after
multiple arguments. If there is no stack trace, include the
location info next to the top line, before multiple arguments.

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

3 years agoWeb Inspector: Improve copy of console message containing Array and Map output
commit-queue@webkit.org [Wed, 16 Dec 2015 17:42:11 +0000 (17:42 +0000)]
Web Inspector: Improve copy of console message containing Array and Map output
https://bugs.webkit.org/show_bug.cgi?id=152329

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

Introduce a real space in the content instead of style specific
margins so the existing copy/paste mechanism (innerText)
will have spaces between index/key and value.

* UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
(.object-tree-array-index .index-name): Deleted.
* UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeArrayIndexTreeElement):
* UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
(.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name): Deleted.
* UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
(WebInspector.ObjectTreeMapEntryTreeElement.prototype.titleFragment):
(WebInspector.ObjectTreeMapEntryTreeElement):
* UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeSetIndexTreeElement):

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

3 years agoWeb Inspector: Typing object literal in the console causes a parse error
commit-queue@webkit.org [Wed, 16 Dec 2015 17:40:15 +0000 (17:40 +0000)]
Web Inspector: Typing object literal in the console causes a parse error
https://bugs.webkit.org/show_bug.cgi?id=141737

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

Source/WebInspectorUI:

Provide a convenience in console evaluations for JSON object like input.
If the console input starts with '{' and ends with '}' wrap the input
in parenthesis to force evaluation as an expression.

For example, input "{a:1}" would be convenience wrapped to "({a:1})"
and produce the expected object. This helps avoid the unusual treatment
of "{a:1}" as program containing a labeled statement, which is often
not what the user expects. And in more realistic cases, like "{a:1, b:2}",
produce a SyntaxError.

* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Detect and convenience wrap the given expression.

LayoutTests:

* inspector/controller/runtime-controller-expected.txt: Added.
* inspector/controller/runtime-controller.html: Added.

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

3 years agoUncaught Exception View has undefined exception URL
commit-queue@webkit.org [Wed, 16 Dec 2015 17:38:17 +0000 (17:38 +0000)]
Uncaught Exception View has undefined exception URL
https://bugs.webkit.org/show_bug.cgi?id=152327

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

* UserInterface/Debug/UncaughtExceptionReporter.js:
(handleUncaughtException):
Use ErrorEvent's filename property, not url which is undefined.

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

3 years agoUncaught Exception: ReferenceError: Can't find variable: resolvedValue
commit-queue@webkit.org [Wed, 16 Dec 2015 17:36:24 +0000 (17:36 +0000)]
Uncaught Exception: ReferenceError: Can't find variable: resolvedValue
https://bugs.webkit.org/show_bug.cgi?id=152326

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

* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
This identifier is used later on, so assign it here.

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

3 years agoEnforce temporarily bots to sync WebKit and WPT testharness.js
youenn.fablet@crf.canon.fr [Wed, 16 Dec 2015 17:34:34 +0000 (17:34 +0000)]
Enforce temporarily bots to sync WebKit and WPT testharness.js
https://bugs.webkit.org/show_bug.cgi?id=152334

Reviewed by Darin Adler.

* Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer._copy_webkit_test_files): Temporarily overwrite wpt testharness.js with WebKit testharness.js.

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

3 years agoThe chart status on v3 UI sometimes show wrong revision ranges
rniwa@webkit.org [Wed, 16 Dec 2015 17:32:47 +0000 (17:32 +0000)]
The chart status on v3 UI sometimes show wrong revision ranges
https://bugs.webkit.org/show_bug.cgi?id=152331

Reviewed by Chris Dumez.

The bug was caused by the status view not taking the data sampling that happens in TimeSeriesChart into account
when finding the previous point. Take this into account by using InteractiveTimeSeries.currentPoint(-1) which
finds the sampled data point immediately preceding the current point (at which the indicator is shown).

* public/v3/components/chart-status-view.js:
(ChartStatusView.prototype.updateStatusIfNeeded):

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

3 years agoBuiltin source should be minified more
commit-queue@webkit.org [Wed, 16 Dec 2015 17:30:49 +0000 (17:30 +0000)]
Builtin source should be minified more
https://bugs.webkit.org/show_bug.cgi?id=152290

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

* Scripts/builtins/builtins_model.py:
(BuiltinFunction.fromString):
Remove primarily empty lines that would just introduce clutter.
We only do the minification in non-Debug configurations, which
is determined by the CONFIGURATION environment variable. You can
see how tests would generate differently, like so:
shell> CONFIGURATION=Release ./Tools/Scripts/run-builtins-generator-tests

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

3 years agoFix computation of min|max-content contribution of non-replaced blocks
svillar@igalia.com [Wed, 16 Dec 2015 14:53:28 +0000 (14:53 +0000)]
Fix computation of min|max-content contribution of non-replaced blocks
https://bugs.webkit.org/show_bug.cgi?id=152004

Reviewed by Darin Adler.

Source/WebCore:

WebKit currently always returns the min preferred logical
width for the min-content contribution (and the max preferred
logical width for the max-content contribution) for
non-replaced blocks. That is not correct according to specs
https://drafts.csswg.org/css-sizing/#block-intrinsic.

The min-content and max-content contributions actually depend
on the computed inline size of the block:
* for min-content,max-content or definite sizes: min-content
and max-content contributions are the inline size plus border,
margin and padding.
* otherwise: min-content contribution is the min-content size
and max-content contribution is the max-content size (in both
cases plus border, padding and margin).

Tests: fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html
       fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html
       fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
       fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):

LayoutTests:

* fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html: Added.
* fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html: Added.
* fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html: Added.
* fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html: Added.
* fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
* fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
* fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css: Added.
(.container):
(.item):
(.border):
(.padding):
(.margin):

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

3 years agoMac EWS bots frequently fail several wpt tests
youenn.fablet@crf.canon.fr [Wed, 16 Dec 2015 13:30:11 +0000 (13:30 +0000)]
Mac EWS bots frequently fail several wpt tests
https://bugs.webkit.org/show_bug.cgi?id=152257

Unreviewed.

LayoutTests/imported/w3c:

Rebasing according WPT testharness.js current version.

* web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt:
* web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt:
* web-platform-tests/dom/nodes/Node-isEqualNode-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

LayoutTests:

* TestExpectations: marking some tests as flaky.

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

3 years agoUnreviewed, rolling out r194135.
commit-queue@webkit.org [Wed, 16 Dec 2015 12:47:55 +0000 (12:47 +0000)]
Unreviewed, rolling out r194135.
https://bugs.webkit.org/show_bug.cgi?id=152333

due to missing OSR exit materialization support in FTL
(Requested by yusukesuzuki on #webkit).

Reverted changeset:

"[ES6] Handle new_generator_func / new_generator_func_exp in
DFG / FTL"
https://bugs.webkit.org/show_bug.cgi?id=152227
http://trac.webkit.org/changeset/194135

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

3 years ago[Fetch API] Add fetch API compile time flag
youenn.fablet@crf.canon.fr [Wed, 16 Dec 2015 11:13:07 +0000 (11:13 +0000)]
[Fetch API] Add fetch API compile time flag
https://bugs.webkit.org/show_bug.cgi?id=152254

Reviewed by Darin Adler.

.:

* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

* Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

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

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

3 years agoUnreviewed.
calvaris@igalia.com [Wed, 16 Dec 2015 10:05:26 +0000 (10:05 +0000)]
Unreviewed.

Added files that have impact in building Streams API to the watchlist.

* Scripts/webkitpy/common/config/watchlist:

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

3 years agoUnreviewed.
calvaris@igalia.com [Wed, 16 Dec 2015 09:32:22 +0000 (09:32 +0000)]
Unreviewed.

Added imported tests to Streams API watchlist.

* Scripts/webkitpy/common/config/watchlist:

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

3 years agoRemove default copy of wpt testharness.js when launching wpt server
youenn.fablet@crf.canon.fr [Wed, 16 Dec 2015 09:18:00 +0000 (09:18 +0000)]
Remove default copy of wpt testharness.js when launching wpt server
https://bugs.webkit.org/show_bug.cgi?id=152298

Reviewed by Darin Adler.

* Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer._copy_webkit_test_files): Deleted default copy of WebKit testharness.js to WPT.

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

3 years agoAlign WebKit testharness.js with WPT testharness.js
youenn.fablet@crf.canon.fr [Wed, 16 Dec 2015 09:16:29 +0000 (09:16 +0000)]
Align WebKit testharness.js with WPT testharness.js
https://bugs.webkit.org/show_bug.cgi?id=152297

Reviewed by Darin Adler.

Cosmetic changes (output:true is overriden by WK testharnessreport.js)
To remove the warning "WPT tests are not using the same testharness.js file as other WebKit Layout tests."

* media/track/getCueAsHTMLCrash.html: Adding testharnessreport.js and removing call to dumpAsText.
* media/track/getCueAsHTMLCrash-expected.txt: Rebasing as tests are now outputting results.
* resources/testharness.js:

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

3 years ago[ES6] Handle new_generator_func / new_generator_func_exp in DFG / FTL
utatane.tea@gmail.com [Wed, 16 Dec 2015 09:10:09 +0000 (09:10 +0000)]
[ES6] Handle new_generator_func / new_generator_func_exp in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=152227

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch introduces new_generator_func / new_generator_func_exp into DFG and FTL.
We add a new DFG Node, NewGeneratorFunction. It will construct a function with GeneratorFunction's structure.
The structure of GeneratorFunction is different from one of Function because GeneratorFunction has the different __proto__.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGMayExit.cpp:
(JSC::DFG::mayExit):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomNewFunction):
(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::isFunctionAllocation):
* dfg/DFGNodeType.h:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewFunction):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewFunction):
* tests/stress/generator-function-create-optimized.js: Added.
(shouldBe):
(g):
(test.return.gen):
(test):
(test2.gen):
(test2):
* tests/stress/generator-function-declaration-sinking-no-double-allocate.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(call):
(f):
(sink):
* tests/stress/generator-function-declaration-sinking-osrexit.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(f):
(sink):
* tests/stress/generator-function-declaration-sinking-put.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(f):
(sink):
* tests/stress/generator-function-expression-sinking-no-double-allocate.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(call):
(f):
(sink):
* tests/stress/generator-function-expression-sinking-osrexit.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(sink):
* tests/stress/generator-function-expression-sinking-put.js: Added.
(shouldBe):
(GeneratorFunctionPrototype):
(g):
(sink):

LayoutTests:

Make the test taking longer time.

* js/regress/script-tests/generator-function-create.js:
(test):

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

3 years ago[GTK] Correct the wrong expectation introduced in r194106
commit-queue@webkit.org [Wed, 16 Dec 2015 08:57:05 +0000 (08:57 +0000)]
[GTK] Correct the wrong expectation introduced in r194106
https://bugs.webkit.org/show_bug.cgi?id=152325

Unreviewed GTK gardening

Patch by Tomas Popela <tpopela@redhat.com> on 2015-12-16

* platform/gtk/http/tests/plugins/plugin-javascript-access-expected.txt:

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

3 years agoPerf dashboard's cycler page should use v3 UI
rniwa@webkit.org [Wed, 16 Dec 2015 07:15:21 +0000 (07:15 +0000)]
Perf dashboard's cycler page should use v3 UI
https://bugs.webkit.org/show_bug.cgi?id=152324

Reviewed by Chris Dumez.

Use the v3 UI in cycler.html after r194130.

* public/cycler.html:
* public/v3/index.html: Removed the reference to a non-existent platform-selector.js.

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

3 years agoFontCascade cleanup: Remove ::drawSimpleText and ::drawComplexText.
zalan@apple.com [Wed, 16 Dec 2015 06:28:13 +0000 (06:28 +0000)]
FontCascade cleanup: Remove ::drawSimpleText and ::drawComplexText.
https://bugs.webkit.org/show_bug.cgi?id=152323

Reviewed by Myles C. Maxfield.

Platform code for ::drawComplexText() is redundant and has
no platform dependent logic. Move it all to ::drawText()

No change in functionality.

* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::glyphBufferForTextRun):
(WebCore::FontCascade::drawText):
(WebCore::FontCascade::drawSimpleText): Deleted.
* platform/graphics/FontCascade.h:
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::drawComplexText): Deleted.
* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::drawComplexText): Deleted.
* platform/graphics/win/FontWin.cpp:
(WebCore::FontCascade::drawComplexText): Deleted.

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

3 years agoGardening: fix broken 32-bit JSC tests. Just need to assign a scratch register.
mark.lam@apple.com [Wed, 16 Dec 2015 05:54:20 +0000 (05:54 +0000)]
Gardening: fix broken 32-bit JSC tests.  Just need to assign a scratch register.
https://bugs.webkit.org/show_bug.cgi?id=152191

Not reviewed.

* jit/JITArithmetic.cpp:
(JSC::JIT::emitBitBinaryOpFastPath):

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

3 years agoAdd v3 UI to perf dashboard
rniwa@webkit.org [Wed, 16 Dec 2015 05:19:08 +0000 (05:19 +0000)]
Add v3 UI to perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=152311

Reviewed by Chris Dumez.

Add the third iteration of the perf dashboard UI. UI for viewing and modifying analysis tasks is coming soon.
The v3 UI is focused on speed, and removes all third-party script dependencies including jQuery, d3, and Ember.
Both the DOM-based UI and graphing are implemented manually.

The entire app is structured using new component library implemented in components/base.js. Each component is
an instance of a subclass of ComponentBase which owns a single DOM element. Each subclass may supply static
methods named htmlTemplate and cssTemplate as the template for a component instance. ComponentBase automatically
clones the templates inside the associated element (or its shadow root on the supported browsers). Each subclass
must supply a method called "render()" which constructs and updates the DOM as needed.

There is a special component called Page, which represents an entire page. Each Page is opened by PageRouter's
"route()" function. Each subclass of Page supplies "open()" for initialization and "updateFromSerializedState()"
for a hash URL transition.

The key feature of the v3 UI is the split of time series into chunks called clusters (see r194120). On an internal
instance of the dashboard, the v2 UI downloads 27MB of data whereas the same page loads only 3MB of data in the v3.
The key logic for fetching time series in chunks is implemented by MeasurementSet in /v3/models/measurement-set.js.
We first fetch the cached primary cluster (the cluster that contains the newest data) at:
/data/measurement-set-<platform-id>-<metric-id>.json

If that's outdated according to lastModified in manifest.json, then we immediately re-fetch the primary cluster at:
/api/measurement-set/?platform=<platform-id>&metric=<metric-id>

Once the up-to-date primary cluster is fetched, we fetch all "secondary" clusters. For each cluster being fetched,
including the primary, we invoke registered callbacks.

In addition, the v3 UI reduces the initial page load time by loading a single bundled JS file generated by
tools/bundle-v3-scripts.py. index.html has a fallback to load all 44 JS files individually during development.

* public/api/analysis-tasks.php:
(fetch_and_push_bugs_to_tasks): Added the code to fetch start and end run times. This is necessary in V3 UI
because no longer fetch the entire time series. See r194120 for the new measurement set JSON API.
(format_task): Compute the category of an analysis task based on "result" value. This will be re-vamped once
I add the UI for the analysis task page in v3.

* public/include/json-header.php:
(require_format): CamelCase the name.
(require_match_one_of_values): Ditto.
(validate_arguments): Renamed from require_existence_of and used in measurement-set.php landed in r194120.

* public/v3: Added.
* public/v3/components: Added.

* public/v3/components/base.js: Added.
(ComponentBase): The base component class.
(ComponentBase.prototype.element): Returns the DOM element associated with the DOM element.
(ComponentBase.prototype.content): Returns the shadow root if one exists and the associated element otherwise.
(ComponentBase.prototype.render): To be implemented by a subclass.
(ComponentBase.prototype.renderReplace): A helper function to "render" DOM contents.
(ComponentBase.prototype._constructShadowTree): Called inside the constructor to instantiate the templates.
(ComponentBase.prototype._recursivelyReplaceUnknownElementsByComponents): Instantiates components referred by
its element name inside the instantiated content.
(ComponentBase.isElementInViewport): A helper function. Returns true if the element is in the viewport and it has
non-zero width and height.
(ComponentBase.defineElement): Defines a custom element that can be automatically instantiated from htmlTemplate.
(ComponentBase.createElement): A helper function to create DOM tree to be used in "render()" method.
(ComponentBase._addContentToElement): A helper for "createElement".
(ComponentBase.createLink): A helper function to create a hyperlink or another clickable element (via callback).
(ComponentBase.createActionHandler): A helper function to create an event listener that prevents the default action
and stops the event propagation.

* public/v3/components/button-base.js: Added.

* public/v3/components/chart-status-view.js: Added.
(ChartStatusView): A component that reports the current status of time-series-chart. It's subclasses by
ChartPaneStatusView to provide additional information in the charts page's panes.

* public/v3/components/close-button.js: Added.
(CloseButton):
* public/v3/components/commit-log-viewer.js: Added.
(CommitLogViewer): A component that lists commit revisions along with commit messages for a range of data points.

* public/v3/components/interactive-time-series-chart.js: Added.
(InteractiveTimeSeriesChart): A subclass of InteractiveTimeSeriesChart with interactivity (selection & indicator).
Selection and indicator are mutually exclusive.

* public/v3/components/pane-selector.js: Added.
(PaneSelector): A component for selecting (platform, metric) pair to add in the charts page.

* public/v3/components/spinner-icon.js: Added.

* public/v3/components/time-series-chart.js: Added.
(TimeSeriesChart): A canvas-based chart component without interactivity. It takes a source list and options as
the constructor arguments. A source list is a list of measurement sets (measurement-set.js) with drawing options.
This component fetches data via MeasurementSet.fetchBetween inside TimeSeriesChart.prototype.setDomain and
progressively updates the charts as more data arrives. The canvas is updated on animation frame via rAF and all
layout and rendering metrics are lazily computed in _layout. In addition, this component samples data before
rendering the chart when there are more data points per pixel in _ensureSampledTimeSeries.

* public/v3/index.html: Added. Loads bundled-scripts.js if it exists, or individual script files otherwise.

* public/v3/instrumentation.js: Added. This class is used to gather runtime statistics of v3 UI. (It measures
the performance of the perf dashboard UI).

* public/v3/main.js: Added. Bootstraps the app.
(main):
(fetchManifest):

* public/v3/models: Added.
* public/v3/models/analysis-task.js: Added.
* public/v3/models/bug-tracker.js: Added.
* public/v3/models/bug.js: Added.
* public/v3/models/builder.js: Added.
* public/v3/models/commit-log.js: Added.
* public/v3/models/data-model.js: Added.
(DataModelObject): The base class for various data objects that correspond to database tables. It supplies static
hash map to find entries by id as well as other keys.
(LabeledObject): A subclass of DataModelObject with the capability to find an object via its name.

* public/v3/models/measurement-cluster.js: Added.
(MeasurementCluster): Represents a single cluster or a chunk of data in a measurement set.

* public/v3/models/measurement-set.js: Added.
(MeasurementSet): Represents a measurement set.
(MeasurementSet.findSet): Returns the singleton set given (metric, platform). We use singleton to avoid issuing
multiple HTTP requests for the same JSON when there are multiple TimeSeriesChart that show the same graph (e.g. on
charts page with overview and main charts).
(MeasurementSet.prototype.findClusters): Finds the list of clusters to fetch in a given time range.
(MeasurementSet.prototype.fetchBetween): Fetch clusters for a given time range and calls callback whenever new data
arrives. The number of callbacks depends on the how many clusters need to be newly fetched.
(MeasurementSet.prototype._fetchSecondaryClusters): Fetches non-primary (non-latest) clusters.
(MeasurementSet.prototype._fetch): Issues a HTTP request to fetch a cluster.
(MeasurementSet.prototype._didFetchJSON): Called when a cluster is fetched.
(MeasurementSet.prototype._failedToFetchJSON): Called when the fetching of a cluster has failed.
(MeasurementSet.prototype._invokeCallbacks): Invokes callbacks upon an approval of a new cluster.
(MeasurementSet.prototype._addFetchedCluster): Adds the newly fetched cluster in the order.
(MeasurementSet.prototype.fetchedTimeSeries): Returns a time series that contains data from all clusters that have
been fetched.
(TimeSeries.prototype.findById): Additions to TimeSeries defined in /v2/data.js.
(TimeSeries.prototype.dataBetweenPoints): Ditto.
(TimeSeries.prototype.firstPoint): Ditto.

* public/v3/models/metric.js: Added.
* public/v3/models/platform.js: Added.
* public/v3/models/repository.js: Added.
* public/v3/models/test.js: Added.

* public/v3/pages: Added.
* public/v3/pages/analysis-category-page.js: Added. The "Analysis" page that lists the analysis tasks.
* public/v3/pages/analysis-category-toolbar.js: Added. The toolbar to filter analysis tasks based on its category
(unconfirmed, bisecting, identified, closed) and a keyword.

* public/v3/pages/analysis-task-page.js: Added. Not implemented yet. It just has the hyperlink to the v2  UI.

* public/v3/pages/chart-pane-status-view.js: Added.
(ChartPaneStatusView): A subclass of ChartStatusView used in the charts page. In addition to the current value,
comparison to baseline/target, it shows the list of repository revisions (e.g. WebKit revision, OS version).

* public/v3/pages/chart-pane.js: Added.
(ChartPane): A component a pane in the charts page. Each pane has the overview chart and the main chart. The zooming
is synced across all panes in the charts page.

* public/v3/pages/charts-page.js: Added. Charts page.
* public/v3/pages/charts-toolbar.js: Added. The toolbar to set the number of days to show. This affects the overview
chart's domain in each pane.

* public/v3/pages/create-analysis-task-page.js: Added.
(CreateAnalysisTaskPage): A page that gets shown momentarily while creating a new analysis task.

* public/v3/pages/dashboard-page.js: Added. A dashboard page.
* public/v3/pages/dashboard-toolbar.js: Added. Its toolbar with buttons to select the number of days to show.
* public/v3/pages/domain-control-toolbar.js: Added. An abstract superclass of charts and dashboard toolbars.

* public/v3/pages/heading.js: Added. A component for displaying the header and toolbar, if exists, on each page.
* public/v3/pages/page-router.js: Added. This class is responsible for updating the URL hashes as well as opening
and updating each page when the hash changes (via back/forward navigation).
* public/v3/pages/page-with-charts.js: Added. An abstract subclass of page used by dashboards and charts page.
Supplies helper functions for creating TimeSeriesChart options.
* public/v3/pages/page-with-heading.js: Added. An abstract subclass of page that uses the heading component.
* public/v3/pages/page.js: Added. The Page component.
* public/v3/pages/toolbar.js: Added. An abstract toolbar component.

* public/v3/remote.js: Added.
(getJSON): Fetches JSON from the remote server.
(getJSONWithStatus): Ditto. Rejects the response if the status is not "OK".
(PrivilegedAPI.sendRequest): Posts a HTTP request to a privileged API in /privileged-api/.
(PrivilegedAPI.requestCSRFToken): Creates a new CSRF token to request a privileged API post.

* tools/bundle-v3-scripts.py: Added.
(main): Bundles js files together and minifies them by jsmin.py for the v3 UI. Without this script, we're forced to
download 44 JS files or making each JS file contain multiple classes.

* tools/jsmin.py: Copied from WebInspector / JavaScriptCore code.

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

3 years agoRebaseline fast/viewport/ios tests for ios-simulator, remove failure expectation...
ryanhaddad@apple.com [Wed, 16 Dec 2015 03:09:51 +0000 (03:09 +0000)]
Rebaseline fast/viewport/ios tests for ios-simulator, remove failure expectation and re-enable test directory.
https://bugs.webkit.org/show_bug.cgi?id=152135

Reviewed by Simon Fraser.

* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-simulator/TestExpectations:
* platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
* platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt:
* platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-expected.txt:
* platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt:

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

3 years agoVerify that Referer Policy within Content-Disposition:attachment sandbox is always...
jiewen_tan@apple.com [Wed, 16 Dec 2015 01:11:45 +0000 (01:11 +0000)]
Verify that Referer Policy within Content-Disposition:attachment sandbox is always ReferrerPolicyNever
https://bugs.webkit.org/show_bug.cgi?id=152260
<rdar://problem/23884579>

Reviewed by Andy Estes.

* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always.html: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default.html: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never.html: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade.html: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer.html: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin.html: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url-expected.txt: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url.html: Added.
* http/tests/contentdispositionattachmentsandbox/referer-header-stripped.html: Added.
* http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped-frame.php: Added.
* http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped.js: Added.
* http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Removed.
* http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Removed.
* http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Removed.

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

3 years agoRebaseline some page overlay tests for WK1
timothy_horton@apple.com [Wed, 16 Dec 2015 01:05:15 +0000 (01:05 +0000)]
Rebaseline some page overlay tests for WK1

* platform/mac-wk1/pageoverlay/overlay-installation-expected.txt:
* platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt:
* platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt:
* platform/mac-wk1/pageoverlay/overlay-small-frame-mouse-events-expected.txt: Added.

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

3 years agoIntroducing ScratchRegisterAllocator::PreservedState.
mark.lam@apple.com [Wed, 16 Dec 2015 01:05:00 +0000 (01:05 +0000)]
Introducing ScratchRegisterAllocator::PreservedState.
https://bugs.webkit.org/show_bug.cgi?id=152315

Reviewed by Geoffrey Garen.

restoreReusedRegistersByPopping() should always be called with 2 values that
matches the expectation of preserveReusedRegistersByPushing().  Those 2 values
are the number of bytes preserved and the ExtraStackSpace requirement.  By
encapsulating them in a ScratchRegisterAllocator::PreservedState, we can make
it less error prone when calling restoreReusedRegistersByPopping().  Now, we only
need to pass it the appropriate PreservedState that its matching
preserveReusedRegistersByPushing() returned.

* bytecode/PolymorphicAccess.cpp:
(JSC::AccessGenerationState::restoreScratch):
(JSC::AccessCase::generate):
(JSC::PolymorphicAccess::regenerate):
* bytecode/PolymorphicAccess.h:
(JSC::AccessGenerationState::AccessGenerationState):
* ftl/FTLCompileBinaryOp.cpp:
(JSC::FTL::generateBinaryBitOpFastPath):
(JSC::FTL::generateRightShiftFastPath):
(JSC::FTL::generateBinaryArithOpFastPath):
* ftl/FTLLazySlowPath.cpp:
(JSC::FTL::LazySlowPath::generate):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::emitStoreBarrier):
* jit/ScratchRegisterAllocator.cpp:
(JSC::ScratchRegisterAllocator::allocateScratchGPR):
(JSC::ScratchRegisterAllocator::allocateScratchFPR):
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
* jit/ScratchRegisterAllocator.h:
(JSC::ScratchRegisterAllocator::usedRegisters):
(JSC::ScratchRegisterAllocator::PreservedState::PreservedState):

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

3 years ago[Mac] Gesture Events should not have negative scale
timothy_horton@apple.com [Wed, 16 Dec 2015 00:55:49 +0000 (00:55 +0000)]
[Mac] Gesture Events should not have negative scale
https://bugs.webkit.org/show_bug.cgi?id=151065
<rdar://problem/23474123>

Reviewed by Anders Carlsson.

* Shared/NativeWebGestureEvent.h:
* Shared/mac/NativeWebGestureEventMac.mm:
(WebKit::distanceForTouches):
(WebKit::NativeWebGestureEvent::NativeWebGestureEvent):
Compute the distance between the two oldest touches, and use that as
the scale (really the gesture diameter) on the event, instead of
passing through AppKit's magnification (which is computed differently).
This matches the documented behavior of the existing gesture events on iOS.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView touchesBeganWithEvent:]):
(-[WKWebView touchesMovedWithEvent:]):
(-[WKWebView touchesEndedWithEvent:]):
(-[WKWebView touchesCancelledWithEvent:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView touchesBeganWithEvent:]):
(-[WKView touchesMovedWithEvent:]):
(-[WKView touchesEndedWithEvent:]):
(-[WKView touchesCancelledWithEvent:]):
Plumb touch events through to WebViewImpl.

* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::magnifyWithEvent):
(WebKit::WebViewImpl::touchesOrderedByAge):
(WebKit::WebViewImpl::touchesBeganWithEvent):
(WebKit::WebViewImpl::touchesMovedWithEvent):
(WebKit::WebViewImpl::touchesEndedWithEvent):
(WebKit::WebViewImpl::touchesCancelledWithEvent):
(WebKit::WebViewImpl::rotateWithEvent):
Keep track of the most recent incoming touches, by identifier, in age order.
Pass them through to NativeWebGestureEvent so it can determine the gesture diameter.

* page/EventHandler.cpp:
(WebCore::EventHandler::clear):
* page/EventHandler.h:
Make it possible to use m_gestureInitialDiameter for Mac gesture events too.

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

3 years agoCall DatabaseManager directly from WKBundle.cpp
andersca@apple.com [Wed, 16 Dec 2015 00:52:55 +0000 (00:52 +0000)]
Call DatabaseManager directly from WKBundle.cpp
https://bugs.webkit.org/show_bug.cgi?id=152317

Reviewed by Tim Horton.

This is in preparation for getting rid of some old database manager code.

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleClearAllDatabases):
(WKBundleSetDatabaseQuota):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::clearAllDatabases): Deleted.
(WebKit::InjectedBundle::setDatabaseQuota): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:

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

3 years agoWeb Inspector: Localize "global code" and "eval code" strings
joepeck@webkit.org [Wed, 16 Dec 2015 00:23:49 +0000 (00:23 +0000)]
Web Inspector: Localize "global code" and "eval code" strings
https://bugs.webkit.org/show_bug.cgi?id=152313

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame.fromPayload):
Localize the strings given to use from the backend.

LayoutTests:

* inspector/debugger/js-stacktrace-expected.txt:
* inspector/debugger/js-stacktrace.html:
* inspector/model/stack-trace-expected.txt: Added.
* inspector/model/stack-trace.html: Added.

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

3 years agoTry to fix the CMake build
timothy_horton@apple.com [Wed, 16 Dec 2015 00:06:02 +0000 (00:06 +0000)]
Try to fix the CMake build

* CMakeLists.txt:

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

3 years agoFix v2 UI after r194093.
rniwa@webkit.org [Wed, 16 Dec 2015 00:00:02 +0000 (00:00 +0000)]
Fix v2 UI after r194093.

* public/v2/data.js:

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

3 years agoAdd /api/measurement-set for v3 UI
rniwa@webkit.org [Tue, 15 Dec 2015 23:57:25 +0000 (23:57 +0000)]
Add /api/measurement-set for v3 UI
https://bugs.webkit.org/show_bug.cgi?id=152312

Rubber-stamped by Chris Dumez.

The new API JSON allows the front end to fetch measured data in chunks called a "cluster" as specified
in config.json for each measurement set specified by the pair of a platform and a metric.

When the front end needs measured data in a given time range (t_0, t_1) for a measurement set, it first
fetches the primary cluster by /api/measurement-set/?platform=<platform-id>&metric=<metric-id>.
The primary cluster is the last cluster in the set (returning the first cluster here is not useful
since we don't typically show very old data), and provides the information needed to fetch other clusters.

Fetching the primary cluster also creates JSON files at:
/data/measurement-set-<platform-id>-<metric-id>-<cluster-end-time>.json
to allow latency free access for secondary clusters. The front end code can also fetch the cache of
the primary cluster at: /data/measurement-set-<platform-id>-<metric-id>.json.

Because the front end code has to behave as if all data is fetched, each cluster contains one data point
immediately before the first data point and one immediately after the last data point. This avoids having
to fetch multiple empty clusters for manually specified baseline data. To support this behavior, we generate
all clusters for a given measurement set at once when the primary cluster is requested.

Furthermore, all measurement sets are divided at the same time into clusters so that the boundary of clusters
won't shift as more data are reported to the server.

* config.json: Added clusterStart and clusterSize as options.
* public/api/measurement-set.php: Added.
(main):
(MeasurementSetFetcher::__construct):
(MeasurementSetFetcher::fetch_config_list): Finds configurations that belongs to this (platform, metric) pair.
(MeasurementSetFetcher::at_end): Returns true if we've reached the end of all clusters for this set.
(MeasurementSetFetcher::fetch_next_cluster): Generates the JSON data for the next cluster. We generate clusters
in increasing chronological order (the oldest first and the newest last).
(MeasurementSetFetcher::execute_query): Executes the main query.
(MeasurementSetFetcher::format_map): Returns the mapping of a measurement field to an array index. This removes
the need to have key names for each measurement and reduces the JSON size by ~10%.
(MeasurementSetFetcher::format_run): Creates an array that contains data for a single measurement. The order
matches that of keys in format_map.
(MeasurementSetFetcher::parse_revisions_array): Added. Copied from runs.php.
* tests/api-measurement-set.js: Added. Added tests for /api/measurement-set.

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

3 years agoTry to fix the CMake build
timothy_horton@apple.com [Tue, 15 Dec 2015 22:50:43 +0000 (22:50 +0000)]
Try to fix the CMake build

* CMakeLists.txt:

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

3 years agoREGRESSION (r191849): There's no yellow bouncy highlight when using Find on Page...
timothy_horton@apple.com [Tue, 15 Dec 2015 22:46:02 +0000 (22:46 +0000)]
REGRESSION (r191849): There's no yellow bouncy highlight when using Find on Page on iOS
https://bugs.webkit.org/show_bug.cgi?id=152241
<rdar://problem/23642574>

Reviewed by Simon Fraser.

Tests: pageoverlay/overlay-small-frame-mouse-events.html
       pageoverlay/overlay-small-frame-paints.html

* page/PageOverlay.cpp:
(WebCore::PageOverlay::bounds):
Revert r191849's change that made bounds() actually return the frame()
if we frame is manually overriden.

(WebCore::PageOverlay::mouseEvent):
Convert the mouse event the rest of the way into overlay coordinates (by
applying the overlay's frame origin) before deciding whether to handle
the event.

* page/PageOverlay.h:

* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* testing/Internals.cpp:
(WebCore::Internals::installMockPageOverlay):
* testing/Internals.h:
* testing/Internals.idl:
* testing/MockPageOverlay.cpp: Added.
(WebCore::MockPageOverlay::create):
(WebCore::MockPageOverlay::MockPageOverlay):
(WebCore::MockPageOverlay::setFrame):
* testing/MockPageOverlay.h: Added.
(WebCore::MockPageOverlay::overlay):
* testing/MockPageOverlay.idl: Added.
* testing/MockPageOverlayClient.cpp:
(WebCore::MockPageOverlayClient::installOverlay):
(WebCore::MockPageOverlayClient::uninstallAllOverlays):
(WebCore::MockPageOverlayClient::pageOverlayDestroyed):
(WebCore::MockPageOverlayClient::drawRect):
(WebCore::MockPageOverlayClient::mouseEvent):
* testing/MockPageOverlayClient.h:
Make internals.installMockPageOverlay return a MockPageOverlay object so
tests can manipulate their overlay. For now, expose setFrame.
Also, log when MockPageOverlayClient gets asked to paint or receives a mouse event,
which will show up in test output. Slightly unconventional, but very convenient.

* pageoverlay/overlay-small-frame-mouse-events-expected.txt: Added.
* pageoverlay/overlay-small-frame-mouse-events.html: Added.
Add a test ensuring that small-frame overlays get mouse events.

* pageoverlay/overlay-small-frame-paints-expected.txt: Added.
* pageoverlay/overlay-small-frame-paints.html: Added.
Add a test ensuring that small-frame overlays get paint callbacks.

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

3 years agoWeb Inspector: Convert Sidebar classes to use View
mattbaker@apple.com [Tue, 15 Dec 2015 22:33:55 +0000 (22:33 +0000)]
Web Inspector: Convert Sidebar classes to use View
https://bugs.webkit.org/show_bug.cgi?id=152274

Reviewed by Brian Burg.

Updated Sidebar and SidebarPanel to inherit from View. Mostly mechanical changes.
Once the DetailsSection class family inherits from View (https://webkit.org/b/152269),
directly modifying a sidebar's 'contentView' element will rarely be necessary.

* UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
(WebInspector.ApplicationCacheDetailsSidebarPanel):

* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
Add/remove panels as subviews of the sidebar.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange):

* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):

* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):

* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):

* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):

* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WebInspector.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):

* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):

* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):

* UserInterface/Views/SidebarPanel.js:
Inherit from View.
(WebInspector.SidebarPanel):
Replace the content element (the portion of the view excluding navigation
bars, filter bars, etc.) with a View object. A sidebar's content can be a mixture
of unwrapped DOM elements and View objects. For now, the content view's element
will be mutated directly, but once the DetailsSection class family inherits from
the View class the handling of details sections will be simplified.
(WebInspector.SidebarPanel.prototype.get contentView):
(WebInspector.SidebarPanel.prototype.shown):
(WebInspector.SidebarPanel.prototype.hidden):
(WebInspector.SidebarPanel.prototype.get contentElement): Deleted.
Replaced by WebInspector.SidebarPanel.prototype.get contentView.

* UserInterface/Views/StyleDetailsPanel.js:
Inherit from View.
(WebInspector.StyleDetailsPanel):
(WebInspector.StyleDetailsPanel.prototype.get element): Deleted.
Defer to View.element getter.

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):

* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype._updateSections):

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

3 years agoREGRESSION (r192375): DumpRenderTree.app exits immediately with no error
ddkilzer@apple.com [Tue, 15 Dec 2015 22:10:20 +0000 (22:10 +0000)]
REGRESSION (r192375): DumpRenderTree.app exits immediately with no error
<http://webkit.org/b/152314>

Reviewed by Daniel Bates.

The change to DumpRenderTreeMain.mm in r192375 caused the iOS
code path to exit immediately when calling main().
Unfortunately, DumpRenderTreeMain.mm was used for both
DumpRenderTree command-line binary and DumpRenderTree.app, which
meant that the app would exit immediately with no error code
when run!

The workaround is to introduce a separate source file called
DumpRenderTreeAppMain.mm, similar to what WebKitTestRunner
already does.

* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Add
DumpRenderTreeAppMain.mm to the project.  Make it the only
compiled source for the DumpRenderTree.app target.
* DumpRenderTree/ios/DumpRenderTreeAppMain.mm: Copied from Tools/DumpRenderTree/mac/DumpRenderTreeMain.mm.
(main): Call DumpRenderTreeMain() on iOS.  Assert on OS X in
case someone tries mistakenly to use the app.
* DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
Link to JavaScriptCore.framework on iOS for the assert.
* DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
Link to JavaScriptCore.framework on OS X for the assert.  Remove
unneeded EXCLUDED_SOURCE_FILE_NAMES setting.
* DumpRenderTree/mac/DumpRenderTreeMain.mm:
(main): Add assert for iOS so that a crash occurs if someone
tries to run the wrong command.

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

3 years ago[Font Features] TrueType fonts trigger real features even when synthesis is applied
mmaxfield@apple.com [Tue, 15 Dec 2015 21:55:34 +0000 (21:55 +0000)]
[Font Features] TrueType fonts trigger real features even when synthesis is applied
https://bugs.webkit.org/show_bug.cgi?id=152287

Reviewed by Darin Adler.

Source/WebCore:

When using a font feature that is synthesizable, and synthesis is triggered,
we should make sure to turn off the original font feature. Otherwise, the
feature will be applied twice on top of itself.

This worked for OpenType fonts, but not for TrueType fonts.

Tests: css3/font-variant-petite-caps-synthesis.html
       css3/font-variant-small-caps-synthesis.html
       css3/font-variant-petite-caps-synthesis-coverage.html
       css3/font-variant-small-caps-synthesis-coverage.html

* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::defaultSelectorForTrueTypeFeature):
(WebCore::removedFeature):
(WebCore::createCTFontWithoutSynthesizableFeatures):

LayoutTests:

Adding tests.

* css3/font-variant-petite-caps-synthesis-expected.html:
* css3/font-variant-petite-caps-synthesis.html:
* css3/font-variant-small-caps-synthesis-expected.html:
* css3/font-variant-small-caps-synthesis.html:
* css3/font-variant-petite-caps-synthesis-coverage-expected.html:
* css3/font-variant-petite-caps-synthesis-coverage.html:
* css3/font-variant-small-caps-synthesis-coverage-expected.html:
* css3/font-variant-small-caps-synthesis-coverage.html:

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

3 years agoPolymorphic operand types for DFG and FTL bit operators.
mark.lam@apple.com [Tue, 15 Dec 2015 21:19:31 +0000 (21:19 +0000)]
Polymorphic operand types for DFG and FTL bit operators.
https://bugs.webkit.org/show_bug.cgi?id=152191

Reviewed by Saam Barati.

Source/JavaScriptCore:

* bytecode/SpeculatedType.h:
(JSC::isUntypedSpeculationForBitOps):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateUntypedForBitOps):
- Added check for types not supported by ValueToInt32, and therefore should be
  treated as untyped for bitops.

* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- Handled untyped operands.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
- Added DFG slow path functions for bitops.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::compileBitwiseOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileShiftOp):
* dfg/DFGSpeculativeJIT.h:
- Added DFG backend support untyped operands for bitops.

* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- Limit bitops strength reduction only to when we don't have untyped operands.
  This is because values that are not int32s need to be converted to int32.
  Without untyped operands, the ValueToInt32 node takes care of this.
  With untyped operands, we cannot use ValueToInt32, and need to do the conversion
  in the code emitted for the bitop node itself.  For example:

      5.5 | 0; // yields 5 because ValueToInt32 converts the 5.5 to a 5.
      "abc" | 0; // would yield "abc" instead of the expected 0 if we let
                 // strength reduction do its thing.

* ftl/FTLCompileBinaryOp.cpp:
(JSC::FTL::generateBinaryBitOpFastPath):
(JSC::FTL::generateRightShiftFastPath):
(JSC::FTL::generateBinaryOpFastPath):

* ftl/FTLInlineCacheDescriptor.h:
(JSC::FTL::BitAndDescriptor::BitAndDescriptor):
(JSC::FTL::BitAndDescriptor::icSize):
(JSC::FTL::BitAndDescriptor::nodeType):
(JSC::FTL::BitAndDescriptor::opName):
(JSC::FTL::BitAndDescriptor::slowPathFunction):
(JSC::FTL::BitAndDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::BitOrDescriptor::BitOrDescriptor):
(JSC::FTL::BitOrDescriptor::icSize):
(JSC::FTL::BitOrDescriptor::nodeType):
(JSC::FTL::BitOrDescriptor::opName):
(JSC::FTL::BitOrDescriptor::slowPathFunction):
(JSC::FTL::BitOrDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::BitXorDescriptor::BitXorDescriptor):
(JSC::FTL::BitXorDescriptor::icSize):
(JSC::FTL::BitXorDescriptor::nodeType):
(JSC::FTL::BitXorDescriptor::opName):
(JSC::FTL::BitXorDescriptor::slowPathFunction):
(JSC::FTL::BitXorDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::BitLShiftDescriptor::BitLShiftDescriptor):
(JSC::FTL::BitLShiftDescriptor::icSize):
(JSC::FTL::BitLShiftDescriptor::nodeType):
(JSC::FTL::BitLShiftDescriptor::opName):
(JSC::FTL::BitLShiftDescriptor::slowPathFunction):
(JSC::FTL::BitLShiftDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::BitRShiftDescriptor::BitRShiftDescriptor):
(JSC::FTL::BitRShiftDescriptor::icSize):
(JSC::FTL::BitRShiftDescriptor::nodeType):
(JSC::FTL::BitRShiftDescriptor::opName):
(JSC::FTL::BitRShiftDescriptor::slowPathFunction):
(JSC::FTL::BitRShiftDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::BitURShiftDescriptor::BitURShiftDescriptor):
(JSC::FTL::BitURShiftDescriptor::icSize):
(JSC::FTL::BitURShiftDescriptor::nodeType):
(JSC::FTL::BitURShiftDescriptor::opName):
(JSC::FTL::BitURShiftDescriptor::slowPathFunction):
(JSC::FTL::BitURShiftDescriptor::nonNumberSlowPathFunction):
- Added support for bitop ICs.

* ftl/FTLInlineCacheSize.cpp:
(JSC::FTL::sizeOfBitAnd):
(JSC::FTL::sizeOfBitOr):
(JSC::FTL::sizeOfBitXor):
(JSC::FTL::sizeOfBitLShift):
(JSC::FTL::sizeOfBitRShift):
(JSC::FTL::sizeOfBitURShift):
* ftl/FTLInlineCacheSize.h:
- Added new bitop IC sizes.  These are just estimates for now that work adequately,
  and are shown to not impact performance on benchmarks.  We will re-tune these
  sizes values later in another patch once all snippet ICs have been added.

* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitAnd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitOr):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitXor):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitRShift):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitLShift):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitURShift):
- Added support for bitop ICs.

* jit/JITLeftShiftGenerator.cpp:
(JSC::JITLeftShiftGenerator::generateFastPath):
* jit/JITLeftShiftGenerator.h:
(JSC::JITLeftShiftGenerator::JITLeftShiftGenerator):
* jit/JITRightShiftGenerator.cpp:
(JSC::JITRightShiftGenerator::generateFastPath):
- The shift MASM operatons need to ensure that the shiftAmount is not in the same
  register as the destination register.  With the baselineJIT and DFG, this is
  ensured in how we allocate these registers, and hence, the bug does not manifest.
  With the FTL, these registers are not guaranteed to be unique.  Hence, we need
  to fix the shift op snippet code to compensate for this.

LayoutTests:

* js/regress/ftl-polymorphic-bitand-expected.txt: Added.
* js/regress/ftl-polymorphic-bitand.html: Added.
* js/regress/ftl-polymorphic-bitor-expected.txt: Added.
* js/regress/ftl-polymorphic-bitor.html: Added.
* js/regress/ftl-polymorphic-bitxor-expected.txt: Added.
* js/regress/ftl-polymorphic-bitxor.html: Added.
* js/regress/ftl-polymorphic-lshift-expected.txt: Added.
* js/regress/ftl-polymorphic-lshift.html: Added.
* js/regress/ftl-polymorphic-rshift-expected.txt: Added.
* js/regress/ftl-polymorphic-rshift.html: Added.
* js/regress/ftl-polymorphic-urshift-expected.txt: Added.
* js/regress/ftl-polymorphic-urshift.html: Added.
* js/regress/script-tests/ftl-polymorphic-bitand.js: Added.
(o1.valueOf):
(foo):
* js/regress/script-tests/ftl-polymorphic-bitor.js: Added.
(o1.valueOf):
(foo):
* js/regress/script-tests/ftl-polymorphic-bitxor.js: Added.
(o1.valueOf):
(foo):
* js/regress/script-tests/ftl-polymorphic-lshift.js: Added.
(o1.valueOf):
(foo):
* js/regress/script-tests/ftl-polymorphic-rshift.js: Added.
(o1.valueOf):
(foo):
* js/regress/script-tests/ftl-polymorphic-urshift.js: Added.
(o1.valueOf):
(foo):

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

3 years agoWebRTC: Test that RTCPeerConnection promise functions reject on closed state
adam.bergkvist@ericsson.com [Tue, 15 Dec 2015 20:36:15 +0000 (20:36 +0000)]
WebRTC: Test that RTCPeerConnection promise functions reject on closed state
https://bugs.webkit.org/show_bug.cgi?id=152295

Reviewed by Eric Carlson.

Add test that verifies RTCPeerConnection's behavior in the closed state
(signalingState). Promise functions should reject, and (some) others
should throw. Remove old test that tests incorrect behavior.

* fast/mediastream/RTCPeerConnection-closed-state-expected.txt: Added.
* fast/mediastream/RTCPeerConnection-closed-state.html: Added.
* fast/mediastream/RTCPeerConnection-state-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-state.html: Removed.

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

3 years ago[WinCairo][MediaFoundation] Full screen mode is not supported.
peavo@outlook.com [Tue, 15 Dec 2015 19:11:45 +0000 (19:11 +0000)]
[WinCairo][MediaFoundation] Full screen mode is not supported.
https://bugs.webkit.org/show_bug.cgi?id=152300

Reviewed by Darin Adler.

We need to let WebCore know MediaFoundation supports full screen mode.

* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::pause):
(WebCore::MediaPlayerPrivateMediaFoundation::supportsFullscreen):
(WebCore::MediaPlayerPrivateMediaFoundation::naturalSize):
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:

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

3 years agoGuard code that uses class LayerTreeHost with USE(COORDINATED_GRAPHICS) or USE(TEXTUR...
dbates@webkit.org [Tue, 15 Dec 2015 18:40:30 +0000 (18:40 +0000)]
Guard code that uses class LayerTreeHost with USE(COORDINATED_GRAPHICS) or USE(TEXTURE_MAPPER)
https://bugs.webkit.org/show_bug.cgi?id=152265

Reviewed by Tim Horton.

We neither make use of LayerTreeHost on Mac nor on iOS. We should guard code that makes
use of this class as applicable. This also fixes the iOS Simulator build when using
Apple Internal software.

* WebProcess/WebCoreSupport/WebChromeClient.cpp: Guard code that used LayerTreeHost.
* WebProcess/WebPage/LayerTreeHost.cpp: Guard contents of file with USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER).
* WebProcess/WebPage/LayerTreeHost.h: Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scalePage): Ditto.
(WebKit::WebPage::setDeviceScaleFactor): Ditto.
* WebProcess/WebPage/WebPage.h: Substitute header LayerTreeContext.h for LayerTreeHost.h since we make use
of the enum class LayerHostingMode.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects): Remove unnecessary code; DrawingArea::layerTreeHost() always
returns nullptr on iOS.

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

3 years ago[JSC] SyntaxError if AssignmentElement is `eval` or `arguments` in strict code
commit-queue@webkit.org [Tue, 15 Dec 2015 17:58:04 +0000 (17:58 +0000)]
[JSC] SyntaxError if AssignmentElement is `eval` or `arguments` in strict code
https://bugs.webkit.org/show_bug.cgi?id=152302

Patch by Caitlin Potter <caitp@igalia.com> on 2015-12-15
Reviewed by Mark Lam.

`eval` and `arguments` must not be assigned to in strict code. This
change fixes `language/expressions/assignment/destructuring/obj-id-simple-strict.js`
in Test262, as well as a variety of other similar tests.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseAssignmentElement):
(JSC::Parser<LexerType>::parseDestructuringPattern):
* tests/stress/destructuring-assignment-syntax.js:

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

3 years ago[GTK] Gardening: Rebaseline tests
commit-queue@webkit.org [Tue, 15 Dec 2015 17:40:09 +0000 (17:40 +0000)]
[GTK] Gardening: Rebaseline tests
https://bugs.webkit.org/show_bug.cgi?id=152301

Unreviewed GTK gardening

Patch by Tomas Popela <tpopela@redhat.com> on 2015-12-15

* platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt:
Correct the expectations after r189202 when RangeException was
removed.
* platform/gtk/fast/dom/adopt-attribute-crash-expected.txt: Added.
Add a new test expectations after r187148.
* platform/gtk/http/tests/plugins/plugin-javascript-access-expected.txt: Added.
Add a new test expectations after r193363.

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

3 years agoChanging expectation for storage/indexeddb/deleted-objects.html to [ Failure Crash ]
ryanhaddad@apple.com [Tue, 15 Dec 2015 16:36:51 +0000 (16:36 +0000)]
Changing expectation for storage/indexeddb/deleted-objects.html to [ Failure Crash ]
https://bugs.webkit.org/show_bug.cgi?id=152264

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

3 years ago[css-align][css-grid] Overflow alignment value 'true' renamed to 'unsafe'
jfernandez@igalia.com [Tue, 15 Dec 2015 12:11:56 +0000 (12:11 +0000)]
[css-align][css-grid] Overflow alignment value 'true' renamed to 'unsafe'
https://bugs.webkit.org/show_bug.cgi?id=152251

Source/WebCore:

Reviewed by Darin Adler.

The 'True' Overflow Alignment keyword is now defined in the Box Alignment
specification as 'Unsafe'.

This patch applies the required changes in the CSS parsing logic, as well
Grid Layout specific codebase, so it complies with the last version of the
spec.

No new tests, no change in functionality.

* css/CSSParser.cpp:
(WebCore::isAlignmentOverflowKeyword):
(WebCore::CSSParser::parseItemPositionOverflowPosition):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator OverflowAlignment):
* css/CSSValueKeywords.in:
* rendering/RenderGrid.cpp:
(WebCore::computeOverflowAlignmentOffset):
* rendering/style/RenderStyleConstants.h:

LayoutTests:

The 'True' Overflow Alignment keyword is known now as 'Unsafe', so adapting
layout tests using such keyword.

Reviewed by Darin Adler.

* css3/overwrite-content-alignment-expected.txt:
* css3/overwrite-content-alignment.html:
* css3/overwrite-self-alignment-expected.txt:
* css3/overwrite-self-alignment.html:
* css3/parse-align-content-expected.txt:
* css3/parse-align-content.html:
* css3/parse-align-items-expected.txt:
* css3/parse-align-items.html:
* css3/parse-align-self-expected.txt:
* css3/parse-align-self.html:
* css3/parse-justify-content-expected.txt:
* css3/parse-justify-content.html:
* fast/css-grid-layout/grid-align-justify-overflow.html:
* fast/css-grid-layout/grid-content-alignment-overflow.html:
* fast/css/parse-justify-items-expected.txt:
* fast/css/parse-justify-items.html:
* fast/css/parse-justify-self-expected.txt:
* fast/css/parse-justify-self.html:

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

3 years ago[TexMap] Operate with a reference to the TextureMapper wherever possible
zandobersek@gmail.com [Tue, 15 Dec 2015 11:54:13 +0000 (11:54 +0000)]
[TexMap] Operate with a reference to the TextureMapper wherever possible
https://bugs.webkit.org/show_bug.cgi?id=152118

Reviewed by Martin Robinson.

Source/WebCore:

In most cases where used, the pointer to the TextureMapper is non-null, so it
should really be a reference. The pointer is still used for the
TextureMapperLayer member variable which is null until the TextureMapper object
is created and set on the root layer.

* platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/GraphicsContext3DPrivate.h:
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::paintToTextureMapper):
* platform/graphics/cairo/ImageBufferDataCairo.h:
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/surfaces/GraphicsSurface.cpp:
(WebCore::GraphicsSurface::paintToTextureMapper):
* platform/graphics/surfaces/GraphicsSurface.h:
* platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::updateContents):
* platform/graphics/texmap/BitmapTexture.h:
(WebCore::BitmapTexture::applyFilters):
* platform/graphics/texmap/BitmapTextureGL.cpp:
(WebCore::BitmapTextureGL::applyFilters):
* platform/graphics/texmap/BitmapTextureGL.h:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(WebCore::TextureMapperBackingStore::drawRepaintCounter):
* platform/graphics/texmap/TextureMapperFPSCounter.cpp:
(WebCore::TextureMapperFPSCounter::updateFPSAndDisplay):
* platform/graphics/texmap/TextureMapperFPSCounter.h:
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
(WebCore::TextureMapperLayer::paint):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::TextureMapperLayer::applyMask):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
* platform/graphics/texmap/TextureMapperPlatformLayer.h:
(WebCore::TextureMapperPlatformLayer::drawBorder):
* platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):
* platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:
(WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
* platform/graphics/texmap/TextureMapperTile.cpp:
(WebCore::TextureMapperTile::updateContents):
(WebCore::TextureMapperTile::paint):
* platform/graphics/texmap/TextureMapperTile.h:
* platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
(WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
(WebCore::TextureMapperTiledBackingStore::drawBorder):
(WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
(WebCore::TextureMapperTiledBackingStore::updateContents):
* platform/graphics/texmap/TextureMapperTiledBackingStore.h:

Source/WebKit/win:

* WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::compositeLayersToContext): TextureMapper object
is now operated with through a reference.

Source/WebKit2:

Replace pointers to the TextureMapper object with references.

* Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStoreTile::swapBuffers):
(WebKit::CoordinatedBackingStore::paintTilesToTextureMapper):
(WebKit::CoordinatedBackingStore::paintToTextureMapper):
(WebKit::CoordinatedBackingStore::drawBorder):
(WebKit::CoordinatedBackingStore::drawRepaintCounter):
(WebKit::CoordinatedBackingStore::commitTileOperations):
* Shared/CoordinatedGraphics/CoordinatedBackingStore.h:
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::paintToGraphicsContext):
(WebKit::CoordinatedGraphicsScene::commitPendingBackingStoreOperations):

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

3 years agoUnreviewed, rename ExecState* exec to ExecState* state in Intl code
sukolsak@gmail.com [Tue, 15 Dec 2015 10:33:09 +0000 (10:33 +0000)]
Unreviewed, rename ExecState* exec to ExecState* state in Intl code
as reviewed in https://bugs.webkit.org/show_bug.cgi?id=151491

* runtime/IntlCollatorPrototype.cpp:

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

3 years agoURTBF after 194062.
ossy@webkit.org [Tue, 15 Dec 2015 09:07:16 +0000 (09:07 +0000)]
URTBF after 194062.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::supportsFloatingPointCeil): Added.
(JSC::MacroAssemblerARM::ceilDouble): Added.

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

3 years agoWebIDL generator should support the possibility for C++ classes to have a JS Builtin...
youenn.fablet@crf.canon.fr [Tue, 15 Dec 2015 08:55:23 +0000 (08:55 +0000)]
WebIDL generator should support the possibility for C++ classes to have a JS Builtin constructor
https://bugs.webkit.org/show_bug.cgi?id=152171

Reviewed by Darin Adler.

Reintroducing JSBuiltinConstructor keyword as a way to run automatically a JS builtin initialization function
to process the arguments passed to the DOM C++ constructor.

Specialized createJSObject for those classes.

Fixing typo in TestCustomConstructor.idl.

Covered by binding tests.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDefinition):
(IsConstructable):
(IsJSBuiltinConstructor):
(AddJSBuiltinIncludesIfNeeded):
* bindings/scripts/test/GObject/WebKitDOMTestClassWithJSBuiltinConstructor.cpp: Added.
* bindings/scripts/test/GObject/WebKitDOMTestClassWithJSBuiltinConstructor.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestClassWithJSBuiltinConstructorPrivate.h: Added.
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: Added.
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h: Added.
* bindings/scripts/test/ObjC/DOMTestClassWithJSBuiltinConstructor.h: Added.
* bindings/scripts/test/ObjC/DOMTestClassWithJSBuiltinConstructor.mm: Added.
* bindings/scripts/test/ObjC/DOMTestClassWithJSBuiltinConstructorInternal.h: Added.
* bindings/scripts/test/TestClassWithJSBuiltinConstructor.idl: Copied from Source/WebCore/bindings/scripts/test/TestCustomConstructor.idl.
* bindings/scripts/test/TestCustomConstructor.idl:

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

3 years ago[Coordinated Graphics] CSS transition effect is not shown when transformed with ...
commit-queue@webkit.org [Tue, 15 Dec 2015 06:49:03 +0000 (06:49 +0000)]
[Coordinated Graphics] CSS transition effect is not shown when transformed with "%" unit.
https://bugs.webkit.org/show_bug.cgi?id=152278

Patch by YongGeol Jung <yg48.jung@samsung.com> on 2015-12-14
Reviewed by Darin Adler.

boxSize is encoded as FloatSize type but decoded as IntSize type.
So boxSize gets invalid value after decoding.
Due to this layer goes to out of screen during animation.

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<TextureMapperAnimation>::decode):

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

3 years ago<rdar://problem/23886216> REGRESSION (r194022): Production builds of PluginProcess...
mitz@apple.com [Tue, 15 Dec 2015 06:08:19 +0000 (06:08 +0000)]
<rdar://problem/23886216> REGRESSION (r194022): Production builds of PluginProcess crash on launch when not installed in /System
https://bugs.webkit.org/show_bug.cgi?id=152291

Reviewed by Darin Adler.

* Configurations/PluginProcess.xcconfig: Added a FIXME.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::addDYLDEnvironmentAdditions): Set DYLD_LIBRARY_PATH to point to where the shims
are. This is needed because starting in El Capitan, the processes’ main executables link
directly against the shims, so the dynamic linker needs to be able to find them in the
non-/System location. Also added a FIXME about not having to set DYLD_INSERT_LIBRARIES when
the main executables link the them directly.

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

3 years agoUsing fake timestamp in OS version make some results invisible
rniwa@webkit.org [Tue, 15 Dec 2015 05:15:52 +0000 (05:15 +0000)]
Using fake timestamp in OS version make some results invisible
https://bugs.webkit.org/show_bug.cgi?id=152289

Reviewed by Stephanie Lewis.

Fix various bugs after r194088.

* public/api/commits.php:
(format_commit): Include the commit order.
* public/v2/data.js:
(CommitLogs._cacheConsecutiveCommits): Sort by commit order when commit time is missing.
* tools/pull-os-versions.py:
(OSBuildFetcher._assign_order): Use integer instead of fake time for commit order.
(available_builds_from_command): Exit early when an exception is thrown.

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

3 years agoFTL B3 should account for localsOffset
fpizlo@apple.com [Tue, 15 Dec 2015 04:52:55 +0000 (04:52 +0000)]
FTL B3 should account for localsOffset
https://bugs.webkit.org/show_bug.cgi?id=152288

Reviewed by Saam Barati.

The DFG will build up some data structures that expect to know about offsets from FP. Those data
structures may slide by some offset when the low-level compiler (either LLVM or B3) does stack
allocation. So, the LLVM FTL modifies those data structures based on the real offset that it gets
from LLVM's stackmaps. The B3 code needs to do the same.

I had previously vowed to never put more stuff into FTLB3Compile.cpp, because I didn't want it to
look like FTLCompile.cpp. Up until now, I was successful because I used lambdas installed by
FTLLower. But in this case, I actually think that having code that just does this explicitly in
FTLB3Compile.cpp is least confusing. There is no particular place in FTLLower that would want to
care about this, and we need to ensure that we do this fixup before we run any of the stackmap
generators. In other words, it needs to happen before we call B3::generate(). The ordering
constraints seem like a good reason to have this done explicitly rather than through lambdas.

I wrote a test. The test was failing in trunk because the B3 meaning of anchor().value() is
different from the LLVM meaning. This caused breakage when we used this idiom:

    ValueFromBlock foo = m_out.anchor(things);
    ...(foo.value()) // we were expecting that foo.value() == things

I never liked this idiom to begin with, so instead of trying to change B3's anchor(), I changed
the idiom to:

    LValue fooValue = things;
    ValueFromBlock foo = m_out.anchor(fooValue);
    ...(fooValue)

This is probably a good idea, since eventually we want B3's anchor() to just return the
UpsilonValue*. To get there, we want to eliminate any situations where code assumes that
ValueFromBlock is an actual object and not just a typedef for a pointer.

* ftl/FTLB3Compile.cpp:
(JSC::FTL::compile):
* ftl/FTLB3Output.cpp:
(JSC::FTL::Output::appendTo):
(JSC::FTL::Output::lockedStackSlot):
* ftl/FTLB3Output.h:
(JSC::FTL::Output::framePointer):
(JSC::FTL::Output::constBool):
(JSC::FTL::Output::constInt32):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToLLVM::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToLLVM::sensibleDoubleToInt32):
* ftl/FTLState.h:
(JSC::FTL::verboseCompilationEnabled):
* tests/stress/ftl-function-dot-arguments-with-callee-saves.js: Added.

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