Timeline
Jun 2, 2018:
- 7:22 PM Changeset in webkit [232449] by
-
- 11 edits14 adds in trunk
[ESNext][BigInt] Implement support for addition operations
https://bugs.webkit.org/show_bug.cgi?id=179002
Reviewed by Yusuke Suzuki.
JSTests:
- bigIntTests.yaml:
- stress/addition-order-evaluation.js: Added.
- stress/big-int-add-wrapped-value.js: Added.
- stress/big-int-addition-basic.js: Added.
- stress/big-int-addition-jit.js: Added.
- stress/big-int-addition-memory-stress.js: Added.
- stress/big-int-addition-string-coercion.js: Added.
- stress/big-int-addition-to-primitive-precedence.js: Added.
- stress/big-int-addition-to-primitive.js: Added.
- stress/big-int-addition-type-error.js: Added.
- stress/big-int-no-conversion-to-number.js:
- stress/big-int-sub-wrapped-value.js: Added.
- stress/big-int-subtraction-basic.js: Added.
- stress/big-int-subtraction-jit.js: Added.
- stress/big-int-subtraction-type-error.js: Added.
- stress/sub-order-evaluation.js: Added.
Source/JavaScriptCore:
This patch is implementing support to BigInt Operands into binary "+"
and binary "-" operators. Right now, we have limited support to DFG
and FTL JIT layers, but we plan to fix this support in future
patches.
- jit/JITOperations.cpp:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::stringToBigInt):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::multiply):
(JSC::JSBigInt::divide):
(JSC::JSBigInt::remainder):
(JSC::JSBigInt::add):
(JSC::JSBigInt::sub):
(JSC::JSBigInt::absoluteAdd):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::allocateFor):
(JSC::JSBigInt::toNumber const):
(JSC::JSBigInt::getPrimitiveNumber const):
- runtime/JSBigInt.h:
- runtime/JSCJSValueInlines.h:
- runtime/Operations.cpp:
(JSC::jsAddSlowCase):
- runtime/Operations.h:
(JSC::jsSub):
- 5:49 PM Changeset in webkit [232448] by
-
- 2 edits in trunk/Tools
run-jsc should pass the option to use dollar vm by default
https://bugs.webkit.org/show_bug.cgi?id=186170
Reviewed by Yusuke Suzuki.
- Scripts/run-jsc:
- 4:34 PM Changeset in webkit [232447] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, rolling out r232275.
May have caused a ~1% PLT regression on iOS
Reverted changeset:
"Store 0-lifetime stylesheets / scripts into the disk cache
for faster history navigations"
https://bugs.webkit.org/show_bug.cgi?id=186060
https://trac.webkit.org/changeset/232275
- 4:03 PM Changeset in webkit [232446] by
-
- 11 edits14 deletes in trunk
Unreviewed, rolling out r232439.
https://bugs.webkit.org/show_bug.cgi?id=186238
It breaks gtk-linux-32-release (Requested by caiolima on
#webkit).
Reverted changeset:
"[ESNext][BigInt] Implement support for addition operations"
https://bugs.webkit.org/show_bug.cgi?id=179002
https://trac.webkit.org/changeset/232439
- 4:02 PM Changeset in webkit [232445] by
-
- 6 edits3 deletes in trunk/Tools
Unreviewed, rolling out r232421.
https://bugs.webkit.org/show_bug.cgi?id=186240
Breaks webkitpy tests (Requested by aakashjain on #webkit).
Reverted changeset:
"Add some tests for lldb_webkit.py"
https://bugs.webkit.org/show_bug.cgi?id=183744
https://trac.webkit.org/changeset/232421
- 2:13 PM Changeset in webkit [232444] by
-
- 10 edits2 adds in trunk
Baseline op_jtrue emits an insane amount of code
https://bugs.webkit.org/show_bug.cgi?id=185708
Reviewed by Filip Pizlo.
JSTests:
- stress/logical-not-masquerades-as-undefined.js: Added.
(shouldBe):
(test):
- stress/logical-not.js: Added.
(shouldBe):
(test):
Source/JavaScriptCore:
op_jtrue / op_jfalse bloats massive amount of code. This patch attempts to reduce the size of this code by,
- op_jtrue / op_jfalse immediately jumps if the condition met. We add AssemblyHelpers::branchIf{Truthy,Falsey} to jump directly. This tightens the code.
- Align our emitConvertValueToBoolean implementation to FTL's boolify function. It emits less code.
This reduces the code size of op_jtrue in x64 from 220 bytes to 164 bytes.
[ 12] jtrue arg1, 6(->18)
0x7f233170162c: mov 0x30(%rbp), %rax
0x7f2331701630: mov %rax, %rsi
0x7f2331701633: xor $0x6, %rsi
0x7f2331701637: test $0xfffffffffffffffe, %rsi
0x7f233170163e: jnz 0x7f2331701654
0x7f2331701644: cmp $0x7, %eax
0x7f2331701647: setz %sil
0x7f233170164b: movzx %sil, %esi
0x7f233170164f: jmp 0x7f2331701705
0x7f2331701654: test %rax, %r14
0x7f2331701657: jz 0x7f233170169c
0x7f233170165d: cmp %r14, %rax
0x7f2331701660: jb 0x7f2331701675
0x7f2331701666: test %eax, %eax
0x7f2331701668: setnz %sil
0x7f233170166c: movzx %sil, %esi
0x7f2331701670: jmp 0x7f2331701705
0x7f2331701675: lea (%r14,%rax), %rsi
0x7f2331701679: movq %rsi, %xmm0
0x7f233170167e: xorps %xmm1, %xmm1
0x7f2331701681: ucomisd %xmm1, %xmm0
0x7f2331701685: jz 0x7f2331701695
0x7f233170168b: mov $0x1, %esi
0x7f2331701690: jmp 0x7f2331701705
0x7f2331701695: xor %esi, %esi
0x7f2331701697: jmp 0x7f2331701705
0x7f233170169c: test %rax, %r15
0x7f233170169f: jnz 0x7f2331701703
0x7f23317016a5: cmp $0x1, 0x5(%rax)
0x7f23317016a9: jnz 0x7f23317016c1
0x7f23317016af: mov 0x8(%rax), %esi
0x7f23317016b2: test %esi, %esi
0x7f23317016b4: setnz %sil
0x7f23317016b8: movzx %sil, %esi
0x7f23317016bc: jmp 0x7f2331701705
0x7f23317016c1: test $0x1, 0x6(%rax)
0x7f23317016c5: jz 0x7f23317016f9
0x7f23317016cb: mov (%rax), %esi
0x7f23317016cd: mov $0x7f23315000c8, %rdx
0x7f23317016d7: mov (%rdx), %rdx
0x7f23317016da: mov (%rdx,%rsi,8), %rsi
0x7f23317016de: mov $0x7f2330de0000, %rdx
0x7f23317016e8: cmp %rdx, 0x18(%rsi)
0x7f23317016ec: jnz 0x7f23317016f9
0x7f23317016f2: xor %esi, %esi
0x7f23317016f4: jmp 0x7f2331701705
0x7f23317016f9: mov $0x1, %esi
0x7f23317016fe: jmp 0x7f2331701705
0x7f2331701703: xor %esi, %esi
0x7f2331701705: test %esi, %esi
0x7f2331701707: jnz 0x7f233170171b
[ 12] jtrue arg1, 6(->18)
0x7f6c8710156c: mov 0x30(%rbp), %rax
0x7f6c87101570: test %rax, %r15
0x7f6c87101573: jnz 0x7f6c871015c8
0x7f6c87101579: cmp $0x1, 0x5(%rax)
0x7f6c8710157d: jnz 0x7f6c87101592
0x7f6c87101583: cmp $0x0, 0x8(%rax)
0x7f6c87101587: jnz 0x7f6c87101623
0x7f6c8710158d: jmp 0x7f6c87101615
0x7f6c87101592: test $0x1, 0x6(%rax)
0x7f6c87101596: jz 0x7f6c87101623
0x7f6c8710159c: mov (%rax), %esi
0x7f6c8710159e: mov $0x7f6c86f000e0, %rdx
0x7f6c871015a8: mov (%rdx), %rdx
0x7f6c871015ab: mov (%rdx,%rsi,8), %rsi
0x7f6c871015af: mov $0x7f6c867e0000, %rdx
0x7f6c871015b9: cmp %rdx, 0x18(%rsi)
0x7f6c871015bd: jnz 0x7f6c87101623
0x7f6c871015c3: jmp 0x7f6c87101615
0x7f6c871015c8: cmp %r14, %rax
0x7f6c871015cb: jb 0x7f6c871015de
0x7f6c871015d1: test %eax, %eax
0x7f6c871015d3: jnz 0x7f6c87101623
0x7f6c871015d9: jmp 0x7f6c87101615
0x7f6c871015de: test %rax, %r14
0x7f6c871015e1: jz 0x7f6c87101602
0x7f6c871015e7: lea (%r14,%rax), %rsi
0x7f6c871015eb: movq %rsi, %xmm0
0x7f6c871015f0: xorps %xmm1, %xmm1
0x7f6c871015f3: ucomisd %xmm1, %xmm0
0x7f6c871015f7: jz 0x7f6c87101615
0x7f6c871015fd: jmp 0x7f6c87101623
0x7f6c87101602: mov $0x7, %r11
0x7f6c8710160c: cmp %r11, %rax
0x7f6c8710160f: jz 0x7f6c87101623
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitBranch):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitBranch):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfTruthy):
(JSC::AssemblyHelpers::branchIfFalsey):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::addJump):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::emit_op_jtrue):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::emit_op_jtrue):
- 2:11 PM Changeset in webkit [232443] by
-
- 11 edits1 add1 delete in trunk
[JSC] Remove WeakReferenceHarvester
https://bugs.webkit.org/show_bug.cgi?id=186102
Reviewed by Filip Pizlo.
JSTests:
- microbenchmarks/create-many-weak-map.js: Added.
Source/JavaScriptCore:
After several cleanups, now JSWeakMap becomes the last user of WeakReferenceHarvester.
Since JSWeakMap is already managed in IsoSubspace, we can iterate marked JSWeakMap
by using output constraints & Subspace iteration.
This patch removes WeakReferenceHarvester. Instead of managing this linked-list, our
output constraint set iterates marked JSWeakMap by using Subspace.
And we also add locking for JSWeakMap's rehash and output constraint visiting.
Attached microbenchmark does not show any regression.
- API/JSAPIWrapperObject.h:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- heap/Heap.cpp:
(JSC::Heap::endMarking):
(JSC::Heap::addCoreConstraints):
- heap/Heap.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::addWeakReferenceHarvester): Deleted.
- heap/SlotVisitor.h:
- heap/WeakReferenceHarvester.h: Removed.
- runtime/WeakMapImpl.cpp:
(JSC::WeakMapImpl<WeakMapBucket>::visitChildren):
(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKey>>::visitOutputConstraints):
(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints):
(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKey>>::visitWeakReferences): Deleted.
(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitWeakReferences): Deleted.
- runtime/WeakMapImpl.h:
(JSC::WeakMapImpl::WeakMapImpl):
(JSC::WeakMapImpl::finishCreation):
(JSC::WeakMapImpl::rehash):
(JSC::WeakMapImpl::makeAndSetNewBuffer):
(JSC::WeakMapImpl::DeadKeyCleaner::target): Deleted.
- 2:08 PM Changeset in webkit [232442] by
-
- 25 edits9 adds in trunk
[JSC] Object.create should have intrinsic
https://bugs.webkit.org/show_bug.cgi?id=186200
Reviewed by Filip Pizlo.
JSTests:
- microbenchmarks/object-create-null.js: Added.
(test):
- microbenchmarks/object-create-unknown-object-prototype.js: Added.
(test):
- microbenchmarks/object-create-untyped-prototype.js: Added.
(test):
- stress/get-by-pname-only-prototype-properties.js: Added.
(foo):
- stress/object-create-define.js: Added.
(shouldBe):
(test):
- stress/object-create-null-external.js: Added.
(shouldBe):
(test):
- stress/object-create-null.js: Added.
(shouldBe):
(test):
- stress/object-create-prototype.js: Added.
(shouldBe):
(test):
- stress/object-create-undefined.js: Added.
(shouldThrow):
(i.shouldThrow):
Source/JavaScriptCore:
Object.create is used in various JS code.
Object.create(null)is particularly used
to create empty plain object with null Prototype. We can findObject.create(null)
call in ARES-6/Babylon code.
This patch adds ObjectCreateIntrinsic to JSC. DFG recognizes it and produces ObjectCreate
DFG node. DFG AI and constant folding attempt to convert it to NewObject when prototype
object is null. It offers significant performance boost forObject.create(null).
baseline patched
object-create-null 53.7940+-1.5297 19.8846+-0.6584 definitely 2.7053x faster
object-create-unknown-object-prototype 38.9977+-1.1364 37.2207+-0.6143 definitely 1.0477x faster
object-create-untyped-prototype 22.5632+-0.6917 22.2539+-0.6876 might be 1.0139x faster
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- 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/DFGNode.h:
(JSC::DFG::Node::convertToNewObject):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileObjectCreate):
- 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::compileObjectCreate):
- runtime/Intrinsic.cpp:
(JSC::intrinsicName):
- runtime/Intrinsic.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::nullPrototypeObjectStructure const):
- runtime/ObjectConstructor.cpp:
- 10:43 AM Changeset in webkit [232441] by
-
- 9 copies1 add in releases/Apple/Safari 11.1.1
Added a tag for Safari 11.1.1.
- 10:43 AM Changeset in webkit [232440] by
-
- 8 copies1 add in releases/Apple/iOS 11.4
Added a tag for iOS 11.4.
- 9:03 AM Changeset in webkit [232439] by
-
- 11 edits14 adds in trunk
[ESNext][BigInt] Implement support for addition operations
https://bugs.webkit.org/show_bug.cgi?id=179002
Reviewed by Yusuke Suzuki.
JSTests:
- bigIntTests.yaml:
- stress/addition-order-evaluation.js: Added.
- stress/big-int-add-wrapped-value.js: Added.
- stress/big-int-addition-basic.js: Added.
- stress/big-int-addition-jit.js: Added.
- stress/big-int-addition-memory-stress.js: Added.
- stress/big-int-addition-string-coercion.js: Added.
- stress/big-int-addition-to-primitive-precedence.js: Added.
- stress/big-int-addition-to-primitive.js: Added.
- stress/big-int-addition-type-error.js: Added.
- stress/big-int-no-conversion-to-number.js:
- stress/big-int-sub-wrapped-value.js: Added.
- stress/big-int-subtraction-basic.js: Added.
- stress/big-int-subtraction-jit.js: Added.
- stress/big-int-subtraction-type-error.js: Added.
- stress/sub-order-evaluation.js: Added.
Source/JavaScriptCore:
This patch is implementing support to BigInt Operands into binary "+"
and binary "-" operators. Right now, we have limited support to DFG
and FTL JIT layers, but we plan to fix this support in future
patches.
- jit/JITOperations.cpp:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::stringToBigInt):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::multiply):
(JSC::JSBigInt::divide):
(JSC::JSBigInt::remainder):
(JSC::JSBigInt::add):
(JSC::JSBigInt::sub):
(JSC::JSBigInt::absoluteAdd):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::allocateFor):
(JSC::JSBigInt::toNumber const):
(JSC::JSBigInt::getPrimitiveNumber const):
- runtime/JSBigInt.h:
- runtime/JSCJSValueInlines.h:
- runtime/Operations.cpp:
(JSC::jsAddSlowCase):
- runtime/Operations.h:
(JSC::jsSub):
- 9:03 AM Changeset in webkit [232438] by
-
- 2 edits in trunk/Source/WebKit
Make WKWebView firstResponder after entering or exiting fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=186088
rdar://problem/40387859
Patch by Jeremy Jones <jeremyj@apple.com> on 2018-06-02
Reviewed by Jer Noble.
Update first responder when WKWebView moves to a new window, otherwise there won't be a first responder.
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
- 9:02 AM Changeset in webkit [232437] by
-
- 3 edits in trunk/Source/WebKit
Exit fullscreen when javascript alerts are presented.
https://bugs.webkit.org/show_bug.cgi?id=185619
rdar://problem/35724264
Patch by Jeremy Jones <jeremyj@apple.com> on 2018-06-02
Reviewed by Jer Noble.
Prevent users from being trapped in fullscreen by alert cycles.
Prevent fullscreen from becoming unresponsive due to alerts hidden behind fullscreen.
Fullscreen exit is initiated here in the UI process so that fullscreen UI is torn down immediately,
before the alert is shown.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::exitFullscreenImmediately):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
- UIProcess/WebPageProxy.h:
- 8:59 AM Changeset in webkit [232436] by
-
- 3 edits1 add in trunk/Source/WebKit
Add a sandbox profile for com.cisco.webex.plugin.gpc64 plugin
https://bugs.webkit.org/show_bug.cgi?id=186110
Reviewed by Brent Fulgham.
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: Webex needs to create some symlinks.
- Resources/PlugInSandboxProfiles/com.cisco.webex.plugin.gpc64.sb: Added.
- WebKit.xcodeproj/project.pbxproj:
Jun 1, 2018:
- 11:54 PM Changeset in webkit [232435] by
-
- 3 edits2 adds in trunk
[Extra zoom mode] The user should always be able to double tap to zoom to a scale of at least 1
https://bugs.webkit.org/show_bug.cgi?id=186209
<rdar://problem/40529255>
Reviewed by Tim Horton.
Source/WebKit:
Tweaks the way double-tap-to-zoom scales are determined in extra zoom mode. Rather than zooming to make the 50th
and 90th percentiles of text in the document legible, only consider the 90th percentile of text size when
determining zoom scale, and fix the other potential zoom scale at 1; additionally, if the zoom scales are close
(within 0.3 of each other), snap the lower zoom scale to the higher value.
This results in the following changes in behavior:
- Enables double tap to zoom in cases where all the text in the page is already legible.
- On pages with mobile viewports, usually allows the user to toggle between initial scale and a scale of 1.
- If a significant portion of text is unusually small, the zoomed-in scale may exceed 1.
Test: fast/events/extrazoom/double-tap-to-zoom-with-large-text.html
- WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):
LayoutTests:
Add a test to verify that double tapping zooms in on a page where all the text is large enough to be legible at
initial scale.
- fast/events/extrazoom/double-tap-to-zoom-with-large-text-expected.txt: Added.
- fast/events/extrazoom/double-tap-to-zoom-with-large-text.html: Added.
- 9:09 PM Changeset in webkit [232434] by
-
- 6 edits2 adds in trunk
Editor can hold references to Documents after you navigate away
https://bugs.webkit.org/show_bug.cgi?id=186215
Reviewed by Simon Fraser.
Source/WebCore:
Clear the various member variables that can hold onto a document in Editor::clear and FrameSelection::prepareForDestruction.
Test: editing/selection/navigation-clears-editor-state.html
- editing/Editor.cpp:
(WebCore::Editor::clear):
- editing/Editor.h:
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::prepareForDestruction):
- editing/FrameSelection.h:
LayoutTests:
Added a regression test.
- editing/selection/navigation-clears-editor-state-expected.txt: Added.
- editing/selection/navigation-clears-editor-state.html: Added.
- 5:21 PM Changeset in webkit [232433] by
-
- 2 edits in trunk/Source/WebCore
ResourceLoader::cancel() shouldn't synchronously fire load event on document
https://bugs.webkit.org/show_bug.cgi?id=185284
Revert the erroneous change to SSFontSelector::beginLoadTimerFired(), which broke CancelLoading.CancelFontSubresource.
FrameLoader::loadDone calls checkCompleted, not checkLoadComplete so we still need to call checkLoadComplete here.
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::beginLoadTimerFired):
- 5:07 PM Changeset in webkit [232432] by
-
- 2 edits in tags/Safari-606.1.18.2/Source/WebKit
Revert r231903. rdar://problem/40690985
- 5:05 PM Changeset in webkit [232431] by
-
- 7 edits in tags/Safari-606.1.18.2/Source
Versioning.
- 5:04 PM Changeset in webkit [232430] by
-
- 1 edit10 moves in trunk/LayoutTests
Move tests in LayoutTests/editing to appropriate subdirectories
https://bugs.webkit.org/show_bug.cgi?id=186212
Rubber-stamped by Wenson Hsieh.
Moved the following four tests in LayoutTests/editing to its subdirectories.
- editing/input/composition-underline-color-expected-mismatch.html: Moved from editing/composition-underline-color-expected-mismatch.html.
- editing/input/composition-underline-color.html: Move from editing/composition-underline-color.html.
- editing/input/marked-text-appearance-expected-mismatch.html: Copied from LayoutTests/editing/marked-text-appearance-expected-mismatch.html.
- editing/input/marked-text-appearance.html: Moved from editing/marked-text-appearance.html.
- editing/selection/rtl-to-ltr-editing-word-move-spin-expected.txt: Moved from editing/rtl-to-ltr-editing-word-move-spin-expected.txt.
- editing/selection/rtl-to-ltr-editing-word-move-spin.html: Moved from editing/rtl-to-ltr-editing-word-move-spin.html.
- editing/selection/simple-line-layout-caret-is-gone-expected.txt: Moved from editing/simple-line-layout-caret-is-gone-expected.txt.
- editing/selection/simple-line-layout-caret-is-gone.html: Moved from editing/simple-line-layout-caret-is-gone.html.
- editing/style/apply-style-iframe-crash-expected.txt: Moved from editing/apply-style-iframe-crash-expected.txt.
- editing/style/apply-style-iframe-crash.html: Moved from editing/apply-style-iframe-crash.html.
- 5:02 PM Changeset in webkit [232429] by
-
- 1 copy in tags/Safari-606.1.18.2
New tag.
- 4:25 PM Changeset in webkit [232428] by
-
- 2 edits in trunk/LayoutTests
Skip fetch/api/redirect/redirect-method.html and fetch/api/redirect/redirect-method-worker.html on macOS debug.
https://bugs.webkit.org/show_bug.cgi?id=184365
Unreviewed test gardening.
Patch by David Fenton <david_fenton@apple.com> on 2018-06-01
- platform/mac/TestExpectations:
- 4:22 PM Changeset in webkit [232427] by
-
- 7 edits in trunk/Source
Keyboard focus should exit fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=185617
rdar://problem/34697938
Patch by Jeremy Jones <jeremyj@apple.com> on 2018-06-01
Reviewed by Ryosuke Niwa.
Source/WebCore:
No opensource test because feature is not enabled.
While in element fullscreen, initiating keyboard focus should exit fullscreen in iOS.
Improve fullscreen testability by exposing isAnimatingFullScreen.
- dom/Document.h:
- testing/Internals.cpp:
(WebCore::Internals::isAnimatingFullScreen const):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
While in element fullscreen, initiating keyboard focus should exit fullscreen in iOS.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::elementDidFocus):
- 4:19 PM Changeset in webkit [232426] by
-
- 2 edits in trunk/Source/WebCore
Don't continue playing in background when auto-picture-in-picture is disabled.
https://bugs.webkit.org/show_bug.cgi?id=186089
rdar://problem/40314314
Patch by Jeremy Jones <jeremyj@apple.com> on 2018-06-01
Reviewed by Eric Carlson.
No new tests because we don't have a way to test auto-pip.
With the refactoring work done in VideoFullscreenInterfaceAVKit, HTMLMediaElement no longer has to anticipate
auto-pip when if it should pause on suspend. Instead VideoFullscreenInterfaceAVKit proactively updates
videoFullscreenMode, so checking for PIP is sufficient.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):
- 4:15 PM Changeset in webkit [232425] by
-
- 1 copy in tags/Safari-605.3.5
Tag Safari-605.3.5.
- 4:09 PM Changeset in webkit [232424] by
-
- 5 edits in trunk/Source
REGRESSION (r231456): Colloquy is broken
https://bugs.webkit.org/show_bug.cgi?id=186197
<rdar://problem/40722960>
Reviewed by Timothy Hatcher.
Restore pre-r231456 behavior for Colloquy app so that it works again.
Source/WebCore:
- html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::openURL):
- page/Settings.yaml:
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _needsFrameNameFallbackToIdQuirk]):
(-[WebView _preferencesChanged:]):
- 3:56 PM Changeset in webkit [232423] by
-
- 11 edits in trunk/Source
Regression(r230567): Unable to log into twitter.com in private sessions
https://bugs.webkit.org/show_bug.cgi?id=186205
<rdar://problem/40670799>
Reviewed by Youenn Fablet.
We were using the same SWServer for all private sessions and the SWServer's sessionID would
be legacyPrivateSessionID(). As a result, the service worker's sessionID would be legacyPrivateSessionID()
Source/WebCore:
as well and would not match the sessionID of its client pages. This sessionID mismatch was
causing the breakage.
Instead of using the same SWServer of all private sessions, we now go back to using a SWServer
per private session. However, we now make sure that the SWServer gets destroyed whenever its
corresponding session gets destroyed.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::~SWServer):
Source/WebKit:
as well and would not match the sessionID of its client pages. This sessionID mismatch was
causing the breakage.
Instead of using the same SWServer of all private sessions, we now go back to using a SWServer
per private session. However, we now make sure that the SWServer gets destroyed whenever its
corresponding session gets destroyed.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::destroySession):
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::from):
- StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::destroySession):
(WebKit::StorageProcess::swServerForSession):
- StorageProcess/StorageProcess.h:
- StorageProcess/StorageProcess.messages.in:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::weakPtrFactory const):
Fix memory leak caused by a reference cycle between the WebsiteDataStore and its
WebResourceLoadStatisticsStore, by using WeakPtr to break the cycle. This was causing
us to leak WebsiteDataStore objects, which would prevent the destruction of sessions.
- 3:55 PM Changeset in webkit [232422] by
-
- 13 edits in branches/safari-605-branch/Source
Revert "Apply patch. rdar://problem/40688638"
- 3:54 PM Changeset in webkit [232421] by
-
- 6 edits11 adds in trunk/Tools
Add some tests for lldb_webkit.py
https://bugs.webkit.org/show_bug.cgi?id=183744
Reviewed by Alexey Proskuryakov.
Adds some tests to ensure we do not regress LLDB pretty-printing of WTF::StringImpl
and WTF::String objects.
The tests make use of the LLDB Python API (lldb.py) and a simple debug-built test
program, lldbWebKitTester, to run. For now, we only support building lldbWebKitTester
on Mac.
- Makefile: Build the simple test tool lldbWebKitTester on Mac.
- Scripts/build-lldbwebkittester: Added.
(buildProjectOrDie):
- Scripts/dump-class-layout: Extract logic to compute the path to the LLDB Python module
from here to Scripts/webkitpy/common/system/systemhost.py so that it can used by both
this script and lldb/lldb_webkit_unittest.py. Also import the lldb module at the top of
the file and take advantage of Python's default error semantics to throw an exception
if the import fails instead of handling it ourself. This has the side effect that we
now always import the LLDB Python module even if this script is invoked with --help.
If this turns out to be a significant annoyance then we can look to dynamically import
the module as we did before this change.
(webkit_build_dir):
(main):
(developer_dir): Deleted.
(import_lldb): Deleted.
- Scripts/webkitpy/common/checkout/scm/scm_unittest.py: Update FIXME comment to reflect
that fact that test-webkitpy does not support class and module fixtures. This is because
test-webkitpy currently implements parallelism by breaking down existing test classes
into individual test methods itself and having each worker run exactly one test method (via
unittest.TestLoader.loadTestsFromName()) at a time. As a result of this reorganization,
setUpModule()/setUpClass() are called for each test method as opposed to once per test
class/test module.
(remove_dir): Ditto.
- Scripts/webkitpy/common/system/systemhost.py:
(SystemHost):
(SystemHost.path_to_lldb_python_directory): Added.
- Scripts/webkitpy/test/main.py:
(_find_lldb_webkit_tester): Returns whether there exists a Debug or Release-built lldbWebKitTester.
(_build_lldb_webkit_tester): Builds lldbWebKitTester. For now, we only support building
lldbWebKitTester on Mac.
(main): Add Tools/lldb to the test search path if the platform has lldb.py.
(Tester.run): Pass a boolean as to whether we will run the lldb_webkit unit tests.
(Tester._run_tests): Modified to take a boolean as to whether to run the lldb_webkit unit tests.
If we will run these tests then build lldbWebKitTester if it has not already been built as the
unit tests depend on this program.
- lldb/lldbWebKitTester/Configurations/Base.xcconfig: Added.
- lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig: Added.
- lldb/lldbWebKitTester/Configurations/lldbWebKitTester.xcconfig: Added.
- lldb/lldbWebKitTester/Makefile: Added.
- lldb/lldbWebKitTester/lldbWebKitTester.xcodeproj/project.pbxproj: Added.
- lldb/lldbWebKitTester/main.cpp: Added.
(breakForTestingSummaryProviders):
(utf16String):
(testSummaryProviders):
(main):
- lldb/lldb_webkit_unittest.py: Added.
(destroy_cached_debug_session):
(LLDBDebugSession):
(LLDBDebugSession.setup):
(LLDBDebugSession.tearDown):
(TestSummaryProviders):
(TestSummaryProviders.setUpClass):
(TestSummaryProviders._sbFrame):
(TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_null_string):
(TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_empty_string):
(TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_8bit_string):
(TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_16bit_string):
(TestSummaryProviders.serial_test_WTFString_SummaryProvider_null_string):
(TestSummaryProviders.serial_test_WTFString_SummaryProvider_empty_string):
(TestSummaryProviders.serial_test_WTFString_SummaryProvider_8bit_string):
(TestSummaryProviders.serial_test_WTFString_SummaryProvider_16bit_string):
- 3:34 PM Changeset in webkit [232420] by
-
- 9 edits in trunk/Source
Add an option to restrict communication to localhost sockets
https://bugs.webkit.org/show_bug.cgi?id=186208
Reviewed by Eric Carlson.
Source/WebCore:
Covered by existing tests.
Add an option in LibWebRTCProvider to restrict to localhost sockets.
Use that option when Internals is used.
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
Source/WebKit:
Implement restriction to localhost sockets by setting any IP address to 127.0.0.1.
This is done on WebProcess side just before requesting to open the socket by NetworkProcess.
- WebProcess/Network/webrtc/LibWebRTCNetwork.h:
(WebKit::LibWebRTCNetwork::disableNonLocalhostConnections):
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::LibWebRTCProvider::disableNonLocalhostConnections):
(WebKit::LibWebRTCProvider::registerMDNSName):
- WebProcess/Network/webrtc/LibWebRTCProvider.h:
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::prepareSocketAddress):
(WebKit::LibWebRTCSocketFactory::CreateServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::CreateUdpSocket):
(WebKit::LibWebRTCSocketFactory::CreateClientTcpSocket):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
- 3:30 PM Changeset in webkit [232419] by
-
- 19 edits in trunk
ResourceLoader::cancel() shouldn't synchronously fire load event on document
https://bugs.webkit.org/show_bug.cgi?id=185284
Source/WebCore:
Reviewed by Antti Koivisto.
Because a resource loading can be canceled as a node is removed a document or CachedResource is destructed,
it's not safe to synchronously fire load event on document upon cancelation. This patch makes the cancellation
of a resource load schedule m_checkTimer in FrameLoader to fire a load event asynchronously instead.
Specifically, this patch makes FrameLoader::loadDone call FrameLoader::scheduleCheckCompleted when the load
had failed or cancled instead of calling FrameLoader::checkCompleted which can synchronously fire load event.
To differentiate the two cases, new enum LoadCompletionType has been added to FrameLoader::loadDone and related
functions. To avoid calling the navigation delegate too early, the same abstraction for checkLoadComplete()
has been added in the form of FrameLoader::subresourceLoadDone.
Unfortunately, delaying calls to checkCompleted() and checkLoadComplete() by a timer can result in client
callbacks such as didFinishLoadForFrame and didFailLoadWithError to never get called when the frame gets
detached from the parent after the last resource had stopped loading but before the timer fires. To preserve
these deleagte callbacks, this patch expedites the timer in FrameLoader::frameDetached and Page::goToItem by
by invoking newly added stopAllLoadersAndCheckCompleteness, which stops all loading and then immediately invokes
checkCompleted() and checkLoadComplete() synchronously if m_checkTimer had been started.
Tests: http/tests/preload/dynamic_removing_preload.html
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::beginLoadTimerFired): Removed superfluous call to checkLoadComplete since
cachedResourceLoader's loadDone would call checkLoadComplete anyway.
- html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::disconnectContentFrame): Removed the misleading comment added in r140090.
Firefox DOES indeed fire unload event in the content document of a removed frame. While this comment made
it sound like this function isn't called when a frame is removed from the tree when in reality we simply
remove a frame prior to removing the node via disconnectSubframesIfNeeded.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::removeSubresourceLoader):
- loader/DocumentLoader.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::loadDone):
(WebCore::FrameLoader::subresourceLoadDone):
(WebCore::FrameLoader::checkCompleted): Added a release assert that this function is only called when it's safe
to execute scripts.
(WebCore::FrameLoader::checkTimerFired):
(WebCore::FrameLoader::checkCompletenessNow):Extracted from checkTimerFired.
(WebCore::FrameLoader::stopAllLoaders): Removed the code to stop m_checkTimer introduced in r53655.
Stopping the timer here would prevent FrameLoader::frameDetached to detect the case when stopping the loader
scheduled a load completion check. Also stopping this timer without clearing the corresponding booleans:
m_checkingLoadCompleteForDetachment and m_checkingLoadCompleteForDetachment is problematic. The assertion
r53655 addressed is now addressed by explicitly checking & clearing the timer in frameDetached.
(WebCore::FrameLoader::stopAllLoadersAndCheckCompleteness): Added.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Avoid an early exit when the newly added boolean
m_checkingLoadCompleteForDetachment is set since m_isStopping is no longer set in frameDetached in order
to invoke didFailLoadWithError when detaching a frame.
(WebCore::FrameLoader::frameDetached): Call checkCompletenessNow in the case the frame had already been
completed loading. Also call stopAllLoadersAndCheckCompleteness in the case stopping loading would complete
the loading before stopping active DOM objects.
- loader/FrameLoader.h:
(WebCore::FrameLoader::m_checkingLoadCompleteForDetachment): Added.
- loader/FrameLoaderTypes.h:
(WebCore::LoadCompletionType): Added.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::didCancel):
(WebCore::SubresourceLoader::notifyDone):
- loader/SubresourceLoader.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):
- loader/cache/CachedResourceLoader.h:
- page/Page.cpp:
(WebCore::Page::goToItem): Call stopAllLoadersAndCheckCompleteness instead of stopAllLoaders since stopping
loading here may complete loading.
LayoutTests:
<rdar://problem/39994507>
Reviewed by Antti Koivisto.
Fixed the tests as needed, and skipped more drag & drop tests in WebKitTestRunner as drag & drop isn't supported.
- editing/pasteboard/drag-image-to-contenteditable-in-iframe.html: Fixed the test. Explicitly invoke
testRunner.waitUntilDone() to wait until the iframe is loaded. Because "load" event in DOM only fires after
all subframes are loaded but the load delegate callback fires as long as subresources in the main frame
had finished loading, DumpRenderTree would finish the test prematurely otherwise. The old code happens to
work before this patch because we happen to not invoke FrameLoader::checkComplete at the "right" moment.
The WebCore change now triggers such a check and prematurely end the test without this fix to the test.
- http/tests/xmlhttprequest/reentrant-cancel-expected.txt:
- http/tests/xmlhttprequest/reentrant-cancel.html: Canceling XHR inside addElement is no longer
firing load event synchronously as expected. Added a code to end the test after the load event.
- http/wpt/service-workers/clone-opaque-being-loaded-response.html:
- platform/mac-wk2/TestExpectations:
- platform/wk2/TestExpectations:
- 2:40 PM Changeset in webkit [232418] by
-
- 13 edits in branches/safari-605-branch/Source
Apply patch. rdar://problem/40688638
- 2:28 PM Changeset in webkit [232417] by
-
- 8 edits in trunk/LayoutTests
Some tests for webkitdirectory API fail when tests are in an APFS file system
https://bugs.webkit.org/show_bug.cgi?id=186184
Reviewed by Chris Dumez.
On an APFS volume, files may not be listed in the lexicologically order and the size of a directory
may defer from that of HFS+. To make the test results consistent on either file systems,
sort file entries lexicologically by the name and list two possible directory sizes as the expectation.
Added a new helper function, shouldBeOneOfValues, which takes an array of values as the expectation.
- editing/pasteboard/entries-api/datatransfer-items-drop-directoryReader.html:
- editing/pasteboard/entries-api/datatransfer-items-drop-getAsEntry-expected.txt:
- editing/pasteboard/entries-api/datatransfer-items-drop-getAsEntry.html:
- fast/forms/file/entries-api/drag-folder-webkitEntries-expected.txt:
- fast/forms/file/entries-api/drag-folder-webkitEntries.html:
- fast/forms/file/entries-api/webkitdirectory-drag-folder.html:
- resources/js-test.js:
(shouldBeOneOfValues): Added.
- 1:58 PM Changeset in webkit [232416] by
-
- 10 edits in trunk/Source/WebKit
Regression(r230876): Swipe navigation snapshot may get removed too early
https://bugs.webkit.org/show_bug.cgi?id=186168
<rdar://problem/39743617>
Reviewed by Tim Horton.
The swipe navigation snapshot would get removed too early when receiving a paint
event after requesting a history navigation but before the provisional load has
actually started. This is because of the asynchronous navigation policy decision
which occurs after requesting to navigate. To address the issue, we now start
listening for events only after the provisional load has started.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didStartProvisionalLoadForMainFrame]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/Cocoa/ViewGestureController.cpp:
(WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame):
(WebKit::ViewGestureController::didReachMainFrameLoadTerminalState):
(WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
- UIProcess/Cocoa/ViewGestureController.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didStartProvisionalLoadForMainFrame):
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::endSwipeGesture):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::didStartProvisionalLoadForMainFrame):
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::endSwipeGesture):
- 1:57 PM Changeset in webkit [232415] by
-
- 1 edit in trunk/Source/JavaScriptCore/bytecode/InByIdStatus.cpp
Fix the !ENABLE(DFG_JIT) build.
- bytecode/InByIdStatus.cpp:
(JSC::InByIdStatus::computeFor):
- 1:52 PM Changeset in webkit [232414] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, build fix for r232276.
iOS sandbox profiles don't preprocess macros. Therefore, remove the whole
macro condition block.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 1:41 PM Changeset in webkit [232413] by
-
- 4 edits in trunk/LayoutTests
http/tests/inspector/network/har/har-page.html should actually sort dumped cookies by name
https://bugs.webkit.org/show_bug.cgi?id=186137
Reviewed by Joseph Pecoraro.
JavaScript does not support comparison of String data types using the minus operator. Instead
implement the string comparator using relational operators and the identity operator.
- http/tests/inspector/network/har/har-page-expected.txt:
- http/tests/inspector/network/har/har-page.html:
- platform/gtk/TestExpectations: Unskip test.
- 1:24 PM Changeset in webkit [232412] by
-
- 1 delete in tags/Safari-#606.1.19.1
Remove tag.
- 1:13 PM Changeset in webkit [232411] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix the watchOS build after r232385
https://bugs.webkit.org/show_bug.cgi?id=186203
Reviewed by Keith Miller.
Add a missing header include for JSImmutableButterfly.
- runtime/ArrayPrototype.cpp:
- 1:13 PM Changeset in webkit [232410] by
-
- 8 edits in trunk/Source
Stop using StorageTracker.db in LocalStorageDatabaseTracker
https://bugs.webkit.org/show_bug.cgi?id=186104
Reviewed by Geoffrey Garen.
Source/WebCore:
No behavior change.
- platform/sql/SQLiteFileSystem.h:
Source/WebKit:
Stop using StorageTracker.db and stop caching origins in LocalStorageDatabaseTracker for efficiency
and simplicity. Since functions in LocalStorageDatabaseTracker are not frequently called, we get
little benefits from caching origins.
- Platform/Logging.h:
- UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
- UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
(WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin):
(WebKit::LocalStorageDatabaseTracker::deleteDatabaseWithOrigin):
(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases):
(WebKit::LocalStorageDatabaseTracker::databasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::origins const):
(WebKit::LocalStorageDatabaseTracker::originDetails):
(WebKit::LocalStorageDatabaseTracker::databasePath const):
(WebKit::fileCreationTime): Deleted.
(WebKit::fileModificationTime): Deleted.
(WebKit::LocalStorageDatabaseTracker::trackerDatabasePath const): Deleted.
(WebKit::LocalStorageDatabaseTracker::openTrackerDatabase): Deleted.
(WebKit::LocalStorageDatabaseTracker::importOriginIdentifiers): Deleted.
(WebKit::LocalStorageDatabaseTracker::updateTrackerDatabaseFromLocalStorageDatabaseFiles): Deleted.
(WebKit::LocalStorageDatabaseTracker::addDatabaseWithOriginIdentifier): Deleted.
(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier): Deleted.
(WebKit::LocalStorageDatabaseTracker::pathForDatabaseWithOriginIdentifier): Deleted.
- UIProcess/WebStorage/LocalStorageDatabaseTracker.h:
- UIProcess/WebStorage/StorageManager.h:
- 12:53 PM Changeset in webkit [232409] by
-
- 3 edits in trunk/LayoutTests
http/tests/appcache/deferred-events.html is flaky due to console log messages
https://bugs.webkit.org/show_bug.cgi?id=185543
Reviewed by Chris Dumez.
Update the test to wait for the onerror callback.
At that time, all console logging should be done.
- http/tests/appcache/deferred-events-expected.txt:
- http/tests/appcache/deferred-events.html:
- 12:41 PM Changeset in webkit [232408] by
-
- 8 edits in tags/Safari-606.1.19.1/Source/WebKit
Revert r232276. rdar://problem/40728289
- 12:41 PM Changeset in webkit [232407] by
-
- 2 edits in tags/Safari-606.1.19.1/Source/WebKit
Revert r232186. rdar://problem/40708108
- 12:11 PM Changeset in webkit [232406] by
-
- 7 edits in tags/Safari-606.1.19.1/Source
Versioning.
- 12:07 PM Changeset in webkit [232405] by
-
- 1 copy in tags/Safari-606.1.19.1
New tag.
- 12:06 PM Changeset in webkit [232404] by
-
- 8 edits1 add in trunk
[JSC] Add Symbol.prototype.description getter
https://bugs.webkit.org/show_bug.cgi?id=186053
Reviewed by Keith Miller.
JSTests:
- stress/symbol-description.js: Added.
(shouldBe):
(shouldThrow):
Source/JavaScriptCore:
Symbol.prototype.description accessor is now stage 3[1].
This adds a getter to retrieve Description value from Symbol.
Previously, Symbol#toString() returnsSymbol(${description})value.
So users need to extractdescriptionpart if they want it.
[1]: https://tc39.github.io/proposal-Symbol-description/
- runtime/Symbol.cpp:
(JSC::Symbol::description const):
- runtime/Symbol.h:
- runtime/SymbolPrototype.cpp:
(JSC::tryExtractSymbol):
(JSC::symbolProtoGetterDescription):
(JSC::symbolProtoFuncToString):
(JSC::symbolProtoFuncValueOf):
LayoutTests:
- js/Object-getOwnPropertyNames-expected.txt:
- js/script-tests/Object-getOwnPropertyNames.js:
- 12:02 PM Changeset in webkit [232403] by
-
- 1 copy in tags/Safari-#606.1.19.1
New tag.
- 11:55 AM Changeset in webkit [232402] by
-
- 1 edit2 adds in trunk/Websites/webkit.org
Add a demo for passive touch listeners.
- demos/passive-touches/index.html: Added.
- 11:47 AM Changeset in webkit [232401] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Correct values and members of JSBigInt appropriately
https://bugs.webkit.org/show_bug.cgi?id=186196
Reviewed by Darin Adler.
This patch cleans up a bit to select more appropriate values and members of JSBigInt.
- JSBigInt's structure should be StructureIsImmortal.
- JSBigInt::allocationSize should be annotated with
inline. - Remove JSBigInt::visitChildren since it is completely the same to JSCell::visitChildren.
- Remove JSBigInt::finishCreation since it is completely the same to JSCell::finishCreation.
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::allocationSize):
(JSC::JSBigInt::allocateFor):
(JSC::JSBigInt::compareToDouble):
(JSC::JSBigInt::visitChildren): Deleted.
(JSC::JSBigInt::finishCreation): Deleted.
- runtime/JSBigInt.h:
- 11:39 AM Changeset in webkit [232400] by
-
- 6 edits9 adds in trunk
[DFG] InById should be converted to MatchStructure
https://bugs.webkit.org/show_bug.cgi?id=185803
Reviewed by Keith Miller.
JSTests:
- microbenchmarks/in-by-id-match.js: Added.
(test):
- microbenchmarks/in-by-id-removed.js: Added.
(test):
- stress/in-by-id-constant.js: Added.
(shouldBe):
(test1):
- stress/in-by-id-match-invalid.js: Added.
(shouldBe):
(test1):
- stress/in-by-id-match.js: Added.
(shouldBe):
(test1):
Source/JavaScriptCore:
MatchStructure is introduced for instanceof optimization. But this node
is also useful for InById node. This patch converts InById to MatchStructure
node with CheckStructures if possible by using InByIdStatus.
Added microbenchmarks show improvements.
baseline patched
in-by-id-removed 18.1196+-0.8108 16.1702+-0.9773 definitely 1.1206x faster
in-by-id-match 16.3912+-0.2608 15.2736+-0.8173 definitely 1.0732x faster
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/InByIdStatus.cpp: Added.
(JSC::InByIdStatus::appendVariant):
(JSC::InByIdStatus::computeFor):
(JSC::InByIdStatus::hasExitSite):
(JSC::InByIdStatus::computeForStubInfo):
(JSC::InByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::InByIdStatus::filter):
(JSC::InByIdStatus::dump const):
- bytecode/InByIdStatus.h: Added.
(JSC::InByIdStatus::InByIdStatus):
(JSC::InByIdStatus::state const):
(JSC::InByIdStatus::isSet const):
(JSC::InByIdStatus::operator bool const):
(JSC::InByIdStatus::isSimple const):
(JSC::InByIdStatus::numVariants const):
(JSC::InByIdStatus::variants const):
(JSC::InByIdStatus::at const):
(JSC::InByIdStatus::operator[] const):
(JSC::InByIdStatus::takesSlowPath const):
- bytecode/InByIdVariant.cpp: Added.
(JSC::InByIdVariant::InByIdVariant):
(JSC::InByIdVariant::attemptToMerge):
(JSC::InByIdVariant::dump const):
(JSC::InByIdVariant::dumpInContext const):
- bytecode/InByIdVariant.h: Added.
(JSC::InByIdVariant::isSet const):
(JSC::InByIdVariant::operator bool const):
(JSC::InByIdVariant::structureSet const):
(JSC::InByIdVariant::structureSet):
(JSC::InByIdVariant::conditionSet const):
(JSC::InByIdVariant::offset const):
(JSC::InByIdVariant::isHit const):
- bytecode/PolyProtoAccessChain.h:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- 11:11 AM Changeset in webkit [232399] by
-
- 4 edits in trunk/Source/JavaScriptCore
move should only emit the move if it's actually needed
https://bugs.webkit.org/show_bug.cgi?id=186123
Reviewed by Saam Barati.
This patch relpaces move with moveToDestinationIfNeeded. This
will prevent us from emiting moves to the same location. The old
move, has been renamed to emitMove and made private.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitMove):
(JSC::BytecodeGenerator::emitGetGlobalPrivate):
(JSC::BytecodeGenerator::emitGetAsyncIterator):
(JSC::BytecodeGenerator::move): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::move):
(JSC::BytecodeGenerator::moveToDestinationIfNeeded): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::ThisNode::emitBytecode):
(JSC::SuperNode::emitBytecode):
(JSC::NewTargetNode::emitBytecode):
(JSC::ResolveNode::emitBytecode):
(JSC::TaggedTemplateNode::emitBytecode):
(JSC::ArrayNode::emitBytecode):
(JSC::ObjectLiteralNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByIdDirect):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByIdDirectPrivate):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByValDirect):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_toNumber):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_toString):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_toObject):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_idWithProfile):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isJSArray):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isProxyObject):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isRegExpObject):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isObject):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isDerivedArray):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isMap):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isSet):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::emitPostIncOrDec):
(JSC::PostfixNode::emitBracket):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitResolve):
(JSC::PrefixNode::emitBracket):
(JSC::PrefixNode::emitDot):
(JSC::LogicalOpNode::emitBytecode):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::AssignDotNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
(JSC::DestructuringAssignmentNode::emitBytecode):
(JSC::ArrayPatternNode::emitDirectBinding):
(JSC::ObjectPatternNode::bindValue const):
(JSC::AssignmentElementNode::bindValue const):
(JSC::ObjectSpreadExpressionNode::emitBytecode):
- 9:36 AM Changeset in webkit [232398] by
-
- 3 edits in trunk/Tools
export-w3c-test-changes cannot apply patches when some w3c-import.log files are changed
https://bugs.webkit.org/show_bug.cgi?id=186133
Patch by Frederic Wang <fwang@igalia.com> on 2018-06-01
Reviewed by Youenn Fablet.
- Scripts/webkitpy/w3c/test_exporter.py: Exclude w3c-import.log from the diff.
- Scripts/webkitpy/w3c/test_exporter_unittest.py: Add unit test.
- 9:25 AM WebKitGTK/2.20.x edited by
- (diff)
- 9:12 AM Changeset in webkit [232397] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Crash in WebKitFaviconDatabase when pageURL is unset
https://bugs.webkit.org/show_bug.cgi?id=186164
Reviewed by Carlos Garcia Campos.
PageURL can legitimately be null here if JavaScript does something silly with window.open.
- UIProcess/API/glib/WebKitFaviconDatabase.cpp:
(webkitFaviconDatabaseSetIconURLForPageURL):
(webkitFaviconDatabaseSetIconForPageURL):
- 9:08 AM Changeset in webkit [232396] by
-
- 4 edits in trunk/Source/WebKit
[Cocoa] Web Automation: use the session delegate to perform window maximize
https://bugs.webkit.org/show_bug.cgi?id=186167
<rdar://problem/40544391>
Reviewed by Timothy Hatcher.
Add plumbing to hand off window maximizing to the session delegate.
- UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:
- UIProcess/Cocoa/AutomationSessionClient.h:
- UIProcess/Cocoa/AutomationSessionClient.mm:
(WebKit::AutomationSessionClient::AutomationSessionClient):
(WebKit::AutomationSessionClient::requestMaximizeWindowOfPage):
- 9:00 AM Changeset in webkit [232395] by
-
- 2 edits in trunk/LayoutTests
Unskip fast/html/marquee-reparent-check.html on macOS debug.
https://bugs.webkit.org/show_bug.cgi?id=178465
<rdar://problem/35052953>
Reviewed by Geoffrey Garen.
Unskipping test since the debug assertion is no longer reproducible in
current sources on shipping software.
- platform/mac/TestExpectations:
- 7:39 AM Changeset in webkit [232394] by
-
- 7 edits in trunk/Source/WebCore
[LFC] Simplify the formatting class implementation by pushing down some of the logic to the Geometry class
https://bugs.webkit.org/show_bug.cgi?id=186179
Reviewed by Antti Koivisto.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowPosition const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::computeFloatingHeight const):
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::outOfFlowNonReplacedHeight):
(WebCore::Layout::outOfFlowNonReplacedWidth):
(WebCore::Layout::outOfFlowReplacedHeight):
(WebCore::Layout::outOfFlowReplacedWidth):
(WebCore::Layout::floatingNonReplacedHeight):
(WebCore::Layout::floatingNonReplacedWidth):
(WebCore::Layout::floatingReplacedHeight):
(WebCore::Layout::floatingReplacedWidth):
(WebCore::Layout::outOfFlowNonReplacedPosition):
(WebCore::Layout::outOfFlowReplacedPosition):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHeight):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowWidth):
(WebCore::Layout::FormattingContext::Geometry::floatingHeight):
(WebCore::Layout::FormattingContext::Geometry::floatingWidth):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowPosition):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeight):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidth):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHeight): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedWidth): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHeight): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedWidth): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedHeight): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidth): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeight): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidth): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedPosition): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedPosition): Deleted.
(WebCore::Layout::FormattingContext::Geometry::replacedHeight): Deleted.
(WebCore::Layout::FormattingContext::Geometry::replacedWidth): Deleted.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeStaticPosition const):
(WebCore::Layout::BlockFormattingContext::computeInFlowPositionedPosition const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::inFlowNonReplacedHeight):
(WebCore::Layout::inFlowNonReplacedWidth):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeight):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidth):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeight): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidth): Deleted.
- 7:07 AM Changeset in webkit [232393] by
-
- 8 edits in trunk/Source/WebCore
[LFC] Push FormattingContext::computeWidth/computeHeight logic from the base to the subclasses.
https://bugs.webkit.org/show_bug.cgi?id=186172
Reviewed by Antti Koivisto.
FormattingContext::computeWidth/computeHeight virtual functions have very little benefit and in the long run
it's better if we keep the number of virtual functions to the minimum necessary.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeStaticPosition const): Deleted.
(WebCore::Layout::FormattingContext::computeInFlowPositionedPosition const): Deleted.
(WebCore::Layout::FormattingContext::computeWidth const): Deleted.
(WebCore::Layout::FormattingContext::computeHeight const): Deleted.
(WebCore::Layout::FormattingContext::computeMargin const): Deleted.
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHeight):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedWidth):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeight):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidth):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeight):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidth):
(WebCore::Layout::FormattingContext::Geometry::replacedHeight): Deleted.
(WebCore::Layout::FormattingContext::Geometry::replacedWidth): Deleted.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeWidth const):
(WebCore::Layout::BlockFormattingContext::computeHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
- layout/blockformatting/BlockFormattingContext.h:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeStaticPosition const):
(WebCore::Layout::InlineFormattingContext::computeInFlowPositionedPosition const):
(WebCore::Layout::InlineFormattingContext::computeInFlowWidth const): Deleted.
(WebCore::Layout::InlineFormattingContext::computeInFlowHeight const): Deleted.
- layout/inlineformatting/InlineFormattingContext.h:
- 6:02 AM Changeset in webkit [232392] by
-
- 5 edits in trunk/Source/WebCore
[GTK] Difficult to read combo box text in dark theme
https://bugs.webkit.org/show_bug.cgi?id=165072
Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-06-01
Reviewed by Carlos Garcia Campos.
Set listbox foreground color to theme color to fix hard-to-read
text color in combo box while using dark theme.
No new tests required. ManualTests/gtk/theme.html already covers it.
See the "Option Lists" section.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
Adjust style for ListboxPart as well.
- rendering/RenderTheme.h: Add adjustListboxStyle()
- rendering/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::adjustListboxStyle const):
Set color to the theme foreground color.
- rendering/RenderThemeGtk.h: adjustListboxStyle() overriden.
- 1:09 AM Changeset in webkit [232391] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed. Try to fix GTK+ build with old versions of GTK+ after r232390.
- UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::showPopupMenu):
- 12:44 AM Changeset in webkit [232390] by
-
- 7 edits in trunk/Source
[GTK] Switch to use a popup window with a tree view instead of a menu for option menu default implementation
https://bugs.webkit.org/show_bug.cgi?id=186146
Reviewed by Michael Catanzaro.
Source/WebCore:
Make it possible to use GUniquePtr with GtkTreePath.
- platform/gtk/GUniquePtrGtk.h:
Source/WebKit:
It's more convenient to use than the menu.
- UIProcess/API/gtk/WebKitPopupMenu.cpp:
(WebKit::menuCloseCallback):
(WebKit::WebKitPopupMenu::activateItem):
- UIProcess/API/gtk/WebKitPopupMenu.h:
- UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):
(WebKit::WebPopupMenuProxyGtk::selectItem):
(WebKit::WebPopupMenuProxyGtk::activateItem):
(WebKit::WebPopupMenuProxyGtk::activateItemAtPath):
(WebKit::WebPopupMenuProxyGtk::treeViewRowActivatedCallback):
(WebKit::WebPopupMenuProxyGtk::treeViewButtonReleaseEventCallback):
(WebKit::WebPopupMenuProxyGtk::buttonPressEventCallback):
(WebKit::WebPopupMenuProxyGtk::keyPressEventCallback):
(WebKit::WebPopupMenuProxyGtk::createPopupMenu):
(WebKit::WebPopupMenuProxyGtk::show):
(WebKit::WebPopupMenuProxyGtk::showPopupMenu):
(WebKit::WebPopupMenuProxyGtk::hidePopupMenu):
(WebKit::WebPopupMenuProxyGtk::cancelTracking):
(WebKit::WebPopupMenuProxyGtk::typeAheadFindIndex):
(WebKit::WebPopupMenuProxyGtk::typeAheadFind):
- UIProcess/gtk/WebPopupMenuProxyGtk.h: