WebKit-https.git
5 years agoAdd assertion to help track down WebCore::DocumentLoader::stopLoadingForPolicyChange...
cdumez@apple.com [Tue, 10 Feb 2015 21:44:01 +0000 (21:44 +0000)]
Add assertion to help track down WebCore::DocumentLoader::stopLoadingForPolicyChange() crash
https://bugs.webkit.org/show_bug.cgi?id=141441
<rdar://problem/13811738>

Reviewed by Alexey Proskuryakov.

Add assertion to help track down a crash in
WebCore::DocumentLoader::stopLoadingForPolicyChange().

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::~DocumentLoader):
Make sure the DocumentLoader is not waiting for a content policy
response when it is destroyed. If this were to happen, then the
lambda function passed to PolicyChecker::checkContentPolicy()
would outlive the DocumentLoader. This is an issue because
that lambda function captures [this], which is the DocumentLoader.
This would cause DocumentLoader::continueAfterContentPolicy() to
be called after the DocumentLoader has been destroyed, which would
explain the crash.

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

5 years agoWeb Inspector: CSS Pretty Printing: still fails fails to put space between rgb(....
commit-queue@webkit.org [Tue, 10 Feb 2015 21:41:53 +0000 (21:41 +0000)]
Web Inspector: CSS Pretty Printing: still fails fails to put space between rgb(...) and numbers in minified gradients
https://bugs.webkit.org/show_bug.cgi?id=141411

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

* Tools/PrettyPrinting/CodeMirrorFormatters.js:
* UserInterface/Views/CodeMirrorFormatters.js:
Token actually was "number m-css" so we should check token strings
more robustly, like elsewhere in the formatters.

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

5 years agoNew perf dashboard should have the ability to overlay moving average with an envelope
rniwa@webkit.org [Tue, 10 Feb 2015 21:39:41 +0000 (21:39 +0000)]
New perf dashboard should have the ability to overlay moving average with an envelope
https://bugs.webkit.org/show_bug.cgi?id=141438

Reviewed by Andreas Kling.

This patch adds three kinds of moving average strategies and two kinds of enveloping strategies:

Simple Moving Average - The moving average x̄_i of x_i is computed as the arithmetic mean of values
from x_(i - n) though x_(i + m) where n is a non-negative integer and m is a positive integer. It takes
n, backward window size, and m, forward window size, as an argument.

Cumulative Moving Average - x̄_i is computed as the arithmetic mean of all values x_0 though x_i.
That is, x̄_1 = x_1 and x̄_i = ((i - 1) * M_(i - 1) + x_i) / i for all i > 1.

Exponential Moving Average - x̄_i is computed as the weighted average of x_i and x̄_(i - 1) with α as
an argument specifying x_i's weight. To be precise, x̄_1 = x_1 and x̄_i = α * x_i + (α - 1) x̄_(i-1).

Average Difference - The enveloping delta d is computed as the arithmetic mean of the difference
between each x_i and x̄_i.

Moving Average Standard Deviation - d is computed like the standard deviation except the deviation
for each term is measured from the moving average instead of the sample arithmetic mean. i.e. it uses
the average of (x_i - x̄_i)^2 as the "sample variance" instead of the conventional (x_i - x̄)^2 where
x̄ is the sample mean of all x_i's. This change was necessary since our time series is non-stationary.

Each strategy is cloned for an App.Pane instance so that its parameterList can be configured per pane.
The configuration of the currently chosen strategies is saved in the query string for convenience.

Also added the "stat pane" to choose a moving average strategy and a enveloping strategy in each pane.

* public/v2/app.css: Specify the fill color for all SVG groups in the pane toolbar icons.

* public/v2/app.js:
(App.Pane._fetch): Delegate the creation of 'chartData' to _computeChartData.
(App.Pane.updateStatisticsTools): Added. Clones moving average and enveloping strategies for this pane.
(App.Pane._cloneStrategy): Added. Clones a strategy for a new pane.
(App.Pane._configureStrategy): Added. Finds and configures a strategy from the configuration retrieved
from the query string via ChartsController.
(App.Pane._computeChartData): Added. Creates chartData from fetchedData.
(App.Pane._computeMovingAverage): Added. Computes the moving average and the envelope.
(App.Pane._executeStrategy): Added.
(App.Pane._updateStrategyConfigIfNeeded): Pushes the strategy configurations to the query string via
ChartsController.
(App.ChartsController._parsePaneList): Merged the query string arguments for the range and point
selections, and added two new arguments for the moving average and the enveloping configurations.
(App.ChartsController._serializePaneList): Ditto.
(App.ChartsController._scheduleQueryStringUpdate): Observes strategy configurations.
(App.PaneController.actions.toggleBugsPane): Hides the stat pane.
(App.PaneController.actions.toggleSearchPane): Hides the stat pane.
(App.PaneController.actions.toggleStatPane): Added.

* public/v2/chart-pane.css: Added CSS rules for the new stat pane. Also added .foreground class for the
current (as opposed to baseline and target) time series for when it's the most foreground graph without
moving average and its envelope overlapping on top of it.

* public/v2/index.html: Added the templates for the stat pane and the corresponding icon (Σ).

* public/v2/interactive-chart.js:
(App.InteractiveChartComponent.chartDataDidChange): Unset _totalWidth and _totalHeight to avoid exiting
early inside _updateDimensionsIfNeeded when chartData changes after the initial layout.
(App.InteractiveChartComponent.didInsertElement): Attach event listeners here instead of inside
_constructGraphIfPossible since that could be called multiple times on the same SVG element.
(App.InteractiveChartComponent._constructGraphIfPossible): Clear down the old SVG element we created
but don't bother removing individual paths and circles. Added the code to show the moving average time
series when there is one. Also add "foreground" class on SVG elements for the current time series when
we're not showing the moving average. chart-pane.css has been updated to "dim down" the current time
series when "foreground" is not set.
(App.InteractiveChartComponent._minMaxForAllTimeSeries): Take the moving average time series into
account when computing the y-axis range.
(App.InteractiveChartComponent._brushChanged): Removed 'selectionIsLocked' argument as it's useless.

* public/v2/js/statistics.js:
(Statistics.MovingAverageStrategies): Added.
(Statistics.EnvelopingStrategies): Added.

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

5 years agoREGRESSION (r168046): Crash in WebCore::InlineBox::renderer / WebCore::RenderFlowThre...
zalan@apple.com [Tue, 10 Feb 2015 20:27:40 +0000 (20:27 +0000)]
REGRESSION (r168046): Crash in WebCore::InlineBox::renderer / WebCore::RenderFlowThread::checkLinesConsistency
https://bugs.webkit.org/show_bug.cgi?id=133462

Reviewed by David Hyatt.

RenderFlowThread::m_lineToRegionMap stores pointers to the root inlineboxes in the block flow.
Normally root inlineboxes remove themselves from this map in their dtors. However when collapsing an anonymous block,
we detach the inline tree first and destroy them after. The detached root boxes can't access
the flowthread containing block and we end up with dangling pointers in this map.
Call removeFlowChildInfo() before detaching the subtree to ensure proper pointer removal.

Source/WebCore:

Test: fast/multicol/newmulticol/crash-when-switching-to-floating.html

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

LayoutTests:

* fast/multicol/newmulticol/crash-when-switching-to-floating-expected.txt: Added.
* fast/multicol/newmulticol/crash-when-switching-to-floating.html: Added.

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

5 years agoRemove unused DFG::SpeculativeJIT::calleeFrameOffset().
fpizlo@apple.com [Tue, 10 Feb 2015 19:48:56 +0000 (19:48 +0000)]
Remove unused DFG::SpeculativeJIT::calleeFrameOffset().

Rubber stamped by Michael Saboff.

Not only was this not used, I believe that the math was wrong. The callee frame doesn't
actually land past m_nextMachineLocal; instead it lands just below wherever we put SP and
that decision is made elsewhere. Also, it makes no sense to subtract 1 from
m_nextMachineLocal when trying to deduce the number of in-use stack slots.

* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::calleeFrameOffset): Deleted.

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

5 years ago[Cocoa] NSData over retain in WKBrowsingContextController loadData
commit-queue@webkit.org [Tue, 10 Feb 2015 19:11:44 +0000 (19:11 +0000)]
[Cocoa] NSData over retain in WKBrowsingContextController loadData
https://bugs.webkit.org/show_bug.cgi?id=141437

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-02-10
Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
API::Data::createWithoutCopying will automatically do the retaining / releasing for us.

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

5 years agoParser::parseVarDeclarationList gets the wrong JSToken for the last identifier
saambarati1@gmail.com [Tue, 10 Feb 2015 19:01:41 +0000 (19:01 +0000)]
Parser::parseVarDeclarationList gets the wrong JSToken for the last identifier
https://bugs.webkit.org/show_bug.cgi?id=141272

Reviewed by Oliver Hunt.

This patch fixes a bug where the wrong text location would be
assigned to a variable declaration inside a ForIn/ForOf loop.
It also fixes a bug in the type profiler where the type profiler
emits the wrong text offset for a ForIn loop's variable declarator
when it's not a pattern node.

* bytecompiler/NodesCodegen.cpp:
(JSC::ForInNode::emitLoopHeader):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseVarDeclarationList):
* tests/typeProfiler/loop.js:
(testForIn):
(testForOf):

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

5 years ago[iOS] Gardening: fast/loader/subframe-navigate-during-main-frame-load.html crashes...
ddkilzer@apple.com [Tue, 10 Feb 2015 17:28:03 +0000 (17:28 +0000)]
[iOS] Gardening: fast/loader/subframe-navigate-during-main-frame-load.html crashes running all tests

* platform/ios-simulator-wk2/TestExpectations: Mark
fast/loader/subframe-navigate-during-main-frame-load.html as
flakey.

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

5 years agoRender: properly update body's background image
a.obzhirov@samsung.com [Tue, 10 Feb 2015 17:05:05 +0000 (17:05 +0000)]
Render: properly update body's background image
https://bugs.webkit.org/show_bug.cgi?id=140183

When HTML and BODY renderers are both composited the
skipBodyBackground condition should also take into account
if the HTML's layer can draw its contents.

Patch by Julien Isorce <j.isorce@samsung.com> on 2015-02-10
Reviewed by Darin Adler.

Source/WebCore:

Test: animations/animation-background-image.html

* rendering/RenderBox.cpp:
(WebCore::skipBodyBackground): Do not skip
if document's layer cannot draw its content.
Previously both body and html did not paint the background
when they are both composited.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentChanged): Also redisplay
the content.

LayoutTests:

* compositing/backgrounds/background-image-with-negative-zindex-expected.html: Added.
* compositing/backgrounds/background-image-with-negative-zindex.html: Added.

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

5 years ago[WK2] Add support for registering url schemes to bypass Content Security Policy.
commit-queue@webkit.org [Tue, 10 Feb 2015 16:01:30 +0000 (16:01 +0000)]
[WK2] Add support for registering url schemes to bypass Content Security Policy.
https://bugs.webkit.org/show_bug.cgi?id=140736

Patch by Zhuo Li <zachli@apple.com> on 2015-02-10
Reviewed by Anders Carlsson.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy):
* UIProcess/WebProcessPool.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::registerURLSchemeAsBypassingContentSecurityPolicy):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

5 years ago[iOS] don't get out of sync when interrupt/resume calls are not balanced
eric.carlson@apple.com [Tue, 10 Feb 2015 15:47:51 +0000 (15:47 +0000)]
[iOS] don't get out of sync when interrupt/resume calls are not balanced
https://bugs.webkit.org/show_bug.cgi?id=141310

Reviewed by Jer Noble.

Source/WebCore:

No new tests, updated media/video-interruption-with-resume-allowing-play.html.

* platform/audio/MediaSession.cpp:
(WebCore::MediaSession::beginInterruption): Count interruptions.
(WebCore::MediaSession::endInterruption): Ignore calls when m_interruptionCount is already zero.
* platform/audio/MediaSession.h:

LayoutTests:

* media/video-interruption-with-resume-allowing-play-expected.txt:
* media/video-interruption-with-resume-allowing-play.html: Updated to test unbalanced calls
    to begin/end interruption.

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

5 years agoUnreviewed GTK Gardening.
commit-queue@webkit.org [Tue, 10 Feb 2015 14:42:26 +0000 (14:42 +0000)]
Unreviewed GTK Gardening.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-02-10

* platform/gtk/TestExpectations:
* platform/gtk/fast/css/font-face-in-media-rule-expected.txt: Added. Rebaselined after r177774.

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

5 years ago[EFL] Use a variable to set flicking time instead of hardcoding
commit-queue@webkit.org [Tue, 10 Feb 2015 08:24:53 +0000 (08:24 +0000)]
[EFL] Use a variable to set flicking time instead of hardcoding
https://bugs.webkit.org/show_bug.cgi?id=138950

Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2015-02-10
Reviewed by Gyuyoung Kim.

Currently time of flick gesture animation is hardcoded as one second.
This patch added a static variable to increase readability.

* UIProcess/API/efl/GestureRecognizer.cpp:
(WebKit::GestureHandler::GestureHandler):
(WebKit::GestureHandler::flickAnimatorCallback):
(WebKit::GestureHandler::handleFlick):

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

5 years ago[GTK] GMutexLocker build issue
carlosgc@webkit.org [Tue, 10 Feb 2015 08:16:23 +0000 (08:16 +0000)]
[GTK] GMutexLocker build issue
https://bugs.webkit.org/show_bug.cgi?id=141381

Reviewed by Žan Doberšek.

Source/WebCore:

Use always WTF::GMutexLocker because newer glib versions have a
GMutexLocker in the public API.

* platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::provideInput):
(WebCore::AudioSourceProviderGStreamer::handleAudioBuffer):
(WebCore::AudioSourceProviderGStreamer::clearAdapters):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkTimeoutCallback):
(webkitVideoSinkRender):
(unlockSampleMutex):
(webkitVideoSinkUnlockStop):
(webkitVideoSinkStart):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcGetProperty):
(webKitWebSrcStop):
(webKitWebSrcStart):
(webKitWebSrcChangeState):
(webKitWebSrcQueryWithParent):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri):
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcNeedDataCb):
(webKitWebSrcEnoughDataMainCb):
(webKitWebSrcEnoughDataCb):
(webKitWebSrcSeekDataCb):
(webKitWebSrcSetMediaPlayer):
(StreamingClient::createReadBuffer):
(StreamingClient::handleResponseReceived):
(StreamingClient::handleDataReceived):
(StreamingClient::handleNotifyFinished):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

Source/WTF:

Remove using WTF::GMutexLocker from the header, since newer glib
versions have a GMutexLocker in the public API.

* wtf/gobject/GMutexLocker.h:

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

5 years agoJSC's Type Profiler doesn't profile the type of the looping variable in ForOf/ForIn...
saambarati1@gmail.com [Tue, 10 Feb 2015 07:40:53 +0000 (07:40 +0000)]
JSC's Type Profiler doesn't profile the type of the looping variable in ForOf/ForIn loops
https://bugs.webkit.org/show_bug.cgi?id=141241

Reviewed by Filip Pizlo.

Type information is now recorded for ForIn and ForOf statements.
It was an oversight to not have these statements profiled before.

* bytecompiler/NodesCodegen.cpp:
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
* tests/typeProfiler/loop.js: Added.
(testForIn):
(testForOf):

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

5 years ago[Win] Activate media tests. (Unreviewed)
bfulgham@apple.com [Tue, 10 Feb 2015 07:09:31 +0000 (07:09 +0000)]
[Win] Activate media tests. (Unreviewed)

* platform/win/TestExpectations: Activate tests.

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

5 years agoDFG::StackLayoutPhase should always set the scopeRegister to VirtualRegister() becaus...
fpizlo@apple.com [Tue, 10 Feb 2015 04:46:53 +0000 (04:46 +0000)]
DFG::StackLayoutPhase should always set the scopeRegister to VirtualRegister() because the DFG doesn't do anything to make its value valid
https://bugs.webkit.org/show_bug.cgi?id=141412

Reviewed by Michael Saboff.

StackLayoutPhase was attempting to ensure that the register that
CodeBlock::scopeRegister() points to is the right one for the DFG. But the DFG did nothing
else to maintain the validity of the scopeRegister(). It wasn't captured as far as I can
tell. StackLayoutPhase didn't explicitly mark it live. PreciseLocalClobberize didn't mark
it as being live. So, by the time we got here the register referred to by
CodeBlock::scopeRegister() would have been junk. Moreover, CodeBlock::scopeRegister() was
not used for DFG code blocks, and was hardly ever used outside of bytecode generation.

So, this patch just removes the code to manipulate this field and replaces it with an
unconditional setScopeRegister(VirtualRegister()). Setting it to the invalid register
ensures that any attempst to read the scopeRegister in a DFG or FTL frame immediately
punts.

* dfg/DFGStackLayoutPhase.cpp:
(JSC::DFG::StackLayoutPhase::run):

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

5 years agoVarargs frame set-up should be factored out for use by other JITs
fpizlo@apple.com [Tue, 10 Feb 2015 03:27:43 +0000 (03:27 +0000)]
Varargs frame set-up should be factored out for use by other JITs
https://bugs.webkit.org/show_bug.cgi?id=141388

Reviewed by Michael Saboff.

Previously the code that dealt with varargs always assumed that we were setting up a varargs call
frame by literally following the execution semantics of op_call_varargs. This isn't how it'll
happen once the DFG and FTL do varargs calls, or when varargs calls get inlined. The DFG and FTL
don't literally execute bytecode; for example their stack frame layout has absolutely nothing in
common with what the bytecode says, and that will never change.

This patch makes two changes:

Setting up the varargs callee frame can be done in smaller steps: particularly in the case of a
varargs call that gets inlined, we aren't going to actually want to set up a callee frame in
full - we just want to put the arguments somewhere, and that place will not have much (if
anything) in common with the call frame format. This patch factors that out into something called
a loadVarargs. The thing we used to call loadVarargs is now called setupVarargsFrame. This patch
also separates loading varargs from setting this, since the fact that those two things are done
together is a detail made explicit in bytecode but it's not at all required in the higher-tier
engines. In the process of factoring this code out, I found a bunch of off-by-one errors in the
various calculations. I fixed them. The distance from the caller's frame pointer to the callee
frame pointer is always:

    numUsedCallerSlots + argCount + 1 + CallFrameSize

where numUsedCallerSlots is toLocal(firstFreeRegister) - 1, which simplifies down to just
-firstFreeRegister. The code now speaks of numUsedCallerSlots rather than firstFreeRegister,
since the latter is a bytecode peculiarity that doesn't apply in the DFG or FTL. In the DFG, the
internally-computed frame size, minus the parameter slots, will be used for numUsedCallerSlots.
In the FTL, we will essentially compute numUsedCallerSlots dynamically by subtracting SP from FP.
Eventually, LLVM might give us some cleaner way of doing this, but it probably doesn't matter
very much.

The arguments forwarding optimization is factored out of the Baseline JIT: the DFG and FTL will
want to do this optimization as well, but it involves quite a bit of code. So, this code is now
factored out into SetupVarargsFrame.h|cpp, so that other JITs can use it. In the process of factoring
this code out I noticed that the 32-bit and 64-bit code is nearly identical, so I combined them.

* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.h:
(JSC::ExecState::r):
(JSC::ExecState::uncheckedR):
* bytecode/VirtualRegister.h:
(JSC::VirtualRegister::operator+):
(JSC::VirtualRegister::operator-):
(JSC::VirtualRegister::operator+=):
(JSC::VirtualRegister::operator-=):
* interpreter/CallFrame.h:
* interpreter/Interpreter.cpp:
(JSC::sizeFrameForVarargs):
(JSC::loadVarargs):
(JSC::setupVarargsFrame):
(JSC::setupVarargsFrameAndSetThis):
* interpreter/Interpreter.h:
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitGetFromCallFrameHeaderPtr):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader32):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader64):
* jit/JIT.h:
* jit/JITCall.cpp:
(JSC::JIT::compileSetupVarargsFrame):
* jit/JITCall32_64.cpp:
(JSC::JIT::compileSetupVarargsFrame):
* jit/JITInlines.h:
(JSC::JIT::callOperation):
(JSC::JIT::emitGetFromCallFrameHeaderPtr): Deleted.
(JSC::JIT::emitGetFromCallFrameHeader32): Deleted.
(JSC::JIT::emitGetFromCallFrameHeader64): Deleted.
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/SetupVarargsFrame.cpp: Added.
(JSC::emitSetupVarargsFrameFastCase):
* jit/SetupVarargsFrame.h: Added.
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* runtime/Arguments.cpp:
(JSC::Arguments::copyToArguments):
* runtime/Arguments.h:
* runtime/JSArray.cpp:
(JSC::JSArray::copyToArguments):
* runtime/JSArray.h:

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

5 years agoUpdate WEBCORE_EXPORT to prepare to start using it.
commit-queue@webkit.org [Tue, 10 Feb 2015 01:21:38 +0000 (01:21 +0000)]
Update WEBCORE_EXPORT to prepare to start using it.
https://bugs.webkit.org/show_bug.cgi?id=141409

Patch by Alex Christensen <achristensen@webkit.org> on 2015-02-09
Reviewed by Tim Horton.

* bindings/js/JSDOMGlobalObject.h:
* bindings/objc/DOMInternal.h:
* bindings/objc/ExceptionHandlers.mm:
* bindings/objc/WebScriptObjectPrivate.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.h:
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNondeterministic.h:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.h:
* bindings/scripts/test/JS/JSreadonly.h:
* css/StyleProperties.h:
* dom/DeviceMotionData.h:
* dom/Node.h:
* dom/Position.h:
* dom/ScriptExecutionContext.h:
* editing/Editor.h:
* editing/htmlediting.h:
* html/HTMLInputElement.h:
* html/TimeRanges.h:
* loader/FrameLoader.h:
* loader/cache/CacheValidation.h:
* loader/cache/MemoryCache.h:
* loader/icon/IconDatabase.h:
* page/DatabaseProvider.h:
* page/DiagnosticLoggingKeys.h:
* page/EventHandler.h:
* page/FrameSnapshotting.h:
* page/MainFrame.h:
* page/PageConsoleClient.h:
* page/PageOverlay.h:
* platform/CrossThreadCopier.h:
* platform/FileSystem.h:
* platform/PlatformSpeechSynthesizer.h:
* platform/RemoteCommandListener.h:
* platform/RuntimeApplicationChecks.h:
* platform/graphics/Font.h:
* platform/graphics/FontCache.h:
* platform/graphics/FontGlyphs.h:
* platform/graphics/FontRanges.h:
* platform/graphics/GeometryUtilities.h:
* platform/graphics/GlyphPage.h:
* platform/graphics/Region.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/TileController.h:
* platform/graphics/transforms/TransformationMatrix.h:
* platform/mac/WebCoreFullScreenWarningView.h:
* platform/network/BlobDataFileReference.h:
* platform/network/ResourceRequestBase.h:
* platform/network/ResourceResponseBase.h:
* platform/network/create-http-header-name-table:
* platform/network/mac/WebCoreURLResponse.h:
* platform/sql/SQLiteDatabaseTracker.h:
* platform/sql/SQLiteStatement.h:
* rendering/HitTestLocation.h:
* rendering/HitTestResult.h:
* storage/StorageEventDispatcher.h:
Added WEBCORE_EXPORT macros.

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

5 years agoCheck for self-assignment in Length::operator=(const Length&)
cdumez@apple.com [Tue, 10 Feb 2015 01:17:44 +0000 (01:17 +0000)]
Check for self-assignment in Length::operator=(const Length&)
https://bugs.webkit.org/show_bug.cgi?id=141402

Reviewed by Andreas Kling.

Check for self-assignment in Length::operator=(const Length&) as
calling memcpy() with the same source and destination addresses has
undefined behavior.

* platform/Length.h:
(WebCore::Length::operator=):

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

5 years agoWebGL: Update 1.0.2 conformance layout tests and address new failure.
roger_fong@apple.com [Tue, 10 Feb 2015 01:02:28 +0000 (01:02 +0000)]
WebGL: Update 1.0.2 conformance layout tests and address new failure.
https://bugs.webkit.org/show_bug.cgi?id=141408.
<rdar://problem/19773236>

Reviewed by Dean Jackson.

Tests covered by updated 1.0.2 conformance tests.

* html/canvas/WebGLRenderingContextBase.cpp:
Return null string instead of empty string if parameter validation fails.
(WebCore::WebGLRenderingContextBase::getProgramInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderSource):

* fast/canvas/webgl/bad-arguments-test-expected.txt: Removed.
* fast/canvas/webgl/bad-arguments-test.html: Removed. Redundant test case.
* webgl/1.0.2/resources/webgl_test_files/README.md:
* webgl/1.0.2/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/misc/bad-arguments-test.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js:
* webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js:
(VBO.prototype.use):
* webgl/1.0.2/resources/webgl_test_files/conformance/rendering/multisample-corruption.html:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert:
* webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js:
(WebGLTestUtils):
* webgl/1.0.2/resources/webgl_test_files/test-guidelines.md:
* webgl/1.0.2/resources/webgl_test_files/webgl-conformance-tests.html:

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

5 years agoREGRESSION: tryFastCalloc is no longer "try"
ap@apple.com [Tue, 10 Feb 2015 00:12:39 +0000 (00:12 +0000)]
REGRESSION: tryFastCalloc is no longer "try"
https://bugs.webkit.org/show_bug.cgi?id=141406

Reviewed by Darin Adler.

This causes crashes on some WebKit regression test bots.

* wtf/FastMalloc.cpp: (WTF::tryFastCalloc): Fix what looks like a copy/paste mistake.

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

5 years agoDFG call codegen should resolve the callee operand as late as possible
fpizlo@apple.com [Mon, 9 Feb 2015 23:39:57 +0000 (23:39 +0000)]
DFG call codegen should resolve the callee operand as late as possible
https://bugs.webkit.org/show_bug.cgi?id=141398

Reviewed by Mark Lam.

This is mostly a benign restructuring to help with the implementation of
https://bugs.webkit.org/show_bug.cgi?id=141332.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):

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

5 years agoAvoid using a HashMap for DisplayRefreshMonitorManager, which rarely has more than...
timothy_horton@apple.com [Mon, 9 Feb 2015 23:39:41 +0000 (23:39 +0000)]
Avoid using a HashMap for DisplayRefreshMonitorManager, which rarely has more than one item
https://bugs.webkit.org/show_bug.cgi?id=141353

Reviewed by Anders Carlsson.

No new tests, because there's no behavior change.

* platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::unregisterClient):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):
* platform/graphics/DisplayRefreshMonitorManager.h:
Use a Vector of RefPtr<DisplayRefreshMonitor> instead of a HashMap
from uint64_t to RefPtr<DisplayRefreshMonitor>. There's usually only one
display, so there's usually only one DisplayRefreshMonitor. Linear search
on the Vector will be faster than the hash lookup in all conceivable cases.
This also avoids the situation mentioned in the comments in DisplayRefreshMonitorManager.h
where we don't know enough about PlatformDisplayID to safely hash it.

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

5 years agoSelection flickers when trying to change size of selection.
enrica@apple.com [Mon, 9 Feb 2015 23:19:20 +0000 (23:19 +0000)]
Selection flickers when trying to change size of selection.
https://bugs.webkit.org/show_bug.cgi?id=141404
rdar://problem/18824863

Reviewed by Benjamin Poulain.

When looking for the contracted range from the current range,
we were incorrectly choosing a selection whose rectangle is empty
as a best match candidate. This was throwing off all the logic
and producing a contracted range whose rectangle was bigger than the
expanded range, therefore producing a shrink threshold larger than the
growth one.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::contractedRangeFromHandle):

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

5 years agoWeb Inspector: Uncaught exception when reporting wrong backend command call signature
burg@cs.washington.edu [Mon, 9 Feb 2015 23:19:20 +0000 (23:19 +0000)]
Web Inspector: Uncaught exception when reporting wrong backend command call signature
https://bugs.webkit.org/show_bug.cgi?id=141401

Reviewed by Joseph Pecoraro.

* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype._invokeWithArguments): Fix wrong variable name.

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

5 years ago[Mac] Disable the currentTime estimation code in HTMLMediaElement for Yosemite+
jer.noble@apple.com [Mon, 9 Feb 2015 22:57:14 +0000 (22:57 +0000)]
[Mac] Disable the currentTime estimation code in HTMLMediaElement for Yosemite+
https://bugs.webkit.org/show_bug.cgi?id=141399

Reviewed by Eric Carlson.

Apparenty -[AVPlayer rate] means different things for HLS and progressive content; for progressive,
the -rate is the actual rate of playback. For HLS, the -rate is the requested rate, and will return
the requested value even if time is not progressing.

We added the currentTime estimation engine because asking AVFoundation for its -currentTime used to
be expensive, but we've been assured that in recent iOS and OS X releases, -currentTime should be
very fast. That, in combination with the HLS behavior of -rate and how it breaks the currentTime
estimation, means we should probably turn it off for iOS and Yosemite.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(WebCore::MediaPlayerPrivateAVFoundationObjC::maximumDurationToCacheMediaTime): Move implementation to .mm.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::maximumDurationToCacheMediaTime): Disable on iOS and >=10.10.

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

5 years agoWebGL 2: Texture call format, internal format, and type validation.
roger_fong@apple.com [Mon, 9 Feb 2015 20:50:15 +0000 (20:50 +0000)]
WebGL 2: Texture call format, internal format, and type validation.
https://bugs.webkit.org/show_bug.cgi?id=141318.
<rdar://problem/19733828>

Reviewed by Brent Fulgham.

Tests will be covered by WebGL2 conformance tests.

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter): Add missing ExceptionCode argument.
(WebCore::WebGL2RenderingContext::copyTexImage2D): Validate texture formats based on GLES3 spec.
(WebCore::WebGL2RenderingContext::texSubImage2DBase): Validate using internal format from texture target.
(WebCore::WebGL2RenderingContext::texSubImage2DImpl): Validate using internal format from texture target.
(WebCore::WebGL2RenderingContext::texSubImage2D): Validate using internal format from texture target.
(WebCore::WebGL2RenderingContext::validateTexFuncParameters): Do extra validation for copyTexImage2D.
(WebCore::WebGL2RenderingContext::validateTexFuncFormatAndType): Validate internal format, format and type combination.
(WebCore::WebGL2RenderingContext::validateTexFuncData): Validate new data types.
This method now accepts an internal format argument.
(WebCore::WebGL2RenderingContext::baseInternalFormatFromInternalFormat):
Helper method to convert internal format to base internal format.
* html/canvas/WebGL2RenderingContext.h:

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::copyTexImage2D): Moved from WebGLRenderingContextBase.
(WebCore::WebGLRenderingContext::texSubImage2DBase): Ditto.
(WebCore::WebGLRenderingContext::texSubImage2DImpl): Ditto.
(WebCore::WebGLRenderingContext::texSubImage2D): Ditto.
(WebCore::WebGLRenderingContext::validateTexFuncParameters): Ditto.
(WebCore::WebGLRenderingContext::validateTexFuncFormatAndType): Ditto.
(WebCore::WebGLRenderingContext::validateTexFuncData): Ditto.
* html/canvas/WebGLRenderingContext.h:

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::validateTexFunc):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::copyTexImage2D): Deleted.
(WebCore::WebGLRenderingContextBase::texSubImage2DBase): Deleted.
(WebCore::WebGLRenderingContextBase::texSubImage2DImpl): Deleted.
(WebCore::WebGLRenderingContextBase::texSubImage2D): Deleted.
(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType): Deleted.
(WebCore::WebGLRenderingContextBase::validateTexFuncParameters): Deleted.
(WebCore::WebGLRenderingContextBase::validateTexFuncData): Deleted.
* html/canvas/WebGLRenderingContextBase.h: Modify validation type enums to differentiate between CopyImage, TexImage and TexSubImage calls.
(WebCore::ScopedDrawingBufferBinder::ScopedDrawingBufferBinder):  Moved from WebGLRenderingContextBase.
(WebCore::ScopedDrawingBufferBinder::~ScopedDrawingBufferBinder): Ditto.
(WebCore::clip1D): Ditto.
(WebCore::clip2D): Ditto.
* platform/graphics/GraphicsContext3D.h: Rename a typo'ed enum.

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

5 years agoAX: [Win] OBJID_CLIENT comparisons broken in 64-bit builds
bfulgham@apple.com [Mon, 9 Feb 2015 20:27:51 +0000 (20:27 +0000)]
AX: [Win] OBJID_CLIENT comparisons broken in 64-bit builds
https://bugs.webkit.org/show_bug.cgi?id=141391
<rdar://problem/19767342>

Reviewed by Anders Carlsson.

* WebView.cpp:
(WebView::onGetObject): Cast lParam as LONG to ensure proper word size for
comparison against OBJID_CLIENT.

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

5 years agoDFG should only have two mechanisms for describing effectfulness of nodes; previously...
fpizlo@apple.com [Mon, 9 Feb 2015 19:57:41 +0000 (19:57 +0000)]
DFG should only have two mechanisms for describing effectfulness of nodes; previously there were three
https://bugs.webkit.org/show_bug.cgi?id=141369

Reviewed by Michael Saboff.

We previously used the NodeMightClobber and NodeClobbersWorld NodeFlags to describe
effectfulness.  Starting over a year ago, we introduced a more powerful mechanism - the
DFG::clobberize() function.  Now we only have one remaining client of the old NodeFlags,
and everyone else uses DFG::clobberize().  We should get rid of those NodeFlags and
finally switch everyone over to DFG::clobberize().

Unfortunately there is still another place where effectfulness of nodes is described: the
AbstractInterpreter. This is because the AbstractInterpreter has special tuning both for
compile time performance and there are places where the AI is more precise than
clobberize() because of its flow-sensitivity.

This means that after this change there will be only two places, rather than three, where
the effectfulness of a node has to be described:

- DFG::clobberize()
- DFG::AbstractInterpreter

* dfg/DFGClobberize.cpp:
(JSC::DFG::clobbersWorld):
* dfg/DFGClobberize.h:
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::attemptToMakeGetTypedArrayByteLength):
(JSC::DFG::FixupPhase::convertToGetArrayLength):
(JSC::DFG::FixupPhase::attemptToMakeGetTypedArrayByteOffset):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::isPredictedNumerical): Deleted.
(JSC::DFG::Graph::byValIsPure): Deleted.
(JSC::DFG::Graph::clobbersWorld): Deleted.
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToConstant):
(JSC::DFG::Node::convertToGetLocalUnlinked):
(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::convertToPutByOffset):
(JSC::DFG::Node::convertToMultiPutByOffset):
* dfg/DFGNodeFlags.cpp:
(JSC::DFG::dumpNodeFlags):
* dfg/DFGNodeFlags.h:
* dfg/DFGNodeType.h:

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

5 years agoUnreviewed, rolling out r179494.
commit-queue@webkit.org [Mon, 9 Feb 2015 19:53:28 +0000 (19:53 +0000)]
Unreviewed, rolling out r179494.
https://bugs.webkit.org/show_bug.cgi?id=141395

Caused slowdown in a WebKit client test scenario (Requested by
kling on #webkit).

Reverted changeset:

"[Cocoa] Make decoded image data purgeable ASAP."
https://bugs.webkit.org/show_bug.cgi?id=140298
http://trac.webkit.org/changeset/179494

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

5 years ago[WebAudio] AudioBufferSourceNodes should accurately play backwards if given a negativ...
jer.noble@apple.com [Mon, 9 Feb 2015 19:45:54 +0000 (19:45 +0000)]
[WebAudio] AudioBufferSourceNodes should accurately play backwards if given a negative playbackRate.
https://bugs.webkit.org/show_bug.cgi?id=140955

Reviewed by Eric Carlson.

Source/WebCore:

Tests: webaudio/audiobuffersource-negative-playbackrate-interpolated.html
       webaudio/audiobuffersource-negative-playbackrate.html

Add support for playing an AudioBufferSourceNode at a negative playbackRate. Change the meaning of
start() to set the initial playback position at the end of the play range if the rate of playback
is negtive.

* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode): Allow the playbackRate AudioParam to range from [-32, 32].
(WebCore::AudioBufferSourceNode::renderFromBuffer): Change variable names from "start" and "end" to "min" and "max"
    for clarity. Add a non-interpolated and interpolated render step for negative playback.
(WebCore::AudioBufferSourceNode::start): Drive-by fix: default value of grainDuration is not 0.02.
(WebCore::AudioBufferSourceNode::startPlaying): Start playing at the end of the buffer for negative playback.
(WebCore::AudioBufferSourceNode::totalPitchRate): Allow the pitch to be negative.

LayoutTests:

* webaudio/audiobuffersource-negative-playbackrate-expected.txt: Added.
* webaudio/audiobuffersource-negative-playbackrate-interpolated-expected.txt: Added.
* webaudio/audiobuffersource-negative-playbackrate-interpolated-loop-expected.txt: Added.
* webaudio/audiobuffersource-negative-playbackrate-interpolated-loop.html: Added.
* webaudio/audiobuffersource-negative-playbackrate-interpolated.html:
* webaudio/audiobuffersource-negative-playbackrate-loop-expected.txt: Added.
* webaudio/audiobuffersource-negative-playbackrate-loop.html: Added.
* webaudio/audiobuffersource-negative-playbackrate.html:
* webaudio/resources/audiobuffersource-testing.js:
(createRamp):

Get rid of extra HRTF padding as it's now unnecessary.

* webaudio/resources/note-grain-on-testing.js:
(createSignalBuffer):
(verifyStartAndEndFrames):

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

5 years ago[iOS] Gardening: css3/masking/mask-repeat-space-padding.html
ddkilzer@apple.com [Mon, 9 Feb 2015 18:59:44 +0000 (18:59 +0000)]
[iOS] Gardening: css3/masking/mask-repeat-space-padding.html

* platform/ios-simulator-wk2/TestExpectations: Remove
expectation since this is covered in
platform/ios-simulator/TestExpectations as an ImageOnlyFailure.

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

5 years ago[iOS] Gardening for editing/execCommand/remove-list-item-1.html
ddkilzer@apple.com [Mon, 9 Feb 2015 18:53:03 +0000 (18:53 +0000)]
[iOS] Gardening for editing/execCommand/remove-list-item-1.html

* platform/ios-simulator-wk1/TestExpectations:
(editing/execCommand/remove-list-item-1.html): Mark as flakey.
When run (with or without --run-singly), this test always passes
the first time, but fails all subsequent times due to
EDITING DELEGATE: shouldChangeSelectedDOMRange:range
running in a different order.
* platform/ios-simulator-wk2/editing/execCommand/remove-list-item-1-expected.txt: Update.

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

5 years agoREGRESSION (r179771): [iOS] Gardening for compositing/layer-creation/subpixel-adjacen...
ddkilzer@apple.com [Mon, 9 Feb 2015 18:22:00 +0000 (18:22 +0000)]
REGRESSION (r179771): [iOS] Gardening for compositing/layer-creation/subpixel-adjacent-layers-overlap.html

Test recently added for:
Convert the compositing overlap map to use LayoutRects
<http://webkit.org/b/141346>

* platform/ios-simulator/compositing/layer-creation/subpixel-adjacent-layers-overlap-expected.txt:
Add platform-specific results for ios-simulator.

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

5 years agoFix the !ENABLE(DFG_JIT) build
ossy@webkit.org [Mon, 9 Feb 2015 18:07:46 +0000 (18:07 +0000)]
Fix the !ENABLE(DFG_JIT) build
https://bugs.webkit.org/show_bug.cgi?id=141387

Reviewed by Darin Adler.

* jit/Repatch.cpp:

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

5 years agorun-jsc-stress-tests shell test runner should run tests in fixed order
ossy@webkit.org [Mon, 9 Feb 2015 17:52:18 +0000 (17:52 +0000)]
run-jsc-stress-tests shell test runner should run tests in fixed order
https://bugs.webkit.org/show_bug.cgi?id=141383

Reviewed by Darin Adler.

* Scripts/jsc-stress-test-helpers/shell-runner.sh:

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

5 years agoTry to fix build on platforms that use SVG "all in one" file (Windows).
darin@apple.com [Mon, 9 Feb 2015 17:15:28 +0000 (17:15 +0000)]
Try to fix build on platforms that use SVG "all in one" file (Windows).

* svg/SVGAElement.cpp: Don't do "using namespace HTMLNames;" outside of
function boundaries, because that will be inherited by other files.
(WebCore::SVGAElement::isURLAttribute): Use XLinkNames directly here
instead of using HTMLNames implicitly.

* svg/SVGElement.cpp: Don't do "using namespace HTMLNames;" outside of
function boundaries, because that will be inherited by other files.
(WebCore::populateAttributeNameToCSSPropertyIDMap): Instead do it in here.
(WebCore::populateAttributeNameToAnimatedPropertyTypeMap): And here.
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): And here.
(WebCore::SVGElement::parseAttribute): And use HTMLNames directly here
instead of implicitly.

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

5 years agoREGRESSION(r179705): 2nd-level inspector availability no longer controlled by Develop...
burg@cs.washington.edu [Mon, 9 Feb 2015 16:37:41 +0000 (16:37 +0000)]
REGRESSION(r179705): 2nd-level inspector availability no longer controlled by DeveloperExtrasEnabled user default
https://bugs.webkit.org/show_bug.cgi?id=141343

Reviewed by Timothy Hatcher.

The regression was caused by the switch to using WKWebViewConfiguration and
its default WebPreferences object, which is used to populate the inspector page's
Settings object. This WebPreferences is initialized with no identifier, so
only preferences in the FOR_EACH_WEBKIT_DEBUG_*_PREFERENCE macros are populated
from NSUserDefaults.

The simplest fix is to move DeveloperExtrasEnabled into the DEBUG group.

Previously, each inspector level had a unique identifier such as
__WebInspectorPageGroupLevelN__, and the n+1 level inspector was enabled
by toggling __WebInspectorPageGroupLevelN__.WebKit2DeveloperExrasEnabled.
With the move to the DEBUG group, the preference becomes simply
WebKitDeveloperExtrasEnabled, which enables any level of inspector.
(This does not clash with Safari's "Show Develop Menu" preference, which uses
the key "WebKitDeveloperExtrasEnabledPreferenceKey")

* Shared/WebPreferencesDefinitions.h:

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

5 years ago[iOS] exit from fullscreen when player view controller calls delegate
eric.carlson@apple.com [Mon, 9 Feb 2015 16:22:53 +0000 (16:22 +0000)]
[iOS] exit from fullscreen when player view controller calls delegate
https://bugs.webkit.org/show_bug.cgi?id=141350

Reviewed by Jer Noble.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController playerViewControllerWillCancelOptimizedFullscree:]): New, ask delegate
    to exit from fullscreen.

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

5 years agoASSERTION FAILED: resolvedInitialPosition <= resolvedFinalPosition in WebCore::GridSp...
svillar@igalia.com [Mon, 9 Feb 2015 14:05:49 +0000 (14:05 +0000)]
ASSERTION FAILED: resolvedInitialPosition <= resolvedFinalPosition in WebCore::GridSpan::GridSpan
https://bugs.webkit.org/show_bug.cgi?id=141328

Reviewed by Darin Adler.

.:

Added as manual test because it involves a huge grid allocation
which is very slow on Debug bots, the only ones capable to trigger
the assertion.

* ManualTests/css-grid-layout-item-with-huge-span-crash.html: Added.

Source/WebCore:

Whenever
GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition()
was trying to place an item with span, it was completely ignoring
the resolvedInitialPosition returned by
GridResolvedPosition::resolveGridPositionAgainstOppositePosition()
and only using the finalResolvedPosition. This works with an
unlimited grid which can indefinitely grow. But if the item spans
over the grid track limits, then it might happen that the final
resolved position is placed before the initial resolved position,
something that is forbidden.

The solution is to directly use the GridSpan returned by
GridResolvedPosition::resolveGridPositionAgainstOppositePosition(), if the item
does not surpass the track limits then the returned initialResolvedPosition
is identical to the provided one, otherwise it's properly corrected to respect
track boundaries.

* rendering/style/GridResolvedPosition.cpp:
(WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):

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

5 years agoUnreviewed GTK Gardening.
clopez@igalia.com [Mon, 9 Feb 2015 13:18:19 +0000 (13:18 +0000)]
Unreviewed GTK Gardening.

* platform/gtk/TestExpectations: Mark new test failing
* platform/gtk/css2.1/t1508-c527-font-00-b-expected.txt: Added. Rebaseline after r177774.

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

5 years ago[CSS Grid Layout] Tracks' growth limits must be >= base sizes
svillar@igalia.com [Mon, 9 Feb 2015 11:34:11 +0000 (11:34 +0000)]
[CSS Grid Layout] Tracks' growth limits must be >= base sizes
https://bugs.webkit.org/show_bug.cgi?id=140540

Reviewed by Antti Koivisto.

Source/WebCore:

The track sizing algorithm is supposed to avoid those situations
but they easily (specially when we mix absolute lengths and
intrinsic lengths in min and max track sizing functions) and
frequently appear. In those cases the outcome from the algorithm
is wrong, tracks are not correctly sized.

In order to fulfill the restriction, m_usedBreadth and
m_maxBreadth are now private members of GridTrack and the class
now provides a couple of methods to modify them respecting the
growthLimit >= baseSize precondition.

Apart from that, the members and methods of GridTrack were also
renamed to match the ones used in the recent algorithm rewrite:
usedBreadth became baseSize and maxBreadth is now growthLimit.

Although the algorithm was not modified at all, this change
detected and fixed several invalid results (tracks and/or grids
bigger than expected).

* rendering/RenderGrid.cpp:
(WebCore::GridTrack::GridTrack): Renamed fields and methods. Added
assertions.
(WebCore::GridTrack::baseSize): Renamed from usedBreadth.
(WebCore::GridTrack::growthLimit): Renamed from maxBreadth.
(WebCore::GridTrack::setBaseSize):
(WebCore::GridTrack::setGrowthLimit):
(WebCore::GridTrack::growBaseSize): Renamed from growUsedBreadth.
(WebCore::GridTrack::growGrowthLimit): Renamed from growMaxBreadth.
(WebCore::GridTrack::growthLimitIsInfinite): New helper method.
(WebCore::GridTrack::growthLimitIfNotInfinite): Renamed from
maxBreadthIfNotInfinite.
(WebCore::GridTrack::isGrowthLimitBiggerThanBaseSize): New helper
method to verify ASSERTs are true.
(WebCore::GridTrack::ensureGrowthLimitIsBiggerThanBaseSize): Ditto.
(WebCore::GridTrackForNormalization::GridTrackForNormalization):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::computeNormalizedFractionBreadth):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::sortByGridTrackGrowthPotential):
(WebCore::RenderGrid::distributeSpaceToTracks):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositions):
(WebCore::GridTrack::growUsedBreadth): Renamed to growBaseSize.
(WebCore::GridTrack::usedBreadth): Renamed to baseSize.
(WebCore::GridTrack::growMaxBreadth): Renamed to growGrowthLimit.
(WebCore::GridTrack::maxBreadthIfNotInfinite): Renamed to
growthLimitIfNotInfinite.
* rendering/RenderGrid.h:

LayoutTests:

* fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
* fast/css-grid-layout/grid-content-sized-columns-resolution.html:

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

5 years agoMeasure cache size more accurately
antti@apple.com [Mon, 9 Feb 2015 11:03:06 +0000 (11:03 +0000)]
Measure cache size more accurately
https://bugs.webkit.org/show_bug.cgi?id=141378
<rdar://problem/19760224>

Reviewed by Chris Dumez.

Estimate the cache disk space usage from the actual entry sizes instead of the item count.
This prevents large cache items from making the cache grow beyond its bounds.

* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::initialize):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):

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

5 years agoUnreviewed, add new baseline since r179796.
gyuyoung.kim@samsung.com [Mon, 9 Feb 2015 08:18:20 +0000 (08:18 +0000)]
Unreviewed, add new baseline since r179796.

New baseline was added by r179796. EFL port supports the test as well.
This patch adds new baseline based on EFL port.

* platform/efl/fast/css/focus-ring-exists-for-search-field-expected.png: Added.
* platform/efl/fast/css/focus-ring-exists-for-search-field-expected.txt: Added.

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

5 years agoREGRESSION(r179705): [GTK] The Web Inspector doesn't work after r179705
carlosgc@webkit.org [Mon, 9 Feb 2015 08:02:34 +0000 (08:02 +0000)]
REGRESSION(r179705): [GTK] The Web Inspector doesn't work after r179705
https://bugs.webkit.org/show_bug.cgi?id=141333

Reviewed by Žan Doberšek.

Create an initialize WebPreferences for the inspector page. This
was moved from cross-platform code to platform specific code.

* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):

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

5 years agoAX: VoiceOver appears unresponsive when JavaScript alerts are triggered via focus...
cfleizach@apple.com [Mon, 9 Feb 2015 07:09:50 +0000 (07:09 +0000)]
AX: VoiceOver appears unresponsive when JavaScript alerts are triggered via focus or blur events
https://bugs.webkit.org/show_bug.cgi?id=140485

Reviewed by Anders Carlsson.

Source/WebCore:

If setting an accessibility attribute results in a modal alert being displayed, it can cause VoiceOver
to hang. A simple solution is perform the actual work after a short delay, which will ensure the call
returns without hanging.

Test: platform/mac/accessibility/setting-attributes-is-asynchronous.html

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):

Tools:

Implement takeFocus() as a way to set focus through accessibility wrappers.

* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::takeFocus):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::takeFocus):

LayoutTests:

Modify tests that relied on setting behavior and immediately checking results. Those
tests now need to retrieve results after a short timeout.

* accessibility/textarea-selected-text-range-expected.txt:
* accessibility/textarea-selected-text-range.html:
* platform/mac/accessibility/select-element-selection-with-optgroups.html:
* platform/mac/accessibility/setting-attributes-is-asynchronous-expected.txt: Added.
* platform/mac/accessibility/setting-attributes-is-asynchronous.html: Added.

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

5 years agoAdd parsing support for CSS Selector L4's case-insensitive attribute
benjamin@webkit.org [Mon, 9 Feb 2015 03:44:57 +0000 (03:44 +0000)]
Add parsing support for CSS Selector L4's case-insensitive attribute
https://bugs.webkit.org/show_bug.cgi?id=141373

Reviewed by Darin Adler.

Source/WebCore:

This patch adds parsing for the case-insensitive attribute value
matching of CSS Selectors Level 4: http://dev.w3.org/csswg/selectors-4/#attribute-case
Excuse of a grammar: http://dev.w3.org/csswg/selectors-4/#grammar

This patch also covers serialization for CSSOM. The serialization
is defined here: http://dev.w3.org/csswg/cssom/#serializing-selectors

Matching is completely ignored in this patch. All the simple selectors
are treated as regular attribute selectors.

Tests: fast/css/parsing-css-attribute-case-insensitive-value-1.html
       fast/css/parsing-css-attribute-case-insensitive-value-2.html
       fast/css/parsing-css-attribute-case-insensitive-value-3.html
       fast/css/parsing-css-attribute-case-insensitive-value-4.html

* css/CSSGrammar.y.in:
* css/CSSParserValues.h:
(WebCore::CSSParserSelector::setAttributeValueMatchingIsCaseInsensitive):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::setAttributeValueMatchingIsCaseInsensitive):
(WebCore::CSSSelector::attributeValueMatchingIsCaseInsensitive):

LayoutTests:

* fast/css/css-selector-text-expected.txt:
* fast/css/css-selector-text.html:
* fast/css/css-set-selector-text-expected.txt:
* fast/css/css-set-selector-text.html:
Basic round-trip serialization through CSSOM.

* fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt: Added.
* fast/css/parsing-css-attribute-case-insensitive-value-1.html: Added.
Simple cases by themself and used in complex selectors.

* fast/css/parsing-css-attribute-case-insensitive-value-2-expected.txt: Added.
* fast/css/parsing-css-attribute-case-insensitive-value-2.html: Added.
Less simple cases, all kinds of valid syntax for case-insensitive attributes.

* fast/css/parsing-css-attribute-case-insensitive-value-3-expected.txt: Added.
* fast/css/parsing-css-attribute-case-insensitive-value-3.html: Added.
Cases that must be treated as invalid selectors.

* fast/css/parsing-css-attribute-case-insensitive-value-4-expected.txt: Added.
* fast/css/parsing-css-attribute-case-insensitive-value-4.html: Added.
Verify that invalid rules do not affect surrounding valid rules.

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

5 years ago[iOS] Skip js/dom/create-lots-of-workers.html on ios-simulator
ddkilzer@apple.com [Mon, 9 Feb 2015 02:56:05 +0000 (02:56 +0000)]
[iOS] Skip js/dom/create-lots-of-workers.html on ios-simulator

