Timeline
May 19, 2018:
- 4:07 PM Changeset in webkit [232001] by
-
- 4 edits in trunk/Source/WebCore
Improve NowPlaying "title"
https://bugs.webkit.org/show_bug.cgi?id=185680
<rdar://problem/40296700>
Reviewed by Dean Jackson.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaSessionTitle const): Use decodeHostName and
topPrivatelyControlledDomain when possible to make the host name more readable.
- platform/PublicSuffix.h:
- platform/mac/PublicSuffixMac.mm:
(WebCore::decodeHostName): Expose topPrivatelyControlledDomain method to .cpp functions.
- 3:00 PM Changeset in webkit [232000] by
-
- 31 edits6 adds in trunk/Source
DFG should inline InstanceOf ICs
https://bugs.webkit.org/show_bug.cgi?id=185695
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
This teaches the DFG how to inline InstanceOf ICs into a MatchStructure node. This can then
be folded to a CheckStructure + JSConstant.
In the process of testing this, I found a bug where LICM was not hoisting things that
depended on ExtraOSREntryLocal because that might return SpecEmpty. I fixed that by teaching
LICM how to materialize CheckNotEmpty on demand whenever HoistingFailed.
This is a ~5% speed-up on boyer.
~2x speed-up on the instanceof-always-hit-one, instanceof-always-hit-two, and
instanceof-sometimes-hit microbenchmarks.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::appendVariant):
(JSC::GetByIdStatus::filter):
- bytecode/GetByIdStatus.h:
(JSC::GetByIdStatus::operator bool const):
(JSC::GetByIdStatus::operator! const): Deleted.
- bytecode/GetByIdVariant.h:
(JSC::GetByIdVariant::operator bool const):
(JSC::GetByIdVariant::operator! const): Deleted.
- bytecode/ICStatusUtils.h: Added.
(JSC::appendICStatusVariant):
(JSC::filterICStatusVariants):
- bytecode/InstanceOfStatus.cpp: Added.
(JSC::InstanceOfStatus::appendVariant):
(JSC::InstanceOfStatus::computeFor):
(JSC::InstanceOfStatus::computeForStubInfo):
(JSC::InstanceOfStatus::commonPrototype const):
(JSC::InstanceOfStatus::filter):
- bytecode/InstanceOfStatus.h: Added.
(JSC::InstanceOfStatus::InstanceOfStatus):
(JSC::InstanceOfStatus::state const):
(JSC::InstanceOfStatus::isSet const):
(JSC::InstanceOfStatus::operator bool const):
(JSC::InstanceOfStatus::isSimple const):
(JSC::InstanceOfStatus::takesSlowPath const):
(JSC::InstanceOfStatus::numVariants const):
(JSC::InstanceOfStatus::variants const):
(JSC::InstanceOfStatus::at const):
(JSC::InstanceOfStatus::operator[] const):
- bytecode/InstanceOfVariant.cpp: Added.
(JSC::InstanceOfVariant::InstanceOfVariant):
(JSC::InstanceOfVariant::attemptToMerge):
(JSC::InstanceOfVariant::dump const):
(JSC::InstanceOfVariant::dumpInContext const):
- bytecode/InstanceOfVariant.h: Added.
(JSC::InstanceOfVariant::InstanceOfVariant):
(JSC::InstanceOfVariant::operator bool const):
(JSC::InstanceOfVariant::structureSet const):
(JSC::InstanceOfVariant::structureSet):
(JSC::InstanceOfVariant::conditionSet const):
(JSC::InstanceOfVariant::prototype const):
(JSC::InstanceOfVariant::isHit const):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::StructureStubInfo):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::considerCaching):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGGraph.h:
- dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
- dfg/DFGNode.cpp:
(JSC::DFG::Node::remove):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasMatchStructureData):
(JSC::DFG::Node::matchStructureData):
- dfg/DFGNodeType.h:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileMatchStructure):
- 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::compileMatchStructure):
Source/WTF:
I found myself needing a way to represent bottom/false/true/top, so I created it.
- WTF.xcodeproj/project.pbxproj:
- wtf/BooleanLattice.h: Added.
(WTF::lubBooleanLattice):
(WTF::printInternal):
- wtf/CMakeLists.txt:
- 1:57 PM Changeset in webkit [231999] by
-
- 2 edits in trunk/Tools
Flaky API test WebKit.WKHTTPCookieStoreWithoutProcessPool: incorrect order of cookies
https://bugs.webkit.org/show_bug.cgi?id=185624
<rdar://problem/39111626>
Reviewed by Chris Dumez.
Modified expectation to make test more robust as cookies can be returned in different orders.
- TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(-[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
- 1:21 PM Changeset in webkit [231998] by
-
- 50 edits6 adds in trunk
[JSC] JSC should have consistent InById IC
https://bugs.webkit.org/show_bug.cgi?id=185682
Reviewed by Filip Pizlo.
JSTests:
- stress/in-by-id-accessors.js: Added.
(shouldBe):
(test):
(protoGetter.proto.get hello):
(protoSetter.proto.set hello):
(i.shouldBe.test.get hello):
(i.shouldBe.test.set hello):
- stress/in-by-id-ai.js: Added.
(shouldBe):
(test):
- stress/in-by-id-custom-accessors.js: Added.
(shouldBe):
(test1):
(test2):
- stress/in-by-id-custom-values.js: Added.
(shouldBe):
(test):
- stress/in-by-id-operation.js: Added.
(shouldBe):
(test):
(selfCache):
- stress/in-by-id-proxy.js: Added.
(shouldBe):
(test):
(handler.has):
Source/JavaScriptCore:
Current our op_in IC is adhoc: It is only emitted in DFG and FTL layers,
when we found that DFG::In's parameter is constant string. We should
align this IC to the other ById ICs to clean up and remove adhoc code
in DFG and FTL.
This patch cleans up our "In" IC by aligning it to the other ById ICs.
We split op_in bytecode to op_in_by_id and op_in_by_val. op_in_by_val
is the same to the original op_in. For op_in_by_id, we use JITInByIdGenerator
to emit InById IC code. In addition, our JITInByIdGenerator and op_in_by_id
has a inline access cache for own property case, which is the same to
JITGetByIdGenerator.
And we split DFG::In to DFG::InById and DFG::InByVal. InByVal is the same
to the original In DFG node. DFG AI attempts to lower InByVal to InById
if AI figured out that the property name is a constant string. And in
InById node, we use JITInByIdGenerator code.
This patch cleans up DFG and FTL's adhoc In IC code.
In a subsequent patch, we should introduce InByIdStatus to optimize
InById in DFG and FTL. We would like to have a new InByIdStatus instead of
reusing GetByIdStatus since GetByIdStatus becomes too complicated, and
AccessCase::Types are different from them (AccessCase::InHit / InMiss).
- bytecode/AccessCase.cpp:
(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::generateWithGuard):
- bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::printInByIdCacheStatus):
(JSC::BytecodeDumper<Block>::dumpBytecode):
- bytecode/BytecodeDumper.h:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecode/InlineAccess.cpp:
(JSC::InlineAccess::generateSelfInAccess):
- bytecode/InlineAccess.h:
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::patchableJump):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitInByVal):
(JSC::BytecodeGenerator::emitInById):
(JSC::BytecodeGenerator::emitIn): Deleted.
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::InNode::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/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::addInById):
(JSC::DFG::InRecord::InRecord): Deleted.
(JSC::DFG::JITCompiler::addIn): Deleted.
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToInById):
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::hasArrayMode):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileIn): Deleted.
- 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::compileInByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileInById):
(JSC::FTL::DFG::LowerDFGToB3::compileIn): Deleted.
- jit/ICStats.h:
- jit/JIT.cpp:
(JSC::JIT::JIT):
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITInByIdGenerator::JITInByIdGenerator):
(JSC::JITInByIdGenerator::generateFastPath):
- jit/JITInlineCacheGenerator.h:
(JSC::JITInByIdGenerator::JITInByIdGenerator):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
- jit/Repatch.cpp:
(JSC::tryCacheInByID):
(JSC::repatchInByID):
(JSC::resetInByID):
(JSC::tryCacheIn): Deleted.
(JSC::repatchIn): Deleted.
(JSC::resetIn): Deleted.
- jit/Repatch.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- parser/NodeConstructors.h:
(JSC::InNode::InNode):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::opInByVal):
(JSC::CommonSlowPaths::opIn): Deleted.
- 9:30 AM WebKitGTK/2.20.x edited by
- (diff)
- 8:12 AM Changeset in webkit [231997] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed, rolling out r231996.
https://bugs.webkit.org/show_bug.cgi?id=185799
Broke the GTK build (Requested by eric_carlson on #webkit).
Reverted changeset:
"Improve NowPlaying "title""
https://bugs.webkit.org/show_bug.cgi?id=185680
https://trac.webkit.org/changeset/231996
May 18, 2018:
- 9:22 PM Changeset in webkit [231996] by
-
- 4 edits in trunk/Source/WebCore
Improve NowPlaying "title"
https://bugs.webkit.org/show_bug.cgi?id=185680
<rdar://problem/40296700>
Reviewed by Dean Jackson.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaSessionTitle const): Use decodeHostName and
topPrivatelyControlledDomain when possible to make the host name more readable.
- platform/PublicSuffix.h:
- platform/mac/PublicSuffixMac.mm:
(WebCore::decodeHostName): Expose topPrivatelyControlledDomain method to .cpp functions.
- 9:05 PM Changeset in webkit [231995] by
-
- 5 edits in trunk
Cannot unset transition with important
https://bugs.webkit.org/show_bug.cgi?id=177684
Patch by Rob Buis <rbuis@igalia.com> on 2018-05-18
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Import manually the updated test and result.
- web-platform-tests/cssom/cssom-setProperty-shorthand-expected.txt:
- web-platform-tests/cssom/cssom-setProperty-shorthand.html:
Source/WebCore:
Make removeProperty remove the property regardless
if it was set using !important [1].
The new behavior is consistent with Firefox, Chrome and Edge.
[1] https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-removeproperty
Test: web-platform-tests/cssom/cssom-setProperty-shorthand.html
- css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::removePropertiesInSet):
- 6:08 PM Changeset in webkit [231994] by
-
- 1 copy in tags/Safari-605.3.3
Tag Safari-605.3.3.
- 5:08 PM Changeset in webkit [231993] by
-
- 14 edits in trunk
Unreviewed, rolling out r231982.
https://bugs.webkit.org/show_bug.cgi?id=185793
Caused layout test failures (Requested by realdawei on
#webkit).
Reverted changeset:
"Complete fix for enabling modern EME by default"
https://bugs.webkit.org/show_bug.cgi?id=185770
https://trac.webkit.org/changeset/231982
- 4:32 PM Changeset in webkit [231992] by
-
- 2 edits in trunk/Tools
Handle failure to extend sandbox gracefully
https://bugs.webkit.org/show_bug.cgi?id=185779
<rdar://problem/40316349>
Unreviewed, fix test results.
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
(TEST_F):
- 4:17 PM Changeset in webkit [231991] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Add missing nullability annotations to _WKAutomationSessionDelegate
https://bugs.webkit.org/show_bug.cgi?id=185791
<rdar://problem/40279891>
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: If there is no dialog shown,
then the delegate methods to return the dialog text may return a nil NSString.
- 4:16 PM Changeset in webkit [231990] by
-
- 7 edits in trunk
op_in should mark if it sees out of bounds accesses
https://bugs.webkit.org/show_bug.cgi?id=185792
Reviewed by Filip Pizlo.
JSTests:
- stress/has-indexed-property-array-storage-ftl.js:
(test2):
- stress/has-indexed-property-slow-put-array-storage-ftl.js:
(test2):
Source/JavaScriptCore:
This would used to cause us to OSR loop since we would always speculate
we were in bounds in HasIndexedProperty.
- bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::observeIndexedRead):
- bytecode/ArrayProfile.h:
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::opIn):
- 4:07 PM Changeset in webkit [231989] by
-
- 1 copy in tags/Safari-606.1.17.9
Tag Safari-606.1.17.9.
- 4:02 PM Changeset in webkit [231988] by
-
- 8 edits3 adds in trunk
NetworkLoadChecker should cancel its content extension retrieval task when being destroyed
https://bugs.webkit.org/show_bug.cgi?id=185661
<rdar://problem/39985509>
Reviewed by Chris Dumez.
Source/WebKit:
Make sure that the Content Extension retrieval callback checks that NetworkLoadChecker is alive.
This allows stopping NetworkLoadChecker be ref counted.
This in turns allows NetworkResourceLoader to delete its NetworkLoadChecker when being deleted as well.
By doing so, we simplify the memory management of NetworkResourceLoader and NetworkLoadChecker.
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad):
- NetworkProcess/NetworkLoadChecker.h:
(WebKit::NetworkLoadChecker::weakPtrFactory):
- NetworkProcess/NetworkResourceLoader.cpp:
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
- NetworkProcess/PingLoad.h:
LayoutTests:
- http/tests/contentextensions/crash-xhr-expected.txt: Added.
- http/tests/contentextensions/crash-xhr.html: Added.
- http/tests/contentextensions/crash-xhr.html.json: Added.
- 3:57 PM Changeset in webkit [231987] by
-
- 16 edits in branches/safari-606.1.17-branch/Source
Cherry-pick r231963. rdar://problem/40004666
Avoid keeping the frame alive when ref'ing a WindowProxy
https://bugs.webkit.org/show_bug.cgi?id=185737
<rdar://problem/40004666>
Reviewed by Sam Weinig.
Source/WebCore:
Avoid keeping the frame alive when ref'ing a WindowProxy by making WindowProxy
manage its own refcount (instead of proxying refcounting to the Frame). As a
result, a WindowProxy can now be detached from its Frame. When detached, it
return null when asked for a JSWindowProxy.
It is important to not extend the lifetime of the Frame because we want script
to stop running when the Page gets destroyed.
- bindings/js/JSWindowProxy.cpp: (WebCore::toJS): (WebCore::toJSWindowProxy):
- bindings/js/JSWindowProxy.h: (WebCore::toJSWindowProxy):
- bindings/js/ScriptController.cpp: (WebCore::ScriptController::evaluateInWorld): (WebCore::ScriptController::loadModuleScriptInWorld): (WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld): (WebCore::ScriptController::evaluateModule): (WebCore::ScriptController::setupModuleScriptHandlers): (WebCore::ScriptController::jsWindowProxy): (WebCore::ScriptController::windowScriptNPObject): (WebCore::ScriptController::executeIfJavaScriptURL):
- bindings/js/ScriptController.h: (WebCore::ScriptController::globalObject):
- bindings/js/ScriptControllerMac.mm: (WebCore::ScriptController::windowScriptObject):
- bindings/js/ScriptState.cpp: (WebCore::mainWorldExecState):
- bindings/js/WindowProxy.cpp: (WebCore::WindowProxy::WindowProxy): (WebCore::WindowProxy::~WindowProxy): (WebCore::WindowProxy::detachFromFrame): (WebCore::WindowProxy::createJSWindowProxy): (WebCore::WindowProxy::globalObject): (WebCore::WindowProxy::createJSWindowProxyWithInitializedScript): (WebCore::WindowProxy::setDOMWindow): (WebCore::WindowProxy::window const): (WebCore::WindowProxy::ref): Deleted. (WebCore::WindowProxy::deref): Deleted.
- bindings/js/WindowProxy.h: (WebCore::WindowProxy::create): (WebCore::WindowProxy::frame const): (WebCore::WindowProxy::jsWindowProxy):
- dom/DocumentTouch.cpp: (WebCore::DocumentTouch::createTouch):
- page/AbstractFrame.cpp: (WebCore::AbstractFrame::AbstractFrame): (WebCore::AbstractFrame::~AbstractFrame):
- page/AbstractFrame.h:
Source/WebKit:
- WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::windowScriptNPObject):
Source/WebKitLegacy/mac:
- Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::getWindowNPObject):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:57 PM Changeset in webkit [231986] by
-
- 41 edits2 copies16 adds in branches/safari-606.1.17-branch
Cherry-pick r231961. rdar://problem/40271131
JSC should have InstanceOf inline caching
https://bugs.webkit.org/show_bug.cgi?id=185652
Reviewed by Saam Barati.
JSTests:
- microbenchmarks/instanceof-always-hit-one.js: Added.
- microbenchmarks/instanceof-always-hit-two.js: Added.
- microbenchmarks/instanceof-dynamic.js: Added.
- microbenchmarks/instanceof-sometimes-hit.js: Added.
- stress/instanceof-dynamic-proxy-check-structure.js: Added.
- stress/instanceof-dynamic-proxy-loop.js: Added.
- stress/instanceof-dynamic-proxy.js: Added.
- stress/instanceof-hit-one-object-then-another.js: Added.
- stress/instanceof-hit-two-objects-then-another.js: Added.
- stress/instanceof-prototype-change.js: Added.
- stress/instanceof-prototype-change-to-hit.js: Added.
- stress/instanceof-prototype-change-to-null.js: Added.
- stress/instanceof-prototype-change-watchpointable.js: Added.
Source/JavaScriptCore:
This adds a polymorphic inline cache for instanceof. It caches hits and misses. It uses the
existing PolymorphicAccess IC machinery along with all of its heuristics. If we ever generate
too many cases, we emit the generic instanceof implementation instead.
All of the JIT tiers use the same InstanceOf IC. It uses the existing JITInlineCacheGenerator
abstraction.
This is a ~40% speed-up on instanceof microbenchmarks. It's a *tiny* (~1%) speed-up on
Octane/boyer. I think I can make that speed-up bigger by inlining the inline cache.
- API/tests/testapi.mm: (testObjectiveCAPIMain):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- b3/B3Effects.h: (JSC::B3::Effects::forReadOnlyCall):
- bytecode/AccessCase.cpp: (JSC::AccessCase::guardedByStructureCheck const): (JSC::AccessCase::canReplace const): (JSC::AccessCase::visitWeak const): (JSC::AccessCase::generateWithGuard): (JSC::AccessCase::generateImpl):
- bytecode/AccessCase.h:
- bytecode/InstanceOfAccessCase.cpp: Added. (JSC::InstanceOfAccessCase::create): (JSC::InstanceOfAccessCase::dumpImpl const): (JSC::InstanceOfAccessCase::clone const): (JSC::InstanceOfAccessCase::~InstanceOfAccessCase): (JSC::InstanceOfAccessCase::InstanceOfAccessCase):
- bytecode/InstanceOfAccessCase.h: Added. (JSC::InstanceOfAccessCase::prototype const):
- bytecode/ObjectPropertyCondition.h: (JSC::ObjectPropertyCondition::hasPrototypeWithoutBarrier): (JSC::ObjectPropertyCondition::hasPrototype):
- bytecode/ObjectPropertyConditionSet.cpp: (JSC::generateConditionsForInstanceOf):
- bytecode/ObjectPropertyConditionSet.h:
- bytecode/PolymorphicAccess.cpp: (JSC::PolymorphicAccess::addCases): (JSC::PolymorphicAccess::regenerate): (WTF::printInternal):
- bytecode/PropertyCondition.cpp: (JSC::PropertyCondition::dumpInContext const): (JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const): (JSC::PropertyCondition::validityRequiresImpurePropertyWatchpoint const): (WTF::printInternal):
- bytecode/PropertyCondition.h: (JSC::PropertyCondition::absenceWithoutBarrier): (JSC::PropertyCondition::absenceOfSetEffectWithoutBarrier): (JSC::PropertyCondition::hasPrototypeWithoutBarrier): (JSC::PropertyCondition::hasPrototype): (JSC::PropertyCondition::hasPrototype const): (JSC::PropertyCondition::prototype const): (JSC::PropertyCondition::hash const): (JSC::PropertyCondition::operator== const):
- bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::StructureStubInfo): (JSC::StructureStubInfo::reset):
- bytecode/StructureStubInfo.h: (JSC::StructureStubInfo::considerCaching):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGInlineCacheWrapper.h:
- dfg/DFGInlineCacheWrapperInlines.h: (JSC::DFG::InlineCacheWrapper<GeneratorType>::finalize):
- dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h: (JSC::DFG::JITCompiler::addInstanceOf):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::usedRegisters): (JSC::DFG::SpeculativeJIT::compileInstanceOfForCells): (JSC::DFG::SpeculativeJIT::compileInstanceOf): (JSC::DFG::SpeculativeJIT::compileInstanceOfForObject): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileAssertNotEmpty): (JSC::FTL::DFG::LowerDFGToB3::compilePutById): (JSC::FTL::DFG::LowerDFGToB3::compileNumberIsInteger): (JSC::FTL::DFG::LowerDFGToB3::compileIn): (JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf): (JSC::FTL::DFG::LowerDFGToB3::getById): (JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
- jit/ICStats.h:
- jit/JIT.cpp: (JSC::JIT::privateCompileSlowCases): (JSC::JIT::link):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp: (JSC::JITInlineCacheGenerator::JITInlineCacheGenerator): (JSC::JITInlineCacheGenerator::finalize): (JSC::JITByIdGenerator::JITByIdGenerator): (JSC::JITByIdGenerator::finalize): (JSC::JITInstanceOfGenerator::JITInstanceOfGenerator): (JSC::JITInstanceOfGenerator::generateFastPath): (JSC::JITInstanceOfGenerator::finalize):
- jit/JITInlineCacheGenerator.h: (JSC::JITInlineCacheGenerator::reportSlowPathCall): (JSC::JITInlineCacheGenerator::slowPathBegin const): (JSC::JITInstanceOfGenerator::JITInstanceOfGenerator): (JSC::finalizeInlineCaches): (JSC::JITByIdGenerator::reportSlowPathCall): Deleted. (JSC::JITByIdGenerator::slowPathBegin const): Deleted.
- jit/JITOpcodes.cpp: (JSC::JIT::emit_op_instanceof): (JSC::JIT::emitSlow_op_instanceof):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp: (JSC::JIT::privateCompileGetByValWithCachedId): (JSC::JIT::privateCompilePutByValWithCachedId):
- jit/RegisterSet.cpp: (JSC::RegisterSet::stubUnavailableRegisters):
- jit/Repatch.cpp: (JSC::tryCacheIn): (JSC::tryCacheInstanceOf): (JSC::repatchInstanceOf): (JSC::resetPatchableJump): (JSC::resetIn): (JSC::resetInstanceOf):
- jit/Repatch.h:
- runtime/Options.h:
- runtime/Structure.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231961 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:56 PM Changeset in webkit [231985] by
-
- 21 edits in branches/safari-606.1.17-branch/Source/JavaScriptCore
Cherry-pick r231905. rdar://problem/40271131
[JSC] Use AssemblyHelpers' type checking functions as much as possible
https://bugs.webkit.org/show_bug.cgi?id=185730
Reviewed by Saam Barati.
Let's use AssemblyHelpers' type checking functions as much as possible. This hides the complex
bit and register operations for type tagging of JSValue. It is really useful when we would like
to tweak type tagging representation since the code is collected into AssemblyHelpers. And
the named function is more readable than some branching operations.
We also remove unnecessary branching functions in JIT / JSInterfaceJIT. Some of them are duplicate
to AssemblyHelpers' one.
We add several new type checking functions to AssemblyHelpers. Moreover, we add branchIfXXX(GPRReg)
functions even for 32bit environment. In 32bit environment, this function takes tag register. This
semantics is aligned to the existing branchIfCell / branchIfNotCell.
- bytecode/AccessCase.cpp: (JSC::AccessCase::generateWithGuard):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileValueToInt32): (JSC::DFG::SpeculativeJIT::compileDoubleRep): (JSC::DFG::SpeculativeJIT::compileInstanceOfForObject): (JSC::DFG::SpeculativeJIT::compileSpread): (JSC::DFG::SpeculativeJIT::speculateCellTypeWithoutTypeFiltering): (JSC::DFG::SpeculativeJIT::speculateCellType): (JSC::DFG::SpeculativeJIT::speculateNumber): (JSC::DFG::SpeculativeJIT::speculateMisc): (JSC::DFG::SpeculativeJIT::compileExtractValueFromWeakMapGet): (JSC::DFG::SpeculativeJIT::compileCreateThis): (JSC::DFG::SpeculativeJIT::compileGetPrototypeOf): (JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::emitCall): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq): (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq): (JSC::DFG::SpeculativeJIT::emitCall): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::compile): (JSC::DFG::SpeculativeJIT::convertAnyInt):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileAssertNotEmpty):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::branchIfInt32): (JSC::AssemblyHelpers::branchIfNotInt32): (JSC::AssemblyHelpers::branchIfNumber): (JSC::AssemblyHelpers::branchIfNotNumber): (JSC::AssemblyHelpers::branchIfBoolean): (JSC::AssemblyHelpers::branchIfNotBoolean): (JSC::AssemblyHelpers::branchIfEmpty): (JSC::AssemblyHelpers::branchIfNotEmpty): (JSC::AssemblyHelpers::branchIfUndefined): (JSC::AssemblyHelpers::branchIfNotUndefined): (JSC::AssemblyHelpers::branchIfNull): (JSC::AssemblyHelpers::branchIfNotNull):
- jit/JIT.h:
- jit/JITArithmetic.cpp: (JSC::JIT::emit_compareAndJump): (JSC::JIT::emit_compareAndJumpSlow):
- jit/JITArithmetic32_64.cpp: (JSC::JIT::emit_compareAndJump): (JSC::JIT::emit_op_unsigned): (JSC::JIT::emit_op_inc): (JSC::JIT::emit_op_dec): (JSC::JIT::emitBinaryDoubleOp): (JSC::JIT::emit_op_mod):
- jit/JITCall.cpp: (JSC::JIT::compileCallEval): (JSC::JIT::compileOpCall):
- jit/JITCall32_64.cpp: (JSC::JIT::compileCallEval): (JSC::JIT::compileOpCall):
- jit/JITInlines.h: (JSC::JIT::emitJumpSlowCaseIfNotJSCell): (JSC::JIT::emitJumpIfBothJSCells): (JSC::JIT::emitJumpSlowCaseIfJSCell): (JSC::JIT::emitJumpIfNotInt): (JSC::JIT::emitJumpSlowCaseIfNotInt): (JSC::JIT::emitJumpSlowCaseIfNotNumber): (JSC::JIT::emitJumpIfCellObject): Deleted. (JSC::JIT::emitJumpIfCellNotObject): Deleted. (JSC::JIT::emitJumpIfJSCell): Deleted. (JSC::JIT::emitJumpIfInt): Deleted.
- jit/JITOpcodes.cpp: (JSC::JIT::emit_op_instanceof): (JSC::JIT::emit_op_is_undefined): (JSC::JIT::emit_op_is_cell_with_type): (JSC::JIT::emit_op_is_object): (JSC::JIT::emit_op_to_primitive): (JSC::JIT::emit_op_jeq_null): (JSC::JIT::emit_op_jneq_null): (JSC::JIT::compileOpStrictEq): (JSC::JIT::compileOpStrictEqJump): (JSC::JIT::emit_op_to_number): (JSC::JIT::emit_op_to_string): (JSC::JIT::emit_op_to_object): (JSC::JIT::emit_op_eq_null): (JSC::JIT::emit_op_neq_null): (JSC::JIT::emit_op_to_this): (JSC::JIT::emit_op_create_this): (JSC::JIT::emit_op_check_tdz): (JSC::JIT::emitNewFuncExprCommon): (JSC::JIT::emit_op_profile_type):
- jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_instanceof): (JSC::JIT::emit_op_is_undefined): (JSC::JIT::emit_op_is_cell_with_type): (JSC::JIT::emit_op_is_object): (JSC::JIT::emit_op_to_primitive): (JSC::JIT::emit_op_not): (JSC::JIT::emit_op_jeq_null): (JSC::JIT::emit_op_jneq_null): (JSC::JIT::emit_op_jneq_ptr): (JSC::JIT::emit_op_eq): (JSC::JIT::emit_op_jeq): (JSC::JIT::emit_op_neq): (JSC::JIT::emit_op_jneq): (JSC::JIT::compileOpStrictEq): (JSC::JIT::compileOpStrictEqJump): (JSC::JIT::emit_op_eq_null): (JSC::JIT::emit_op_neq_null): (JSC::JIT::emit_op_to_number): (JSC::JIT::emit_op_to_string): (JSC::JIT::emit_op_to_object): (JSC::JIT::emit_op_create_this): (JSC::JIT::emit_op_to_this): (JSC::JIT::emit_op_check_tdz): (JSC::JIT::emit_op_profile_type):
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emitGetByValWithCachedId): (JSC::JIT::emitGenericContiguousPutByVal): (JSC::JIT::emitPutByValWithCachedId): (JSC::JIT::emit_op_get_from_scope): (JSC::JIT::emit_op_put_to_scope): (JSC::JIT::emitWriteBarrier): (JSC::JIT::emitIntTypedArrayPutByVal): (JSC::JIT::emitFloatTypedArrayPutByVal):
- jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emitContiguousLoad): (JSC::JIT::emitArrayStorageLoad): (JSC::JIT::emitGetByValWithCachedId): (JSC::JIT::emitGenericContiguousPutByVal): (JSC::JIT::emitPutByValWithCachedId): (JSC::JIT::emit_op_get_from_scope): (JSC::JIT::emit_op_put_to_scope):
- jit/JSInterfaceJIT.h: (JSC::JSInterfaceJIT::emitLoadJSCell): (JSC::JSInterfaceJIT::emitLoadInt32): (JSC::JSInterfaceJIT::emitLoadDouble): (JSC::JSInterfaceJIT::emitJumpIfNumber): Deleted. (JSC::JSInterfaceJIT::emitJumpIfNotNumber): Deleted. (JSC::JSInterfaceJIT::emitJumpIfNotType): Deleted.
- jit/Repatch.cpp: (JSC::linkPolymorphicCall):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::absThunkGenerator):
- tools/JSDollarVM.cpp: (WTF::DOMJITNode::checkSubClassSnippet): (WTF::DOMJITFunctionObject::checkSubClassSnippet):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231905 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:28 PM Changeset in webkit [231984] by
-
- 2 edits in trunk/Source/WebKit
WebProcess fails to launch
https://bugs.webkit.org/show_bug.cgi?id=185140
Reviewed by Geoffrey Garen.
If the NSApplication runloop is not used in the WebContent process, launchServicesCheckIn() needs to be called
in order for enableSandboxStyleFileQuarantine() to succeed. Determine at runtime if launchServicesCheckIn()
should be called by checking if the NSApplication event loop is running.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
- 2:46 PM Changeset in webkit [231983] by
-
- 3 edits1 add in trunk
Add missing exception check.
https://bugs.webkit.org/show_bug.cgi?id=185786
<rdar://problem/35686560>
Reviewed by Michael Saboff.
JSTests:
- stress/regress-185786.js: Added.
Source/JavaScriptCore:
- runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator):
- 2:29 PM Changeset in webkit [231982] by
-
- 14 edits in trunk
Complete fix for enabling modern EME by default
https://bugs.webkit.org/show_bug.cgi?id=185770
<rdar://problem/40368220>
Reviewed by Eric Carlson.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
- platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
- 2:05 PM Changeset in webkit [231981] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: Canvas: put
hasVisualEffectbehind an experimental setting
https://bugs.webkit.org/show_bug.cgi?id=185758
Reviewed by Matt Baker.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Setting.js:
- UserInterface/Models/RecordingAction.js:
(WI.RecordingAction.prototype.process):
- UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement.prototype.onattach):
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
- 1:20 PM Changeset in webkit [231980] by
-
- 11 edits in trunk/Source
Convert ProcessPrivilege assertions to regular debug-only assertions
https://bugs.webkit.org/show_bug.cgi?id=185775
<rdar://problem/40372286>
Reviewed by Geoffrey Garen.
In Bug 184322 I added a number of RELEASE_ASSERT checks that certain
UI-only calls were not being made in the WebContent process.
Measurements have shown that these RELEASE_ASSERTs have regressed performance
by around 1% on some benchmarks, so we should convert them to normal asserts.
This patch changes the RELEASE_ASSERTs into ASSERTs.
Source/WebCore:
- platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::setDragImage):
- platform/mac/PlatformScreenMac.mm:
(WebCore::displayID):
(WebCore::firstScreen):
(WebCore::window):
(WebCore::screen):
(WebCore::getScreenProperties):
(WebCore::screenIsMonochrome):
Source/WebKit:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::becomeFirstResponder):
(WebKit::WebViewImpl::pluginFocusOrWindowFocusChanged):
(WebKit::WebViewImpl::validateUserInterfaceItem):
(WebKit::WebViewImpl::startSpeaking):
(WebKit::WebViewImpl::stopSpeaking):
(WebKit::applicationFlagsForDrag):
(WebKit::WebViewImpl::doneWithKeyEvent):
- UIProcess/Gamepad/mac/UIGamepadProviderMac.mm:
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):
- UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::enterFullscreen):
(WebKit::PluginProcessProxy::beginModal):
(WebKit::PluginProcessProxy::endModal):
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::DisplayLink):
(WebKit::DisplayLink::~DisplayLink):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::getIsSpeaking):
(WebKit::WebPageProxy::speak):
(WebKit::WebPageProxy::stopSpeaking):
(WebKit::WebPageProxy::startDisplayLink):
- UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
- 1:13 PM Changeset in webkit [231979] by
-
- 13 edits1 add in trunk
Handle failure to extend sandbox gracefully
https://bugs.webkit.org/show_bug.cgi?id=185779
<rdar://problem/40316349>
Reviewed by Brent Fulgham.
Source/WebCore:
Test: TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::deny): Include the error string in the promise rejection.
- Modules/mediastream/UserMediaRequest.h:
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _denyNextUserMediaRequest]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Don't append
the request to m_grantedRequests if it failed.
(WebKit::UserMediaPermissionRequestManagerProxy::grantAccess): Deny request if willCreateMediaStream
fails.
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::willCreateMediaStream): Don't try to extend sandbox if
we fail to allocate all necessary handles.
- UIProcess/UserMediaProcessManager.h:
(WebKit::UserMediaProcessManager::denyNextUserMediaRequest): New, for testing.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm: Added.
(-[SimulateFailedSandboxMessageHandler userContentController:didReceiveScriptMessage:]):
(-[SimulateFailedSandboxUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[SimulateFailedSandboxUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):
(MediaCaptureSimulateFailedSandbox::SetUp):
(MediaCaptureSimulateFailedSandbox::loadTestAndWaitForMessage):
(TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/disableGetUserMedia.html:
- 12:33 PM Changeset in webkit [231978] by
-
- 2 edits in trunk/Tools
"debug-safari --ios-simulator" creates lldb target to launch Mac Safari
https://bugs.webkit.org/show_bug.cgi?id=185774
Reviewed by Andy Estes.
For now, the script debug-safari is not supported for WebKit for iOS. To
fix this we differentiate between the Apple Mac port and Apple embedded
ports.
- Scripts/webkitdirs.pm:
(safariPath): Substitute isAppleMacWebKit() for isAppleCocoaWebKit().
(isAppleMacWebKit): Added.
(isAppleCocoaWebKit): Write in terms of isAppleMacWebKit() and isEmbeddedWebKit().
(launcherName): Substitute isAppleMacWebKit() for isAppleCocoaWebKit().
(mobileSafariBundle): Substitute isIOSWebKit() for isAppleCocoaWebKit().
(debugSafari): Substitute isAppleMacWebKit() for isAppleCocoaWebKit().
(runSafari): Ditto.
(runMiniBrowser): Ditto.
(debugMiniBrowser): Ditto.
(runWebKitTestRunner): Ditto.
(debugWebKitTestRunner): Ditto.
- 12:01 PM Changeset in webkit [231977] by
-
- 249 edits8 adds in trunk
[Web Animations] Turn Web Animations with CSS integration on for test runners
https://bugs.webkit.org/show_bug.cgi?id=184819
<rdar://problem/39597337>
Unreviewed. Rolling out the patch for this bug, it caused some flaky timeouts for animation suspension tests.
LayoutTests/imported/mozilla:
- css-animations/test_animation-cancel.html:
- css-animations/test_animation-computed-timing.html:
- css-animations/test_animation-currenttime.html:
- css-animations/test_animation-finish.html:
- css-animations/test_animation-finished.html:
- css-animations/test_animation-id.html:
- css-animations/test_animation-pausing.html:
- css-animations/test_animation-playstate.html:
- css-animations/test_animation-ready.html:
- css-animations/test_animation-reverse.html:
- css-animations/test_animation-starttime.html:
- css-animations/test_animations-dynamic-changes.html:
- css-animations/test_cssanimation-animationname.html:
- css-animations/test_document-get-animations.html:
- css-animations/test_effect-target.html:
- css-animations/test_element-get-animations.html:
- css-animations/test_event-dispatch.html:
- css-animations/test_event-order.html:
- css-animations/test_keyframeeffect-getkeyframes.html:
- css-animations/test_pseudoElement-get-animations.html:
- css-animations/test_setting-effect.html:
- css-transitions/test_animation-cancel.html:
- css-transitions/test_animation-computed-timing.html:
- css-transitions/test_animation-currenttime.html:
- css-transitions/test_animation-finished.html:
- css-transitions/test_animation-pausing.html:
- css-transitions/test_animation-ready.html:
- css-transitions/test_animation-starttime.html:
- css-transitions/test_csstransition-transitionproperty.html:
- css-transitions/test_document-get-animations.html:
- css-transitions/test_effect-target.html:
- css-transitions/test_element-get-animations.html:
- css-transitions/test_event-dispatch.html:
- css-transitions/test_keyframeeffect-getkeyframes.html:
- css-transitions/test_pseudoElement-get-animations.html:
- css-transitions/test_setting-effect.html:
LayoutTests/imported/w3c:
- web-platform-tests/css-timing-1/frames-timing-functions-output.html:
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/ready.html:
- web-platform-tests/web-animations/timing-model/animations/playing-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/reversing-an-animation.html:
Source/WebCore:
Tests: animations/animation-internals-api-multiple-keyframes.html
animations/animation-internals-api.html
transitions/transition-drt-api-delay.html
transitions/transition-drt-api.html
- dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
- dom/PseudoElement.cpp:
(WebCore::PseudoElement::clearHostElement):
- page/FrameView.cpp:
(WebCore::FrameView::didDestroyRenderTree):
- page/RuntimeEnabledFeatures.h:
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
Source/WebKit:
- Shared/WebPreferences.yaml:
Tools:
- DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
- DumpRenderTree/TestOptions.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(runTest):
(shouldOverrideAndDisableWebAnimationsCSSIntegrationPreference): Deleted.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::TestOptions):
(WTR::isLegacyAnimationEngineTestPath): Deleted.
- WebKitTestRunner/TestOptions.h:
LayoutTests:
- TestExpectations:
- animations/3d/matrix-transform-type-animation.html:
- animations/3d/replace-filling-transform.html:
- animations/3d/transform-origin-vs-functions.html:
- animations/3d/transform-perspective.html:
- animations/additive-transform-animations.html:
- animations/animation-border-overflow.html:
- animations/animation-callback-timestamp.html:
- animations/animation-controller-drt-api.html:
- animations/animation-direction-alternate-reverse-expected.txt:
- animations/animation-direction-alternate-reverse.html:
- animations/animation-direction-reverse-fill-mode-hardware.html:
- animations/animation-direction-reverse-hardware-opacity.html:
- animations/animation-direction-reverse-hardware.html:
- animations/animation-direction-reverse-non-hardware.html:
- animations/animation-direction-reverse-timing-functions-hardware.html:
- animations/animation-direction-reverse-timing-functions.html:
- animations/animation-direction.html:
- animations/animation-followed-by-transition.html:
- animations/animation-hit-test-transform.html:
- animations/animation-hit-test.html:
- animations/animation-internals-api-expected.txt: Added.
- animations/animation-internals-api-multiple-keyframes-expected.txt: Added.
- animations/animation-internals-api-multiple-keyframes.html: Added.
- animations/animation-internals-api.html: Added.
- animations/animation-offscreen-to-onscreen.html:
- animations/big-rotation-expected.txt:
- animations/big-rotation.html:
- animations/change-completed-animation-transform.html:
- animations/change-keyframes.html:
- animations/combo-transform-rotate+scale.html:
- animations/cross-fade-background-image.html:
- animations/cross-fade-border-image-source.html:
- animations/cross-fade-list-style-image.html:
- animations/cross-fade-webkit-mask-box-image.html:
- animations/duplicate-keys-expected.html:
- animations/duplicate-keys.html:
- animations/duplicated-keyframes-name.html:
- animations/fill-forwards-end-state.html:
- animations/fill-mode-forwards-zero-duration-expected.txt:
- animations/fill-mode-forwards-zero-duration.html:
- animations/font-variations/font-stretch.html:
- animations/font-variations/font-style.html:
- animations/font-variations/font-variation-settings-order.html:
- animations/font-variations/font-variation-settings-unlike.html:
- animations/font-variations/font-variation-settings.html:
- animations/font-variations/font-weight.html:
- animations/generic-from-to.html:
- animations/import.html:
- animations/keyframe-multiple-timing-functions-transform.html:
- animations/keyframe-timing-functions-transform.html:
- animations/keyframe-timing-functions.html:
- animations/keyframe-timing-functions2.html:
- animations/keyframes-comma-separated.html:
- animations/keyframes-dynamic.html:
- animations/keyframes-infinite-iterations.html:
- animations/keyframes-invalid-keys.html:
- animations/keyframes-out-of-order.html:
- animations/keyframes.html:
- animations/lineheight-animation.html:
- animations/longhand-timing-function.html:
- animations/matrix-anim.html:
- animations/missing-from-to-transforms.html:
- animations/missing-from-to.html:
- animations/missing-keyframe-properties-repeating.html:
- animations/missing-keyframe-properties-timing-function.html:
- animations/missing-keyframe-properties.html:
- animations/missing-values-first-keyframe.html:
- animations/missing-values-last-keyframe.html:
- animations/multiple-animations-timing-function.html:
- animations/multiple-animations.html:
- animations/multiple-keyframes.html:
- animations/negative-delay.html:
- animations/pause-crash.html:
- animations/play-state-start-paused.html:
- animations/simultaneous-start-left.html:
- animations/simultaneous-start-transform.html:
- animations/spring-function.html:
- animations/stacking-context-unchanged-while-running.html:
- animations/timing-functions.html:
- animations/transition-and-animation-1.html:
- animations/transition-and-animation-2.html:
- animations/transition-and-animation-3.html:
- animations/unanimated-style.html:
- animations/unprefixed-keyframes.html:
- animations/width-using-ems.html:
- compositing/animation/animated-composited-inside-hidden.html:
- compositing/animation/computed-style-during-delay.html:
- compositing/animation/layer-for-filling-animation.html:
- compositing/backing/backface-visibility-flip.html:
- compositing/contents-scale/animating.html:
- compositing/layer-creation/animation-overlap-with-children.html:
- compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
- compositing/layer-creation/multiple-keyframes-animation-overlap.html:
- compositing/layer-creation/overlap-animation-clipping.html:
- compositing/layer-creation/overlap-animation-container.html:
- compositing/layer-creation/overlap-animation.html:
- compositing/layer-creation/scale-rotation-animation-overlap.html:
- compositing/layer-creation/translate-animation-overlap.html:
- compositing/layer-creation/translate-scale-animation-overlap.html:
- compositing/overflow/overflow-positioning.html:
- compositing/reflections/animation-inside-reflection.html:
- compositing/reflections/nested-reflection-animated.html:
- compositing/reflections/nested-reflection-transition.html:
- compositing/transitions/scale-transition-no-start.html:
- compositing/transitions/singular-scale-transition.html:
- compositing/visible-rect/animated.html:
- css3/calc/transitions-dependent.html:
- css3/calc/transitions.html:
- css3/filters/backdrop/animation.html:
- css3/filters/composited-during-animation.html:
- css3/filters/filter-animation-from-none-hw.html:
- css3/filters/filter-animation-from-none-multi-hw.html:
- css3/filters/filter-animation-from-none-multi.html:
- css3/filters/filter-animation-from-none.html:
- css3/filters/filter-animation-hw.html:
- css3/filters/filter-animation-multi-hw.html:
- css3/filters/filter-animation-multi.html:
- css3/filters/filter-animation.html:
- css3/masking/clip-path-animation.html:
- fast/animation/css-animation-resuming-when-visible-with-style-change.html:
- fast/animation/css-animation-resuming-when-visible.html:
- fast/animation/css-animation-throttling-lowPowerMode.html:
- fast/css-generated-content/pseudo-animation.html:
- fast/css-generated-content/pseudo-transition.html:
- fast/filter-image/filter-image-animation.html:
- fast/shapes/shape-outside-floats/shape-outside-animation.html:
- fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
- fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
- imported/blink/transitions/unprefixed-transform.html:
- platform/ios/TestExpectations:
- platform/win/TestExpectations:
- transitions/background-position-transitions.html:
- transitions/background-transitions.html:
- transitions/blendmode-transitions.html:
- transitions/border-radius-transition.html:
- transitions/clip-path-path-transitions.html:
- transitions/clip-path-transitions.html:
- transitions/clip-transition.html:
- transitions/color-transition-all.html:
- transitions/color-transition-premultiplied.html:
- transitions/color-transition-rounding.html:
- transitions/cross-fade-background-image.html:
- transitions/cross-fade-border-image.html:
- transitions/cubic-bezier-overflow-color.html:
- transitions/cubic-bezier-overflow-length.html:
- transitions/cubic-bezier-overflow-shadow.html:
- transitions/cubic-bezier-overflow-svg-length.html:
- transitions/cubic-bezier-overflow-transform.html:
- transitions/default-timing-function.html:
- transitions/delay.html:
- transitions/flex-transitions.html:
- transitions/font-family-during-transition.html:
- transitions/frames-timing-function.html:
- transitions/interrupted-all-transition.html:
- transitions/longhand-vs-shorthand-initial.html:
- transitions/mask-transitions.html:
- transitions/min-max-width-height-transitions.html:
- transitions/mismatched-shadow-styles.html:
- transitions/mismatched-shadow-transitions.html:
- transitions/mixed-type.html:
- transitions/move-after-transition.html:
- transitions/multiple-background-size-transitions.html:
- transitions/multiple-background-transitions.html:
- transitions/multiple-mask-transitions.html:
- transitions/multiple-shadow-transitions.html:
- transitions/negative-delay.html:
- transitions/opacity-transition-zindex.html:
- transitions/remove-transition-style.html:
- transitions/shape-outside-transitions.html:
- transitions/shorthand-border-transitions.html:
- transitions/shorthand-transitions.html:
- transitions/steps-timing-function.html:
- transitions/svg-layout-transition.html:
- transitions/svg-text-shadow-transition.html:
- transitions/svg-transitions.html:
- transitions/text-indent-transition.html:
- transitions/transform-op-list-match.html:
- transitions/transform-op-list-no-match.html:
- transitions/transition-drt-api-delay-expected.txt: Added.
- transitions/transition-drt-api-delay.html: Added.
- transitions/transition-drt-api-expected.txt: Added.
- transitions/transition-drt-api.html: Added.
- transitions/transition-end-event-rendering.html:
- transitions/transition-hit-test-transform.html:
- transitions/transition-hit-test.html:
- transitions/transition-in-delay-phase.html:
- transitions/transition-on-element-with-content.html:
- transitions/transition-shorthand-delay.html:
- transitions/transition-timing-function.html:
- transitions/transition-to-from-auto.html:
- transitions/transition-to-from-undefined.html:
- transitions/visited-link-color.html:
- transitions/zero-duration-in-list.html:
- transitions/zero-duration-with-non-zero-delay-end.html:
- transitions/zero-duration-with-non-zero-delay-start.html:
- webanimations/css-animations.html:
- webanimations/css-transitions.html:
- 11:55 AM Changeset in webkit [231976] by
-
- 4 edits in trunk/Source/JavaScriptCore
Unreviewed, fix exception checking, part 2
https://bugs.webkit.org/show_bug.cgi?id=185350
- dfg/DFGOperations.cpp:
(JSC::DFG::putByValInternal):
- jit/JITOperations.cpp:
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::putDirectAccessorWithReify):
- 11:45 AM Changeset in webkit [231975] by
-
- 1 copy in releases/WPE WebKit/webkit-2.20.0
WPE WebKit 2.20.0
- 11:42 AM Changeset in webkit [231974] by
-
- 4 edits in releases/WebKitGTK/webkit-2.20
Unreviewed. Update OptionsWPE.cmake and NEWS for 2.20.0 release.
- 11:42 AM Changeset in webkit [231973] by
-
- 9 edits in releases/WebKitGTK/webkit-2.20
Merged r231843 - [CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations
https://bugs.webkit.org/show_bug.cgi?id=182622
Reviewed by Michael Catanzaro.
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsJSCOnly.cmake:
- Source/cmake/OptionsWPE.cmake:
Enable THREADS_PREFER_PTHREAD_FLAG. This uses -pthread instead of
-lpthread, fixing the 64-bit RISC-V build of the GTK+ port due to
missing atomic primitives.
- Source/cmake/WebKitCompilerFlags.cmake:
Move the test to detect whether we need to link against libatomic
to a common CMake file so it can be used from both JavaScriptCore
and WebKit.
Source/JavaScriptCore:
We were linking JavaScriptCore against libatomic in MIPS because
in that architecture atomic_fetch_add_8() is not a compiler
intrinsic and is provided by that library instead. However other
architectures (e.g armel) are in the same situation, so we need a
generic test.
That test already exists in WebKit/CMakeLists.txt, so we just have
to move it to a common file (WebKitCompilerFlags.cmake) and use
its result (ATOMIC_INT64_REQUIRES_LIBATOMIC) here.
- CMakeLists.txt:
Source/WebKit:
Move the test to determine whether we need to link against
libatomic to the common file WebKitCompilerFlags.cmake so it can
also be used for JavaScriptCore.
- CMakeLists.txt:
- 11:42 AM Changeset in webkit [231972] by
-
- 2 edits1 delete in releases/WebKitGTK/webkit-2.20/Source/WTF
Merged r230254 - [WTF] Remove Atomics.cpp
https://bugs.webkit.org/show_bug.cgi?id=184300
Reviewed by Konstantin Tokarev.
This Atomics.cpp is a workaround for GCC which version is < 4.8.
Our compiler requirement is now 5.0.0. This workaround is no
longer necessary.
- wtf/Atomics.cpp: Removed.
- wtf/CMakeLists.txt:
- 11:42 AM Changeset in webkit [231971] by
-
- 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore
Merged r231801 - [WPE] Build failure with RPi userland drivers and gstreamer-gl
https://bugs.webkit.org/show_bug.cgi?id=185639
Reviewed by Philippe Normand.
When building for the RPi with userland drivers (dispmanx) override the
value of GST_GL_HAVE_GLSYNC to 1 to avoid that the gstreamer-gl headers
try to redefine the GLsync type that is already defined in libepoxy.
Defining gl2_h_ is also needed to avoid other conflicting type
definitions that happen between libepoxy and RPi GLES2 userland
headers when the gstreamer-gl headers are included.
The issue doesn't happen with 1.14.0, so a check for that is added
as well.
No new tests, no behavior change. It is a build fix.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
- 11:42 AM Changeset in webkit [231970] by
-
- 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore
Merged r231804 - Add missing header to fix build.
https://bugs.webkit.org/show_bug.cgi?id=185378
Patch by Thomas Klausner <tk@giga.or.at> on 2018-05-15
Reviewed by Michael Catanzaro.
- platform/network/soup/SoupNetworkSession.h:
- 11:42 AM Changeset in webkit [231969] by
-
- 10 edits2 adds in releases/WebKitGTK/webkit-2.20
Merge r231917 - [WPE] Implement and enable FULLSCREEN_API
https://bugs.webkit.org/show_bug.cgi?id=185676
Reviewed by Žan Doberšek.
.:
Remove the CMake option to disable this option for WPE.
This feature gets enabled now via Source/cmake/WebKitFeatures.cmake
- Source/cmake/OptionsWPE.cmake:
Source/WebKit:
Do the initial implementation of FULLSCREEN_API for WPE and
enable the CMake option by default.
Most of the layout tests (55 of 58) are passing and the feature
seems to work fine on different websites that use it.
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::fullScreenManagerProxyClient):
(WebKit::PageClientImpl::closeFullScreenManager):
(WebKit::PageClientImpl::isFullScreen):
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::exitFullScreen):
(WebKit::PageClientImpl::beganEnterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):
- UIProcess/API/wpe/PageClientImpl.h:
- UIProcess/API/wpe/WPEView.h:
(WKWPE::View::isFullScreen):
(WKWPE::View::setFullScreen):
Tools:
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewFullScreen):
LayoutTests:
Enable all the 58 fullscreen related tests.
Are all passing but 3.
- platform/wpe/TestExpectations:
- platform/wpe/fullscreen/full-screen-placeholder-expected.txt: Added. Copied baseline from WebKitGTK+ port.
- 11:28 AM Changeset in webkit [231968] by
-
- 5 edits in trunk
[Curl] Bug fix on suspend/resume behavior.
https://bugs.webkit.org/show_bug.cgi?id=183089
The flag was not set correctly. Also wrong method was called.
Patch by Basuke Suzuki <Basuke Suzuki> on 2018-05-18
Reviewed by Youenn Fablet.
Source/WebCore:
Enable loader tests to cover this case.
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::cancel): Remove unnecessary cleanup. Use runXXX method.
(WebCore::CurlRequest::suspend): Added cancel check.
(WebCore::CurlRequest::resume): Ditto.
(WebCore::CurlRequest::callClient): Use runXXX method. Change to move semantics.
(WebCore::runOnMainThread): Added.
(WebCore::CurlRequest::runOnWorkerThreadIfRequired): Added.
(WebCore::CurlRequest::setupTransfer): Bug fix. Call setRequestPaused directly.
(WebCore::CurlRequest::didReceiveData): Add state flag update.
(WebCore::CurlRequest::invokeDidReceiveResponseForFile): Use runXXX to simplify.
(WebCore::CurlRequest::completeDidReceiveResponse): Ditto.
(WebCore::CurlRequest::setRequestPaused): Protect state change by mutex.
(WebCore::CurlRequest::setCallbackPaused): Ditto.
(WebCore::CurlRequest::invokeCancel): Added.
(WebCore::CurlRequest::pausedStatusChanged): Use runXXX to simplify.
(WebCore::CurlRequest::updateHandlePauseState): Accessor for m_isHandlePaused.
(WebCore::CurlRequest::isHandlePaused const): Ditto.
- platform/network/curl/CurlRequest.h: Add mutex and paused state.
(WebCore::CurlRequest::shouldBePaused const): Rename from isPaused.
(WebCore::CurlRequest::isPaused const): Deleted.
LayoutTests:
- platform/wincairo/TestExpectations: Enable loader/ tests for WinCairo.
- 11:23 AM Changeset in webkit [231967] by
-
- 3 edits2 adds in trunk
[Extra zoom mode] Clearing text fields should dispatch input events of type "deleteContent"
https://bugs.webkit.org/show_bug.cgi?id=185769
<rdar://problem/40368261>
Reviewed by Tim Horton.
Source/WebKit:
When setting the text of the currently focused element to the empty string, just delete the text instead of
pretending to insert an empty string. This mimics deleting content using the delete key on macOS, and fires an
input event with inputType "deleteContent" instead of "insertText".
Test: fast/forms/extrazoom/delete-content-in-text-field.html
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setTextAsync):
LayoutTests:
Adds a new test to inspect the input events dispatched as a result of inserting and deleting text in a form
control. The inputTypes should be "insertText" and "deleteContent", respectively; the data values should be the
inserted string and null, respectively.
- fast/forms/extrazoom/delete-content-in-text-field-expected.txt: Added.
- fast/forms/extrazoom/delete-content-in-text-field.html: Added.
- 11:17 AM Changeset in webkit [231966] by
-
- 13 edits in trunk/Source/WebKit
Renamed "trackNetworkActivity" to "tracksResourceLoadMilestones"
https://bugs.webkit.org/show_bug.cgi?id=185523
<rdar://problem/40136361>
Reviewed by Geoffrey Garen.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::networkActivityTrackingEnabled):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::tracksResourceLoadMilestones const):
(WebKit::NetworkProcess::trackNetworkActivity const): Deleted.
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationTracksResourceLoadMilestones):
(WKContextConfigurationSetTracksResourceLoadMilestones):
(WKContextConfigurationTrackNetworkActivity): Deleted.
(WKContextConfigurationSetTrackNetworkActivity): Deleted.
- UIProcess/API/C/WKContextConfigurationRef.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration tracksResourceLoadMilestones]):
(-[_WKProcessPoolConfiguration setTracksResourceLoadMilestones:]):
(-[_WKProcessPoolConfiguration trackNetworkActivity]): Deleted.
(-[_WKProcessPoolConfiguration setTrackNetworkActivity:]): Deleted.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- 11:08 AM WebKitGTK/2.20.x edited by
- (diff)
- 11:04 AM WebKitGTK/2.20.x edited by
- (diff)
- 11:02 AM WebKitGTK/2.20.x edited by
- (diff)
- 11:01 AM WebKitGTK/2.20.x edited by
- (diff)
- 10:58 AM Changeset in webkit [231965] by
-
- 2 edits in trunk/LayoutTests
Layout Test http/wpt/service-workers/header-filtering.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=184469
<rdar://problem/39428226>
Unreviewed.
- platform/mac-wk2/TestExpectations: Removed flaky expectation that was added back inadvertently.
- 10:47 AM WebKitGTK/2.20.x edited by
- (diff)
- 10:36 AM Changeset in webkit [231964] by
-
- 3 edits in trunk/Tools
[Win][MiniBrowser] Create MainWindow even in transparent mode
https://bugs.webkit.org/show_bug.cgi?id=185597
Reviewed by Per Arne Vollan.
The current implementations doesn't create the MainWindow in
transparent mode. The screenshot is in Bug 58300.
There were three problems:
- Can't control the WebView. ie. going backward and forward.
- Can't quit the program.
- It makes implementation complicated.
- MiniBrowser/win/Common.cpp (resizeSubViews): Resize sub views
even in the transparent mode.
- MiniBrowser/win/WinMain.cpp:
(wWinMain): Create the main window even in the transparent mode.
- 10:34 AM Changeset in webkit [231963] by
-
- 16 edits in trunk/Source
Avoid keeping the frame alive when ref'ing a WindowProxy
https://bugs.webkit.org/show_bug.cgi?id=185737
<rdar://problem/40004666>
Reviewed by Sam Weinig.
Source/WebCore:
Avoid keeping the frame alive when ref'ing a WindowProxy by making WindowProxy
manage its own refcount (instead of proxying refcounting to the Frame). As a
result, a WindowProxy can now be detached from its Frame. When detached, it
return null when asked for a JSWindowProxy.
It is important to not extend the lifetime of the Frame because we want script
to stop running when the Page gets destroyed.
- bindings/js/JSWindowProxy.cpp:
(WebCore::toJS):
(WebCore::toJSWindowProxy):
- bindings/js/JSWindowProxy.h:
(WebCore::toJSWindowProxy):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::loadModuleScriptInWorld):
(WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld):
(WebCore::ScriptController::evaluateModule):
(WebCore::ScriptController::setupModuleScriptHandlers):
(WebCore::ScriptController::jsWindowProxy):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::executeIfJavaScriptURL):
- bindings/js/ScriptController.h:
(WebCore::ScriptController::globalObject):
- bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::windowScriptObject):
- bindings/js/ScriptState.cpp:
(WebCore::mainWorldExecState):
- bindings/js/WindowProxy.cpp:
(WebCore::WindowProxy::WindowProxy):
(WebCore::WindowProxy::~WindowProxy):
(WebCore::WindowProxy::detachFromFrame):
(WebCore::WindowProxy::createJSWindowProxy):
(WebCore::WindowProxy::globalObject):
(WebCore::WindowProxy::createJSWindowProxyWithInitializedScript):
(WebCore::WindowProxy::setDOMWindow):
(WebCore::WindowProxy::window const):
(WebCore::WindowProxy::ref): Deleted.
(WebCore::WindowProxy::deref): Deleted.
- bindings/js/WindowProxy.h:
(WebCore::WindowProxy::create):
(WebCore::WindowProxy::frame const):
(WebCore::WindowProxy::jsWindowProxy):
- dom/DocumentTouch.cpp:
(WebCore::DocumentTouch::createTouch):
- page/AbstractFrame.cpp:
(WebCore::AbstractFrame::AbstractFrame):
(WebCore::AbstractFrame::~AbstractFrame):
- page/AbstractFrame.h:
Source/WebKit:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::windowScriptNPObject):
Source/WebKitLegacy/mac:
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::getWindowNPObject):
- 10:31 AM Changeset in webkit [231962] by
-
- 3 edits2 adds in trunk
[iOS] Password fields obscure the text with rectangles instead of circles
https://bugs.webkit.org/show_bug.cgi?id=185760
<rdar://problem/38644697>
Reviewed by Zalan Bujtas.
Source/WebCore:
Password fields are obscured by drawing U+25CF BLACK CIRCLE. On iOS, we have custom handling
for this character. However, this custom handling is unnecessary and isn't present on macOS.
Instead, we should simply unify the password obscuring codepath between iOS and macOS.
Test: fast/text/black-circle.html
- platform/graphics/ios/FontCacheIOS.mm:
(WebCore::requiresCustomFallbackFont):
(WebCore::FontCache::getCustomFallbackFont):
LayoutTests:
- fast/text/black-circle-expected.html: Added.
- fast/text/black-circle.html: Added.
- 10:29 AM Changeset in webkit [231961] by
-
- 41 edits18 adds in trunk
JSC should have InstanceOf inline caching
https://bugs.webkit.org/show_bug.cgi?id=185652
Reviewed by Saam Barati.
JSTests:
- microbenchmarks/instanceof-always-hit-one.js: Added.
- microbenchmarks/instanceof-always-hit-two.js: Added.
- microbenchmarks/instanceof-dynamic.js: Added.
- microbenchmarks/instanceof-sometimes-hit.js: Added.
- stress/instanceof-dynamic-proxy-check-structure.js: Added.
- stress/instanceof-dynamic-proxy-loop.js: Added.
- stress/instanceof-dynamic-proxy.js: Added.
- stress/instanceof-hit-one-object-then-another.js: Added.
- stress/instanceof-hit-two-objects-then-another.js: Added.
- stress/instanceof-prototype-change.js: Added.
- stress/instanceof-prototype-change-to-hit.js: Added.
- stress/instanceof-prototype-change-to-null.js: Added.
- stress/instanceof-prototype-change-watchpointable.js: Added.
Source/JavaScriptCore:
This adds a polymorphic inline cache for instanceof. It caches hits and misses. It uses the
existing PolymorphicAccess IC machinery along with all of its heuristics. If we ever generate
too many cases, we emit the generic instanceof implementation instead.
All of the JIT tiers use the same InstanceOf IC. It uses the existing JITInlineCacheGenerator
abstraction.
This is a ~40% speed-up on instanceof microbenchmarks. It's a *tiny* (~1%) speed-up on
Octane/boyer. I think I can make that speed-up bigger by inlining the inline cache.
- API/tests/testapi.mm:
(testObjectiveCAPIMain):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- b3/B3Effects.h:
(JSC::B3::Effects::forReadOnlyCall):
- bytecode/AccessCase.cpp:
(JSC::AccessCase::guardedByStructureCheck const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::visitWeak const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
- bytecode/AccessCase.h:
- bytecode/InstanceOfAccessCase.cpp: Added.
(JSC::InstanceOfAccessCase::create):
(JSC::InstanceOfAccessCase::dumpImpl const):
(JSC::InstanceOfAccessCase::clone const):
(JSC::InstanceOfAccessCase::~InstanceOfAccessCase):
(JSC::InstanceOfAccessCase::InstanceOfAccessCase):
- bytecode/InstanceOfAccessCase.h: Added.
(JSC::InstanceOfAccessCase::prototype const):
- bytecode/ObjectPropertyCondition.h:
(JSC::ObjectPropertyCondition::hasPrototypeWithoutBarrier):
(JSC::ObjectPropertyCondition::hasPrototype):
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::generateConditionsForInstanceOf):
- bytecode/ObjectPropertyConditionSet.h:
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::regenerate):
(WTF::printInternal):
- bytecode/PropertyCondition.cpp:
(JSC::PropertyCondition::dumpInContext const):
(JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const):
(JSC::PropertyCondition::validityRequiresImpurePropertyWatchpoint const):
(WTF::printInternal):
- bytecode/PropertyCondition.h:
(JSC::PropertyCondition::absenceWithoutBarrier):
(JSC::PropertyCondition::absenceOfSetEffectWithoutBarrier):
(JSC::PropertyCondition::hasPrototypeWithoutBarrier):
(JSC::PropertyCondition::hasPrototype):
(JSC::PropertyCondition::hasPrototype const):
(JSC::PropertyCondition::prototype const):
(JSC::PropertyCondition::hash const):
(JSC::PropertyCondition::operator== const):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::reset):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::considerCaching):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGInlineCacheWrapper.h:
- dfg/DFGInlineCacheWrapperInlines.h:
(JSC::DFG::InlineCacheWrapper<GeneratorType>::finalize):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::addInstanceOf):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::usedRegisters):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForCells):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileAssertNotEmpty):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberIsInteger):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
- jit/ICStats.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITInlineCacheGenerator::finalize):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITByIdGenerator::finalize):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITInstanceOfGenerator::generateFastPath):
(JSC::JITInstanceOfGenerator::finalize):
- jit/JITInlineCacheGenerator.h:
(JSC::JITInlineCacheGenerator::reportSlowPathCall):
(JSC::JITInlineCacheGenerator::slowPathBegin const):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::finalizeInlineCaches):
(JSC::JITByIdGenerator::reportSlowPathCall): Deleted.
(JSC::JITByIdGenerator::slowPathBegin const): Deleted.
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
- jit/RegisterSet.cpp:
(JSC::RegisterSet::stubUnavailableRegisters):
- jit/Repatch.cpp:
(JSC::tryCacheIn):
(JSC::tryCacheInstanceOf):
(JSC::repatchInstanceOf):
(JSC::resetPatchableJump):
(JSC::resetIn):
(JSC::resetInstanceOf):
- jit/Repatch.h:
- runtime/Options.h:
- runtime/Structure.h:
- 10:13 AM Changeset in webkit [231960] by
-
- 1 edit in trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm
Fix the ENABLE(EXTRA_ZOOM_MODE) build.
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::configureWireLessTargetMonitoring):
- 10:03 AM Changeset in webkit [231959] by
-
- 7 edits3 deletes in trunk
Unreviewed, rolling out r231935.
Caused an accessibility test to fail
Reverted changeset:
"RenderLayer::scrollRectToVisible() should not propagate a
subframe's scroll to its cross-origin parent"
https://bugs.webkit.org/show_bug.cgi?id=185664
https://trac.webkit.org/changeset/231935
- 9:32 AM Changeset in webkit [231958] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Implement height computation for non-replaced floating elements.
https://bugs.webkit.org/show_bug.cgi?id=185767
Reviewed by Antti Koivisto.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeFloatingHeight const):
(WebCore::Layout::FormattingContext::computeFloatingNonReplacedHeight const):
(WebCore::Layout::FormattingContext::contentHeightForFormattingContextRoot const):
- layout/FormattingContext.h:
- 9:15 AM Changeset in webkit [231957] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix exception checking
https://bugs.webkit.org/show_bug.cgi?id=185350
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::putDirectWithReify):
(JSC::CommonSlowPaths::putDirectAccessorWithReify):
- 9:08 AM Changeset in webkit [231956] by
-
- 3 edits in trunk/Source/WebKit
-Wmemset-elt-size warning in LibWebRTCSocket constructor
https://bugs.webkit.org/show_bug.cgi?id=185555
<rdar://problem/40217250>
Reviewed by Darin Adler.
GetOption implementation was broken in that it was not initializing properly its array of options.
This patch fixes it by using an array of optional<int> which are initialized by default.
When no value is set, we return the error code -1.
In theory, we should go to NetworkProcess to get the actual value.
Since GetOption is not used in practice, we just do this best effort implementation of storing previously set values.
- WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
(WebKit::LibWebRTCSocket::LibWebRTCSocket):
(WebKit::LibWebRTCSocket::GetOption):
- WebProcess/Network/webrtc/LibWebRTCSocket.h:
- 8:22 AM Changeset in webkit [231955] by
-
- 25 edits12 adds in trunk
Make all SVG shape interfaces inherit from SVGGeometryElement
https://bugs.webkit.org/show_bug.cgi?id=185600
Reviewed by Antti Koivisto.
Source/WebCore:
Make all SVG shape interfaces inherit from SVGGeometryElement
as defined by SVG2:
https://svgwg.org/svg2-draft/shapes.html#DOMInterfaces
Tests: svg/dom/SVGGeometry-circle.xhtml
svg/dom/SVGGeometry-ellipse.xhtml
svg/dom/SVGGeometry-line.xhtml
svg/dom/SVGGeometry-polygon.xhtml
svg/dom/SVGGeometry-polyline.xhtml
svg/dom/SVGGeometry-rect.xhtml
- rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::getTotalLength const): Added shape
independent implementation for all methods defined
by SVGGeometryElement interface. Calculations are
based on the Path object created and referenced by
RenderSVGShape.
(WebCore::RenderSVGShape::getPointAtLength const):
- rendering/svg/RenderSVGShape.h:
- svg/SVGCircleElement.cpp:
Repeating pattern: Change inheritance from
SVGGraphicsElement to SVGGeometryElement.
(WebCore::SVGCircleElement::SVGCircleElement):
- svg/SVGCircleElement.h:
- svg/SVGCircleElement.idl:
- svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::SVGEllipseElement):
- svg/SVGEllipseElement.h:
- svg/SVGEllipseElement.idl:
- svg/SVGGeometryElement.cpp:
(WebCore::SVGGeometryElement::getTotalLength const):
(WebCore::SVGGeometryElement::getPointAtLength const):
- svg/SVGGeometryElement.h:
- svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::SVGLineElement):
- svg/SVGLineElement.h:
- svg/SVGLineElement.idl:
- svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::SVGPolyElement):
- svg/SVGPolyElement.h:
- svg/SVGPolygonElement.idl:
- svg/SVGPolylineElement.idl:
- svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::SVGRectElement):
- svg/SVGRectElement.h:
- svg/SVGRectElement.idl:
LayoutTests:
Update test for inheritance of SVG shape interfaces (more passes).
Add individual tests for SVGGeometryElement interfaces for each
SVG shape. There already are more detailed tests for the methods
and the SVGPathElement interface.
- svg/dom/SVGGeometry-circle-expected.txt: Added.
- svg/dom/SVGGeometry-circle.xhtml: Added.
- svg/dom/SVGGeometry-ellipse-expected.txt: Added.
- svg/dom/SVGGeometry-ellipse.xhtml: Added.
- svg/dom/SVGGeometry-line-expected.txt: Added.
- svg/dom/SVGGeometry-line.xhtml: Added.
- svg/dom/SVGGeometry-polygon-expected.txt: Added.
- svg/dom/SVGGeometry-polygon.xhtml: Added.
- svg/dom/SVGGeometry-polyline-expected.txt: Added.
- svg/dom/SVGGeometry-polyline.xhtml: Added.
- svg/dom/SVGGeometry-rect-expected.txt: Added.
- svg/dom/SVGGeometry-rect.xhtml: Added.
- svg/dom/svg2-inheritance-expected.txt:
- 8:09 AM Changeset in webkit [231954] by
-
- 15 edits in branches/safari-605-branch
Cherry-pick r229503. rdar://problem/39841080
[macOS] Copying a table from the Numbers app and pasting into iCloud Numbers fails
https://bugs.webkit.org/show_bug.cgi?id=183485
<rdar://problem/38041984>
Reviewed by Ryosuke Niwa.
Source/WebCore:
After r222656, WebKit now treats raw image data on the pasteboard as files for the purposes of computing
DataTransfer.files and DataTransfer.types. However, this is combined with existing policies that suppress
DataTransfer.getData and DataTransfer.setData when the pasteboard contains files (generalized to copy/paste in
r222688). This means we now don't allow web pages to access "text/plain" in the case where the user copies part
of a table from the native Numbers app since Numbers additionally writes a snapshot of the table to the platform
pasteboard.
This restriction on getData/setData was intended to prevent web pages from extracting users' file paths when
pasting or dropping, so it doesn't make sense to enforce this restriction even when there is only in-memory
image data on the pasteboard. To fix this bug, we make Pasteboard::fileContentState() differentiate between
cases where there are (real) files on the pasteboard, and cases where we've fallen back to treating image data
as files.
Rebaselined existing LayoutTests to match new behavior.
Also covered by 4 new API tests:
- PasteMixedContent.ImageDataAndPlainText
- PasteMixedContent.ImageDataAndPlainTextAndURL
- PasteMixedContent.ImageDataAndPlainTextAndURLAndHTML
- UIPasteboardTests.DataTransferGetDataWhenPastingImageAndText
- dom/DataTransfer.cpp: (WebCore::DataTransfer::shouldSuppressGetAndSetDataToAvoidExposingFilePaths const):
If custom pasteboard data is enabled, suppress getData and setData if and only if we might actually expose file
paths (see Pasteboard::fileContentState).
(WebCore::DataTransfer::types const):
Only allow "text/html" or "text/uri-list" in the case where there are actual files in the pasteboard. If there's
only image data, add all of the DOM-safe types back into the list of types.
- platform/Pasteboard.h:
- platform/StaticPasteboard.h:
Add an enum type to represent the result of Pasteboard::fileContentState.
- NoFileOrImageData indicates that there was nothing on the pasteboard that could be considered a file
from the point of view of the page.
- InMemoryImage indicates that there are no files on the pasteboard, but there is image data that we consider
to be files, exposed via DataTransfer API.
- MayContainFilePaths indicates that there might be file paths on the pasteboard. This means that the source
has either written file paths to the pasteboard (for example, through NSFilenamesPboardType) or the source
has written image data along with a URL type of some sort that does not match one of the allowed URL schemes
that are safe to expose (currently, these are http-family, data, or blob).
- platform/cocoa/PasteboardCocoa.mm: (WebCore::Pasteboard::fileContentState):
Refactor to return one of the three enum types described above.
(WebCore::Pasteboard::containsFiles): Deleted.
- platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::fileContentState): (WebCore::Pasteboard::containsFiles): Deleted.
- platform/win/PasteboardWin.cpp: (WebCore::Pasteboard::fileContentState): (WebCore::Pasteboard::containsFiles): Deleted.
- platform/wpe/PasteboardWPE.cpp: (WebCore::Pasteboard::fileContentState): (WebCore::Pasteboard::containsFiles): Deleted.
Adjust for Pasteboard::fileContentState() tweaks.
Tools:
Add new API tests to cover scenarios in which we paste image data alongside text data.
- TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm: (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: (TestWebKitAPI::TEST):
LayoutTests:
Rebaseline some pasteboard-related layout tests, in which we now expose text/plain alongside files that were
written to the DataTransfer by the page itself.
- editing/pasteboard/data-transfer-item-list-add-file-multiple-times-expected.txt:
- editing/pasteboard/data-transfer-item-list-add-file-on-copy-expected.txt:
- editing/pasteboard/data-transfer-item-list-add-file-on-drag-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229503 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:31 AM Changeset in webkit [231953] by
-
- 4 edits in trunk/Source/WebCore
[LFC] Implement height computation for replaced elements.
https://bugs.webkit.org/show_bug.cgi?id=185756
Reviewed by Antti Koivisto.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::computeFloatingHeight const):
(WebCore::Layout::FormattingContext::computeReplacedHeight const):
(WebCore::Layout::FormattingContext::computeReplacedWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowReplacedHeight const):
- layout/FormattingContext.h:
- 7:30 AM Changeset in webkit [231952] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Implement width computation for non-replaced floating elements.
https://bugs.webkit.org/show_bug.cgi?id=185759
Reviewed by Antti Koivisto.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeFloatingNonReplacedWidth const):
- layout/FormattingContext.h:
- 7:15 AM Changeset in webkit [231951] by
-
- 2 edits in trunk/LayoutTests
The test fast/images/animated-image-mp4-crash.html is failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=185765
Unreviewed test gardening.
- platform/win/TestExpectations:
- 7:08 AM Changeset in webkit [231950] by
-
- 7 edits2 adds in trunk
[modern-media-controls] AirPlaySupport should be disabled by default
https://bugs.webkit.org/show_bug.cgi?id=185658
<rdar://problem/40272213>
Reviewed by Simon Fraser.
Source/WebCore:
We now only enable AirplaySupport if the controls are visible to the user _and_ media has played.
Test: media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play.html
- Modules/modern-media-controls/media/airplay-support.js:
(AirplaySupport.prototype.enable):
(AirplaySupport.prototype.controlsUserVisibilityDidChange):
(AirplaySupport.prototype._shouldBeEnabled):
(AirplaySupport):
LayoutTests:
Add a new test that checks that we create an AirplaySupport object only after media has started playing.
We also modify a couple of existing tests so they are no longer flaky, as a first pass of this patch
revealed some flakiness.
- media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play-expected.txt: Added.
- media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play.html: Added.
- media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt:
- media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
- media/modern-media-controls/volume-support/volume-support-click-expected.txt:
- media/modern-media-controls/volume-support/volume-support-click.html:
- 1:11 AM Changeset in webkit [231949] by
-
- 5 edits in trunk/Source/WebCore
Stop softlinking QuickLook when loading from client-registered schemes
https://bugs.webkit.org/show_bug.cgi?id=185716
<rdar://problem/40303227>
Reviewed by Dan Bernstein.
No new tests, just a performance improvement.
- dom/Document.cpp:
- platform/SchemeRegistry.cpp:
- platform/ios/QuickLook.h:
- platform/ios/QuickLook.mm:
(WebCore::isQuickLookPreviewURL):
(WebCore::QLPreviewProtocol): Deleted.
Hard-code the QuickLook preview URL scheme, instead of loading the QuickLook
framework to retrieve it. It will never change, and just in case it does,
add an ASSERT (which does load QuickLook) so that we'll find out.
- 1:06 AM Changeset in webkit [231948] by
-
- 249 edits8 deletes in trunk
[Web Animations] Turn Web Animations with CSS integration on for test runners
https://bugs.webkit.org/show_bug.cgi?id=184819
<rdar://problem/39597337>
Reviewed by Jon Lee.
LayoutTests/imported/mozilla:
Since Web Animations with CSS integration is on by default on test runners, we no longer need
the special HTML comment to turn the flag on for select tests.
- css-animations/test_animation-cancel.html:
- css-animations/test_animation-computed-timing.html:
- css-animations/test_animation-currenttime.html:
- css-animations/test_animation-finish.html:
- css-animations/test_animation-finished.html:
- css-animations/test_animation-id.html:
- css-animations/test_animation-pausing.html:
- css-animations/test_animation-playstate.html:
- css-animations/test_animation-ready.html:
- css-animations/test_animation-reverse.html:
- css-animations/test_animation-starttime.html:
- css-animations/test_animations-dynamic-changes.html:
- css-animations/test_cssanimation-animationname.html:
- css-animations/test_document-get-animations.html:
- css-animations/test_effect-target.html:
- css-animations/test_element-get-animations.html:
- css-animations/test_event-dispatch.html:
- css-animations/test_event-order.html:
- css-animations/test_keyframeeffect-getkeyframes.html:
- css-animations/test_pseudoElement-get-animations.html:
- css-animations/test_setting-effect.html:
- css-transitions/test_animation-cancel.html:
- css-transitions/test_animation-computed-timing.html:
- css-transitions/test_animation-currenttime.html:
- css-transitions/test_animation-finished.html:
- css-transitions/test_animation-pausing.html:
- css-transitions/test_animation-ready.html:
- css-transitions/test_animation-starttime.html:
- css-transitions/test_csstransition-transitionproperty.html:
- css-transitions/test_document-get-animations.html:
- css-transitions/test_effect-target.html:
- css-transitions/test_element-get-animations.html:
- css-transitions/test_event-dispatch.html:
- css-transitions/test_keyframeeffect-getkeyframes.html:
- css-transitions/test_pseudoElement-get-animations.html:
- css-transitions/test_setting-effect.html:
LayoutTests/imported/w3c:
Since Web Animations with CSS integration is on by default on test runners, we no longer need
the special HTML comment to turn the flag on for select tests.
- web-platform-tests/css-timing-1/frames-timing-functions-output.html:
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/ready.html:
- web-platform-tests/web-animations/timing-model/animations/playing-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/reversing-an-animation.html:
Source/WebCore:
We ensure we always call into both CSSAnimationController::cancelAnimations() and
AnimationTimeline::cancelDeclarativeAnimationsForElement() since we want teardown of animations
to be performed no matter which animation code path is used. What that in mind, we don't
conditionalize the CSSAnimationController-related ASSERT() in FrameView::didDestroyRenderTree().
- dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
- dom/PseudoElement.cpp:
(WebCore::PseudoElement::clearHostElement):
- page/FrameView.cpp:
(WebCore::FrameView::didDestroyRenderTree):
- page/RuntimeEnabledFeatures.h:
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
Source/WebKit:
- Shared/WebPreferences.yaml: Leave Web Animations off by default, it's up to clients
to turn it on.
Tools:
Make the test runners turn both the main Web Animations flag and the Web Animations CSS
integration flag on.
We also remove the ability to toggle the Web Animations CSS integration flag using an HTML
comment directly at the top of the file since test runners now set the flag on by default
and a dedicated directory exists for tests that need to run with this flag off.
- DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
- DumpRenderTree/TestOptions.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(shouldOverrideAndDisableWebAnimationsCSSIntegrationPreference):
(runTest):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.cpp:
(WTR::isLegacyAnimationEngineTestPath):
(WTR::TestOptions::TestOptions):
- WebKitTestRunner/TestOptions.h:
LayoutTests:
Since Web Animations with CSS integration is on by default on test runners, we no longer need
the special HTML comment to turn the flag on for select tests.
- TestExpectations:
- animations/3d/matrix-transform-type-animation.html:
- animations/3d/replace-filling-transform.html:
- animations/3d/transform-origin-vs-functions.html:
- animations/3d/transform-perspective.html:
- animations/additive-transform-animations.html:
- animations/animation-border-overflow.html:
- animations/animation-callback-timestamp.html:
- animations/animation-controller-drt-api.html:
- animations/animation-direction-alternate-reverse-expected.txt:
- animations/animation-direction-alternate-reverse.html:
- animations/animation-direction-reverse-fill-mode-hardware.html:
- animations/animation-direction-reverse-hardware-opacity.html:
- animations/animation-direction-reverse-hardware.html:
- animations/animation-direction-reverse-non-hardware.html:
- animations/animation-direction-reverse-timing-functions-hardware.html:
- animations/animation-direction-reverse-timing-functions.html:
- animations/animation-direction.html:
- animations/animation-followed-by-transition.html:
- animations/animation-hit-test-transform.html:
- animations/animation-hit-test.html:
- animations/animation-internals-api-expected.txt: Removed.
- animations/animation-internals-api-multiple-keyframes-expected.txt: Removed.
- animations/animation-internals-api-multiple-keyframes.html: Removed.
- animations/animation-internals-api.html: Removed.
- animations/animation-offscreen-to-onscreen.html:
- animations/big-rotation-expected.txt:
- animations/big-rotation.html:
- animations/change-completed-animation-transform.html:
- animations/change-keyframes.html:
- animations/combo-transform-rotate+scale.html:
- animations/cross-fade-background-image.html:
- animations/cross-fade-border-image-source.html:
- animations/cross-fade-list-style-image.html:
- animations/cross-fade-webkit-mask-box-image.html:
- animations/duplicate-keys-expected.html:
- animations/duplicate-keys.html:
- animations/duplicated-keyframes-name.html:
- animations/fill-forwards-end-state.html:
- animations/fill-mode-forwards-zero-duration-expected.txt:
- animations/fill-mode-forwards-zero-duration.html:
- animations/font-variations/font-stretch.html:
- animations/font-variations/font-style.html:
- animations/font-variations/font-variation-settings-order.html:
- animations/font-variations/font-variation-settings-unlike.html:
- animations/font-variations/font-variation-settings.html:
- animations/font-variations/font-weight.html:
- animations/generic-from-to.html:
- animations/import.html:
- animations/keyframe-multiple-timing-functions-transform.html:
- animations/keyframe-timing-functions-transform.html:
- animations/keyframe-timing-functions.html:
- animations/keyframe-timing-functions2.html:
- animations/keyframes-comma-separated.html:
- animations/keyframes-dynamic.html:
- animations/keyframes-infinite-iterations.html:
- animations/keyframes-invalid-keys.html:
- animations/keyframes-out-of-order.html:
- animations/keyframes.html:
- animations/lineheight-animation.html:
- animations/longhand-timing-function.html:
- animations/matrix-anim.html:
- animations/missing-from-to-transforms.html:
- animations/missing-from-to.html:
- animations/missing-keyframe-properties-repeating.html:
- animations/missing-keyframe-properties-timing-function.html:
- animations/missing-keyframe-properties.html:
- animations/missing-values-first-keyframe.html:
- animations/missing-values-last-keyframe.html:
- animations/multiple-animations-timing-function.html:
- animations/multiple-animations.html:
- animations/multiple-keyframes.html:
- animations/negative-delay.html:
- animations/pause-crash.html:
- animations/play-state-start-paused.html:
- animations/simultaneous-start-left.html:
- animations/simultaneous-start-transform.html:
- animations/spring-function.html:
- animations/stacking-context-unchanged-while-running.html:
- animations/timing-functions.html:
- animations/transition-and-animation-1.html:
- animations/transition-and-animation-2.html:
- animations/transition-and-animation-3.html:
- animations/unanimated-style.html:
- animations/unprefixed-keyframes.html:
- animations/width-using-ems.html:
- compositing/animation/animated-composited-inside-hidden.html:
- compositing/animation/computed-style-during-delay.html:
- compositing/animation/layer-for-filling-animation.html:
- compositing/backing/backface-visibility-flip.html:
- compositing/contents-scale/animating.html:
- compositing/layer-creation/animation-overlap-with-children.html:
- compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
- compositing/layer-creation/multiple-keyframes-animation-overlap.html:
- compositing/layer-creation/overlap-animation-clipping.html:
- compositing/layer-creation/overlap-animation-container.html:
- compositing/layer-creation/overlap-animation.html:
- compositing/layer-creation/scale-rotation-animation-overlap.html:
- compositing/layer-creation/translate-animation-overlap.html:
- compositing/layer-creation/translate-scale-animation-overlap.html:
- compositing/overflow/overflow-positioning.html:
- compositing/reflections/animation-inside-reflection.html:
- compositing/reflections/nested-reflection-animated.html:
- compositing/reflections/nested-reflection-transition.html:
- compositing/transitions/scale-transition-no-start.html:
- compositing/transitions/singular-scale-transition.html:
- compositing/visible-rect/animated.html:
- css3/calc/transitions-dependent.html:
- css3/calc/transitions.html:
- css3/filters/backdrop/animation.html:
- css3/filters/composited-during-animation.html:
- css3/filters/filter-animation-from-none-hw.html:
- css3/filters/filter-animation-from-none-multi-hw.html:
- css3/filters/filter-animation-from-none-multi.html:
- css3/filters/filter-animation-from-none.html:
- css3/filters/filter-animation-hw.html:
- css3/filters/filter-animation-multi-hw.html:
- css3/filters/filter-animation-multi.html:
- css3/filters/filter-animation.html:
- css3/masking/clip-path-animation.html:
- fast/animation/css-animation-resuming-when-visible-with-style-change.html:
- fast/animation/css-animation-resuming-when-visible.html:
- fast/animation/css-animation-throttling-lowPowerMode.html:
- fast/css-generated-content/pseudo-animation.html:
- fast/css-generated-content/pseudo-transition.html:
- fast/filter-image/filter-image-animation.html:
- fast/shapes/shape-outside-floats/shape-outside-animation.html:
- fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
- fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
- imported/blink/transitions/unprefixed-transform.html:
- platform/ios/TestExpectations:
- platform/win/TestExpectations:
- transitions/background-position-transitions.html:
- transitions/background-transitions.html:
- transitions/blendmode-transitions.html:
- transitions/border-radius-transition.html:
- transitions/clip-path-path-transitions.html:
- transitions/clip-path-transitions.html:
- transitions/clip-transition.html:
- transitions/color-transition-all.html:
- transitions/color-transition-premultiplied.html:
- transitions/color-transition-rounding.html:
- transitions/cross-fade-background-image.html:
- transitions/cross-fade-border-image.html:
- transitions/cubic-bezier-overflow-color.html:
- transitions/cubic-bezier-overflow-length.html:
- transitions/cubic-bezier-overflow-shadow.html:
- transitions/cubic-bezier-overflow-svg-length.html:
- transitions/cubic-bezier-overflow-transform.html:
- transitions/default-timing-function.html:
- transitions/delay.html:
- transitions/flex-transitions.html:
- transitions/font-family-during-transition.html:
- transitions/frames-timing-function.html:
- transitions/interrupted-all-transition.html:
- transitions/longhand-vs-shorthand-initial.html:
- transitions/mask-transitions.html:
- transitions/min-max-width-height-transitions.html:
- transitions/mismatched-shadow-styles.html:
- transitions/mismatched-shadow-transitions.html:
- transitions/mixed-type.html:
- transitions/move-after-transition.html:
- transitions/multiple-background-size-transitions.html:
- transitions/multiple-background-transitions.html:
- transitions/multiple-mask-transitions.html:
- transitions/multiple-shadow-transitions.html:
- transitions/negative-delay.html:
- transitions/opacity-transition-zindex.html:
- transitions/remove-transition-style.html:
- transitions/shape-outside-transitions.html:
- transitions/shorthand-border-transitions.html:
- transitions/shorthand-transitions.html:
- transitions/steps-timing-function.html:
- transitions/svg-layout-transition.html:
- transitions/svg-text-shadow-transition.html:
- transitions/svg-transitions.html:
- transitions/text-indent-transition.html:
- transitions/transform-op-list-match.html:
- transitions/transform-op-list-no-match.html:
- transitions/transition-drt-api-delay-expected.txt: Removed.
- transitions/transition-drt-api-delay.html: Removed.
- transitions/transition-drt-api-expected.txt: Removed.
- transitions/transition-drt-api.html: Removed.
- transitions/transition-end-event-rendering.html:
- transitions/transition-hit-test-transform.html:
- transitions/transition-hit-test.html:
- transitions/transition-in-delay-phase.html:
- transitions/transition-on-element-with-content.html:
- transitions/transition-shorthand-delay.html:
- transitions/transition-timing-function.html:
- transitions/transition-to-from-auto.html:
- transitions/transition-to-from-undefined.html:
- transitions/visited-link-color.html:
- transitions/zero-duration-in-list.html:
- transitions/zero-duration-with-non-zero-delay-end.html:
- transitions/zero-duration-with-non-zero-delay-start.html:
- webanimations/css-animations.html:
- webanimations/css-transitions.html:
- 12:41 AM Changeset in webkit [231947] by
-
- 2 edits2 deletes in trunk/Source/WebKit
[Curl] Remove unused SystemProxyWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=185224
Reviewed by Antti Koivisto.
SystemProxyWin is not used at the moment. Remove it.
- NetworkProcess/win/SystemProxyWin.cpp: Removed.
- NetworkProcess/win/SystemProxyWin.h: Removed.
- PlatformWin.cmake: Removed SystemProxyWin.cpp.