[JSC] Get rid of some unused parameters in LLIntSlowPaths.cpp macros
https://bugs.webkit.org/show_bug.cgi?id=125075

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-12-02
Reviewed by Michael Saboff.

* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleHostCall): added UNUSED_PARAM(pc).
(JSC::LLInt::setUpCall): Doesn't pass 'pc' to LLINT_CALL macros.
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] WebKit Project doesn't copy resource bundle
https://bugs.webkit.org/show_bug.cgi?id=125078

Reviewed by Jer Noble.

* WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Correct post-build step
to copy WebKit.resources to build target.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Instead of watchpointing activation allocation, we should watchpoint entry into functions that have captured variables
https://bugs.webkit.org/show_bug.cgi?id=125052

Reviewed by Mark Hahnenberg.
        
This makes us watch function entry rather than activation creation. We only incur the
costs of doing so for functions that have captured variables, and only on the first two
entries into the function. This means that closure variable constant inference will
naturally work even for local uses of the captured variable, like:
        
    (function(){
        var blah = 42;
        ... // stuff
        function () { ... blah /* we can fold this to 42 */ }
        ... blah // we can also fold this to 42.
    })();
        
Previously, only the nested use would have been foldable.

* bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* bytecode/Watchpoint.h:
(JSC::WatchpointSet::touch):
(JSC::InlineWatchpointSet::touch):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasSymbolTable):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGWatchpointCollectionPhase.cpp:
(JSC::DFG::WatchpointCollectionPhase::handle):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_touch_entry):
* llint/LowLevelInterpreter.asm:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/CommonSlowPaths.h:
* runtime/JSActivation.h:
(JSC::JSActivation::create):
* runtime/SymbolTable.cpp:
(JSC::SymbolTable::SymbolTable):
* runtime/SymbolTable.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Stores to local captured variables should be intercepted
https://bugs.webkit.org/show_bug.cgi?id=124883

Source/JavaScriptCore: 

Reviewed by Mark Hahnenberg.
        
Previously, in bytecode, you could assign to a captured variable just as you would
assign to any other kind of variable. This complicates closure variable constant
inference because we don't have any place where we can intercept stores to captured
variables in the LLInt.
        
This patch institutes a policy that only certain instructions can store to captured
variables. If you interpret those instructions and you are required to notifyWrite()
then you need to check if the relevant variable is captured. Those instructions are
tracked in CodeBlock.cpp's VerifyCapturedDef. The main one is simply op_captured_mov.
In the future, we'll probably modify those instructions to have a pointer directly to
the VariableWatchpointSet; but for now we just introduce the captured instructions as
placeholders.
        
In order to validate that the placeholders are inserted correctly, this patch improves
the CodeBlock validation to be able to inspect every def in the bytecode. To do that,
this patch refactors the liveness analysis' use/def calculator to be reusable; it now
takes a functor for each use or def.
        
In the process of refactoring the liveness analysis, I noticed that op_enter was
claiming to def all callee registers. That's wrong; it only defs the non-temporary
variables. Making that change revealed preexisting bugs in the liveness analysis, since
now the validator would pick up cases where the bytecode claimed to use a temporary and
the def calculator never noticed the definition (or the converse - where the bytecode
was actually not using a temporary but the liveness analysis thought that it was a
use). This patch fixes a few of those bugs.

* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::stepOverInstruction):
* bytecode/BytecodeUseDef.h: Added.
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::isCaptured):
(JSC::CodeBlock::validate):
* bytecode/CodeBlock.h:
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::resolveCallee):
(JSC::BytecodeGenerator::emitMove):
(JSC::BytecodeGenerator::isCaptured):
(JSC::BytecodeGenerator::local):
(JSC::BytecodeGenerator::constLocal):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitLazyNewFunction):
(JSC::BytecodeGenerator::emitNewFunctionInternal):
* bytecompiler/BytecodeGenerator.h:
(JSC::Local::Local):
(JSC::Local::isCaptured):
(JSC::Local::captureMode):
(JSC::BytecodeGenerator::captureMode):
(JSC::BytecodeGenerator::emitNode):
(JSC::BytecodeGenerator::pushOptimisedForIn):
* bytecompiler/NodesCodegen.cpp:
(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
(JSC::ForInNode::emitBytecode):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/SymbolTable.h:
(JSC::SymbolTable::isCaptured):

LayoutTests: 

Reviewed by Mark Hahnenberg.

* js/regress/captured-assignments-expected.txt: Added.
* js/regress/captured-assignments.html: Added.
* js/regress/script-tests/captured-assignments.js: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add support for WebCrypto RSA-OAEP
https://bugs.webkit.org/show_bug.cgi?id=125084

Reviewed by Sam Weinig.

Source/WebCore: 

Tests: crypto/subtle/rsa-oaep-key-manipulation.html
       crypto/subtle/rsa-oaep-plaintext-length.html
       crypto/subtle/rsa-oaep-wrap-unwrap-aes.html

* WebCore.xcodeproj/project.pbxproj: Added new files.

* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createRsaOaepParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
Added RSA-OAEP parameters.

* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
(WebCore::JSCryptoKeySerializationJWK::keySizeIsValid):
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
Support RSA-OAEP in JWK. It is more limited than general WebCrypto, as JWK only
allows SHA-1 as hash.

* crypto/CommonCryptoUtilities.cpp: Added. (WebCore::getCommonCryptoDigestAlgorithm):
* crypto/CommonCryptoUtilities.h: Added.
Extracted some shared code and forward declarations for CommonCrypto.

* crypto/CryptoAlgorithmParameters.h: (WebCore::CryptoAlgorithmParameters::Class):
* crypto/parameters/CryptoAlgorithmRsaOaepParams.h: Added.
Added RsaOaepParams.

* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp: Added.
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.h: Added.
* crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp: Added.

* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::getCommonCryptoHMACAlgorithm):
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
* crypto/mac/CryptoKeyMac.cpp:
* crypto/mac/CryptoKeyRSAMac.cpp:
Use CommonCryptoUtilities.

* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Register RSA-OAEP.

LayoutTests: 

* crypto/subtle/rsa-oaep-key-manipulation-expected.txt: Added.
* crypto/subtle/rsa-oaep-key-manipulation.html: Added.
* crypto/subtle/rsa-oaep-plaintext-length-expected.txt: Added.
* crypto/subtle/rsa-oaep-plaintext-length.html: Added.
* crypto/subtle/rsa-oaep-wrap-unwrap-aes-expected.txt: Added.
* crypto/subtle/rsa-oaep-wrap-unwrap-aes.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Simplify MediaPlayerPrivateGStreamerBase::createVideoSink()
https://bugs.webkit.org/show_bug.cgi?id=125077

Remove the method's unused parameter.
Remove the GStreamer 0.10.22 run-time validation, since we are using
GStreamer 1.0 officially.
Remove the creation of a spurious Bin for the video sink, since
either the fpssink or the webkitsink are valid sink elements.
Change fpsink to a GRefPtr.

Now, createVideoSink() returns a simple pointer to the created sink
element.

Reviewed by Philippe Normand.

No new tests, no behavior changes.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
(WebCore::MediaPlayerPrivateGStreamerBase::decodedFrameCount):
(WebCore::MediaPlayerPrivateGStreamerBase::droppedFrameCount):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: add a method to add padding around a WebInspector.Rect
https://bugs.webkit.org/show_bug.cgi?id=125072

Reviewed by Joseph Pecoraro.

Add a new WebInspector.Rect.prototype.pad() method which does not alter
the rectangle it's called and returns a new rect much like .inset(). I've
checked all call sites and there was no reuse of the rectangle that was
padded so this patch won't have any side effects.

* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint.prototype._showEditBreakpointPopover):
* UserInterface/CSSStyleDeclarationTextEditor.js:
* UserInterface/Geometry.js:
(WebInspector.Rect.prototype.pad):
* UserInterface/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel.prototype._updatePopoverForSelectedNode):
* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopover):
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Gstreamer] update webkitvideosink metadata
https://bugs.webkit.org/show_bug.cgi?id=125082

Reviewed by Philippe Normand.

No new tests, no behavior changes.

* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkit_video_sink_class_init):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remote Layer Tree: Disable direct image compositing
https://bugs.webkit.org/show_bug.cgi?id=124875
<rdar://problem/15446024>

Reviewed by Simon Fraser.

* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
Image-as-layer-contents is not implemented for the remote layer tree.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add support for WebCrypto RSA-OAEP
https://bugs.webkit.org/show_bug.cgi?id=125084

Build fix.

* WebCore.xcodeproj/project.pbxproj: Fix an automatic merge failure by re-adding
CryptoAlgorithmRsaOaepParams.h.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159949 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use GenericEventQueue in TrackListBase and reduce code duplication with scheduleTrackEvent()
https://bugs.webkit.org/show_bug.cgi?id=124811

Patch by Brendan Long <b.long@cablelabs.com> on 2013-12-02
Reviewed by Eric Carlson.

Source/WebCore:

No new tests because this is just refactoring.

* html/track/TrackListBase.cpp:
(TrackListBase::TrackListBase): Replace event code with a GenericEventQueue.
(TrackListBase::scheduleTrackEvent): Factor out duplicate code in schedule{Add,Remove}TrackEvent functions.
(TrackListBase::scheduleAddTrackEvent): Same.
(TrackListBase::scheduleRemoveTrackEvent): Same.
(TrackListBase::scheduleChangeEvent): Use GenericEventQueue.
* html/track/TrackListBase.h: Replace event code with GenericEventQueue.

LayoutTests:

* platform/mac/TestExpectations: Unskip onremovetrack test which was fixed a long time ago.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add support for WebCrypto RSA-OAEP
https://bugs.webkit.org/show_bug.cgi?id=125084

Build fix.

* crypto/CommonCryptoUtilities.h:
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
* crypto/mac/CryptoKeyRSAMac.cpp:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: popover can overlap target frame
https://bugs.webkit.org/show_bug.cgi?id=125069

Reviewed by Joseph Pecoraro.

Fix a regression introduced in http://trac.webkit.org/changeset/159286. We should only
offset the frame of the popover in the y-axis if the target edge is on the x-axis, and
vice versa. We also remove the needsToDrawBackground check since it incorrectly disregarded
the anchor point. We now always draw the background which is a lot safer and guarantees
we'll always draw an adequate frame and anchor point.

* UserInterface/Popover.js:
(WebInspector.Popover.prototype._update):
(WebInspector.Popover.prototype._bestMetricsForEdge):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[css shapes] Parse new ellipse shape syntax
https://bugs.webkit.org/show_bug.cgi?id=124620

Patch by Rob Buis <rob.buis@samsung.com> on 2013-12-02
Reviewed by Dirk Schulze.

Source/WebCore:

Implement parsing of the new ellipse shape syntax. This closely follows the patch
for the new circle syntax (https://bugs.webkit.org/show_bug.cgi?id=124618), with
some refactoring of functionality shared by both.

Updated existing parsing tests to cover this.

* css/BasicShapeFunctions.cpp:
(WebCore::BasicShapeRadiusToCSSValue):
(WebCore::valueForBasicShape):
(WebCore::CSSValueToBasicShapeRadius):
(WebCore::basicShapeForValue):
* css/CSSBasicShapes.cpp:
(WebCore::buildEllipseString):
(WebCore::CSSBasicShapeEllipse::cssText):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::buildDeprecatedEllipseString):
(WebCore::CSSDeprecatedBasicShapeEllipse::cssText):
(WebCore::CSSDeprecatedBasicShapeEllipse::equals):
* css/CSSBasicShapes.h:
(WebCore::CSSDeprecatedBasicShapeEllipse::create):
(WebCore::CSSDeprecatedBasicShapeEllipse::centerX):
(WebCore::CSSDeprecatedBasicShapeEllipse::centerY):
(WebCore::CSSDeprecatedBasicShapeEllipse::radiusX):
(WebCore::CSSDeprecatedBasicShapeEllipse::radiusY):
(WebCore::CSSDeprecatedBasicShapeEllipse::setCenterX):
(WebCore::CSSDeprecatedBasicShapeEllipse::setCenterY):
(WebCore::CSSDeprecatedBasicShapeEllipse::setRadiusX):
(WebCore::CSSDeprecatedBasicShapeEllipse::setRadiusY):
(WebCore::CSSDeprecatedBasicShapeEllipse::CSSDeprecatedBasicShapeEllipse):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBasicShapeEllipse):
(WebCore::CSSParser::parseDeprecatedBasicShapeEllipse):
(WebCore::CSSParser::parseBasicShape):
* css/CSSParser.h:
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
* rendering/style/BasicShapes.cpp:
(WebCore::DeprecatedBasicShapeEllipse::path):
(WebCore::DeprecatedBasicShapeEllipse::blend):
(WebCore::BasicShapeEllipse::path):
(WebCore::BasicShapeEllipse::blend):
* rendering/style/BasicShapes.h:
(WebCore::BasicShapeEllipse::centerX):
(WebCore::BasicShapeEllipse::centerY):
(WebCore::BasicShapeEllipse::radiusX):
(WebCore::BasicShapeEllipse::radiusY):
(WebCore::BasicShapeEllipse::setCenterX):
(WebCore::BasicShapeEllipse::setCenterY):
(WebCore::BasicShapeEllipse::setRadiusX):
(WebCore::BasicShapeEllipse::setRadiusY):
(WebCore::BasicShapeEllipse::BasicShapeEllipse):
(WebCore::DeprecatedBasicShapeEllipse::create):
(WebCore::DeprecatedBasicShapeEllipse::DeprecatedBasicShapeEllipse):

