Timeline
Apr 22, 2016:
- 7:49 PM Changeset in webkit [199947] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: HeapAllocationsTimeline grid should use built-in grid column icons
https://bugs.webkit.org/show_bug.cgi?id=156934
Reviewed by Timothy Hatcher.
- UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
(WebInspector.HeapAllocationsTimelineDataGridNode):
Use existing base class helper function to create main title text.
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
Add icon class names to cell, remove icon element.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView):
Turn on icons for the column.
- 7:00 PM Changeset in webkit [199946] by
-
- 19 edits3 adds in trunk
Speed up bound functions a bit
https://bugs.webkit.org/show_bug.cgi?id=156889
Reviewed by Saam Barati.
Source/JavaScriptCore:
Bound functions are hard to optimize because JSC doesn't have a good notion of non-JS code
that does JS-ey things like make JS calls. What I mean by "non-JS code" is code that did not
originate from JS source. A bound function does a highly polymorphic call to the target
stored in the JSBoundFunction. Prior to this change, we represented it as native code that
used the generic native->JS call API. That's not cheap.
We could model bound functions using a builtin, but it's not clear that this would be easy
to grok, since so much of the code would have to access special parts of the JSBoundFunction
type. Doing it that way might solve the performance problems but it would mean extra work to
arrange for the builtin to have speedy access to the call target, the bound this, and the
bound arguments. Also, optimizing bound functions that way would mean that bound function
performance would be gated on the performance of a bunch of other things in our system. For
example, we'd want this polymorphic call to be handled like the funnel that it is: if we're
compiling the bound function's outgoing call with no context then we should compile it as
fully polymorphic but we can let it assume basic sanity like that the callee is a real
function; but if we're compiling the call with any amount of calling context then we want to
use normal call IC's.
Since the builtin path wouldn't lead to a simpler patch and since I think that the VM will
benefit in the long run from using custom handling for bound functions, I kept the native
code and just added Intrinsic/thunk support.
This just adds an Intrinsic for bound function calls where the JSBoundFunction targets a
JSFunction instance and has no bound arguments (only bound this). This intrinsic is
currently only implemented as a thunk and not yet recognized by the DFG bytecode parser.
I needed to loosen some restrictions to do this. For one, I was really tired of our bad use
of ENABLE(JIT) conditionals, which made it so that any serious client of Intrinsics would
have to have #ifdefs. Really what should happen is that if the JIT is not enabled then we
just ignore intrinsics. Also, the code was previously assuming that having a native
constructor and knowing the Intrinsic for your native call were mutually exclusive. This
change makes it possible to have a native executable that has a custom function, custom
constructor, and an Intrinsic.
This is a >4x speed-up on bound function calls with no bound arguments.
In the future, we should teach the DFG Intrinsic handling to deal with bound functions and
we should teach the inliner (and ByteCodeParser::handleCall() in general) how to deal with
the function call inside the bound function. That would be super awesome.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::timesPtr):
(JSC::AbstractMacroAssembler::Address::withOffset):
(JSC::AbstractMacroAssembler::BaseIndex::BaseIndex):
(JSC::MacroAssemblerType>::Address::indexedBy):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::storeCell):
(JSC::AssemblyHelpers::loadCell):
(JSC::AssemblyHelpers::storeValue):
(JSC::AssemblyHelpers::emitSaveCalleeSaves):
(JSC::AssemblyHelpers::emitSaveThenMaterializeTagRegisters):
(JSC::AssemblyHelpers::emitRestoreCalleeSaves):
(JSC::AssemblyHelpers::emitRestoreSavedTagRegisters):
(JSC::AssemblyHelpers::copyCalleeSavesToVMCalleeSavesBuffer):
- jit/JITThunks.cpp:
(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiStub):
(JSC::JITThunks::hostFunctionStub):
(JSC::JITThunks::clearHostFunctionStubs):
- jit/JITThunks.h:
- jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::callDoubleToDoublePreservingReturn):
(JSC::SpecializedThunkJIT::tagReturnAsInt32):
(JSC::SpecializedThunkJIT::emitSaveThenMaterializeTagRegisters): Deleted.
(JSC::SpecializedThunkJIT::emitRestoreSavedTagRegisters): Deleted.
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::nativeCallGenerator):
(JSC::nativeTailCallGenerator):
(JSC::nativeTailCallWithoutSavedTagsGenerator):
(JSC::nativeConstructGenerator):
(JSC::randomThunkGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):
- jit/ThunkGenerators.h:
- runtime/Executable.cpp:
(JSC::NativeExecutable::create):
(JSC::NativeExecutable::destroy):
(JSC::NativeExecutable::createStructure):
(JSC::NativeExecutable::finishCreation):
(JSC::NativeExecutable::NativeExecutable):
(JSC::ScriptExecutable::ScriptExecutable):
- runtime/Executable.h:
- runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncBind):
- runtime/IntlCollatorPrototype.cpp:
(JSC::IntlCollatorPrototypeGetterCompare):
- runtime/Intrinsic.h:
- runtime/JSBoundFunction.cpp:
(JSC::boundThisNoArgsFunctionCall):
(JSC::boundFunctionCall):
(JSC::boundThisNoArgsFunctionConstruct):
(JSC::boundFunctionConstruct):
(JSC::getBoundFunctionStructure):
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::customHasInstance):
(JSC::JSBoundFunction::JSBoundFunction):
- runtime/JSBoundFunction.h:
(JSC::JSBoundFunction::targetFunction):
(JSC::JSBoundFunction::boundThis):
(JSC::JSBoundFunction::boundArgs):
(JSC::JSBoundFunction::createStructure):
(JSC::JSBoundFunction::offsetOfTargetFunction):
(JSC::JSBoundFunction::offsetOfBoundThis):
- runtime/JSFunction.cpp:
(JSC::JSFunction::lookUpOrCreateNativeExecutable):
(JSC::JSFunction::create):
- runtime/VM.cpp:
(JSC::thunkGeneratorForIntrinsic):
(JSC::VM::getHostFunction):
- runtime/VM.h:
(JSC::VM::getCTIStub):
(JSC::VM::exceptionOffset):
LayoutTests:
This microbenchmark speeds up by >4x with this change.
- js/regress/bound-function-call-expected.txt: Added.
- js/regress/bound-function-call.html: Added.
- js/regress/script-tests/bound-function-call.js: Added.
(foo):
- 6:14 PM Changeset in webkit [199945] by
-
- 5 edits in branches/safari-601.1.46-branch/Source
Versioning.
- 6:13 PM Changeset in webkit [199944] by
-
- 5 edits in branches/safari-601-branch/Source
Versioning.
- 6:11 PM Changeset in webkit [199943] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Fix build break since r199866
https://bugs.webkit.org/show_bug.cgi?id=156892
Reviewed by Darin Adler.
- runtime/MathCommon.cpp: Follow up to r199913. Remove 'include cmath' in cpp file.
- 5:58 PM Changeset in webkit [199942] by
-
- 11 edits2 adds in trunk
Cannot access the SQLTransaction.constructor.prototype
https://bugs.webkit.org/show_bug.cgi?id=156613
Reviewed by Darin Adler.
Source/WebCore:
Drop [NoInterfaceObject] from the following SQL interfaces:
Database, SQLError, SQLResultSet, SQLResultSetRowList and SQLTransaction.
This matches the specification:
https://dev.w3.org/html5/webdatabase/
This was causing the 'constructor' property to be wrong for these
interfaces as it would be a generic Object.
Test: storage/websql/transaction-prototype.html
- Modules/webdatabase/Database.idl:
- Modules/webdatabase/SQLError.idl:
- Modules/webdatabase/SQLResultSet.idl:
- Modules/webdatabase/SQLResultSetRowList.idl:
- Modules/webdatabase/SQLTransaction.idl:
LayoutTests:
Rebaseline existing test now that more SQL constructors are exposed on the
global Window object. Also add a test to confirm that it is possible to
access SQLTransaction.constructor.prototype and that it seems correct.
- js/dom/global-constructors-attributes-expected.txt:
- platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- storage/websql/transaction-prototype-expected.txt: Added.
- storage/websql/transaction-prototype.html: Added.
- 5:45 PM Changeset in webkit [199941] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Optimize number parsing and string parsing in LiteralParser
https://bugs.webkit.org/show_bug.cgi?id=156896
Reviewed by Mark Lam.
This patch aim to improve JSON.parse performance. Major 2 optimizations are included.
- Change
double result
toint32_t result
in integer parsing case.
We already have the optimized path for integer parsing, when it's digits are less than 10.
At that case, the maximum number is 999999999, and the minimum number is -99999999.
The both are in range of Int32. So We can use int32_t for accumulation instead of double.
- Add the string parsing fast / slow cases.
We add the fast case for string parsing, which does not include any escape sequences.
Both optimizations improve Kraken json-parse-financial, roughly 3.5 - 4.5%.
json-parse-financial 49.128+-1.589 46.979+-0.912 might be 1.0457x faster
- runtime/LiteralParser.cpp:
(JSC::isJSONWhiteSpace):
(JSC::isSafeStringCharacter):
(JSC::LiteralParser<CharType>::Lexer::lexString):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::Lexer::lexNumber):
- runtime/LiteralParser.h:
- 5:44 PM Changeset in webkit [199940] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Include columnNumber in event listener locations
https://bugs.webkit.org/show_bug.cgi?id=156927
<rdar://problem/25884584>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-22
Reviewed by Brian Burg.
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
Include the column number in the location as well.
- 5:40 PM Changeset in webkit [199939] by
-
- 8 edits2 adds in trunk
Web Inspector: Source directives lost when using Function constructor repeatedly
https://bugs.webkit.org/show_bug.cgi?id=156863
<rdar://problem/25861064>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-22
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
Source directives (sourceURL and sourceMappingURL) are normally accessed through
the SourceProvider and normally set when the script is parsed. However, when a
CodeCache lookup skips parsing, the new SourceProvider never gets the directives
(sourceURL/sourceMappingURL). This patch stores the directives on the UnlinkedCodeBlock
and UnlinkedFunctionExecutable when entering the cache, and copies to the new providers
when the cache is used.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::sourceURLDirective):
(JSC::UnlinkedCodeBlock::sourceMappingURLDirective):
(JSC::UnlinkedCodeBlock::setSourceURLDirective):
(JSC::UnlinkedCodeBlock::setSourceMappingURLDirective):
- bytecode/UnlinkedFunctionExecutable.h:
- parser/SourceProvider.h:
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
- runtime/CodeCache.h:
Store directives on the unlinked code block / executable when adding
to the cache, so they can be used to update new providers when the
cache gets used.
- runtime/JSGlobalObject.cpp:
Add needed header after CodeCache header cleanup.
LayoutTests:
- inspector/debugger/sourceURL-repeated-identical-executions-expected.txt: Added.
- inspector/debugger/sourceURL-repeated-identical-executions.html: Added.
- 5:07 PM Changeset in webkit [199938] by
-
- 1 copy in tags/Safari-601.1.46.128
New tag.
- 5:07 PM Changeset in webkit [199937] by
-
- 1 copy in tags/Safari-601.6.17
New tag.
- 4:56 PM Changeset in webkit [199936] by
-
- 4 edits in trunk/Source/bmalloc
bmalloc: vm allocations should plant guard pages
https://bugs.webkit.org/show_bug.cgi?id=156937
Reviewed by Michael Saboff.
- bmalloc/Object.h:
(bmalloc::Object::operator-): Added a - helper.
- bmalloc/VMAllocate.h:
(bmalloc::vmRevokePermissions): Added a helper to revoke permissions on
a VM region. We use this for guard pages.
- bmalloc/VMHeap.cpp:
(bmalloc::VMHeap::allocateSmallChunk): Add guard pages to the start and
end of the chunk.
Note that we don't guard large chunks becuase we need to be able to merge
them. Otherwise, we will run out of virtual addresses.
- 4:48 PM Changeset in webkit [199935] by
-
- 4 edits3 adds in trunk
javascript jit bug affecting Google Maps.
https://bugs.webkit.org/show_bug.cgi?id=153431
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
The issue was due to the abstract interpreter wrongly marking the type of the
value read from the Uint3Array as SpecInt52, which precludes it from being an
Int32. This proves to be false, and the generated code failed to handle the case
where the read value is actually an Int32.
The fix is to have the abstract interpreter use SpecMachineInt instead of
SpecInt52.
- bytecode/SpeculatedType.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
LayoutTests:
- js/regress/bug-153431-expected.txt: Added.
- js/regress/bug-153431.html: Added.
- js/regress/script-tests/bug-153431.js: Added.
- 4:25 PM Changeset in webkit [199934] by
-
- 2 edits in trunk/Source/bmalloc
bmalloc: Constify introspect function pointer table
https://bugs.webkit.org/show_bug.cgi?id=156936
Reviewed by Michael Saboff.
- bmalloc/Zone.cpp:
(bmalloc::Zone::Zone): Declaring this function pointer table const puts
it in the read-only section of the binary, providing a little hardening
against overwriting the function pointers at runtime. (We have to
const_cast when assigning because the API declares a pointer to non-const,
but we happen to know it will never try to write through that pointer.
This is not my favorite API.)
- 4:10 PM Changeset in webkit [199933] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] PredictionPropagation should not be in the top 5 heaviest phases
https://bugs.webkit.org/show_bug.cgi?id=156891
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-22
Reviewed by Mark Lam.
In DFG, PredictionPropagation is often way too high in profiles.
It is a simple phase, it should not be that hot.
Most of the time is spent accessing memory. This patch attempts
to reduce that.
First, propagate() is split in processInvariants() and propagates().
The step processInvariants() sets all the types for nodes for which
the type does not depends on other nodes.
Adding processInvariants() lowers two hotspot inside PredictionPropagation:
speculationFromValue() and setPrediction().
Next, to avoid touching all the nodes at every operation, we keep
track of the nodes that actually need propagate().
The vector m_dependentNodes keeps the list of those nodes and propagate()
only need to process them at each phase.
This is a smaller gain because growing m_dependentNodes negates
some of the gains.
On 3d-cube, this moves PredictionPropagation from fifth position
to ninth. A lot of the remaining overhead is caused by double-voting
and cannot be fixed by moving stuff around.
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagateToFixpoint): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagate): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateForward): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateBackward): Deleted.
(JSC::DFG::PredictionPropagationPhase::doDoubleVoting): Deleted.
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateThroughArgumentPositions): Deleted.
- 4:10 PM Changeset in webkit [199932] by
-
- 3 edits in tags/Safari-602.1.29/Source/WebKit2
Merged r199919.
- 4:09 PM Changeset in webkit [199931] by
-
- 3 edits in tags/Safari-602.1.29/Source/WebKit2
Merged r199917.
- 4:08 PM Changeset in webkit [199930] by
-
- 2 edits in tags/Safari-602.1.29/Source/WebCore
Merged r199915.
- 4:07 PM Changeset in webkit [199929] by
-
- 2 edits in tags/Safari-602.1.29/Source/WebCore
Merged r199885.
- 4:05 PM Changeset in webkit [199928] by
-
- 2 edits in tags/Safari-602.1.29/Source/WebKit2
Merged r199914.
- 4:04 PM Changeset in webkit [199927] by
-
- 20 edits in trunk
super should be available in object literals
https://bugs.webkit.org/show_bug.cgi?id=156933
Reviewed by Saam Barati.
Source/JavaScriptCore:
When we originally implemented classes, super seemed to be a class-only
feature. But the final spec says it's available in object literals too.
- bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitBytecode): Having 'super' and being a class
property are no longer synonymous, so we track two separate variables.
(JSC::PropertyListNode::emitPutConstantProperty): Being inside the super
branch no longer guarantees that you're a class property, so we decide
our attributes and our function name dynamically.
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createArguments):
(JSC::ASTBuilder::createArgumentsList):
(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::createPropertyList): Pass through state to indicate
whether we're a class property, since we can't infer it from 'super'
anymore.
- parser/NodeConstructors.h:
(JSC::PropertyNode::PropertyNode): See ASTBuilder.h.
- parser/Nodes.h:
(JSC::PropertyNode::expressionName):
(JSC::PropertyNode::name):
(JSC::PropertyNode::type):
(JSC::PropertyNode::needsSuperBinding):
(JSC::PropertyNode::isClassProperty):
(JSC::PropertyNode::putType): See ASTBuilder.h.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseMemberExpression): I made these error
messages generic because it is no longer practical to say concise things
about the list of places you can use super.
- parser/Parser.h:
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createArgumentsList):
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::appendExportSpecifier):
(JSC::SyntaxChecker::appendConstDecl):
(JSC::SyntaxChecker::createGetterOrSetterProperty): Updated for
interface change.
- tests/stress/generator-with-super.js:
(test):
- tests/stress/modules-syntax-error.js:
- tests/stress/super-in-lexical-scope.js:
(testSyntaxError):
(testSyntaxError.test):
- tests/stress/tagged-templates-syntax.js: Updated for error message
changes. See Parser.cpp.
LayoutTests:
Updated expected results and added a few new tests.
- js/arrowfunction-syntax-errors-expected.txt:
- js/class-syntax-super-expected.txt:
- js/object-literal-methods-expected.txt:
- js/script-tests/arrowfunction-syntax-errors.js:
- js/script-tests/class-syntax-super.js:
- js/script-tests/object-literal-methods.js:
- 4:04 PM Changeset in webkit [199926] by
-
- 2 edits in tags/Safari-602.1.29/Source/WebCore
Merged r199912. rdar://problem/25865315
- 4:03 PM Changeset in webkit [199925] by
-
- 4 edits in tags/Safari-602.1.29/Source/WebKit
Merged r199908.
- 4:02 PM Changeset in webkit [199924] by
-
- 2 edits in tags/Safari-602.1.29/Source/WebCore
Merged r199904.
- 4:02 PM Changeset in webkit [199923] by
-
- 3 adds in branches/safari-601-branch/LayoutTests/http/tests/svg
Merge LayoutTests for r199881. rdar://problem/25879498
- 4:01 PM Changeset in webkit [199922] by
-
- 2 edits in tags/Safari-602.1.29/Source/WebCore
Merged r199886.
- 3:58 PM Changeset in webkit [199921] by
-
- 3 edits in tags/Safari-602.1.29/Source/WebKit2
Merged r199903.
- 3:57 PM Changeset in webkit [199920] by
-
- 2 edits in tags/Safari-602.1.29/Source/WebCore
Merged r199902.
- 3:46 PM Changeset in webkit [199919] by
-
- 3 edits in trunk/Source/WebKit2
Fixing a typo in my last commit.
Unreviewed build fix.
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
- WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
- 3:46 PM Changeset in webkit [199918] by
-
- 2 edits in trunk/Source/JavaScriptCore
ASSERT(m_stack.last().isTailDeleted) at ShadowChicken.cpp:127 inspecting the inspector
https://bugs.webkit.org/show_bug.cgi?id=156930
Reviewed by Joseph Pecoraro.
The loop that prunes the stack from the top should preserve the invariant that the top frame
cannot be tail-deleted.
- interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::update):
- 3:41 PM Changeset in webkit [199917] by
-
- 3 edits in trunk/Source/WebKit2
Missed some macros to fix builds that do not support AVKit.
Unreviewed build fix.
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
- WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
- 3:38 PM Changeset in webkit [199916] by
-
- 3 edits in trunk/Tools
Add JSC test results in json format to a buildbot log
https://bugs.webkit.org/show_bug.cgi?id=156920
Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-04-22
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/master.cfg:
(RunJavaScriptCoreTests):
Add runtime flag to output json into buildbot
- Scripts/run-javascriptcore-tests:
(runJSCStressTests):
Change key names and remove redundant count key
- 3:30 PM Changeset in webkit [199915] by
-
- 2 edits in trunk/Source/WebCore
[Win] Unreviewed build fix.
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::isHidden):
- 3:05 PM Changeset in webkit [199914] by
-
- 2 edits in trunk/Source/WebKit2
Fix builds that do not support AVKit
Unreviewed build fix.
- UIProcess/WebPageProxy.h:
- 3:02 PM Changeset in webkit [199913] by
-
- 2 edits in trunk/Source/JavaScriptCore
Attempt to fix the CLoop after r199866
- runtime/MathCommon.h:
- 2:48 PM Changeset in webkit [199912] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Crash at -[WebAVPlayerLayer resolveBounds]
https://bugs.webkit.org/show_bug.cgi?id=156931
<rdar://problem/25865315>
Reviewed by Eric Carlson.
When cloning the WebAVPlayerLayer, we must copy over the fullscreenInterface to the cloned layer.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebAVPlayerLayerView_startRoutingVideoToPictureInPicturePlayerLayerView):
- 2:40 PM Changeset in webkit [199911] by
-
- 10 edits in branches/safari-601-branch
Merge r199881. rdar://problem/25879498
- 2:32 PM Changeset in webkit [199910] by
-
- 2 edits in trunk/Source/WebCore
Crash under WebCore::DataDetection::detectContentInRange()
https://bugs.webkit.org/show_bug.cgi?id=156880
<rdar://problem/25622631>
Reviewed by Darin Adler.
We would sometimes crash under WebCore::DataDetection::detectContentInRange()
when dereferencing a null parentNode pointer. This patch adds a null check
for parentNode in the for() loop. It also does some clean up and optimization
since I was passing by.
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange):
- 2:32 PM Changeset in webkit [199909] by
-
- 10 edits3 adds in branches/safari-601.1.46-branch
Merge r199881. rdar://problem/25879593
- 2:27 PM Changeset in webkit [199908] by
-
- 4 edits in trunk/Source/WebKit
Source/WebKit:
Unreviewed build fix after r199841.
- PlatformWin.cmake: Add missing WebApplicationCache.cpp buid directive.
Source/WebKit/win:
Unreviewed build fix after 4199841.
- WebApplicationCache.cpp:
(WebApplicationCache::WebApplicationCache): Provide missing preference key definition.
- 2:26 PM Changeset in webkit [199907] by
-
- 2 edits in trunk/LayoutTests
Rebaselining inspector/model/stack-trace.html after r199897
Unreviewed test gardening.
- inspector/model/stack-trace-expected.txt:
- 2:25 PM Changeset in webkit [199906] by
-
- 2 edits in trunk/PerformanceTests
Skip two content animation tests which are only meant for iOS testing.
- Animation/css-animation.html: Added.
- Animation/raf-animation.html: Added.
- Skipped:
- 2:24 PM Changeset in webkit [199905] by
-
- 2 edits in trunk/Source/WebCore
buildObjectForEventListener should not call into JSC with a null ExecState
https://bugs.webkit.org/show_bug.cgi?id=156923
Reviewed by Joseph Pecoraro.
If a user had disabled JavaScript on their page then the inspector tried to
add an event listener we would fail to create an ExecState. Since we didn't
check this ExecState was valid we would then attempt to stringify the value,
which would cause JSC to crash.
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
- 2:22 PM Changeset in webkit [199904] by
-
- 2 edits in trunk/Source/WebCore
Yet another attempt at fixing Windows.
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::isHidden):
- platform/graphics/ca/win/PlatformCALayerWin.h:
- 2:07 PM Changeset in webkit [199903] by
-
- 3 edits in trunk/Source/WebKit2
Take 2 for fixing builds that do not support AVKit
Unreviewed build fix.
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
- 2:07 PM Changeset in webkit [199902] by
-
- 2 edits in trunk/Source/WebCore
Attempt to fix Windows build after r199862
Unreviewed build fix.
- platform/graphics/ca/win/PlatformCALayerWin.h:
- 2:06 PM Changeset in webkit [199901] by
-
- 2 edits in trunk/Source/WebKit2
WKWebView WebSQL is not enabled
https://bugs.webkit.org/show_bug.cgi?id=156928
rdar://problem/19029603
Reviewed by Beth Dakin.
Give databases a default quota of 50 MB, matching what we have in UIWebView.
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
- 1:57 PM Changeset in webkit [199900] by
-
- 2 edits in trunk/Source/WebCore
Anchor element 'ping' property should only apply to http/https destinations
https://bugs.webkit.org/show_bug.cgi?id=156801
<rdar://problem/25834419>
Reviewed by Chris Dumez.
Take advantage of the hyperlink auditing language "UAs may either ignore the
ping attribute altogether, or selectively ignore URLs in the list (e.g. ignoring
any third-party URLs)" to restrict pings to http/https targets. For details, see
<https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing>.
Tested by http/tests/navigation/ping-attribute tests.
- loader/PingLoader.cpp:
(WebCore::PingLoader::sendPing): Ignore requests to ping anything outside the
family of HTTP protocols (http/https).
- 1:28 PM Changeset in webkit [199899] by
-
- 2 edits in trunk/Source/WebInspectorUI
Change an assert to a warn based on post review feedback.
https://bugs.webkit.org/show_bug.cgi?id=156919
rdar://problem/25857118
Rubber-stamped by Joseph Pecoraro.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
- 1:12 PM Changeset in webkit [199898] by
-
- 8 edits in tags/Safari-602.1.29/Source
Merged r199896.
- 12:53 PM Changeset in webkit [199897] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: Debugger statement in console does not provide any call frames and debugger UI is confused
https://bugs.webkit.org/show_bug.cgi?id=156919
rdar://problem/25857118
This makes console expressions show up in the Debugger tab sidebar if a ScriptContentView is shown for them.
We now also show call frames that originate from a console expression, so the call frames in the sidebar is not empty.
Also fix a bug where when there are no call frames we auto resume the debugger and don't leave it in a broken state.
Reviewed by Joseph Pecoraro.
- Localizations/en.lproj/localizedStrings.js: Updated.
- UserInterface/Base/Utilities.js:
(appendWebInspectorSourceURL): Don't append if another sourceURL is already added.
(appendWebInspectorConsoleEvaluationSourceURL): Added.
(isWebInspectorConsoleEvaluationScript): Added.
(isWebKitInternalScript): Return false for isWebInspectorConsoleEvaluationScript().
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause): Resume if call frames is empty. This is not as common now
since console expression call frames are not skipped.
(WebInspector.DebuggerManager.prototype.scriptDidParse): Change an early return for isWebInspectorInternalScript() that
was skipping adding internal scripts to the known script lists, but it should only do that when the debug UI is disabled.
- UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Call appendWebInspectorConsoleEvaluationSourceURL so the console expressions are tagged before evaluateInInspectedWindow
added the internal sourceURL name.
- UserInterface/Models/Script.js:
(WebInspector.Script): Assign unique identifiers to console scripts so they are named correctly.
(WebInspector.Script.resetUniqueDisplayNameNumbers): Reset _nextUniqueConsoleDisplayNameNumber.
(WebInspector.Script.prototype.get displayName): Special case console expressions with a better name.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject): Add a script tree element on demand
like the ResourceSidebarPanel does for anonymous scripts.
(WebInspector.DebuggerSidebarPanel.prototype._addScript): Return treeElement so treeElementForRepresentedObject can use it.
- 12:44 PM Changeset in webkit [199896] by
-
- 8 edits in trunk/Source
Fix builds that do not support AVKit
Unreviewed build fix.
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::viewDidLeaveWindow):
- UIProcess/ios/WebPageProxyIOS.mm:
- platform/ios/WebAVPlayerController.h:
- platform/ios/WebAVPlayerController.mm:
- 12:42 PM Changeset in webkit [199895] by
-
- 3 edits2 adds in trunk
REGRESSION (r189567): The top of Facebook's messenger.com looks visually broken
https://bugs.webkit.org/show_bug.cgi?id=156869
<rdar://problem/23204668>
Reviewed by Zalan Bujtas.
Source/WebCore:
Added fast/block/min-content-with-box-sizing.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
LayoutTests:
- fast/block/min-content-box-sizing-expected.html: Added.
- fast/block/min-content-box-sizing.html: Added.
- 12:27 PM Changeset in webkit [199894] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Integer Multiply of a number by itself does not need negative zero support
https://bugs.webkit.org/show_bug.cgi?id=156895
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-22
Reviewed by Saam Barati.
You cannot produce negative zero by squaring an integer.
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithMul):
Minor codegen fixes:
-Use the right form of multiply for ARM.
-Use a sign-extended 32bit immediates, that's the one with fast forms
in the MacroAssembler.
- 12:25 PM Changeset in webkit [199893] by
-
- 4 edits in trunk/Source/WebCore
TextAutoSizingKey should use normal refcounting
https://bugs.webkit.org/show_bug.cgi?id=156893
Reviewed by Andreas Kling.
Get rid of special refcounting of style in favor of RefPtr. It also becomes a move-only type
to support future switch to non-refcounted RenderStyle.
Also general cleanups and modernization.
- dom/Document.cpp:
(WebCore::TextAutoSizingTraits::constructDeletedValue):
(WebCore::TextAutoSizingTraits::isDeletedValue):
(WebCore::Document::addAutoSizingNode):
(WebCore::Document::validateAutoSizingNodes):
(WebCore::Document::resetAutoSizingNodes):
Adopt to being move-only.
- rendering/TextAutoSizing.cpp:
(WebCore::cloneRenderStyleWithState):
(WebCore::TextAutoSizingKey::TextAutoSizingKey):
Clone the style for safety against mutations. Cloning is cheap.
(WebCore::TextAutoSizingValue::numNodes):
(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):
(WebCore::TextAutoSizingKey::~TextAutoSizingKey): Deleted.
(WebCore::TextAutoSizingKey::operator=): Deleted.
(WebCore::TextAutoSizingKey::ref): Deleted.
(WebCore::TextAutoSizingKey::deref): Deleted.
- rendering/TextAutoSizing.h:
(WebCore::TextAutoSizingKey::TextAutoSizingKey):
(WebCore::TextAutoSizingKey::style):
(WebCore::TextAutoSizingKey::isDeleted):
(WebCore::operator==):
(WebCore::TextAutoSizingKey::doc): Deleted.
(WebCore::TextAutoSizingKey::isValidDoc): Deleted.
(WebCore::TextAutoSizingKey::isValidStyle): Deleted.
(WebCore::TextAutoSizingKey::deletedKeyDoc): Deleted.
(WebCore::TextAutoSizingKey::deletedKeyStyle): Deleted.
m_doc member is not used for anything except deleted value comparisons. Replace it with a bit.
- 12:25 PM Changeset in webkit [199892] by
-
- 1 copy in tags/Safari-602.1.29
New tag.
- 12:25 PM Changeset in webkit [199891] by
-
- 1 delete in tags/Safari-602.1.29
Delete tag.
- 12:24 PM Changeset in webkit [199890] by
-
- 13 edits in trunk/Source/WebCore
Crash under FontCache::purgeInactiveFontData()
https://bugs.webkit.org/show_bug.cgi?id=156822
<rdar://problem/25373970>
Reviewed by Darin Adler.
In some rare cases, the Font constructor would mutate the FontPlatformData
that is being passed in. This is an issue because because our FontCache
uses the FontPlatformData as key for the cached fonts. This could lead to
crashes because the WTFMove() in FontCache::purgeInactiveFontData() would
nullify values in our HashMap but we would then fail to remove them from
the HashMap (because the key did not match). We would then reference the
null font when looping again when doing font->hasOneRef().
This patch marks Font::m_platformData member as const to avoid such issues
in the future and moves the code altering the FontPlatformData from the
Font constructor into the FontPlatformData constructor. The purpose of
that code was to initialize FontPlatformData::m_cgFont in case the CGFont
passed in the constructor was null.
- platform/graphics/Font.h:
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontData):
- platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::FontPlatformData):
- platform/graphics/FontPlatformData.h:
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::webFallbackFontFamily): Deleted.
(WebCore::Font::platformInit): Deleted.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::webFallbackFontFamily):
(WebCore::FontPlatformData::setFallbackCGFont):
- platform/graphics/win/FontPlatformDataCGWin.cpp:
(WebCore::FontPlatformData::setFallbackCGFont):
- 12:22 PM Changeset in webkit [199889] by
-
- 18 edits in trunk
Support disabling at runtime IndexedDB constructors exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=156883
Reviewed by Darin Adler.
Source/WebCore:
Support disabling at runtime IndexedDB constructors exposed to workers.
Previously, constructors visibility to workers and window was constrolled
by the same runtime flag.
- Modules/indexeddb/IDBCursor.idl:
- Modules/indexeddb/IDBCursorWithValue.idl:
- Modules/indexeddb/IDBDatabase.idl:
- Modules/indexeddb/IDBFactory.idl:
- Modules/indexeddb/IDBIndex.idl:
- Modules/indexeddb/IDBKeyRange.idl:
- Modules/indexeddb/IDBObjectStore.idl:
- Modules/indexeddb/IDBOpenDBRequest.idl:
- Modules/indexeddb/IDBRequest.idl:
- Modules/indexeddb/IDBTransaction.idl:
- Modules/indexeddb/IDBVersionChangeEvent.idl:
- workers/WorkerGlobalScope.idl:
LayoutTests:
Add layout test coverage.
- storage/indexeddb/modern/resources/workers-disabled.js:
- storage/indexeddb/modern/resources/workers-enable.js:
- storage/indexeddb/modern/workers-disabled-expected.txt:
- storage/indexeddb/modern/workers-enable-expected.txt:
- 12:14 PM Changeset in webkit [199888] by
-
- 5 edits in trunk/Source
Versioning.
- 12:13 PM Changeset in webkit [199887] by
-
- 1 copy in tags/Safari-602.1.29
New tag.
- 12:01 PM Changeset in webkit [199886] by
-
- 2 edits in trunk/Source/WebCore
Attempting to fix Windows build. Add isHidden implementation.
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::isHidden):
- 11:59 AM Changeset in webkit [199885] by
-
- 2 edits in trunk/Source/WebCore
Attempt at a Windows build fix.
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- 11:27 AM Changeset in webkit [199884] by
-
- 3 edits4 adds in trunk
Source/WebCore:
-webkit-image-set doesn't work inside CSS variables
https://bugs.webkit.org/show_bug.cgi?id=156915
<rdar://problem/25473972>
Reviewed by Zalan Bujtas.
Added new tests in fast/hidpi.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::equals):
(WebCore::CSSPrimitiveValue::buildParserValue):
LayoutTests:
-webkit-image-set doesn't work inside CSS variables
https://bugs.webkit.org/show_bug.cgi?id=156915
<rdar://problem/25473972>
Reviewed by Zalan Bujtas.
- fast/hidpi/image-srcset-simple-in-variable-1x-expected.txt: Added.
- fast/hidpi/image-srcset-simple-in-variable-1x.html: Added.
- fast/hidpi/image-srcset-simple-in-variable-2x-expected.txt: Added.
- fast/hidpi/image-srcset-simple-in-variable-2x.html: Added.
- 11:17 AM Changeset in webkit [199883] by
-
- 3 edits2 deletes in trunk
Unreviewed, rolling out r199877.
https://bugs.webkit.org/show_bug.cgi?id=156918
The LayoutTest added with this change is failing on all
platforms. (Requested by ryanhaddad on #webkit).
Reverted changeset:
"REGRESSION (r189567): The top of Facebook's messenger.com
looks visually broken"
https://bugs.webkit.org/show_bug.cgi?id=156869
http://trac.webkit.org/changeset/199877
Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-22
- 11:06 AM Changeset in webkit [199882] by
-
- 10 edits in trunk/Source
Modern IDB: Rework the ownership/RefCounting model of IDBConnectionToServer and IDBConnectionProxy.
https://bugs.webkit.org/show_bug.cgi?id=156916
Reviewed by Tim Horton.
Source/WebCore:
No new tests (No behavior change).
- Modules/indexeddb/IDBFactory.cpp: Remove unneeded include.
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::ref): Ref the ConnectionToServer.
(WebCore::IDBClient::IDBConnectionProxy::deref): Deref it.
(WebCore::IDBClient::IDBConnectionProxy::connectionToServer):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::create): Deleted.
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer): Create a proxy owned by this.
(WebCore::IDBClient::IDBConnectionToServer::proxy): Expose it.
- Modules/indexeddb/client/IDBConnectionToServer.h:
- dom/Document.cpp:
(WebCore::Document::idbConnectionProxy):
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit2:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
- 10:37 AM Changeset in webkit [199881] by
-
- 10 edits3 adds in trunk
REGRESSION (r194898): Multi download of external SVG defs file by <use> xlinks:href (caching)
https://bugs.webkit.org/show_bug.cgi?id=156368
<rdar://problem/25611746>
Reviewed by Simon Fraser.
Source/WebCore:
We would load svg resources with fragment identifier again because the encoding never matched.
Test: http/tests/svg/svg-use-external.html
- loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::setEncoding):
(WebCore::TextResourceDecoder::hasEqualEncodingForCharset):
Encoding can depend on mime type. Add a comparison function that takes this into account.
(WebCore::findXMLEncoding):
- loader/TextResourceDecoder.h:
(WebCore::TextResourceDecoder::encoding):
- loader/cache/CachedCSSStyleSheet.h:
- loader/cache/CachedResource.h:
(WebCore::CachedResource::textResourceDecoder):
Add a way to get the TextResourceDecoder from a cached resource.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
Use the new comparison function.
- loader/cache/CachedSVGDocument.h:
- loader/cache/CachedScript.h:
- loader/cache/CachedXSLStyleSheet.h:
LayoutTests:
- http/tests/svg/resources/symbol-defs.svg: Added.
- http/tests/svg/svg-use-external-expected.txt: Added.
- http/tests/svg/svg-use-external.html: Added.
- 10:18 AM Changeset in webkit [199880] by
-
- 2 edits in trunk/Tools
Update expected result for WKPreferencesGetOfflineWebApplicationCacheEnabled after r199854
Unreviewed test gardening.
- TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp:
(TestWebKitAPI::TEST):
- 9:13 AM Changeset in webkit [199879] by
-
- 2 edits in trunk/Source/WebCore
Drop [UsePointersEvenForNonNullableObjectArguments] from InspectorFrontendHost
https://bugs.webkit.org/show_bug.cgi?id=156908
Reviewed by Timothy Hatcher.
No change of behavior.
- inspector/InspectorFrontendHost.idl: Marking event parameter as nullable to keep compatibility.
- 8:59 AM Changeset in webkit [199878] by
-
- 16 edits in trunk
Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver
https://bugs.webkit.org/show_bug.cgi?id=156890
Reviewed by Darin Adler.
Source/WebCore:
Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver
and clean up / modernize the code a bit. There is not significant Web-
exposed behavior change except that MutationObserver.observe() now throws
a different kind of exception (a TypeError as per Web IDL) when passed in
a null Node.
No new tests, rebaselined existing test.
- bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
- bindings/js/JSMutationCallback.h:
- bindings/js/JSMutationObserverCustom.cpp:
(WebCore::constructJSMutationObserver):
- css/PropertySetCSSStyleDeclaration.cpp:
- dom/ChildListMutationScope.cpp:
(WebCore::ChildListMutationAccumulator::enqueueMutationRecord):
- dom/MutationCallback.h:
- dom/MutationObserver.cpp:
(WebCore::MutationObserver::create):
(WebCore::MutationObserver::MutationObserver):
(WebCore::MutationObserver::observe):
(WebCore::MutationObserver::takeRecords):
(WebCore::MutationObserver::enqueueMutationRecord):
(WebCore::MutationObserver::deliver):
(WebCore::MutationObserver::disconnect): Deleted.
- dom/MutationObserver.h:
- dom/MutationObserver.idl:
- dom/MutationObserverInterestGroup.cpp:
(WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
- dom/MutationObserverInterestGroup.h:
- dom/MutationRecord.cpp:
(WebCore::MutationRecord::createChildList):
- dom/MutationRecord.h:
LayoutTests:
Rebaseline now that MutationObserver.observe() throws a TypeError instead
of a NOT_FOUND_ERR when passed a null Node.
- fast/dom/MutationObserver/observe-exceptions-expected.txt:
- 8:58 AM Changeset in webkit [199877] by
-
- 3 edits2 adds in trunk
REGRESSION (r189567): The top of Facebook's messenger.com looks visually broken
https://bugs.webkit.org/show_bug.cgi?id=156869
<rdar://problem/23204668>
Reviewed by Zalan Bujtas.
Source/WebCore:
Added fast/block/min-content-with-box-sizing.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeContentLogicalHeight):
LayoutTests:
- fast/block/min-content-with-box-sizing-expected.html: Added.
- fast/block/min-content-with-box-sizing.html: Added.
- 5:49 AM Changeset in webkit [199876] by
-
- 6 edits in trunk
[GTK] Enable the download attribute support
https://bugs.webkit.org/show_bug.cgi?id=99025
Reviewed by Žan Doberšek.
.:
- Source/cmake/OptionsGTK.cmake:
Tools:
- Scripts/webkitperl/FeatureList.pm:
LayoutTests:
Unskip tests that should pass now.
- platform/gtk/TestExpectations:
- 5:21 AM Changeset in webkit [199875] by
-
- 2 edits in trunk/Source/WebKit2
NetworkCacheIOChannelSoup: detach the newly-created IOChannel::readSync thread
https://bugs.webkit.org/show_bug.cgi?id=156907
Reviewed by Carlos Garcia Campos.
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::IOChannel::readSyncInThread): Detach the new thread,
ensuring the resources are released after the thread exits. Next step is
to set up a thread pool and use that, avoiding thread re-creation.
- 5:08 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 12:54 AM Changeset in webkit [199874] by
-
- 3 edits2 adds in trunk
[css-grid] Fix bug with positioned items in vertical writing mode
https://bugs.webkit.org/show_bug.cgi?id=156870
Reviewed by Darin Adler.
Source/WebCore:
In RenderGrid::offsetAndBreadthForPositionedChild() we were using
directly borderLeft(), which is wrong in vertical writing modes.
To fix it we just need to use borderLogicalLeft() which is aware of
the current writing mode.
Test: fast/css-grid-layout/grid-positioned-children-writing-modes.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
LayoutTests:
Add new test to check positioned items in different writing modes
and direction combinations.
- fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html: Added.
- fast/css-grid-layout/grid-positioned-children-writing-modes.html: Added.
- 12:09 AM Changeset in webkit [199873] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
[ANGLE] Remove deprecated auto_ptr warning. Unreviewed.
https://bugs.webkit.org/show_bug.cgi?id=156894
- src/compiler/preprocessor/MacroExpander.h: Use std::unique_ptr instead of std::auto_ptr.
Apr 21, 2016:
- 11:58 PM Changeset in webkit [199872] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r199738): The ANGLE update broke accelerated compositing in GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=156789
Reviewed by Carlos Garcia Campos.
After the update, the ANGLE library has to be built with
ANGLE_ENABLE_ESSL and ANGLE_ENABLE_GLSL definitions in order
to compile in the support for the two translators that Linux-based
ports using OpenGL ES or OpenGL require. Missing files are also added.
- CMakeLists.txt:
- 11:19 PM Changeset in webkit [199871] by
-
- 12 edits4 adds2 deletes in trunk
Drop [UsePointersEvenForNonNullableObjectArguments] from Document
https://bugs.webkit.org/show_bug.cgi?id=156881
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Drop [UsePointersEvenForNonNullableObjectArguments] from Document. There
is no major Web-exposed behavior change but the type of the exception
being thrown when passing null or not enough parameters has changed for
some of the API (It is now always a TypeError as per the Web IDL
specification).
Tests: fast/dom/Document/adoptNode-null.html
fast/dom/Document/importNode-null.html
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserAppendChild):
- dom/Document.cpp:
(WebCore::Document::importNode):
(WebCore::Document::adoptNode):
(WebCore::Document::createNodeIterator):
(WebCore::Document::createTreeWalker):
(WebCore::Document::setBodyOrFrameset):
(WebCore::Document::hasValidNamespaceForElements): Deleted.
(WebCore::Document::scheduleForcedStyleRecalc): Deleted.
(WebCore::Document::scheduleStyleRecalc): Deleted.
(WebCore::Document::unscheduleStyleRecalc): Deleted.
(WebCore::Document::hasPendingStyleRecalc): Deleted.
(WebCore::Document::hasPendingForcedStyleRecalc): Deleted.
(WebCore::Document::recalcStyle): Deleted.
(WebCore::Document::explicitClose): Deleted.
- dom/Document.h:
(WebCore::Document::importNode):
- dom/Document.idl:
- dom/NodeIterator.cpp:
(WebCore::NodeIterator::NodeIterator):
- dom/NodeIterator.h:
(WebCore::NodeIterator::create):
LayoutTests:
Add test cases for cases where the type of the exception being thrown
has changed.
- fast/dom/Document/adoptNode-null-expected.txt: Added.
- fast/dom/Document/adoptNode-null.html: Added.
- fast/dom/Document/importNode-null-expected.txt: Added.
- fast/dom/Document/importNode-null.html: Added.
- fast/dom/importNode-null-expected.txt: Removed.
- fast/dom/importNode-null.html: Removed.
- 11:07 PM Changeset in webkit [199870] by
-
- 2 edits in trunk/Source/JavaScriptCore
Follow-on to the build fix.
- runtime/MathCommon.h: Use the C++ std namespace version of the
frexp function too.
- 10:56 PM Changeset in webkit [199869] by
-
- 2 edits in trunk/Source/WebCore
More improvements and explanations regarding resetting CSS properties on the <math> element
https://bugs.webkit.org/show_bug.cgi?id=156840
Patch by Frederic Wang <fwang@igalia.com> on 2016-04-21
Reviewed by Darin Adler.
We some follow-up improvements regarding CSS rules on the <math> element, after bug 133603:
- We fix indenting to use 4 spaces.
- We explain why we set -webkit-line-box-contain and add references to related bugs.
- We explain why we reset some CSS spacing rules.
- We explain why the direction is set to ltr.
- We explain why font-family is set to a list of known math fonts and add reference to the wiki.
- We mention the need to customize math fonts to get consistent style and add references to a bug report and to the wiki.
- We described each of the math font listed and add some justification about their orders.
- We better explain the section about fonts that do not satisfy the requirements for good mathematical rendering, reformulate why we still need them for iOS/Mac and we add some references to a bug report and to the wiki. Some fonts that not pre-installed were removed in r199773.
- We add a FIXME comments for potential changes of CSS properties on the <math> tag.
We make the following changes to the lists of font-family:
- We move "TeX Gyre Termes Math" into the Times group.
- We move "Asana Math" into the Palatino group.
- We remove iOS conditionals on "Symbol" and "Times New Roman".
No new tests, only order of math fonts that are not used by test framework is changed.
- css/mathml.css:
(math): We merge the two math selectors, reorder some font-families, remove iOS ifdef and
add more description.
- 10:56 PM Changeset in webkit [199868] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Fix build break since r199866. Unreviewed.
https://bugs.webkit.org/show_bug.cgi?id=156892
- runtime/MathCommon.h: Add namespace std to isnormal invoking.
- 10:08 PM Changeset in webkit [199867] by
-
- 12 edits1 add in trunk/Source/JavaScriptCore
[JSC] Add primitive String support to compare operators
https://bugs.webkit.org/show_bug.cgi?id=156783
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-21
Reviewed by Geoffrey Garen.
Just the basics.
We should eventually inline some of the simplest cases.
This is a 2% improvement on Longspider. It is unfortunately neutral
for Sunspider on my machine because most of the comparison are from
baseline.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compileStringCompare):
(JSC::DFG::SpeculativeJIT::compileStringIdentCompare):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareLess):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareLessEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareGreater):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareGreaterEq):
(JSC::FTL::DFG::LowerDFGToB3::compare):
- ftl/FTLOutput.h:
(JSC::FTL::Output::callWithoutSideEffects):
- jit/JITOperations.h:
- tests/stress/string-compare.js: Added.
(makeRope):
(makeString):
(let.operator.of.operators.eval.compareStringIdent):
(let.operator.of.operators.compareStringString):
(let.operator.of.operators.compareStringIdentString):
(let.operator.of.operators.compareStringStringIdent):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.eval):
- 9:46 PM Changeset in webkit [199866] by
-
- 5 edits1 add in trunk/Source/JavaScriptCore
[JSC] Commute FDiv-by-constant into FMul-by-reciprocal when it is safe
https://bugs.webkit.org/show_bug.cgi?id=156871
Patch by Benjamin Poulain <bpoulain@webkit.org> on 2016-04-21
Reviewed by Filip Pizlo.
FMul is significantly faster than FDiv.
For example, on Haswell, FMul has a latency of 5, a throughput of 1
while FDiv has latency 10-24, throughput 8-18.
Fortunately for us, Sunspider and Kraken have plenty of division
by a simple power of 2 constant. Those are just exponent operations
and can be easily reversed to use FMul instead of FDiv.
LLVM does something similar in InstCombine.
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- jit/JITDivGenerator.cpp:
(JSC::JITDivGenerator::loadOperand):
(JSC::JITDivGenerator::generateFastPath):
- jit/SnippetOperand.h:
(JSC::SnippetOperand::asConstNumber):
- runtime/MathCommon.h:
(JSC::safeReciprocalForDivByConst):
- tests/stress/floating-point-div-to-mul.js: Added.
(opaqueDivBy2):
(opaqueDivBy3):
(opaqueDivBy4):
(opaqueDivBySafeMaxMinusOne):
(opaqueDivBySafeMax):
(opaqueDivBySafeMaxPlusOne):
(opaqueDivBySafeMin):
(opaqueDivBySafeMinMinusOne):
(i.catch):
(i.result.opaqueDivBySafeMin.valueOf):
- 9:29 PM Changeset in webkit [199865] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Improve the absThunkGenerator() for 64bit
https://bugs.webkit.org/show_bug.cgi?id=156888
Reviewed by Michael Saboff.
A few tests spend a lot of time in this abs() with double argument.
This patch adds custom handling for the JSValue64 representation.
In particular:
-Do not load the value twice. Unbox the GPR if it is not an Int32.
-Deal with IntMin inline instead of falling back to the C function call.
-Box the values ourself to avoid a duplicate function tail and return.
- jit/ThunkGenerators.cpp:
(JSC::absThunkGenerator):
- 9:26 PM Changeset in webkit [199864] by
-
- 2 edits in trunk/Source/JavaScriptCore
LLInt CallSiteIndex off by 1
https://bugs.webkit.org/show_bug.cgi?id=156886
Reviewed by Benjamin Poulain.
I think was done for historical reasons but isn't needed anymore.
- llint/LLIntSlowPaths.cpp:
- 7:28 PM Changeset in webkit [199863] by
-
- 9 edits1 add in trunk/Source/JavaScriptCore
FTL should handle exceptions in operationInOptimize
https://bugs.webkit.org/show_bug.cgi?id=156885
Reviewed by Michael Saboff.
For some reasone we didn't handle any exceptions in "in" when we called
operationInOptimize in the FTL.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpAssumingJITType):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
- ftl/FTLPatchpointExceptionHandle.h: Add comments explaining which
function to use for different exception types.
- jsc.cpp:
(GlobalObject::finishCreation):
(functionNoFTL):
- runtime/Executable.cpp:
(JSC::ScriptExecutable::ScriptExecutable):
- runtime/Executable.h:
(JSC::ScriptExecutable::setNeverFTLOptimize):
(JSC::ScriptExecutable::neverFTLOptimize):
- tests/stress/in-ftl-exception-check.js: Added.
(foo):
(bar):
(catch):
- 6:48 PM Changeset in webkit [199862] by
-
- 9 edits6 adds in trunk
Backdrop Filter should not be visible if element has visibility:hidden
https://bugs.webkit.org/show_bug.cgi?id=149318
<rdar://problem/22749780>
Reviewed by Simon Fraser.
Source/WebCore:
Make sure that backdrop filter layers take note of when
the contents are visible or not.
Tests: css3/filters/backdrop/backdrop-with-visibility-hidden-changing.html
css3/filters/backdrop/backdrop-with-visibility-hidden.html
css3/filters/backdrop/backdrop-with-visibility-hidden-2.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsVisibility): Tell the backdrop layer about the
change if there is one.
(WebCore::GraphicsLayerCA::updateBackdropFilters): When we update filters, make
sure to check the contents visibility.
(WebCore::dumpInnerLayer): Output "hidden" if the layer is set as such.
- platform/graphics/ca/PlatformCALayer.h: Add an isHidden method.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::isHidden): Call into CALayer isHidden.
Source/WebKit2:
Add the isHidden method to PlatformCALayerRemote.
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::isHidden):
- WebProcess/WebPage/mac/PlatformCALayerRemote.h:
LayoutTests:
Three tests that check if a backdrop filter should be visible when
its owning element is visibility hidden.
- css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt: Added.
- css3/filters/backdrop/backdrop-with-visibility-hidden-changing.html: Added.
- css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt: Added.
- css3/filters/backdrop/backdrop-with-visibility-hidden.html: Added.
- css3/filters/backdrop/backdrop-with-visibility-hidden-2.html: Added.
- css3/filters/backdrop/backdrop-with-visibility-hidden-2-expected.html: Added.
- 6:25 PM Changeset in webkit [199861] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSC virtual call thunk shouldn't do a structure->classInfo lookup
https://bugs.webkit.org/show_bug.cgi?id=156874
Reviewed by Keith Miller.
This lookup was unnecessary because we can just test the inlined type field.
But also, this meant that we were exempting JSBoundFunction from the virtual call optimization.
That's pretty bad.
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
- 6:23 PM Changeset in webkit [199860] by
-
- 5 edits in branches/safari-601.6.16-branch/Source
Versioning.
- 6:21 PM Changeset in webkit [199859] by
-
- 1 copy in tags/Safari-601.6.16.1
New tag.
- 6:18 PM Changeset in webkit [199858] by
-
- 9 edits in branches/safari-601.6.16-branch
Merged r199762. rdar://problem/25786278
- 6:15 PM Changeset in webkit [199857] by
-
- 5 edits in branches/safari-601.6.16-branch/Source
Versioning.
- 6:13 PM Changeset in webkit [199856] by
-
- 3 edits in trunk/Source/WebCore
RenderVideo should always update the intrinsic size before layout.
https://bugs.webkit.org/show_bug.cgi?id=156878
Reviewed by Simon Fraser.
In order to layout video element properly we need to know the correct intrinsic size.
This patch also asserts if we end up updating the intrinsic size right after finishing video renderer layout.
This issues was discovered as part of webkit.org/b/156245. (hence covered by existing tests)
- rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updateIntrinsicSize):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updatePlayer):
- rendering/RenderVideo.h:
- 6:11 PM Changeset in webkit [199855] by
-
- 1 copy in branches/safari-601.6.16-branch
New Branch.
- 6:05 PM Changeset in webkit [199854] by
-
- 3 edits in trunk/Source/WebKit2
WKWebView HTML5 AppCache not working
https://bugs.webkit.org/show_bug.cgi?id=156887
rdar://problem/17944162
Reviewed by Tim Horton.
- Shared/WebPreferencesDefinitions.h:
Set the offlineWebApplicationCacheEnabled property to true by default.
- UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set the default applicationCacheFlatFileSubdirectoryName to "Files".
- 6:03 PM Changeset in webkit [199853] by
-
- 12 edits in trunk
Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope.
https://bugs.webkit.org/show_bug.cgi?id=156877
Reviewed by Tim Horton.
Source/WebCore:
No new tests (Covered by changes to existing tests).
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope): This is the point on the main thread
where we can get the IDBConnectionProxy from the Document and pass it down through Worker
machinery so it can end up at the WorkerGlobalScope.
Everything else is this patch is just passing it along as needed.
And cleaning up header style for neglected headers.
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
- workers/DedicatedWorkerGlobalScope.h:
- workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
- workers/DedicatedWorkerThread.h:
(WebCore::DedicatedWorkerThread::create):
(WebCore::DedicatedWorkerThread::workerObjectProxy):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::idbConnectionProxy):
- workers/WorkerGlobalScope.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::idbConnectionProxy):
- workers/WorkerThread.h:
(WebCore::WorkerThread::threadID):
(WebCore::WorkerThread::runLoop):
(WebCore::WorkerThread::workerLoaderProxy):
(WebCore::WorkerThread::workerReportingProxy):
(WebCore::WorkerThread::getNotificationClient):
(WebCore::WorkerThread::setNotificationClient):
(WebCore::WorkerThread::workerGlobalScope):
LayoutTests:
- storage/indexeddb/modern/workers-enable-expected.txt:
- 5:50 PM Changeset in webkit [199852] by
-
- 20 edits2 adds in trunk
Web Inspector: sourceMappingURL not loaded in generated script
https://bugs.webkit.org/show_bug.cgi?id=156022
<rdar://problem/25438595>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-21
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
Synthetic CallFrames for native code will not have script identifiers.
- inspector/ScriptCallFrame.cpp:
(Inspector::ScriptCallFrame::ScriptCallFrame):
(Inspector::ScriptCallFrame::isEqual):
(Inspector::ScriptCallFrame::buildInspectorObject):
- inspector/ScriptCallFrame.h:
- inspector/protocol/Console.json:
Include the script identifier in ScriptCallFrame so we can correlate this
to the exactly script, even if there isn't a URL. The Script may have a
sourceURL, so the Web Inspector frontend may decide to show / link to it.
- inspector/ScriptCallStackFactory.cpp:
(Inspector::CreateScriptCallStackFunctor::operator()):
(Inspector::createScriptCallStackFromException):
Include SourceID when we have it.
- interpreter/Interpreter.cpp:
(JSC::GetStackTraceFunctor::operator()):
- interpreter/Interpreter.h:
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::sourceID):
- interpreter/StackVisitor.h:
Access the SourceID when we have it.
Source/WebInspectorUI:
- UserInterface/Controllers/SourceMapManager.js:
(WebInspector.SourceMapManager.prototype.downloadSourceMap):
If the sourceMapURL is a dataURL at this point, we can just pass it on,
otherwise we would have returned and skipped it.
- UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame.fromPayload):
Add handling for "scriptId" if it is available in the Console.CallFrame.
Don't automatically mark CallFrames that didn't have a "url" as native,
instead try to get a SourceCode.
- UserInterface/Models/Script.js:
(WebInspector.Script.prototype.get displayURL):
Used by SourceCodeLocation formatting, so behave more like Resources
when we have only have a sourceURL name. This produces output like:
"foo.js:#:#" instead of "foo.js (line #:#)"
(WebInspector.Script.prototype.get anonymous):
Easy accessor to see if this would be treated as anonymous or not.
- UserInterface/Models/SourceMap.js:
(WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):
Gracefully handle no path.
- UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace.prototype.get firstNonNativeCallFrame):
(WebInspector.StackTrace.prototype.get firstNonNativeNonAnonymousCallFrame):
- UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
Now that "Eval Code" with a sourceURL is no longer native, we still don't
want to show it in the Web Inspector if it is anonymous. So include a stricter
version that skips native and anonymous call frames.
LayoutTests:
- inspector/console/messageAdded-from-named-evaluations-expected.txt: Added.
- inspector/console/messageAdded-from-named-evaluations.html: Added.
- inspector/debugger/js-stacktrace-expected.txt:
- inspector/model/stack-trace-expected.txt:
- 5:33 PM Changeset in webkit [199851] by
-
- 2 edits in trunk/Source/WebCore
Fix crashes when loading SVG images.
- loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients):
Give the SVG page its own application cache storage.
- 5:27 PM Changeset in webkit [199850] by
-
- 2 edits in trunk/Source/WebKit/mac
Fix the iOS build: WAKView may not respond to drawLayer:inContext:
https://bugs.webkit.org/show_bug.cgi?id=156879
<rdar://problem/25772661>
Reviewed by Beth Dakin.
- WebView/WebHTMLView.mm:
WebHTMLView on iOS never uses drawLayer:inContext:, and WAKView
doesn't implement it, so this would have thrown an exception
if called, anyway. Fix the build with stricter CA protocols.
- 5:18 PM Changeset in webkit [199849] by
-
- 4 edits in trunk/Source/WebCore
Get rid of ApplicationCacheStorage::singleton
https://bugs.webkit.org/show_bug.cgi?id=156882
Reviewed by Tim Horton.
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::setCacheDirectory): Deleted.
(WebCore::ApplicationCacheStorage::singleton): Deleted.
- loader/appcache/ApplicationCacheStorage.h:
- page/Page.cpp:
(WebCore::Page::Page):
- 5:09 PM Changeset in webkit [199848] by
-
- 8 edits in trunk/Source
Lets do less locking of symbol tables in the BytecodeGenerator where we don't have race conditions
https://bugs.webkit.org/show_bug.cgi?id=156821
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
The BytecodeGenerator allocates all the SymbolTables that it uses.
This is before any concurrent compiler thread can use that SymbolTable.
This means we don't actually need to lock for any operations of the
SymbolTable. This patch makes this change by removing all locking.
To do this, I've introduced a new constructor for ConcurrentJITLocker
which implies no locking is necessary. You instantiate such a ConcurrentJITLocker like so:
ConcurrentJITLocker locker(ConcurrentJITLocker::NoLockingNecessary);
This patch also removes all uses of Strong<SymbolTable> from the bytecode
generator and instead wraps bytecode generation in a DeferGC.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::emitPrefillStackTDZVariables):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::constructorKind):
(JSC::BytecodeGenerator::superBinding):
(JSC::BytecodeGenerator::generate):
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
- runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase):
(JSC::ConcurrentJITLockerBase::~ConcurrentJITLockerBase):
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
Source/WTF:
This patch introduces a new constructor for Locker which implies no
locking is necessary. You instantiate such a locker like so:
Locker<Lock> locker(Locker<Lock>::NoLockingNecessary);
This is useful to for very specific places when it is not yet
required to engage in a specified locking protocol. As an example,
we use this in JSC when we allocate a particular object that
engages in a locking protocol with the concurrent compiler thread,
but before a concurrent compiler thread that could have access
to the object exists.
- wtf/Locker.h:
(WTF::Locker::Locker):
(WTF::Locker::~Locker):
- 5:08 PM Changeset in webkit [199847] by
-
- 4 edits4 adds in trunk
ASSERTION FAILED: accumulation == TransformState::FlattenTransform in WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect
https://bugs.webkit.org/show_bug.cgi?id=155362
Reviewed by Zalan Bujtas.
Source/WebCore:
A particular configuration of composited RenderLayers with preserve-3d and clipping
caused assertions because an ancestor clipping layer had masksToBounds() set, but
a preserves3D() parent, triggering an assertion in GraphicsLayerCA::computeVisibleAndCoverageRect().
Make two changes to address this:
First, CSS clip: and clip-path: should force flattening and override preserve-3d in
the RenderStyle.
Second, don't accumulate transforms in GraphicsLayerCA through layers with masksToBounds().
Tests: compositing/clipping/preserve3d-flatten-assertion-nested.html
compositing/clipping/preserve3d-flatten-assertion.html
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::accumulatesTransform):
LayoutTests:
Test cases that should not assert in debug builds.
- compositing/clipping/preserve3d-flatten-assertion-nested.html: Added.
- compositing/clipping/preserve3d-flatten-assertion.html: Added.
- 4:56 PM Changeset in webkit [199846] by
-
- 7 edits in trunk/Source/WebKit/mac
[WK1] Add WebPlaybackSession support to WebKit
https://bugs.webkit.org/show_bug.cgi?id=156854
Reviewed by Beth Dakin.
Add support for WebPlaybackSession and the ChromeClient methods setUpPlaybackControlsManager() and
clearPlaybackControlsManager() to WebKit.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::setUpPlaybackControlsManager):
(WebChromeClient::clearPlaybackControlsManager):
- WebView/WebView.mm:
(-[WebView _hasActiveVideoForControlsInterface]):
(-[WebView _setUpPlaybackControlsManagerForMediaElement:]):
(-[WebView _clearPlaybackControlsManagerForMediaElement:]):
- WebView/WebViewData.h:
- WebView/WebViewData.mm:
- WebView/WebViewInternal.h:
- 4:30 PM Changeset in webkit [199845] by
-
- 4 edits in trunk/Source/JavaScriptCore
Remove some unnecessary RefPtrs in the parser
https://bugs.webkit.org/show_bug.cgi?id=156865
Reviewed by Filip Pizlo.
The IdentifierArena or the SourceProviderCacheItem will own these UniquedStringImpls
while we are using them. There is no need for us to reference count them.
This might be a 0.5% speedup on octane code-load.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
- parser/Parser.h:
(JSC::Scope::setIsLexicalScope):
(JSC::Scope::isLexicalScope):
(JSC::Scope::closedVariableCandidates):
(JSC::Scope::declaredVariables):
(JSC::Scope::lexicalVariables):
(JSC::Scope::finalizeLexicalEnvironment):
(JSC::Scope::computeLexicallyCapturedVariablesAndPurgeCandidates):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::getCapturedVars):
(JSC::Scope::setStrictMode):
(JSC::Scope::isValidStrictMode):
(JSC::Scope::shadowsArguments):
(JSC::Scope::copyCapturedVariablesToVector):
- parser/SourceProviderCacheItem.h:
(JSC::SourceProviderCacheItem::usedVariables):
(JSC::SourceProviderCacheItem::~SourceProviderCacheItem):
(JSC::SourceProviderCacheItem::create):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):
(JSC::SourceProviderCacheItem::writtenVariables): Deleted.
- 4:28 PM Changeset in webkit [199844] by
-
- 9 edits in trunk/Source/WebCore
Element::idForStyleResolution() is a foot-gun
https://bugs.webkit.org/show_bug.cgi?id=156852
Reviewed by Darin Adler.
Element::idForStyleResolution() is a foot-gun. It requires the caller to check
Element::hasID() first or it may end up crashing when dereferencing elementData()
(e.g. see Bug 156806).
This patch updates Element::idForStyleResolution() to return nullAtom is the
Element does not have an ID. I did not see a performance impact on Speedometer,
Dromaeo DOM Core, Dromaeo CSS Selectors and our local performanceTests/.
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
- css/SelectorFilter.cpp:
(WebCore::collectElementIdentifierHashes):
- dom/Element.h:
(WebCore::Element::idForStyleResolution):
- rendering/RenderBlockFlow.cpp:
(WebCore::needsAppleMailPaginationQuirk):
- rendering/RenderTreeAsText.cpp:
(WebCore::writeRenderRegionList):
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement):
- 4:25 PM Changeset in webkit [199843] by
-
- 9 edits in trunk/Source/WebCore
Modern IDB (Workers): Move IDBConnectionProxy into IDBRequest and IDBDatabase.
https://bugs.webkit.org/show_bug.cgi?id=156868
Reviewed by Tim Horton.
No new tests (No behavior change).
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::create):
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::maybeCloseInServer):
- Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::connectionProxy):
(WebCore::IDBDatabase::serverConnection):
- Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::createDeleteRequest):
(WebCore::IDBOpenDBRequest::createOpenRequest):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::maybeCreateDeleteRequest): Deleted.
(WebCore::IDBOpenDBRequest::maybeCreateOpenRequest): Deleted.
- Modules/indexeddb/IDBOpenDBRequest.h:
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::connectionToServer): Deleted.
- Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::connectionProxy):
- Modules/indexeddb/IDBTransaction.h:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
- 4:06 PM Changeset in webkit [199842] by
-
- 11 edits in trunk/Source/WebKit2
Get rid of the last uses of ApplicationCacheStorage::singleton() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=156876
Reviewed by Tim Horton.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
Add and encode and decode a applicationCacheFlatFileSubdirectoryName.
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
Set m_applicationCacheFlatFileSubdirectoryName to "ApplicationCache".
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
Set m_applicationCacheFlatFileSubdirectoryName to "Files".
(API::ProcessPoolConfiguration::copy):
Copy m_applicationCacheFlatFileSubdirectoryName.
- UIProcess/API/APIProcessPoolConfiguration.h:
Add getter for applicationCacheFlatFileSubdirectoryName.
- UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
Initialize applicationCacheFlatFileSubdirectoryName from the process pool configuration.
(WebKit::WebProcessPool::createNewWebProcess):
Initialize parameters.applicationCacheFlatFileSubdirectoryName. Remove a call to
ApplicationCacheStorage::singleton().setDefaultOriginQuota since it had no effect (it was called in the UI process).
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
Initialize m_applicationCacheFlatFileSubdirectoryName.
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
Pass m_applicationCacheFlatFileSubdirectoryName when creating the application cache storage.
- UIProcess/WebsiteData/WebsiteDataStore.h:
Add new members.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
Set the application cache storage.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Initialize the application cache storage.
- WebProcess/WebProcess.h:
(WebKit::WebProcess::applicationCacheStorage):
Add new getter.
- 4:03 PM Changeset in webkit [199841] by
-
- 2 edits in trunk/Source/WebKit/win
Add a missing space, as noticed by Darin.
- WebApplicationCache.cpp:
(applicationCachePath):
- 3:50 PM Changeset in webkit [199840] by
-
- 4 edits in trunk
[iOS] DumpRenderTree crashed in com.apple.WebCore: WebCore::ResourceLoadNotifier::didFailToLoad
https://bugs.webkit.org/show_bug.cgi?id=156829
<rdar://problem/23348217>
Reviewed by Daniel Bates.
Source/WebCore:
Ensure that the frame associated with the ResourceLoadNotifier is kept alive when notifying the Web Inspector.
Covered by existing tests.
- loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didFailToLoad):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
(WebCore::ResourceLoadNotifier::dispatchDidFailLoading):
LayoutTests:
Unmark imported/blink/http/tests/css/remove-placeholder-styles.html as flaky because of bug fix.
- platform/ios-simulator-wk1/TestExpectations:
- 3:24 PM Changeset in webkit [199839] by
-
- 4 edits in trunk/Source/WebKit2
Remove two uses of ApplicationCacheStorage::singleton() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=156873
Reviewed by Beth Dakin.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::clearApplicationCache): Deleted.
- WebProcess/WebProcess.h:
- 3:24 PM Changeset in webkit [199838] by
-
- 6 edits2 moves in trunk
Web Inspector: Debugger statement gets a space after it when pretty printed
https://bugs.webkit.org/show_bug.cgi?id=156867
<rdar://problem/25862308>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-21
Reviewed by Geoffrey Garen.
Source/WebInspectorUI:
- Tools/Formatting/index.html:
- UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
Handle the unhandled DebuggerStatement node type.
LayoutTests:
- inspector/formatting/formatting-javascript-expected.txt:
- inspector/formatting/formatting-javascript.html:
- inspector/formatting/resources/javascript-tests/other-statements-expected.js: Renamed from LayoutTests/inspector/formatting/resources/javascript-tests/throw-statement-expected.js.
- inspector/formatting/resources/javascript-tests/other-statements.js: Renamed from LayoutTests/inspector/formatting/resources/javascript-tests/throw-statement.js.
- 3:11 PM Changeset in webkit [199837] by
-
- 2 edits in trunk/Source/JavaScriptCore
PolymorphicAccess adds sizeof(CallerFrameAndPC) rather than subtracting it when calculating stack height
https://bugs.webkit.org/show_bug.cgi?id=156872
Reviewed by Geoffrey Garen.
The code that added sizeof(CallerFrameAndPC) emerged from a bad copy-paste in r189586. That was
the revision that created the PolymorphicAccess class. It moved code for generating a
getter/setter call from Repatch.cpp to PolymorphicAccess.cpp. You can see the code doing a
subtraction here:
http://trac.webkit.org/changeset/189586/trunk/Source/JavaScriptCore/jit/Repatch.cpp
This makes the world right again.
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateImpl):
- 2:16 PM Changeset in webkit [199836] by
-
- 5 edits in trunk/Source/WebKit/win
Stop using ApplicationCacheStorage::singleton() on Windows
https://bugs.webkit.org/show_bug.cgi?id=156861
Reviewed by Darin Adler.
- WebApplicationCache.cpp:
(applicationCachePath):
(WebApplicationCache::storage):
- WebApplicationCache.h:
- WebCache.cpp:
(WebCache::empty):
- WebView.cpp:
(WebView::initWithFrame):
(WebKitSetApplicationCachePathIfNecessary): Deleted.
- 2:08 PM Changeset in webkit [199835] by
-
- 12 edits in trunk
Modern IDB (Workers): More IDBConnectionProxy refactoring.
https://bugs.webkit.org/show_bug.cgi?id=156855
Reviewed by Darin Adler.
Source/WebCore:
No new tests (Covered by changes to existing tests).
- Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::indexedDB):
Hang on to the IDBConnectionProxy passed in at creation time, as it should never change:
- Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::create):
(WebCore::IDBFactory::IDBFactory):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
- Modules/indexeddb/IDBFactory.h:
Hang on to the IDBConnectionProxy passed in at creation time, as it should never change:
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
Make IDBConnectionProxy ThreadSafeRefCounted:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::create):
- Modules/indexeddb/client/IDBConnectionProxy.h:
- dom/Document.cpp:
(WebCore::Document::idbConnectionProxy):
- dom/Document.h:
LayoutTests:
- storage/indexeddb/modern/workers-enable-expected.txt: Revert some of the PASS expectations to FAIL, just for now.
- 2:00 PM Changeset in webkit [199834] by
-
- 4 edits2 adds in trunk
WebScriptObject description swizzler should work in a multi-threaded world
https://bugs.webkit.org/show_bug.cgi?id=156808
Source/WebCore:
Reviewed by Geoffrey Garen.
A WebKit legacy API user might be running Objective-C code on another thread.
Since we don't want to corrupt other thread's NSObject description method
we use TLS to record if we are in the stringValue function. As an attempt to
preserve any user swizzling we update the non-stringValue NSObject description
method on each call to stringValue if it has changed. Additionally, the TLS
needs to be a int because the user might call into stringValue, back into JS,
then back into stringValue. If the TLS was a boolean then it would be unset
at that point so when we return into the first stringValue call we would call
the original NSObject description method rather than our override.
Test added to API tests: WebKit1.WebScriptObjectDescription
- bridge/objc/objc_instance.mm:
(-[NSObject _web_description]):
(ObjcInstance::stringValue):
(swizzleNSObjectDescription): Deleted.
Tools:
Add a test for our NSObject swizzling TLS implementation. The test runs on
two threads. One in JS and another in Objective-C. We expect the JS thread
to use our NSObject description override and the Objective-C thread to act
as though it was using the original NSObject description method.
Reviewed by Geoffrey Garen.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/WebScriptObjectDescription.html: Added.
- TestWebKitAPI/Tests/mac/WebScriptObjectDescription.mm: Added.
(nsObjectDescriptionTest):
(-[WebScriptDescriptionTest webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):
- 1:23 PM Changeset in webkit [199833] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build warning: CODE_SIGN_ENTITLEMENTS specified without specifying CODE_SIGN_IDENTITY
https://bugs.webkit.org/show_bug.cgi?id=156862
Reviewed by Joseph Pecoraro.
- Configurations/Base.xcconfig: Specify the ad hoc signing identity by
default. See <http://trac.webkit.org/changeset/143544>.
- 1:21 PM Changeset in webkit [199832] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- platform/mac/WebPlaybackSessionInterfaceMac.mm:
(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):
- 1:18 PM Changeset in webkit [199831] by
-
- 2 edits in trunk/Source/WebCore
32 bit build fix.
- platform/mac/WebPlaybackSessionInterfaceMac.mm:
- 1:07 PM Changeset in webkit [199830] by
-
- 5 edits in trunk/Source/WebCore
Fixed compilation with !ENABLE(SVG_FONTS).
https://bugs.webkit.org/show_bug.cgi?id=156850
Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-21
Reviewed by Michael Catanzaro.
No new tests needed.
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::CSSFontFaceSource):
Added missing ENABLE(SVG_FONTS) guards.
- css/CSSFontFaceSource.h: Ditto.
- platform/graphics/FontCascade.cpp: Ditto.
- svg/SVGToOTFFontConversion.cpp:
(WebCore::FontCascade::drawGlyphBuffer): Deleted extraneous
!ENABLE(SVG_FONTS) guard.
- 1:05 PM Changeset in webkit [199829] by
-
- 3 edits in trunk/Source/WebKit/mac
Stop using ApplicationCacheStorage::singleton() in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=156859
Reviewed by Tim Horton.
- WebCoreSupport/WebApplicationCache.mm:
(+[WebApplicationCache initializeWithBundleIdentifier:]):
Change this to just store the bundle identifier.
(applicationCacheBundleIdentifier):
Helper function that returns the bundle identifier for the app cache.
(applicationCachePath):
Return the application cache path.
(webApplicationCacheStorage):
Create a new ApplicationCacheStorage object.
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Set pageConfiguration.applicationCacheStorage to webApplicationCacheStorage().
(WebKitInitializeApplicationCachePathIfNecessary): Deleted.
- 12:37 PM Changeset in webkit [199828] by
-
- 8 edits in trunk/Source
showCandidates() should take a range and the string should be the whole
paragraph
https://bugs.webkit.org/show_bug.cgi?id=156813
-and corresponding-
rdar://problem/25760533
Reviewed by Tim Horton.
Source/WebKit/mac:
Cache the range and the paragraph since we compute them in
requestCandidatesForSelection, and then we can use them again in
handleRequestedCandidates.
- WebCoreSupport/WebEditorClient.h:
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::requestCandidatesForSelection):
(WebEditorClient::handleRequestedCandidates):
- WebView/WebView.mm:
(-[WebView updateWebViewAdditions]):
(-[WebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
(-[WebView showCandidates:forString:inRect:view:completionHandler:]): Deleted.
- WebView/WebViewInternal.h:
Source/WebKit2:
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateWebViewImplAdditions):
(WebKit::WebViewImpl::showCandidates):
(WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded):
(WebKit::WebViewImpl::handleRequestedCandidates):
- 12:36 PM Changeset in webkit [199827] by
-
- 2 edits in trunk/Source/WebCore
Remove reliance on WebAVMediaSelectionOptionMac for the
WebPlaybackControlsManager
https://bugs.webkit.org/show_bug.cgi?id=156811
-and corresponding-
rdar://problem/25760523
Reviewed by Jer Noble.
- platform/mac/WebPlaybackSessionInterfaceMac.mm:
(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]):
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]):
(WebCore::WebPlaybackSessionInterfaceMac::~WebPlaybackSessionInterfaceMac):
(WebCore::WebPlaybackSessionInterfaceMac::setSeekableRanges):
(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):
(-[WebAVMediaSelectionOptionMac localizedDisplayName]): Deleted.
(-[WebAVMediaSelectionOptionMac setLocalizedDisplayName:]): Deleted.
(-[WebPlaybackControlsManager isSeeking]): Deleted.
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): Deleted.
(-[WebPlaybackControlsManager audioMediaSelectionOptions]): Deleted.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:]): Deleted.
(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]): Deleted.
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]): Deleted.
(-[WebPlaybackControlsManager legibleMediaSelectionOptions]): Deleted.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:]): Deleted.
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]): Deleted.
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]): Deleted.
(-[WebPlaybackControlsManager cancelThumbnailAndAudioAmplitudeSampleGeneration]): Deleted.
(WebCore::mediaSelectionOptions): Deleted.
- 12:03 PM Changeset in webkit [199826] by
-
- 2 edits in trunk/LayoutTests
Skip <area ping> tests on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=156857
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 11:11 AM Changeset in webkit [199825] by
-
- 8 edits in trunk/LayoutTests/imported/w3c
[Fetch API] Improve some fetch response streams tests
https://bugs.webkit.org/show_bug.cgi?id=156848
Reviewed by Darin Adler.
Most important changes are for response-stream-disturbed-2.html and response-stream-disturbed-5.html which were broken.
response-stream-disturbed-2.html was calling an undefined function and was expecting to get a resolved promise while it should be rejected.
response-stream-disturbed-5.html was expecting to have a null body if data is consumed.
After rereading the spec, this test is non conformant, as the body should not be null, but getting the reader should throw.
- web-platform-tests/fetch/api/resources/utils.js: Adding delay helper function.
- web-platform-tests/fetch/api/response/response-cancel-stream.html: Using delay function.
- web-platform-tests/fetch/api/response/response-stream-disturbed-1.html: Removing unused function.
- web-platform-tests/fetch/api/response/response-stream-disturbed-2-expected.txt: Rebasing
- web-platform-tests/fetch/api/response/response-stream-disturbed-2.html: Fixing test.
- web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt: Rebasing
- web-platform-tests/fetch/api/response/response-stream-disturbed-5.html: Fixing test.
- 11:11 AM Changeset in webkit [199824] by
-
- 2 edits in trunk/LayoutTests
LayoutTest http/tests/media/hls/video-controls-live-stream.html is sometimes flaky
https://bugs.webkit.org/show_bug.cgi?id=156851
<rdar://problem/25792102>
Reviewed by Daniel Bates.
- http/tests/media/hls/video-controls-live-stream.html: Only listen for events once because we don't care if they fire more often.
- 11:10 AM Changeset in webkit [199823] by
-
- 3 edits in trunk/Source/WebKit2
[iOS] Allow clients to hide the accessory view on a form input session
https://bugs.webkit.org/show_bug.cgi?id=155574
Patch by Chelsea Pugh <cpugh@apple.com> on 2016-04-21
Reviewed by Dan Bernstein.
- UIProcess/API/Cocoa/_WKFormInputSession.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession accessoryViewShouldNotShow]): Getter for accessoryViewShouldNotShow.
(-[WKFormInputSession setAccessoryViewShouldNotShow:]): Set accessoryViewShouldNotShow and reload input views.
(-[WKContentView requiresAccessoryView]): If the accessory view should be not be shown, do not require
the accessory view.
- 11:03 AM Changeset in webkit [199822] by
-
- 2 edits9 adds in trunk/LayoutTests
Add tests for <area ping>
https://bugs.webkit.org/show_bug.cgi?id=79438
<rdar://problem/22586699>
Reviewed by Alexey Proskuryakov.
- http/tests/navigation/ping-attribute/anchor-cookie.html: Extracted out code into functions setCookie(),
clearLastPingResultAndRunTest() and clickElement() (defined in utilities.js) so that they can be
used by this test and others. Also added HTML5 doctype declaration since it is unnecessary to run
this test in quirks mode.
- http/tests/navigation/ping-attribute/area-cookie-expected.txt: Added.
- http/tests/navigation/ping-attribute/area-cookie.html: Added.
- http/tests/navigation/ping-attribute/area-cross-origin-expected.txt: Added.
- http/tests/navigation/ping-attribute/area-cross-origin-from-https-expected.txt: Added.
- http/tests/navigation/ping-attribute/area-cross-origin-from-https.html: Added.
- http/tests/navigation/ping-attribute/area-cross-origin.html: Added.
- http/tests/navigation/ping-attribute/area-same-origin-expected.txt: Added.
- http/tests/navigation/ping-attribute/area-same-origin.html: Added.
- http/tests/navigation/ping-attribute/resources/utilities.js: Added.
(setCookie):
(clearLastPingResultAndRunTest.done):
(clearLastPingResultAndRunTest):
(clickElement):
- 10:02 AM Changeset in webkit [199821] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(198782): ImageSource::subsamplingLevelForScale() does not cache the MaximumSubsamplingLevel for this ImageSource
https://bugs.webkit.org/show_bug.cgi?id=156766
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-04-21
Reviewed by Darin Adler.
Ensure the MaximumSubsamplingLevel for the ImageSource is calculated
only once and is cached for subsequent uses.
The image subsampling is on by default only for iOS. So the and this
patch currently affects the iOS port.
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::cacheMetadata): Cache m_maximumSubsamplingLevel.
Use m_frameCount as a flag for having_the_cache_done.
(WebCore::ImageSource::subsamplingLevelForScale): Call cacheMetadata()
before using m_maximumSubsamplingLevel.
(WebCore::ImageSource::frameCount): Call cacheMetadata() before returning
m_frameCount.
- platform/graphics/ImageSource.h:
- 9:44 AM Changeset in webkit [199820] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r199734): WebKit crashes loading numerous websites in iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=156842
Reviewed by Daniel Bates.
Disable separated heap on iOS Simulator.
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
- 9:38 AM Changeset in webkit [199819] by
-
- 12 edits8 adds in trunk
Creating a large number of WebGL contexts should recycle older contexts
https://bugs.webkit.org/show_bug.cgi?id=156689
<rdar://problem/19535330>
Patch by Antoine Quint <Antoine Quint> on 2016-04-21
Reviewed by Dean Jackson.
Source/WebCore:
We used to stop creating WebGL contexts once a maximum of 64 WebGL contexts had been
created on a page. Other browsers have a limit of 16 concurrent active WebGL contexts
and they lose older contexts when the developer creates a new context, logging a warning
to the console. We now follow the same approach.
Tests: webgl/max-active-contexts-console-warning.html
webgl/max-active-contexts-gc.html
webgl/max-active-contexts-oldest-context-lost.html
webgl/max-active-contexts-webglcontextlost-prevent-default.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::recycleContext):
Prints a warning message to the console indicating that an older WebGL context
will be lost to accomodate for the active contexts limit being reached and loses
the provided context in a way that it may not be recovered by callingevent.preventDefault()
in thewebglcontextlost
event handler. Finally, we destroy the associated GraphicsContext3D
since it will no longer be useful and it may hold large Open GL resources.
- html/canvas/WebGLRenderingContextBase.h:
- platform/graphics/GraphicsContext3D.h:
Changed GraphicsContext3D::create to return RefPtr instead of PassRefPtr.
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::create):
- platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::create):
- platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::activeContexts):
(WebCore::GraphicsContext3D::create):
Check if we are at the active contexts limit (16) and recycle the oldest context
in our active contexts list. Calling recycleContext() on a context will call the
GraphicsContext3D destructor and remove it from the active contexts list there.
(WebCore::GraphicsContext3D::~GraphicsContext3D):
Remove the deconstructed context from the active contexts list.
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::recycleContext):
- platform/graphics/win/GraphicsContext3DWin.cpp:
(WebCore::GraphicsContext3D::create):
LayoutTests:
- webgl/many-contexts-expected.txt:
- webgl/many-contexts.html:
New output for this existing test since a lot of warnings are now logged to
indicate that we've reached the active contexts limit. We also removed the
check that the last context created was null since it no longer is due to this
source change (older contexts are lost instead).
- webgl/max-active-contexts-console-warning-expected.txt: Added.
- webgl/max-active-contexts-console-warning.html: Added.
This new test checks that we log a warning when we've created one context more
than the active contexts limit.
- webgl/max-active-contexts-gc-expected.txt: Added.
- webgl/max-active-contexts-gc.html: Added.
This new test checks that contexts that are garbage collected do not count
agaist the active contexts limit.
- webgl/max-active-contexts-oldest-context-lost-expected.txt: Added.
- webgl/max-active-contexts-oldest-context-lost.html: Added.
This new test checks that older contexts are lost when we reach the active
contexts limit and we create a new context.
- webgl/max-active-contexts-webglcontextlost-prevent-default-expected.txt: Added.
- webgl/max-active-contexts-webglcontextlost-prevent-default.html: Added.
This new test checks that calling
event.preventDefault()
in awebglcontextlost
event handler does not prevent a context from being lost when the active contexts
limit is reached.
- 9:25 AM Changeset in webkit [199818] by
-
- 5 edits2 adds in trunk
Don't hyphenate the last word in a paragraph of text.
https://bugs.webkit.org/show_bug.cgi?id=156803
Reviewed by Simon Fraser.
Source/WebCore:
Added fast/text/hyphenate-avoid-orphaned-word.html
- rendering/RenderText.h:
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
LayoutTests:
- fast/text/hyphenate-avoid-orphaned-word.html: Added.
- platform/mac/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
- platform/mac/fast/text/hyphenate-limit-before-after-expected.txt:
- 9:07 AM Changeset in webkit [199817] by
-
- 42 edits in trunk/Source
Drop [UsePointersEvenForNonNullableObjectArguments] from Range
https://bugs.webkit.org/show_bug.cgi?id=156805
Reviewed by Youenn Fablet.
Source/WebCore:
No new tests, no web-exposed behavior change.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::rangeForNodeContents):
(WebCore::characterOffsetsInOrder):
(WebCore::setRangeStartOrEndWithCharacterOffset):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::previousBoundary):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange):
- dom/Node.cpp:
(WebCore::Node::textRects):
- dom/Range.cpp:
(WebCore::Range::Range):
(WebCore::Range::setDocument):
(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareNode):
(WebCore::Range::compareBoundaryPoints):
(WebCore::Range::compareBoundaryPointsForBindings):
(WebCore::Range::intersectsNode):
(WebCore::Range::processContents):
(WebCore::Range::insertNode):
(WebCore::Range::checkNodeWOffset):
(WebCore::Range::setStartAfter):
(WebCore::Range::setEndBefore):
(WebCore::Range::setEndAfter):
(WebCore::Range::selectNode):
(WebCore::Range::selectNodeContents):
(WebCore::Range::surroundContents):
(WebCore::Range::setStartBefore):
(WebCore::Range::contains):
(WebCore::rangesOverlap):
(WebCore::rangeOfContents):
(WebCore::boundaryNodeChildrenWillBeRemoved):
(WebCore::boundaryTextNodesMerged):
(WebCore::boundaryTextNodesSplit):
(WebCore::Range::expand):
(WebCore::checkForDifferentRootContainer): Deleted.
(WebCore::highestAncestorUnderCommonRoot): Deleted.
(WebCore::childOfCommonRootBeforeOffset): Deleted.
(WebCore::deleteCharacterData): Deleted.
(WebCore::Range::toString): Deleted.
(WebCore::Range::toHTML): Deleted.
(WebCore::Range::text): Deleted.
(WebCore::Range::cloneRange): Deleted.
(WebCore::Range::absoluteTextRects): Deleted.
(WebCore::Range::absoluteTextQuads): Deleted.
(WebCore::boundaryNodeChildrenChanged): Deleted.
(WebCore::boundaryNodeWillBeRemoved): Deleted.
(WebCore::Range::nodeWillBeRemoved): Deleted.
(WebCore::boundaryTextRemoved): Deleted.
(WebCore::Range::getBoundingClientRect): Deleted.
(WebCore::Range::getBorderAndTextQuads): Deleted.
- dom/Range.h:
- dom/Range.idl:
- dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::set):
(WebCore::RangeBoundaryPoint::setToStartOfNode):
(WebCore::RangeBoundaryPoint::setToEndOfNode):
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
- editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::rangeOfString):
(WebCore::isFrameInRange):
(WebCore::Editor::countMatchesForText):
- editing/EditorCommand.cpp:
(WebCore::unionDOMRanges):
(WebCore::executeDeleteToMark):
(WebCore::executeSelectToMark):
- editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::formatRange):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::respondToNodeModification):
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApplyForSingleParagraph):
- editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingParagraph::offsetTo):
- editing/TextIterator.cpp:
(WebCore::CharacterIterator::range):
(WebCore::BackwardsCharacterIterator::range):
(WebCore::TextIterator::rangeFromLocationAndLength):
(WebCore::TextIterator::getLocationAndLengthFromRange):
(WebCore::findPlainText):
- editing/VisiblePosition.cpp:
(WebCore::setStart):
(WebCore::setEnd):
- editing/VisibleSelection.cpp:
(WebCore::makeSearchRange):
- editing/VisibleUnits.cpp:
(WebCore::previousBoundary):
(WebCore::nextBoundary):
- editing/htmlediting.cpp:
(WebCore::visiblePositionForIndexUsingCharacterIterator):
(WebCore::isNodeVisiblyContainedWithin):
- editing/htmlediting.h:
- editing/mac/EditorMac.mm:
(WebCore::Editor::adjustedSelectionRange):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
- page/DOMSelection.cpp:
(WebCore::DOMSelection::addRange):
- page/DragController.cpp:
(WebCore::selectElement):
- page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent):
- page/Page.cpp:
(WebCore::Page::findStringMatchingRanges):
- page/TextIndicator.cpp:
(WebCore::hasNonInlineOrReplacedElements):
- rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges):
Source/WebKit/mac:
- WebView/WebFrame.mm:
(-[WebFrame _smartDeleteRangeForProposedRange:]):
Source/WebKit2:
- WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange setStart:offset:]):
(-[WKDOMRange setEnd:offset:]):
(-[WKDOMRange selectNode:]):
(-[WKDOMRange selectNodeContents:]):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::contentsAsString):
- 8:42 AM Changeset in webkit [199816] by
-
- 4 edits in trunk/Source/WebCore
Drop [UsePointersEvenForNonNullableObjectArguments] from DOMURL
https://bugs.webkit.org/show_bug.cgi?id=156797
Reviewed by Youenn Fablet.
- html/DOMURL.cpp:
(WebCore::DOMURL::create):
- html/DOMURL.h:
- html/DOMURL.idl:
- 8:12 AM Changeset in webkit [199815] by
-
- 3 edits2 moves1 add2 deletes in trunk/Source/WebCore
[GTK][EFL] Move non-glib/gtk platform implementations out of platform/gtk
https://bugs.webkit.org/show_bug.cgi?id=156847
Reviewed by Carlos Garcia Campos.
The Language and Logging implementation don't really need glib, so
rework them and move them to a new platform/unix directory so that
they can be shared among Unix ports.
- PlatformEfl.cmake: Use the unix version.
- PlatformGTK.cmake: Same.
- platform/efl/LanguageEfl.cpp: Removed.
- platform/efl/LoggingEfl.cpp: Removed.
- platform/unix/LanguageUnix.cpp: Renamed from Source/WebCore/platform/gtk/LanguageGtk.cpp.
(WebCore::platformLanguage):
(WebCore::platformUserPreferredLanguages):
- platform/unix/LoggingUnix.cpp: Renamed from Source/WebCore/platform/gtk/LoggingGtk.cpp.
(WebCore::logLevelString):
- 6:45 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 5:33 AM Changeset in webkit [199814] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Update expectations for some editing tests that are slow on Debug.
All these pass for me locally when run with --no-timeout.
- platform/gtk/TestExpectations:
- 4:45 AM Changeset in webkit [199813] by
-
- 4 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline tests after r180867.
- platform/gtk/editing/execCommand/5142012-1-expected.txt:
- platform/gtk/editing/inserting/insert-at-end-02-expected.txt:
- platform/gtk/editing/pasteboard/4989774-expected.txt:
- 3:57 AM Changeset in webkit [199812] by
-
- 7 edits in trunk/Source/JavaScriptCore
Align RegExp[@@match] with other @@ methods
https://bugs.webkit.org/show_bug.cgi?id=156832
Reviewed by Mark Lam.
Various changes to align the RegExp[@@match] with [@@search] and [@@split].
Made RegExp.prototype.@exec a hidden property on the global object and
called it @regExpBuiltinExec to match the name it has in the standard.
Changed all places that used the old name to use the new one.
Made the match fast path function, which used to be call @match, to be called
@regExpMatchFast and put it on the global object. Changed it to also handle
expressions both with and without the global flag. Refactored the builtin
@match accordingly.
Added the builtin function @hasObservableSideEffectsForRegExpMatch() that
checks to see if we can use the fast path of if we need the explicit version.
Put the main RegExp functions @match, @search and @split in alphabetical
order in RegExpPrototype.js. Did the same for @match, @repeat, @search and
@split in StringPrototype.js.
- builtins/RegExpPrototype.js:
(regExpExec):
(hasObservableSideEffectsForRegExpMatch): New.
(match):
(search):
(hasObservableSideEffectsForRegExpSplit):
Reordered in the file and updated to use @regExpBuiltinExec.
- builtins/StringPrototype.js:
(match):
(repeatSlowPath):
(repeat):
(search):
(split):
Reordered functions in the file.
- runtime/CommonIdentifiers.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::setGlobalThis):
(JSC::getById):
(JSC::getGetterById):
(JSC::JSGlobalObject::init):
- runtime/RegExpPrototype.cpp:
(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncMatchFast):
(JSC::regExpProtoFuncMatchPrivate): Deleted.
- runtime/RegExpPrototype.h:
- 3:53 AM Changeset in webkit [199811] by
-
- 7 edits in trunk
[GTK] WebKitWebView should claim the contents size as its natural size
https://bugs.webkit.org/show_bug.cgi?id=156835
Reviewed by Žan Doberšek.
Source/WebKit2:
And keep claiming 0 as its minimum size since it's scrollable.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::didChangeContentSize): Call webkitWebViewBaseSetContentsSize().
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseGetPreferredWidth): Return the contents width as natural width.
(webkitWebViewBaseGetPreferredHeight): Return the contents height as natural height.
(webkit_web_view_base_class_init): Add implementations of get_preferred_width/height.
(webkitWebViewBaseSetContentsSize): Save the contents size.
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
Tools:
Add test case to check the WebKitWebView preferred size.
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
(testWebViewPreferredSize):
(beforeAll):
- 3:50 AM Changeset in webkit [199810] by
-
- 9 edits in trunk/Source/WebKit2
[GTK] WebKitWebView should propagate wheel events not handled by the web process
https://bugs.webkit.org/show_bug.cgi?id=156834
Reviewed by Žan Doberšek.
We are currently swallowing all wheel events unconditionally, not allowing applications to handle wheel events
when not handled by us. Since the GTK+ event propagation system is synchronous, and our events are handled
asynchronously, we need to do something similar to what we do for key events, not propagate the event the first
time and if not handled by the web process, re-inject it in the event loop and then just propagate it.
- Shared/NativeWebWheelEvent.h:
(WebKit::NativeWebWheelEvent::nativeEvent): Remove useless const.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Tell the web view to propagate the next wheel event,
and re-inject the event not handled by the web process in the event loop.
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseScrollEvent): Propagate the event if shouldForwardNextWheelEvent is true.
(webkitWebViewBaseForwardNextWheelEvent): Set shouldForwardNextWheelEvent to true.
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent): Remove ifdef.
- UIProcess/efl/WebView.h:
- 1:50 AM MathML/Fonts edited by
- (diff)
- 1:41 AM Changeset in webkit [199809] by
-
- 3 edits2 adds in trunk
AX: stringForTextMarkerRange returning empty string for document range
https://bugs.webkit.org/show_bug.cgi?id=156819
Reviewed by Chris Fleizach.
Source/WebCore:
Set text marker data with CharacterOffset when VisiblePosition is having PositionIsAfterAnchor
or PositionIsAfterChildren anchor type, so that the character offset corresponds to the anchored
node.
Test: accessibility/mac/text-marker-string-for-document-range.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
LayoutTests:
- accessibility/mac/text-marker-string-for-document-range-expected.txt: Added.
- accessibility/mac/text-marker-string-for-document-range.html: Added.
- 1:25 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:12 AM MathML/Fonts edited by
- (diff)
- 12:40 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
Apr 20, 2016:
- 10:04 PM Changeset in webkit [199808] by
-
- 2 edits in trunk/Tools
Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
https://bugs.webkit.org/show_bug.cgi?id=156827
Update the .plan file now that the files are present in SVN.
- Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan:
- 10:02 PM Changeset in webkit [199807] by
-
- 2 edits in trunk/Source/WebCore
Crash under WebCore::TextIterator::subrange()
https://bugs.webkit.org/show_bug.cgi?id=156809
<rdar://problem/21102730>
Reviewed by Ryosuke Niwa.
TextIterator::rangeFromLocationAndLength() may return null. However, we
failed to do a null check before calling TextIterator::subrange() with
that range.
No new tests, do not know how to reproduce.
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
- 10:01 PM Changeset in webkit [199806] by
-
- 1 edit2 adds in trunk/PerformanceTests
Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
https://bugs.webkit.org/show_bug.cgi?id=156827
Add two files missing from the previous commit.
- Animation/css-animation.html: Added.
- Animation/raf-animation.html: Added.
- 9:56 PM Changeset in webkit [199805] by
-
- 9 edits2 adds in trunk
Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
https://bugs.webkit.org/show_bug.cgi?id=156827
PerformanceTests:
Reviewed by Stephanie Lewis.
Two new files for the content-animation suite.
After patching for use in the benchmark, these tests are a little different to other benchmarks.
The test content itself does not collect performance data; the tests spit out a boilerplate JSON
result with a placeholder for framerate, which is collected in native code.
When run as a benchmark, test completion involves a couple of bounces between the test and MobileSafari.
Test completion is initiated by a setTimeout() in the test, at which point location.hash is set to "#done".
MobileSafari detects that, and asynchronously dumps performance data. Once this is complete, MobileSafari
changes the URL has to "#submit", which triggers the XHR to the test relay that indicates the test is
complete.
- Animation/css-animation.html: Added.
- Animation/raf-animation.html: Added.
Tools:
rdar://problem/24358135
Reviewed by Stephanie Lewis.
Enhance benchmark_runner so that a benchmark can load a set of tests sequentially,
and collate results across them. Also add the ability for the browser_driver to supply
additional results, allowing for tests that collect results data in native code, rather
than generating it in the web page.
Add a set of "content animation" tests that use this new functionality, which test
CSS animation and requestAnimationFrame performance.
'plan' files have two new optional keys:
'test_files': a list of files to run as a suite
'options': optional parameters. Currently supports one new option,
'animation_command', which affects the way that iOS tests are run,
and is passed to MobileSafari as a parameter on launch.
- Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.init): If options is not specified in the plan file, set it to an empty dictionary.
(BenchmarkRunner._get_result): Allow the browser_driver to modify the test results.
(BenchmarkRunner):
(BenchmarkRunner._run_one_test): Factored out of _run_benchmark, this contains logic for
running a single test. It starts and stops the http_server_driver.
(BenchmarkRunner._run_benchmark): Run a test in the traditional way if the plan has an 'entry_point'
key, otherwise look for the new 'test_files' and load each in a loop.
(BenchmarkRunner._dump):
- Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
(BrowserDriver.launch_url): Pass options.
(BrowserDriver.add_additional_results): Allow a driver to supply additional results.
(BrowserDriver):
- Scripts/webkitpy/benchmark_runner/browser_driver/gtk_minibrowser_driver.py:
(GTKMiniBrowserDriver.launch_url):
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver.close_browsers):
(OSXBrowserDriver._terminate_processes): Fix spelling mistake.
(OSXBrowserDriver._terminiate_processes): Deleted.
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
(OSXChromeDriver.launch_url):
(OSXChromeCanaryDriver.launch_url):
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
(OSXFirefoxDriver.launch_url):
(OSXFirefoxNightlyDriver.launch_url):
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.launch_url):
- Scripts/webkitpy/benchmark_runner/data/patches/ContentAnimation.patch: Added.
- Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan: Added.
- 9:42 PM Changeset in webkit [199804] by
-
- 9 edits in trunk/Source/WebCore
Modern IDB (Workers): Remove IDBRequest/IDBOpenDBRequest's requirement to get an IDBServerConnection around.
https://bugs.webkit.org/show_bug.cgi?id=156826
Reviewed by Alex Christensen.
No new tests (No behavior change, existing tests pass).
This doesn't appear to do much but make things a little more complicated, but it's the first of a few
small pushes in the right direction.
- Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::maybeCreateDeleteRequest):
(WebCore::IDBOpenDBRequest::maybeCreateOpenRequest):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::createDeleteRequest): Deleted.
(WebCore::IDBOpenDBRequest::createOpenRequest): Deleted.
- Modules/indexeddb/IDBOpenDBRequest.h:
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::connectionToServer):
- Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::connection): Deleted.
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::IDBConnectionProxy):
(WebCore::IDBClient::IDBConnectionProxy::connectionToServer):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
- Modules/indexeddb/client/IDBConnectionProxy.h:
(WebCore::IDBClient::IDBConnectionProxy::serverConnectionIdentifier):
- Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):
- Modules/indexeddb/shared/IDBResourceIdentifier.h:
- 9:40 PM Changeset in webkit [199803] by
-
- 4 edits in trunk/Source/JavaScriptCore
JavaScriptCore garbage collection is missing an autorelease pool
https://bugs.webkit.org/show_bug.cgi?id=156751
<rdar://problem/25787802>
Reviewed by Mark Lam.
- heap/Heap.cpp:
(JSC::Heap::releaseDelayedReleasedObjects): Add an autorelease pool to
catch autoreleases when we call out to arbitrary ObjC code.
We use the C interface here because this is not an ObjC compilation unit.
- 9:25 PM Changeset in webkit [199802] by
-
- 2 edits in trunk/Source/WebCore
Add Subresource Integrity as "Under consideration".
https://bugs.webkit.org/show_bug.cgi?id=156800
Patch by John Wilander <wilander@apple.com> on 2016-04-20
Reviewed by Alexey Proskuryakov.
No new tests needed.
- features.json:
Added an entry for Subresource Integrity.
- 7:35 PM Changeset in webkit [199801] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
DFG del_by_id support forgets to set()
https://bugs.webkit.org/show_bug.cgi?id=156830
Reviewed by Saam Barati.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- tests/stress/dfg-del-by-id.js: Added.
- 5:55 PM Changeset in webkit [199800] by
-
- 5 edits in trunk/Source/JavaScriptCore
Improve sampling profiler CLI JSC tool
https://bugs.webkit.org/show_bug.cgi?id=156824
Reviewed by Mark Lam.
This patch enhances the Sampling Profiler CLI tool from the JSC shell
to display the JITType of a particular CodeBlock. Because this happens
once we process a log of stack frames, the data for a particular frame
being in LLInt vs. Baseline could be wrong. For example, we may have taken
a stack trace of a CodeBlock while it was executing in the LLInt, then
it tiers up to the baseline, then we process the log. We will show such CodeBlocks
as being in the baseline JIT. We could be smarter about this in the future if
it turns out to truly be a problem.
This patch also adds a 'samplingProfilerTimingInterval' JSC option to allow
CLI users to control the sleep time between stack traces.
- jsc.cpp:
(jscmain):
- runtime/Options.h:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::reportTopBytecodes):
- runtime/SamplingProfiler.h:
(JSC::SamplingProfiler::StackFrame::hasExpressionInfo):
- 5:35 PM Changeset in webkit [199799] by
-
- 1 edit123 adds in trunk/LayoutTests
Adding ios-simulator-wk1 specific baselines for compositing and css3 LayoutTests due to contentsOpaque difference
Unreviewed test gardening.
- Truncating changelog due to large number of added files
- 4:49 PM Changeset in webkit [199798] by
-
- 4 edits in trunk/Source/WebCore
Get rid of a couple of uses of ApplicationCacheStorage::singleton()
https://bugs.webkit.org/show_bug.cgi?id=156818
Reviewed by Geoffrey Garen.
- loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::addResource):
- loader/appcache/ApplicationCacheGroup.h:
(WebCore::ApplicationCacheGroup::storage):
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setApplicationCacheOriginQuota):
- 4:43 PM Changeset in webkit [199797] by
-
- 25 edits1 copy1 add in trunk
Modern IDB (Workers): Introduce "IDBConnectionProxy" for future threading abstraction, and adopt it in IDBFactory.
https://bugs.webkit.org/show_bug.cgi?id=156810
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Covered by changes to existing tests).
Add the IDBConnectionProxy object, including the ability to replicate IDBFactory functionality:
- Modules/indexeddb/client/IDBConnectionProxy.cpp: Added.
(WebCore::IDBClient::IDBConnectionProxy::IDBConnectionProxy):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
- Modules/indexeddb/client/IDBConnectionProxy.h:
Add pure virtual IDBConnectionProxy accessor:
- dom/ScriptExecutionContext.h:
Implement it:
- dom/Document.cpp:
(WebCore::Document::idbConnectionProxy):
- dom/Document.h:
Implement it:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::idbConnectionProxy):
- workers/WorkerGlobalScope.h:
- Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::indexedDB):
Don't keep a reference to IDBConnectionToServer, but rather get at the context's IDBConnectionProxy:
- Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::create):
(WebCore::IDBFactory::IDBFactory):
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
- Modules/indexeddb/IDBFactory.h:
- Modules/indexeddb/IDBFactory.idl:
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
- Modules/indexeddb/client/IDBConnectionToServer.h:
- inspector/InspectorIndexedDBAgent.cpp:
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
- storage/indexeddb/intversion-bad-parameters-expected.txt:
- storage/indexeddb/intversion-bad-parameters-private-expected.txt:
- storage/indexeddb/modern/opendatabase-request-event-expected.txt:
- storage/indexeddb/modern/opendatabase-request-event-private-expected.txt:
- storage/indexeddb/modern/opendatabase-request-expected.txt:
- storage/indexeddb/modern/opendatabase-request-private-expected.txt:
- storage/indexeddb/modern/workers-enable-expected.txt:
- storage/indexeddb/version-change-event-basic-expected.txt:
- storage/indexeddb/version-change-event-basic-private-expected.txt:
- 4:28 PM Changeset in webkit [199796] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] DFG should not generate two jumps when the target of DoubleBranch is the next block
https://bugs.webkit.org/show_bug.cgi?id=156815
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-20
Reviewed by Mark Lam.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePeepHoleDoubleBranch):
- 3:56 PM Changeset in webkit [199795] by
-
- 6 edits in trunk
[GTK] Expose AllowUniversalAccessFromFileURLs preference now that calling localStorage.getItem() results in SecurityError: DOM Exception 18
Source/WebKit2:
Patch by Dustin Falgout <dustin@falgout.us> on 2016-04-20
Reviewed by Michael Catanzaro.
As of r197858 JavaScript loaded in the context of a file scheme url cannot access local storage. That is a major
breaking change as many applications that serve files locally rely on having access to local storage. The point
of that security fix is to avoid cases of downloaded HTML content (such as e-mail attachments or JS injected
into local contexts) from having access to your local file system and arbitrary local storage. If you are serving
local files in your applications, you can use the WebKitAllowUniversalAccessFromFileURLs preference key to tell
Webkit that you are approve of these kinds of interactions.
https://bugs.webkit.org/show_bug.cgi?id=156651
- UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_allow_universal_access_from_file_urls):
(webkit_settings_set_allow_universal_access_from_file_urls):
- UIProcess/API/gtk/WebKitSettings.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
Tools:
https://bugs.webkit.org/show_bug.cgi?id=156651
Patch by Dustin Falgout <dustin@falgout.us> on 2016-04-20
Reviewed by Michael Catanzaro.
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:
(testWebKitSettings):
- 3:51 PM Changeset in webkit [199794] by
-
- 2 edits in trunk/LayoutTests
Marking compositing/webgl/webgl-reflection.html as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=156812
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 3:45 PM Changeset in webkit [199793] by
-
- 5 edits in trunk
Web Inspector: console.table(navigator) throws exception about
rowPreview.propertyPreviews.length
https://bugs.webkit.org/show_bug.cgi?id=156698
<rdar://problem/25778244>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-20
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
- UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Handle a row with a value preview but no sub-property previews (a function).
LayoutTests:
- inspector/console/console-table-expected.txt:
- inspector/console/console-table.html:
- 3:24 PM Changeset in webkit [199792] by
-
- 6 edits1 add in trunk/Source/JavaScriptCore
[JSC] Add register reuse for ArithAdd of an Int32 and constant in DFG
https://bugs.webkit.org/show_bug.cgi?id=155164
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-20
Reviewed by Mark Lam.
Every "inc" in loop was looking like this:
move rX, rY
inc rY
jo 0x230f4a200580
This patch add register Reuse to that case to remove
the extra "move".
- dfg/DFGOSRExit.h:
(JSC::DFG::SpeculationRecovery::SpeculationRecovery):
(JSC::DFG::SpeculationRecovery::immediate):
- dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
- dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithAdd):
- tests/stress/arith-add-with-constant-overflow.js: Added.
(opaqueAdd):
- 3:03 PM Changeset in webkit [199791] by
-
- 2 edits in trunk/LayoutTests
Remove flaky expectation for imported/mozilla/svg/image/image-filter-01.svg on ios-simulator-wk2
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 2:58 PM Changeset in webkit [199790] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Use debounce proxies in a couple more places
https://bugs.webkit.org/show_bug.cgi?id=156759
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEvent):
(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WebInspector.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEventSoon): Deleted.
- UserInterface/Views/DOMTreeUpdater.js:
(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
(WebInspector.DOMTreeUpdater.prototype._characterDataModified):
(WebInspector.DOMTreeUpdater.prototype._nodeInserted):
(WebInspector.DOMTreeUpdater.prototype._nodeRemoved):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodesSoon): Deleted.
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibilitySoon): Deleted.
- 2:58 PM Changeset in webkit [199789] by
-
- 6 edits2 adds in trunk
Web Inspector: Make debounce use an ES6 Proxy
https://bugs.webkit.org/show_bug.cgi?id=156756
rdar://problem/25809771
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Base/Utilities.js:
(Object.prototype.soon): Added.
(Object.prototype.debounce): Added.
(Function.prototype.debounce): Deleted.
(Function.prototype.cancelDebounce): Added.
- UserInterface/Views/BezierEditor.js:
(WebInspector.BezierEditor.createBezierInput): Use new debounce proxy.
- UserInterface/Views/VisualStyleBackgroundPicker.js:
(WebInspector.VisualStyleBackgroundPicker): Ditto.
- UserInterface/Views/VisualStyleURLInput.js:
(WebInspector.VisualStyleURLInput): Ditto.
LayoutTests:
- inspector/unit-tests/debounce-expected.txt: Added.
- inspector/unit-tests/debounce.html: Added.
- 2:54 PM Changeset in webkit [199788] by
-
- 4 edits1 add in trunk/LayoutTests
Rebaseline tests for iOS simulator.
Unreviewed test gardening.
- platform/ios-simulator-wk2/css2.1/t0905-c5525-flthw-00-c-g-expected.txt:
- platform/ios-simulator-wk2/css2.1/t0905-c5526-flthw-00-c-g-expected.txt:
- platform/ios-simulator/fast/canvas/set-colors-expected.txt: Added.
- platform/ios-simulator/fast/text/emoji-expected.txt:
- 2:47 PM Changeset in webkit [199787] by
-
- 2 edits in trunk/Source/JavaScriptCore
We don't need a manual stack for an RAII object when the machine's stack will do just fine
https://bugs.webkit.org/show_bug.cgi?id=156807
Reviewed by Mark Lam.
We kept around a vector for an RAII object to maintain
the recursive nature of having these RAII objects on
the stack as the parser recursed. Instead, the RAII object
can just have a field with the value it wants to restore
and use the machine's stack.
This is a 1% octane code-load progression.
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
(JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
(JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
(JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
(JSC::SyntaxChecker::operatorStackPop):
- 2:25 PM Changeset in webkit [199786] by
-
- 2 edits in trunk/LayoutTests
Speculative unflake of dynamic_remove_preload_href layout test
https://bugs.webkit.org/show_bug.cgi?id=156773
Reviewed by Alexey Proskuryakov.
- http/tests/preload/dynamic_remove_preload_href.html: Avoid using a blocking script based timeout.
- 2:07 PM Changeset in webkit [199785] by
-
- 3 edits in trunk/Source/WebCore
Use Optional<size_t> for OrderIterator::m_orderIndex instead of int
https://bugs.webkit.org/show_bug.cgi?id=156796
Reviewed by Anders Carlsson.
Use Optional<size_t> for OrderIterator::m_orderIndex instead of int
(with invalid value of -1). m_orderIndex a vector index and therefore
is in the range of an unsigned (type used internally by Vector, even
though the index is exposed as size_t). Therefore, assigning it to an
int is unsafe as it may overflow.
This may fix <rdar://problem/23410338> which is a top crasher.
- rendering/OrderIterator.cpp:
(WebCore::OrderIterator::next):
(WebCore::OrderIterator::reset):
- rendering/OrderIterator.h:
- 2:07 PM Changeset in webkit [199784] by
-
- 2 edits in trunk/Source/WebCore
Crash under needsAppleMailPaginationQuirk()
https://bugs.webkit.org/show_bug.cgi?id=156806
<rdar://problem/23323479>
Reviewed by Simon Fraser.
Add check for element()->hasID() before calling element()->idForStyleResolution()
so that we don't dereference a potentially null element()->elementData().
Also stop repeatedly atomizing "messageContentContainer" and leverage
the operator==(const AtomicString&, const char*) instead for performance.
- rendering/RenderBlockFlow.cpp:
(WebCore::needsAppleMailPaginationQuirk):
- 1:31 PM Changeset in webkit [199783] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
REGRESSION(r190289): Spin trying to view/sign in to hbogo.com
https://bugs.webkit.org/show_bug.cgi?id=156765
Reviewed by Saam Barati.
In the op_get_by_val case, we were holding the lock on a profiled CodeBlock
when we call into handleGetById(). Changed to drop the lock before calling
handleGetById().
The bug here was that the call to handleGetById() may end up calling in to
getPredictionWithoutOSRExit() for a tail call opcode. As part of that
processing, we walk back up the stack to find the effective caller and when
found, we lock the corresponding CodeBlock to get the predicition.
That CodeBLock may be the same one locked above. There is no need anyway
to hold the CodeBlock lock when calling handleGetById().
Added a new stress test.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- tests/stress/regress-156765.js: Added.
(realValue):
(object.get hello):
(ok):
- 1:21 PM Changeset in webkit [199782] by
-
- 3 edits in trunk/Source/WebCore
Attempt to fix non-INDEXED_DATABASE_IN_WORKERS builds after r199779
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setIndexedDBWorkersEnabled):
- testing/InternalSettings.h:
- 12:57 PM Changeset in webkit [199781] by
-
- 2 edits in trunk/Source/WebCore
Potential overflow in RenderLayer::hitTestList()
https://bugs.webkit.org/show_bug.cgi?id=156804
Reviewed by Simon Fraser.
Use size_t type instead of int to iterate over the Vector to make sure
we don't overflow. This is a speculative fix for <rdar://problem/23249479>.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestList):
- 12:13 PM MathML/Early_2016_Refactoring edited by
- (diff)
- 12:10 PM Changeset in webkit [199780] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unindent an unnecessary block in stringProtoFuncSplitFast().
https://bugs.webkit.org/show_bug.cgi?id=156802
Reviewed by Filip Pizlo.
In webkit.org/b/156013, I refactored stringProtoFuncSplit into
stringProtoFuncSplitFast. In that patch, I left an unnecessary block of code in
its original block (with FIXMEs) to keep the diff for that patch minimal. Now
that the patch for webkit.org/b/156013 has landed, I will unindent that block and
remove the FIXMEs.
- runtime/StringPrototype.cpp:
(JSC::stringProtoFuncSplitFast):
- 11:59 AM Changeset in webkit [199779] by
-
- 23 edits6 adds in trunk
Modern IDB (Workers): Enable INDEXED_DATABASE_IN_WORKERS compile time flag, but disabled in RuntimeEnabledFeatures.
https://bugs.webkit.org/show_bug.cgi?id=156782
Reviewed by Alex Christensen.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Test: storage/indexeddb/modern/workers-disabled.html
storage/indexeddb/modern/workers-enable.html
- Configurations/FeatureDefines.xcconfig:
ScriptExecutionContext shouldn't really be supplementable:
- dom/ScriptExecutionContext.h:
WorkerGlobalScope should be supplementable.
Also modernize this archaic header (pragma once, and re-indent):
- workers/WorkerGlobalScope.h:
Update for WorkerGlobalScope now being directly supplementable:
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
- Modules/notifications/WorkerGlobalScopeNotifications.cpp:
(WebCore::WorkerGlobalScopeNotifications::WorkerGlobalScopeNotifications):
(WebCore::WorkerGlobalScopeNotifications::from):
(WebCore::WorkerGlobalScopeNotifications::webkitNotifications):
- Modules/notifications/WorkerGlobalScopeNotifications.h:
Expose IndexedDBWorkers to RuntimeEnabledFeatures:
- bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
- bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setIndexedDBWorkersEnabled):
(WebCore::RuntimeEnabledFeatures::indexedDBWorkersEnabled):
Expose IndexedDBWorkers to InternalSettings:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setIndexedDBWorkersEnabled):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
Note: One test has some "FAIL" lines in the expected results, which is intentional.
As work on this progresses, those FAILs will become PASSes and the expectations will be updated.
- storage/indexeddb/modern/resources/workers-disabled.js: Added.
- storage/indexeddb/modern/resources/workers-enable.js: Added.
- storage/indexeddb/modern/workers-disabled-expected.txt: Added.
- storage/indexeddb/modern/workers-disabled.html: Added.
- storage/indexeddb/modern/workers-enable-expected.txt: Added.
- storage/indexeddb/modern/workers-enable.html: Added.
- 11:26 AM Changeset in webkit [199778] by
-
- 3 edits2 adds in trunk
[WK2][Mac][iOS] WebContent crash when using special file:// URI scheme @ WebKit::resolveSymlinksInPath(WTF::CString const&) + 159
https://bugs.webkit.org/show_bug.cgi?id=156747
<rdar://problem/24648176>
Reviewed by Alexey Proskuryakov.
Source/WebKit2:
FileSystemCF::fileSystemRepresentation return a null string when presented with a file URL that contains embedded nulls. When
this happens, SandboxExtension::createHandle attempts to pass a null string to 'resolveSymlinksInPath', which attemps to call
'strrchr' on the null pointer, causing a crash.
Test: fast/url/file-uri-with-embedded-null-no-crash.html
- Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::createHandle): If 'fileSystemRepresentation' is null, return early with an error.
LayoutTests:
- fast/url/file-uri-with-embedded-null-no-crash-expected.txt: Added.
- fast/url/file-uri-with-embedded-null-no-crash.html: Added.
- 11:01 AM Changeset in webkit [199777] by
-
- 4 edits2 adds in trunk
Hangable punctuation measurement using the wrong indices.
https://bugs.webkit.org/show_bug.cgi?id=155899
Reviewed by Simon Fraser.
Source/WebCore:
New tests in fast/text.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):
- rendering/RenderText.cpp:
(WebCore::RenderText::hangablePunctuationStartWidth):
(WebCore::RenderText::hangablePunctuationEndWidth):
(WebCore::RenderText::isHangableStopOrComma):
LayoutTests:
- fast/text/hanging-punctuation-variable-font-size-expected.html: Added.
- fast/text/hanging-punctuation-variable-font-size.html: Added.
- 10:40 AM Changeset in webkit [199776] by
-
- 11 edits in trunk
Drop [UsePointersEvenForNonNullableObjectArguments] from several Canvas interfaces
https://bugs.webkit.org/show_bug.cgi?id=156781
Reviewed by Darin Adler.
Source/WebCore:
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::fill):
(WebCore::CanvasRenderingContext2D::stroke):
(WebCore::CanvasRenderingContext2D::clip):
(WebCore::CanvasRenderingContext2D::isPointInPath):
(WebCore::CanvasRenderingContext2D::isPointInStroke):
(WebCore::size):
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::drawImageFromRect):
(WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
- html/canvas/CanvasRenderingContext2D.h:
- html/canvas/CanvasRenderingContext2D.idl:
- html/canvas/DOMPath.h:
- html/canvas/DOMPath.idl:
- html/canvas/WebGLDebugShaders.cpp:
(WebCore::WebGLDebugShaders::getTranslatedShaderSource):
- html/canvas/WebGLDebugShaders.h:
- html/canvas/WebGLDebugShaders.idl:
LayoutTests:
Update outdated test which expected a legacy TYPE_MISMATCH_ERR exception
to be thrown when passing null instead of the newer TypeError.
- canvas/philip/tests/2d.drawImage.null.html:
- 10:27 AM Changeset in webkit [199775] by
-
- 16 edits2 adds in trunk
Drop [UsePointersEvenForNonNullableObjectArguments] from WebAudio
https://bugs.webkit.org/show_bug.cgi?id=156777
Reviewed by Darin Adler.
Source/WebCore:
Drop [UsePointersEvenForNonNullableObjectArguments] from WebAudio and
modernize the interface a bit.
There is no major Web-exposed behavioral change except for
the exception type thrown when passing null (now always TypeError).
Tests were updated to add coverage for this.
- Modules/webaudio/AsyncAudioDecoder.cpp:
(WebCore::AsyncAudioDecoder::decodeAsync):
(WebCore::AsyncAudioDecoder::DecodingTask::DecodingTask):
(WebCore::AsyncAudioDecoder::DecodingTask::decode): Deleted.
- Modules/webaudio/AsyncAudioDecoder.h:
(WebCore::AsyncAudioDecoder::DecodingTask::audioData):
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::createBuffer):
(WebCore::AudioContext::decodeAudioData):
(WebCore::AudioContext::createBufferSource):
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::createMediaStreamDestination):
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createBiquadFilter):
(WebCore::AudioContext::createWaveShaper):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createConvolver):
(WebCore::AudioContext::createDynamicsCompressor):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):
(WebCore::AudioContext::createPeriodicWave):
(WebCore::AudioContext::derefFinishedSourceNodes):
(WebCore::AudioContext::refNode):
(WebCore::AudioContext::derefNode):
(WebCore::AudioContext::notifyNodeFinishedProcessing): Deleted.
(WebCore::AudioContext::derefUnfinishedSourceNodes): Deleted.
(WebCore::AudioContext::lock): Deleted.
- Modules/webaudio/AudioContext.h:
- Modules/webaudio/AudioContext.idl:
- Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::process):
- Modules/webaudio/MediaElementAudioSourceNode.h:
(WebCore::MediaElementAudioSourceNode::mediaElement):
- Modules/webaudio/OscillatorNode.idl:
LayoutTests:
Added test coverage for the type of the exception being thrown when
pasing null to various WebAudio API.
- webaudio/audiobuffer-expected.txt:
- webaudio/audiobuffer.html:
- webaudio/createMediaStreamSource-null-expected.txt: Added.
- webaudio/createMediaStreamSource-null.html: Added.
- webaudio/decode-audio-data-basic-expected.txt:
- webaudio/decode-audio-data-basic.html:
- webaudio/mediaelementaudiosourcenode-expected.txt:
- webaudio/mediaelementaudiosourcenode.html:
- 9:14 AM Changeset in webkit [199774] by
-
- 5 edits in trunk
Addressing additional review feedback for:
Modern IDB: Lots of IDB bindings cleanup (including making IDBVersionChangeEvent constructible).
https://bugs.webkit.org/show_bug.cgi?id=156760
Source/WebCore:
- Modules/indexeddb/IDBVersionChangeEvent.h:
LayoutTests:
- storage/indexeddb/modern/idbversionchangeevent-constructor-expected.txt:
- storage/indexeddb/modern/idbversionchangeevent-constructor.html:
- 8:43 AM Changeset in webkit [199773] by
-
- 2 edits in trunk/Source/WebCore
Use OpenType MATH fonts by default
https://bugs.webkit.org/show_bug.cgi?id=133603
Patch by Frederic Wang <fwang@igalia.com> on 2016-04-20
Reviewed by Alejandro G. Castro.
No new tests. This is already tested by pixel tests like roots.xhtml.
However, new math fonts are not used during test execution.
- css/mathml.css:
(math): We use only a list of known OpenType fonts with a MATH table but keep some pre-installed fallback fonts for OS X and iOS.
- 8:03 AM Changeset in webkit [199772] by
-
- 2 edits4 moves in trunk/Source/WebCore
[GTK] Move GTK+-independent platform code to platform/glib
https://bugs.webkit.org/show_bug.cgi?id=156787
Reviewed by Carlos Garcia Campos.
There is plenty of code in platform/gtk that is independent from the GTK+ library.
Move those files to platform/glib so that they can be reused by other GLib-based ports.
Also clean some style warnings in those files.
- PlatformGTK.cmake: Move the files.
- platform/glib/EventLoopGlib.cpp: Renamed from Source/WebCore/platform/gtk/EventLoopGtk.cpp.
(WebCore::EventLoop::cycle):
- platform/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/gtk/FileSystemGtk.cpp.
(WebCore::filenameToString):
(WebCore::unescapedFilename):
(WebCore::fileSystemRepresentation):
(WebCore::filenameForDisplay):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::getFileStat):
(WebCore::getFileSize):
(WebCore::getFileCreationTime):
(WebCore::getFileModificationTime):
(WebCore::getFileMetadata):
(WebCore::pathByAppendingComponent):
(WebCore::makeAllDirectories):
(WebCore::homeDirectoryPath):
(WebCore::pathGetFileName):
(WebCore::applicationDirectoryPath):
(WebCore::sharedResourcesPath):
(WebCore::getVolumeFreeSizeForPath):
(WebCore::directoryName):
(WebCore::listDirectory):
(WebCore::openTemporaryFile):
(WebCore::openFile):
(WebCore::closeFile):
(WebCore::seekFile):
(WebCore::writeToFile):
(WebCore::readFromFile):
(WebCore::unloadModule):
(WebCore::hardLinkOrCopyFile):
- platform/glib/GamepadsGlib.cpp: Renamed from Source/WebCore/platform/gtk/GamepadsGtk.cpp.
(WebCore::GamepadDeviceGlib::GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::~GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::readCallback):
(WebCore::GamepadsGlib::GamepadsGlib):
(WebCore::GamepadsGlib::~GamepadsGlib):
(WebCore::GamepadsGlib::registerDevice):
(WebCore::GamepadsGlib::unregisterDevice):
(WebCore::GamepadsGlib::updateGamepadList):
(WebCore::GamepadsGlib::onUEventCallback):
(WebCore::GamepadsGlib::isGamepadDevice):
(WebCore::sampleGamepads):
- platform/glib/SharedBufferGlib.cpp: Renamed from Source/WebCore/platform/gtk/SharedBufferGtk.cpp.
(WebCore::SharedBuffer::createFromReadingFile):
- 6:41 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 6:31 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 6:25 AM Changeset in webkit [199771] by
-
- 5 edits in trunk
Refactor RenderMathMLSpace to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=155168
Patch by Frederic Wang <fwang@igalia.com> on 2016-04-20
Reviewed by Martin Robinson.
Source/WebCore:
No new tests, already covered by existing tests. The behavior of mspace-prefered-width-expected is not specified by the MathML recommendation, we update that test to match our new behavior.
- rendering/mathml/RenderMathMLSpace.cpp: Implement layout functions without passing by flebox.
(WebCore::RenderMathMLSpace::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLSpace::layoutBlock): Implement this function.
(WebCore::RenderMathMLSpace::computeIntrinsicLogicalWidths): Deleted.
(WebCore::RenderMathMLSpace::updateLogicalWidth): Deleted.
(WebCore::RenderMathMLSpace::updateLogicalHeight): Deleted.
- rendering/mathml/RenderMathMLSpace.h: Update function declarations.
LayoutTests:
- mathml/presentation/mspace-prefered-width-expected.html: Update the expectation so that the logical width and preferred width are both equal to the one specified by the width attribute.
- 6:05 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 2:06 AM Changeset in webkit [199770] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Mark HLS tests release expectations as release only.
- platform/gtk/TestExpectations:
- 1:47 AM Changeset in webkit [199769] by
-
- 2 edits in trunk/Source/WebCore
[Cairo] Crash in GraphicsContext::drawFocusRing when painting is disabled
https://bugs.webkit.org/show_bug.cgi?id=156785
Reviewed by Žan Doberšek.
This happens for example when view state changes to focus and paint is called from
FrameView::updateControlTints() with a graphics context that doesn't have a platform context. Layout test
fast/images/image-map-outline-with-scale-transform.html sometimes crashes because of this.
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawFocusRing): Return early if painting is disabled.
- 1:44 AM Changeset in webkit [199768] by
-
- 5 edits in trunk/Source/JavaScriptCore
Remove unused m_writtenVariables from the parser and related bits
https://bugs.webkit.org/show_bug.cgi?id=156784
Reviewed by Yusuke Suzuki.
This isn't a octane/codeload speedup even though we're doing less work in
collectFreeVariables. But it's good to get rid of things that are not used.
- parser/Nodes.h:
(JSC::ScopeNode::usesEval):
(JSC::ScopeNode::usesArguments):
(JSC::ScopeNode::usesArrowFunction):
(JSC::ScopeNode::isStrictMode):
(JSC::ScopeNode::setUsesArguments):
(JSC::ScopeNode::usesThis):
(JSC::ScopeNode::modifiesParameter): Deleted.
(JSC::ScopeNode::modifiesArguments): Deleted.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseAssignmentExpression):
- parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Scope::hasDeclaredParameter):
(JSC::Scope::preventAllVariableDeclarations):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::mergeInnerArrowFunctionFeatures):
(JSC::Scope::getSloppyModeHoistedFunctions):
(JSC::Scope::getCapturedVars):
(JSC::Scope::setStrictMode):
(JSC::Scope::strictMode):
(JSC::Scope::fillParametersForSourceProviderCache):
(JSC::Scope::restoreFromSourceProviderCache):
(JSC::Parser::hasDeclaredParameter):
(JSC::Parser::exportName):
(JSC::Scope::declareWrite): Deleted.
(JSC::Parser::declareWrite): Deleted.
- parser/ParserModes.h:
- 1:33 AM Changeset in webkit [199767] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening. Follow up gardening for media test.
- platform/efl/TestExpectations: Unskip 3 media tests.
Apr 19, 2016:
- 11:58 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 11:38 PM Changeset in webkit [199766] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Build fix after r199738
- CMakeLists.txt:
- 11:26 PM Changeset in webkit [199765] by
-
- 2 edits in trunk/Tools
Unreviewed build fix after r199752.
- DumpRenderTree/win/FrameLoadDelegate.cpp:
(FrameLoadDelegate::didChangeIcons): Remove call to removed function.
- 11:02 PM Changeset in webkit [199764] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r198782): SHOULD NEVER BE REACHED failure in ImageSource::setData since r198782
https://bugs.webkit.org/show_bug.cgi?id=156690
Reviewed by Michael Catanzaro.
The assertion is wrong, because it assumes that ImageDecoder::create() always returns a valid pointer, which is
only true for the CG implementation. The non CG implementation can return nullptr if there isn't enough data to
figure out the image format or if the image format is not supported. This is causing several crashes in the
debug bots.
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setData): Remove the invalid ASSERT and return early if we fail to create the decoder.
(WebCore::ImageSource::ensureDecoderIsCreated): Deleted.
- platform/graphics/ImageSource.h:
- 10:49 PM Changeset in webkit [199763] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix cloop build after r199754.
- jsc.cpp:
(jscmain):
- 10:13 PM Changeset in webkit [199762] by
-
- 9 edits in trunk
iTunes crashing JavaScriptCore.dll
https://bugs.webkit.org/show_bug.cgi?id=156647
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
Given that there there are only 128 FLS indices compared to over a 1000 for TLS,
I eliminated the thread specific m_threadSpecificForThread and instead we look
for the current thread in m_registeredThreads list when we need it.
In most cases there will only be one thread.
Added THREAD_SPECIFIC_CALL to signature of ThreadSpecific remove callbacks
to set the calling convention correctly for Windows 32 bit.
- heap/MachineStackMarker.cpp:
(JSC::ActiveMachineThreadsManager::remove):
(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::machineThreadForCurrentThread):
(JSC::MachineThreads::removeThread):
- heap/MachineStackMarker.h:
Source/WTF:
If a thread was created without using the WTF thread apis and that thread uses
a JavaScript VM and that thread exits with the VM still around, JSC won't know
that the thread has exited. Currently, we use ThreadSpecificThreadExit() to
clean up any thread specific keys. Cleaning up these keys is how JSC is
notified of a thread exit. We only call ThreadSpecificThreadExit() from
wtfThreadEntryPoint() when the thread entry point function returns.
This mechanism was put in place for Windows because we layer the WTF::ThreadSpecific
functionality on top of TLS (Thread Local Storage), but TLS doesn't have
a thread exiting callback the way that pthread_create_key does.
The fix is to change from using TLS to using FLS (Fiber Local Storage). Although
Windows allows multiple fibers per thread, WebKit is not designed to work with a
multiple fibers per thread. When there is only one fiber per thread, FLS works just
like TLS, but it has the destroy callback.
I restructured the Windows version of WTF::ThreadSpecific to be almost the same
as the pthread version. Added THREAD_SPECIFIC_CALL to set the correct
calling convenction for Windows 32 bit.
- wtf/ThreadSpecific.h:
(WTF::threadSpecificKeyCreate):
(WTF::threadSpecificKeyDelete):
(WTF::threadSpecificSet):
(WTF::threadSpecificGet):
(WTF::ThreadSpecific<T>::ThreadSpecific):
(WTF::ThreadSpecific<T>::~ThreadSpecific):
(WTF::ThreadSpecific<T>::get):
(WTF::ThreadSpecific<T>::set):
(WTF::ThreadSpecific<T>::destroy):
Restructured to use FLS. Renamed TLS* to FLS*.
- wtf/ThreadSpecificWin.cpp:
(WTF::flsKeyCount):
(WTF::flsKeys):
Renamed from tlsKey*() to flsKey*().
(WTF::destructorsList): Deleted.
(WTF::destructorsMutex): Deleted.
(WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::setValue): Deleted.
(WTF::PlatformThreadSpecificKey::value): Deleted.
(WTF::PlatformThreadSpecificKey::callDestructor): Deleted.
(WTF::tlsKeyCount): Deleted.
(WTF::tlsKeys): Deleted.
(WTF::threadSpecificKeyCreate): Deleted.
(WTF::threadSpecificKeyDelete): Deleted.
(WTF::threadSpecificSet): Deleted.
(WTF::threadSpecificGet): Deleted.
(WTF::ThreadSpecificThreadExit): Deleted.
- wtf/ThreadingWin.cpp:
(WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit.
LayoutTests:
Disabled fast/workers/dedicated-worker-lifecycle.html as it creates
more workers that we have ThreadSpecific keys. We need at least one
key per JSC VM we create. I didn't want to weaken the test for other
platforms.
- platform/win/TestExpectations:
- 9:27 PM Changeset in webkit [199761] by
-
- 2 edits in trunk/Source/WTF
Add more locking algorithms to the LockSpeedTest.
Rubber stamped by Saam Barati.
- benchmarks/LockSpeedTest.cpp:
(main):
- 9:25 PM Changeset in webkit [199760] by
-
- 6 edits in trunk/Source/WTF
Clean up the ParkingLot uparking API a bit
https://bugs.webkit.org/show_bug.cgi?id=156746
Reviewed by Saam Barati and Geoffrey Garen.
Previously, unparkOne() would either return a boolean to tell you if there are any more threads on
the queue or it would pass your callback a pair of booleans - one to tell if a thread was unparked
and another to tell if there are any more threads. This was an annoying inconsistency. What if you
wanted to know if unparkOne() unparked a thread but you don't care to use callbacks?
This fixes unparkOne() to use a struct called UnparkResult for both of its variants. This makes the
code a bit cleaner.
- wtf/Atomics.h: Add some more atomic ops.
(WTF::Atomic::exchangeAndAdd):
(WTF::Atomic::exchange):
- wtf/Condition.h: Change calls to unparkOne().
(WTF::ConditionBase::notifyOne):
- wtf/Lock.cpp: Change calls to unparkOne().
(WTF::LockBase::unlockSlow):
- wtf/ParkingLot.cpp:
(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne):
- wtf/ParkingLot.h: Switch to using ScopedLambda and introduce UnparkResult.
- 9:14 PM Changeset in webkit [199759] by
-
- 7 edits in trunk/Source/bmalloc
bmalloc: fix up overflow checks
https://bugs.webkit.org/show_bug.cgi?id=156780
Reviewed by Mark Lam.
We used to try to avoid overflow in large object math by setting a very
high limit on the largest large object. But that's a bit error-prone
since the check is far away from the math that might overflow -- and
we were missing some cases.
This patch removes the limit and instead checks at each math site.
- bmalloc/Allocator.cpp:
(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocate):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase): Remove the limit. tryAllocateLarge
will check for overflow for us.
- bmalloc/Chunk.h: This ASSERT was just totally wrong.
- bmalloc/Heap.cpp:
(bmalloc::Heap::tryAllocateLarge): Check for overflow when adding.
- bmalloc/Sizes.h:
- bmalloc/VMAllocate.h:
(bmalloc::tryVMAllocate): Check for overflow when adding.
- bmalloc/VMHeap.cpp:
(bmalloc::VMHeap::tryAllocateLargeChunk): Check for overflow when adding.
- 9:03 PM Changeset in webkit [199758] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Small cleanup of RegisterAtOffsetList
https://bugs.webkit.org/show_bug.cgi?id=156779
Patch by Benjamin Poulain <bpoulain@webkit.org> on 2016-04-19
Reviewed by Mark Lam.
I was wondering why RegisterAtOffsetList always cache-miss.
It looks like it is doing more than it needs to.
We do not need to sort the values. The total order of
RegisterAtOffset is:
1) Order of Reg.
2) Order of offsets.
We already generate the list in order.
Also allocate the right array size ahead of filling the array.
- jit/RegisterAtOffsetList.cpp:
(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
(JSC::RegisterAtOffsetList::sort): Deleted.
- jit/RegisterAtOffsetList.h:
(JSC::RegisterAtOffsetList::append): Deleted.
- 8:52 PM Changeset in webkit [199757] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Picking Snapshot from navigation bar popup does to switch views
https://bugs.webkit.org/show_bug.cgi?id=156762
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-19
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineDataGridNodePathComponent.js:
(WebInspector.TimelineDataGridNodePathComponent.prototype.get previousSibling):
(WebInspector.TimelineDataGridNodePathComponent.prototype.get nextSibling):
Wrong represented object provided by TimelineDataGridNodePathComponent.
- 8:08 PM Changeset in webkit [199756] by
-
- 2 edits in trunk/Source/bmalloc
2016-04-19 Geoffrey Garen <ggaren@apple.com>
Unreviewed, try to fix an ASSERT seen on the bots.
- bmalloc/Heap.cpp: (bmalloc::Heap::tryAllocateLarge): This ASSERT is supposed to be about alignment, not size. Oops.
- 7:41 PM Changeset in webkit [199755] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add a couple UNLIKELY macros in parseMemberExpression
https://bugs.webkit.org/show_bug.cgi?id=156775
Reviewed by Filip Pizlo.
These UNLIKELY macros have to do with the base of the
member expression being 'super'. I think it's safe to
argue that this is truly UNLIKELY. I am seeing speedups
sometimes on Octane codeload. Usually around 0.5%. Sometimes 1%.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):
- 7:24 PM Changeset in webkit [199754] by
-
- 5 edits in trunk/Source/JavaScriptCore
allow jsc shell to dump sampling profiler data
https://bugs.webkit.org/show_bug.cgi?id=156725
Reviewed by Benjamin Poulain.
This patch adds a '--reportSamplingProfilerData' option to the
JSC shell which will enable the sampling profiler and dump
its data at the end of execution. The dump will include the
40 hottest functions and the 80 hottest bytecode locations.
If you're using this option to debug, it's easy to just hack
on the code to make it dump more or less information.
- jsc.cpp:
(CommandLine::parseArguments):
(jscmain):
- runtime/Options.h:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::stackTracesAsJSON):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):
- runtime/SamplingProfiler.h:
(JSC::SamplingProfiler::StackFrame::hasExpressionInfo):
(JSC::SamplingProfiler::StackFrame::hasBytecodeIndex):
(JSC::SamplingProfiler::StackFrame::hasCodeBlockHash):
(JSC::SamplingProfiler::setStopWatch):
- 6:36 PM Changeset in webkit [199753] by
-
- 3 edits in trunk/Source/WebKit2
Fix CMake build.
- CMakeLists.txt:
Don't compile a file that doesn't exist.
- PlatformMac.cmake:
Put the XPCServices in the right place.
- 6:33 PM Changeset in webkit [199752] by
-
- 9 edits2 moves2 deletes in trunk
Remove remaining bits of dynamic <link> rel='icon' loading
https://bugs.webkit.org/show_bug.cgi?id=156727
Reviewed by Darin Adler.
Source/WebCore:
Don't call 'shouldLoadLink' for 'icon' link types. It performs no
useful checks for 'icon' types, and emits the non-standard
'onbeforeload' event.
This work finishes up https://webkit.org/b/153151, where we removed
FrameLoaderClient::dispatchDidChangeIcons() and related code.
Test: webarchive/test-link-rel-subresource-beforeload.html
- loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLink): Remove unneeded call to 'shouldLoadLink'.
Tools:
Remove unused test infrastructure. This code never existed in WebKit2
testing since was only used on Windows.
- DumpRenderTree/TestRunner.cpp:
(dumpIconChangesCallback): Deleted.
- DumpRenderTree/TestRunner.h:
(TestRunner::dumpIconChanges): Deleted.
(TestRunner::setDumpIconChanges): Deleted.
LayoutTests:
Rename 'test-link-rel-icon-beforeload.html' to 'test-link-rel-subresource-beforeload.html'.
- fast/dom/icon-url-property-expected.txt: Removed.
- fast/dom/icon-url-property.html: Removed.
- platform/gtk/TestExpectations: Remove references to deleted tests.
- platform/ios-simulator/TestExpectations: Ditto.
- platform/wk2/TestExpectations: Ditto.
- webarchive/test-link-rel-icon-beforeload-expected.webarchive: Removed.
- webarchive/test-link-rel-icon-beforeload.html: Removed.
- webarchive/test-link-rel-subresource-beforeload-expected.webarchive: Copied from LayoutTests/webarchive/test-link-rel-icon-beforeload-expected.webarchive.
- webarchive/test-link-rel-subresource-beforeload.html: Copied from LayoutTests/webarchive/test-link-rel-icon-beforeload.html.
- 6:30 PM Changeset in webkit [199751] by
-
- 10 edits1 delete in trunk
AudioBufferSourceNode.buffer should be nullable
https://bugs.webkit.org/show_bug.cgi?id=156769
Reviewed by Darin Adler.
Source/WebCore:
AudioBufferSourceNode.buffer should be nullable as per the
specification:
https://webaudio.github.io/web-audio-api/#AudioBufferSourceNode
Our implementation was initially returning null when getting
AudioBufferSourceNode.buffer, which is correct. However, it would
throw a TypeError when trying to set the attribute to null. Our
implementation setter actually supported setting the buffer to
null but the custom bindings for the setter would not.
This patch does the following:
- Get rid of the custom bindings for the AudioBufferSourceNode.buffer setter. We can have the bindings generator generate the same code by using [StrictTypeChecking]. The custom bindinds were also throwing a TypeError if the input AudioBuffer had too many channels but this does not seem to be possible.
- Mark AudioBufferSourceNode.buffer as nullable in the IDL so that we no longer throw when the JS tries to assign null, but instead calls AudioBufferSourceNode::setBuffer(nullptr)
No new test, updated webaudio/audiobuffersource-channels.html
- CMakeLists.txt:
- Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::setBuffer):
- Modules/webaudio/AudioBufferSourceNode.h:
- Modules/webaudio/AudioBufferSourceNode.idl:
- Modules/webaudio/AudioContext.h:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSAudioBufferSourceNodeCustom.cpp: Removed.
LayoutTests:
Update existing layout test to check that:
- AudioBufferSourceNode.buffer is initially null
- AudioBufferSourceNode.buffer can be set to null
- We cannot create an AudioBuffer that has too many channels
- webaudio/audiobuffersource-channels-expected.txt:
- webaudio/audiobuffersource-channels.html:
- 6:19 PM Changeset in webkit [199750] by
-
- 20 edits2 adds in trunk
Modern IDB: Lots of IDB bindings cleanup (including making IDBVersionChangeEvent constructible).
https://bugs.webkit.org/show_bug.cgi?id=156760
Reviewed by Darin Adler (and looked over by Chris Dumez and Alex Christensen).
Source/WebCore:
Test: storage/indexeddb/modern/idbversionchangeevent-constructor.html
Add WorkerGlobalScopeConstructors to the xcodeproj:
- WebCore.xcodeproj/project.pbxproj:
Remove the completely irrelevant webkit* prefixed constructors from DOMWindow:
- page/DOMWindow.idl:
Remove the poor way most objects were exposed on the WorkerGlobalScope:
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
Expose most of the objects on the WorkerGlobalScope the correct way:
- Modules/indexeddb/IDBCursor.idl:
- Modules/indexeddb/IDBCursorWithValue.idl:
- Modules/indexeddb/IDBDatabase.idl:
- Modules/indexeddb/IDBFactory.idl:
- Modules/indexeddb/IDBIndex.idl:
- Modules/indexeddb/IDBKeyRange.idl:
- Modules/indexeddb/IDBObjectStore.idl:
- Modules/indexeddb/IDBOpenDBRequest.idl:
- Modules/indexeddb/IDBRequest.idl:
- Modules/indexeddb/IDBTransaction.idl:
Make IDBVersionChangeEvent constructible:
- Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
(WebCore::IDBVersionChangeEvent::newVersion): Deleted.
- Modules/indexeddb/IDBVersionChangeEvent.h:
- Modules/indexeddb/IDBVersionChangeEvent.idl:
- bindings/js/JSDictionary.h:
(WebCore::JSDictionary::convertValue): Add a templated form of convertValue that
handles Optional<>s.
LayoutTests:
- js/dom/global-constructors-attributes-idb-expected.txt: Updated for removed attributes.
- storage/indexeddb/modern/idbversionchangeevent-constructor-expected.txt: Added.
- storage/indexeddb/modern/idbversionchangeevent-constructor.html: Added.
- 6:05 PM Changeset in webkit [199749] by
-
- 2 edits in trunk/LayoutTests
[EFL] Unskip media tests since r199649
Unreviewed EFL gardening.
- platform/efl/TestExpectations: r199649 fixed media test crash as well.
- 5:02 PM Changeset in webkit [199748] by
-
- 27 edits18 adds in trunk
Re-landing: ES6: Implement RegExp.prototype[@@search].
https://bugs.webkit.org/show_bug.cgi?id=156331
Reviewed by Keith Miller.
Source/JavaScriptCore:
What changed?
- Implemented search builtin in RegExpPrototype.js. The native path is now used as a fast path.
- Added DFG support for an IsRegExpObjectIntrinsic (modelled after the IsJSArrayIntrinsic).
- Renamed @isRegExp to @isRegExpObject to match the new IsRegExpObjectIntrinsic.
- Change the esSpecIsRegExpObject() implementation to check if the object's JSType is RegExpObjectType instead of walking the classinfo chain.
- builtins/RegExpPrototype.js:
(search):
- builtins/StringPrototype.js:
(search):
- fixed some indentation.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIsArrayConstructor):
(JSC::DFG::SpeculativeJIT::compileIsRegExpObject):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileIsRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::compileTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::isExoticForTypeof):
(JSC::FTL::DFG::LowerDFGToB3::isRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::isType):
- runtime/Intrinsic.h:
- Added IsRegExpObjectIntrinsic.
- runtime/CommonIdentifiers.h:
- runtime/ECMAScriptSpecInternalFunctions.cpp:
(JSC::esSpecIsConstructor):
- Changed to use uncheckedArgument since this is only called from internal code.
(JSC::esSpecIsRegExpObject):
(JSC::esSpecIsRegExp): Deleted.
- runtime/ECMAScriptSpecInternalFunctions.h:
- Changed to check the object for a JSType of RegExpObjectType.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- Added split fast path.
- runtime/RegExpPrototype.cpp:
(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncSearchFast):
(JSC::regExpProtoFuncSearch): Deleted.
- runtime/RegExpPrototype.h:
- tests/es6.yaml:
- tests/stress/regexp-search.js:
- Rebased test.
LayoutTests:
- js/regress/regexp-prototype-search-observable-side-effects-expected.txt: Added.
- js/regress/regexp-prototype-search-observable-side-effects.html: Added.
- js/regress/regexp-prototype-search-observable-side-effects2-expected.txt: Added.
- js/regress/regexp-prototype-search-observable-side-effects2.html: Added.
- js/regress/script-tests/regexp-prototype-search-observable-side-effects.js: Added.
- js/regress/script-tests/regexp-prototype-search-observable-side-effects2.js: Added.
- js/regress/script-tests/string-prototype-search-observable-side-effects.js: Added.
- js/regress/script-tests/string-prototype-search-observable-side-effects2.js: Added.
- js/regress/script-tests/string-prototype-search-observable-side-effects3.js: Added.
- js/regress/script-tests/string-prototype-search-observable-side-effects4.js: Added.
- js/regress/string-prototype-search-observable-side-effects-expected.txt: Added.
- js/regress/string-prototype-search-observable-side-effects.html: Added.
- js/regress/string-prototype-search-observable-side-effects2-expected.txt: Added.
- js/regress/string-prototype-search-observable-side-effects2.html: Added.
- js/regress/string-prototype-search-observable-side-effects3-expected.txt: Added.
- js/regress/string-prototype-search-observable-side-effects3.html: Added.
- js/regress/string-prototype-search-observable-side-effects4-expected.txt: Added.
- js/regress/string-prototype-search-observable-side-effects4.html: Added.
- 4:41 PM Changeset in webkit [199747] by
-
- 19 edits in trunk/Source/WebInspectorUI
Web Inspector: DataGrid should be virtualized so it only renders visible rows
https://bugs.webkit.org/show_bug.cgi?id=156663
rdar://problem/25765256
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.set containerRegions):
Call updateLayoutIfNeeded since we don't use views here.
- UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Set inline and variableHeightRows to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.
- UserInterface/Views/DOMTreeDataGrid.js:
(WebInspector.DOMTreeDataGrid):
Set inline to true, remove direct classList add.
- UserInterface/Views/DataGrid.css:
(.data-grid td):
(.data-grid table.data):
(.data-grid:not(.variable-height-rows) table.data):
(.data-grid:not(.variable-height-rows) table.data.odd-first-zebra-stripe):
(.data-grid.variable-height-rows table.data tr:nth-child(odd)):
(.data-grid.variable-height-rows table.data tr:nth-child(even)):
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(odd)):
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(even)):
(.data-grid.variable-height-rows table.data tr.filler):
Updated styles to support variable height rows directly and flipping the order of the stripes
when the virtual table starts at an odd row.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid): Added rowHeight and rows.
(WebInspector.DataGrid.prototype.get inline): Added.
(WebInspector.DataGrid.prototype.set inline): Added.
(WebInspector.DataGrid.prototype.get variableHeightRows): Added.
(WebInspector.DataGrid.prototype.set variableHeightRows): Added.
(WebInspector.DataGrid.prototype.layout): Call _updateVisibleRows.
(WebInspector.DataGrid.prototype._noteRowsChanged): Added.
(WebInspector.DataGrid.prototype._updateVisibleRows): Added.
(WebInspector.DataGrid.prototype._sortNodesCallback): Update to not use the DOM.
(WebInspector.DataGridNode.prototype.set hasChildren): Call needsLayout.
(WebInspector.DataGridNode.prototype.collapse): Call needsLayout.
(WebInspector.DataGridNode.prototype.expand): Call needsLayout.
(WebInspector.DataGridNode.prototype._attach): Call _noteRowsChanged.
(WebInspector.DataGridNode.prototype._detach): Call _noteRowsChanged.
- UserInterface/Views/DatabaseUserQuerySuccessView.js:
(WebInspector.DatabaseUserQuerySuccessView):
Set inline to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.
- UserInterface/Views/DetailsSection.css:
(.details-section > .content .data-grid td.value-column):
(.details-section > .content .data-grid table.data): Deleted.
(.details-section > .content .data-grid tr:nth-child(even)): Deleted.
(.details-section > .content .data-grid tr:nth-child(odd)): Deleted.
Now handled by DataGrid.css directly.
- UserInterface/Views/DetailsSectionDataGridRow.js:
(WebInspector.DetailsSectionDataGridRow.prototype.set dataGrid):
Set inline and variableHeightRows to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.
- UserInterface/Views/HeapSnapshotInstancesContentView.css:
(.heap-snapshot > .data-grid tr:matches(.selected, :hover) td .go-to-arrow):
(.heap-snapshot .icon):
Remove margin-top to fit inside 20px row instead of 21px.
- UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
(.content-view.indexed-database-object-store > .data-grid table.data): Deleted.
(.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(even)): Deleted.
(.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(odd)): Deleted.
(.content-view.indexed-database-object-store > .data-grid table.data tr.filler): Deleted.
Now handled by DataGrid.css directly.
- UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
(WebInspector.IndexedDatabaseObjectStoreContentView):
Set variableHeightRows to true.
- UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
Set inline to true, remove direct classList add. Call updateLayoutIfNeeded since we don't use views here.
- UserInterface/Views/LogContentView.css:
(.console-item .data-grid table.data): Deleted.
(.console-item .data-grid table.data tr:nth-child(even)): Deleted.
Now handled by DataGrid.css directly.
- UserInterface/Views/NetworkGridContentView.css:
(.content-view.network-grid > .data-grid td): Deleted.
(.content-view.network-grid > .data-grid table.data): Deleted.
Now handled by DataGrid.css directly.
- UserInterface/Views/ProbeSetDataGrid.js:
(WebInspector.ProbeSetDataGrid):
Set inline to true, remove direct classList add.
- UserInterface/Views/ProfileView.css:
(.profile > .data-grid td .icon):
(.profile > .data-grid tr:matches(.selected, :hover) .go-to-arrow):
Remove margin-top to fit inside 20px row instead of 21px.
- UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid td): Deleted.
(.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid table.data): Deleted.
Now handled by DataGrid.css directly.
- UserInterface/Views/Variables.css:
(:root): Added zebra stripe colors.
- 4:36 PM Changeset in webkit [199746] by
-
- 20 edits1 add10 deletes in trunk/Source/bmalloc
bmalloc: Merge the large and xlarge allocators
https://bugs.webkit.org/show_bug.cgi?id=156734
Reviewed by Andreas Kling.
This give us better defense against worst case memory usage:
Baseline Patch Δ
Peak Memory:
nimlang 198,132kB 181,468kB 1.09x smaller
It also eliminates inline metadata for large objects, fixing the
regression introduced in r198675, and more:
run-malloc-benchmarks Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/
Baseline Patch Δ
Memory at End:
big 10,880kB 3,328kB 3.27x smaller
facebook 3,112kB 2,868kB 1.09x smaller
fragment --parallel 1,848kB 760kB 2.43x smaller
fragment_iterate --parallel 4,908kB 776kB 6.32x smaller
big --parallel 48,076kB 11,892kB 4.04x smaller
Overall memory use looks OK:
run-malloc-benchmarks --memory_warning Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/
Baseline Patch Δ
Memory at End:
<arithmetic mean> 13,992kB 13,987kB 1.0x smaller
Overall throughput looks OK:
run-malloc-benchmarks Baseline:~/OpenSource/WebKitBuildBaseline/Release/ Patch:~/OpenSource/WebKitBuild/Release/
Baseline Patch Δ
Execution Time:
<arithmetic mean> 103ms 104ms ! 1.01x slower
We're a bit slower on the "all-out large allocations on all cores"
benchmark, but I think that's an OK price to pay:
Baseline Patch Δ
Execution Time:
big --parallel 125ms 136ms ! 1.09x slower
This patch net removes 1.5k lines of code. It turns out that large
allocations are rare, and free memory fragments are also rare, so the
combination is super rare, and a simple O(n) algorithm that ensures good
memory behavior is the best option.
Fun fact: In practice, the odds that the old code would save memory
were *worse* than the odds that it would contain a bug that wasted
memory. :)
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/Allocator.cpp:
(bmalloc::Allocator::tryAllocate): largeMax is the new xLargeMax since
xLargeMax is gone now.
(bmalloc::Allocator::allocate): I moved the rounding code into allocateLarge,
so we don't have to do it here.
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase):
(bmalloc::Allocator::allocateXLarge): Deleted. No more XLarge case.
- bmalloc/Allocator.h:
- bmalloc/BeginTag.h: Removed.
- bmalloc/BoundaryTag.h: Removed.
- bmalloc/Chunk.h:
(bmalloc::ChunkHash::hash): Added a hash function. The best hash function
is a unique and monotonically increasing integer, and that's exactly what
we typically get from the high bits of a Chunk, since the OS allocates
Chunks at unique and increasing addresses.
(bmalloc::Chunk::boundaryTags): Deleted.
(bmalloc::Chunk::objectType): Deleted.
(bmalloc::Chunk::beginTag): Deleted.
(bmalloc::Chunk::endTag): Deleted.
- bmalloc/Deallocator.cpp:
(bmalloc::Deallocator::deallocateSlowCase): We no longer know for sure,
by looking at its bit pattern, whether a pointer is small or large.
Instead, any pointer with large alignment *might* be large, and when
we occasionally encounter such an object, we have to consult a hash
table in the Heap to find out for sure. This turns out to be just as
cheap in practice.
We don't deallocate large objects on the fast path anymore. We can't,
because large objects have out-of-line metadata now.
(bmalloc::Deallocator::deallocateXLarge): Deleted.
- bmalloc/Deallocator.h:
(bmalloc::Deallocator::deallocateFastCase): See deallocateSlowCase.
- bmalloc/EndTag.h: Removed.
- bmalloc/FreeList.cpp: Removed.
- bmalloc/FreeList.h: Removed.
- bmalloc/Heap.cpp:
(bmalloc::Heap::allocateSmallPage): Be sure to track each chunk in
the object type map, so we can distinguish small vs large objects.
(bmalloc::Heap::deallocateSmallLine): No need to check object type
because we know object type now by virtue of being on the small object
path.
(bmalloc::Heap::splitAndAllocate): Be sure to track each chunk in
the object type map, so we can distinguish small vs large objects. Large
objects can split across chunks, so we need to add each large object's
chunk as it is allocated.
(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::isLarge):
(bmalloc::Heap::largeSize):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge): Merged in existing XLarge logic for
large objects.
(bmalloc::Heap::scavengeXLargeObjects): Deleted.
(bmalloc::Heap::allocateXLarge): Deleted.
(bmalloc::Heap::tryAllocateXLarge): Deleted.
(bmalloc::Heap::xLargeSize): Deleted.
(bmalloc::Heap::shrinkXLarge): Deleted.
(bmalloc::Heap::deallocateXLarge): Deleted.
- bmalloc/Heap.h:
(bmalloc::Heap::LargeObjectHash::hash):
- bmalloc/LargeObject.h: Removed.
- bmalloc/Map.h: Added.
(bmalloc::Map::size):
(bmalloc::Map::capacity):
(bmalloc::Map::get):
(bmalloc::Map::set):
(bmalloc::Map::remove):
(bmalloc::Map::shouldGrow):
(bmalloc::Map::shouldShrink):
(bmalloc::Map::find):
(bmalloc::Hash>::rehash): Simple hash table.
- bmalloc/Object.h:
- bmalloc/ObjectType.cpp:
(bmalloc::objectType):
- bmalloc/ObjectType.h:
(bmalloc::mightBeLarge): See deallocateSlowCase.
(bmalloc::isXLarge): Deleted.
- bmalloc/SegregatedFreeList.cpp: Removed.
- bmalloc/SegregatedFreeList.h: Removed.
- bmalloc/Sizes.h: Upped smallMax to 64kB. Upping to 32kB is pretty
reasonable, since sizes between 16kB and 32kB share page sizes. I went
all the way up to 64kB because the GC uses 64kB blocks, and also just
for extra padding to ensure that large allocations are indeed rare.
- bmalloc/SortedVector.h: Removed.
- bmalloc/VMHeap.cpp:
(bmalloc::VMHeap::tryAllocateLargeChunk):
(bmalloc::VMHeap::allocateSmallChunk):
(bmalloc::VMHeap::VMHeap): Deleted.
(bmalloc::VMHeap::allocateChunk): Deleted.
- bmalloc/VMHeap.h:
(bmalloc::VMHeap::deallocateSmallPage):
(bmalloc::VMHeap::allocateLargeObject): Deleted.
(bmalloc::VMHeap::deallocateLargeObject): Deleted. Nixed all the boundary
tag logic since metadata is out of line now.
- bmalloc/VMState.h: Removed. Instead of an abstract state, we track
the precise amount of committed physical pages at the head of a VM
range. This allows us to merge aggressively without triggering an madvise
storm most of the time.
- bmalloc/Vector.h:
(bmalloc::Vector<T>::Vector):
(bmalloc::Vector<T>::insert):
(bmalloc::Vector<T>::remove):
(bmalloc::Vector<T>::resize): Filled out some missing helpers.
- bmalloc/XLargeMap.cpp:
(bmalloc::XLargeMap::remove):
(bmalloc::XLargeMap::add):
(bmalloc::XLargeMap::removePhysical):
(bmalloc::XLargeMap::takeFree): Deleted.
(bmalloc::XLargeMap::addFree): Deleted.
(bmalloc::XLargeMap::addAllocated): Deleted.
(bmalloc::XLargeMap::getAllocated): Deleted.
(bmalloc::XLargeMap::takeAllocated): Deleted.
(bmalloc::XLargeMap::shrinkToFit): Deleted.
(bmalloc::XLargeMap::takePhysical): Deleted.
(bmalloc::XLargeMap::addVirtual): Deleted.
- bmalloc/XLargeMap.h:
(bmalloc::XLargeMap::Allocation::operator<): Deleted. We don't track
object sizes anymore -- just free space. (The Heap tracks object sizes.)
We use plain old linear search for free space. (See intro.)
- bmalloc/XLargeRange.h:
(bmalloc::XLargeRange::physicalSize):
(bmalloc::XLargeRange::setPhysicalSize):
(bmalloc::merge):
(bmalloc::XLargeRange::split):
(bmalloc::XLargeRange::vmState): Deleted.
(bmalloc::XLargeRange::setVMState): Deleted. See VMState.h.
- 4:31 PM Changeset in webkit [199745] by
-
- 2 edits in trunk/Source/JavaScriptCore
Replace $vm.printValue() with $vm.value().
https://bugs.webkit.org/show_bug.cgi?id=156767
Reviewed by Saam Barati.
When debugging with $vm, this change allows us to do this:
$vm.print("myObj = " + $vm.value(myObj) + "\n");
... instead of having to do this:
$vm.print("myObj = ");
$vm.printValue(myObj);
$vm.print("\n");
- tools/JSDollarVMPrototype.cpp:
(JSC::JSDollarVMPrototype::printValue):
(JSC::functionValue):
(JSC::JSDollarVMPrototype::finishCreation):
(JSC::functionPrintValue): Deleted.
- 2:51 PM Changeset in webkit [199744] by
-
- 2 edits in trunk/LayoutTests
Rebase test after r199738
- fast/canvas/webgl/fragment-shader-assertion-expected.txt:
ANGLE gives us a more descriptive error now. No big deal.
This test was added to make sure it didn't crash in http://trac.webkit.org/changeset/199340
and it still does not crash.
- 2:45 PM Changeset in webkit [199743] by
-
- 5 edits in trunk/Source
Build fix after r199738
Source/ThirdParty/ANGLE:
- CMakeLists.txt:
Source/WebCore:
- platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- platform/graphics/win/GraphicsContext3DWin.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- 2:02 PM Changeset in webkit [199742] by
-
- 6 edits2 adds in trunk
ObjcInstance::stringValue should not call NSObject's description method
https://bugs.webkit.org/show_bug.cgi?id=156758
Reviewed by Geoffrey Garen.
Source/WebCore:
This patch makes it so that we no longer call NSObject's description method without first
swizzling the implementation for WebScriptObjects. We restore the incomming NSObject's
description method once we have finished generating the string.
Test: platform/mac/fast/objc/webScriptObject-does-not-call-description-on-nsobject.html
- bridge/objc/objc_instance.mm:
(swizzleNSObjectDescription):
(ObjcInstance::stringValue):
Tools:
Add new methods to ObjCController that expose two Types of WebScriptObjects. The first is
an NSObject and the second is an NSArray of NSObjects. These are used to test that we don't
call the NSObjects description method without first swizzling it.
- DumpRenderTree/mac/ObjCController.m:
(+[ObjCController isSelectorExcludedFromWebScript:]):
(+[ObjCController webScriptNameForSelector:]):
(-[ObjCController testArrayOfObjects]):
(-[ObjCController testObject]):
LayoutTests:
Test that we don't use the NSObject's description method when stringifying a WebScriptObject.
- platform/mac/fast/objc/webScriptObject-does-not-call-description-on-nsobject-expected.txt: Added.
- platform/mac/fast/objc/webScriptObject-does-not-call-description-on-nsobject.html: Added.
- platform/wk2/TestExpectations:
- 1:25 PM Changeset in webkit [199741] by
-
- 2 edits in trunk/Source/WebKit2
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Reviewed by Anders Carlsson.
Mark the new SPI as WK_MAC_TBA, WK_IOS_TBA.
- UIProcess/API/Cocoa/_WKExperimentalFeature.h:
- 1:20 PM Changeset in webkit [199740] by
-
- 2 edits in trunk/Source/WebKit2
Crash under WebKit::PluginView::pluginSnapshotTimerFired
https://bugs.webkit.org/show_bug.cgi?id=156754
<rdar://problem/22566764>
Reviewed by Beth Dakin.
Add null check for frame() before trying to access the frame settings,
similarly to what is done earlier in this function. This fixes a top
crasher.
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginSnapshotTimerFired):
- 12:57 PM Changeset in webkit [199739] by
-
- 1 edit1 add1 delete in trunk/Source/ThirdParty/ANGLE
Build fix.
- src/compiler/translator/Intermediate.h: Added.
(TIntermediate::TIntermediate):
- src/compiler/translator/intermediate.h: Removed.
Changed case of Intermediate.h file name for case sensitive file systems.
- 12:46 PM Changeset in webkit [199738] by
-
- 520 edits123 adds9 deletes in trunk
Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=156755
Reviewed by Dean Jackson.
Source/ThirdParty/ANGLE:
Huge list of changed files omitted.
Source/WebCore:
- CMakeLists.txt:
- platform/graphics/ANGLEWebKitBridge.h:
(WebCore::ANGLEWebKitBridge::getResources):
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
Continue to compile successfully with new ANGLE.
LayoutTests:
- webgl/1.0.2/conformance/glsl/reserved/webgl_preprocessor_reserved-expected.txt: Removed.
- webgl/1.0.2/conformance/glsl/reserved/webgl_preprocessor_reserved.html: Removed.
Removed invalid test based on https://github.com/KhronosGroup/WebGL/pull/1230
- 12:37 PM WebKitGTK/2.12.x edited by
- (diff)
- 12:35 PM Changeset in webkit [199737] by
-
- 2 edits in trunk/Source/WebKit2
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Post commit follow-up. Darin gave review comments that
I didn't address in my original commit - I was waiting
on some advice.
- UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::isEnabledForFeature): Change the macro
to generate a static list of function pointers, rather than
a lot of conditional statements.
(WebKit::WebPreferences::setEnabledForFeature): Ditto.
- 12:06 PM Changeset in webkit [199736] by
-
- 4 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/streams/readable-streams/general.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=155760
Reviewed by Alexey Proskuryakov.
LayoutTests/imported/w3c:
Flakiness was coming from a callback being called after a timeout.
Timeout was set so that a double promise resolution (promise resolved
in another promise resolution callback) is done before calling the callback.
On some slow bots, the timeout was not big enough.
- web-platform-tests/streams/readable-streams/general.js: Increased the callback delay.
LayoutTests:
- TestExpectations: removed flaky expectation.
- 11:39 AM Changeset in webkit [199735] by
-
- 43 edits in trunk/Source
Mark more classes as WTF_MAKE_FAST_ALLOCATED
https://bugs.webkit.org/show_bug.cgi?id=156732
Reviewed by Darin Adler.
Source/WebCore:
- css/CSSImageGeneratorValue.h:
- css/DocumentRuleSets.h:
- css/MediaQueryMatcher.h:
- css/RuleFeature.h:
- css/StyleResolver.h:
- dom/ActiveDOMCallbackMicrotask.h:
- dom/DocumentSharedObjectPool.h:
- dom/MutationObserver.cpp:
- dom/MutationObserverInterestGroup.h:
- dom/MutationObserverRegistration.h:
- dom/ScriptExecutionContext.cpp:
- dom/SlotAssignment.h:
- html/HTMLCollection.h:
- html/canvas/CanvasRenderingContext2D.cpp:
- html/parser/HTMLToken.h:
- html/parser/XSSAuditorDelegate.h:
- loader/FrameLoader.cpp:
- loader/SubframeLoader.h:
- page/AutoscrollController.h:
- page/csp/ContentSecurityPolicySource.h:
- platform/cf/RunLoopObserver.h:
- platform/graphics/FloatQuad.h:
- platform/graphics/FloatRoundedRect.h:
- platform/graphics/IntSize.h:
- platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
- platform/graphics/cg/ImageDecoderCG.h:
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/displaylists/DisplayList.h:
- platform/graphics/mac/ComplexTextController.h:
- platform/graphics/mac/FontCustomPlatformData.h:
- platform/mac/PowerObserverMac.h:
- platform/network/DataURLDecoder.cpp:
- platform/text/PlatformLocale.h:
- rendering/TextAutosizer.h:
- style/StyleUpdate.h:
- xml/XMLHttpRequestUpload.h:
Source/WebKit2:
- NetworkProcess/Downloads/Download.h:
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- Shared/API/Cocoa/RemoteObjectInvocation.h:
- 11:34 AM Changeset in webkit [199734] by
-
- 2 edits in trunk/Source/JavaScriptCore
Enable separated heap by default on ios
https://bugs.webkit.org/show_bug.cgi?id=156720
Reviewed by ggaren.
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
- 10:58 AM Changeset in webkit [199733] by
-
- 4 edits in trunk/Source/WebCore
Context menu items related to fullscreen should be specific to standard fullscreen
https://bugs.webkit.org/show_bug.cgi?id=156723
<rdar://problem/25452632>
Reviewed by Darin Adler.
Introduce HTMLMediaElement::isStandardFullscreen() that the HitTestResult code can use
when handling the validation and selection of fullscreen-related context menu items.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::isStandardFullscreen):
(WebCore::HTMLMediaElement::toggleStandardFullscreenState):
Renamed to make it clear that it's for toggling standard fullscreen. Call the new
HTMLMediaElement::isStandardFullscreen().
- html/HTMLMediaElement.h:
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::mediaIsInFullscreen):
Use HTMLMediaElement::isStandardFullscreen().
(WebCore::HitTestResult::toggleMediaFullscreenState):
Call the renamed HTMLMediaElement::toggleStandardFullscreenState().
- 10:46 AM Changeset in webkit [199732] by
-
- 2 edits in trunk/Source/WebKit2
Build fix.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
result is unused.
- 10:25 AM Changeset in webkit [199731] by
-
- 24 edits56 adds in trunk
Re-landing: ES6: Implement String.prototype.split and RegExp.prototype[@@split].
https://bugs.webkit.org/show_bug.cgi?id=156013
Reviewed by Keith Miller.
Source/JavaScriptCore:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/GlobalObject.js:
(speciesConstructor):
- builtins/PromisePrototype.js:
- refactored to use the @speciesConstructor internal function.
- builtins/RegExpPrototype.js:
(advanceStringIndex):
- refactored from @advanceStringIndexUnicode() to be match the spec. Benchmarks show that there's no advantage in doing the unicode check outside of the advanceStringIndexUnicode part. So, I simplified the code to match the spec (especially since @@split needs to call advanceStringIndex from more than 1 location).
(match):
- Removed an unnecessary call to @Object because it was already proven above.
- Changed to use advanceStringIndex instead of advanceStringIndexUnicode. Again, there's no perf regression for this.
(regExpExec):
(hasObservableSideEffectsForRegExpSplit):
(split):
(advanceStringIndexUnicode): Deleted.
- builtins/StringPrototype.js:
(split):
- Modified to use RegExp.prototype[@@split].
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup):
- bytecode/BytecodeIntrinsicRegistry.h:
- Added the @@split symbol.
- runtime/CommonIdentifiers.h:
- runtime/ECMAScriptSpecInternalFunctions.cpp: Added.
(JSC::esSpecIsConstructor):
(JSC::esSpecIsRegExp):
- runtime/ECMAScriptSpecInternalFunctions.h: Added.
- runtime/JSGlobalObject.cpp:
(JSC::getGetterById):
(JSC::JSGlobalObject::init):
- runtime/PropertyDescriptor.cpp:
(JSC::PropertyDescriptor::setDescriptor):
- Removed an assert that is no longer valid.
- runtime/RegExpObject.h:
- Made advanceStringUnicode() public so that it can be re-used by the regexp split fast path.
- runtime/RegExpPrototype.cpp:
(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncSearch):
(JSC::advanceStringIndex):
(JSC::regExpProtoFuncSplitFast):
- runtime/RegExpPrototype.h:
- runtime/StringObject.h:
(JSC::jsStringWithReuse):
(JSC::jsSubstring):
- Hoisted some utility functions from StringPrototype.cpp so that they can be reused by the regexp split fast path.
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
(JSC::builtinStringSubstrInternal):
(JSC::stringProtoFuncSubstring):
(JSC::stringIncludesImpl):
(JSC::stringProtoFuncIncludes):
(JSC::builtinStringIncludesInternal):
(JSC::jsStringWithReuse): Deleted.
(JSC::jsSubstring): Deleted.
(JSC::stringProtoFuncSplit): Deleted.
- runtime/StringPrototype.h:
- tests/es6.yaml:
LayoutTests:
- js/Object-getOwnPropertyNames-expected.txt:
- js/dom/string-prototype-properties-expected.txt:
- js/regress/regexp-prototype-split-observable-side-effects-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects2-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects2.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-flags-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-flags.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-global-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-global.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-ignoreCase.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-multiline.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-sticky.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects3-unicode.html: Added.
- js/regress/regexp-prototype-split-observable-side-effects4-expected.txt: Added.
- js/regress/regexp-prototype-split-observable-side-effects4.html: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects2.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects3-flags.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects3-global.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects3-ignoreCase.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects3-multiline.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects3-sticky.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects3-unicode.js: Added.
- js/regress/script-tests/regexp-prototype-split-observable-side-effects4.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects2.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects3-flags.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects3-global.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects3-ignoreCase.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects3-multiline.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects3-sticky.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects3-unicode.js: Added.
- js/regress/script-tests/string-prototype-split-observable-side-effects4.js: Added.
- js/regress/string-prototype-split-observable-side-effects-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects.html: Added.
- js/regress/string-prototype-split-observable-side-effects2-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects2.html: Added.
- js/regress/string-prototype-split-observable-side-effects3-flags-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects3-flags.html: Added.
- js/regress/string-prototype-split-observable-side-effects3-global-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects3-global.html: Added.
- js/regress/string-prototype-split-observable-side-effects3-ignoreCase-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects3-ignoreCase.html: Added.
- js/regress/string-prototype-split-observable-side-effects3-multiline-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects3-multiline.html: Added.
- js/regress/string-prototype-split-observable-side-effects3-sticky-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects3-sticky.html: Added.
- js/regress/string-prototype-split-observable-side-effects3-unicode-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects3-unicode.html: Added.
- js/regress/string-prototype-split-observable-side-effects4-expected.txt: Added.
- js/regress/string-prototype-split-observable-side-effects4.html: Added.
- js/script-tests/Object-getOwnPropertyNames.js:
- sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
- 9:58 AM Changeset in webkit [199730] by
-
- 14 edits20 adds5 deletes in trunk
Modern IDB: ObjectStore Blob Support.
https://bugs.webkit.org/show_bug.cgi?id=143193
Reviewed by Alex Christensen.
Source/WebCore:
Tests: imported/blink/storage/indexeddb/blob-basics-metadata.html
imported/blink/storage/indexeddb/blob-delete-objectstore-db.html
imported/blink/storage/indexeddb/blob-valid-after-deletion.html
imported/blink/storage/indexeddb/blob-valid-before-commit.html
imported/blink/storage/indexeddb/empty-blob-file.html
storage/indexeddb/modern/blob-simple.html
Most of the work has been done already.
Besides a handful of tweaks to that work, all this really does is remove the clause
that prevents blob URLs from going into the database.
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::putOrAdd): Only disallow blobs if private browsing is enabled
(Making that work is already covered by another bug)
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- Modules/indexeddb/IDBValue.cpp:
(WebCore::IDBValue::IDBValue):
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteUnusedBlobFileRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
- Modules/indexeddb/server/SQLiteIDBTransaction.cpp:
(WebCore::IDBServer::SQLiteIDBTransaction::deleteBlobFilesIfNecessary):
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
- platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::deleteDatabaseFile): Delete all database-related files
now that we use WAL mode.
Source/WebKit2:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Don't ASSERT that
this is the first we've heard of this path - The Connection now remembers all extensions.
(WebKit::NetworkConnectionToWebProcess::getBlobDataFileReferenceForPath): Don't take - Just get.
LayoutTests:
Note: The blob-basics-metadata.html test has some failure lines in it because we don't support the
File constructor.
Once support is added, that test will start failing with the correct results, at which point we
can update expectations.
- imported/blink/storage/indexeddb/blob-basics-metadata-expected.txt: Added.
- imported/blink/storage/indexeddb/blob-basics-metadata.html: Added.
- imported/blink/storage/indexeddb/blob-delete-objectstore-db-expected.txt: Added.
- imported/blink/storage/indexeddb/blob-delete-objectstore-db.html: Added.
- imported/blink/storage/indexeddb/blob-valid-after-deletion-expected.txt: Added.
- imported/blink/storage/indexeddb/blob-valid-after-deletion.html: Added.
- imported/blink/storage/indexeddb/blob-valid-before-commit-expected.txt: Added.
- imported/blink/storage/indexeddb/blob-valid-before-commit.html: Added.
- imported/blink/storage/indexeddb/empty-blob-file-expected.txt: Added.
- imported/blink/storage/indexeddb/empty-blob-file.html: Added.
- imported/blink/storage/indexeddb/resources/empty.txt: Added.
- imported/blink/storage/indexeddb/resources/shared.js: Added.
- imported/blink/storage/indexeddb/resources/test-data.html: Added.
- imported/blink/storage/indexeddb/resources/test-data.txt: Added.
- platform/wk2/TestExpectations:
- storage/indexeddb/modern/blob-simple-expected.txt: Added.
- storage/indexeddb/modern/blob-simple.html: Added.
- storage/indexeddb/modern/resources/blob-simple.js: Added.
- storage/indexeddb/noblobs-expected.txt: Removed.
- storage/indexeddb/noblobs-private-expected.txt: Removed.
- storage/indexeddb/noblobs-private.html: Removed.
- storage/indexeddb/noblobs.html: Removed.
- storage/indexeddb/resources/noblobs.js: Removed.
- 9:29 AM Changeset in webkit [199729] by
-
- 9 edits in trunk
Unreviewed, rolling out r199726.
https://bugs.webkit.org/show_bug.cgi?id=156748
WebKit tests crash on Windows 32 (Requested by msaboff on
#webkit).
Reverted changeset:
"iTunes crashing JavaScriptCore.dll"
https://bugs.webkit.org/show_bug.cgi?id=156647
http://trac.webkit.org/changeset/199726
- 8:48 AM Changeset in webkit [199728] by
-
- 7 edits2 adds in trunk
[css-grid] Use the margin box for non-auto minimum sizes
https://bugs.webkit.org/show_bug.cgi?id=156711
Reviewed by Darin Adler.
Source/WebCore:
When computing the min-size of items with non-auto minimum height/width we are incorrectly
returning the size of the border box, and thus incorrectly ignoring the margins of the item.
This is a follow up patch of r199153 were we added the missing border and paddings for
heights. Contrary to that, we were not including margins for both axis.
This CL requires 3 different interrelated changes:
- Add the margins to the min-size returned by minSizeForChild (might require a layout).
- Refactor and extract width computations from logicalHeightForChild(); not totally
mandatory but pretty logical and helpful.
- Use a new update function to isolate the computation of the override width.
Test: fast/css-grid-layout/min-width-margin-box.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeInlineDirectionMargins): Added const to a parameter.
- rendering/RenderBox.h:
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeTrackSizesForDirection): Initialize the sizingOperation.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths): Ditto.
(WebCore::RenderGrid::computeIntrinsicLogicalHeight): Ditto.
(WebCore::RenderGrid::logicalHeightForChild): Renamed from logicalContentHeightForChild as
it no longer returns the content size but the outer size.
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::updateOverrideContainingBlockContentLogicalWidthForChild): Extracted
from logicalHeightForChild().
(WebCore::RenderGrid::minContentForChild): Update override width if needed.
(WebCore::RenderGrid::maxContentForChild): Ditto.
(WebCore::RenderGrid::computeMarginLogicalSizeForChild): Generalized from
computeMarginLogicalHeightForChild(), it can now compute also margins for the inline
direction.
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching):
(WebCore::RenderGrid::logicalContentHeightForChild): Deleted.
(WebCore::RenderGrid::computeMarginLogicalHeightForChild): Deleted.
- rendering/RenderGrid.h:
LayoutTests:
- fast/css-grid-layout/min-height-border-box.html:
- fast/css-grid-layout/min-width-margin-box-expected.txt: Added.
- fast/css-grid-layout/min-width-margin-box.html: Added.
- 8:10 AM Changeset in webkit [199727] by
-
- 2 edits in trunk/Source/WebCore
[Cairo] GraphicsContext::drawFocusRing methods are not consistent to each other
https://bugs.webkit.org/show_bug.cgi?id=156742
Reviewed by Martin Robinson.
We are rendering the focus ring differently depending on whether a path is used or a vector of rectangles. This
is causing that some reftests fail because they assume we always render the focus ring the same way. For example
fast/images/image-map-outline-in-positioned-container.html, when rendering the test
GraphicsContext::drawFocusRing is called with a path, and when rendering the reference it's called with a vector
of rectangles, producing different results.
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawFocusRing): When receiving a vector of rectangles, build a Path from the given
rectangles and call drawFocusRing() with the built path to ensure consistency.
- 7:11 AM Changeset in webkit [199726] by
-
- 9 edits in trunk
iTunes crashing JavaScriptCore.dll
https://bugs.webkit.org/show_bug.cgi?id=156647
Reviewed by Saam Barati.
Source/JavaScriptCore:
Given that there there are only 128 FLS indices compared to over a 1000 for TLS, I
eliminated the thread specific m_threadSpecificForThread and instead we look for the
current thread in m_registeredThreads list when we need it. In most cases there
will only be one thread.
- heap/MachineStackMarker.cpp:
(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::machineThreadForCurrentThread):
(JSC::MachineThreads::removeThread):
- heap/MachineStackMarker.h:
Source/WTF:
If a thread was created without using the WTF thread apis and that thread uses
a JavaScript VM and that thread exits with the VM still around, JSC won't know
that the thread has exited. Currently, we use ThreadSpecificThreadExit() to
clean up any thread specific keys. Cleaning up these keys is how JSC is
notified of a thread exit. We only call ThreadSpecificThreadExit() from
wtfThreadEntryPoint() when the thread entry point function returns.
This mechanism was put in place for Windows because we layer the WTF::ThreadSpecific
functionality on top of TLS (Thread Local Storage), but TLS doesn't have
a thread exiting callback the way that pthread_create_key.
The fix is to change from using TLS to using FLS (Fiber Local Storage). Although
Windows allows multiple fibers per thread, WebKit is not designed to work with a
multiple fibers per thread. When there is only one fiber per thread, FLS works just
like TLS, but it has the destroy callback.
I restructured the Windows version of WTF::ThreadSpecific to be almost the same
as the pthread version.
- wtf/ThreadSpecific.h:
(WTF::threadSpecificKeyCreate):
(WTF::threadSpecificKeyDelete):
(WTF::threadSpecificSet):
(WTF::threadSpecificGet):
(WTF::ThreadSpecific<T>::ThreadSpecific):
(WTF::ThreadSpecific<T>::~ThreadSpecific):
(WTF::ThreadSpecific<T>::get):
(WTF::ThreadSpecific<T>::set):
(WTF::ThreadSpecific<T>::destroy):
Restructured to use FLS. Renamed TLS* to FLS*.
- wtf/ThreadSpecificWin.cpp:
(WTF::flsKeyCount):
(WTF::flsKeys):
Renamed from tlsKey*() to flsKey*().
(WTF::destructorsList): Deleted.
(WTF::destructorsMutex): Deleted.
(WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::setValue): Deleted.
(WTF::PlatformThreadSpecificKey::value): Deleted.
(WTF::PlatformThreadSpecificKey::callDestructor): Deleted.
(WTF::tlsKeyCount): Deleted.
(WTF::tlsKeys): Deleted.
(WTF::threadSpecificKeyCreate): Deleted.
(WTF::threadSpecificKeyDelete): Deleted.
(WTF::threadSpecificSet): Deleted.
(WTF::threadSpecificGet): Deleted.
(WTF::ThreadSpecificThreadExit): Deleted.
- wtf/ThreadingWin.cpp:
(WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit.
LayoutTests:
Disabled fast/workers/dedicated-worker-lifecycle.html as it creates
more workers that we have ThreadSpecific keys. We need at least one
key per JSC VM we create. I didn't want to weaken the test for other
platforms.
- platform/win/TestExpectations:
- 6:34 AM Changeset in webkit [199725] by
-
- 9 edits1 add in trunk
[INTL] Use @thisNumberValue instead of
instanceof @Number
https://bugs.webkit.org/show_bug.cgi?id=156680
Reviewed by Saam Barati.
Source/JavaScriptCore:
Use @thisNumberValue instead of
instanceof @Number
.
instanceof @Number
is not enough;
For example, given 2 realms, the object created in one realm does not
inherit the Number of another realm.
Another example is that the object which does not inherit Number.
`
var number = new Number(42);
number.proto = null;
`
- builtins/NumberPrototype.js:
(toLocaleString):
- runtime/CommonIdentifiers.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/NumberPrototype.cpp:
(JSC::numberProtoFuncValueOf):
- runtime/NumberPrototype.h:
- tests/stress/number-to-locale-string-should-accept-strange-number-objects.js: Added.
(shouldBe):
LayoutTests:
- js/number-toLocaleString-expected.txt:
- js/script-tests/number-toLocaleString.js:
- 6:29 AM Changeset in webkit [199724] by
-
- 29 edits1 delete in trunk
Unreviewed, rolling out r199712.
https://bugs.webkit.org/show_bug.cgi?id=156741
It caused a serious regression on 32 bit platform (Requested
by gskachkov on #webkit).
Reverted changeset:
"calling super() a second time in a constructor should throw"
https://bugs.webkit.org/show_bug.cgi?id=151113
http://trac.webkit.org/changeset/199712
Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-19
- 6:29 AM Changeset in webkit [199723] by
-
- 2 edits in trunk/Source/WebKit2
Try to fix iOS build.
- UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
- 6:03 AM Changeset in webkit [199722] by
-
- 7 edits1 copy in trunk/Source/WebCore
Move FontSelectorClient to a file of its own
https://bugs.webkit.org/show_bug.cgi?id=156738
Reviewed by Carlos Garcia Campos.
So modifying FontSelector does not trigger world rebuild via Document.h.
- WebCore.xcodeproj/project.pbxproj:
- css/CSSFontSelector.cpp:
- dom/Document.h:
- html/canvas/CanvasRenderingContext2D.h:
- platform/graphics/FontSelector.h:
(WebCore::FontSelectorClient::~FontSelectorClient): Deleted.
- platform/graphics/FontSelectorClient.h: Added.
(WebCore::FontSelectorClient::~FontSelectorClient):
- 5:34 AM Changeset in webkit [199721] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r199635) Web Inspector: Percentages in Heap Allocations view are too large
https://bugs.webkit.org/show_bug.cgi?id=156729
<rdar://problem/25796002>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-19
Reviewed by Timothy Hatcher.
- UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
Fix callsite that failed to be updated once percentageString
required 0..1 input instead of 0..100.
- 5:26 AM MathML/Fonts edited by
- (diff)
- 5:25 AM MathML/Fonts edited by
- (diff)
- 5:22 AM Changeset in webkit [199720] by
-
- 2 edits1 delete in trunk/LayoutTests
Unreviewed GTK+ gardening. Update CSP tests.
Rebaseline http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html after r197118 and
remove specific expectations of http/tests/security/contentSecurityPolicy/source-list-parsing-10.html.
- platform/gtk/http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics-expected.txt:
- platform/gtk/http/tests/security/contentSecurityPolicy/source-list-parsing-10-expected.txt: Removed.
- 5:15 AM MathML/Fonts edited by
- (diff)
- 5:10 AM MathML/Fonts edited by
- (diff)
- 4:55 AM MathML/Fonts edited by
- (diff)
- 4:54 AM MathML/Fonts edited by
- (diff)
- 4:35 AM Changeset in webkit [199719] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline fast/events/updateLayoutForHitTest.html after r195263.
- platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
- 4:21 AM WebKitGTK/2.12.x edited by
- (diff)
- 4:16 AM MathML/Fonts edited by
- (diff)
- 4:10 AM Changeset in webkit [199718] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline fast/transforms/bounding-rect-zoom.html after r197450.
- platform/gtk/fast/transforms/bounding-rect-zoom-expected.txt:
- 3:59 AM Changeset in webkit [199717] by
-
- 6 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline tests after r199659.
We are now using the theme colors for the menu lists text.
- platform/gtk/fast/forms/basic-selects-expected.txt:
- platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
- platform/gtk/fast/forms/menulist-style-color-expected.txt:
- platform/gtk/fast/forms/select-baseline-expected.txt:
- platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
- 3:32 AM Changeset in webkit [199716] by
-
- 6 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline tests after r199034.
- platform/gtk/fast/block/float/016-expected.txt:
- platform/gtk/fast/css/bidi-override-in-anonymous-block-expected.txt:
- platform/gtk/media/video-zoom-controls-expected.txt:
- platform/gtk/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
- platform/gtk/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
- 3:28 AM MathML edited by
- (diff)
- 3:23 AM MathML/Fonts created by
- 2:50 AM Changeset in webkit [199715] by
-
- 5 edits1 add in trunk
[GTK] accessibility/gtk/entry-and-password.html is failing since r194847
https://bugs.webkit.org/show_bug.cgi?id=153062
Reviewed by Carlos Garcia Campos.
Source/WebCore:
The changes in r194847 include using WebCore's rendering for the CapsLock indicator.
As a side effect, password inputs gained a TextControlInnerTextElement child from
the Shadow DOM. If we include that child in the accessibility tree, the child will
emit focus and text notifications that suggest the user is no longer in the control.
This can be especially problematic for screen reader users with key echo enabled
when typing in a password input. To fix this, prune TextControlInnerTextElement
children from the accessibility tree for ATK.
No new tests as existing coverage caught this regression. Also modified the
auto-fill-crash.html test whose expectations include the children count for
a text input.
- accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
LayoutTests:
The auto-fill-crash.html test has expectations which include the children
count for the text input. These expectations were incorrect for ATK where
accessible text inputs lack accessible text children.
- accessibility/auto-fill-crash.html: Modified to take platform into account.
- platform/gtk/TestExpectations: Unskipped entry-and-password.html.
- platform/gtk/accessibility/auto-fill-crash-expected.txt: Added.
- 2:22 AM Changeset in webkit [199714] by
-
- 3 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline tests after r190840.
- platform/gtk/fast/html/details-remove-summary-1-and-click-expected.txt:
- platform/gtk/fast/html/details-remove-summary-4-and-click-expected.txt:
- 2:16 AM Changeset in webkit [199713] by
-
- 5 edits1 delete in trunk/Source/WTF
[GTK] Use Generic WorkQueue instead of WorkQueueGLib
https://bugs.webkit.org/show_bug.cgi?id=156721
Reviewed by Benjamin Poulain.
WorkQueueGLib includes platform-dependent part only for WorkQueue::dispatchAfter.
However, its code is related to RunLoopGLib rather than WorkQueueGLib.
In this patch, we move the code from WorkQueueGLib to RunLoopGLib, drop WorkQueueGLib
and use WorkQueueGeneric.
- wtf/PlatformGTK.cmake:
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/glib/RunLoopGLib.cpp:
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::DispatchAfterContext::dispatch):
(WTF::RunLoop::dispatchAfter):
- wtf/glib/WorkQueueGLib.cpp: Removed.
(WTF::WorkQueue::platformInitialize): Deleted.
(WTF::WorkQueue::platformInvalidate): Deleted.
(WTF::WorkQueue::dispatch): Deleted.
(WTF::DispatchAfterContext::DispatchAfterContext): Deleted.
(WTF::DispatchAfterContext::~DispatchAfterContext): Deleted.
(WTF::DispatchAfterContext::dispatch): Deleted.
(WTF::WorkQueue::dispatchAfter): Deleted.
- 1:47 AM Changeset in webkit [199712] by
-
- 29 edits1 add in trunk
calling super() a second time in a constructor should throw
https://bugs.webkit.org/show_bug.cgi?id=151113
Reviewed by Saam Barati and Keith Miller.
Source/JavaScriptCore:
Currently, our implementation checks if 'super()' was called in a constructor more
than once and raises a RuntimeError before the second call. According to the spec
we need to raise an error just after the second super() is finished and before
the new 'this' is assigned https://esdiscuss.org/topic/duplicate-super-call-behaviour.
To implement this behavior this patch adds a new op code, op_is_empty, that is used
to check if 'this' is empty.
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitIsEmpty):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::FunctionCallValueNode::emitBytecode):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsEmpty):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_is_empty):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_is_empty):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- tests/stress/class-syntax-double-constructor.js: Added.
LayoutTests:
- js/class-syntax-super-expected.txt:
- js/script-tests/class-syntax-super.js:
- 12:21 AM Changeset in webkit [199711] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, rolling out r199658.
https://bugs.webkit.org/show_bug.cgi?id=156736
It broke all EFL layout tests (Requested by KaL on #webkit).
Reverted changeset:
"[UNIX] Initialize WebKit before the platform initializations"
https://bugs.webkit.org/show_bug.cgi?id=156622
http://trac.webkit.org/changeset/199658
Apr 18, 2016:
- 11:54 PM Changeset in webkit [199710] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Fix some overhead affecting small codegen
https://bugs.webkit.org/show_bug.cgi?id=156728
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-18
Reviewed by Filip Pizlo.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
(JSC::AbstractMacroAssembler::random):
cryptographicallyRandomNumber() is very costly.
We only need it in lowering some very particular cases
of non-trusted immediates. No inline cache needs that.
- assembler/LinkBuffer.h:
(JSC::LinkBuffer::link):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::addSlowCase):
Do not copy the JumpList to access its elements.
- 11:33 PM Changeset in webkit [199709] by
-
- 2 edits in trunk/Source/WebKit2
Build fix after r199700
- PlatformMac.cmake:
- 11:02 PM Changeset in webkit [199708] by
-
- 23 edits in trunk/Source
Modern IDB (Blob support): When reading Blobs from the database, grant the Networking process sandbox access to the files.
https://bugs.webkit.org/show_bug.cgi?id=156640
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (No change in behavior, as blobs in IDB are not yet enabled,
but when they are enabled testing will cover this).
- Modules/indexeddb/shared/IDBResultData.h: Export some stuff
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked): Account for
BlobRegistry change described below.
- platform/network/BlobRegistry.h: Change registerBlobURLOptionallyFileBacked to take a BlobDataFileReference instead of a raw path, to allow WK2 to include a sandbox extension.
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerBlobURL): Account for BlobRegistry change described above.
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked): Use the passed in
BlobDataFileHandle, and also register the BlobResourceHandle constructor.
- platform/network/BlobRegistryImpl.h:
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles): Utility function to ask the UI process for
SandboxExtensions for a list of files.
(WebKit::DatabaseProcess::didGetSandboxExtensionsForBlobFiles): Take the SandboxExtensions from the UI process
and pass them along to the completion handler.
- DatabaseProcess/DatabaseProcess.h:
- DatabaseProcess/DatabaseProcess.messages.in:
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didGetRecord): If the value returned from the database doesn't have Blob files,
pass the result directly on to WebCore. If it does, ask the UI process for SandboxExtensions first.
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked): Grab the BlobDataFileReference from the
NetworkConnectionToWebProcess to pass along to the BlobRegistry.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Add this message
so the WebProcess can preflight the creation of some blob URLs by passing along the SandboxExtensions for their files.
(WebKit::NetworkConnectionToWebProcess::takeBlobDataFileReferenceForPath):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::getSandboxExtensionsForBlobFiles): Create SandboxExtensions for the passed in files and
return them to the DatabaseProcess.
- UIProcess/Databases/DatabaseProcessProxy.h:
- UIProcess/Databases/DatabaseProcessProxy.messages.in:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::didGetRecordWithSandboxExtensions): New form of "didGetRecord" that handles passing
the SandboxExtensions to the Networking process before they are needed.
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
- WebProcess/FileAPI/BlobRegistryProxy.h:
- 10:08 PM Changeset in webkit [199707] by
-
- 2 edits in trunk/Source/WebCore
Fix iOS build after r199701
- platform/ios/WebAVPlayerController.mm:
- 10:05 PM Changeset in webkit [199706] by
-
- 2 edits in trunk/Source/WebCore
Updated binding test result to reflect the change to not use Deprecated::ScriptValue.
- bindings/scripts/test/JS/JSTestObj.cpp: Regenerated with new script.
- 9:05 PM Changeset in webkit [199705] by
-
- 2 edits in trunk/Tools
Fixed building with old Xcode.
- TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm:
(TEST):
- 7:58 PM Changeset in webkit [199704] by
-
- 10 edits in trunk/Source/WebCore
Remove all use of Deprecated::ScriptValue in generated bindings
https://bugs.webkit.org/show_bug.cgi?id=156706
Reviewed by Brady Eidson.
- Modules/indexeddb/IDBCursor.idl: Removed unneeded [ImplementationReturnType=JSValue].
- Modules/indexeddb/IDBCursorWithValue.idl: Ditto.
- Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::lowerValue): Deleted.
(WebCore::IDBKeyRange::upperValue): Deleted.
(WebCore::IDBKeyRange::only): Changed to take ExecState since the old code just used
the ScriptExecutionContext to get back to the (potentially wrong) ExecState. Also kept
one overload that takes ScriptExecutionContext because I could not change all callers.
(WebCore::IDBKeyRange::lowerBound): Ditto.
(WebCore::IDBKeyRange::upperBound): Ditto.
(WebCore::IDBKeyRange::bound): Ditto.
- Modules/indexeddb/IDBKeyRange.h: Updated for above.
- Modules/indexeddb/IDBKeyRange.idl: Use [ImplementationReturnType=IDBKey].
Use ScriptState instead of ScriptExecutionContext.
- Modules/streams/ReadableStreamSource.h: Take JSValue instead of Deprecated::ScriptValue
for the ignored argument to the cancel function.
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::toJS): Renamed idbKeyToJSValue to this, the traditional name used in the
bindings generator for all these functions. Also changed to take references.
(WebCore::injectIDBKeyIntoScriptValue): Updated to call with the new name and types.
(WebCore::idbKeyDataToScriptValue): Ditto.
- bindings/js/IDBBindingUtilities.h: Added declaration of toJS for IDBKey.
- bindings/scripts/CodeGeneratorJS.pm: Use JSC::JSValue instead of Deprecated::ScriptValue
for the "any" type.
(JSValueToNative): Just return the value with no transformation when type is "any".
(NativeToJSValue): Changed default behavior for "any" to just pass the value as is with
no transfomration. Removed unused ImplementationReturnType case for inside Document.
Removed JSValue case since it's the default now. Added IDBKey case that matches the
IDBKeyPath case (still wondering if we can do those without an attribute). Removed bogus
second check for type "any".
- 7:33 PM Changeset in webkit [199703] by
-
- 14 edits in trunk
[GTK] Possible off-by-one in hyphenation code
https://bugs.webkit.org/show_bug.cgi?id=156661
Patch by Martin Robinson <mrobinson@igalia.com> on 2016-04-18
Reviewed by Michael Catanzaro.
Source/WebCore:
No new tests. This is covered by older tests.
- platform/text/hyphen/HyphenationLibHyphen.cpp:
(WebCore::lastHyphenLocation): Fix an off by one error in hyphen location.
LayoutTests:
- platform/gtk/TestExpectations: Unskip a test that is now passing.
- platform/gtk/fast/text/hyphenate-character-expected.png:
- platform/gtk/fast/text/hyphenate-character-expected.txt:
- platform/gtk/fast/text/hyphenate-first-word-expected.png:
- platform/gtk/fast/text/hyphenate-first-word-expected.txt:
- platform/gtk/fast/text/hyphenate-limit-before-after-expected.png:
- platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
- platform/gtk/fast/text/hyphenate-limit-lines-expected.png:
- platform/gtk/fast/text/hyphenate-limit-lines-expected.txt:
- platform/gtk/fast/text/hyphenate-locale-expected.png:
- platform/gtk/fast/text/hyphenate-locale-expected.txt:
- 7:18 PM Changeset in webkit [199702] by
-
- 3 edits in trunk/Source/WebKit2
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Trying to fix GTK and EFL builds. I forgot to add files
to CMake.
- CMakeLists.txt:
- PlatformMac.cmake:
- 6:52 PM Changeset in webkit [199701] by
-
- 7 edits in trunk/Source/WebCore
[OSX] AVKit is not available on all systems
https://bugs.webkit.org/show_bug.cgi?id=156724
<rdar://problem/25501587>
Reviewed by Dean Jackson.
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm: Add _OPTIONAL to all AVKit softlink macros.
- platform/ios/WebAVPlayerController.mm: Ditto.
- platform/ios/WebPlaybackSessionInterfaceAVKit.mm: Ditto.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Ditto.
- platform/mac/WebPlaybackSessionInterfaceMac.mm: Ditto.
- platform/mac/WebVideoFullscreenInterfaceMac.mm: Ditto.
- 6:46 PM Changeset in webkit [199700] by
-
- 17 edits5 copies in trunk
New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>
Reviewed by Darin Adler.
Source/WebKit2:
Add a new type of Preference for experimental features so that we
can dynamically toggle them from a WebKit2 host. These are special
keys that are tied to runtime flags. The host process can ask WebKit
for the list of keys, each with a small description, in order to
display UI.
- Add HumanReadableName and HumanReadableDescription parameters to our macros, which are used when building a ExperimentalFeature. These are both empty strings for the existing preferences. At some point we should probably move all this to code generation rather than macros, so that we don't have to carry around unused parameters.
- I've included two sample experimental features: WebGL2 and ShadowDOM. They are not actually hooked up to the runtime settings yet, but its pretty clear how that will happen. Note that these are new preferences that have an "Experimental" prefix. This is so toggling an experimental feature to off won't cause the feature to not work once it becomes stable enough to enable by default. In other words, when it moves out of the experimental stage, the experimental feature flag will be removed, and you'll no longer check for values with that key.
- The ExperimentalFeature object is what the host process will read in order to show some UI. It contains the human readable info, as well as the actual key that can be used to query and toggle the experimental feature.
- Shared/API/APIObject.h: Add the ExperimentalFeature.
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject): Exposes a wrapper around a _WKExperimentalFeature ObjC type.
- Shared/WebPreferencesDefinitions.h: Change all the existing macros to take the new
parameters, and add the initial experimental keys.
- Shared/WebPreferencesKeys.cpp: Add new parameters to existing macros.
- Shared/WebPreferencesKeys.h: Ditto.
- Shared/WebPreferencesStore.cpp: Ditto.
(WebKit::defaults):
- UIProcess/API/APIExperimentalFeature.cpp: The API side of the ExperimentalFeature.
(API::ExperimentalFeature::create):
(API::ExperimentalFeature::ExperimentalFeature):
(API::ExperimentalFeature::~ExperimentalFeature):
- UIProcess/API/APIExperimentalFeature.h:
- UIProcess/API/Cocoa/WKPreferences.mm: The actual implementation of the SPI.
(+[WKPreferences _experimentalFeatures]): Create and return a list of feature descriptors.
(-[WKPreferences _isEnabledForFeature:]): Get the value.
(-[WKPreferences _setEnabled:forFeature:]): Set the value.
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/API/Cocoa/_WKExperimentalFeature.h: The ObjC version.
- UIProcess/API/Cocoa/_WKExperimentalFeature.mm:
(-[_WKExperimentalFeature dealloc]):
(-[_WKExperimentalFeature description]):
(-[_WKExperimentalFeature name]):
(-[_WKExperimentalFeature key]):
(-[_WKExperimentalFeature details]):
(-[_WKExperimentalFeature _apiObject]):
- UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h: Implementation of the wrapper.
(WebKit::wrapper):
- UIProcess/WebPreferences.cpp: The C++ implementation that provides the data for the ObjC API.
(WebKit::globalExperimentalFeatures):
(WebKit::WebPreferences::ExperimentalFeatures):
(WebKit::WebPreferences::isEnabledForFeature):
(WebKit::WebPreferences::setEnabledForFeature):
- UIProcess/WebPreferences.h:
- UIProcess/mac/WebPreferencesMac.mm: Update some macros.
(WebKit::WebPreferences::platformInitializeStore):
- WebProcess/WebPage/WebPage.cpp: Ditto
(WebKit::WebPage::updatePreferences):
- WebKit2.xcodeproj/project.pbxproj: Add the new files.
Tools:
Test the experimental features SPI on WKPreferences.
- TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm:
- 6:38 PM Changeset in webkit [199699] by
-
- 33 edits in trunk/Source/JavaScriptCore
implement dynamic scope accesses in the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=156567
Reviewed by Geoffrey Garen.
This patch adds dynamic scope operations to the DFG/FTL.
This patch adds three new DFG nodes: ResolveScope, PutDynamicVar and GetDynamicVar.
When we encounter a Dynamic/UnresolvedProperty/UnresolvedPropertyWithVarInjectionChecks
resolve type, we will compile dynamic scope resolution nodes. When we encounter
a resolve type that needs var injection checks and the var injection
watchpoint has already been fired, we will compile dynamic scope resolution
nodes.
This patch also adds a new value to the InitializationMode enum: ConstInitialization.
There was a subtle bug where we used to never compile the var injection variant of the
resolve type for an eval that injected a var where there was also a global lexical variable with the same name.
For example, the store compiled in this eval("var foo = 20;") wouldn't be compiled
with var injection checks if there was global let/const variable named "foo".
So there was the potential for the injected var to store to the GlobalLexicalObject.
I found this bug because my initial implementation in the DFG/FTL ran into it.
The reason this bug existed is because when we compile a const initialization,
we never need a var injections check. The const initialization always
knows where to store its value. This same logic leaked into the above eval's
"var foo = 20" store. This new enum value allows us to distinguish const
initialization stores from non-const initialization stores.
(I also changed InitializationMode to be an enum class instead of an enum).
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::initializeVariable):
(JSC::BytecodeGenerator::emitInstanceOf):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::pushScopedControlFlowContext):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):
- bytecompiler/NodesCodegen.cpp:
(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::initializationModeForAssignmentContext):
(JSC::AssignResolveNode::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
(JSC::BindingNode::bindValue):
(JSC::AssignmentElementNode::bindValue):
(JSC::RestParameterNode::emit):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::noticeArgumentsUse):
(JSC::DFG::ByteCodeParser::promoteToConstant):
(JSC::DFG::ByteCodeParser::needsDynamicLookup):
(JSC::DFG::ByteCodeParser::planLoad):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::identifierNumber):
(JSC::DFG::Node::hasGetPutInfo):
(JSC::DFG::Node::getPutInfo):
(JSC::DFG::Node::hasAccessorAttributes):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePutGetterSetterById):
(JSC::DFG::SpeculativeJIT::compileResolveScope):
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/GetPutInfo.h:
(JSC::resolveModeName):
(JSC::initializationModeName):
(JSC::isInitialization):
(JSC::makeType):
(JSC::GetPutInfo::GetPutInfo):
- runtime/JSScope.cpp:
(JSC::abstractAccess):
- 5:25 PM Changeset in webkit [199698] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test fix after r199696.
- inspector/console/x-frame-options-message-expected.txt: Rebaseline.):
- 5:21 PM Changeset in webkit [199697] by
-
- 4 edits in trunk
WebKit should adopt journal_mode=wal for all SQLite databases.
https://bugs.webkit.org/show_bug.cgi?id=133496
Reviewed by Brady Eidson.
Enabling sqlite3 WAL mode on iOS causes a test failure, but appears just be something that should fail still failing, only in a different way.
Enabling & marking test as failing for now. Tracking test failure here:
Source/WebCore:
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):
- enable on iOS.
LayoutTests:
- platform/ios-simulator/TestExpectations:
- storage/websql/alter-to-info-table.html [ Failure ]
- 4:07 PM Changeset in webkit [199696] by
-
- 8 edits in trunk
Source/WebCore:
Remove support for X-Frame-Options in<meta>
https://bugs.webkit.org/show_bug.cgi?id=156625
<rdar://problem/25748714>
Rubberstamped by Darin Adler.
- dom/Document.cpp:
(WebCore::Document::processHttpEquiv): Revise messaging based on Darin's comments.
LayoutTests:
Crash in ElementDescendantIterator::operator--() when calling m_ancestorSiblingStack.last()
https://bugs.webkit.org/show_bug.cgi?id=156715
<rdar://problem/25750864>
Patch by Chris Dumez <Chris Dumez> on 2016-04-18
Reviewed by Antti Koivisto.
Add regression test that reproduced the crash.
- fast/dom/collection-backward-traversal-crash-expected.txt: Added.
- fast/dom/collection-backward-traversal-crash.html: Added.
- 4:00 PM Changeset in webkit [199695] by
-
- 12 edits1 add in trunk/Source/WebKit2
Swipe view gesture should be reversed in right-to-left contexts
https://bugs.webkit.org/show_bug.cgi?id=156714
Reviewed by Anders Carlsson.
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/PageClient.h:
- UIProcess/UserInterfaceLayoutDirection.h: Added.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
Plumb RTL-ness through to WebPageProxy.
We look at the WK(Web)View's UI layout direction.
For other platforms, we just assume LTR.
- UIProcess/mac/ViewGestureController.h:
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
Decide which way to swipe (and which way to look for back-forward items)
based on the WebPageProxy's reported RTLness.
(WebKit::ViewGestureController::isPhysicallySwipingLeft):
"Back" means "swiping left" in LTR and "swiping right" in RTL.
(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::handleSwipeGesture):
Make things that were equating "back" with "left" instead check isPhysicallySwipingLeft.
- 3:59 PM Changeset in webkit [199694] by
-
- 12 edits3 copies5 adds1 delete in trunk
[JSCOnly] Implement RunLoop and remove glib dependency
https://bugs.webkit.org/show_bug.cgi?id=155706
Reviewed by Michael Catanzaro.
.:
- Source/cmake/OptionsJSCOnly.cmake:
Source/WTF:
Add missing RunLoop and WorkQueue platform code for JSCOnly port.
The implementation does not use platform specific things. Instead, we
implement them on WTF framework; using condition variables to construct
the run loop and timers.
Since the fallback is implemented, it is not necessary for JSCOnly port
to depend on GLib's RunLoop abstraction. So this patch removes its
dependency. As a result, now, JSCOnly port removes dependencies except for the system ICU.
We clean up event loop ifdefs by introducing USE_XXX_EVENT_LOOP flags.
USE(XXX_EVENT_LOOP) is exclusive to each other. So from now, we do not need to take care
of the order of if-defs for the event loops. (For example, USE(GLIB) should have lead before
OS(DARWIN) in WorkQueue.h for WebKitGTK on Darwin.)
EVENT_LOOP determination is done in Platform.h. This follows the style of WTF PLATFORM.
- wtf/Platform.h:
- wtf/PlatformJSCOnly.cmake:
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/generic/MainThreadGeneric.cpp: Renamed from Source/WTF/wtf/none/MainThreadNone.cpp.
(WTF::initializeMainThreadPlatform):
(WTF::scheduleDispatchFunctionsOnMainThread):
- wtf/generic/RunLoopGeneric.cpp: Added.
(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::TimerBase::ScheduledTask::fired):
(WTF::RunLoop::TimerBase::ScheduledTask::scheduledTimePoint):
(WTF::RunLoop::TimerBase::ScheduledTask::updateReadyTime):
(WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()):
(WTF::RunLoop::TimerBase::ScheduledTask::isActive):
(WTF::RunLoop::TimerBase::ScheduledTask::deactivate):
(WTF::RunLoop::RunLoop):
(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::populateTasks):
(WTF::RunLoop::runImpl):
(WTF::RunLoop::run):
(WTF::RunLoop::iterate):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::schedule):
(WTF::RunLoop::scheduleAndWakeUp):
(WTF::RunLoop::dispatchAfter):
(WTF::RunLoop::TimerBase::TimerBase):
(WTF::RunLoop::TimerBase::~TimerBase):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive):
- wtf/generic/WorkQueueGeneric.cpp: Added.
(WorkQueue::platformInitialize):
(WorkQueue::platformInvalidate):
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):
- wtf/none/MainThreadNone.cpp:
(WTF::initializeMainThreadPlatform): Deleted.
(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.
- wtf/none/RunLoopNone.cpp:
(WTF::RunLoop::RunLoop): Deleted.
(WTF::RunLoop::~RunLoop): Deleted.
(WTF::RunLoop::run): Deleted.
(WTF::RunLoop::stop): Deleted.
(WTF::RunLoop::wakeUp): Deleted.
(WTF::RunLoop::TimerBase::TimerBase): Deleted.
(WTF::RunLoop::TimerBase::~TimerBase): Deleted.
(WTF::RunLoop::TimerBase::start): Deleted.
(WTF::RunLoop::TimerBase::stop): Deleted.
(WTF::RunLoop::TimerBase::isActive): Deleted.
- wtf/none/WorkQueueNone.cpp:
(WorkQueue::platformInitialize): Deleted.
(WorkQueue::platformInvalidate): Deleted.
(WorkQueue::dispatch): Deleted.
(WorkQueue::dispatchAfter): Deleted.
Tools:
Add TestWTF to JSCOnly port to test WorkQueue and RunLoop.
Platform specific ones locate under jsconly directory since
it is notgeneric
(Since it includes the GLIB event loop case).
- CMakeLists.txt:
- TestWebKitAPI/PlatformJSCOnly.cmake: Added.
- TestWebKitAPI/PlatformUtilities.h:
- TestWebKitAPI/Tests/WTF/RunLoop.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/config.h:
- TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp: Renamed from Source/WTF/wtf/none/RunLoopNone.cpp.
(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::sleep):
- TestWebKitAPI/jsconly/main.cpp: Renamed from Source/WTF/wtf/none/WorkQueueNone.cpp.
(main):
- 3:36 PM Changeset in webkit [199693] by
-
- 3 edits2 adds in trunk
Crash in ElementDescendantIterator::operator--() when calling m_ancestorSiblingStack.last()
https://bugs.webkit.org/show_bug.cgi?id=156715
<rdar://problem/25750864>
Reviewed by Antti Koivisto.
Source/WebCore:
Fix correctness of ElementDescendantIterator::operator--(). The last element
in the m_ancestorSiblingStack stack is nullptr. However, if our parent does
not have a sibling, m_current->nextSibling() == m_ancestorSiblingStack.last()
would be true and we would end up removing the nullptr element from
m_ancestorSiblingStack. We would crash on a follow-up call to operator--()
because m_ancestorSiblingStack.last() would do an out-of-bound access, given
that m_ancestorSiblingStack is empty.
Test: fast/dom/collection-backward-traversal-crash.html
- dom/ElementDescendantIterator.h:
(WebCore::ElementDescendantIterator::operator--):
LayoutTests:
Add regression test that reproduced the crash.
- fast/dom/collection-backward-traversal-crash-expected.txt: Added.
- fast/dom/collection-backward-traversal-crash.html: Added.
- 3:29 PM Changeset in webkit [199692] by
-
- 8 edits in trunk/Source
Fix build with newer versions of clang.
rdar://problem/25749769
Source/WebCore:
Forward declare performClose:.
- platform/mac/WebCoreFullScreenWindow.mm:
Source/WebKit/mac:
- WebCoreSupport/WebContextMenuClient.mm:
- WebView/WebHTMLView.mm:
Forward declare some AppKit IPI.
Source/WebKit2:
- UIProcess/Cocoa/WebViewImpl.mm:
- UIProcess/mac/WebPageProxyMac.mm:
Forward declare some AppKit IPI.
- 3:28 PM Changeset in webkit [199691] by
-
- 17 edits in trunk/Source
Source/WebCore:
Declare a virtual function in PluginStrategy to be implemented by subclasses.
https://bugs.webkit.org/show_bug.cgi?id=156540
Patch by Tina Liu <iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.
- plugins/PluginStrategy.h:
Source/WebKit/mac:
Overrode a virtual function of WebCore::PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=156540
Patch by Tina Liu <iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.
- WebCoreSupport/WebPlatformStrategies.h:
- WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy):
Source/WebKit2:
Implement functions to set plug-in load policies for private browsing mode
https://bugs.webkit.org/show_bug.cgi?id=156540
Patch by Tina Liu <iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.
This patch implements API and wrappers for clients to set policies to use when using
private browsing. WebPlatformStrategies would return which policies to use depending
on whether the page is in private browsing mode.
- Shared/WebProcessCreationParameters.h:
Add a hash map for plug-in load policies for private browsing.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
- UIProcess/API/C/mac/WKContextPrivateMac.h:
- UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextSetPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper.
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
Set the WebProcessCreationParameters's pluginLoadClientPoliciesForPrivateBrowsing.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForBrowsingMode):
A helper function that sets plug-in policies to the corresponding instance variable:
m_pluginLoadClientPolicies for general browsing and m_pluginLoadClientPoliciesForPrivateBrowsing
for private browsing. The logic is extracted from the original setPluginLoadClientPolicy.
While we are here, get rid of the .contains() lookup as .get() will just return a
constructed object if the key is not found.
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
Switch to use the helper function to set policies.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy):
Ditto. Also send a message to the WebProcess for setting policies for private browsing.
(WebKit::WebProcessPool::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.
- WebProcess/WebCoreSupport/WebPlatformStrategies.h:
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForBrowsingMode):
Ditto as WebProcessPool::setPluginLoadClientPolicyForBrowsingMode.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
Switch to use setPluginLoadClientPolicyForBrowsingMode to set policies.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy):
Use setPluginLoadClientPolicyForBrowsingMode to set policies for private browsing.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
Add an argument for private browsing. Read from the corresponding ivar.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
Ditto.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
Renamed this function as pluginLoadClientPolicyForHostForBrowsingMode.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForBrowsingMode):
Ditto.
(WebKit::WebPlatformStrategies::populatePluginCache):
Get the plug-in load policies for a specific host based on the page's session status. If the page
is using ephemeral session, use the private browsing policies.
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Switch to call the helper function setPluginLoadClientPolicyFromCreationParameters.
(WebKit::WebProcess::setPluginLoadClientPolicies):
Logic moved from initializeWebProcess. Call PluginStrategy::setPluginLoadClientPolicy or
PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy depending on the input argument.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper to call PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy.
- WebProcess/WebProcess.messages.in:
Declare an entry for setPrivateBrowsingPluginLoadClientPolicy.
- 3:09 PM Changeset in webkit [199690] by
-
- 2 edits in trunk/Source/JavaScriptCore
Disable AVX.
Rubber stampted by Benjamin Poulain.
AVX is silly. If you use it and some of your other code isn't careful with float register bits, you
will run 10x slower. We could fix the underlying issue, but it's better to stay away from this odd
instruction subset.
This fixes a massive regression on some real code.
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::supportsAVX):
(JSC::MacroAssemblerX86Common::updateEax1EcxFlags):
- 2:53 PM Changeset in webkit [199689] by
-
- 3 edits in trunk
Unreviewed revert accidental ChangeLog modifications.
- 2:50 PM Changeset in webkit [199688] by
-
- 3 edits in trunk
Web Inspector: sourceMappingURL not used when sourceURL is set
https://bugs.webkit.org/show_bug.cgi?id=156021
<rdar://problem/25438417>
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
Clean up Debugger.sourceParsed to separately include:
- url ("resource URL", "source url" in JSC APIs)
- sourceURL - # sourceURL directive
By always having the resource URL the Web Inspector frontend
can better match this Script to a Resource of the same URL,
and decide to use the sourceURL if it is available when
appropriate.
- inspector/protocol/Debugger.json:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::didParseSource):
Send the new sourceParsed parameters.
Source/WebInspectorUI:
Previously Debugger.sourceParsed only providing the sourceURL, and
wiping out the resourceURL, meant that a Script from a Resource that
set a sourceURL directive would fail to be associated with its Resource.
This would result in duplicated tree elements in the Resources Sidebar,
one for the Resource, and one for the Script. With the Script getting
ultimately getting the SourceMap resources. However, since the frontend
prefers Resources over Scripts when possible, an error that generated
from the script would point to a location in the Resource, not following
source maps.
By always providing the resource URL in Debugger.sourceParsed, a Script
can better be associated with its Resource. The result is now a single
shared tree element in the Resources Sidebar, and the Resource getting
the SourceMap resources. Now the script error goes through the Resource
to its SourceMap resources as we would expect.
- UserInterface/Protocol/DebuggerObserver.js:
(WebInspector.DebuggerObserver):
(WebInspector.DebuggerObserver.prototype.scriptParsed):
We now have to handle two different signatures of scriptParsed. One
for legacy, and one for non-legacy. Cache that value early on, since
scriptParsed happens a lot.
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Agent.prototype.hasEventParameter):
Runtime check a protocol event to see if it has a parameter. This
is used to check if Debugger.sourceParsed is legacy or not based
on if it has the legacy "hasSourceURL" parameter.
- UserInterface/Models/Script.js:
(WebInspector.Script):
(WebInspector.Script.prototype.get sourceURL):
Treat sourceURL and url separately.
(WebInspector.Script.prototype.get displayName):
Handle both the url and sourceURL in displayName.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.scriptDidParse):
- UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Update code that checks the sourceURL to explicitly use sourceURL.
- UserInterface/Controllers/SourceMapManager.js:
(WebInspector.SourceMapManager.prototype.downloadSourceMap):
For legacy backends, or in case we get a resource that has an incomplete
baseURL, attempt to get an absolute URL based on the main resource.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addScript):
- UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Ignore scripts without a url or sourceURL.
LayoutTests:
- inspector/debugger/scriptParsed.html:
- inspector/debugger/search-scripts.html:
- inspector/debugger/setBreakpointByUrl-sourceURL.html:
- inspector/debugger/sourceURLs.html:
Update tests that need to handle sourceURL separately.
- inspector/model/resources/relationship-named.js: Added.
- inspector/model/resources/relationship-normal.js: Added.
- inspector/model/script-resource-relationship-expected.txt: Added.
- inspector/model/script-resource-relationship.html: Added.
Tests for Script and Resource relationships.
- 1:50 PM Changeset in webkit [199687] by
-
- 2 edits in trunk/Source/WebCore
[iOS] don't toggle playback when media engine rate changes
https://bugs.webkit.org/show_bug.cgi?id=156705
<rdar://problem/25779175>
Reviewed by Jer Noble.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::rateChanged): Don't send the play/pause command
unless the player item state is >= MediaPlayerAVPlayerItemStatusPlaybackBufferFull and
the rate change is unexpected.
- 1:33 PM Changeset in webkit [199686] by
-
- 10 edits in trunk/Source/JavaScriptCore
ToThis should have a fast path based on type info flags
https://bugs.webkit.org/show_bug.cgi?id=156712
Reviewed by Geoffrey Garen.
Prior to this change, if we couldn't nail down the type of ToThis to something easy, we'd emit code
that would take slow path if the argument was not a final object. We'd end up taking that slow path
a lot.
This adds a type info flag for ToThis having non-obvious behavior and changes the DFG and FTL paths
to test this flag. This is a sub-1% speed-up on SunSpider and Octane.
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::create):
- runtime/JSLexicalEnvironment.h:
(JSC::JSLexicalEnvironment::create):
- runtime/JSString.h:
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::overridesGetOwnPropertySlot):
(JSC::TypeInfo::interceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero):
(JSC::TypeInfo::structureIsImmortal):
(JSC::TypeInfo::overridesToThis):
(JSC::TypeInfo::overridesGetPropertyNames):
(JSC::TypeInfo::prohibitsPropertyCaching):
(JSC::TypeInfo::getOwnPropertySlotIsImpure):
- runtime/StrictEvalActivation.h:
(JSC::StrictEvalActivation::create):
- runtime/Symbol.h:
- 1:28 PM Changeset in webkit [199685] by
-
- 2 edits in trunk/Source/JavaScriptCore
Check to see how the perf bots react to megamorphic load being disabled.
Rubber stamped by Chris Dumez.
- runtime/Options.h:
- 1:26 PM Changeset in webkit [199684] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix iOS9 build after r199682.
- platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
- 1:02 PM Changeset in webkit [199683] by
-
- 21 edits in trunk/Source/JavaScriptCore
We should support delete in the DFG
https://bugs.webkit.org/show_bug.cgi?id=156607
Reviewed by Benjamin Poulain.
This patch adds support for the delete in the DFG as it appears that
some major frameworks use the operation in particularly hot functions.
As a result, even if the function rarely ever calls delete we would never
tier up to the DFG. This patch also changes operationDeleteById to take a
UniquedStringImpl and return a size_t.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasIdentifier):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDeleteById):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::callOperation):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_del_by_id):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_del_by_id):
- 11:49 AM Changeset in webkit [199682] by
-
- 10 edits in trunk/Source
[WK2][iOS] Only adjust network responses' MIME type for QuickLook in the context of a main resource load
https://bugs.webkit.org/show_bug.cgi?id=156639
<rdar://problem/25765848>
Reviewed by Alex Christensen.
Source/WebCore:
Only adjust network responses' MIME type for QuickLook in the context of a main
resource load since we can only preview main resources with QuickLook. This
avoids doing unnecessary work during page load. Also, this makes it a lot less
likely to dlopen() the QuickLook library during page load since we now only
adjust MIME type for QuickLook for main resources, and main resources usually
have the well-known 'text/html' MIME type for which we know we will not use
QuickLook.
After this change, we no longer need to dlopen() the QuickLook library in the
NetworkProcess in the context of the PLT. We would previously dlopen() the
library during the first page load, thus significantly slowing it down. As a
result, we see a ~22% speed up in the PLT's first page load and a 0.9-1% overall
PLT progression.
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
Pass flag to adjustMIMETypeIfNecessary() indicated if this is a main resource load.
- platform/network/ios/WebCoreURLResponseIOS.mm:
(WebCore::adjustMIMETypeIfNecessary):
Only adjust the MIME type for QuickLook if the isMainResourceLoad parameter is true.
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Only adjust the MIME type for QuickLook if the isMainResourceLoad parameter is true.
- platform/network/mac/WebCoreURLResponse.h:
- platform/network/mac/WebCoreURLResponse.mm:
(WebCore::adjustMIMETypeIfNecessary):
Source/WebKit2:
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::firstRequest):
Add getter to return the first request.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Pass flag to adjustMIMETypeIfNecessary() indicated if this is a main resource load.
- 11:41 AM Changeset in webkit [199681] by
-
- 2 edits in trunk/Tools
Update Animometer plan.
https://bugs.webkit.org/show_bug.cgi?id=156652
Reviewed by Darin Adler.
- Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to r199616.
- 10:46 AM Changeset in webkit [199680] by
-
- 2 edits in trunk/Source/WebKit2
Web Automation: provide detailed error messages when an automation command fails
https://bugs.webkit.org/show_bug.cgi?id=156635
<rdar://problem/25754051>
Reviewed by Darin Adler and Timothy Hatcher.
Fill in lots of missing error message details now that the remote end knows
how to parse error strings with predefined error names and details.
- UIProcess/Automation/WebAutomationSession.cpp:
Rearrange the error message macros. Make it possible to pass a ErrorMessage
variable or just the enum value name and get out an encoded error message
that optionally includes a free-form details string. The predefined error
name and the details string are joined together with a semicolon.
(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::closeBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::goBackInBrowsingContext):
(WebKit::WebAutomationSession::goForwardInBrowsingContext):
(WebKit::WebAutomationSession::reloadBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::didEvaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::didResolveChildFrame):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::didResolveParentFrame):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::didComputeElementLayout):
(WebKit::WebAutomationSession::isShowingJavaScriptDialog):
(WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::didGetCookiesForFrame):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::didDeleteCookie):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::takeScreenshot):
(WebKit::WebAutomationSession::didTakeScreenshot):
Audit almost all early exits and provide a relevant error details message
if the error itself is ambiguous. Make sure to format asynchronous errors.
- 10:30 AM Changeset in webkit [199679] by
-
- 4 edits in trunk/Source/WTF
Unreviewed, rolling out r199621.
https://bugs.webkit.org/show_bug.cgi?id=156708
made windows tests crash (Requested by alexchristensen on
#webkit).
Reverted changeset:
"iTunes crashing JavaScriptCore.dll"
https://bugs.webkit.org/show_bug.cgi?id=156647
http://trac.webkit.org/changeset/199621
- 10:28 AM Changeset in webkit [199678] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: NavigationSidebarPanel does a lot of style recalc and layout on busy sites
https://bugs.webkit.org/show_bug.cgi?id=156704
rdar://problem/25778744
Reviewed by Brian Burg.
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
Use _updateContentOverflowShadowVisibilitySoon in more places so the style recalc
and layout changes are coalesced into one action after all rapid fire calls.
- 10:28 AM Changeset in webkit [199677] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Database query result DataGrids have misaligned header columns
https://bugs.webkit.org/show_bug.cgi?id=156701
rdar://problem/25778310
Reviewed by Brian Burg.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.autoSizeColumns): Set the width on the <col> element
for the body table to match the <col> in the header.
- 10:28 AM Changeset in webkit [199676] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Fix the debounce function
https://bugs.webkit.org/show_bug.cgi?id=156696
rdar://problem/25778133
Reviewed by Brian Burg.
- UserInterface/Base/Utilities.js:
(Function.prototype.debounce): Store the timeout on the original function instead
of the bound function. Also simplify the implementation with arrow functions
and eliminate the bind altogether.
- 10:13 AM Changeset in webkit [199675] by
-
- 5 edits in trunk/Source/JavaScriptCore
FTL should pin the tag registers at inline caches
https://bugs.webkit.org/show_bug.cgi?id=156678
Reviewed by Saam Barati.
This is a long-overdue fix to our inline caches. Back when we had LLVM, we couldn't rely on the tags
being pinned to any registers. So, if the inline caches needed tags, they'd have to materialize them.
This removes those materializations. This should reduce the amount of code generated in inline caches
and it should make inline caches faster. The effect appears to be small.
It may be that after this change, we'll even be able to kill the
HaveTagRegisters/DoNotHaveTagRegisters logic.
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):
- jit/Repatch.cpp:
(JSC::readCallTarget):
(JSC::linkPolymorphicCall):
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
- 10:13 AM Changeset in webkit [199674] by
-
- 2 edits in trunk/Tools
svn-apply: add option for ignoring changes to ChangeLog files
https://bugs.webkit.org/show_bug.cgi?id=156618
Reviewed by Darin Adler.
This change adds a new option to svn-apply, --skip-changelogs, which short-circuits out of
patch() if the file in question is a ChangeLog.
- Scripts/svn-apply:
(patch):
- 9:45 AM Changeset in webkit [199673] by
-
- 15 edits4 deletes in trunk
Source/WebCore:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>
Reviewed by Darin Adler.
Remove the unused dynamic favicon code and tests.
- loader/EmptyClients.h:
- loader/FrameLoaderClient.h:
- loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLink):
Source/WebKit/mac:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>
Reviewed by Darin Adler.
Remove the unused dynamic favicon code and tests.
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.
Source/WebKit/win:
CSP: Make dynamically-added favicons (via link rel="icon") obey Content-Security-Policy
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>
Reviewed by Darin Adler.
Remove the unused dynamic favicon code and tests.
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.
- WebCoreSupport/WebFrameLoaderClient.h:
Source/WebKit2:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>
Reviewed by Darin Adler.
Remove the unused dynamic favicon code and tests.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
LayoutTests:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>
Reviewed by Darin Adler.
Remove the unused dynamic favicon code and tests.
- TestExpectations:
- http/tests/security/contentSecurityPolicy/icon-allowed-expected.txt: Removed.
- http/tests/security/contentSecurityPolicy/icon-allowed.html: Removed.
- http/tests/security/contentSecurityPolicy/icon-blocked-expected.txt: Removed.
- http/tests/security/contentSecurityPolicy/icon-blocked.html: Removed.
- 9:14 AM Changeset in webkit [199672] by
-
- 4 edits in trunk/Source/WebCore
[Mac][EME] Protected content over HLS is not notified when a HDCP violation occurs.
https://bugs.webkit.org/show_bug.cgi?id=156633
Reviewed by Eric Carlson.
Pass through the existing "outputObscuredDueToInsufficientExternalProtection" status as an
error, similarly to what we do for CDMSessionMediaSourceAVFObjC.
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC): Deleted.
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
(SOFT_LINK_CLASS):
(-[WebCDMSessionAVFoundationObjCListener initWithParent:player:]):
(-[WebCDMSessionAVFoundationObjCListener invalidate]):
(-[WebCDMSessionAVFoundationObjCListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
(WebCore::CDMSessionAVFoundationObjC::playerDidReceiveError):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(WebCore::MediaPlayerPrivateAVFoundationObjC::avPlayer):
- 9:04 AM Changeset in webkit [199671] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=156648
Reviewed by Darin Adler.
Follow up patch to r199615; avoid a double hash lookup by using a .find() pattern instead of
.contains() & .get().
- WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
- 8:54 AM Changeset in webkit [199670] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
[l10n] Updated Greek translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=156677
Patch by Tom Tryfonidis <tomtryf@gmail.com> on 2016-04-18
Rubber-stamped by Michael Catanzaro.
- el.po:
- 8:36 AM Changeset in webkit [199669] by
-
- 8 edits in trunk/Source
Unreviewed, rolling out r199644.
Seems to have caused a 1-2% regression on warm PLT
Reverted changeset:
"[WK2][iOS] Do not dlopen() QuickLook in the NetworkProcess"
https://bugs.webkit.org/show_bug.cgi?id=156639
http://trac.webkit.org/changeset/199644
- 8:33 AM Changeset in webkit [199668] by
-
- 46 edits1 copy4 deletes in trunk/Source/WebCore
Get rid of IDBAny
https://bugs.webkit.org/show_bug.cgi?id=156681
Reviewed by Brady Eidson.
IDBAny is not part of the public interface of Indexed Database.
It was an implementation technique used to help create language bindings for
functions that have to deal with types that aren't easly expressed with the
normal IDL and C++ type system.
What was particularly dangerous about IDBAny is that it can be used to store
arbitrary JavaScript objects and it's not easy to handle garbage collection and
reference cycles when they are hidden behind this class's abstraction. It's also
a needless extra layer, a reference counted object just to carry the types from
the bindings to the C++ DOM implementation.
Ths patch also does many small style tweaks.
- CMakeLists.txt: Removed IDBAny source files. Added JSIDBRequestCustom.cpp.
- DerivedSources.cpp: Ditto.
- DerivedSources.make: Ditto.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- Modules/indexeddb/IDBAny.cpp: Removed.
- Modules/indexeddb/IDBAny.h: Removed.
- Modules/indexeddb/IDBAny.idl: Removed.
- Modules/indexeddb/IDBCursor.cpp: Added includes needed now that headers don't
include as much.
(WebCore::IDBCursor::stringToDirection): Removed unneeded IDBCursor namespacing.
(WebCore::IDBCursor::directionToString): Ditto.
(WebCore::IDBCursor::IDBCursor): Removed creation of IDBAny object.
(WebCore::IDBCursor::direction): Removed unneeded IDBCursor namespacing.
(WebCore::IDBCursor::key): Moved this function to the header.
(WebCore::IDBCursor::primaryKey): Ditto.
(WebCore::IDBCursor::value): Ditto.
(WebCore::IDBCursor::source): Deleted this function; replaced with multiple
type-specific functions; all but one will return null.
(WebCore::IDBCursor::update): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBCursor::advance): Take unsigned instead of unsigned long.
Fell prey to the confusion because "unsigned long" in IDL means "unsigned" in C++.
(WebCore::IDBCursor::continueFunction): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBCursor::uncheckedIterateCursor): Take unsigned instead of unsigned long.
(WebCore::IDBCursor::setGetResult): Rewrote to get the VM pointer from the
ScriptExecutionContext here instead of inside the binding utilities functions.
- Modules/indexeddb/IDBCursor.h: Removed many unneeded includes.
Changed key, primaryKey, and value to no longer take an unneeded ExecState.
Made more functions private.
- Modules/indexeddb/IDBCursor.idl: Changed type of "source" to "any", which matches
the IDB specification, rather than "IDBAny". Added [CustomGetter] so we can write the
getter that understands the multiple possible values. Removed unneeded
[CallWith=ScriptState] from key and primaryKey attributes.
- Modules/indexeddb/IDBCursorWithValue.h: Marked the class final.
- Modules/indexeddb/IDBCursorWithValue.idl: Removed unneeded [CallWith=ScriptState]
from the value attribute.
- Modules/indexeddb/IDBDatabase.cpp: Added now-needed include.
- Modules/indexeddb/IDBDatabase.h: Removed this header's include of itself!
- Modules/indexeddb/IDBFactory.cpp: Added some now-needed includes.
(WebCore::IDBFactory::~IDBFactory): Moved this out of the header file.
(WebCore::IDBFactory::getDatabaseNames): Removed function that always returns nullptr.
(WebCore::IDBFactory::open): Removed unneeded release() calls when returning a RefPtr.
(WebCore::IDBFactory::cmp): Take JSValue instead of Deprecated::ScriptValue.
Also removed unneeded typecast.
- Modules/indexeddb/IDBFactory.h: Removed many unneeded includes.
Removed the getDatabaseNames function. We still need a solution here, but there is
no reason to keep the placeholder function that returns nullptr here.
- Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::keyPathAny): Removed.
(WebCore::IDBIndex::openCursor): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBIndex::count): Ditto.
(WebCore::IDBIndex::openKeyCursor): Ditto.
(WebCore::IDBIndex::get): Ditto.
(WebCore::IDBIndex::getKey): Ditto.
- Modules/indexeddb/IDBIndex.h: Removed many unneeded includes, including this file
including itself. Marked class final. Updated for above changes.
- Modules/indexeddb/IDBIndex.idl: Changed type of "keyPath" to "any", which matches
the IDB specification, rather than "IDBAny". Specified [ImplementationReturnType=IDBKeyPath]
so the code generator creates the appropriate code to convert from an IDBKeyPath.
In the future, we may find a way to do this without an explicit attribute in the IDL
file but this is fine for now.
- Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::create): Moved this here from the header. Use booleans instead
of enums because all the call sites outside this class are using booleans.
(WebCore::IDBKeyRange::IDBKeyRange): Updated to use booleans.
(WebCore::IDBKeyRange::~IDBKeyRange): Moved here from the header.
(WebCore::IDBKeyRange::lowerValue): Removed now-unneeded get().
(WebCore::IDBKeyRange::upperValue): Ditto.
(WebCore::IDBKeyRange::only): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBKeyRange::lowerBound): Updated for above changes.
(WebCore::IDBKeyRange::upperBound): Ditto.
(WebCore::IDBKeyRange::bound): Ditto.
(WebCore::IDBKeyRange::isOnlyKey): Removed assertions that lower and upper are not null;
there is no real guarantee of this! Rewrote and streamlined and it handles the null case now.
- Modules/indexeddb/IDBKeyRange.h: Removed unneeded includes. Changed class to use booleans
instead of enums for m_isLowerOpen and m_isUpperOpen. Moved functions into the cpp file.
- Modules/indexeddb/IDBKeyRangeData.cpp:
(WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange): Updated to use booleans instead of enums.
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::name): Changed return type to const String& to cut down on
reference count churn.
(WebCore::IDBObjectStore::keyPathAny): Deleted.
(WebCore::IDBObjectStore::keyPath): Changed return type to const IDBKeyPath& to cut down on
unnecessary copies.
(WebCore::IDBObjectStore::openCursor): Take JSValue instead of Deprecated::SCriptValue.
(WebCore::IDBObjectStore::get): Ditto.
(WebCore::IDBObjectStore::putOrAdd): Ditto. Removed peculiar adoptRef/leakRef that was not needed.
(WebCore::IDBObjectStore::deleteFunction): Ditto.
(WebCore::IDBObjectStore::modernDelete): Ditto. Use releaseNonNull for better efficiency.
(WebCore::IDBObjectStore::count): Ditto.
- Modules/indexeddb/IDBObjectStore.h: Removed unneeded includes and changed types as mentioned
above in the cpp file function descriptions.
- Modules/indexeddb/IDBObjectStore.idl: Changed type of "keyPath" to "any" and
specified [ImplementationReturnType=IDBKeyPath] as above in IDBIndex.idl.
- Modules/indexeddb/IDBOpenDBRequest.cpp: Added now-needed includes.
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit): Removed unneeded assertions
that depend on how m_result is implemented, which changed.
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion): Call setResultToUndefined
instead of setting m_result directly.
(WebCore::IDBOpenDBRequest::onSuccess): Call setResult instead of setting m_result and
m_readyState directly.
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):: Ditto. Also use WTFMove to set
m_transaction instead of peculiar adoptRef/leakRef.
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess): Call setResultToUndefined
instead of setting m_result directly.
- Modules/indexeddb/IDBOpenDBRequest.h: Marked the class final. Removed some unneeded headers
and made more things private.
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest): Don't initialize m_source any more. Instead initialize
m_objectStoreSource and m_indexSource, preserving the old behavior and not setting m_cursorSource
even when passed an IDBCursor.
(WebCore::IDBRequest::~IDBRequest): Simplify the code that calls clearRequest on the result
if it's a cursor. The logic is now simply a null check.
(WebCore::IDBRequest::result): Deleted. The logic is now in a custom binding.
(WebCore::IDBRequest::error): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::source): Deleted. The logic is now in a custom binding.
(WebCore::IDBRequest::setSource): Set m_objectStoreSource, m_indexSource, and m_cursorSource
instead of setting m_source.
(WebCore::IDBRequest::readyState): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::sourceObjectStoreIdentifier): Use m_objectStoreSource and
m_indexSource instead of using m_source. To preserve current behavior, this this does not
use m_cursorSource since the old code did not handle IDBCursor.
(WebCore::IDBRequest::sourceIndexIdentifier): Use m_indexSource instead of m_source, preserving
current behavior.
(WebCore::IDBRequest::requestedIndexRecordType): Ditto.
(WebCore::IDBRequest::dispatchEvent): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::setResult): Rewrote to use the clearResult function so we don't
have to repeat the code to clear result pointers. Also take a reference.
(WebCore::IDBRequest::setResultToStructuredClone): Ditto.
(WebCore::IDBRequest::clearResult): Clear out m_scriptResult, m_cursorResult, and m_databaseResult
instead of m_result.
(WebCore::IDBRequest::setResultToUndefined): Set m_scriptResult instead of m_result.
(WebCore::IDBRequest::resultCursor): Use m_cursorResult instead of m_result.
(WebCore::IDBRequest::willIterateCursor): Updated to use m_isDone instead of m_readyState.
Also call setResultToUndefined instead of setting m_result.
(WebCore::IDBRequest::didOpenOrIterateCursor): Call setResultToUndefined and set m_cursorResult
instead of setting m_result.
(WebCore::IDBRequest::requestCompleted): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::setResult): Added for use by the derived class; sets m_databaseResult.
- Modules/indexeddb/IDBRequest.h: Removed unneeded includes. Removed unused IDBRequestReadyState,
since that's now done with strings. Added cursorResult, databaseResult, scriptResult,
objectStoreSource, indexSource, and cursorSource function members and corresponding data members.
Later we might re-cast this as some sort of union, but for now these separate functions seem fine.
Removed unused modernResult function. Made more things private.
- Modules/indexeddb/IDBRequest.idl: Use "any" instead of "IDBAny" for "result" and "source".
- Modules/indexeddb/IDBTransaction.cpp: Added now-needed includes.
(WebCore::IDBTransaction::didGetRecordOnServer): Updated to call the version of setResult that takes
a reference.
(WebCore::IDBTransaction::didPutOrAddOnServer): Ditto.
- Modules/indexeddb/IDBTransaction.h: Removed unneeded includes, derive privately from ActiveDOMObject.
Removed some unneeded WebCore prefixes.
- Modules/indexeddb/server/MemoryIndex.h: Added now-needed include.
- Modules/indexeddb/server/MemoryObjectStore.cpp: Added now-needed includes.
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord): Remove unneeded get() call.
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords): Ditto.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: Added now-needed includes.
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord): Remove unneeded get() call.
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord): Ditto.
- Modules/indexeddb/server/SQLiteIDBCursor.cpp: Added now-needed include.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp: Added now-needed includes.
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Updated to use JSValue.
- Modules/indexeddb/server/UniqueIDBDatabase.h: Added now-needed forward declaration of JSC::VM.
- bindings/js/IDBBindingUtilities.cpp: Added now-needed includes.
(WebCore::deserializeIDBValueToJSValue): Return JSValue instead of Strong<Unknown>.
(WebCore::deserializeIDBValueDataToJSValue): Ditto.
(WebCore::idbKeyDataToScriptValue): Ditto.
(WebCore::toJS): Added an overload of toJS for IDBKeyPath here. Moved here from JSIDBAnyCustom.cpp.
- bindings/js/IDBBindingUtilities.h: Removed unneeded include. Changed return types to JSValue.
Added the toJS function for IDBKeyPath.
- bindings/js/JSIDBAnyCustom.cpp: Removed.
- bindings/js/JSIDBCursorCustom.cpp: Added some now-needed includes.
(WebCore::JSIDBCursor::visitAdditionalChildren): Removed ann unneeded type cast.
(WebCore::JSIDBCursor::source): Added. Converts either the index source or the object source into
a JSValue.
- bindings/js/JSIDBRequestCustom.cpp: Added.
(WebCore::JSIDBRequest::result): Added. Throws an exception if isDone is false and then converts
cursor result, database result, or script result into a JSValue.
(WebCore::JSIDBRequest::source): Added. Converts the cursor source, index source, or object store
source into a JSValue.
- bindings/scripts/CodeGeneratorJS.pm:
(NativeToJSValue): Tweaked the code for array slightly. Added an ImplementationReturnType case
for IDBKeyPath. The code that's generated is pretty generic, just a call to toJS with the conventional
arguments, so at some point we may be able to do this with C++ overloading and not require a
special case in the code generator.
- inspector/InspectorIndexedDBAgent.cpp: Put #if 0 around the getDatabaseNames code, which was
dormant and not working.
(WebCore::OpenDatabaseCallback::handleEvent): Changed this to use IDBOpenDBRequest::databaseResult
instead of calling the result function checking for an exception and then doing type checking.
(WebCore::idbKeyRangeFromKeyRange): Updated to use booleans for key range bound open state.
(WebCore::OpenCursorCallback::handleEvent): Same kind of change as for OpenDatabaseCallback above.
Also use simpler interface to key, primaryKey, and value.
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames): Put #if 0 around the getDatabaseNames
code, which was dormant and not working. Needs to be re-implemented.
- 8:24 AM Changeset in webkit [199667] by
-
- 4 edits2 adds in trunk
Media element "user gesture for fullscreen" restriction is never lifted
https://bugs.webkit.org/show_bug.cgi?id=156547
<rdar://problem/25707814>
Reviewed by Jer Noble.
Source/WebCore:
Test: media/video-fullscreen-restriction-removed.html
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted): Check fullscreenPermitted rather than
checking for a user gesture because the restriction can be removed.
LayoutTests:
- media/video-fullscreen-restriction-removed-expected.txt: Added.
- media/video-fullscreen-restriction-removed.html: Added.
- 8:23 AM Changeset in webkit [199666] by
-
- 2 edits in trunk/LayoutTests
Mark script-height reftest as ImageOnlyFailure on iOS
https://bugs.webkit.org/show_bug.cgi?id=153918
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 7:47 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 7:45 AM Changeset in webkit [199665] by
-
- 24 edits22 adds in trunk
Refactor RenderMathMLScripts layout to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=153917
Patch by Frederic Wang <fwang@igalia.com> on 2016-04-18
Reviewed by Martin Robinson.
Source/WebCore:
Tests: mathml/mathml-in-html5/subsup-parameters-1.html
mathml/opentype/large-operators-italic-correction.html
Reimplement RenderMathMLScripts without any flexbox or anonymous.
We also rely on parameters from the MATH table to improve rendering.
- css/mathml.css:
(msub > * + * + *, msup > * + * + *, msubsup > * + * + * + *, msub > mprescripts, msup > mprescripts, msubsup > mprescripts, msub > none, msup > none, msubsup > none, mmultiscripts > mprescripts ~ mprescripts, mmultiscripts > mprescripts ~ mprescripts ~ *): Deleted.
Invalid markup for scripts is now just hidden.
- rendering/mathml/RenderMathMLOperator.h: ditto.
- rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::unembellishedOperator): Reimplemented.
(WebCore::RenderMathMLScripts::getBaseAndScripts): Helper function to verify whether the
child list is valid and retrieve pointers on important children.
(WebCore::RenderMathMLScripts::spaceAfterScript): Helper function to get the
space after a script.
(WebCore::RenderMathMLScripts::italicCorrection): Helper function to read the
italic correction of a largeop base.
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded): Helper function to get
the maximum ascent/descent of all the scripts and determine the minimal
sub/sup shifts to apply.
(WebCore::RenderMathMLScripts::mirrorIfNeeded): Helper function to calculate the horizontal
offset depending on the directionality.
(WebCore::RenderMathMLScripts::layoutBlock): Implement this function.
(WebCore::RenderMathMLScripts::firstLineBaseline): Implement this function.
(WebCore::RenderMathMLScripts::paintChildren): Implement this function.
(WebCore::RenderMathMLScripts::RenderMathMLScripts): Deleted.
(WebCore::RenderMathMLScripts::base): Deleted.
(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair): Deleted.
(WebCore::RenderMathMLScripts::fixAnonymousStyles): Deleted.
(WebCore::RenderMathMLScripts::addChildInternal): Deleted.
(WebCore::RenderMathMLScripts::removeChildInternal): Deleted.
(WebCore::RenderMathMLScripts::addChild): Deleted.
(WebCore::RenderMathMLScripts::removeChild): Deleted.
(WebCore::RenderMathMLScripts::styleDidChange): Deleted.
(WebCore::RenderMathMLScripts::layout): Deleted.
(WebCore::RenderMathMLScriptsWrapper::createAnonymousWrapper): Deleted.
(WebCore::RenderMathMLScriptsWrapper::addChildInternal): Deleted.
(WebCore::RenderMathMLScriptsWrapper::addChild): Deleted.
(WebCore::RenderMathMLScriptsWrapper::removeChildInternal): Deleted.
(WebCore::RenderMathMLScriptsWrapper::removeChild): Deleted.
- rendering/mathml/RenderMathMLScripts.h: Update definitions and remove classes
for anonymous wrappers.
LayoutTests:
We import tests from the MathML in HTML5 test suite to verify various OpenType MATH parameters.
We also add a test for the italic correction of large operators (bug 130325).
Finally, we adjust some tests and expectations to take into account the new rendering.
- imported/mathml-in-html5/LICENSE: Added.
- imported/mathml-in-html5/README.md: Added.
- imported/mathml-in-html5/fonts/math/scripts-spaceafterscript3000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-spaceafterscript3000.woff.
- imported/mathml-in-html5/fonts/math/scripts-subscriptbaselinedropmin9000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscriptbaselinedropmin9000.woff.
- imported/mathml-in-html5/fonts/math/scripts-subscriptshiftdown6000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscriptshiftdown6000.woff.
- imported/mathml-in-html5/fonts/math/scripts-subscripttopmax4000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscripttopmax4000.woff.
- imported/mathml-in-html5/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff.
- imported/mathml-in-html5/fonts/math/scripts-subsuperscriptgapmin11000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subsuperscriptgapmin11000.woff.
- imported/mathml-in-html5/fonts/math/scripts-superscriptbaselinedropmax10000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptbaselinedropmax10000.woff.
- imported/mathml-in-html5/fonts/math/scripts-superscriptbottommin8000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptbottommin8000.woff.
- imported/mathml-in-html5/fonts/math/scripts-superscriptshiftup7000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptshiftup7000.woff.
- imported/mathml-in-html5/fonts/math/scripts-superscriptshiftupcramped5000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptshiftupcramped5000.woff.
- imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-parameters-1-expected.txt: Renamed from LayoutTests/mathml/mathml-in-html5/subsup-parameters-1-expected.txt.
- imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-parameters-1.html: Renamed from LayoutTests/mathml/mathml-in-html5/subsup-parameters-1.html.
- mathml/msubsup-fuzz-expected.txt: Test adjustment: Update the reference now that nothing
is displayed for invalid markup.
- accessibility/mac/mathml-multiscript-expected.txt: ditto.
- mathml/opentype/large-operators-italic-correction.html: Added. This test verifies that the
italic correction from the MATH table is used for positioning subscripts of large operators.
- mathml/opentype/large-operators-italic-correction-expected.txt: Added.
- mathml/presentation/bug95015.html: Test adjustment: move down a bit the covering red
rectangle, since the script is slightly lower.
- mathml/presentation/bug95015-expected.html: ditto
- mathml/presentation/multiscripts-positions.html: Test adjustment: Modify the expected
vertical positions of scripts now that we follow Gecko's behavior.
- mathml/presentation/multiscripts-positions-expected.html: ditto.
- mathml/presentation/multiscripts-noscripts-expected.html: There seem to be small errors in
the ascent of mmultiscripts, probably due to the conversions between firstLineBaseline (int)
and LayoutUnit (fractional pixel). For now, let's tweak the tests.
- mathml/presentation/multiscripts-noscripts.html: ditto.
- mathml/presentation/scripts-height-expected.html: ditto
- mathml/presentation/scripts-height.html: ditto
- mathml/presentation/scripts-horizontal-alignment.html: Modify the test to make it work
with the new layout rules.
- mathml/presentation/scripts-horizontal-alignment-expected.html: ditto.
- platform/gtk/accessibility/math-multiscript-attributes-expected.txt: Test adjustment:
Update reference to take into account a small shift.
- platform/mac/accessibility/math-multiscript-attributes-expected.txt: ditto.
- platform/gtk/mathml/presentation/roots-expected.png: Test adjustment: Update reference to
take into account small rendering changes.
- platform/gtk/mathml/presentation/roots-expected.txt: ditto.
- platform/ios-simulator/mathml/presentation/roots-expected.txt: ditto.
- platform/mac/TestExpectations: Mark some tests for scripts as failing on mac. MATH fonts
are really needed to make them reliable.
- platform/ios-simulator/TestExpectations: Ditto
- 3:36 AM Changeset in webkit [199664] by
-
- 4 edits in trunk
Pending API Request URL is wrong after reloading
https://bugs.webkit.org/show_bug.cgi?id=139342
Reviewed by Darin Adler.
Source/WebKit2:
It happens when reloading a web view loaded with anything but a
URL, because the bf list is not updated for those cases and
WebPageProxy::reload() is setting the current bf list item URL as
pending API request URL. This also causes that progress is
reported wrongly, because
WebPageProxy::decidePolicyForNavigationAction() resets the pending
API request URL when it's different than the requested URL. The
page load transaction causes the progress to be changed, reporting
1.0 (the previous one), but later something < 1.0 is reported
again by the progress tracker.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reload): Use the current active URL as
pending API request URL, falling back to the current bf list item
URL when empty.
Tools:
Update test case to check that the active URL should remain the
same after a reload.
- TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp:
(TestWebKitAPI::TEST):
- 3:01 AM Changeset in webkit [199663] by
-
- 7 edits1 add in trunk
Pending API request URL no set when loading Data, Alternate HTML or plain text
https://bugs.webkit.org/show_bug.cgi?id=136916
Reviewed by Darin Adler.
Source/WebKit2:
Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
Tools:
Add new test to check that active URL is the requested one right
after calling WKPage load methods.
- TestWebKitAPI/PlatformEfl.cmake:
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Added.
(TestWebKitAPI::TEST):
- TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
(WebViewTest::loadPlainText): Remove FIXME.
(WebViewTest::loadBytes): Ditto.
(WebViewTest::loadAlternateHTML): Ditto.
- 2:48 AM Changeset in webkit [199662] by
-
- 7 edits1 delete in trunk
Unreviewed, rolling out r199660.
https://bugs.webkit.org/show_bug.cgi?id=156691
It broke the iOS build (Requested by KaL on #webkit).
Reverted changeset:
"Pending API request URL no set when loading Data, Alternate
HTML or plain text"
https://bugs.webkit.org/show_bug.cgi?id=136916
http://trac.webkit.org/changeset/199660
- 2:45 AM Changeset in webkit [199661] by
-
- 5 edits2 adds in trunk
[css-grid] Use grid-template-areas to determine the explicit grid
https://bugs.webkit.org/show_bug.cgi?id=156575
Reviewed by Darin Adler.
Source/WebCore:
From the spec (https://drafts.csswg.org/css-grid/#grid-definition):
"The size of the explicit grid is determined by the larger of the number
of rows/columns defined by grid-template-areas and the number
of rows/columns sized by grid-template-rows/grid-template-columns."
So we need to take into account the rows/columns defined by
grid-template-areas to determine the size of the explicit grid.
Test: fast/css-grid-layout/explicit-grid-size.html
- rendering/style/GridPositionsResolver.cpp:
(WebCore::GridPositionsResolver::explicitGridColumnCount):
(WebCore::GridPositionsResolver::explicitGridRowCount):
LayoutTests:
Created new test to check the right behavior.
- fast/css-grid-layout/explicit-grid-size-expected.txt: Added.
- fast/css-grid-layout/explicit-grid-size.html: Added.
- fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
Small modification as now the columns defined by
grid-tempalte-areas are in the explicit grid.
- fast/css-grid-layout/grid-template-shorthand-get-set.html:
Ditto.
- 1:50 AM Changeset in webkit [199660] by
-
- 7 edits1 add in trunk
Pending API request URL no set when loading Data, Alternate HTML or plain text
https://bugs.webkit.org/show_bug.cgi?id=136916
Reviewed by Darin Adler.
Source/WebKit2:
Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
Tools:
Add new test to check that active URL is the requested one right
after calling WKPage load methods.
- TestWebKitAPI/PlatformEfl.cmake:
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Added.
(TestWebKitAPI::TEST):
- TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
(WebViewTest::loadPlainText): Remove FIXME.
(WebViewTest::loadBytes): Ditto.
(WebViewTest::loadAlternateHTML): Ditto.
- 1:44 AM Changeset in webkit [199659] by
-
- 4 edits in trunk
[GTK] Menu list button doesn't use the text color from the theme
https://bugs.webkit.org/show_bug.cgi?id=118234
Reviewed by Darin Adler.
.:
- ManualTests/gtk/theme.html: Add a disabled combo test.
Source/WebCore:
Set the combo box color accroding to the theme when adjusting the menu list style like Mac port does.
- rendering/RenderThemeGtk.cpp:
(WebCore::menuListColor):
(WebCore::RenderThemeGtk::adjustMenuListStyle):
- 1:31 AM Changeset in webkit [199658] by
-
- 2 edits in trunk/Source/WebKit2
[UNIX] Initialize WebKit before the platform initializations
https://bugs.webkit.org/show_bug.cgi?id=156622
Reviewed by Michael Catanzaro.
The platform specific initialization might use something that would require WebKit2 to be initialized. For
example, in debug mode, the GTK+ port uses WTF::sleep that requires the threading to be initialized.
- Shared/unix/ChildProcessMain.h:
(WebKit::ChildProcessMain): Move InitializeWebKit2() before platformInitialize().
- 1:20 AM Changeset in webkit [199657] by
-
- 4 edits4 adds in trunk
[css-grid] Fix positioned items with content alignment
https://bugs.webkit.org/show_bug.cgi?id=156597
Reviewed by Darin Adler.
Source/WebCore:
Like for the case of gaps we need to take into account
the content alignment in order to properly place and size
the positioned items.
Regarding content alignment we need to care about 2 values:
the position offset and the distribution offset.
The position offset can be extracted from m_column|rowPositions,
but the distribution offset is stored in 2 new variables called
m_offsetBetweenColumns|Rows.
Tests: fast/css-grid-layout/grid-positioned-items-content-alignment.html
fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::populateGridPositions):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisPositionForChild): Deleted.
- rendering/RenderGrid.h:
LayoutTests:
- fast/css-grid-layout/grid-positioned-items-content-alignment-expected.txt: Added.
- fast/css-grid-layout/grid-positioned-items-content-alignment-rtl-expected.txt: Added.
- fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html: Added.
- fast/css-grid-layout/grid-positioned-items-content-alignment.html: Added.
- 1:09 AM Changeset in webkit [199656] by
-
- 4 edits in trunk
Fix incorrect assumption that APPLE implies Mac.
https://bugs.webkit.org/show_bug.cgi?id=156679
Addresses build failure introduced in r198947
Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-04-18
Reviewed by Alex Christensen.
- CMakeLists.txt:
- 1:03 AM Changeset in webkit [199655] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Add method to translate RTL coordinates
https://bugs.webkit.org/show_bug.cgi?id=156589
Reviewed by Antonio Gomes.
This is just a small refactoring adding a new function
LayoutGrid::translateRTLCoordinate().
This method translates to physical coordinates the information
stored in m_columnPositions when you're using RTL direction.
No new tests, no change of behavior.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild): Use the new
method translateRTLCoordinate().
(WebCore::RenderGrid::translateRTLCoordinate): New method that converts
a coordinate from m_columnPositions in RTL into a physical coordinate.
(WebCore::RenderGrid::findChildLogicalPosition): Use the new method
translateRTLCoordinate().
- rendering/RenderGrid.h: Add method signature.
- 1:01 AM Changeset in webkit [199654] by
-
- 3 edits2 adds in trunk
[Fetch] Use @isArray instead of
instanceof @Array
https://bugs.webkit.org/show_bug.cgi?id=156682
Reviewed by Alex Christensen.
Source/WebCore:
Currently, we query whether the given value is Array by using
instanceof @Array
.
But it is not enough; Array from the other realm should be accepted. And Array
not inheriting @Array should be also accepted.
Test: fetch/header-constructor-is-array.html
- Modules/fetch/FetchHeaders.js:
(initializeFetchHeaders):
LayoutTests:
- fetch/header-constructor-is-array-expected.txt: Added.
- fetch/header-constructor-is-array.html: Added.
- 12:40 AM Changeset in webkit [199653] by
-
- 2 edits in trunk/Tools
[GTK] Test /webkit2/WebKitWebView/mouse-target fails with overlay scrollbars
https://bugs.webkit.org/show_bug.cgi?id=156621
Reviewed by Martin Robinson.
This is a problem of the test itself, we are using an overflow that is not actually scrollable, but that shows
scrollbar troughs when not using overlay scrollbars because it's marked as scrollable. It would be easier to
simply use the main frame scrollbars to test that and it will work no matter of scrollbars are overlay or not.
- TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
(testWebViewMouseTarget): Remove the div and move the mouse over the main frame scrollbar to test scrolbars hit test.
- 12:35 AM Changeset in webkit [199652] by
-
- 7 edits1 add in trunk/Source/JavaScriptCore
[ES7] yield star should not return if the inner iterator.throw returns { done: true }
https://bugs.webkit.org/show_bug.cgi?id=156576
Reviewed by Saam Barati.
This is slight generator fix in ES7. When calling generator.throw(),
the yield-star should call the throw() of the inner generator. At that
time, when the result of throw() is { done: true}, the generator should
not stop itself.
function * gen()
{
yield * (function * () {
try {
yield 42;
} catch (error) { }
}());
Continue executing.
yield 42;
}
let g = gen();
g.next();
shouldBe(g.throw().value, 42);
- builtins/GeneratorPrototype.js:
(generatorResume):
(next):
(return):
(throw):
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitDelegateYield):
- runtime/JSGeneratorFunction.h:
- tests/stress/generator-yield-star.js:
(gen):
- tests/stress/yield-star-throw-continue.js: Added.
(shouldBe):
(generator):
(shouldThrow):