Timeline
Dec 22, 2016:
- 8:41 PM Changeset in webkit [210130] by
-
- 15 edits in trunk/Source
Reduce QuickLook.h include overhead
https://bugs.webkit.org/show_bug.cgi?id=166454
Reviewed by Andreas Kling.
Source/WebCore:
- dom/Document.cpp: Included QuickLook.h for QLPreviewProtocol().
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setQuickLookHandle): Moved from DocumentLoader.h to here.
- loader/DocumentLoader.h: Stopped including QuickLook.h and forward-declared
QuickLookHandle.
(WebCore::DocumentLoader::setQuickLookHandle): Moved definition out-of-line since it
requires QuickLookHandle to be a complete type.
- loader/ios/QuickLook.h: Updated to use #pragma once. Cleaned up includes and forward
declarations.
- platform/network/ResourceHandle.cpp: Included QuickLook.h so that QuickLookHandle is a
complete type in the ResourceHandle constructor.
- platform/network/ResourceHandle.h: Stopped including QuickLook.h and forward-declared
QuickLookHandle.
(WebCore::ResourceHandle::setQuickLookHandle): Moved definition out-of-line since it
requires QuickLookHandle to be a complete type.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::setQuickLookHandle): Moved from ResourceHandle.h to here.
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm: Included QuickLook.h for
QuickLookHandle.
Source/WebKit:
- WebCoreSupport/WebResourceLoadScheduler.cpp: Stopped including QuickLook.h.
Source/WebKit2:
- WebProcess/Network/WebLoaderStrategy.cpp: Included QuickLook.h for QLPreviewProtocol().
- WebProcess/Network/WebResourceLoader.cpp: Included QuickLook.h for QuickLookHandle.
- WebProcess/Network/WebResourceLoader.h: Stopped including QuickLook.h.
- 6:24 PM Changeset in webkit [210129] by
-
- 2 edits2 moves1 add in trunk/Source/WebCore
[iOS] Move QuickLook from WebCore/platform to WebCore/loader
https://bugs.webkit.org/show_bug.cgi?id=166449
Reviewed by Darin Adler.
QuickLook.mm knows about ResourceLoader, so it's a layering violation to have it in
platform/. Move it to loader/ios/.
- WebCore.xcodeproj/project.pbxproj:
- loader/ios/QuickLook.h: Renamed from Source/WebCore/platform/network/ios/QuickLook.h.
- loader/ios/QuickLook.mm: Renamed from Source/WebCore/platform/network/ios/QuickLook.mm.
- 6:21 PM Changeset in webkit [210128] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix unused parameter warning in GLES build
Looks like it's been here since 2012. Impressive!
- platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
- 6:14 PM Changeset in webkit [210127] by
-
- 5 edits in trunk
WebAssembly: Make spec-tests/f32.wast.js and spec-tests/f64.wast.js pass
https://bugs.webkit.org/show_bug.cgi?id=166447
Reviewed by Saam Barati.
JSTests:
- wasm.yaml:
- wasm/wasm.json:
Source/JavaScriptCore:
We needed to treat -0.0 < 0.0 for floating point min/max. For min,
the algorithm works because if a == b then a and b are not NaNs so
either they are the same or they are some zero. When we or a and b
either we get the same number back or we get -0.0. Similarly for
max we use an and and the sign bit gets dropped if one is 0.0 and
the other is -0.0, otherwise, we get the same number back.
- wasm/wasm.json:
- 5:32 PM Changeset in webkit [210126] by
-
- 5 edits1 add in trunk
WebAssembly: Make calling Wasm functions that returns or takes an i64 as a parameter an early exception
https://bugs.webkit.org/show_bug.cgi?id=166437
<rdar://problem/29793949>
Reviewed by Keith Miller.
JSTests:
- wasm.yaml:
- wasm/function-tests/i64-from-js-exceptions.js: Added.
(const.imp.import.sideEffects):
(assert.throws.instance.exports.foo.valueOf):
Source/JavaScriptCore:
This patch makes it so that we throw an exception before we do
anything else if we call a wasm function that either takes an
i64 as an argument or returns an i64.
- wasm/js/WebAssemblyFunction.cpp:
(JSC::callWebAssemblyFunction):
(JSC::WebAssemblyFunction::WebAssemblyFunction):
(JSC::WebAssemblyFunction::call): Deleted.
- wasm/js/WebAssemblyFunction.h:
(JSC::WebAssemblyFunction::signatureIndex):
(JSC::WebAssemblyFunction::jsEntrypoint):
- 5:23 PM Changeset in webkit [210125] by
-
- 2 edits in trunk/Source/WebInspectorUI
Unreviewed, rolling out r210069.
https://bugs.webkit.org/show_bug.cgi?id=166439
This patch makes all properties in Computed Styles strike-
through when switching from the Rules panel. (Requested by NVI
on #webkit).
Reverted changeset:
"Web Inspector: Uncommenting CSS properties doesn't work for
inline styles"
https://bugs.webkit.org/show_bug.cgi?id=166297
http://trac.webkit.org/changeset/210069
- 5:19 PM Changeset in webkit [210124] by
-
- 16 edits in trunk
Add BitOr for floating points to B3
https://bugs.webkit.org/show_bug.cgi?id=166446
Reviewed by Saam Barati.
Source/JavaScriptCore:
This patch does some slight refactoring to the ARM assembler,
which groups all the vector floating point instructions together.
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::vand):
(JSC::ARM64Assembler::vorr):
(JSC::ARM64Assembler::vectorDataProcessingLogical):
(JSC::ARM64Assembler::vectorDataProcessing2Source): Deleted.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::orDouble):
(JSC::MacroAssemblerARM64::orFloat):
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::orDouble):
(JSC::MacroAssemblerX86Common::orFloat):
- assembler/X86Assembler.h:
(JSC::X86Assembler::orps_rr):
- b3/B3ConstDoubleValue.cpp:
(JSC::B3::ConstDoubleValue::bitOrConstant):
(JSC::B3::ConstDoubleValue::bitXorConstant):
- b3/B3ConstDoubleValue.h:
- b3/B3ConstFloatValue.cpp:
(JSC::B3::ConstFloatValue::bitOrConstant):
(JSC::B3::ConstFloatValue::bitXorConstant):
- b3/B3ConstFloatValue.h:
- b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::lower):
- b3/B3Validate.cpp:
- b3/air/AirInstInlines.h:
(JSC::B3::Air::Inst::shouldTryAliasingDef):
- b3/air/AirOpcode.opcodes:
- b3/testb3.cpp:
(JSC::B3::bitOrDouble):
(JSC::B3::testBitOrArgDouble):
(JSC::B3::testBitOrArgsDouble):
(JSC::B3::testBitOrArgImmDouble):
(JSC::B3::testBitOrImmsDouble):
(JSC::B3::bitOrFloat):
(JSC::B3::testBitOrArgFloat):
(JSC::B3::testBitOrArgsFloat):
(JSC::B3::testBitOrArgImmFloat):
(JSC::B3::testBitOrImmsFloat):
(JSC::B3::testBitOrArgsFloatWithUselessDoubleConversion):
(JSC::B3::run):
Websites/webkit.org:
Update docs to indicate it's cool to use bit ops with floating point.
- docs/b3/intermediate-representation.html:
- 5:08 PM WebIDLToDo edited by
- (diff)
- 5:00 PM WebIDLToDo edited by
- (diff)
- 4:57 PM WebIDLToDo created by
- Add To Do list for WebIDL improvements. Each of these should get a bug.
- 4:56 PM WikiStart edited by
- (diff)
- 4:32 PM Changeset in webkit [210123] by
-
- 3 edits1 delete in trunk/Source/WebCore
Move GraphicsContext3DWin to GraphicsContext3DOpenGLES
https://bugs.webkit.org/show_bug.cgi?id=166425
Reviewed by Tim Horton.
Move code which is GLES-specific not Windows-specific to the GLES-specific file
so I can use it on Cocoa, with a temporary PLATFORM macro that I plan to remove once
all platforms use ANGLE's GLES implementation. There is another copy of this code in
GraphicsContext3DCairo, which will also be united with this code here soon.
Also remove the PlatformCALayerWin, which was never used for anything.
- platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::setContextLostCallback):
(WebCore::GraphicsContext3D::setErrorMessageCallback):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::checkGPUStatusIfNecessary):
(WebCore::GraphicsContext3D::platformGraphicsContext3D):
(WebCore::GraphicsContext3D::platformTexture):
(WebCore::GraphicsContext3D::isGLES2Compliant):
(WebCore::GraphicsContext3D::platformLayer):
- platform/graphics/win/GraphicsContext3DWin.cpp: Removed.
- PlatformMac.cmake:
Include the egl directory. I'll need this, too, once Mac starts using ANGLE's EGL implementation.
- 4:20 PM Changeset in webkit [210122] by
-
- 5 edits3 adds in trunk
Nested calls to setDocument can omit firing 'unload' events
https://bugs.webkit.org/show_bug.cgi?id=166422
<rdar://problem/29763012>
Reviewed by Alex Christensen.
Source/WebCore:
Test: fast/loader/nested-document-handling.html
Only allow a single document change to be taking place during a given runloop cycle.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL): Block script changing the document
when we are in the middle of changing the document.
- page/Frame.cpp:
(WebCore::Frame::setDocument): Keep track of document change state.
- page/Frame.h:
LayoutTests:
- fast/loader/nested-document-handling-expected.txt: Added.
- fast/loader/nested-document-handling.html: Added.
- fast/loader/resources/subframe-success.html: Added.
- 3:52 PM Changeset in webkit [210121] by
-
- 2 edits in trunk/Source/WebCore
TileGrid creates new cohorts even when not using temporarilyRetainTileCohorts mode
https://bugs.webkit.org/show_bug.cgi?id=166440
Reviewed by Simon Fraser.
No new tests.
- platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::revalidateTiles):
If we are not temporarily retaining unparented tile cohorts (e.g. on
iOS WebKit2), instead immediately removing all tiles that would go into
the new cohort, avoid starting the cohort at all.
- 3:48 PM Changeset in webkit [210120] by
-
- 3 edits2 adds in trunk
Do not destroy the RenderNamedFlowFragment as leftover anonymous block.
https://bugs.webkit.org/show_bug.cgi?id=166436
rdar://problem/29772233
Reviewed by Simon Fraser.
Source/WebCore:
When as the result of certain style change, the generated anonymous block is not needed anymore, we
move its descendants up to the parent and destroy the generated box. While RenderNamedFlowFragment is a generated
block, the cleanup code should just ignore it the same way we ignore boxes like multicolumn, mathml etc.
Test: fast/regions/flow-fragment-as-anonymous-block-crash.html
- rendering/RenderObject.h:
(WebCore::RenderObject::isAnonymousBlock):
LayoutTests:
- fast/regions/flow-fragment-as-anonymous-block-crash-expected.txt: Added.
- fast/regions/flow-fragment-as-anonymous-block-crash.html: Added.
- 3:23 PM Changeset in webkit [210119] by
-
- 3 edits in trunk/Source/JavaScriptCore
BytecodeGenerator::m_finallyDepth should be unsigned.
https://bugs.webkit.org/show_bug.cgi?id=166438
Reviewed by Saam Barati.
Also removed FinallyContext::m_finallyDepth because it is not used.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::pushFinallyControlFlowScope):
(JSC::BytecodeGenerator::labelScopeDepth):
- bytecompiler/BytecodeGenerator.h:
(JSC::FinallyContext::FinallyContext):
(JSC::FinallyContext::finallyLabel):
(JSC::FinallyContext::depth): Deleted.
- 3:18 PM Changeset in webkit [210118] by
-
- 2 edits in trunk/Source/WebKit2
Null deref under WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground
https://bugs.webkit.org/show_bug.cgi?id=166433
<rdar://problem/29732407>
Reviewed by Daniel Bates.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
m_drawingArea can be null if the process is not valid.
- 2:55 PM Changeset in webkit [210117] by
-
- 3 edits2 adds in trunk
CSS Scroll Snap does not work if scrollbar is hidden
https://bugs.webkit.org/show_bug.cgi?id=160442
<rdar://problem/23317034>
Reviewed by Simon Fraser.
Source/WebCore:
Currently, the only reason scroll snapping works in overflow scrolling containers without forcing layout is
because we would initialize the scrolling container's ScrollAnimator in the process of updating scrollbars. If
there are no scrollbars to render, we won't bother creating a ScrollAnimator. Without an existing
ScrollAnimator, ScrollableArea::updateScrollSnapState will simply bail instead of setting up the scroll snap
state. Instead, we should take setting a non-empty vector of scroll offsets on the ScrollableArea as a cue that
the ScrollableArea also needs a ScrollAnimator, and initialize it there if necessary.
Test: tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-hidden-scrollbars.html
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::setHorizontalSnapOffsets):
(WebCore::ScrollableArea::setVerticalSnapOffsets):
LayoutTests:
Adds a new layout test verifying that scroll snapping still works when scrollbars are hidden via CSS.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-hidden-scrollbars-expected.txt: Added.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-hidden-scrollbars.html: Added.
- 2:48 PM Changeset in webkit [210116] by
-
- 8 edits2 copies in trunk
De-duplicate finally blocks.
https://bugs.webkit.org/show_bug.cgi?id=160168
Reviewed by Saam Barati.
JSTests:
Re-landing r209952 with a few new tests added in test-finally.js.
- stress/deeply-nested-finallys.js: Copied from JSTests/stress/deeply-nested-finallys.js.
- Tests many levels of finally nesting. This causes the old code to hang (and crashes eventually) while trying to generate bytecode for the exponentially duplicated finally blocks. The new code completes this test almost instantly.
- stress/test-finally.js: Copied from JSTests/stress/test-finally.js.
- Tests control flow through various permutations of finally blocks.
Source/JavaScriptCore:
JS execution can arrive at a finally block when there are abrupt completions from
its try or catch block. The abrupt completion types include Break,
Continue, Return, and Throw. The non-abrupt completion type is called Normal
(i.e. the case of a try block falling through to the finally block).
Previously, we enable each of these paths for abrupt completion (except for Throw)
to run the finally block code by duplicating the finally block code at each of
the sites that trigger those completions. This patch fixes the implementation so
that each of these abrupt completions will set a completionTypeRegister (plus a
completionValueRegister for CompletionType::Return) and then jump to the
relevant finally blocks, and continue to thread through subsequent outer finally
blocks until execution reaches the outermost finally block that the completion
type dictates. We no longer duplicate the finally block code.
The implementation details:
- We allocate a pair of registers (completionTypeRegister and completionValueRegister) just before entering the outermost try-catch-finally scope.
On allocating the registers, we initialize the completionTypeRegister to
CompletionType::Normal, and set the completionValueRegister to the empty
JSValue.
- The completionTypeRegister will hold a CompletionType value. This is how we encode the CompletionType value to be set:
- For Normal, Return, and Throw completion types:
- The completionTypeRegister is set to CompletionType::Normal, CompletionType::Return, and CompletionType::Throw respectively.
- For Break and Continue completion types:
- The completionTypeRegister is set to a unique jumpID where the jumpID is computed as:
jumpID = CompletionType::NumberOfTypes + bytecodeOffset
The bytecodeOffset used here is the bytecodeOffset of the break or continue
statement that triggered this completion.
- Each finally block will have 2 entries:
- the catch entry.
- the normal entry.
The catch entry is recorded in the codeBlock's exception handler table,
and can only be jumped to by the VM's exception handling mechanism.
The normal entry is recorded in a FinallyContext (at bytecode generation time
only) and is jumped to when we want enter the finally block due any of the
other CompletionTypes.
- How each completion type works?
CompletionType::Normal
======================
We normally encounter this when falling through from a try or catch block to
the finally block.
For the try block case, since completionTypeRegister is set to Normal by default,
there's nothing more that needs to be done.
For the catch block case, since we entered the catch block with an exception,
completionTypeRegister may be set to Throw. We'll need to set it to Normal
before jumping to the finally block's normal entry.
CompletionType::Break
=====================
When we emit bytecode for the BreakNode, we check if we have any FinallyContexts
that we need to service before jumping to the breakTarget. If we don't, then
emit op_jump to the breakTarget as usual. Otherwise:
- we'll register a jumpID and the breakTarget with the FinallyContext for the outermost finally block that we're supposed to run through.
- we'll also increment the numberOfBreaksOrContinues count in each FinallyContext from the innermost to the one for that outermost finally block.
- emit bytecode to set the completionTypeRegister to the jumpID.
- emit bytecode to jump to the normal entry of the innermost finally block.
Each finally block will take care of cascading to the next outer finally block
as needed (see (5) below).
CompletionType::Continue
========================
Since continues and breaks work the same way (i.e. with a jump), we handle this
exactly the same way as CompletionType::Break, except that we use the
continueTarget instead of the breakTarget.
CompletionType::Return
======================
When we emit bytecode for the ReturnNode, we check if we have any FinallyContexts
at all on the m_controlFlowScopeStack. If we don't, then emit op_ret as usual.
Otherwise:
- emit bytecode to set the completionTypeRegister to CompletionType::Return.
- emit bytecode to move the return value into the completionValueRegister.
- emit bytecode to jump to the normal entry of the innermost finally block.
Each finally block will take care of cascading to the next outer finally block
as needed (see (5) below).
CompletionType::Throw
======================
At the catch entry a finally block, we:
- emit an op_catch that stores the caught Exception object in the completionValueRegister.
- emit bytecode to set the completionTypeRegister to CompletionType::Throw.
- Fall through or jump to the finally block's normal entry.
- What happens in each finally block? ================================== For details on the finally block's catch entry, see "CompletionType::Throw" in (4) above.
The finally block's normal entry will:
- restore the scope of the finally block.
- save the completionTypeRegister in a savedCompletionTypeRegister.
- proceed to execute the body of the finally block.
At the end of the finally block, we will emit bytecode check the
savedCompletionTypeRegister for each completion type see emitFinallyCompletion())
in the following order:
- Check for CompletionType::Normal ================================ If savedCompletionTypeRegister is CompletionType::Normal, jump to the designated normalCompletion label. We only need this check this finally block also needs to check for Break, Continue, or Return. If not, the completion type check for CompletionType::Throw below will make this check redundant.
- Check for CompletionType::Break and Continue ============================================ If the FinallyContext for this block has registered FinallyJumps, we'll check the jumpIDs against the savedCompletionTypeRegister. If the jumpID matches, jump to the corresponding jumpTarget.
If no jumpIDs match but the FinallyContext's numberOfBreaksOrContinues is
greater than the number of registered FinallyJumps, then this means that
we have a Break or Continue that needs to be handled by an outer finally
block. In that case, jump to the next outer finally block's normal entry.
- Check for CompletionType::Return ================================ If this finally block is not the outermost and the savedCompletionTypeRegister is set to CompletionType::Return, then jump to the next outer finally block's normal entry.
Otherwise, if this finally block is the outermost and the savedCompletionTypeRegister
is set to CompletionType::Return, then execute op_ret and return the value
in the completionValueRegister.
- CompletionType::Throw ===================== If savedCompletionTypeRegister is CompletionType::Throw, then just re-throw the Exception object in the completionValueRegister.
Detail 1: that we check the savedCompletionTypeRegister (and not the
completionTypeRegister). This is because the finally block may itself contain
a try-finally, and this inner try-finally may have trashed the completionTypeRegister.
Here's an example:
try {
return "r1"; Sets completionTypeRegister to CompletionType::Return;
} finally {
completionTypeRegister is CompletionType::Return here.
try {
... do stuff.
} finally {
... do more stuff.
}
completionTypeRegister may be anything here depending on what
was executed in the inner try-finally block above.
Hence, finally completion here must be based on a saved copy of the
completionTypeRegister when we entered this finally block.
}
Detail 2: the finally completion for CompletionType::Throw must always explicitly
check if the savedCompletionTypeRegister is CompletionType::Throw before throwing.
We cannot imply that it is so from the Throw case being last. Here's why:
completionTypeRegister is CompletionType::Normal here.
try {
return "r1"; Sets completionTypeRegister to CompletionType::Return;
} finally {
completionTypeRegister is CompletionType::Return here.
try {
... do stuff. No abrupt completions.
} finally {
completionTypeRegister is CompletionType::Return here (from the outer try-finally).
savedCompletionTypeRegister is set to completionTypeRegister (i.e. CompletionType::Return) here.
... do more stuff. No abrupt completions.
Unless there's an abrupt completion since entering the outer
finally block, the savedCompletionTypeRegister will remain set
to CompletionType::Return. If we don't explicitly check if the
savedCompletionTypeRegister is CompletionType::Throw before
throwing here, we'll end up erroneously throwing "r1".
}
...
}
- restoreScopeRegister()
Since the needed scope objects are always stored in a local, we can restore
the scope register by simply moving from that local instead of going through
op_get_parent_scope.
- m_controlFlowScopeStack needs to be a SegmentedVector instead of a Vector. This makes it easier to keep a pointer to the FinallyContext on that stack, and not have to worry about the vector being realloc'ed due to resizing.
Performance appears to be neutral both on ES6SampleBench (run via cli) and the
JSC benchmarks.
Relevant spec references:
https://tc39.github.io/ecma262/#sec-completion-record-specification-type
https://tc39.github.io/ecma262/#sec-try-statement-runtime-semantics-evaluation
- bytecode/HandlerInfo.h:
(JSC::HandlerInfoBase::typeName):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::pushFinallyControlFlowScope):
(JSC::BytecodeGenerator::popFinallyControlFlowScope):
(JSC::BytecodeGenerator::allocateAndEmitScope):
(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTry):
(JSC::BytecodeGenerator::emitCatch):
(JSC::BytecodeGenerator::restoreScopeRegister):
(JSC::BytecodeGenerator::labelScopeDepthToLexicalScopeIndex):
(JSC::BytecodeGenerator::labelScopeDepth):
(JSC::BytecodeGenerator::pushLocalControlFlowScope):
(JSC::BytecodeGenerator::popLocalControlFlowScope):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitIsNumber):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::allocateCompletionRecordRegisters):
(JSC::BytecodeGenerator::releaseCompletionRecordRegisters):
(JSC::BytecodeGenerator::emitJumpIf):
(JSC::BytecodeGenerator::pushIteratorCloseControlFlowScope): Deleted.
(JSC::BytecodeGenerator::popIteratorCloseControlFlowScope): Deleted.
(JSC::BytecodeGenerator::emitComplexPopScopes): Deleted.
(JSC::BytecodeGenerator::emitPopScopes): Deleted.
(JSC::BytecodeGenerator::popTryAndEmitCatch): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::bytecodeOffsetToJumpID):
(JSC::FinallyJump::FinallyJump):
(JSC::FinallyContext::FinallyContext):
(JSC::FinallyContext::outerContext):
(JSC::FinallyContext::finallyLabel):
(JSC::FinallyContext::depth):
(JSC::FinallyContext::numberOfBreaksOrContinues):
(JSC::FinallyContext::incNumberOfBreaksOrContinues):
(JSC::FinallyContext::handlesReturns):
(JSC::FinallyContext::setHandlesReturns):
(JSC::FinallyContext::registerJump):
(JSC::FinallyContext::numberOfJumps):
(JSC::FinallyContext::jumps):
(JSC::ControlFlowScope::ControlFlowScope):
(JSC::ControlFlowScope::isLabelScope):
(JSC::ControlFlowScope::isFinallyScope):
(JSC::BytecodeGenerator::currentLexicalScopeIndex):
(JSC::BytecodeGenerator::CompletionRecordScope::CompletionRecordScope):
(JSC::BytecodeGenerator::CompletionRecordScope::~CompletionRecordScope):
(JSC::BytecodeGenerator::completionTypeRegister):
(JSC::BytecodeGenerator::completionValueRegister):
(JSC::BytecodeGenerator::emitSetCompletionType):
(JSC::BytecodeGenerator::emitSetCompletionValue):
(JSC::BytecodeGenerator::isInFinallyBlock): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::ContinueNode::emitBytecode):
(JSC::BreakNode::emitBytecode):
(JSC::ReturnNode::emitBytecode):
(JSC::TryNode::emitBytecode):
Source/WTF:
Added some methods to bring SegmentedVector closer to parity with Vector.
- wtf/SegmentedVector.h:
(WTF::SegmentedVector::first):
(WTF::SegmentedVector::last):
(WTF::SegmentedVector::takeLast):
- 2:40 PM Changeset in webkit [210115] by
-
- 4 edits in trunk
WebAssembly: Make the spec-tests/address.wast.js test pass
https://bugs.webkit.org/show_bug.cgi?id=166429
<rdar://problem/29793220>
Reviewed by Keith Miller.
JSTests:
- wasm.yaml:
Source/JavaScriptCore:
Right now, provably out of bound loads/stores (given a load/store's constant
offset) are not a validation error. However, we were failing to catch uint32_t
overflows in release builds (we did have a debug assertion). To fix this,
I now detect when uint32_t addition will overflow, and instead of emitting
a normal load/store, I emit code that throws an out of bounds memory exception.
- wasm/WasmB3IRGenerator.cpp:
- 2:29 PM Changeset in webkit [210114] by
-
- 2 edits in trunk/Tools
WebAssembly: Silence the output of the spec-tests
https://bugs.webkit.org/show_bug.cgi?id=166417
Reviewed by Mark Lam.
- Scripts/run-jsc-stress-tests:
- 2:26 PM Changeset in webkit [210113] by
-
- 4 edits in trunk/LayoutTests
Make http/tests/security/popup-blocked-from-{fake-event, window-open}.html actually test popup
blocker; run on WebKit2
https://bugs.webkit.org/show_bug.cgi?id=166403
Reviewed by Darin Adler.
The tests http/tests/security/popup-blocked-from-{fake-event, window-open}.html inadvertently
depended on the default behavior of DumpRenderTree to ignore the ChromeClient::createWindow()
callback when asked to create a new window instead of testing that the popup blocker blocked
opening windows. We should call testRunner.setCanOpenWindows() and testRunner.setPopupBlockingEnabled(true)
from both of these tests so that DumpRenderTree respects requests to open windows and enable
the popup blocker (it is disabled by default), respectively.
The default behavior of DumpRenderTree to disallow opening windows falls out from the purpose
and implementation of testRunner.setCanOpenWindows() to support writing tests where the embedding
client ignores requests to create a new window. We do not implement such a concept in WebKitTestRunner
(see <https://bugs.webkit.org/show_bug.cgi?id=166402>).
- http/tests/security/popup-blocked-from-fake-event.html:
- http/tests/security/popup-blocked-from-window-open.html:
- platform/wk2/TestExpectations: Unskip the above tests as they now pass.
- 2:20 PM Changeset in webkit [210112] by
-
- 3 edits6 adds in trunk
Bypass pop-up blocker from cross-origin or sandboxed frame
https://bugs.webkit.org/show_bug.cgi?id=166290
<rdar://problem/29742039>
Reviewed by Darin Adler.
Source/WebCore:
Tests: fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html
fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html
fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html
- page/DOMWindow.cpp:
(WebCore::DOMWindow::open): Use FrameLoader::findFrameForNavigation() to find the
target frame to navigate with respect to the active document just as we do in WebCore::createWindow().
LayoutTests:
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame-expected.txt: Added.
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html: Added.
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2-expected.txt: Added.
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html: Added.
- fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt: Added.
- fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html: Added.
- 2:19 PM Changeset in webkit [210111] by
-
- 7 edits in trunk
WebAssembly: The validator should not allow unused stack entries at the end of a block
https://bugs.webkit.org/show_bug.cgi?id=166411
Reviewed by Saam Barati.
JSTests:
Test cleanup and enable new passing tests.
- wasm.yaml:
- wasm/function-tests/br-if-as-return.js:
Source/JavaScriptCore:
This patch also cleans up some of the verbose mode logging.
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::dumpExpressionStack):
(JSC::Wasm::B3IRGenerator::dump):
- wasm/WasmFunctionParser.h:
- wasm/WasmValidate.cpp:
(JSC::Wasm::dumpExpressionStack):
(JSC::Wasm::Validate::dump):
- 1:56 PM Changeset in webkit [210110] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles sidebar: Uncommenting CSS rules of pseudo-elements doesn't work
https://bugs.webkit.org/show_bug.cgi?id=165831
<rdar://problem/29652688>
Reviewed by Matt Baker.
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties):
Call _resetContent() when toggling all properties to ensure properties have text markers.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCommentCheckboxChanged):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentProperty): Added.
This method is the opposite of _commentProperty. Introduce it to minimize code duplication.
- 1:10 PM Changeset in webkit [210109] by
-
- 17 edits in trunk/Source
Make WebCore::EditorInsertAction an enum class
https://bugs.webkit.org/show_bug.cgi?id=166424
Reviewed by Brent Fulgham.
Source/WebCore:
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::applyDictationAlternative):
- editing/Editor.cpp:
(WebCore::Editor::pasteAsPlainTextWithPasteboard):
(WebCore::Editor::shouldInsertText):
(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::insertLineBreak):
(WebCore::Editor::insertParagraphSeparator):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::changeBackToReplacedString):
(WebCore::Editor::transpose):
(WebCore::Editor::handleAcceptedCandidate):
- editing/EditorInsertAction.h:
(): Deleted.
- editing/gtk/EditorGtk.cpp:
(WebCore::Editor::pasteWithPasteboard):
- editing/ios/EditorIOS.mm:
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::replaceSelectionWithAttributedString):
- editing/mac/EditorMac.mm:
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::replaceNodeFromPasteboard):
(WebCore::Editor::replaceSelectionWithAttributedString):
- editing/win/EditorWin.cpp:
(WebCore::Editor::pasteWithPasteboard):
- page/ContextMenuController.cpp:
(WebCore::insertUnicodeCharacter):
(WebCore::ContextMenuController::contextMenuItemSelected):
- page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):
Source/WebKit/mac:
- WebCoreSupport/WebEditorClient.mm:
(kit):
Source/WebKit/win:
- WebCoreSupport/WebEditorClient.cpp:
(kit):
(WebEditorClient::shouldInsertNode):
(WebEditorClient::shouldInsertText):
Source/WebKit2:
- WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
(WebKit::toAPI):
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(toWK):
- 12:45 PM Changeset in webkit [210108] by
-
- 2 edits in tags/Safari-604.1.1.1/Source/WebCore
Merged r210099. rdar://problem/29782862
- 12:44 PM Changeset in webkit [210107] by
-
- 5 edits in tags/Safari-604.1.1.1/Source
Versioning.
- 12:40 PM Changeset in webkit [210106] by
-
- 1 copy in tags/Safari-604.1.1.1
New tag.
- 12:31 PM Changeset in webkit [210105] by
-
- 14 edits in trunk/Source/WebCore
Only include those parts of AVFoundation.framework which are strictly needed.
https://bugs.webkit.org/show_bug.cgi?id=166423
Reviewed by Eric Carlson.
- Modules/plugins/QuickTimePluginReplacement.mm:
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
- platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
- platform/mac/SerializedPlatformRepresentationMac.mm:
- platform/mac/WebPlaybackSessionInterfaceMac.mm:
- platform/mac/WebVideoFullscreenController.mm:
- platform/mediastream/mac/AVAudioCaptureSource.mm:
- platform/mediastream/mac/AVCaptureDeviceManager.mm:
- platform/mediastream/mac/AVMediaCaptureSource.mm:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
- 12:07 PM Changeset in webkit [210104] by
-
- 4 edits in trunk/Source/WebCore
NULL-deref CRASH in WebCore::PlatformMediaSession::mediaType
https://bugs.webkit.org/show_bug.cgi?id=166407
Reviewed by Darin Adler.
In r207688, we added a facility in PlatformMediaSessionManager for safely walking through a
list of PlatformMediaSessions by replacing entries of deleted sessions with nullptr. We now
need to use those new iteration falicities in MediaSessionManageriOS.
In addition to the existing iterators, add one which takes a predicate, and returns the first
session which matches the predicate, or nullptr, if none do.
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::findSession):
(WebCore::PlatformMediaSessionManager::anyOfSessions):
- platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::sessions): Deleted.
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::configureWireLessTargetMonitoring):
(WebCore::MediaSessionManageriOS::nowPlayingEligibleSession):
(WebCore::MediaSessionManageriOS::externalOutputDeviceAvailableDidChange):
(WebCore::MediaSessionManageriOS::applicationDidEnterBackground):
(WebCore::MediaSessionManageriOS::applicationWillEnterForeground):
- 11:49 AM Changeset in webkit [210103] by
-
- 5 edits in trunk
Source/WebKit2:
[Cocoa] SPI for setloadsImagesAutomatically
https://bugs.webkit.org/show_bug.cgi?id=166401
Patch by Zhuo Li <zachli@apple.com> on 2016-12-22
Reviewed by Darin Adler.
- UIProcess/API/Cocoa/WKPreferences.mm: Call the C API under the hood.
(-[WKPreferences _loadsImagesAutomatically]):
(-[WKPreferences _setLoadsImagesAutomatically:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Add
_loadsImagesAutomatically
property.
Tools:
[Cocoa] SPI for setloadsImagesAutomatically.
https://bugs.webkit.org/show_bug.cgi?id=166401.
Patch by Zhuo Li <zachli@apple.com> on 2016-12-22
Reviewed by Darin Adler.
- TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm:
(TEST): Test the _setLoadsImagesAutomatically SPI. By default,
_loadsImagesAutomatically returns YES.
- 10:31 AM Changeset in webkit [210102] by
-
- 7 edits in trunk
WebAssembly: Make the spec-tests/start.wast.js test pass
https://bugs.webkit.org/show_bug.cgi?id=166416
<rdar://problem/29784532>
Reviewed by Yusuke Suzuki.
JSTests:
- wasm.yaml:
Source/JavaScriptCore:
To make the test run, I had to fix two bugs:
- We weren't properly finding the start function. There was code
that would try to find the start function from the list of *exported*
functions. This is wrong; the start function is an index into the
function index space, which is the space for *imports* and *local*
functions. So the code was just wrong in this respect, and I've
fixed it do the right thing. We weren't sure if this was originally
allowed or not in the spec, but it has been decided that it is allowed
and the spec-tests test for it: https://github.com/WebAssembly/design/issues/896
- We were emitting a breakpoint for Unreachable. Instead of crashing,
this opcode needs to throw an exception when executing.
- wasm/WasmB3IRGenerator.cpp:
- wasm/WasmExceptionType.h:
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):
- wasm/js/WebAssemblyModuleRecord.h:
- 9:37 AM Changeset in webkit [210101] by
-
- 3 edits in trunk/Tools
fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html is flaky/order dependent
https://bugs.webkit.org/show_bug.cgi?id=161328
<rdar://problem/28475977>
Reviewed by Darin Adler.
Running a test that scales the viewport and listens to a didEndZooming callback (such as
viewport-shrink-to-fit-allows-double-tap.html) immediately after a test that may begin to trigger viewport
scaling as the test completes (such as viewport-device-width-at-initial-scale-fast-clicks.html) may result in
the didEndZooming callback of the latter test being fired early due to the previous test triggering a zoom
animation. Ideally, -[WKScrollView _stopScrollingAndZoomingAnimations], which is called when committing the page
load, should prevent this from happening, but from reading documentation and code inspection, this is not
intended to fire any associated delegate methods or notifications of the UIScrollView, instead deferring them
for later. Instead, what we need in this case is to clear out any started but not yet completed animations after
we finish running a test and before we load the next test.
One way to do this is to remove all animations from the WKScrollView's layer, and the layers of its children,
recursively. Doing so causes scrollViewDidEndZooming:withView:atScale: to fire at the end of the runloop if the
previous test started zooming and then finished before zooming completed. Since this happens before the next
test has a chance to run UI-side scripts, we won't end up firing this callback prematurely during the next test.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- 9:32 AM Changeset in webkit [210100] by
-
- 5 edits1 add in trunk
Muted media element playback should not interrupt other audio playback
https://bugs.webkit.org/show_bug.cgi?id=166347
Reviewed by Eric Carlson.
Source/WebCore:
Test: TestWebKitAPI/WebKit/ios/AudioSessionCategoryIOS.mm
- platform/audio/cocoa/MediaSessionManagerCocoa.cpp:
(PlatformMediaSessionManager::updateSessionState):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/ios/video-with-muted-audio.html: Added.
- 9:14 AM Changeset in webkit [210099] by
-
- 2 edits in trunk/Source/WebCore
Check for the existence of AVSampleBufferAudioRenderer.h before redeclaring AVSampleBufferAudioRenderer
https://bugs.webkit.org/show_bug.cgi?id=166421
Reviewed by Eric Carlson.
- platform/spi/mac/AVFoundationSPI.h:
- 8:58 AM Changeset in webkit [210098] by
-
- 4 edits in trunk/Source
AVPlayerLayer isn't available on every system
https://bugs.webkit.org/show_bug.cgi?id=166399
Reviewed by Jer Noble.
Source/WebCore:
No new tests, prevents a crash that can't be reproduced on a test system.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: Use SOFT_LINK_CLASS_OPTIONAL.
Source/WebKit2:
- WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm: Use SOFT_LINK_CLASS_OPTIONAL.
- 8:41 AM Changeset in webkit [210097] by
-
- 5 edits in trunk/Source/WebKit2
MediaStream: ASSERTION FAILED: m_ids.size() == m_handles.size() in MediaDeviceSandboxExtensions
https://bugs.webkit.org/show_bug.cgi?id=166328
Reviewed by Eric Carlson.
This assertion failure happens for ports with sandbox extensions disabled. SandboxExtension is empty and
HandleArray:size() always returns 0. Disable creation of MediaDevicesSandboxExtension in UserMediaProcessManager
when building without support of sandbox extension. Disable also WebPage::grantUserMediaDeviceSandboxExtensions
and WebPage::revokeUserMediaDeviceSandboxExtensions which can be avoided when sandbox extension is empty.
- UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::willCreateMediaStream):
(WebKit::UserMediaProcessManager::endedCaptureSession):
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 1:22 AM Changeset in webkit [210096] by
-
- 4 edits in trunk
[WebRTC] Add support for runtime PeeConnection setting, required after r209757
https://bugs.webkit.org/show_bug.cgi?id=166346
Patch by Alejandro G. Castro <alex@igalia.com> on 2016-12-22
Reviewed by Carlos Garcia Campos.
Source/WebKit2:
After that commit we have to enable the peerConnection runtime
flag if we want webrtc to work. We are not adding a new API for
the moment to control the peerConnection feature.
- UIProcess/API/gtk/WebKitSettings.cpp:
(webkit_settings_set_enable_media_stream): Use the mediaStream
setting to control the peerConnection
Tools:
Enable WebRTC by default to simplify testing.
- MiniBrowser/gtk/main.c:
(main):
Dec 21, 2016:
- 7:06 PM Changeset in webkit [210095] by
-
- 2 edits in trunk/Source/WebCore
TileGrid revalidates tiles twice during flush, first with wrong visible rect
https://bugs.webkit.org/show_bug.cgi?id=166406
Reviewed by Simon Fraser.
No new tests; existing tests cover this code, this is just a perf win,
specifically reducing the amount of layer churn during zooming.
- platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::setScale):
Schedule a revalidation, which will happen later in the same flush,
instead of doing it immediately. Doing it immediately is problematic,
because we're currently in the middle of a GraphicsLayer tree flush,
and don't have the complete picture of the new state yet. We're guaranteed
to get the new scale *before* the flush calls revalidateTiles.
- 7:06 PM Changeset in webkit [210094] by
-
- 2 edits in trunk/Source/WebCore
TileGrid creates new tiles when there are recyclable tiles about to be removed
https://bugs.webkit.org/show_bug.cgi?id=166408
Reviewed by Simon Fraser.
No new tests; existing tests cover this code, this is just a perf win,
specifically reducing the amount of layer churn during zooming.
- platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::revalidateTiles):
Remove all the tiles that will be removed first, then add new tiles.
Strictly ordering it this way means that tiles will be removed, go into
the LayerPool, then be pulled back out of the LayerPool to sit in the
newly-covered areas. Previously, we would sometimes make new layers
for newly-covered areas, and then remove unneeded but otherwise recyclable
tiles, which would then just go sit in the LayerPool (and often get
pruned, wastefully).
- 5:57 PM Changeset in webkit [210093] by
-
- 2 edits in trunk/Tools
REGRESSION: API test failure: WKWebView.LocalStorageClear
https://bugs.webkit.org/show_bug.cgi?id=166032
<rdar://problem/29758423>
Reviewed by Simon Fraser.
Add an @autoreleasepool around the code that allocates then clears the WKWebView,
to ensure that the view is destroyed before the callback fires.
- TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:
(TEST):
- 5:41 PM Changeset in webkit [210092] by
-
- 6 edits in trunk
[MediaStream] Update media-stream-event-constructor test
https://bugs.webkit.org/show_bug.cgi?id=166398
Reviewed by Jer Noble.
Source/WebCore:
No new tests, updated existing test.
- Modules/mediastream/MediaStreamEvent.idl: Mark eventInitDict as optional.
LayoutTests:
Update and rebaseline test to reflect behavior changes that happened while the test was
skipped. Un-skip it on macOS.
- fast/events/constructors/media-stream-event-constructor-expected.txt:
- fast/events/constructors/media-stream-event-constructor.html:
- platform/mac/TestExpectations:
- 5:26 PM Changeset in webkit [210091] by
-
- 4 edits in trunk
WebAssembly: Fix decode floating point constants in unreachable code
https://bugs.webkit.org/show_bug.cgi?id=166400
Reviewed by Saam Barati.
JSTests:
- wasm.yaml:
Source/JavaScriptCore:
We decoded these as variable length but they should be fixed length.
- wasm/WasmFunctionParser.h:
- 5:06 PM Changeset in webkit [210090] by
-
- 9 edits4 adds in trunk
WebAssembly: Allow br, br_if, and br_table to act as a return
https://bugs.webkit.org/show_bug.cgi?id=166393
Reviewed by Saam Barati.
JSTests:
Add tests for breaks acting as returns and fix tests that
validate error messages.
- wasm/function-tests/br-as-return.js: Added.
- wasm/function-tests/br-if-as-return.js: Added.
- wasm/function-tests/br-table-as-return.js: Added.
- wasm/function-tests/if-no-else-non-void.js:
- wasm/function-tests/struct.js: Added.
- wasm/js-api/global-error.js:
(assert.throws):
- wasm/js-api/table.js:
(assert.throws):
Source/JavaScriptCore:
This patch allows br, br_if, and br_table to treat branching to
the size of the control stack to act as a return. This change was
made by adding a new block type to the wasm function parser,
TopLevel. Adding this new block eliminates a lot of the special
case code we had in the parser previously. The only special case
we need is when the end opcode is parsed from the top level. The
B3 IR generator needs to automatically emit a return at that
point.
Also, this patch adds the function number to validation errors
in the function parser. The current error message is not helpful
otherwise.
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::ControlData::dump):
(JSC::Wasm::B3IRGenerator::addTopLevel):
- wasm/WasmFunctionParser.h:
- wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::run):
- wasm/WasmValidate.cpp:
(JSC::Wasm::Validate::ControlData::dump):
(JSC::Wasm::Validate::Validate):
(JSC::Wasm::Validate::addTopLevel):
(JSC::Wasm::validateFunction):
- 4:53 PM Changeset in webkit [210089] by
-
- 5 edits in branches/safari-603-branch/Source
Versioning.
- 4:53 PM Changeset in webkit [210088] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 4:51 PM Changeset in webkit [210087] by
-
- 4 edits57 adds in trunk
WebAssembly: Import spec tests
https://bugs.webkit.org/show_bug.cgi?id=166395
Rubber stamped by Keith Miller.
JSTests:
This patch implements the Wasm spec's tests found here:
https://github.com/WebAssembly/spec/tree/master/interpreter/test
These tests are in .wast s-epxression format. To convert
them to JS, I use a script from the wabt library, found here:
https://github.com/WebAssembly/wabt/blob/master/test/run-gen-spec-js.py
I also added a script that automatically imports the tests as
JS files. The inputs to the script is the path to the Wasm spec
git repo and the path to the wabt git repo. This will make importing
new tests easy in the future.
The wasm spec imported is at commit: b055d01ea1dfdd7a5231ae779095435f836de97f
The wabt used to do the import is at commit: 622b42dced6d793e9d49e9b1fd1d1524defd1387
- wasm.yaml:
- wasm/import-spec-tests.rb: Added.
- wasm/spec-tests: Added.
- wasm/spec-tests/address.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/binary.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/block.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/br.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/br_if.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/br_table.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/break-drop.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/call.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/call_indirect.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/comments.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/conversions.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/custom_section.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/endianness.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/exports.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/f32.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/f32_cmp.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/f64.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/f64_cmp.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/fac.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/float_exprs.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/float_literals.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/float_memory.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/float_misc.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/forward.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/func.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/func_ptrs.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/get_local.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/globals.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/i32.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/i64.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/imports.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/int_exprs.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/int_literals.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/left-to-right.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/linking.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/loop.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/memory.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/memory_redundancy.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/memory_trap.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/names.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/nop.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/resizing.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/return.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/select.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/set_local.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/skip-stack-guard-page.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/stack.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/start.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/store_retval.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/switch.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/tee_local.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/traps.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/typecheck.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/unreachable.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
- wasm/spec-tests/unwind.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
Tools:
- Scripts/run-jsc-stress-tests:
- 4:48 PM Changeset in webkit [210086] by
-
- 1 copy in tags/Safari-602.4.4
New tag.
- 4:46 PM Changeset in webkit [210085] by
-
- 1 copy in tags/Safari-603.1.18
New tag.
- 4:31 PM Changeset in webkit [210084] by
-
- 5 edits in branches/safari-603-branch/LayoutTests
Unreviewed LayoutTest gardening.
- 4:04 PM Changeset in webkit [210083] by
-
- 2 edits in trunk/Source/WebCore
WebKit should set Original URL of a download request correctly
https://bugs.webkit.org/show_bug.cgi?id=166394
<rdar://problem/25391382>
Reviewed by Alex Christensen.
WebKit should set Original URL of a download request correctly if the download
is initiated by clicking on a link with target=_blank.
Manually tested as the requested test infrastructure doesn't exist yet. We need actual
loading process for API test such that we could simulate the real situation which
PolicyDownload is only set when we receive responds. Currently we can only set
PolicyDownload in a NavigationDelegate when the load starts. Hence we cannot simulate
the following process: load starts -> PolicyUse -> creates a new WebView ->
respond receives -> PolicyDownload -> downloads.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::setOriginalURLForDownloadRequest):
- 3:58 PM Changeset in webkit [210082] by
-
- 2 edits in trunk/Tools
REGRESSION: API test failure: _WKDownload.OriginatingWebView
https://bugs.webkit.org/show_bug.cgi?id=166033
<rdar://problem/29758428>
Reviewed by Simon Fraser.
Add an @autoreleasepool around the code that allocates the WKWebView,
so that it can be destroyed by removing the last reference in _downloadDidStart.
- TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:
(TEST):
- 3:33 PM Changeset in webkit [210081] by
-
- 17 edits1 add1 delete in trunk/Source/WebCore
[WebIDL] Remove custom binding for ErrorEvent
https://bugs.webkit.org/show_bug.cgi?id=166345
Reviewed by Anders Carlsson.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
- bindings/js/JSErrorEventCustom.cpp: Removed.
Remove JSErrorEventCustom.cpp
- ForwardingHeaders/heap/HandleTypes.h: Added.
Add forwarding header for HandleTypes.h
- bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
Switch to using JSDOMConvert and call the updated name for the error getter.
- bindings/js/ScriptController.h:
- bindings/js/SerializedScriptValue.h:
Remove unnecessary forward declaration of ScriptValue.
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::sanitizeScriptError):
(WebCore::ScriptExecutionContext::dispatchErrorEvent):
- dom/ScriptExecutionContext.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
Update type that sanitizeScriptError takes from a ScriptValue to a Strong<Unknown>.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallWith):
- bindings/scripts/IDLAttributes.txt:
Add a new extended attributes option for the CallWith, GlobalObject, that passes the global object.
- dom/ErrorEvent.cpp:
(WebCore::ErrorEvent::ErrorEvent):
(WebCore::ErrorEvent::error):
(WebCore::ErrorEvent::trySerializeError):
(WebCore::ErrorEvent::sanitizedErrorValue): Deleted.
- dom/ErrorEvent.h:
Store a Strong<Unknown> directly, rather than a ScriptValue. Rename sanitizedErrorValue to
just error to match the IDL.
- dom/ErrorEvent.idl:
Remove CustomGetter.
- 3:11 PM Changeset in webkit [210080] by
-
- 2 edits in trunk/JSTests
Unreviewed, mark passing test as passing.
- es6.yaml:
- 2:43 PM Changeset in webkit [210079] by
-
- 8 copies1 add in releases/Apple/Safari Technology Preview 20
Added a tag for Safari Technology Preview release 20.
- 2:11 PM Changeset in webkit [210078] by
-
- 2 edits in trunk/Source/WebCore
Modernize findPlainText
https://bugs.webkit.org/show_bug.cgi?id=166299
Reviewed by Sam Weinig.
Modernized findPlainText by merging the static version of it into it
and extracting the main nested loop out as findPlainTextOffset.
No new tests since there should be no behavioral change.
- editing/TextIterator.cpp:
(WebCore::findPlainTextOffset):
(WebCore::findPlainText):
- 2:06 PM Changeset in webkit [210077] by
-
- 5 edits in trunk
Switch to a blacklist model for restricted Accept headers in simple CORS requests
https://bugs.webkit.org/show_bug.cgi?id=166363
Reviewed by Alex Christensen.
Source/WebCore:
Updated existing tests.
- platform/network/HTTPParsers.cpp:
(WebCore::isDelimiterCharacter):
Convenience function for checking delimiter characters according to:
https://tools.ietf.org/html/rfc7230#section-3.2.6
(WebCore::isValidAcceptHeaderValue):
Now uses WebCore::isDelimiterCharacter() to blacklist delimiter characters
instead of a whitelist of accepted non-alphanumeric characters.
LayoutTests:
- http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt:
- http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html:
- 2:02 PM Changeset in webkit [210076] by
-
- 4 edits in trunk/Source/WebKit2
[Mac][WK2] Stop using file* rules in WebProcess sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=165824
<rdar://problem/14024823>
Reviewed by Alexey Proskuryakov
Switch from blanket 'file*' sandbox rules, to the specific 'file-read*' and 'file-write*' rules
we actually need.
- DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:30 PM Changeset in webkit [210075] by
-
- 8 edits in trunk/Source
Holding down on candidates in the TouchBar should show panel on screen
https://bugs.webkit.org/show_bug.cgi?id=166367
-and corresponding-
<rdar://problem/28479236>
Reviewed by Tim Horton.
Source/WebCore:
Expose the version of setCandidates: that takes a rect.
- platform/spi/cocoa/NSTouchBarSPI.h:
Source/WebKit/mac:
Stray whitespace.
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::handleRequestedCandidates):
Call the version of setCandidates: that takes a rect. We need to keep the helper
function in WK1 (unlike WK2) since we also use it for testing.
- WebView/WebView.mm:
(-[WebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
Source/WebKit2:
The showCandidates() helper function is not needed. We can call the AppKit method
directly at the one call site.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
The panel should appear under the selection, so offset the selection rect.
(WebKit::WebViewImpl::handleRequestedCandidates):
No more showCandidates() since we can call it directly.
(WebKit::WebViewImpl::showCandidates): Deleted.
- 1:24 PM Changeset in webkit [210074] by
-
- 3 edits in trunk/Source/WebCore
Extensions3DOpenGL[ES] constructor should not be explicit
https://bugs.webkit.org/show_bug.cgi?id=166296
Reviewed by Darin Adler.
These constructors used to only have one parameter. Now they have two and they're both
mandatory.
- platform/graphics/opengl/Extensions3DOpenGL.h:
- platform/graphics/opengl/Extensions3DOpenGLES.h:
- 12:34 PM Changeset in webkit [210073] by
-
- 21 edits in trunk
WebAssembly JS API: cleanup & pass VM around to {Compile/Runtime}Error
https://bugs.webkit.org/show_bug.cgi?id=166295
<rdar://problem/29762017>
Reviewed by Mark Lam.
JSTests:
Update tests to generate new error messages. Adapt some to use the
assert.js module.
- wasm/assert.js: allow filtering out sometimes-useless source
location information. Return the exception so that further
processing can occur on it as desired.
- wasm/function-tests/exceptions.js:
- wasm/function-tests/trap-load-2.js:
(assert): Deleted.
(i.catch): Deleted.
- wasm/function-tests/trap-load.js:
(assert): Deleted.
(i.catch): Deleted.
- wasm/function-tests/trap-store-2.js:
(import.Builder.from.string_appeared_here.assert): Deleted.
(i.catch): Deleted.
- wasm/function-tests/trap-store.js:
(import.Builder.from.string_appeared_here.assert): Deleted.
(i.catch): Deleted.
Source/JavaScriptCore:
Rename the create* functions, and pass VM around, as suggested for
LinkError in #165805.
At the same time, use the default source appender when
constructing these error types, which gives a nice map back to the
original source as part of the error message. This is clearer when
using the current frame, so add that as well.
- jit/ThunkGenerators.cpp:
(JSC::throwExceptionFromWasmThunkGenerator):
- wasm/js/JSWebAssemblyCompileError.cpp:
(JSC::JSWebAssemblyCompileError::create):
(JSC::createJSWebAssemblyCompileError):
(JSC::createWebAssemblyCompileError): Deleted.
- wasm/js/JSWebAssemblyCompileError.h:
(JSC::JSWebAssemblyCompileError::create):
- wasm/js/JSWebAssemblyRuntimeError.cpp:
(JSC::JSWebAssemblyRuntimeError::create):
- wasm/js/JSWebAssemblyRuntimeError.h:
(JSC::JSWebAssemblyRuntimeError::create):
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::constructJSWebAssemblyCompileError):
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::WebAssemblyModuleConstructor::createModule):
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
(JSC::constructJSWebAssemblyRuntimeError):
- 12:27 PM Changeset in webkit [210072] by
-
- 1 edit2 adds in trunk/LayoutTests
Add a layout test for scroll snapping with padding in the container
https://bugs.webkit.org/show_bug.cgi?id=144927
<rdar://problem/20923772>
Reviewed by Brent Fulgham.
The issue was actually addressed by changes to snap offset computation in AxisScrollSnapOffsets.cpp with
<https://trac.webkit.org/changeset/210024>, but there was no test for this. This patch adds a new layout test
verifying that the padding on child elements is accounted for when computing the scroll snap offsets of a scroll
snapping container.
- css3/scroll-snap/scroll-snap-children-with-padding-expected.txt: Added.
- css3/scroll-snap/scroll-snap-children-with-padding.html: Added.
- 12:19 PM Changeset in webkit [210071] by
-
- 2 edits in trunk
set PYTHONPATH in separate COMMAND doesn't work with all CMake generators
https://bugs.webkit.org/show_bug.cgi?id=164997
Reviewed by Alex Christensen.
Fix for r201413.
- Source/cmake/WebKitMacros.cmake:
- 11:35 AM Changeset in webkit [210070] by
-
- 4 edits in trunk
WebKitTestRunner: Add comment to TestRunner::setCanOpenWindows()
https://bugs.webkit.org/show_bug.cgi?id=166356
Tools:
Add comment in TestRunner::setCanOpenWindows() to elaborate further on its purpose
as a means to allow a test to explicit allow an embedding client to open a new windows
such that the default behavior is for the embedding client to forbid such an action.
The test plugins/get-url-with-blank-target.html assumes this default behavior though
it is currently skipped on WebKit2 because questions were raised in the patch for
<https://bugs.webkit.org/show_bug.cgi?id=43389> about its correctness and usefulness.
We will need to implement TestRunner::setCanOpenWindows() should we decide to unskip
this test.
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setCanOpenWindows):
LayoutTests:
Add a remark that the test plugins/get-url-with-blank-target.html depends on
the assumption that WebKitTestRunner forbids opening windows by default.
- platform/wk2/TestExpectations:
- 11:13 AM Changeset in webkit [210069] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncommenting CSS properties doesn't work for inline styles
https://bugs.webkit.org/show_bug.cgi?id=166297
Reviewed by Brian Burg.
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
Update checkboxes for inline styles, too.
- 11:06 AM Changeset in webkit [210068] by
-
- 7 edits3 deletes in tags/Safari-604.1.1
Roll out r209261. rdar://problem/29774539
- 11:05 AM Changeset in webkit [210067] by
-
- 4 edits in tags/Safari-604.1.1
Roll out r209510. rdar://problem/29774539
- 11:02 AM Changeset in webkit [210066] by
-
- 5 edits in trunk/Source
Versioning.
- 10:59 AM Changeset in webkit [210065] by
-
- 1 copy in tags/Safari-604.1.1
New tag.
- 10:57 AM Changeset in webkit [210064] by
-
- 7 edits3 deletes in branches/safari-603-branch
Roll out r209261. rdar://problem/29774539
- 10:56 AM Changeset in webkit [210063] by
-
- 4 edits in branches/safari-603-branch
Roll out r209510. rdar://problem/29774539
- 10:52 AM Changeset in webkit [210062] by
-
- 130 edits in trunk/LayoutTests
Web Inspector: Fix some typos and style in LayoutTests/inspector
https://bugs.webkit.org/show_bug.cgi?id=166273
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-21
Reviewed by Brian Burg.
- inspector/*
- 10:30 AM Changeset in webkit [210061] by
-
- 2 edits in trunk/Source/WebCore
[MediaStream] MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer can be called before it has a media stream
https://bugs.webkit.org/show_bug.cgi?id=166344
<rdar://problem/29763143>
Reviewed by Jer Noble.
There is a very narrow window during which a MediaStream player can be asked for its layer
before it has a steam, resulting in a NULL dereference and crash. Don't do that.
Unable to reproduce.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer):
- 10:22 AM WebInspectorCodingStyleGuide edited by
- Document naming of functions that get serialized and sent to another … (diff)
- 9:37 AM Changeset in webkit [210060] by
-
- 2 edits in trunk/Source/WebCore
[Readable Streams API] Fix test in readableByteStreamCallPullIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=166312
Reviewed by Youenn Fablet.
Add a new function to evaluate if calling a pull function is
required as per specification.
No new test required.
- Modules/streams/ReadableByteStreamInternals.js:
(readableByteStreamControllerShouldCallPull): Added.
(readableByteStreamControllerCallPullIfNeeded):
- 9:33 AM Changeset in webkit [210059] by
-
- 7 edits3 adds in trunk
Fixed bars are positioned incorrectly when there are header and footer banners
https://bugs.webkit.org/show_bug.cgi?id=166302
rdar://problem/29727145
Reviewed by Tim Horton.
Source/WebCore:
The computation of the visual viewport was wrong in the presence of header and footer
banners. It needs to take into account the fact that "visibleContentRect" applies to the
scroll view contents, which includes header and footer (unscaled), and the potentially scaled
document, and we need to return a rectangle in unscaled document coordinates.
Make a static method in FrameView to do this computation, and call it from FrameView::visualViewportRect()
and ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition().
layoutViewportForScrollPosition() is only called on Mac, so remove the #ifdeffing related to scaling,
and pass in an unscaled scroll position.
Test: fast/visual-viewport/zoomed-fixed-header-and-footer.html
- page/FrameView.cpp:
(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::maxStableLayoutViewportOrigin):
(WebCore::FrameView::visibleDocumentRect):
(WebCore::FrameView::visualViewportRect):
- page/FrameView.h:
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition):
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
LayoutTests:
- fast/visual-viewport/zoomed-fixed-header-and-footer-expected.txt: Added.
- fast/visual-viewport/zoomed-fixed-header-and-footer.html: Added.
- platform/ios-simulator/fast/visual-viewport/zoomed-fixed-header-and-footer-expected.txt: Added.
- tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
- 8:42 AM Changeset in webkit [210058] by
-
- 2 edits in trunk/Source/JavaScriptCore
[ES6] Fix modules document in features.json
https://bugs.webkit.org/show_bug.cgi?id=166313
Reviewed by Saam Barati.
- features.json:
- 3:48 AM Changeset in webkit [210057] by
-
- 2 edits in trunk/Source/WebCore
[CMake] Remove remaining INDIE_UI related entries.
https://bugs.webkit.org/show_bug.cgi?id=165881
Unreviewed.
- CMakeLists.txt:
Dec 20, 2016:
- 11:48 PM Changeset in webkit [210056] by
-
- 2 edits in trunk/Source/WebCore
[Cairo] Conditional jump or move depends on uninitialised value(s)
https://bugs.webkit.org/show_bug.cgi?id=166058
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-12-20
Reviewed by Michael Catanzaro.
Initialize x and y members of cairo_glyph_t struct before passing it to cairo_glyph_path.
- platform/graphics/cairo/FontCairo.cpp:
(WebCore::CairoGlyphToPathTranslator::path):
- 11:07 PM Changeset in webkit [210055] by
-
- 9 edits2 copies in branches/safari-603-branch
Merged r210031. rdar://problem/29693817
- 8:44 PM Changeset in webkit [210054] by
-
- 5 edits1 move2 adds in trunk
Skia lighter wght variation looks bolder than regular
https://bugs.webkit.org/show_bug.cgi?id=165948
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/text/variations/default-value.html
This patch inspects the font's information regarding variations. It uses this information
to work around a bug in CoreText where default variation values were not getting applied.
This workaround is placed behind a version check and the macro name
"WORKAROUND_CORETEXT_VARIATIONS_DEFAULT_VALUE_BUG" so we know to delete it whenever
possible. It also uses the minimum and maximum supported values for the axis to clamp our
variation values to the closest supported point, which is in line with a recent edit to
the fonts spec:
https://github.com/w3c/csswg-drafts/commit/52b802ac38619286a30662dceb71b8a29fa72f42
This clamping behavior also revealed another bug in CoreText, which was worked around
behind another version check and macro name WORKAROUND_CORETEXT_VARIATIONS_EXTENTS_BUG so
we know to delete it whenever possible.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::defaultVariationValues):
(WebCore::preparePlatformFont):
LayoutTests:
- fast/text/variations/default-value-expected.html: Added.
- fast/text/variations/default-value.html: Added.
- fast/text/variations/outofbounds-expected-mismatch.html: Renamed from LayoutTests/fast/text/variations/outofbounds-expected.html.
- fast/text/variations/outofbounds.html:
- platform/ios-simulator/TestExpectations:
- 8:29 PM Changeset in webkit [210053] by
-
- 4 edits in trunk/Source
Fix undefined behavior caused by macro expansion producing 'defined'
https://bugs.webkit.org/show_bug.cgi?id=166047
Patch by Taras Tsugrii <ttsugrii@fb.com> on 2016-12-20
Reviewed by Darin Adler.
Source/JavaScriptCore:
- API/JSBase.h:
Source/WebKit2:
- Shared/API/Cocoa/WKFoundation.h:
- 8:04 PM Changeset in webkit [210052] by
-
- 6 edits1 add in trunk
Add support for global
https://bugs.webkit.org/show_bug.cgi?id=165171
Reviewed by Filip Pizlo.
JSTests:
- stress/global.js: Added.
Source/JavaScriptCore:
This patch adds spport for the global property on the global object.
The global property spec is in stage three and is quite simple.
For reference: http://tc39.github.io/proposal-global/
- runtime/JSGlobalObject.cpp:
LayoutTests:
Fix getOwnPropertyDescriptor test.
- js/resources/getOwnPropertyDescriptor.js:
- 6:29 PM Changeset in webkit [210051] by
-
- 2 edits in trunk/Source/WebCore
Remove a duplicate reference to ScrollingMomentumCalculatorMac.h in the Xcode project
Rubber-stamped by Sam Weinig.
- WebCore.xcodeproj/project.pbxproj:
- 6:17 PM Changeset in webkit [210050] by
-
- 2 edits in trunk/Tools
REGRESSION: API test failure: WKWebView.EvaluateJavaScriptBlockCrash
https://bugs.webkit.org/show_bug.cgi?id=166031
Reviewed by Tim Horton.
Add an @autoreleasepool around the code that allocates then clears the WKWebView,
to ensure that the view is destroyed before the callback fires.
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:
- 6:06 PM Changeset in webkit [210049] by
-
- 2 edits in trunk/Source/WebCore
Remove a duplicate reference to ScrollingMomentumCalculatorMac.mm in the Xcode project
Rubber-stamped by Sam Weinig.
- WebCore.xcodeproj/project.pbxproj:
- 5:10 PM Changeset in webkit [210048] by
-
- 9 edits in trunk/Tools
Throw Exception when test doesn't clean up HID Events properly
https://bugs.webkit.org/show_bug.cgi?id=166271
Patch by Megan Gardner <Megan Gardner> on 2016-12-20
Reviewed by Simon Fraser.
Add in a check when UIScriptController is deleted to make sure that the HID event
callback dictionary is empty. If it is not, and a HID event is hit, this will cause
the program to crash without any good information. Crashes are race-y, and will still
happen with malformed test, but the information will be much more helpful.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::checkForClean):
- TestRunnerShared/UIScriptContext/UIScriptContext.cpp:
(UIScriptContext::~UIScriptContext):
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::checkForClean):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/HIDEventGenerator.h:
- WebKitTestRunner/ios/HIDEventGenerator.mm:
(-[HIDEventGenerator checkHIDCallbacksClear]):
- WebKitTestRunner/ios/TestControllerIOS.mm:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::checkForClean):
- 4:29 PM Changeset in webkit [210047] by
-
- 8 edits in trunk/Source/JavaScriptCore
WebAssembly: We should compile wasm functions in parallel
https://bugs.webkit.org/show_bug.cgi?id=165993
Reviewed by Keith Miller.
This patch adds a very simple parallel compiler for Wasm code.
This patch speeds up compiling the Unity headless benchmark by
slightly more than 4x on my MBP. To make this safe, I perform
all linking on the main thread. I also had to change some code
inside Wasmb3IRGenerator to be thread safe.
- b3/air/AirCustom.h:
(JSC::B3::Air::WasmBoundsCheckCustom::generate):
- b3/air/AirGenerationContext.h:
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::emitExceptionCheck):
(JSC::Wasm::createJSToWasmWrapper):
(JSC::Wasm::parseAndCompile):
- wasm/WasmB3IRGenerator.h:
- wasm/WasmCallingConvention.h:
(JSC::Wasm::CallingConvention::setupFrameInPrologue):
- wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::run):
- wasm/WasmPlan.h:
- 4:15 PM Changeset in webkit [210046] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Window resize causes TimelineOverview graph elements to be repositioned
https://bugs.webkit.org/show_bug.cgi?id=160207
<rdar://problem/27553228>
Reviewed by Brian Burg.
TimelineRuler does not always update its divider positions when the start
time changes while the end time remains the same. The check that determines
whether the first or last divider positions have changed before doing a
layout uses the ruler end time instead of calculating the last divider's
position, and would falsely determine no change was needed.
- UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.set startTime):
(WebInspector.TimelineRuler.prototype.set secondsPerPixel):
Clear cached divider data on zoom or scroll, forcing dividers to be recalculated.
(WebInspector.TimelineRuler.prototype.layout):
Calculate accurate divider count and last divider time.
- 3:53 PM Changeset in webkit [210045] by
-
- 8 edits in trunk
Remove initEvent quirk
https://bugs.webkit.org/show_bug.cgi?id=166284
Reviewed by Dan Bernstein.
LayoutTests/imported/w3c:
- web-platform-tests/dom/interfaces-expected.txt:
We regress conformance, but a change has been proposed to the spec. Hopefully this will be a temporary regression.
Source/WebCore:
We added this quirk in r207908 and expanded it in r209946 and r210034.
Many web compatibility issues have been found, which leads us to believe that many more exist.
This reverts the behavior to match how it was before r203848.
This change was proposed to the spec in https://github.com/whatwg/dom/issues/387
- dom/Event.cpp:
(WebCore::Event::initEventForBindings): Deleted.
- dom/Event.h:
- dom/Event.idl:
- platform/RuntimeApplicationChecks.h:
- platform/RuntimeApplicationChecks.mm:
(WebCore::IOSApplication::isBaiduNuomi): Deleted.
(WebCore::IOSApplication::isAutoNaviAMap): Deleted.
(WebCore::IOSApplication::isFlipboard): Deleted.
- 3:42 PM Changeset in webkit [210044] by
-
- 2 edits in trunk/Source/WebCore
INDIE_UI: fix cmake build
https://bugs.webkit.org/show_bug.cgi?id=166288
Patch by JF Bastien <jfbastien@apple.com> on 2016-12-20
Reviewed by Mark Lam.
Bug #165881 didn't remove a file from cmake.
- PlatformMac.cmake:
- 3:34 PM Changeset in webkit [210043] by
-
- 2 edits in trunk/Source/WebCore
Fix clean Windows build after r210029
https://bugs.webkit.org/show_bug.cgi?id=165881
- DerivedSources.cpp:
- 3:32 PM Changeset in webkit [210042] by
-
- 21 edits in trunk/Source
Address some style problems found by static analysis
https://bugs.webkit.org/show_bug.cgi?id=165975
Reviewed by Alex Christensen.
Source/JavaScriptCore:
Correct the const-correctness of functions that are implemented using stricter
const declarations.
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorHeapAgent.cpp:
- inspector/agents/InspectorHeapAgent.h:
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/agents/InspectorScriptProfilerAgent.cpp:
- inspector/agents/InspectorScriptProfilerAgent.h:
- inspector/scripts/codegen/cpp_generator.py:
(cpp_type_for_unchecked_formal_in_parameter): Update to match const declarations of
implementation files.
- inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
Rebaselined results for "const Ptr* const" syntax.
Source/WebCore:
Correct the const-correctness of functions that are implemented using stricter
const declarations.
Avoid passing large ANGLE data structures through the ANGLEWebKitBridge methods.
- inspector/InspectorCSSAgent.h: Declare the method overrides properly to match
the stricter const declarations in the implementation files.
- inspector/InspectorDOMAgent.h: Ditto.
- inspector/InspectorPageAgent.h: Ditto.
- inspector/InspectorTimelineAgent.h: Ditto.
- inspector/PageDebuggerAgent.h: Ditto.
- platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::ANGLEWebKitBridge::setResources): Pass by const reference.
- platform/graphics/ANGLEWebKitBridge.h:
(WebCore::ANGLEWebKitBridge::getResources): Return a const reference.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::selectSettings): Use a lambda that takes
a const reference, rather than copying the maps while searching.
Source/WebKit2:
Avoid passing large ANGLE data structures through the ANGLEWebKitBridge methods.
- Shared/WebBackForwardListItem.cpp:
(WebKit::WebBackForwardListItem::create):
(WebKit::WebBackForwardListItem::WebBackForwardListItem):
- Shared/WebBackForwardListItem.h:
- 3:32 PM Changeset in webkit [210041] by
-
- 2 edits in trunk/Source/WebKit2
[iOS WK2] Switching or closing a tab leads to all-white tab content if the status bar is double height
https://bugs.webkit.org/show_bug.cgi?id=166286
rdar://problem/29593525
Reviewed by Tim Horton.
A double-height status bar triggers view resize while snapshotting in the background,
which also triggers calls to _endAnimatedResize on tab resume. However, it was possible
for _endAnimatedResize to re-enter via synchronizeDynamicViewportUpdate()/didCommitLayerTree(),
causing us to use a nil _resizeAnimationView for scale computations, thus setting a zero
scale on the WKContentView.
Fix by checking _dynamicViewportUpdateMode again after the call to synchronizeDynamicViewportUpdate(),
and do a belt-and-braces check for a nil _resizeAnimationView.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _endAnimatedResize]):
- 3:31 PM Changeset in webkit [210040] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Remove an ANGLE Markdown file from the ANGLE target
https://bugs.webkit.org/show_bug.cgi?id=166279
Reviewed by Alex Christensen.
- ANGLE.xcodeproj/project.pbxproj:
We don't need to build this, it's not source code.
- 3:07 PM Changeset in webkit [210039] by
-
- 2 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html for mac-wk1.
Unreviewed test gardening.
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- 2:16 PM Changeset in webkit [210038] by
-
- 10 edits in trunk/Source/JavaScriptCore
WebAssembly: construct 32-bit encodedJSValue properly
https://bugs.webkit.org/show_bug.cgi?id=166199
Reviewed by Mark Lam.
Constructing an encodedJSValue using
{ }
yields the wrong value
on 32-bit platforms. WebAssembly doesn't currently target 32-bit
platforms, but we may as well get it right.
- wasm/JSWebAssembly.cpp:
(JSC::webAssemblyCompileFunc):
(JSC::webAssemblyValidateFunc):
- wasm/js/JSWebAssemblyHelpers.h:
(JSC::toNonWrappingUint32):
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::constructJSWebAssemblyCompileError):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::callWebAssemblyFunction):
- wasm/js/WebAssemblyInstanceConstructor.cpp:
(JSC::constructJSWebAssemblyInstance):
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::constructJSWebAssemblyMemory):
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::constructJSWebAssemblyModule):
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
(JSC::constructJSWebAssemblyRuntimeError):
- wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::constructJSWebAssemblyTable):
- wasm/js/WebAssemblyTablePrototype.cpp:
(JSC::webAssemblyTableProtoFuncLength):
(JSC::webAssemblyTableProtoFuncGrow):
(JSC::webAssemblyTableProtoFuncGet):
(JSC::webAssemblyTableProtoFuncSet):
- 2:16 PM Changeset in webkit [210037] by
-
- 3 edits in trunk/Source/WebCore
[WebIDL] Remove custom binding for WorkerGlobalScope::importScripts
https://bugs.webkit.org/show_bug.cgi?id=166243
Reviewed by Alex Christensen.
- bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::importScripts): Deleted.
- workers/WorkerGlobalScope.idl:
Import scripts can now be trivially generated.
- 1:57 PM Changeset in webkit [210036] by
-
- 2 edits in trunk/Source/WebInspectorUI
Update keyword completions in the inspector for the new scroll snapping CSS properties
https://bugs.webkit.org/show_bug.cgi?id=166235
Reviewed by Joseph Pecoraro.
The CSS keyword completions for the scroll snapping properties need to be updated for the latest version of the spec.
- UserInterface/Models/CSSKeywordCompletions.js:
- 1:47 PM Changeset in webkit [210035] by
-
- 5 edits2 adds in trunk
SVG elements should inherit the root's flow thread state.
https://bugs.webkit.org/show_bug.cgi?id=166173
rdar://problem/29704862
Reviewed by Simon Fraser.
Source/WebCore:
When the <svg> is not part of the multicolumn context (out of flow positioning), its descendants should not be in the flow either.
Test: fast/multicol/svg-inside-multicolumn.html
- rendering/RenderObject.cpp:
(WebCore::RenderObject::computedFlowThreadState):
- rendering/RenderObject.h:
(WebCore::RenderObject::isProgress):
(WebCore::RenderObject::isRenderSVGBlock):
- rendering/svg/RenderSVGBlock.h:
LayoutTests:
- fast/multicol/svg-inside-multicolumn-expected.txt: Added.
- fast/multicol/svg-inside-multicolumn.html: Added.
- 1:41 PM Changeset in webkit [210034] by
-
- 4 edits in trunk/Source/WebCore
Fix yet another app that uses initEvent with fewer than 3 parameters
https://bugs.webkit.org/show_bug.cgi?id=166257
<rdar://problem/29420268>
Reviewed by Sam Weinig.
- dom/Event.cpp:
(WebCore::Event::initEventForBindings):
- platform/RuntimeApplicationChecks.h:
- platform/RuntimeApplicationChecks.mm:
(WebCore::IOSApplication::isAutoNaviAMap):
AutoNavi amap has content that uses initEvent with one parameter. This quirk is needed here, too.
- 1:41 PM Changeset in webkit [210033] by
-
- 6 edits in trunk
Web Inspector: Console could be made useful for very simple await expressions
https://bugs.webkit.org/show_bug.cgi?id=165681
<rdar://problem/29755339>
Reviewed by Brian Burg.
Source/WebInspectorUI:
Normally await expressions are only allowed inside of async functions.
They make dealing with async operations easy, but can't be used directly
in Web Inspector's console without making your own async function wrapper.
This change allows simple await expressions to be run in the console.
The supported syntaxes are (simple expression with optional assignment):
await <expr>
x = await <expr>
let x = await <expr>
Web Inspector's console will automatically wrap this in an async
function and report the resulting value or exception. For instance
in the last example above:
let x;
(async function() {
try {
x = await <expr>;
console.info("%o", x);
} catch (e) {
console.error(e);
}
})();
undefined
This way users can get the convenience of await in the Console.
This also gives users a nice way of extracting a value out of
a Promise without writing their own handlers.
- UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
(WebInspector.RuntimeManager.prototype._tryApplyAwaitConvenience):
Wrap simple await expressions into a function that will log the result.
LayoutTests:
- inspector/controller/runtime-controller-expected.txt:
- inspector/controller/runtime-controller.html:
Test the "await expression" convenience of RuntimeManager.
- 1:41 PM Changeset in webkit [210032] by
-
- 20 edits in trunk/Source/WebInspectorUI
Web Inspector: Update CodeMirror to support async/await keyword and other ES2017 features
https://bugs.webkit.org/show_bug.cgi?id=165677
Rubber-stamped by Brian Burg.
Update CodeMirror from version 5.5.1 to 5.21.1. Highlights include:
- Syntax highlighting for ES2017 features (async/await)
- Syntax highlighting improvements for some ES6 features (new.target)
- Syntax highlighting for CSS4 #rrggbbaa and #rgba colors
As well as a number of smaller bug fixes.
Had to add a few semicolons to codemirror.js so that our minifier
didn't choke in a few places due to ASI behavior.
- Scripts/update-codemirror-resources.rb:
- UserInterface/External/CodeMirror/LICENSE:
- UserInterface/External/CodeMirror/clojure.js:
- UserInterface/External/CodeMirror/closebrackets.js:
- UserInterface/External/CodeMirror/codemirror.css:
- UserInterface/External/CodeMirror/codemirror.js:
- UserInterface/External/CodeMirror/coffeescript.js:
- UserInterface/External/CodeMirror/comment.js:
- UserInterface/External/CodeMirror/css.js:
- UserInterface/External/CodeMirror/htmlmixed.js:
- UserInterface/External/CodeMirror/javascript.js:
- UserInterface/External/CodeMirror/livescript.js:
- UserInterface/External/CodeMirror/matchbrackets.js:
- UserInterface/External/CodeMirror/overlay.js:
- UserInterface/External/CodeMirror/placeholder.js:
- UserInterface/External/CodeMirror/runmode.js:
- UserInterface/External/CodeMirror/sql.js:
- UserInterface/External/CodeMirror/sublime.js:
- UserInterface/External/CodeMirror/xml.js:
- 1:18 PM Changeset in webkit [210031] by
-
- 9 edits2 adds in trunk
[Cocoa] REGRESSION (r209558): Calling decisionHandler multiple times in webView:decidePolicyForNavigationAction:decisionHandler: leads to a crash
https://bugs.webkit.org/show_bug.cgi?id=165992
Source/WebKit2:
<rdar://problem/29693817>
Reviewed by Brady Eidson.
r209558 added additional move semantics to the decisionHandler block passed to
-webView:decidePolicyForNavigationAction:decisionHandler:, resulting in a null pointer
dereference in clients that call the decisionHandler block more than once.
None of the completion handlers we expose in the WebKit API are intended to be called more
than once, and we ASSERT in CompletionHandlerCallChecker::didCallCompletionHandler() that
this doesn't happen.
This change strenghtens that protection by returning immediately in completion handlers
called more than once. And in programs linked on or after WebKit 603.1.17, an NSException is
thrown if a completion handler is called a second time, like we do for completion handlers
that are never called.
New API test: WebKit2.DuplicateCompletionHandlerCalls
- Shared/Cocoa/CompletionHandlerCallChecker.h: Declared completionHandlerHasBeenCalled().
- Shared/Cocoa/CompletionHandlerCallChecker.mm:
(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall): Added. Returns true if the
program is linked on or after
LibraryVersion::FirstWithExceptionsForDuplicateCompletionHandlerCalls.
(WebKit::CompletionHandlerCallChecker::completionHandlerHasBeenCalled): Added. Returns
whether or not the completion handler has been called. If it has, and
shouldThrowExceptionForDuplicateCompletionHandlerCall() returns true, throws an
NSInternalInconsistencyException.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setInputDelegate:]): Added an early return if the completion handler has
already been called.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Ditto.
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): Ditto.
(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): Ditto.
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::runJavaScriptAlert): Ditto.
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm): Ditto.
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt): Ditto.
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota): Ditto.
(WebKit::UIDelegate::UIClient::runOpenPanel): Ditto.
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): Ditto.
- UIProcess/Cocoa/VersionChecks.h: Added
FirstWithExceptionsForDuplicateCompletionHandlerCalls with the version number for 603.1.17.
Tools:
Reviewed by Brady Eidson.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/DuplicateCompletionHandlerCalls.mm: Added.
(expectException):
(-[DuplicateCompletionHandlerCallsDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate _webView:decideDatabaseQuotaForSecurityOrigin:currentQuota:currentOriginUsage:currentDatabaseUsage:expectedUsage:decisionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate _webView:willSubmitFormValues:userObject:submissionHandler:]):
(TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/duplicate-completion-handler-calls.html: Added.
- 1:14 PM Changeset in webkit [210030] by
-
- 2 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html for mac-elcapitan after r210024.
Unreviewed test gardening.
- platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
- 12:37 PM Changeset in webkit [210029] by
-
- 26 edits7 deletes in trunk
Remove INDIE_UI
https://bugs.webkit.org/show_bug.cgi?id=165881
<rdar://problem/29672532>
Reviewed by Simon Fraser.
The Indie UI work has been discontinued.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
- Modules/indieui/UIRequestEvent.cpp: Removed.
- Modules/indieui/UIRequestEvent.h: Removed.
- Modules/indieui/UIRequestEvent.idl: Removed.
- WebCore.xcodeproj/project.pbxproj:
- dom/Element.cpp:
(WebCore::Element::setUIActions): Deleted.
(WebCore::Element::UIActions): Deleted.
- dom/Element.h:
- dom/Element.idl:
- dom/EventNames.in:
- dom/Node.cpp:
(WebCore::Node::dispatchUIRequestEvent): Deleted.
- dom/Node.h:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
- fast/custom-elements/reactions-for-indieui-expected.txt: Removed.
- fast/custom-elements/reactions-for-indieui.html: Removed.
- indieui/uiactions-expected.txt: Removed.
- indieui/uiactions.html: Removed.
- js/dom/dom-static-property-for-in-iteration-expected.txt:
- js/dom/global-constructors-attributes-expected.txt:
- platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 12:20 PM Changeset in webkit [210028] by
-
- 17 edits5 copies1 add in trunk
WebAssembly API: implement WebAssembly.LinkError
https://bugs.webkit.org/show_bug.cgi?id=165805
<rdar://problem/29747874>
JSTests:
Reviewed by Mark lam.
Update all exception sites which now throw WebAssembly.LinkError.
- wasm/js-api/element-data.js:
- wasm/js-api/element.js:
(assert.throws):
- wasm/js-api/global-error.js:
(new.Number):
- wasm/js-api/table.js:
(assert.throws):
(new.WebAssembly.Table):
- wasm/js-api/test_Data.js:
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
- wasm/js-api/test_memory.js:
(test):
(test.testMemImportError): Deleted.
Source/JavaScriptCore:
Reviewed by Mark Lam.
As described here: https://github.com/WebAssembly/design/pull/901
Some TypeError and RangeError are now converted to WebAssembly.LinkError.
- CMakeLists.txt: add files
- DerivedSources.make: add autoget .lut.h files
- JavaScriptCore.xcodeproj/project.pbxproj: add files
- builtins/BuiltinNames.h: new name LinkError
- runtime/JSGlobalObject.h: auto-register LinkError using existing macro magic
- wasm/JSWebAssembly.h: make the new includes available
- wasm/js/JSWebAssemblyLinkError.cpp: Copied from Source/JavaScriptCore/wasm/JSWebAssemblyCompileError.cpp.
(JSC::JSWebAssemblyLinkError::create):
(JSC::JSWebAssemblyLinkError::JSWebAssemblyLinkError):
(JSC::createWebAssemblyLinkError):
- wasm/js/JSWebAssemblyLinkError.h: Copied from Source/JavaScriptCore/wasm/JSWebAssemblyCompileError.h.
(JSC::JSWebAssemblyLinkError::create):
- wasm/js/WebAssemblyInstanceConstructor.cpp: update as per spec change
(JSC::constructJSWebAssemblyInstance):
- wasm/js/WebAssemblyLinkErrorConstructor.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorConstructor.cpp.
(JSC::constructJSWebAssemblyLinkError):
(JSC::callJSWebAssemblyLinkError):
(JSC::WebAssemblyLinkErrorConstructor::create):
(JSC::WebAssemblyLinkErrorConstructor::createStructure):
(JSC::WebAssemblyLinkErrorConstructor::finishCreation):
(JSC::WebAssemblyLinkErrorConstructor::WebAssemblyLinkErrorConstructor):
(JSC::WebAssemblyLinkErrorConstructor::getConstructData):
(JSC::WebAssemblyLinkErrorConstructor::getCallData):
- wasm/js/WebAssemblyLinkErrorConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorConstructor.h.
- wasm/js/WebAssemblyLinkErrorPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorPrototypr.cpp.
(JSC::WebAssemblyLinkErrorPrototype::create):
(JSC::WebAssemblyLinkErrorPrototype::createStructure):
(JSC::WebAssemblyLinkErrorPrototype::finishCreation):
(JSC::WebAssemblyLinkErrorPrototype::WebAssemblyLinkErrorPrototype):
- wasm/js/WebAssemblyLinkErrorPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorPrototypr.h.
- wasm/js/WebAssemblyModuleRecord.cpp: update as per spec change
(JSC::dataSegmentFail):
(JSC::WebAssemblyModuleRecord::evaluate):
- 11:43 AM Changeset in webkit [210027] by
-
- 7 edits in trunk
[Readable Streams API] Implement readableByteStreamControllerCallPullIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=166022
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-12-20
Reviewed by Youenn Fablet.
Source/WebCore:
Implemented readableByteStreamControllerCallPullIfNeeded(). This function is
in particular called when a new ReadableByteStreamController is created; hence,
ReadableByteStreamController constructor has been updated.
Added 3 tests to check behaviour in case of success/failure of the start and pull functions
associated to the underlyingByteSource.
- Modules/streams/ReadableByteStreamInternals.js:
(privateInitializeReadableByteStreamController): Updated handling of underlyingByteSource
start function (especially with call to readableByteStreamControllerCallPullIfNeeded).
(isReadableStreamBYOBReader): Added.
(readableStreamHasBYOBReader): Added.
(readableStreamHasDefaultReader): Added.
(readableByteStreamControllerCallPullIfNeeded): Added.
- Modules/streams/ReadableStreamInternals.js:
(privateInitializeReadableStreamDefaultController): Added missing asserts.
- bindings/js/WebCoreBuiltinNames.h: Added readIntoRequests.
LayoutTests:
Added 3 tests to check behaviour in case of success/failure of the start and pull functions
associated to the underlyingByteSource.
- streams/readable-byte-stream-controller-expected.txt: Added expectations for new tests.
- streams/readable-byte-stream-controller.js: Added 3 new tests.
- 10:54 AM Changeset in webkit [210026] by
-
- 25 edits3 adds in trunk
WebAssembly: unique function signatures
https://bugs.webkit.org/show_bug.cgi?id=165957
<rdar://problem/29735737>
Reviewed by Saam Barati.
JSTests:
- wasm/function-tests/table-basic.js: FIXME is now addressed,
though instance to instance calls still need work which bug
#165282 will address
(i.assert.eq.foo):
- wasm/js-api/unique-signature.js: Added.
(CallIndirectWithDuplicateSignatures):
Source/JavaScriptCore:
Signatures in a Module's Type section can be duplicated, we
therefore need to unique them so that call_indirect only needs to
do a single integer compare to check that a callee's Signature is
the same as the Signature declared at the call site. Without
uniquing we'd either trap when duplicate Signatures are used, or
we'd need to do multiple comparisons. This patch makes that narrow
usecase function correctly.
There's further complication when calling from wasm to
wasm, in which case the Signatures must also match. Such
cross-instance calls will be improved in bug #165282, but this
patch sets the groundwork for it:
- Signatures are now owned by SignatureInformation which lives on VM, and is shared by all Modules.
- When parsing a Module, a Signature is created for every Type entry, and then uniqued by SignatureInformation's adopt method. Duplicate Signatures are dropped and the previous SignatureIndex is returned, new Signatures are adopted and a new SignatureIndex is created.
- The SignatureIndex values are monotonic. 0 is used to represent invalid indices, which trap. This can only occur through Table.
- SignatureInformation is used while generating code to map a SignatureIndex back to the Signature* when return / argument information is needed. This is a simple lookup into a Vector. It isn't used at runtime.
- These Signatures live forever on VM because the bookkeeping likely isn't worth it. We may want to empty things out if all Modules die, this is tracked in bug #166037.
- We can further improve things by bit-packing SignatureIndex with Code*, which is tracked by bug #165511.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/VM.h: wasm signatures are uniqued here, but aren't accessed frequently (only during parsing) so indirection is fine
- wasm/WasmB3IRGenerator.cpp: use SignatureIndex instead of Signature* when appropriate, and when still using Signature* do so with its new API
(JSC::Wasm::createJSToWasmWrapper):
(JSC::Wasm::parseAndCompile):
- wasm/WasmBinding.cpp:
(JSC::Wasm::importStubGenerator): use SignatureIndex
- wasm/WasmBinding.h:
- wasm/WasmCallingConvention.h:
(JSC::Wasm::CallingConvention::loadArguments):
- wasm/WasmFormat.cpp: drive-by move of alloc/free functions to the implementation file, allows the .h file to drop an FastMalloc.h
(JSC::Wasm::Segment::create):
(JSC::Wasm::Segment::destroy):
(JSC::Wasm::Segment::createPtr):
- wasm/WasmFormat.h: move Signature to its own file
(JSC::Wasm::CallableFunction::CallableFunction):
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::FunctionParser):
- wasm/WasmModuleParser.cpp:
- wasm/WasmModuleParser.h:
(JSC::Wasm::ModuleParser::ModuleParser):
- wasm/WasmParser.h:
(JSC::Wasm::Parser<SuccessType>::Parser):
- wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::run):
- wasm/WasmSignature.cpp: Added.
(JSC::Wasm::Signature::dump):
(JSC::Wasm::Signature::hash):
(JSC::Wasm::Signature::create):
(JSC::Wasm::Signature::createInvalid):
(JSC::Wasm::Signature::destroy):
(JSC::Wasm::SignatureInformation::~SignatureInformation):
(JSC::Wasm::SignatureInformation::adopt):
(JSC::Wasm::SignatureInformation::get):
- wasm/WasmSignature.h: Added.
(JSC::Wasm::Signature::Signature):
(JSC::Wasm::Signature::storage):
(JSC::Wasm::Signature::allocatedSize):
(JSC::Wasm::Signature::returnType):
(JSC::Wasm::Signature::returnCount):
(JSC::Wasm::Signature::argumentCount):
(JSC::Wasm::Signature::argument):
(JSC::Wasm::Signature::operator==):
(JSC::Wasm::SignatureHash::empty):
(JSC::Wasm::SignatureHash::deleted):
(JSC::Wasm::SignatureHash::SignatureHash):
(JSC::Wasm::SignatureHash::operator==):
(JSC::Wasm::SignatureHash::equal):
(JSC::Wasm::SignatureHash::hash):
(JSC::Wasm::SignatureHash::isHashTableDeletedValue):
- wasm/WasmValidate.cpp:
(JSC::Wasm::validateFunction):
- wasm/WasmValidate.h:
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::create):
- wasm/js/JSWebAssemblyModule.h:
(JSC::JSWebAssemblyModule::signatureForFunctionIndexSpace):
- wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::clearFunction):
(JSC::JSWebAssemblyTable::setFunction):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::callWebAssemblyFunction):
(JSC::WebAssemblyFunction::call):
(JSC::WebAssemblyFunction::create):
(JSC::WebAssemblyFunction::WebAssemblyFunction):
(JSC::WebAssemblyFunction::finishCreation):
- wasm/js/WebAssemblyFunction.h:
(JSC::WebAssemblyFunction::signatureIndex):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):
- 10:52 AM Changeset in webkit [210025] by
-
- 22 edits1 delete in trunk
[DataCue] Un-prefix DataCue and remove custom bindings
https://bugs.webkit.org/show_bug.cgi?id=166087
Reviewed by Eric Carlson.
Source/WebCore:
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
- bindings/js/JSDataCueCustom.cpp: Removed.
Remove JSDataCueCustom.cpp
- bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJSNewlyCreated):
Remove out of date comment.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDefinition):
Update constructor generation code to use JSDOMConvert.
- html/track/DataCue.cpp:
(WebCore::DataCue::DataCue):
(WebCore::DataCue::~DataCue):
(WebCore::DataCue::data):
(WebCore::DataCue::setData):
(WebCore::DataCue::cueContentsMatch):
(WebCore::DataCue::value):
(WebCore::DataCue::setValue):
(WebCore::DataCue::valueOrNull):
- html/track/DataCue.h:
- html/track/DataCue.idl:
- platform/SerializedPlatformRepresentation.h:
Remove DATACUE_VALUE define from web exposed classes, so the interface can
be the same on all platforms. Platforms that don't support DATACUE_VALUE will
just never have any value. Also remove custom annotations.
LayoutTests:
- media/track/track-datacue-value-expected.txt:
- media/track/track-datacue-value.html:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
Update tests for unprefixed DataCue.
- 10:44 AM Changeset in webkit [210024] by
-
- 65 edits5 moves13 adds18 deletes in trunk
Implement the updated port/area-based Scroll Snap Module Level 1 Spec
https://bugs.webkit.org/show_bug.cgi?id=165317
<rdar://problem/29490956>
Reviewed by Dean Jackson.
Source/WebCore:
Implements the changes drafted in the latest iteration of the Scroll Snap Module Level 1 spec, which uses a
snap-area and snap-port-based method for determining snap positions in a scroll snapping container.
Additionally, removes the now-obsolete and prefixed implementation of the scroll snap spec and refactors all
affected layout tests to use the new CSS properties. Also adds new layout tests covering some behaviors detailed
in the new version of the spec, such as scroll snapping with transformed child elements.
See below for more detailed descriptions of the changes.
Tests: css3/scroll-snap/scroll-snap-2d-change-axis-type.html
css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html
css3/scroll-snap/scroll-snap-children-with-scroll-snap-margin.html
css3/scroll-snap/scroll-snap-children-with-transforms.html
css3/scroll-snap/scroll-snap-positions-mainframe.html
css3/scroll-snap/scroll-snap-positions-overflow-resize.html
css3/scroll-snap/scroll-snap-positions.html
css3/scroll-snap/scroll-snap-style-changed-align.html
css3/scroll-snap/scroll-snap-with-scroll-padding.html
- WebCore.xcodeproj/project.pbxproj:
- css/CSSCalculationValue.cpp:
(WebCore::hasDoubleValue):
Removed use of length repeat.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForScrollSnapType):
(WebCore::valueForScrollSnapAlignment):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::scrollSnapDestination): Deleted.
(WebCore::scrollSnapPoints): Deleted.
(WebCore::scrollSnapCoordinates): Deleted.
Removed helper functions used to create CSS values for scroll snap coordinates and destination, and added
helpers for computed scroll snap type (a combination of axis and strictness values) as well as scroll snap align
(an alignment value per axis).
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):
Removed usages of the length repeat type, since repeat(*) is no longer being used anywhere.
- css/CSSPrimitiveValue.h:
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ScrollSnapStrictness):
(WebCore::CSSPrimitiveValue::operator ScrollSnapAxis):
(WebCore::CSSPrimitiveValue::operator ScrollSnapAxisAlignType):
(WebCore::CSSPrimitiveValue::operator ScrollSnapType): Deleted.
Added CSSPrimitiveValue mappings to ScrollSnapAxisAlignType, ScrollSnapStrictness, and ScrollSnapAxis. Removed
the old ScrollSnapType mapping.
- css/CSSProperties.json:
Replaced the old scroll snap CSS properties with the new ones. Note that scroll-snap-margin and scroll-padding
have 4 shorthands each, for the individual top/bottom/left/right values.
- css/CSSValueKeywords.in:
Added CSS keywords {x, y}, which are necessary to support the new scroll snapping properties.
- css/LengthRepeat.h: Removed.
Removed LengthRepeat entirely. This represented the
repeat(<length>)
CSS value, which was only used for the
scroll-snap-points-x and scroll-snap-points-y values.
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertScrollSnapType):
(WebCore::StyleBuilderConverter::convertScrollSnapAlign):
(WebCore::StyleBuilderConverter::parseSnapCoordinate): Deleted.
(WebCore::StyleBuilderConverter::convertScrollSnapPoints): Deleted.
(WebCore::StyleBuilderConverter::convertSnapCoordinatePair): Deleted.
(WebCore::StyleBuilderConverter::convertScrollSnapCoordinates): Deleted.
Added helper functions to convert scroll snap type and scroll snap alignment from parsed CSS values to their
primary representation in WebCore as ScrollSnapType and ScrollSnapAlign. These methods assume that the given
CSS values have successfully cleared the parsing step and are represented as CSSValueLists or length 1 or 2.
- css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsX): Deleted.
(WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsX): Deleted.
(WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsY): Deleted.
(WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsY): Deleted.
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
(WebCore::StyleProperties::asText):
Adds support for the scroll-snap-margin and scroll-padding.
- css/parser/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::isScrollSnapAxisAlign):
(WebCore::isScrollSnapStrictness):
(WebCore::CSSParser::parseScrollSnapAlign):
(WebCore::CSSParser::parseScrollSnapType):
(WebCore::CSSParser::parseNonElementSnapPoints): Deleted.
(WebCore::CSSParser::parseScrollSnapPositions): Deleted.
(WebCore::CSSParser::parseScrollSnapDestination): Deleted.
(WebCore::CSSParser::parseScrollSnapCoordinate): Deleted.
- css/parser/CSSParser.h:
Removed references to LengthRepeat, and added support for parsing new scroll snapping properties. Scroll snap
margin and scroll padding, along with their shorthands, are parsed using the same helper functions as normal
margin and padding. For type and align, I added new helper functions that build up lists of 1 or 2
CSSPrimitiveValues for each of the properties.
Parsing scroll-snap-align is straightforward -- we either have one or two values in the set {none, start,
center, end}. For scroll-snap-type, we allow a single axis value {x, y, inline, block, both}, or a single
strictness value {none, proximity, mandatory}, or an axis value followed by a non-'none' strictness (i.e. either
proximity or mandatory).
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- css/parser/CSSParserValues.cpp:
(WebCore::CSSParserValue::createCSSValue):
Removed references to LengthRepeat.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
(WebCore::consumeSnapPointCoordinateList): Deleted.
(WebCore::consumeScrollSnapCoordinate): Deleted.
(WebCore::consumeScrollSnapDestination): Deleted.
(WebCore::consumeScrollSnapPoints): Deleted.
(WebCore::consumeScrollSnapAlign):
(WebCore::consumeScrollSnapType):
(WebCore::CSSPropertyParser::parseSingleValue):
Added parsing for the longhand properties of scroll-snap-margin and scroll-padding, which use the existing
consumeLength and consumeLengthOrPercent helpers, respectively. Removed code for parsing scroll snap
coordinates, destinations and points. Added parsing logic for align and type.
- page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::computeScrollSnapPortOrAreaRect):
(WebCore::computeScrollSnapAlignOffset):
(WebCore::snapOffsetsToString):
(WebCore::snapPortOrAreaToString):
(WebCore::updateSnapOffsetsForScrollableArea):
(WebCore::appendChildSnapOffsets): Deleted.
(WebCore::destinationOffsetForViewSize): Deleted.
(WebCore::updateFromStyle): Deleted.
(WebCore::styleUsesElements): Deleted.
Overhauled updateSnapOffsetsForScrollableArea to work with the new scroll snapping model. In the new way of
computing scroll snap offsets, we:
Compute the scroll container's scroll snap port, which is the padding box inset by the scroll padding
For each child with snap positions (i.e. scroll-snap-align is not none on both axes)
Compute the child's scroll snap area, which is the bounding box of the transformed border box
If the container snaps along the horizontal axis and the snap area contributes a horizontal snap offset:
Emit the distance from the alignment offset in the horizontal of the snap port to the corresponding offset
in the snap area as a snap position.
If the container snaps along the vertical axis and the snap area contributes a vertical snap offset:
Emit the distance from the alignment offset in the vertical of the snap port to the corresponding offset
in the snap area as a snap position.
For the snap offsets in each axis, if there is at least one snap offset:
Clamp the offsets to the min and max scroll offsets
Ensure that the offsets are sorted and do not contain duplicated offsets
- platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::updateScrollSnapState):
Clear out the ScrollController's snap offsets and state along an axis when its ScrollableArea no longer has snap
offsets in that axis.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::styleWillChange):
(WebCore::RenderBox::willBeRemovedFromTree):
- rendering/RenderLayerModelObject.cpp:
(WebCore::scrollSnapContainerRequiresUpdateForStyleUpdate):
(WebCore::RenderLayerModelObject::styleDidChange):
- rendering/RenderView.cpp:
(WebCore::RenderView::registerBoxWithScrollSnapPositions):
(WebCore::RenderView::unregisterBoxWithScrollSnapPositions):
(WebCore::RenderView::registerBoxWithScrollSnapCoordinates): Deleted.
(WebCore::RenderView::unregisterBoxWithScrollSnapCoordinates): Deleted.
- rendering/RenderView.h:
Tweaked the scroll snap child registration logic. registerBoxWithScrollSnapCoordinates is renamed to
unregisterBoxWithScrollSnapPositions, since the notion of scroll snap coordinates no longer exists, and instead
of checking if the list of scroll snap coordinates is empty for the absence of scroll positions, we instead
check for a computed scroll snap align that is not none on both axes.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::initialScrollSnapType):
(WebCore::RenderStyle::initialScrollSnapAlign):
(WebCore::RenderStyle::scrollSnapArea):
(WebCore::RenderStyle::scrollSnapPort):
(WebCore::RenderStyle::scrollSnapType):
(WebCore::RenderStyle::scrollPadding):
(WebCore::RenderStyle::scrollPaddingTop):
(WebCore::RenderStyle::scrollPaddingBottom):
(WebCore::RenderStyle::scrollPaddingLeft):
(WebCore::RenderStyle::scrollPaddingRight):
(WebCore::RenderStyle::scrollSnapAlign):
(WebCore::RenderStyle::scrollSnapMargin):
(WebCore::RenderStyle::scrollSnapMarginTop):
(WebCore::RenderStyle::scrollSnapMarginBottom):
(WebCore::RenderStyle::scrollSnapMarginLeft):
(WebCore::RenderStyle::scrollSnapMarginRight):
(WebCore::RenderStyle::setScrollSnapType):
(WebCore::RenderStyle::setScrollPaddingTop):
(WebCore::RenderStyle::setScrollPaddingBottom):
(WebCore::RenderStyle::setScrollPaddingLeft):
(WebCore::RenderStyle::setScrollPaddingRight):
(WebCore::RenderStyle::setScrollSnapAlign):
(WebCore::RenderStyle::setScrollSnapMarginTop):
(WebCore::RenderStyle::setScrollSnapMarginBottom):
(WebCore::RenderStyle::setScrollSnapMarginLeft):
(WebCore::RenderStyle::setScrollSnapMarginRight):
(WebCore::RenderStyle::initialScrollSnapDestination): Deleted.
(WebCore::RenderStyle::initialScrollSnapCoordinates): Deleted.
(WebCore::RenderStyle::scrollSnapPointsX): Deleted.
(WebCore::RenderStyle::scrollSnapPointsY): Deleted.
(WebCore::RenderStyle::scrollSnapDestination): Deleted.
(WebCore::RenderStyle::scrollSnapCoordinates): Deleted.
(WebCore::RenderStyle::setScrollSnapPointsX): Deleted.
(WebCore::RenderStyle::setScrollSnapPointsY): Deleted.
(WebCore::RenderStyle::setScrollSnapDestination): Deleted.
(WebCore::RenderStyle::setScrollSnapCoordinates): Deleted.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::initialScrollSnapMargin):
(WebCore::RenderStyle::initialScrollPadding):
(WebCore::RenderStyle::scrollSnapType): Deleted.
(WebCore::RenderStyle::setScrollSnapType): Deleted.
(WebCore::RenderStyle::initialScrollSnapType): Deleted.
(WebCore::RenderStyle::initialScrollSnapPointsX): Deleted.
(WebCore::RenderStyle::initialScrollSnapPointsY): Deleted.
Added boilerplate code for returning various new scroll snap style properties, and removed similar code for
handling the old scroll snap properties.
- rendering/style/RenderStyleConstants.h:
Added three new enum classes:
- ScrollSnapStrictness represents the strictness of scroll snapping along one or both axes
- ScrollSnapAxis designates the axes along which scroll snapping should occur
- ScrollSnapAxisAlignType indicates which offsets along the x or y axes of the snap port and snap area should be used to compute the snap position emitted by a snap area.
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
- rendering/style/StyleRareNonInheritedData.h:
Replaces the StyleScrollSnapPoints object (which, confusingly, was in charge of storing both the scroll
container's and child elements' scroll snap styles) with StyleScrollSnapPort and StyleScrollSnapArea objects,
which keep track of the style properties on the scroll container and the child element, respectively.
- rendering/style/StyleScrollSnapPoints.h:
(WebCore::operator==):
(WebCore::StyleScrollSnapPort::copy):
(WebCore::StyleScrollSnapPort::StyleScrollSnapPort):
(WebCore::StyleScrollSnapArea::copy):
(WebCore::StyleScrollSnapArea::StyleScrollSnapArea):
- rendering/style/StyleScrollSnapping.h: Added.
(WebCore::operator!=):
(WebCore::StyleScrollSnapPort::create):
(WebCore::StyleScrollSnapArea::create):
(WebCore::StyleScrollSnapArea::hasSnapPosition):
Overhauled StyleScrollSnapPoints, breaking the logic here into two classes: StyleScrollSnapPort for the scroll
container, handling the propertiesscroll-snap-type
andscroll-padding
and StyleScrollSnapArea for child
elements, handling the propertiesscroll-snap-align
andscroll-snap-margin
. The ScrollSnapType itself is
composed of an axis value and a strictness, while a ScrollSnapAlign keeps track of the alignment modes in each
axis. By default, these are initialized to {Both, None} and {None, None}, respectively. The rest of the logic is
boilerplate code for comparing these style objects to one another and copying style representations.
- testing/Internals.cpp:
(WebCore::Internals::scrollSnapOffsets):
Perform a layout on the document if needed before returning the list of computed snap offsets. The absence of
this layout pass was causing some layout tests in css3/scroll-snap/ to flake when testing that programmatic
changes to the scroll snap style properties change the computed snap offsets.
Source/WebKit2:
Remove unused code for adopting scroll snapping in the PDF plugin.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::didCalculateSizes):
LayoutTests:
Refactors layout tests to use the new scroll snapping properties, removing any tests that only made sense in the
context of the old version of scroll snapping and adding new ones to cover behaviors that the existing tests do
not verify. See per-method descriptions for more details. In most cases, the old way of specifying scroll
snapping via repeat(<container width or length>) or a coordinate at (0, 0) on each child has been replaced with
scroll-snap-type: (x|y|both) mandatory;
on the container andscroll-snap-align: start
on each child element.
If a test below does not have an accompanying description, then this is the only change applied to it, and the
behavior it is testing is still relevant in the new scroll snapping model.
- css3/scroll-snap/improper-snap-points-crash-expected.txt: Removed.
- css3/scroll-snap/improper-snap-points-crash.html: Removed.
This test is no longer valid in the new scroll snapping model, since there is no way to specify both repeating
points along an axis and child elements with scroll snap coordinates.
- css3/scroll-snap/nested-elements-expected.txt:
- css3/scroll-snap/nested-elements.html:
- css3/scroll-snap/resources/iframe-content.html:
- css3/scroll-snap/scroll-snap-2d-change-axis-type-expected.txt: Added.
- css3/scroll-snap/scroll-snap-2d-change-axis-type.html: Added.
New layout test to check that changing the scroll-snap-type from one to both axes updates the computed snap
offsets in the container to have offsets from both axes.
- css3/scroll-snap/scroll-snap-2d-offsets-computed-independently-expected.txt: Added.
- css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html: Added.
New layout test to check that snap offsets are computed independently on each axis. In a 3x3 grid of child
elements with the child elements along the diagonal havingscroll-snap-align
s ofend
,center
andstart
in order from top left to bottom right, we should observe the same effect as having each child emit snap
positions in both axes.
- css3/scroll-snap/scroll-snap-children-with-scroll-snap-margin-expected.txt: Added.
- css3/scroll-snap/scroll-snap-children-with-scroll-snap-margin.html: Added.
New layout test to check that specifying a
scroll-snap-margin
correctly insets the scroll snap area of a child
element, and that changing thescroll-snap-margin
via script also changes the computed scroll snap offsets.
- css3/scroll-snap/scroll-snap-children-with-transforms-expected.txt: Added.
- css3/scroll-snap/scroll-snap-children-with-transforms.html: Added.
New layout test to check that when computing the scroll snap areas of child elements, we take transforms into
account and use the bounding box of the transformed border box of the child element. Also verifies that we apply
the scroll offset _after_ the transform, so that scrolling the container and then recomputing snap offsets when
child elements are transformed does not result in different snap offsets.
- css3/scroll-snap/scroll-snap-coordinate-expected.txt: Removed.
- css3/scroll-snap/scroll-snap-coordinate.html: Removed.
Renamed to scroll-snap-position.html, since the notion of scroll snap coordinates no longer exists.
- css3/scroll-snap/scroll-snap-desination-lock-up-expected.txt: Removed.
- css3/scroll-snap/scroll-snap-desination-lock-up.html: Removed.
This test is no longer relevant in the new scroll snapping model. This is because the logic for computing scroll
snap offsets in AxisScrollSnapOffsets no longer has an opportunity to loop infinitely while trying to fill a
scrollable axis with snap offsets, since repeating snap points have been removed.
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html:
- css3/scroll-snap/scroll-snap-inherit-expected.txt:
- css3/scroll-snap/scroll-snap-inherit.html:
Updated to test the new scroll snap properties.
- css3/scroll-snap/scroll-snap-initial-expected.txt:
- css3/scroll-snap/scroll-snap-initial.html:
Updated to test the new scroll snap properties.
- css3/scroll-snap/scroll-snap-mismatch.html:
- css3/scroll-snap/scroll-snap-negative-repeat-expected.txt: Removed.
- css3/scroll-snap/scroll-snap-negative-repeat.html: Removed.
Removed, since negative repeating scroll snap offsets are (thankfully) no longer possible in the new scroll
snapping model.
- css3/scroll-snap/scroll-snap-offsets-expected.txt:
- css3/scroll-snap/scroll-snap-offsets.html:
Augmented to mix in various alignment values among the scroll snap child elements as well as various levels of
nesting.
- css3/scroll-snap/scroll-snap-position-values-expected.txt: Removed.
- css3/scroll-snap/scroll-snap-position-values.html: Removed.
The behaviors tested here are covered by other similar tests: scroll-snap-initial and scroll-snap-inherit.
- css3/scroll-snap/scroll-snap-positions-expected.txt: Added.
- css3/scroll-snap/scroll-snap-positions-mainframe-expected.txt: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-mainframe-expected.txt.
- css3/scroll-snap/scroll-snap-positions-mainframe.html: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-mainframe.html.
- css3/scroll-snap/scroll-snap-positions-overflow-resize-expected.txt: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-overflow-resize-expected.txt.
- css3/scroll-snap/scroll-snap-positions-overflow-resize.html: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-overflow-resize.html.
- css3/scroll-snap/scroll-snap-positions.html: Added.
Renamed these existing tests to not use the term
scroll-snap-coordinate
. The semantics of these tests are
still the same, only using different values ofscroll-snap-align
instead of-webkit-scroll-snap-coordinate
.
- css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
- css3/scroll-snap/scroll-snap-property-computed-style.js:
- css3/scroll-snap/scroll-snap-property-parsing-expected.txt:
- css3/scroll-snap/scroll-snap-property-parsing.js:
- css3/scroll-snap/scroll-snap-style-changed-align-expected.txt: Added.
- css3/scroll-snap/scroll-snap-style-changed-align.html: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-style-changed-coordinates.html.
- css3/scroll-snap/scroll-snap-style-changed-coordinates-expected.txt: Removed.
- css3/scroll-snap/scroll-snap-style-changed-repeat-expected.txt: Removed.
- css3/scroll-snap/scroll-snap-style-changed-repeat.html: Removed.
No longer relevant, since repeating scroll snap offsets are no longer in the spec.
- css3/scroll-snap/scroll-snap-subpixel-repeat-expected.txt: Removed.
- css3/scroll-snap/scroll-snap-subpixel-repeat.html: Removed.
No longer relevant, since repeating scroll snap offsets are no longer in the spec.
- css3/scroll-snap/scroll-snap-with-scroll-padding-expected.txt: Added.
- css3/scroll-snap/scroll-snap-with-scroll-padding.html: Added.
New layout test to check that specifying scroll padding on a scroll container correctly outsets the scroll snap
port, and that changing scroll padding via script also changes the computed snap offsets.
- platform/mac-wk2/TestExpectations:
Removed tiled-drawing/scrolling/latched-div-with-scroll-snap.html from the list of failing tests.
- tiled-drawing/scrolling/latched-div-with-scroll-snap-expected.txt:
- tiled-drawing/scrolling/latched-div-with-scroll-snap.html:
This test was failing 100% of the time due to the momentum portion of the scrolling phase being invoked after
scroll snapping has ended. This has been rewritten to perform the following steps:
- Scroll the top div with momentum and verify that the scroll 'glided' to the red box.
- Scroll the top div without momentum and verify that the scroll snaps back to the red box.
- Repeat (1) and (2), but for the bottom div. The same thing should occur.
- tiled-drawing/scrolling/scroll-snap/resources/horizontal-mainframe.html:
- tiled-drawing/scrolling/scroll-snap/resources/vertical-mainframe.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up-expected.txt: Removed.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up.html: Removed.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-scrolling-jumps-to-top.html:
All of the tests here were updated to use the new scroll-snap-* properties instead of the old versions. The
semantics of these tests have not changed.
- 10:26 AM Changeset in webkit [210023] by
-
- 35 edits in trunk/Source/JavaScriptCore
Modernize for loops in JSC
https://bugs.webkit.org/show_bug.cgi?id=166060
Reviewed by Yusuke Suzuki.
- API/JSCallbackObject.h:
(JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::stronglyVisitWeakReferences):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::getArrayProfile):
(JSC::CodeBlock::tallyFrequentExitSites):
(JSC::CodeBlock::nameForRegister):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
- bytecompiler/NodesCodegen.cpp:
(JSC::ObjectPatternNode::bindValue):
- debugger/Debugger.cpp:
(JSC::Debugger::applyBreakpoints):
- dfg/DFGCPSRethreadingPhase.cpp:
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):
- dfg/DFGClobberSet.cpp:
(JSC::DFG::ClobberSet::setOf):
- dfg/DFGDesiredIdentifiers.cpp:
(JSC::DFG::DesiredIdentifiers::reallyAdd):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::visitChildren):
- dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::run):
- dfg/DFGMaximalFlushInsertionPhase.cpp:
(JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):
- dfg/DFGPutStackSinkingPhase.cpp:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::linkBranches):
- dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGValidate.cpp:
- dfg/DFGVirtualRegisterAllocationPhase.cpp:
(JSC::DFG::VirtualRegisterAllocationPhase::run):
- heap/HeapVerifier.cpp:
(JSC::trimDeadObjectsFromList):
(JSC::HeapVerifier::trimDeadObjects):
- heap/LiveObjectList.cpp:
(JSC::LiveObjectList::findObject):
- heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::isPagedOut):
- inspector/ScriptCallStack.cpp:
(Inspector::ScriptCallStack::firstNonNativeCallFrame):
- jit/JIT.cpp:
(JSC::JIT::link):
- parser/VariableEnvironment.cpp:
(JSC::VariableEnvironment::markAllVariablesAsCaptured):
(JSC::VariableEnvironment::hasCapturedVariables):
- runtime/FunctionHasExecutedCache.cpp:
(JSC::FunctionHasExecutedCache::hasExecutedAtOffset):
(JSC::FunctionHasExecutedCache::getFunctionRanges):
- runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::visitChildren):
- runtime/TypeProfiler.cpp:
(JSC::TypeProfiler::findLocation):
- runtime/TypeSet.cpp:
(JSC::TypeSet::addTypeInformation):
(JSC::TypeSet::dumpTypes):
- runtime/VM.cpp:
(JSC::VM::gatherConservativeRoots):
- runtime/WeakMapData.cpp:
(JSC::WeakMapData::DeadKeyCleaner::visitWeakReferences):
(JSC::WeakMapData::DeadKeyCleaner::finalizeUnconditionally):
- tools/ProfileTreeNode.h:
(JSC::ProfileTreeNode::dumpInternal):
- yarr/YarrInterpreter.cpp:
(JSC::Yarr::ByteCompiler::emitDisjunction):
- 9:25 AM Changeset in webkit [210022] by
-
- 2 edits in trunk/LayoutTests
Fix memory leak in malformed test
https://bugs.webkit.org/show_bug.cgi?id=165917
Patch by Megan Gardner <Megan Gardner> on 2016-12-20
Reviewed by Alexey Proskuryakov.
Navigation caused 'onload' to be called twice, causing test harness to have extraneous
HID callback around after script controller was dismantled. Loading in body will eliminate
double load, and also prevent other race conditions where the body doesn't load fast enough.
- http/tests/quicklook/hide-referer-on-navigation.html:
- 4:27 AM Changeset in webkit [210021] by
-
- 5 edits in trunk/Source/WebCore
Use ENABLE() in place of ENABLE_CSS_SELECTORS_LEVEL4
https://bugs.webkit.org/show_bug.cgi?id=166043
<rdar://problems/29743655>
Reviewed by Alex Christensen.
This doesn't compile unless the ENABLE_CSS_SELECTORS_LEVEL4 is defined.
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
- css/SelectorFilter.cpp:
(WebCore::SelectorFilter::collectIdentifierHashes):
- css/parser/CSSSelectorParser.cpp:
(WebCore::isOnlyPseudoClassFunction):
(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::consumeCombinator):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
- 3:42 AM Changeset in webkit [210020] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, attempt to fix Windows Debug build part 2
https://bugs.webkit.org/show_bug.cgi?id=166035
Ensured that this patch passes the build on the GTK port.
- rendering/RenderElement.cpp:
- rendering/RenderElement.h:
- 3:24 AM Changeset in webkit [210019] by
-
- 2 edits in trunk/Source/JavaScriptCore
cpuid() requires <intrin.h> to be included
https://bugs.webkit.org/show_bug.cgi?id=166051
Reviewed by Yusuke Suzuki.
- assembler/MacroAssemblerX86Common.h:
- 2:50 AM Changeset in webkit [210018] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix Windows Debug build
https://bugs.webkit.org/show_bug.cgi?id=166035
The size of SameSizeAsRenderElement should be in sync with sizeof(RenderElement).
- rendering/RenderElement.cpp:
- 2:24 AM Changeset in webkit [210017] by
-
- 7 edits in trunk
WebRTC: RTCPeerConnection constructor argument should be optional
https://bugs.webkit.org/show_bug.cgi?id=164057
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Update expectation of RTCPeerConnection constructor tests.
- web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor-expected.txt:
Source/WebCore:
Modify RTCPeerConnection JSBuiltin constructor to allow RTCPeerConfiguration
argument to be optional.
Update existing tests.
- Modules/mediastream/RTCPeerConnection.js:
(initializeRTCPeerConnection):
LayoutTests:
Remove tests since they are duplicated with WPT tests.
- fast/mediastream/RTCPeerConnection-expected.txt:
- fast/mediastream/RTCPeerConnection.html:
- 12:32 AM Changeset in webkit [210016] by
-
- 29 edits1 add in trunk
[ES6] Enable ES6 Modules
https://bugs.webkit.org/show_bug.cgi?id=165849
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
- features.json:
Source/WebCore:
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::determineScriptType):
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
- page/Settings.in:
Source/WebKit/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences es6ModulesEnabled]): Deleted.
(-[WebPreferences setES6ModulesEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKit/win:
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::setES6ModulesEnabled): Deleted.
(WebPreferences::es6ModulesEnabled): Deleted.
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Source/WebKit2:
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetES6ModulesEnabled): Deleted.
(WKPreferencesGetES6ModulesEnabled): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setES6ModulesEnabled): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
Dec 19, 2016:
- 9:23 PM WebKitGTK/2.14.x edited by
- (diff)
- 9:02 PM WebKitGTK/2.14.x edited by
- Reorder chronologically (diff)
- 9:01 PM WebKitGTK/2.14.x edited by
- (diff)
- 8:53 PM WebKitGTK/2.14.x edited by
- (diff)
- 8:52 PM WebKitGTK/2.14.x edited by
- (diff)
- 8:49 PM WebKitGTK/2.14.x edited by
- (diff)
- 8:32 PM WebKitGTK/2.14.x edited by
- (diff)
- 8:19 PM WebKitGTK/2.14.x edited by
- (diff)
- 7:14 PM Changeset in webkit [210015] by
-
- 5 edits in branches/safari-603-branch/Source
Versioning.
- 7:09 PM Changeset in webkit [210014] by
-
- 5 edits in trunk/Source
Versioning.
- 6:54 PM Changeset in webkit [210013] by
-
- 1 copy in tags/Safari-603.1.17
New tag.
- 6:31 PM Changeset in webkit [210012] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/fetch/fetching-same-resource-with-diffferent-options.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=166025
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 6:05 PM Changeset in webkit [210011] by
-
- 8 edits2 deletes in branches/safari-603-branch
Merged r210010. rdar://problem/29745006
- 6:03 PM Changeset in webkit [210010] by
-
- 8 edits2 deletes in trunk
Rolling out r209974 and r209952. They break some websites in mysterious ways. Step 2: Rollout r209952.
https://bugs.webkit.org/show_bug.cgi?id=166049
Not reviewed.
JSTests:
- stress/deeply-nested-finallys.js: Removed.
- stress/test-finally.js: Removed.
Source/JavaScriptCore:
- bytecode/HandlerInfo.h:
(JSC::HandlerInfoBase::typeName):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::pushFinallyControlFlowScope):
(JSC::BytecodeGenerator::pushIteratorCloseControlFlowScope):
(JSC::BytecodeGenerator::popFinallyControlFlowScope):
(JSC::BytecodeGenerator::popIteratorCloseControlFlowScope):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::emitPopScopes):
(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::labelScopeDepth):
(JSC::BytecodeGenerator::pushLocalControlFlowScope):
(JSC::BytecodeGenerator::popLocalControlFlowScope):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::popTry): Deleted.
(JSC::BytecodeGenerator::emitCatch): Deleted.
(JSC::BytecodeGenerator::restoreScopeRegister): Deleted.
(JSC::BytecodeGenerator::labelScopeDepthToLexicalScopeIndex): Deleted.
(JSC::BytecodeGenerator::emitIsNumber): Deleted.
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded): Deleted.
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded): Deleted.
(JSC::BytecodeGenerator::emitFinallyCompletion): Deleted.
(JSC::BytecodeGenerator::allocateFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::releaseFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::emitCompareFinallyActionAndJumpIf): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::isInFinallyBlock):
(JSC::FinallyJump::FinallyJump): Deleted.
(JSC::FinallyContext::FinallyContext): Deleted.
(JSC::FinallyContext::outerContext): Deleted.
(JSC::FinallyContext::finallyLabel): Deleted.
(JSC::FinallyContext::depth): Deleted.
(JSC::FinallyContext::numberOfBreaksOrContinues): Deleted.
(JSC::FinallyContext::incNumberOfBreaksOrContinues): Deleted.
(JSC::FinallyContext::handlesReturns): Deleted.
(JSC::FinallyContext::setHandlesReturns): Deleted.
(JSC::FinallyContext::registerJump): Deleted.
(JSC::FinallyContext::numberOfJumps): Deleted.
(JSC::FinallyContext::jumps): Deleted.
(JSC::ControlFlowScope::ControlFlowScope): Deleted.
(JSC::ControlFlowScope::isLabelScope): Deleted.
(JSC::ControlFlowScope::isFinallyScope): Deleted.
(JSC::BytecodeGenerator::currentLexicalScopeIndex): Deleted.
(JSC::BytecodeGenerator::FinallyRegistersScope::FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::FinallyRegistersScope::~FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::finallyActionRegister): Deleted.
(JSC::BytecodeGenerator::finallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToJumpID): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotJump): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotThrowCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfCompletionTypeIsThrow): Deleted.
(JSC::BytecodeGenerator::bytecodeOffsetToJumpID): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::ContinueNode::emitBytecode):
(JSC::BreakNode::emitBytecode):
(JSC::ReturnNode::emitBytecode):
(JSC::TryNode::emitBytecode):
Source/WTF:
- wtf/SegmentedVector.h:
(WTF::SegmentedVector::last):
(WTF::SegmentedVector::first): Deleted.
(WTF::SegmentedVector::takeLast): Deleted.
- 6:01 PM Changeset in webkit [210009] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Address some assertions and uncaught exceptions seen using Inspector
https://bugs.webkit.org/show_bug.cgi?id=166048
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-19
Reviewed by Matt Baker.
- UserInterface/Controllers/CodeMirrorEditingController.js:
(WebInspector.CodeMirrorEditingController.prototype.presentHoverMenu):
(WebInspector.CodeMirrorEditingController.prototype.dismissHoverMenu):
classList throws an exception when given an empty string. Avoid those cases.
- UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
(WebInspector.CodeMirrorTokenTrackingController.prototype._stopTracking):
Seen this assert frequently for a while, existing code handles it gracefully.
- UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
We correctly handle these tokens but they were not in the list of expected tokens.
- 5:55 PM Changeset in webkit [210008] by
-
- 4 edits in branches/safari-603-branch/Source/JavaScriptCore
Merged r210007. rdar://problem/29745006
- 5:48 PM Changeset in webkit [210007] by
-
- 4 edits in trunk/Source/JavaScriptCore
Rolling out r209974 and r209952. They break some websites in mysterious ways. Step 1: Rollout r209974.
https://bugs.webkit.org/show_bug.cgi?id=166049
Not reviewed.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::allocateFinallyRegisters):
(JSC::BytecodeGenerator::releaseFinallyRegisters):
(JSC::BytecodeGenerator::emitCompareFinallyActionAndJumpIf):
(JSC::BytecodeGenerator::allocateCompletionRecordRegisters): Deleted.
(JSC::BytecodeGenerator::releaseCompletionRecordRegisters): Deleted.
(JSC::BytecodeGenerator::emitJumpIfCompletionType): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::FinallyJump::FinallyJump):
(JSC::FinallyContext::registerJump):
(JSC::BytecodeGenerator::FinallyRegistersScope::FinallyRegistersScope):
(JSC::BytecodeGenerator::FinallyRegistersScope::~FinallyRegistersScope):
(JSC::BytecodeGenerator::finallyActionRegister):
(JSC::BytecodeGenerator::finallyReturnValueRegister):
(JSC::BytecodeGenerator::emitSetFinallyActionToNormalCompletion):
(JSC::BytecodeGenerator::emitSetFinallyActionToReturnCompletion):
(JSC::BytecodeGenerator::emitSetFinallyActionToJumpID):
(JSC::BytecodeGenerator::emitSetFinallyReturnValueRegister):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNormalCompletion):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotJump):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsReturnCompletion):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotReturnCompletion):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotThrowCompletion):
(JSC::BytecodeGenerator::emitJumpIfCompletionTypeIsThrow):
(JSC::BytecodeGenerator::bytecodeOffsetToJumpID):
(JSC::bytecodeOffsetToJumpID): Deleted.
(JSC::BytecodeGenerator::CompletionRecordScope::CompletionRecordScope): Deleted.
(JSC::BytecodeGenerator::CompletionRecordScope::~CompletionRecordScope): Deleted.
(JSC::BytecodeGenerator::completionTypeRegister): Deleted.
(JSC::BytecodeGenerator::completionValueRegister): Deleted.
(JSC::BytecodeGenerator::emitSetCompletionType): Deleted.
(JSC::BytecodeGenerator::emitSetCompletionValue): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):
- 5:18 PM Changeset in webkit [210006] by
-
- 9 edits2 deletes in trunk/Source/WebCore
Remove a few trivial custom bindings
https://bugs.webkit.org/show_bug.cgi?id=165999
Reviewed by Simon Fraser.
- CMakeLists.txt:
- bindings/js/JSBindingsAllInOne.cpp:
Remove files.
- WebCore.xcodeproj/project.pbxproj:
Move custom bindings that only exist for GC or wrapping reasons
to their own group, so we can focus on the ones with custom functions.
- bindings/js/JSDataTransferCustom.cpp: Removed.
- bindings/js/JSTrackEventCustom.cpp: Removed.
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::types):
Remove incorrect comment and use a more concise empty initialization syntax.
- dom/DataTransfer.idl:
Update IDL to remove [Custom] annotation and match spec better.
- html/track/TrackEvent.cpp:
(WebCore::convertToTrackEventTrack):
(WebCore::TrackEvent::TrackEvent):
- html/track/TrackEvent.h:
Switch to store the Track in a Variant to make the binding easier.
- html/track/TrackEvent.idl:
Remove [CustomGetter] annotation.
- 4:37 PM Changeset in webkit [210005] by
-
- 2 edits in trunk/Source/WebKit2
Fix unwanted deletion of record/replay files
https://bugs.webkit.org/show_bug.cgi?id=166040
Reviewed by Alex Christensen.
As part of some refactoring, the objects that create the meta files
that are part of the record/replay cache would get deleted. They were
always getting opened in "write" mode", which would truncate the
files. Fix this so that the files are opened in the right modes for
record, replay, and neither.
- NetworkProcess/capture/NetworkCaptureManager.cpp:
(WebKit::NetworkCapture::Manager::initialize):
- 4:34 PM Changeset in webkit [210004] by
-
- 2 edits in branches/safari-602-branch/Source/WebCore
Build fix for rdar://problem/29737358.
- 4:23 PM Changeset in webkit [210003] by
-
- 7 edits in trunk/Tools
Repurpose bots and clean up dashboard.
https://bugs.webkit.org/show_bug.cgi?id=166045
Reviewed by Lucas Forschler.
- BuildSlaveSupport/build.webkit.org-config/config.json:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
(BubbleQueueServer):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(table.queue-grid tr.platform.mac-os-x-yosemite img.logo): Deleted.
- 4:01 PM Changeset in webkit [210002] by
-
- 4 edits2 copies in branches/safari-602-branch
Merged r209990. rdar://problem/29737358
- 3:41 PM Changeset in webkit [210001] by
-
- 7 edits in trunk/Source/WebCore
Do not position detached list item marker.
https://bugs.webkit.org/show_bug.cgi?id=166035
<rdar://problem/29175235>
Reviewed by Simon Fraser.
In certain (non-reproducible) cases, the list item marker can get detached from the tree
during layout and when in RenderListItem::positionListMarker() we dereference the marker's parent, we crash.
In addition to the null check, this patch adds an ASSERTION to catch such cases early on.
Unable to reproduce.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildTo):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::removeChildInternal):
- rendering/RenderElement.h:
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::layout):
(WebCore::RenderListItem::positionListMarker):
- rendering/RenderListItem.h:
- rendering/RenderListMarker.h:
- 3:39 PM Changeset in webkit [210000] by
-
- 2 edits in branches/safari-603-branch/Source/WebKit2
Another feature toggle for rdar://problem/29466493.
2016-12-19 Dean Jackson <dino@apple.com>
Enable Gamepad by default.
- Shared/WebPreferencesDefinitions.h:
- 3:36 PM Changeset in webkit [209999] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/inspector/network/fetch-network-data.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=166038
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:45 PM Changeset in webkit [209998] by
-
- 2 edits in trunk/Source/JavaScriptCore
Web Inspector: Assertion seen in InspectorDebuggerAgent::refAsyncCallData with Inspector open
https://bugs.webkit.org/show_bug.cgi?id=166034
<rdar://problem/29554366>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-19
Reviewed by Brian Burg.
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::refAsyncCallData):
Remove assertion. This assert can happen if the currently executing callback
was just explicitly cancelled by script. Existing code already handles if
no async data was found for the given identifier.
- 2:06 PM Changeset in webkit [209997] by
-
- 5 edits in trunk/Source
[CSS Parser] Enable CSS Deferred Parsing
https://bugs.webkit.org/show_bug.cgi?id=165869
Unreviewed rollout – looks like this regressed performance.
Source/WebCore:
- css/parser/CSSParserMode.h:
- page/Settings.in:
Source/WebKit2:
- Shared/WebPreferencesDefinitions.h:
- 1:59 PM Changeset in webkit [209996] by
-
- 2 edits1 copy in trunk/LayoutTests
Rebaseline fast/text/emoji.html for macOS.
Unreviewed test gardening.
- platform/mac-elcapitan/fast/text/emoji-expected.txt: Copied from LayoutTests/platform/mac/fast/text/emoji-expected.txt.
- platform/mac/fast/text/emoji-expected.txt:
- 1:27 PM Changeset in webkit [209995] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION: Crash in com.apple.WebKit:IPC::Connection::platformCanSendOutgoingMessages() const + 0
https://bugs.webkit.org/show_bug.cgi?id=165817
rdar://problem/29626731
Reviewed by Dan Bernstein.
If the receive right is invalidated before we send the message, the kernel won't be able to create a send right,
and we'll crash due to mach_msg returning MACH_SEND_INVALID_RIGHT.
Fix this by immediately creating a send right, and passing MACH_MSG_TYPE_MOVE_SEND to the attachment constructor.
- WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openFrontendConnection):
- 12:46 PM WebKitGTK/2.14.x edited by
- (diff)
- 12:45 PM WebKitGTK/2.14.x edited by
- Remove bug #164052, nothing ready there yet (diff)
- 12:35 PM WebKitGTK/2.14.x edited by
- Remove "MemoryPressureHandler shouldn't know how to release WebCore … (diff)
- 12:33 PM Changeset in webkit [209994] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, mark fixed-element-on-bottom-with-keyboard.html as skip for OpenSource iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=166027
This test should have been disabled on OpenSource bots due to the lack of touch handling.
- platform/ios-simulator-wk2/TestExpectations:
- 12:28 PM Changeset in webkit [209993] by
-
- 1 edit7 adds in trunk/LayoutTests
Add a few Worker loading tests that don't seem to be explicitly handled
https://bugs.webkit.org/show_bug.cgi?id=165870
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-19
Reviewed by Daniel Bates.
The tests already pass as expected, but adding specific tests
for specific expected behavior with Worker script loads.
- http/tests/security/contentSecurityPolicy/worker-redirect-allowed-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/worker-redirect-allowed.html: Added.
- http/tests/security/resources/worker-message-pass.js: Added.
- http/tests/security/worker-cross-origin-expected.txt: Added.
- http/tests/security/worker-cross-origin.html: Added.
- http/tests/security/worker-same-origin-expected.txt: Added.
- http/tests/security/worker-same-origin.html: Added.
- 12:18 PM WebKitGTK/2.14.x edited by
- (diff)
- 11:34 AM Changeset in webkit [209992] by
-
- 14 edits in branches/safari-603-branch
Merge another patch for rdar://problem/29466493.
2016-12-19 Dean Jackson <dino@apple.com>
Disable some features on the safari-603-branch.
<rdar://problem/29466493>
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
- css/SelectorChecker.cpp: (WebCore::SelectorChecker::matchRecursively):
- css/SelectorFilter.cpp: (WebCore::SelectorFilter::collectIdentifierHashes):
- css/parser/CSSSelectorParser.cpp: (WebCore::isOnlyPseudoClassFunction): (WebCore::CSSSelectorParser::consumePseudo): (WebCore::CSSSelectorParser::consumeCombinator):
- cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 11:30 AM EnvironmentVariables edited by
- (diff)
- 11:12 AM Changeset in webkit [209991] by
-
- 2 edits in trunk/Tools
[CMake] TestWebKitAPIBase links to itself
https://bugs.webkit.org/show_bug.cgi?id=165985
Reviewed by Alex Christensen.
Fix CMake warning about a target linking to itself, which makes no sense.
- TestWebKitAPI/CMakeLists.txt:
- 11:05 AM Changeset in webkit [209990] by
-
- 4 edits2 adds in trunk
Side effects while restting form elements
https://bugs.webkit.org/show_bug.cgi?id=165959
<rdar://problem/29705967>
Reviewed by Anders Carlsson.
Source/WebCore:
JavaScript logic can run while resetting FormElement objects. This can
lead to unintended side-effets and other unwanted behavior. We should
protect these elements during the reset.
Test: fast/html/form-mutate.html
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement): Switch to C++11 initialization.
(WebCore::HTMLFormElement::reset): Protect elements until the reset
operation is finished.
(WebCore::HTMLFormElement::resetAssociatedFormControlElements): Added to share
code with 'resumeFromDocument'.
(WebCore::HTMLFormElement::resumeFromDocument): Protect elements until the
reset operation is finished.
LayoutTests:
- fast/html/form-mutate-expected.txt: Added.
- fast/html/form-mutate.html: Added.
- 10:18 AM Changeset in webkit [209989] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed, rolling out r209983.
https://bugs.webkit.org/show_bug.cgi?id=166024
There's intent to support persistent-usage-record (Requested
by zdobersek on #webkit).
Reverted changeset:
"[EME] Remove MediaKeySessionType::persistent-usage-record"
https://bugs.webkit.org/show_bug.cgi?id=166012
http://trac.webkit.org/changeset/209983
Patch by Commit Queue <commit-queue@webkit.org> on 2016-12-19
- 10:01 AM Changeset in webkit [209988] by
-
- 2 edits in trunk/Source/WebCore
Move custom files / callback objects into their respective groups.
Rubber-stamped by Simon Fraser.
- WebCore.xcodeproj/project.pbxproj:
- 9:53 AM Changeset in webkit [209987] by
-
- 7 edits2 deletes in trunk/Source/WebCore
[WebIDL] Remove custom binding for the named Image constructor
https://bugs.webkit.org/show_bug.cgi?id=166023
Reviewed by Alex Christensen.
- bindings/js/JSBindingsAllInOne.cpp:
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
Remove JSImageConstructor.
- bindings/js/JSImageConstructor.cpp: Removed.
- bindings/js/JSImageConstructor.h: Removed.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::image): Deleted.
- page/DOMWindow.idl:
Remove custom getter for the constructor.
- html/HTMLImageElement.idl:
Add NamedConstructor annotation.
- 9:37 AM Changeset in webkit [209986] by
-
- 14 edits in trunk/Source/WebCore
Remove RenderObject::requiresForcedStyleRecalcPropagation
https://bugs.webkit.org/show_bug.cgi?id=166021
Reviewed by Andreas Kling.
It is not called. It also makes no sense architecturally.
- html/shadow/mac/ImageControlsButtonElementMac.cpp:
- html/shadow/mac/ImageControlsRootElementMac.cpp:
- rendering/RenderButton.h:
- rendering/RenderFileUploadControl.h:
- rendering/RenderListItem.h:
- rendering/RenderMedia.h:
- rendering/RenderMenuList.h:
- rendering/RenderMeter.h:
- rendering/RenderObject.h:
(WebCore::RenderObject::requiresForcedStyleRecalcPropagation): Deleted.
- rendering/RenderProgress.h:
- rendering/RenderSlider.h:
- rendering/RenderTextControl.h:
- style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
This is the only call site. Combination
update.change == Style::NoChange && parent().styleChange == Style::Force
is impossible ('Force' inherits) so requiresForcedStyleRecalcPropagation doesn't ever even get called.
- 9:31 AM Changeset in webkit [209985] by
-
- 13 edits in branches/safari-603-branch
Merge patch for rdar://problem/29466493.
- 9:11 AM Changeset in webkit [209984] by
-
- 1 copy in branches/safari-603-branch
New Branch.
- 8:14 AM Changeset in webkit [209983] by
-
- 4 edits in trunk/Source/WebCore
[EME] Remove MediaKeySessionType::persistent-usage-record
https://bugs.webkit.org/show_bug.cgi?id=166012
Reviewed by Xabier Rodriguez-Calvar.
Remove the "persistent-usage-record" value from the MediaKeySessionType.
This was removed from the spec as an at-risk feature.
https://github.com/w3c/encrypted-media/issues/353
No non-imported tests need to be updated. This is still present in the
tests imported from the W3C's web-platform-tests repository, but the
tests haven't yet been updated upstream.
- Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::isPersistentType):
- Modules/encryptedmedia/MediaKeySessionType.h:
- Modules/encryptedmedia/MediaKeySessionType.idl:
- 7:41 AM Changeset in webkit [209982] by
-
- 2 edits in trunk/Source/WebCore
[GTK] GLXBadFBConfig error when creating an OpenGL context
https://bugs.webkit.org/show_bug.cgi?id=165200
Reviewed by Carlos Garcia Campos.
glXCreateContextAttribsARB causes a GLXBadFBConfig X error when it's not able to provide the
OpenGL version >= 3.2 we are requesting. Due to this, the app crashes instead of falling back to
the legacy path.
The patch modifies GLX context creation using a XErrorTrapper, so the first time a context is created
we don't crash if OpenGL >= 3.2 is not available.
If the gotten context is not valid, we fall back to whatever version glXCreateContextAttribsARB is
able to provide.
The legacy glXCreateContext is only used if the GLX_ARB_create_context extension is not available.
Covered by existent tests.
- platform/graphics/glx/GLContextGLX.cpp:
(WebCore::tryCreateGLXARBContext):
(WebCore::GLContextGLX::createWindowContext):
(WebCore::GLContextGLX::createPbufferContext):
- 5:02 AM Changeset in webkit [209981] by
-
- 3 edits in trunk/Tools
[GTK] GtkDoc build should be quieter
https://bugs.webkit.org/show_bug.cgi?id=165994
Reviewed by Carlos Garcia Campos.
Make it not print by default.
- gtk/generate-gtkdoc:
(get_generator_for_config):
(generate_doc):
- gtk/gtkdoc.py:
(GTKDoc._run_command):
(GTKDoc._copy_doc_files_to_output_dir):
- 12:19 AM Changeset in webkit [209980] by
-
- 4 edits2 copies in trunk/JSTests
WebAssembly: Make running Wasm tests take less time by reducing some tests' iteration count and by splitting some tests into different files
https://bugs.webkit.org/show_bug.cgi?id=166017
Reviewed by Yusuke Suzuki.
- wasm/function-tests/trap-load-2.js: Added.
(assert):
(wasmFrameCountFromError):
(continuation):
(i.catch):
- wasm/function-tests/trap-load.js:
(assert.continuation): Deleted.
- wasm/function-tests/trap-store-2.js: Added.
(import.Builder.from.string_appeared_here.assert):
(continuation):
(i.catch):
- wasm/function-tests/trap-store.js:
(assert.continuation): Deleted.
(assert): Deleted.
- wasm/js-api/test_memory.js:
(test):
Dec 18, 2016:
- 11:22 PM Changeset in webkit [209979] by
-
- 9 edits2 adds in trunk
WebAssembly: Implement the WebAssembly.compile and WebAssembly.validate
https://bugs.webkit.org/show_bug.cgi?id=165936
Reviewed by Mark Lam.
JSTests:
- wasm/js-api/Module-compile.js: Added.
(async.testPromiseAPI):
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
- wasm/js-api/validate.js: Added.
(assert.truthy.WebAssembly.validate.builder.WebAssembly):
Source/JavaScriptCore:
The APIs are documented here:
- https://github.com/WebAssembly/design/blob/master/JS.md#webassemblycompile
- https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyvalidate
- wasm/JSWebAssembly.cpp:
(JSC::webAssemblyCompileFunc):
(JSC::webAssemblyValidateFunc):
(JSC::JSWebAssembly::finishCreation):
- wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::run):
- wasm/WasmPlan.h:
- wasm/js/JSWebAssemblyHelpers.h:
(JSC::getWasmBufferFromValue):
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::constructJSWebAssemblyModule):
(JSC::callJSWebAssemblyModule):
(JSC::WebAssemblyModuleConstructor::createModule):
- wasm/js/WebAssemblyModuleConstructor.h:
- 10:29 PM Changeset in webkit [209978] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 5:40 PM Changeset in webkit [209977] by
-
- 10 edits in trunk/Source/WebCore
IndexedDB 2.0: Prefetch cursor records in the server.
https://bugs.webkit.org/show_bug.cgi?id=166014
Reviewed by Andy Estes.
No new tests (Covered by existing LayoutTests and PerformanceTests).
This patch implements the followng:
1 - After a backing store cursor completes a fetch in the server, it will schedule the next fetch
even before the client requests one. It will do this up to a limited number of prefetches.
2 - Once a client request to advance the cursor comes in, we'll work our way through prefetched
records instead of reading anything from disk, which might then cause us to continue prefetch.
3 - If any changes to the object store occur, it will throw away all previously fetched records
(There's room for future improvement here)
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::postDatabaseTask):
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRange):
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch):
(WebCore::IDBServer::SQLiteIDBCursor::advance):
- Modules/indexeddb/server/SQLiteIDBCursor.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- 5:14 PM Changeset in webkit [209976] by
-
- 7 edits2 adds in trunk
Changing text direction fires input events with null inputTypes and no data
https://bugs.webkit.org/show_bug.cgi?id=166007
<rdar://problem/29557205>
Reviewed by Sam Weinig.
Source/WebCore:
Adds support for the "formatSetInlineTextDirection" input type, triggered when using the context menu on Mac in
an editable area (for both plain and rich text cases) to change paragraph direction. To do this, we add cases
for EditActionSetWritingDirection in inputTypeNameForEditingAction and inputEventDataForEditingStyleAndAction.
When changing text direction for a plaintext editable element, we have logic in Editor::setBaseWritingDirection
that sets the focused element's dir attribute to the requested value (ltr or rtl). We add similar hooks here to
dispatch input events and handle preventing default.
Test: fast/events/before-input-events-prevent-text-direction.html
- editing/EditCommand.cpp:
(WebCore::inputTypeNameForEditingAction):
Handle the EditActionSetWritingDirection case.
- editing/Editor.cpp:
(WebCore::inputEventDataForEditingStyleAndAction):
(WebCore::Editor::applyParagraphStyle):
Include input event data when dispatching an input event here.
(WebCore::Editor::setBaseWritingDirection):
- testing/Internals.cpp:
(WebCore::Internals::setBaseWritingDirection):
- testing/Internals.h:
- testing/Internals.idl:
Introduce an internal testing support hook for setting base writing direction (the same codepath taken when
using the context menu to change paragraph direction). Currently, using testRunner.execCommand creates and
applies style with an additionalunicode-bidi
attribute, and appears to also be intentionally disabled for
plaintext editable elements.
LayoutTests:
Verifies that changing text direction causes beforeinput and input events with appropriate inputType and data to
be dispatched, and that preventing this beforeinput event causes no change in text direction.
- fast/events/before-input-events-prevent-text-direction-expected.txt: Added.
- fast/events/before-input-events-prevent-text-direction.html: Added.
- 1:09 PM Changeset in webkit [209975] by
-
- 12 edits in trunk
Expose a way for MiniBrowser to simulate header and footer banners
https://bugs.webkit.org/show_bug.cgi?id=166005
Reviewed by Wenson Hsieh.
Source/WebKit2:
Expose testing SPI that allows a client to simulate the presence of header
and footer banners. These are simply plumbed through to set FrameView's
m_headerHeight and m_footerHeight.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setHeaderBannerHeightForTesting:]):
(-[WKWebView _setFooterBannerHeightForTesting:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHeaderBannerHeightForTesting):
(WebKit::WebPageProxy::setFooterBannerHeightForTesting):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setHeaderBannerHeightForTesting):
(WebKit::WebPage::setFooterBannerHeightForTesting):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Add a MiniBrowser menu item and setting to toggle adding space for header and footer
banners. This only works in WebKit2.
We need to reset these on each navigation, since newly created FrameViews
don't re-fetch the header and footer height stored on Page.
Also fix the signature of webView:didFinishNavigation: to follow API changes,
as well as fixing webViewWebContentProcessDidTerminate:
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleReserveSpaceForBanners:]):
(-[SettingsController isSpaceReservedForBanners]):
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):
(-[WK2BrowserWindowController webView:didFinishNavigation:]):
(-[WK2BrowserWindowController webViewWebContentProcessDidTerminate:]):
(-[WK2BrowserWindowController webView:didFinishLoadingNavigation:]): Deleted.
(-[WK2BrowserWindowController _webViewWebProcessDidCrash:]): Deleted.
- 11:04 AM Changeset in webkit [209974] by
-
- 4 edits in trunk/Source/JavaScriptCore
Rename finallyActionRegister to completionTypeRegister and only store int JSValues in it.
https://bugs.webkit.org/show_bug.cgi?id=165979
Reviewed by Saam Barati.
This patch makes it so that we only store int JSValues in the finallyActionRegister
thereby making type prediction on this register more successful for JITs. In so
doing, we are able to get some additional benefits:
- Renamed the following: FinallyRegistersScope => CompletionRecordScope finallyActionRegister => completionTypeRegister finallyReturnValueRegister => completionValueRegister
These new names are more in line with the ES spec, which describes these
values as the completion record and its type and value properties.
https://tc39.github.io/ecma262/#sec-completion-record-specification-type
- We now think of the Break and Continue jumpIDs as encodings of CompletionType (in our implementation of completion type). As a result, we only need one of each of the emitter methods for getting, setting, and compare-and-jump on the completion type. The code using these methods also reads much clearer now.
- Finally blocks' op_catch should now always pop the caught Exception object into the completionValueRegister instead of the completionTypeRegister (formerly finallyActionRegister).
Also removed the restoreScopeRegister() call in the IteratorClose catch block
because that is an implementation specific synthesized catch block, and we
can guarantee that it never needs to resolve any symbols from the scope. Hence,
there is no need to restore the scope register.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::allocateCompletionRecordRegisters):
(JSC::BytecodeGenerator::releaseCompletionRecordRegisters):
(JSC::BytecodeGenerator::emitJumpIfCompletionType):
(JSC::BytecodeGenerator::allocateFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::releaseFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::emitCompareFinallyActionAndJumpIf): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::bytecodeOffsetToJumpID):
(JSC::FinallyJump::FinallyJump):
(JSC::FinallyContext::registerJump):
(JSC::BytecodeGenerator::CompletionRecordScope::CompletionRecordScope):
(JSC::BytecodeGenerator::CompletionRecordScope::~CompletionRecordScope):
(JSC::BytecodeGenerator::completionTypeRegister):
(JSC::BytecodeGenerator::completionValueRegister):
(JSC::BytecodeGenerator::emitSetCompletionType):
(JSC::BytecodeGenerator::emitSetCompletionValue):
(JSC::BytecodeGenerator::FinallyRegistersScope::FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::FinallyRegistersScope::~FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::finallyActionRegister): Deleted.
(JSC::BytecodeGenerator::finallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToJumpID): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotJump): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotThrowCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfCompletionTypeIsThrow): Deleted.
(JSC::BytecodeGenerator::bytecodeOffsetToJumpID): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):
- 9:26 AM Changeset in webkit [209973] by
-
- 6 edits in trunk/LayoutTests
Rebaseline these tests after r209967, since they are now affected by status bar height.
- fast/viewport/ios/ipad/width-is-device-width-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt:
- 12:11 AM Changeset in webkit [209972] by
-
- 8 edits in trunk/Tools
Fix iOS test results after r209967.
Subtracting out the status bar height was erroneously happening for all tests,
not just for flexible viewport tests.
Fix by plumbing WebViewSizingMode through resizeTo() and setWindowFrame().
- WebKitTestRunner/PlatformWebView.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
- WebKitTestRunner/efl/PlatformWebViewEfl.cpp:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformConfigureViewForTest):
- WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- 12:11 AM Changeset in webkit [209971] by
-
- 3 edits in trunk/Source/WebCore
Build fix: linking WebCore was failing: you can't export inline functions.
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType):
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue):
- css/DeprecatedCSSOMPrimitiveValue.h:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue): Deleted.