LayoutTests:

Test that the new ellipse syntax is properly parsed.

* fast/shapes/parsing/parsing-shape-inside-expected.txt:
* fast/shapes/parsing/parsing-shape-outside-expected.txt:
* fast/shapes/parsing/parsing-test-utils.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
run-jsc-stress-tests should be able to package its tests and move them places
https://bugs.webkit.org/show_bug.cgi?id=124549

Reviewed by Filip Pizlo.

* Scripts/jsc-stress-test-helpers/check-mozilla-failure: Removed. Was just a ruby reimplementation
of grep -i -q
* Scripts/run-javascriptcore-tests: Pass through the --tarball flag.
* Scripts/run-jsc-stress-tests: Changed to create a bundle of tests inside the results directory.
We now also copy whatever VM was specified, along with its associated framework, into this directory.
All of the generated scripts now are completely relative within the results directory. This allows
run-jsc-stress-tests to execute a bundle from anywhere. Also added a --tarball flag which creates a
tarball of the generated results directory. Also refactored several portions of the script into
separate functions to make it easier to run them conditionally depending on which mode we're running in.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remote Layer Tree: Hook up setLayerTreeStateIsFrozen
https://bugs.webkit.org/show_bug.cgi?id=124872

Reviewed by Brent Fulgham.

setLayerTreeStateIsFrozen is the mechanism used to ensure that
layer property changes (including new backing store) aren't committed
while e.g. the page is reconfigured for printing.

* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::RemoteLayerTreeContext):
(WebKit::RemoteLayerTreeContext::flushLayers):
(WebKit::RemoteLayerTreeContext::setIsFlushingSuspended):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fix after r159955

* Scripts/run-jsc-stress-tests:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MediaStream] Use iterator-based loops instead of index-based loops
https://bugs.webkit.org/show_bug.cgi?id=125021

Patch by Roger Zanoni <rogerzanoni@gmail.com> on 2013-12-02
Reviewed by Eric Carlson.

Also, changing iterator variable names from iter to it and
initializing an 'end' variable in each loop instead of evaluating
'collection.end()' multiple times.

No new tests, covered by existing ones.

* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::cloneMediaStreamTrackVector):
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::trackDidEnd):
(WebCore::MediaStream::scheduledEventTimerFired):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a setting to opt into a mode where the background extends and fixed elements 
don't move on rubber-band
https://bugs.webkit.org/show_bug.cgi?id=124745

Reviewed by Tim Horton.

Source/WebCore: 

New setting backgroundShouldExtendBeyondPage() will cause the tile cache to have a 
margin, and it will also cause fixed elements and backgrounds to stick to the 
viewport on scroll instead of sticking to the document. 

* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::scrollBehaviorForFixedElements):
* page/Settings.in:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):

Source/WebKit: 

Keep Windows happy.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Source/WebKit2: 

Add SPI to enable the new setting.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetBackgroundShouldExtendBeyondPage):
(WKPreferencesGetBackgroundShouldExtendBeyondPage):
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Port run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=124801

Reviewed by Filip Pizlo.

* Scripts/run-jsc-stress-tests: Gracefully handle lack of sysctl
command on Windows so that stress tests can run.


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