Already skipped on mac; marked as flakey on efl and gtk.

Fix tracked by:
REGRESSION: js/dom/create-lots-of-workers.html frequently crashes (sometimes in js/dom/cross-frame-bad-time.html)
<http://webkit.org/b/129758>
<rdar://problem/19760988>

* platform/ios-simulator/TestExpectations: Skip test.
* platform/mac/TestExpectations: Add comment about skipping on
ios-simulator.

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

5 years agoRemove a few duplicate propagation steps from the DFG's PredictionPropagation phase
benjamin@webkit.org [Mon, 9 Feb 2015 02:42:22 +0000 (02:42 +0000)]
Remove a few duplicate propagation steps from the DFG's PredictionPropagation phase
https://bugs.webkit.org/show_bug.cgi?id=141363

Reviewed by Darin Adler.

* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
Some blocks were duplicated, they probably evolved separately
to the same state.

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

5 years agoRemove useless declarations and a stale comment from DFGByteCodeParser.h
benjamin@webkit.org [Mon, 9 Feb 2015 02:40:09 +0000 (02:40 +0000)]
Remove useless declarations and a stale comment from DFGByteCodeParser.h
https://bugs.webkit.org/show_bug.cgi?id=141361

Reviewed by Darin Adler.

The comment refers to the original form of the ByteCodeParser:
    parse(Graph&, JSGlobalData*, CodeBlock*, unsigned startIndex);

That form is long dead, the comment is more misleading than anything.

* dfg/DFGByteCodeParser.cpp:
* dfg/DFGByteCodeParser.h:

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

5 years agoEncapsulate DFG::Plan's beforeFTL timestamp
benjamin@webkit.org [Mon, 9 Feb 2015 02:38:47 +0000 (02:38 +0000)]
Encapsulate DFG::Plan's beforeFTL timestamp
https://bugs.webkit.org/show_bug.cgi?id=141360

Reviewed by Darin Adler.

Make the attribute private, it is an internal state.

Rename beforeFTL->timeBeforeFTL for readability.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGPlan.h:

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

5 years agoRemove DFGNode::hasArithNodeFlags()
benjamin@webkit.org [Mon, 9 Feb 2015 02:37:03 +0000 (02:37 +0000)]
Remove DFGNode::hasArithNodeFlags()
https://bugs.webkit.org/show_bug.cgi?id=141319

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

* dfg/DFGNode.h:
(JSC::DFG::Node::hasArithNodeFlags): Deleted.
Unused code is unused.

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

5 years agoFix CMake-based build.
darin@apple.com [Mon, 9 Feb 2015 01:50:50 +0000 (01:50 +0000)]
Fix CMake-based build.

* CMakeLists.txt: Added a dependency on the CMakeLists.txt itself, analogous
to the one I added in DerivedSources.make.

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

5 years agoFix build.
darin@apple.com [Mon, 9 Feb 2015 01:40:07 +0000 (01:40 +0000)]
Fix build.

* bindings/js/JSEventListener.h: Removed a call to forwardEventListeners.

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

5 years agofullscreen/full-screen-plugin.html is very flaky on Yosemite WK2
ap@apple.com [Mon, 9 Feb 2015 01:25:17 +0000 (01:25 +0000)]
fullscreen/full-screen-plugin.html is very flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=141364

Reviewed by Sam Weinig.

Make the test wait for the plug-in to become available.

* fullscreen/full-screen-plugin.html:

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

5 years agoRemove the SVG instance tree
darin@apple.com [Mon, 9 Feb 2015 01:13:35 +0000 (01:13 +0000)]
Remove the SVG instance tree
https://bugs.webkit.org/show_bug.cgi?id=140602

Reviewed by Dean Jackson.

Source/WebCore:

* CMakeLists.txt: Removed SVGElementInstance source files.
* DerivedSources.cpp: Ditto.
* DerivedSources.make: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSBindingsAllInOne.cpp: Ditto.

* bindings/js/JSEventListener.cpp:
(WebCore::forwardsEventListeners): Deleted. Only returned true for JSSVGElementInstance.
(WebCore::correspondingElementWrapper): Deleted. Only used for JSSVGElementInstance.
(WebCore::createJSEventListenerForAttribute): Deleted. Argument type was JSSVGElementInstance.
(WebCore::createJSEventListenerForAdd): Removed most of the code; later we can delete this entirely.

* bindings/js/JSEventListener.h: Removed the overload of createJSEventListenerForAttribute
that takes a JSSVGElementInstance.

* bindings/js/JSSVGElementInstanceCustom.cpp: Removed.

* dom/ContainerNodeAlgorithms.h: Updated comment to reflect the fact that
this code is really now only used for ContainerNode and no longer needs to
exist in a generic form.

* dom/EventTarget.h: Removed forward declaration of SVGElementInstance.
* svg/SVGElement.h: Ditto.

* dom/EventTargetFactory.in: Removed SVGElementInstance.

* svg/SVGElementInstance.cpp: Removed.
* svg/SVGElementInstance.h: Removed.
* svg/SVGElementInstance.idl: Removed.

* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedInto): Removed obsolete comment.
(WebCore::SVGUseElement::instanceTreeIsLoading): Deleted. Unused
function that I forgot to delete in my last patch. It also had a
glaring mistake, a missing "return" before the recursive call to
itself that would cause it to return false when it should return true.

* svg/SVGUseElement.h: Removed instanceTreeIsLoading.

* dom/EventDispatcher.cpp: Removed include of SVGElementInstance.h.
* page/EventHandler.cpp: Ditto.
* rendering/svg/RenderSVGViewportContainer.cpp: Ditto.
* svg/SVGAElement.cpp: Ditto.
* svg/SVGAllInOne.cpp: Ditto.
* svg/SVGAnimateMotionElement.cpp: Ditto.
* svg/SVGAnimatedTypeAnimator.h: Ditto.
* svg/SVGAnimationElement.cpp: Ditto.
* svg/SVGCircleElement.cpp: Ditto.
* svg/SVGClipPathElement.cpp: Ditto.
* svg/SVGComponentTransferFunctionElement.cpp: Ditto.
* svg/SVGCursorElement.cpp: Ditto.
* svg/SVGElement.cpp: Ditto.
* svg/SVGEllipseElement.cpp: Ditto.
* svg/SVGFEBlendElement.cpp: Ditto.
* svg/SVGFEColorMatrixElement.cpp: Ditto.
* svg/SVGFECompositeElement.cpp: Ditto.
* svg/SVGFEConvolveMatrixElement.cpp: Ditto.
* svg/SVGFEDiffuseLightingElement.cpp: Ditto.
* svg/SVGFEDisplacementMapElement.cpp: Ditto.
* svg/SVGFEDropShadowElement.cpp: Ditto.
* svg/SVGFEGaussianBlurElement.cpp: Ditto.
* svg/SVGFEImageElement.cpp: Ditto.
* svg/SVGFELightElement.cpp: Ditto.
* svg/SVGFEMergeNodeElement.cpp: Ditto.
* svg/SVGFEMorphologyElement.cpp: Ditto.
* svg/SVGFEOffsetElement.cpp: Ditto.
* svg/SVGFESpecularLightingElement.cpp: Ditto.
* svg/SVGFETileElement.cpp: Ditto.
* svg/SVGFETurbulenceElement.cpp: Ditto.
* svg/SVGFilterElement.cpp: Ditto.
* svg/SVGFilterPrimitiveStandardAttributes.cpp: Ditto.
* svg/SVGForeignObjectElement.cpp: Ditto.
* svg/SVGGElement.cpp: Ditto.
* svg/SVGGradientElement.cpp: Ditto.
* svg/SVGGraphicsElement.cpp: Ditto.
* svg/SVGImageElement.cpp: Ditto.
* svg/SVGLineElement.cpp: Ditto.
* svg/SVGLinearGradientElement.cpp: Ditto.
* svg/SVGMarkerElement.cpp: Ditto.
* svg/SVGMaskElement.cpp: Ditto.
* svg/SVGPathElement.cpp: Ditto.
* svg/SVGPatternElement.cpp: Ditto.
* svg/SVGPolyElement.cpp: Ditto.
* svg/SVGRadialGradientElement.cpp: Ditto.
* svg/SVGRectElement.cpp: Ditto.
* svg/SVGSVGElement.cpp: Ditto.
* svg/SVGScriptElement.cpp: Ditto.
* svg/SVGStopElement.cpp: Ditto.
* svg/SVGSymbolElement.cpp: Ditto.
* svg/SVGTRefElement.cpp: Ditto.
* svg/SVGTextContentElement.cpp: Ditto.
* svg/SVGTextElement.cpp: Ditto.
* svg/SVGTextPathElement.cpp: Ditto.
* svg/SVGTextPositioningElement.cpp: Ditto.

Tools:

* Scripts/check-for-global-initializers: Removed special case for
SVGElementInstance.o.

LayoutTests:

Last step: Remove SVGElementInstance class itself.

* js/dom/global-constructors-attributes-expected.txt: Removed SVGElementInstance.
* platform/efl/js/dom/global-constructors-attributes-expected.txt: Ditto.
* platform/gtk/js/dom/global-constructors-attributes-expected.txt: Ditto.
* platform/ios-sim-deprecated/fast/dom/Window/window-property-descriptors-expected.txt: Ditto.
* platform/ios-sim-deprecated/fast/js/global-constructors-expected.txt: Ditto.
* platform/ios-sim-deprecated/js/dom/global-constructors-attributes-expected.txt: Ditto.
* platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt: Ditto.
* platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt: Ditto.
* platform/mac/js/dom/global-constructors-attributes-expected.txt: Ditto.
* platform/win/js/dom/global-constructors-attributes-expected.txt: Ditto.
* svg/custom/global-constructors-expected.txt: Ditto.
* svg/custom/script-tests/global-constructors.js: Ditto.
* svg/dom/svg2-inheritance-expected.txt: Ditto.
* svg/dom/svg2-inheritance.html: Ditto.

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

5 years agoNull deref in _clearImmediateActionState when closing a view with a DataDetectors...
timothy_horton@apple.com [Mon, 9 Feb 2015 00:30:46 +0000 (00:30 +0000)]
Null deref in _clearImmediateActionState when closing a view with a DataDetectors popover open
https://bugs.webkit.org/show_bug.cgi?id=141377
<rdar://problem/19711203>

Reviewed by Darin Adler.

* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
We can have already detached the page when DataDetectors calls us back
in interactionStoppedHandler. While we have kept a strong reference to the
page in the interactionStoppedHandler block, _page is nulled out.
It's OK to avoid doing this work, in any case, because closing a page
tears down the TextIndicator anyway.

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

5 years agoTweak inline playback controls to match system spec
dino@apple.com [Sun, 8 Feb 2015 23:40:01 +0000 (23:40 +0000)]
Tweak inline playback controls to match system spec
https://bugs.webkit.org/show_bug.cgi?id=141375
<rdar://problem/19760754>

Reviewed by Sam Weinig.

Rework the UI of the inline media controls on iOS, to
better match the system specification. I've batched a
few changes into one patch because many of them are
inter-dependent, and not very aggressive. Changes are:

- updated artwork for the buttons.
- separate artwork for normal and active states.
- background images are now explicitly sized and positioned
  in the middle of the element, allowing audio and video
  to use the same glyphs even though the elements are
  different sizes.
- use plus-darker blend mode on the button glyphs.
- rearranged some of the rules to group things in a
  logical order.
- time should front-pad a "0" character, if less than 10.
- no need for an "active" class on the Airplay button (although
  I won't be surprised if this changes back).

* Modules/mediacontrols/mediaControlsiOS.css:
(::-webkit-media-controls):
(video::-webkit-media-controls-wireless-playback-picker-button.active): Deleted.
(audio::-webkit-media-controls-wireless-playback-picker-button.active): Deleted.
(audio::-webkit-media-controls-play-button:active): Deleted.
(audio::-webkit-media-controls-play-button.paused): Deleted.
(video::-webkit-media-controls-timeline): Deleted.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.updateWirelessPlaybackStatus): No need
for the "active" class.
(ControllerIOS.prototype.formatTime): Pad with a leading zero.

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

5 years agoMake SVGUseElement work without creating any SVGElementInstance objects
darin@apple.com [Sun, 8 Feb 2015 23:22:24 +0000 (23:22 +0000)]
Make SVGUseElement work without creating any SVGElementInstance objects
https://bugs.webkit.org/show_bug.cgi?id=141374

Reviewed by Sam Weinig.

Source/WebCore:

* dom/ElementIterator.h: Changed the * and -> operators to be const.
There is no need for the iterator itself to be modified just to dereference it.

* dom/TypedElementDescendantIterator.h: Added DoubleTypedElementDescendantIterator.
This allows callers to call descendantsOfType on two elements, as long as the caller
can guarantee that both have the same number of descendants of that type. It's handy
for walking a tree of cloned elements to set up something between each original and
its clone. In the future we might instead change the cloning machinery so it can do
this work as we clone, and if so, we could consider deleting this.

* svg/SVGElement.cpp:
(WebCore::SVGElement::correspondingElement): Made this const.
(WebCore::SVGElement::invalidateInstances): Got rid of the rule that said "this can
only be done for an element in a document", since it's useful to do this on an element
that has just been removed from a document. Removed the "updateStyleIfNeeded" call
here now that the other changes make it no longer needed. Removed an unimportant
assertion that we only invalidate use elements that are in a document; that's not
a necessary restriction. Streamlined the logic a bit.

* svg/SVGElement.h: Made correspondingElement const.

* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedInto): Removed an assertion about
m_targetElementInstance since that's gone now.
(WebCore::SVGUseElement::svgAttributeChanged): Changed code that transfers
size attributes to the shadow tree to use shadowTreeTargetClone instead of
m_targetElementInstance.
(WebCore::SVGUseElement::clearResourceReferences): Removed code to detach
m_targetElementInstance, and also the call to removeAllTargetReferencesForElement,
because we no longer use those.
(WebCore::SVGUseElement::buildPendingResource): Moved the code to build the
shadow tree in here and deleted the buildShadowAndInstanceTree function.
Also changed logic so that we use a pending resource any time the target is not
a valid one. That helps us correctly handle cases where we initially have an
invalid target, but later get a value one
(WebCore::SVGUseElement::buildShadowAndInstanceTree): Deleted. The code here
was greatly simplified and moved into buildPendingResource.
(WebCore::SVGUseElement::buildInstanceTree): Deleted.
(WebCore::SVGUseElement::hasCycleUseReferencing): Deleted. Cycles are now
detected by the new isValidTarget function and so there's no need for a
separate explicit check for a cycle.
(WebCore::associateClonesWithOriginals): Added. Helper that makes
functions that build the shadow tree simpler and easier to read.
(WebCore::associateReplacementCloneWithOriginal): Added. Helper to
make associateReplacementClonesWithOriginals simple.
(WebCore::associateReplacementClonesWithOriginals): Added. Helper that
makes functions that build the shadow tree simpler and easier to read.
(WebCore::SVGUseElement::buildShadowTree): Call associateClonesWithOriginals
since associateInstancesWithShadowTreeElements no longer does this.
(WebCore::SVGUseElement::isValidTarget): Added. Covers all the different
reasons a target might not be valid: type of element, reference cycles, and
also "not in document" (refactored in here; not sure when that can happen
in practice, might be possible to remove it later).
(WebCore::SVGUseElement::expandUseElementsInShadowTree): Add checks for
documents that are still loading; this used to be checked when building the
instance tree. Added calls to associateReplacementClonesWithOriginals and
associateClonesWithOriginals; that used to be done by later in the
associateInstancesWithShadowTreeElements function. Use isValidTarget so
we handle cycles as well as invalid target types.
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Added a call to
associateReplacementClonesWithOriginals, since we can no longer do that in
associateInstancesWithShadowTreeElements.
(WebCore::SVGUseElement::associateInstancesWithShadowTreeElements): Deleted.
(WebCore::SVGUseElement::instanceForShadowTreeElement): Deleted.
(WebCore::SVGUseElement::invalidateDependentShadowTrees): Removed a comment
that simply restated the name of the function.

* svg/SVGUseElement.h: Removed instanceForShadowTreeElement,
buildShadowAndInstanceTree, detachInstance, buildInstanceTree,
hasCycleUseReferencing, associateInstancesWithShadowTreeElements,
instanceForShadowTreeElement, and m_targetElementInstance. Added isValidTarget.

LayoutTests:

Results changed on some tests that expected the old "remove all content if a cycle is detected"
behavior from the <use> element. The new behavior is to inhibit cycles, but render everything
else, which is much easier to implement correctly and also makes logical sense. Changed all
those tests to be reference tests, which makes sense since they are focusing on what gets
rendered in these complex cases, and the expected results are a lot easier to understand in
SVG form than they were in txt/png form. This also means we can remove a lot of platform-specific
results since reference tests aren't sensitive to small platform differences in rendering.

* platform/efl/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.png: Removed.
* platform/efl/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.png: Removed.
* platform/efl/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.png: Removed.
* platform/efl/svg/hixie/error/017-expected.png: Removed.
* platform/gtk/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.png: Removed.
* platform/gtk/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.png: Removed.
* platform/gtk/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.png: Removed.
* platform/gtk/svg/custom/use-on-disallowed-foreign-object-3-expected.png: Removed.
* platform/gtk/svg/custom/use-on-disallowed-foreign-object-3-expected.txt: Removed.
* platform/gtk/svg/custom/use-recursion-1-expected.png: Removed.
* platform/gtk/svg/custom/use-recursion-1-expected.txt: Removed.
* platform/gtk/svg/custom/use-recursion-2-expected.png: Removed.
* platform/gtk/svg/custom/use-recursion-2-expected.txt: Removed.
* platform/gtk/svg/custom/use-recursion-3-expected.png: Removed.
* platform/gtk/svg/custom/use-recursion-3-expected.txt: Removed.
* platform/gtk/svg/custom/use-recursion-4-expected.png: Removed.
* platform/gtk/svg/custom/use-recursion-4-expected.txt: Removed.
* platform/gtk/svg/hixie/error/017-expected.png: Removed.
* platform/ios-sim-deprecated/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/custom/use-on-disallowed-foreign-object-3-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/custom/use-recursion-1-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/custom/use-recursion-2-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/custom/use-recursion-3-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/custom/use-recursion-4-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/hixie/error/017-expected.txt: Removed.
* platform/ios-simulator/svg/custom/use-on-disallowed-foreign-object-3-expected.txt: Removed.
* platform/ios-simulator/svg/custom/use-recursion-1-expected.txt: Removed.
* platform/ios-simulator/svg/custom/use-recursion-2-expected.txt: Removed.
* platform/ios-simulator/svg/custom/use-recursion-3-expected.txt: Removed.
* platform/ios-simulator/svg/custom/use-recursion-4-expected.txt: Removed.
* platform/mac-mountainlion/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.txt: Removed.
* platform/mac-mountainlion/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt: Removed.
* platform/mac-mountainlion/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt: Removed.
* platform/mac-mountainlion/svg/custom/use-on-disallowed-foreign-object-3-expected.txt: Removed.
* platform/mac-mountainlion/svg/custom/use-recursion-1-expected.txt: Removed.
* platform/mac-mountainlion/svg/custom/use-recursion-2-expected.txt: Removed.
* platform/mac-mountainlion/svg/custom/use-recursion-3-expected.txt: Removed.
* platform/mac-mountainlion/svg/custom/use-recursion-4-expected.txt: Removed.
* platform/mac-mountainlion/svg/hixie/error/017-expected.txt: Removed.
* platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.png: Removed.
* platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.txt: Removed.
* platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.png: Removed.
* platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt: Removed.
* platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.png: Removed.
* platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt: Removed.
* platform/mac/svg/custom/use-on-disallowed-foreign-object-3-expected.png: Removed.
* platform/mac/svg/custom/use-on-disallowed-foreign-object-3-expected.txt: Removed.
* platform/mac/svg/custom/use-recursion-1-expected.png: Removed.
* platform/mac/svg/custom/use-recursion-1-expected.txt: Removed.
* platform/mac/svg/custom/use-recursion-2-expected.png: Removed.
* platform/mac/svg/custom/use-recursion-2-expected.txt: Removed.
* platform/mac/svg/custom/use-recursion-3-expected.png: Removed.
* platform/mac/svg/custom/use-recursion-3-expected.txt: Removed.
* platform/mac/svg/custom/use-recursion-4-expected.png: Removed.
* platform/mac/svg/custom/use-recursion-4-expected.txt: Removed.
* platform/mac/svg/hixie/error/017-expected.png: Removed.
* platform/mac/svg/hixie/error/017-expected.txt: Removed.

* svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.svg: Added. Made this be a reference test,
and made it expect more of the recursion to work.
* svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.txt: Removed.
* svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.svg: Added. More of the same.
* svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt: Removed.
* svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.svg: Added. More of the same.
* svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt: Removed.
* svg/custom/use-on-disallowed-foreign-object-3-expected.svg: Added. More of the same.
* svg/custom/use-recursion-1-expected.svg: Added. More of the same.
* svg/custom/use-recursion-2-expected.svg: Added. More of the same.
* svg/custom/use-recursion-3-expected.svg: Added. More of the same.
* svg/custom/use-recursion-4-expected.svg: Added. More of the same.
* svg/hixie/error/017-expected.txt: Removed.
* svg/hixie/error/017-expected.xml: Added. More of the same.

* svg/in-html/defs-after-use.html: Updated incorrect bug number in this test.

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

5 years agoSkip fast/parser/document-open-in-unload.html on all WK2 platforms
ddkilzer@apple.com [Sun, 8 Feb 2015 23:21:02 +0000 (23:21 +0000)]
Skip fast/parser/document-open-in-unload.html on all WK2 platforms

Tracked by:
[WK2] fast/parser/document-open-in-unload.html makes the following test crash
<http://webkit.org/b/98345>

* platform/mac-wk2/TestExpectations: Move Skip expectation from here...
* platform/wk2/TestExpectations: ...to here with updated bug number.

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

5 years agoUpdate section headers for mac-wk2/TestExpectations
ddkilzer@apple.com [Sun, 8 Feb 2015 23:20:57 +0000 (23:20 +0000)]
Update section headers for mac-wk2/TestExpectations

* platform/mac-wk2/TestExpectations:

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

5 years ago[WK2] Add logging to validate the network cache efficacy (Part 1)
cdumez@apple.com [Sun, 8 Feb 2015 22:06:06 +0000 (22:06 +0000)]
[WK2] Add logging to validate the network cache efficacy (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=141269
<rdar://problem/19632080>

Reviewed by Antti Koivisto.

Source/WebCore:

Export an extra symbol.

* WebCore.exp.in:

Source/WebKit2:

Add console logging to validate the network cache efficacy. This will
tell us if how the network cache satisties requests, in particular:
- Request cannot be handled by the cache
- Entry was not in the cache but is no longer there (pruned)
- Entry is in the cache but is not usable
- Entry is in the cache and is used.

This patch introduces a SQLite-based network cache statistics storage
that is used to store requests we have seen before, and query if we
have seen a request before. The storage is lightweight as it only
stores hashes in the database, in a background thread.

The statistics cache is initially bootstapped from the network disk
cache so that we have data initially and get as accurate statistics
as possible from the start.

To maintain an acceptable level of performance, we have a hard limit
on the number of unique requests that are retained set to 100000.

Diagnostic logging for this will be added in a follow-up patch.

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

5 years ago[iOS] Gardening: Some MathML tests crash in RenderMathMLOperator::advanceForGlyph...
ddkilzer@apple.com [Sun, 8 Feb 2015 20:22:32 +0000 (20:22 +0000)]
[iOS] Gardening: Some MathML tests crash in RenderMathMLOperator::advanceForGlyph() or boundsForGlyph()

Tracked by: <http://webkit.org/b/141371>

* platform/ios-simulator-wk2/TestExpectations: Mark tests as
crashing.

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

5 years agoREGRESSION (r179391): Remove references to deleted SVG tests
ddkilzer@apple.com [Sun, 8 Feb 2015 20:22:29 +0000 (20:22 +0000)]
REGRESSION (r179391): Remove references to deleted SVG tests

Fixes the following lint warnings:

    --lint-test-files warnings:
    LayoutTests/platform/ios-simulator-wk2/TestExpectations:412 Path does not exist. svg/custom/use-elementInstance-event-target.svg
    LayoutTests/platform/ios-simulator-wk2/TestExpectations:413 Path does not exist. svg/custom/use-elementInstance-methods.svg
    LayoutTests/platform/ios-simulator-wk2/TestExpectations:417 Path does not exist. svg/custom/use-instanceRoot-event-listeners.xhtml

* platform/ios-simulator-wk2/TestExpectations: Remove deleted
tests.

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

5 years agoRemoving an accidentally committed ChangeLog.
ap@apple.com [Sun, 8 Feb 2015 20:00:56 +0000 (20:00 +0000)]
Removing an accidentally committed ChangeLog.

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

5 years agoAX: The input element with type="search" has no default focus outline
ap@apple.com [Sun, 8 Feb 2015 19:33:59 +0000 (19:33 +0000)]
AX: The input element with type="search" has no default focus outline
https://bugs.webkit.org/show_bug.cgi?id=140326

Adding results for Mavericks.

* platform/mac-mavericks/fast/css/focus-ring-exists-for-search-field-expected.txt: Added.

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

5 years agohttp/tests/security/appcache-in-private-browsing.html is flaky
ap@apple.com [Sun, 8 Feb 2015 19:17:57 +0000 (19:17 +0000)]
http/tests/security/appcache-in-private-browsing.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=141370

* TestExpectations: Marking as such.

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

5 years agoApplication cache abort() tests are flaky
ap@apple.com [Sun, 8 Feb 2015 19:11:41 +0000 (19:11 +0000)]
Application cache abort() tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=87633

Moved expectations form Efl to root TestExpectations file. Also, removed Crash
expectation, as no bot hits that now.

Removed an erroneously added expectation for abort-cache-onchecking-resource-404.html -
this test doesn't happen to fail on the bots, although it also doesn't appear to
be very robust.

* TestExpectations:
* platform/efl/TestExpectations:

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

5 years agohttp/tests/appcache/abort-cache-onchecking-resource-404.html is flaky
ap@apple.com [Sun, 8 Feb 2015 18:47:01 +0000 (18:47 +0000)]
http/tests/appcache/abort-cache-onchecking-resource-404.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=141368

* TestExpectations: This test is intrinsically unreliable, but at least it checks
that there is no crash is any of the code paths that it takes.

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

5 years agoAX: The input element with type="search" has no default focus outline
cfleizach@apple.com [Sun, 8 Feb 2015 08:02:48 +0000 (08:02 +0000)]
AX: The input element with type="search" has no default focus outline
https://bugs.webkit.org/show_bug.cgi?id=140326

Reviewed by Darin Adler.

Source/WebCore:

The platform RenderTheme takes care of the search field, and that code
was missing a check for whether the element was focused.

Test: fast/css/focus-ring-exists-for-search-field.html

* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchField):

LayoutTests:

* fast/css/focus-ring-exists-for-search-field.html: Added.
* platform/mac/fast/css/focus-ring-exists-for-search-field-expected.png: Added.
* platform/mac/fast/css/focus-ring-exists-for-search-field-expected.txt: Added.

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

5 years ago[ARM] GC sometimes stuck in an infinite loop if parallel GC is enabled
ossy@webkit.org [Sun, 8 Feb 2015 07:54:20 +0000 (07:54 +0000)]
[ARM] GC sometimes stuck in an infinite loop if parallel GC is enabled
https://bugs.webkit.org/show_bug.cgi?id=141290

Reviewed by Anders Carlsson.

* wtf/Platform.h:

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

5 years agofullscreen/full-screen-plugin.html is very flaky on Yosemite WK2
ap@apple.com [Sun, 8 Feb 2015 05:24:25 +0000 (05:24 +0000)]
fullscreen/full-screen-plugin.html is very flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=141364

Reviewed by Zalan Bujtas.

Speculative fix. Make sure that the plug-in has loaded before using it.

* fullscreen/full-screen-plugin.html:

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

5 years ago[iOS] run-webkit-tests fails due to simulator devices from previous SDK installs...
ddkilzer@apple.com [Sun, 8 Feb 2015 03:26:51 +0000 (03:26 +0000)]
[iOS] run-webkit-tests fails due to simulator devices from previous SDK installs being marked as unavailable
<http://webkit.org/b/141365>

Reviewed by Daniel Bates.

* Scripts/webkitpy/xcode/simulator.py:
(Simulator): Add unavailable_version_re precompiled regex.
(Simulator._parse_devices): Check for unavailable versions and
ignore them if found when parsing the output of
`xcrun simctl list`.
* Scripts/webkitpy/xcode/simulator_unittest.py:
(test_unavailable_devices): Add test with output from
`xcrun simctl list` with unavailable runtimes that fails before
the fix.

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

5 years agoAdd some dictionary lookup tests
timothy_horton@apple.com [Sun, 8 Feb 2015 02:43:40 +0000 (02:43 +0000)]
Add some dictionary lookup tests
https://bugs.webkit.org/show_bug.cgi?id=141355

Reviewed by Darin Adler.

Tests: platform/mac/editing/dictionary-lookup/dictionary-lookup-input.html
       platform/mac/editing/dictionary-lookup/dictionary-lookup-inside-selection.html
       platform/mac/editing/dictionary-lookup/dictionary-lookup-outside-selection.html
       platform/mac/editing/dictionary-lookup/dictionary-lookup-rtl.html
       platform/mac/editing/dictionary-lookup/dictionary-lookup.html

* WebCore.exp.in:
Remove an unneeded export.

* editing/mac/DictionaryLookup.h:
Use OBJC_CLASS instead of @class so that this can be included in pure-C++ files.

* testing/Internals.cpp:
(WebCore::Internals::rangeForDictionaryLookupAtLocation):
* testing/Internals.h:
* testing/Internals.idl:
Expose rangeForDictionaryLookupAtHitTestResult fairly directly to JavaScript.

* platform/mac/editing/dictionary-lookup/dictionary-lookup-expected.txt: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-input-expected.txt: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-input.html: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-inside-selection-expected.txt: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-inside-selection.html: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-outside-selection-expected.txt: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-outside-selection.html: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-rtl-expected.txt: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup-rtl.html: Added.
* platform/mac/editing/dictionary-lookup/dictionary-lookup.html: Added.
* platform/mac/editing/dictionary-lookup/lookup-test.js: Added.
(runTest):
Add tests for various cases that we've had trouble with in the past.

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

5 years agoAdd Vector::removeFirstMatching() / removeAllMatching() methods taking lambda functions
cdumez@apple.com [Sun, 8 Feb 2015 02:28:48 +0000 (02:28 +0000)]
Add Vector::removeFirstMatching() / removeAllMatching() methods taking lambda functions
https://bugs.webkit.org/show_bug.cgi?id=141321

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use new Vector::removeFirstMatching() / removeAllMatching() methods.

Source/WebCore:

Use new Vector::removeFirstMatching() / removeAllMatching() methods.

Source/WebKit/win:

Use new Vector::removeFirstMatching() / removeAllMatching() methods.

Source/WebKit2:

Use new Vector::removeFirstMatching() / removeAllMatching() methods.

Source/WTF:

Add Vector::removeFirstMatching() / removeAllMatching() methods taking
lambda functions to match the element(s) to remove. This simplifies the
code a bit. Vector::removeAllMatching() is also more efficient than the
manual removal alternative.

* wtf/Vector.h:

Tools:

Use new Vector::removeFirstMatching() / removeAllMatching() methods.

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

5 years agoUnreviewed gardening.
zalan@apple.com [Sun, 8 Feb 2015 01:31:58 +0000 (01:31 +0000)]
Unreviewed gardening.
Remove svg/custom/use-events-crash.svg. It has no value anymore.
See webkit.org/b/141108

* platform/gtk/svg/custom/use-events-crash-expected.png: Removed.
* platform/gtk/svg/custom/use-events-crash-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/custom/use-events-crash-expected.txt: Removed.
* platform/ios-simulator/svg/custom/use-events-crash-expected.txt: Removed.
* platform/mac-mountainlion/svg/custom/use-events-crash-expected.txt: Removed.
* platform/mac/svg/custom/use-events-crash-expected.png: Removed.
* platform/mac/svg/custom/use-events-crash-expected.txt: Removed.
* svg/custom/use-events-crash.svg: Removed.

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

5 years agohttp/tests/xmlhttprequest/event-listener-gc.html is flaky
ap@apple.com [Sun, 8 Feb 2015 00:53:49 +0000 (00:53 +0000)]
http/tests/xmlhttprequest/event-listener-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=33342

Reviewed by Darin Adler.

This test relies on a zero-delay timer being a lot faster than fetching from network.
Force a layout before starting the test, because otherwise, the layout can significantly
delay the timer (I've seen 50-60 milliseconds being a common delay in debug builds).

Also, changed the resource URL to avoid Apache error log spew.

* http/tests/xmlhttprequest/event-listener-gc.html:

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

5 years ago[iOS] Make Simulator class testable
ddkilzer@apple.com [Sun, 8 Feb 2015 00:44:06 +0000 (00:44 +0000)]
[iOS] Make Simulator class testable
<http://webkit.org/b/141358>

Rubber-stamped by Darin Adler.

* Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo.xcode_simctl_list): Move `xcrun simctl list`
command to here from Simulator.refresh() in xcode/simulator.py
so that the output of the command can be mocked.

* Scripts/webkitpy/common/system/platforminfo_mock.py:
(MockPlatformInfo.__init__): Set self.expected_xcode_simctl_list
to None.
(MockPlatformInfo.xcode_simctl_list): Add method that returns
self.expected_xcode_simctl_list expectation.

* Scripts/webkitpy/xcode/simulator.py: Add missing copyright
and license header.
(Simulator.__init__): Add optional 'host' parameter to make it
possible to pass in a mock object for testing.  Set self._host
to 'host' parameter or create Host() object.
(Simulator.refresh): Call new PlatformInfo.xcode_simctl_list()
method.

* Scripts/webkitpy/xcode/simulator_unittest.py: Add unit test
for current code.
(SimulatorTest):
(SimulatorTest.setUp):
(SimulatorTest._set_expected_xcrun_simctl_list):
(SimulatorTest.test_simulator_device_types):
(test_invalid_device_types_header):
(test_invalid_runtimes_header):
(test_invalid_devices_header):

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

5 years agofast/images/animated-gif-iframe-webkit-transform.html is flaky
cdumez@apple.com [Sun, 8 Feb 2015 00:32:54 +0000 (00:32 +0000)]
fast/images/animated-gif-iframe-webkit-transform.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=141323

Reviewed by Alexey Proskuryakov.

Use shouldBecomeEqual() instead of shouldBe() to check for initial test
conditions. This should address the flakiness.

* fast/images/animated-gif-iframe-webkit-transform-expected.txt:
* fast/images/animated-gif-iframe-webkit-transform.html:
* platform/mac/TestExpectations:

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

5 years agoAdd API::HistoryClient and split some things out of API::NavigationClient
timothy_horton@apple.com [Sat, 7 Feb 2015 23:46:18 +0000 (23:46 +0000)]
Add API::HistoryClient and split some things out of API::NavigationClient
https://bugs.webkit.org/show_bug.cgi?id=141264

Reviewed by Darin Adler.

* UIProcess/API/APIHistoryClient.h: Added.
(API::HistoryClient::~HistoryClient):
(API::HistoryClient::didNavigateWithNavigationData):
(API::HistoryClient::didPerformClientRedirect):
(API::HistoryClient::didPerformServerRedirect):
(API::HistoryClient::didUpdateHistoryTitle):
* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didNavigateWithNavigationData): Deleted.
(API::NavigationClient::didPerformClientRedirect): Deleted.
(API::NavigationClient::didPerformServerRedirect): Deleted.
(API::NavigationClient::didUpdateHistoryTitle): Deleted.
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::createHistoryClient):
(WebKit::NavigationState::HistoryClient::HistoryClient):
(WebKit::NavigationState::HistoryClient::~HistoryClient):
(WebKit::NavigationState::HistoryClient::didNavigateWithNavigationData):
(WebKit::NavigationState::HistoryClient::didPerformClientRedirect):
(WebKit::NavigationState::HistoryClient::didPerformServerRedirect):
(WebKit::NavigationState::HistoryClient::didUpdateHistoryTitle):
(WebKit::NavigationState::NavigationClient::didNavigateWithNavigationData): Deleted.
(WebKit::NavigationState::NavigationClient::didPerformClientRedirect): Deleted.
(WebKit::NavigationState::NavigationClient::didPerformServerRedirect): Deleted.
(WebKit::NavigationState::NavigationClient::didUpdateHistoryTitle): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHistoryClient):
(WebKit::WebPageProxy::didNavigateWithNavigationData):
(WebKit::WebPageProxy::didPerformClientRedirect):
(WebKit::WebPageProxy::didPerformServerRedirect):
(WebKit::WebPageProxy::didUpdateHistoryTitle):
* UIProcess/WebPageProxy.h:
Add a API::HistoryClient and move the few things that belong on it out of API::NavigationClient.
Adjust accordingly in WebPageProxy and NavigationState.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView setNavigationDelegate:]):
(-[WKWebView setUIDelegate:]):
(-[WKWebView _setHistoryDelegate:]):
Lazily push the NavigationState/UIDelegate clients down to WebPageProxy upon
installation of a delegate, so that alternative (C SPI) delegate setters can
be separately created.

* WebKit2.xcodeproj/project.pbxproj:

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

5 years agoSource/WebCore:
darin@apple.com [Sat, 7 Feb 2015 23:17:26 +0000 (23:17 +0000)]
Source/WebCore:
Stop dispatching events to with SVGElementInstance objects as their targets
https://bugs.webkit.org/show_bug.cgi?id=141108

Reviewed by Anders Carlsson.

Test: svg/custom/use-event-retargeting.html

* dom/EventDispatcher.cpp:
(WebCore::eventTargetRespectingTargetRules): Replaced the code that retargeted
events at SVGElementInstance objects with code that retargets them at the use
element instead. Also wrote the code in a simpler way.

LayoutTests:
Stop dispatching events with SVGElementInstance objects as their targets
https://bugs.webkit.org/show_bug.cgi?id=141108

Reviewed by Anders Carlsson.

Many tests are no longer relevant once we aren't doing this any more.

* platform/gtk/svg/custom/use-instanceRoot-event-bubbling-expected.png: Removed.
* platform/gtk/svg/custom/use-instanceRoot-modifications-expected.png: Removed.
* platform/gtk/svg/custom/use-instanceRoot-modifications-expected.txt: Removed.
* platform/ios-sim-deprecated/svg/custom/use-instanceRoot-modifications-expected.txt: Removed.
* platform/ios-simulator/svg/custom/use-instanceRoot-modifications-expected.txt: Removed.
* platform/mac-mountainlion/svg/custom/use-instanceRoot-modifications-expected.txt: Removed.
* platform/mac/svg/custom/use-instanceRoot-event-bubbling-expected.png: Removed.
* platform/mac/svg/custom/use-instanceRoot-modifications-expected.png: Removed.
* platform/mac/svg/custom/use-instanceRoot-modifications-expected.txt: Removed.
* svg/custom/use-instanceRoot-modifications.svg: Removed.
* svg/custom/use-instanceRoot-with-use-removed-expected.txt: Removed.
* svg/custom/use-instanceRoot-with-use-removed.svg: Removed.

* svg/custom/resources/use-instanceRoot-event-bubbling.js: Updated this test to expect
the events to be dispatched with the SVGUseElement as the target. I talked this over with
Sam Weinig and we decided this is good behavior for now, and it almost matches what the
spec says. Might be worth refining later.
* svg/custom/use-instanceRoot-event-bubbling-expected.txt: Updated expected results.
* svg/custom/use-instanceRoot-event-bubbling.xhtml: Tweaked the test a little. It still
could use improvement; it's like half a "repaint test", which is strange.

* svg/custom/use-event-retargeting-expected.txt: Added. Got this test from Blink.
* svg/custom/use-event-retargeting.html: Added. Ditto.

* svg/custom/use-events-crash.svg: Added some more events, a second click, so that we
don't hang with the context menu up when running this. Also converted line endings to
use LF instead of CRLF.

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

5 years ago[Mac] Set -contentsScale on AVPlayerLayer to allow AVPlayer to select the appropriate...
jer.noble@apple.com [Sat, 7 Feb 2015 22:48:36 +0000 (22:48 +0000)]
[Mac] Set -contentsScale on AVPlayerLayer to allow AVPlayer to select the appropriate HLS variant.
https://bugs.webkit.org/show_bug.cgi?id=141354
rdar://problem/19717591

Reviewed by Darin Adler.

AVPlayer will try to determine the correct HLS variant based on the bounds of an AVPlayerLayer.
When not in a layer tree, AVFoundation is not able to determine the correct mapping from logical
units to pixel values. To provide AVPlayer with that scaling value, set -contentsScale based on
both the current device scale and the current page scale.

Since this needs to be set at initialization time, before the AVPlayer is has any AVPlayerItems,
add some plumbing up from MediaPlayer to as the HTMLMediaElement for the appropriate contents
scale.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerContentsScale):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerContentsScale):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsScale):

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

5 years agoASan complains about plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image...
ap@apple.com [Sat, 7 Feb 2015 20:21:24 +0000 (20:21 +0000)]
ASan complains about plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image.html
https://bugs.webkit.org/show_bug.cgi?id=141352
rdar://problem/19717490

Reviewed by Anders Carlsson.

* dom/Document.cpp: (WebCore::Document::ensurePlugInsInjectedScript): This string
is not null terminated.

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

5 years agoAnd as a further followup restore the 8bit test too.
antti@apple.com [Sat, 7 Feb 2015 19:50:42 +0000 (19:50 +0000)]
And as a further followup restore the 8bit test too.

* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::hashString):

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

5 years agoUse longer hashes for cache keys
antti@apple.com [Sat, 7 Feb 2015 19:45:15 +0000 (19:45 +0000)]
Use longer hashes for cache keys
https://bugs.webkit.org/show_bug.cgi?id=141356

Rubber-stamped by Darin Adler.

Folloup and build fix.

* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::hashString):

    Use containsOnlyASCII instead of is8Bit so both paths always compute the same hash.

* NetworkProcess/cache/NetworkCacheKey.h:

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

5 years agoRemove a printf.
antti@apple.com [Sat, 7 Feb 2015 19:19:43 +0000 (19:19 +0000)]
Remove a printf.

* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::retrieve):

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

5 years agoUse longer hashes for cache keys
antti@apple.com [Sat, 7 Feb 2015 19:18:30 +0000 (19:18 +0000)]
Use longer hashes for cache keys
https://bugs.webkit.org/show_bug.cgi?id=141356

Reviewed by Darin Adler.

The current key hashes are 32bit. We should use longer hashes to eliminate collisions.

This patch switches us to using MD5 digests for the cache key hashes. As a result the file names for the cache
entries grow from 8 to 32 character.

Note that we don't need a cryptographic hash (full cache keys are verified against the entries).
MD5 just happens to be fast, convenient and available.

The patch also moves the whole cache hierarchy down to a versioned subdirectory ("WebKitCache/Version 2")
and deletes any old style cache files if they exist.

* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCacheCoder<MD5::Digest>::encode):
(WebKit::NetworkCacheCoder<MD5::Digest>::decode):
* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCacheKey::NetworkCacheKey):
(WebKit::hashString):
(WebKit::NetworkCacheKey::computeHash):
(WebKit::NetworkCacheKey::hashAsString):
(WebKit::NetworkCacheKey::stringToHash):
* NetworkProcess/cache/NetworkCacheKey.h:
(WebKit::NetworkCacheKey::shortHash):
(WebKit::NetworkCacheKey::toShortHash):

    32bit hash to use in the bloom filter.

(WebKit::NetworkCacheKey::hashStringLength):
* NetworkProcess/cache/NetworkCacheStorage.h:

    Bump the version.

* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::traverseCacheFiles):
(WebKit::makeVersionedDirectoryPath):
(WebKit::NetworkCacheStorage::NetworkCacheStorage):
(WebKit::NetworkCacheStorage::initialize):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
(WebKit::NetworkCacheStorage::deleteOldVersions):

    Wipe out the version 1 cache.

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

5 years agorun-jsc-stress-tests --remote should use the default ssh port
ossy@webkit.org [Sat, 7 Feb 2015 17:01:37 +0000 (17:01 +0000)]
run-jsc-stress-tests --remote should use the default ssh port
https://bugs.webkit.org/show_bug.cgi?id=141287

Reviewed by Darin Adler.

* Scripts/run-jsc-stress-tests: Extended URI module to be able to handle ssh scheme with the default 22 port number.

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

5 years agoREGRESSION (OS X 10.10.2): http/tests/media/video-query-url.html frequently times out
ap@apple.com [Sat, 7 Feb 2015 08:32:54 +0000 (08:32 +0000)]
REGRESSION (OS X 10.10.2): http/tests/media/video-query-url.html frequently times out
https://bugs.webkit.org/show_bug.cgi?id=141085

* platform/mac-wk2/TestExpectations: Added an expectation.

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

5 years agoASSERT repaintContainer->hasLayer() in WebCore::RenderObject::repaintUsingContainer
zalan@apple.com [Sat, 7 Feb 2015 04:35:58 +0000 (04:35 +0000)]
ASSERT repaintContainer->hasLayer() in WebCore::RenderObject::repaintUsingContainer
https://bugs.webkit.org/show_bug.cgi?id=140750

Reviewed by Simon Fraser.

There's a short period of time when RenderObject::layer() still returns a valid pointer
even though we already cleared the hasLayer() flag.
Do not use the layer as repaint container in such cases.

Source/WebCore:

Test: compositing/repaint-container-assertion-when-toggling-compositing.html

* rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingLayer):

LayoutTests:

* compositing/repaint-container-assertion-when-toggling-compositing-expected.txt: Added.
* compositing/repaint-container-assertion-when-toggling-compositing.html: Added.

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

5 years agodashboard: BuildbotTesterQueueView crashesOnly logic is wrong
dburkart@apple.com [Sat, 7 Feb 2015 04:35:30 +0000 (04:35 +0000)]
dashboard: BuildbotTesterQueueView crashesOnly logic is wrong
https://bugs.webkit.org/show_bug.cgi?id=141349

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
(BuildbotTesterQueueView.prototype.update):

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

5 years agoHave SQLiteStatement::database() return a reference
cdumez@apple.com [Sat, 7 Feb 2015 03:06:58 +0000 (03:06 +0000)]
Have SQLiteStatement::database() return a reference
https://bugs.webkit.org/show_bug.cgi?id=141348

Reviewed by Andreas Kling.

Have SQLiteStatement::database() return a reference as it can never
return null.

Source/WebCore:

* loader/icon/IconDatabase.cpp:
(WebCore::readySQLiteStatement):
* platform/sql/SQLiteStatement.h:
(WebCore::SQLiteStatement::database):

Source/WebKit2:

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::internalAdvanceOnce):

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

5 years agoAdd youtube-nocookie URL to isYouTubeURL predicate
bfulgham@apple.com [Sat, 7 Feb 2015 01:38:15 +0000 (01:38 +0000)]
Add youtube-nocookie URL to isYouTubeURL predicate
https://bugs.webkit.org/show_bug.cgi?id=141347
<rdar://problem/19430657>

Reviewed by Eric Carlson.

* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::isYouTubeURL): Update for additional youtube-nocookie site.

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

5 years agogit-svn-id: https://svn.webkit.org/repository/webkit/trunk@179772 268f45cc-cd09-0410...
said@apple.com [Sat, 7 Feb 2015 01:24:48 +0000 (01:24 +0000)]
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoConvert the compositing overlap map to use LayoutRects
simon.fraser@apple.com [Sat, 7 Feb 2015 01:11:07 +0000 (01:11 +0000)]
Convert the compositing overlap map to use LayoutRects
https://bugs.webkit.org/show_bug.cgi?id=141346
Source/WebCore:

rdar://problem/18206365

Reviewed by Zalan Bujtas.

If two compositing layers were adjoining but not overlapping, but happened to
have non-integral offsets, then using enclosing IntRects in the overlap map
would cause us to think they are overlapping, and create unnecessary backing store.

Fix by converting the overlap map to use LayoutRects.

Test: compositing/layer-creation/subpixel-adjacent-layers-overlap.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::OverlapMapContainer::add):
(WebCore::OverlapMapContainer::overlapsLayers):
(WebCore::RenderLayerCompositor::OverlapMap::add):
(WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
(WebCore::RenderLayerCompositor::OverlapMap::RectList::append):
(WebCore::RenderLayerCompositor::OverlapMap::RectList::intersects):
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::RenderLayerCompositor::addToOverlapMap):
(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
* rendering/RenderLayerCompositor.h:

LayoutTests:

Reviewed by Zalan Bujtas.

Test with adjacent layers on non-pixel boundaries.

* compositing/layer-creation/subpixel-adjacent-layers-overlap-expected.txt: Added.
* compositing/layer-creation/subpixel-adjacent-layers-overlap.html: Added.

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

5 years agoRef-ify various getters that return HTMLCollection.
akling@apple.com [Sat, 7 Feb 2015 01:08:52 +0000 (01:08 +0000)]
Ref-ify various getters that return HTMLCollection.
<https://webkit.org/b/141336>

Reviewed by Anders Carlsson.

Make all the getters that return HTMLCollection objects (and never return nullptr)
return Ref instead of RefPtr.

Removed a couple of useless null checks that were exposed by this change.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::getDocumentLinks):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::namedItemGetter):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::nameGetter):
* dom/Document.cpp:
(WebCore::Document::ensureCachedCollection):
(WebCore::Document::images):
(WebCore::Document::applets):
(WebCore::Document::embeds):
(WebCore::Document::plugins):
(WebCore::Document::scripts):
(WebCore::Document::links):
(WebCore::Document::forms):
(WebCore::Document::anchors):
(WebCore::Document::all):
(WebCore::Document::windowNamedItems):
(WebCore::Document::documentNamedItems):
(WebCore::Document::iconURLs):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::ensureCachedHTMLCollection):
* dom/Element.h:
* html/ColorInputType.cpp:
(WebCore::ColorInputType::suggestions):
* html/HTMLDataListElement.cpp:
(WebCore::HTMLDataListElement::options):
* html/HTMLDataListElement.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::children):
* html/HTMLElement.h:
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::elements):
* html/HTMLFieldSetElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::elements):
* html/HTMLFormElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::areas):
* html/HTMLMapElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::selectedOptions):
(WebCore::HTMLSelectElement::options):
* html/HTMLSelectElement.h:
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::rows):
(WebCore::HTMLTableElement::tBodies):
* html/HTMLTableElement.h:
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell):
(WebCore::HTMLTableRowElement::deleteCell):
(WebCore::HTMLTableRowElement::cells):
* html/HTMLTableRowElement.h:
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::insertRow):
(WebCore::HTMLTableSectionElement::deleteRow):
(WebCore::HTMLTableSectionElement::rows):
* html/HTMLTableSectionElement.h:
* html/RangeInputType.cpp:
(WebCore::RangeInputType::updateTickMarkValues):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintSliderTicks):

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

5 years ago[iOS] Implement audio track selection in fullscreen.
bfulgham@apple.com [Sat, 7 Feb 2015 00:39:59 +0000 (00:39 +0000)]
[iOS] Implement audio track selection in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=131236
<rdar://problem/16552632>

Reviewed by Eric Carlson.

* platform/ios/WebVideoFullscreenModelVideoElement.h:
* platform/ios/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::selectAudioMediaOption): Provide implementation.
(WebVideoFullscreenModelVideoElement::updateLegibleOptions): Add audio track information
to menu displayed to user.

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

5 years agoDFG SSA shouldn't have SetArgument nodes
fpizlo@apple.com [Fri, 6 Feb 2015 23:37:39 +0000 (23:37 +0000)]
DFG SSA shouldn't have SetArgument nodes
https://bugs.webkit.org/show_bug.cgi?id=141342

Reviewed by Mark Lam.

I was wondering why we kept the SetArgument around for captured
variables. It turns out we did so because we thought we had to, even
though we didn't have to. The node is meaningless in SSA.

* dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):

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

5 years agoThe delta value in the chart pane sometimes doens't show '+' for a positive delta
rniwa@webkit.org [Fri, 6 Feb 2015 23:31:30 +0000 (23:31 +0000)]
The delta value in the chart pane sometimes doens't show '+' for a positive delta
https://bugs.webkit.org/show_bug.cgi?id=141340

Reviewed by Andreas Kling.

The bug was caused by computeStatus prefixing the value delta with '+' if it's greater than 0 after
it had already been formatted. Fixed the bug by using a formatter that always emits a sign symbol.

* public/v2/app.js:
(App.Pane.computeStatus):
(App.createChartData):

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