Timeline
Jan 31, 2020:
- 10:18 PM Changeset in webkit [255542] by
-
- 19 edits in trunk/Source/JavaScriptCore
[JSC] Hold StructureID instead of Structure* in PolyProtoAccessChain and DFG::CommonData
https://bugs.webkit.org/show_bug.cgi?id=207086
Reviewed by Mark Lam.
PolyProtoAccessChain and DFG::CommonData are kept alive so long as associated AccessCase / DFG/FTL CodeBlock
is alive. They hold Vector<Structure*> / Vector<WriteBarrier<Structure*>>, but access frequency is low. And
We should hold Vector<StructureID> instead to cut 50% of the size.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::commit):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::visitWeak const):
(JSC::AccessCase::propagateTransitions const):
(JSC::AccessCase::generateWithGuard):
- bytecode/AccessCase.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::stronglyVisitWeakReferences):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InByIdStatus.cpp:
(JSC::InByIdStatus::computeFor):
(JSC::InByIdStatus::computeForStubInfo):
(JSC::InByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InByIdStatus.h:
- bytecode/InstanceOfStatus.cpp:
(JSC::InstanceOfStatus::computeFor):
(JSC::InstanceOfStatus::computeForStubInfo):
- bytecode/InstanceOfStatus.h:
- bytecode/PolyProtoAccessChain.cpp:
(JSC::PolyProtoAccessChain::create):
(JSC::PolyProtoAccessChain::needImpurePropertyWatchpoint const):
(JSC::PolyProtoAccessChain::dump const):
- bytecode/PolyProtoAccessChain.h:
(JSC::PolyProtoAccessChain::chain const):
(JSC::PolyProtoAccessChain::forEach const):
(JSC::PolyProtoAccessChain::slotBaseStructure const):
(JSC::PolyProtoAccessChain:: const): Deleted.
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeForStubInfo):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::summary const):
(JSC::StructureStubInfo::summary):
- bytecode/StructureStubInfo.h:
- dfg/DFGCommonData.h:
- dfg/DFGDesiredWeakReferences.cpp:
(JSC::DFG::DesiredWeakReferences::reallyAdd):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
- jit/Repatch.cpp:
(JSC::tryCacheGetBy):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):
- 9:22 PM Changeset in webkit [255541] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC] ShrinkToFit some vectors kept by JIT data structures
https://bugs.webkit.org/show_bug.cgi?id=207085
Reviewed by Mark Lam.
- We are allocating RareCaseProfile by using SegmentedVector since JIT code is directly accessing to RareCaseProfile*. But when creating RareCaseProfile, we can know how many RareCaseProfiles should we create: RareCaseProfile is created per slow paths of Baseline JIT bytecode. Since we already scan bytecode for the main paths, we can count it and use this number when creating RareCaseProfile.
- Vectors held by PolymorphicAccess and PolymorphicCallStubRoutine should be kept small by calling shrinkToFit.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setRareCaseProfiles):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::addRareCaseProfile): Deleted.
- bytecode/CodeBlock.h:
- bytecode/PolyProtoAccessChain.cpp:
(JSC::PolyProtoAccessChain::create):
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
- bytecode/ValueProfile.h:
(JSC::RareCaseProfile::RareCaseProfile):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/PolymorphicCallStubRoutine.cpp:
(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):
- 7:36 PM Changeset in webkit [255540] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC] DFG::CommonData::shrinkToFit called before DFG::Plan::reallyAdd is called
https://bugs.webkit.org/show_bug.cgi?id=207083
Reviewed by Mark Lam.
We are calling DFG::CommonData::shrinkToFit, but calling this too early: we execute
DFG::Plan::reallyAdd(DFG::CommonData*) after that, and this adds many entries to
DFG::CommonData*. We should call DFG::CommonData::shrinkToFit after calling DFG::Plan::reallyAdd.
To implement it, we make DFG::JITCode::shrinkToFit virtual function in JSC::JITCode. Then, we
can also implement FTL::JITCode::shrinkToFit which was previously not implemented.
- dfg/DFGJITCode.cpp:
(JSC::DFG::JITCode::shrinkToFit):
- dfg/DFGJITCode.h:
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
- ftl/FTLJITCode.cpp:
(JSC::FTL::JITCode::shrinkToFit):
- ftl/FTLJITCode.h:
- jit/JITCode.cpp:
(JSC::JITCode::shrinkToFit):
- jit/JITCode.h:
- 6:09 PM Changeset in webkit [255539] by
-
- 2 edits in trunk/Source/JavaScriptCore
GetButterfly should check if the input value is an object in safe to execute
https://bugs.webkit.org/show_bug.cgi?id=207082
Reviewed by Mark Lam.
We can only hoist GetButterfly when we know the incoming value is an object.
We might want to reconsider making GetButterfly use ObjectUse as its edge
kind, but that's out of the scope of this patch. Currently, we use CellUse
for GetButterfly node's child1.
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- 5:47 PM Changeset in webkit [255538] by
-
- 2 edits in trunk/Source/JavaScriptCore
safe to execute should return false when we know code won't be moved
https://bugs.webkit.org/show_bug.cgi?id=207074
Reviewed by Yusuke Suzuki.
We use safeToExecute to determine inside LICM whether it's safe to execute
a node somewhere else in the program. We were returning true for nodes
we knew would never be moved, because they were effectful. Things like Call
and GetById. This patch makes those nodes return false now, since we want
to make it easier to audit the nodes that return true. This makes that audit
easier, since it gets rid of the obvious things that will never be hoisted.
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- 5:22 PM Changeset in webkit [255537] by
-
- 1 copy in tags/Safari-610.1.1.2.1
Tag Safari-610.1.1.2.1.
- 5:13 PM Changeset in webkit [255536] by
-
- 8 edits in branches/safari-610.1.1.2-branch/Source
Versioning.
- 5:08 PM Changeset in webkit [255535] by
-
- 1 copy in branches/safari-610.1.1.2-branch
New branch.
- 4:50 PM Changeset in webkit [255534] by
-
- 2 edits in trunk/LayoutTests
Flaky Test: imported/w3c/web-platform-tests/websockets/cookies/007.html
https://bugs.webkit.org/show_bug.cgi?id=206484
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac/TestExpectations:
- 4:47 PM Changeset in webkit [255533] by
-
- 5 edits in trunk
REGRESSION(r252185): NetworkSessionCocoa cancels downloads that receive authentication challenges
https://bugs.webkit.org/show_bug.cgi?id=206984
rdar://problem/58999654
Reviewed by Brady Eidson.
Source/WebKit:
r252185 changed the early return in WKNetworkSessionDelegate's -...task:didReceiveChallenge:... method
from "cancel the task and return early if self has no _session" to "cancel the task and return early
if we can't determine the network session for the given data task". When this method is called for
an NSURLSessionDownloadTask, this early return is hit because there is no NetworkDataTaskCocoa
for an active download. As a result, the download is canceled when it might have otherwise been able
to proceed.
Fix this by adding a code path to fetch the NetworkSession associated with the Download when an
NSURLSessionDownloadTask receives an authentication challenge. This ensures we can actually handle
the challenge appropriately and not just cancel the task.
- NetworkProcess/Downloads/Download.h:
(WebKit::Download::sessionID const):
Expose the session ID so we can use it to look up the NetworkSession for a Download.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
Remove an unnecessary redeclaration of networkDataTask, and also an unneeded assertion that
networkDataTask != nullptr. Even if this is the case, the code that eventually handles this
task will null check it and handle the challenge as a websocket task or download task
based on the taskIdentifier.
Tools:
Add an API test for a resumed download that receives an authentication challenge. The download
delegate should be asked to handle the challenge, and the download should be able to finish.
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(-[DownloadCancelingDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]):
(-[DownloadCancelingDelegate _download:didReceiveData:]):
(-[DownloadCancelingDelegate _downloadDidCancel:]):
(-[AuthenticationChallengeHandlingDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]):
(-[AuthenticationChallengeHandlingDelegate _downloadDidFinish:]):
(TEST):
- 4:44 PM Changeset in webkit [255532] by
-
- 33 edits3 adds in trunk
Add support for specifying background colors when setting marked text
https://bugs.webkit.org/show_bug.cgi?id=207065
<rdar://problem/57876140>
Reviewed by Tim Horton.
Source/WebCore:
Add support for rendering custom highlights (background colors) behind marked text in WebCore. To do this, we
plumb a Vector of CompositionHighlights alongside the Vector of CompositionUnderlines to Editor. At paint time,
we then consult this highlight data to determine which ranges of text in the composition should paint using
custom background colors.
Note that in the future, we should consider refactoring both composition underlines and highlights to use the
MarkedText mechanism for decorating ranges of text instead.
Test: editing/input/composition-highlights.html
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- editing/CompositionHighlight.h: Added.
(WebCore::CompositionHighlight::CompositionHighlight):
(WebCore::CompositionHighlight::encode const):
(WebCore::CompositionHighlight::decode):
Add CompositionHighlight, which represents a range in the composition that should be highlighted with a given
background color.
- editing/Editor.cpp:
(WebCore::Editor::clear):
(WebCore::Editor::setComposition):
Add logic for clearing and updating m_customCompositionHighlights.
- editing/Editor.h:
(WebCore::Editor::compositionUsesCustomHighlights const):
(WebCore::Editor::customCompositionHighlights const):
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCompositionBackground):
If custom composition highlights are given, use those when painting the composition background; otherwise,
default to painting the entire composition range usingColor::compositionFill.
Source/WebCore/PAL:
Add an SPI soft-linking declaration for NSMarkedClauseSegmentAttributeName.
- pal/spi/cocoa/NSAttributedStringSPI.h:
Source/WebKit:
Implement -setAttributedMarkedText:selectedRange: on WKContentView, and have it extract highlight color
information from the given attributed string. Plumb this through to the web process by serializing and
deserializingWebCore::CompositionHighlights.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setMarkedText):
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(compositionHighlights):
For each marked text clause, grab the specified background color (defaulting to Color::compositionFill) and use
it to create a list of CompositionHighlights.
(-[WKContentView setAttributedMarkedText:selectedRange:]):
(-[WKContentView setMarkedText:selectedRange:]):
(-[WKContentView _setMarkedText:highlights:selectedRange:]):
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetComposition):
Add testing support for specifying highlight ranges when setting marked text.
- WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
- WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp:
(WebKit::WebEditorClient::didDispatchInputMethodKeydown):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setCompositionForTesting):
(WebKit::WebPage::setCompositionAsync):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
Adjust some call sites of Editor::setComposition().
- WebView/WebFrame.mm:
(-[WebFrame setMarkedText:selectedRange:]):
(-[WebFrame setMarkedText:forCandidates:]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView setMarkedText:selectedRange:]):
Source/WebKitLegacy/win:
Adjust some call sites of Editor::setComposition().
- WebView.cpp:
(WebView::onIMEComposition):
(WebView::setCompositionForTesting):
Tools:
Add support in WebKitTestRunner for specifying a list of highlight ranges when setting marked text. This comes
in the form of an additional argument to TextInputController::setMarkedText, which contains an array of objects,
each describing one range (in the composition) to highlight.
- DumpRenderTree/ios/TextInputControllerIOS.m:
(+[TextInputController isSelectorExcludedFromWebScript:]):
(+[TextInputController webScriptNameForSelector:]):
(-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:highlights:]):
(-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:]): Deleted.
- DumpRenderTree/mac/TextInputControllerMac.m:
(+[TextInputController isSelectorExcludedFromWebScript:]):
(+[TextInputController webScriptNameForSelector:]):
(-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:highlights:]):
(-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:]): Deleted.
- WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl:
- WebKitTestRunner/InjectedBundle/TextInputController.cpp:
(WTR::arrayLength):
(WTR::createCompositionHighlightData):
Add logic to convert a given JSObject containing the composition highlight information into a WKArrayRef, which
is then passed into WebKit via WKBundlePageSetComposition.
(WTR::TextInputController::setMarkedText):
- WebKitTestRunner/InjectedBundle/TextInputController.h:
LayoutTests:
Add a test to check that highlighting different parts of a composition range results in the same behavior as
applying background colors using CSS. This test is currently only supported in WebKit2.
- TestExpectations:
- editing/input/composition-highlights-expected.html: Added.
- editing/input/composition-highlights.html: Added.
- platform/wk2/TestExpectations:
- 4:23 PM Changeset in webkit [255531] by
-
- 6 edits in trunk
[WebGL] Revert logging added to investigate 205757
https://bugs.webkit.org/show_bug.cgi?id=207076
Unreviewed.
Revert https://trac.webkit.org/changeset/255468.
Source/WebCore:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::createTexture):
(WebCore::WebGLRenderingContextBase::getError):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::texImage2D):
- platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
(WebCore::GraphicsContextGLOpenGL::texImage2D):
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::bindTexture):
(WebCore::GraphicsContextGLOpenGL::getError):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::createTexture):
LayoutTests:
- 4:14 PM Changeset in webkit [255530] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/textures-sample-level.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207078
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac-wk2/TestExpectations:
- 4:11 PM Changeset in webkit [255529] by
-
- 2 edits in trunk/JSTests
Unreviewed. Don't dump disassembly in test.
- stress/get-getter-setter-by-offset-not-always-safe-to-execute.js:
- 4:06 PM Changeset in webkit [255528] by
-
- 3 edits1 add in trunk
GetGetterSetterByOffset and GetGetter/GetSetter are not always safe to execute
https://bugs.webkit.org/show_bug.cgi?id=206805
<rdar://problem/58898161>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/get-getter-setter-by-offset-not-always-safe-to-execute.js: Added.
Source/JavaScriptCore:
This patch fixes two bugs. The first is GetGetterSetterByOffset. Previously,
we were just checking that we could load the value safely. However, because
GetGetterSetterByOffset returns a GetterSetter object, we can only safely
move this node into a context where it's guaranteed that the offset loaded
will return a GetterSetter.
The second fix is GetGetter/GetSetter were both always marked as safe to execute.
However, they're only safe to execute when the incoming value to load from
is a GetterSetter object.
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- 3:56 PM Changeset in webkit [255527] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r255522.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Switched to a C-style cast.
- 3:31 PM Changeset in webkit [255526] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206940
Also is happening on release so I updated the expectation to reflect that.
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac-wk2/TestExpectations:
- 3:25 PM Changeset in webkit [255525] by
-
- 2 edits in trunk/LayoutTests
[ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207071
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/ipad/TestExpectations:
- 3:24 PM Changeset in webkit [255524] by
-
- 8 edits in branches/safari-609.1.15.3-iOS-branch/Source
Versioning.
- 3:23 PM Changeset in webkit [255523] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] fast/images/animated-gif-restored-from-bfcache.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206950
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac-wk1/TestExpectations:
- 3:16 PM Changeset in webkit [255522] by
-
- 22 edits in trunk
Add KVO SPI WKWebView._negotiatedLegacyTLS
https://bugs.webkit.org/show_bug.cgi?id=207067
Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-31
Reviewed by Andy Estes.
Source/WebKit:
Covered by API tests.
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::negotiatedLegacyTLS const):
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTaskClient::negotiatedLegacyTLS const):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::negotiatedLegacyTLS const):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::negotiatedLegacyTLS const):
- Shared/Authentication/AuthenticationManager.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _negotiatedLegacyTLS]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::willChangeNegotiatedLegacyTLS):
(WebKit::NavigationState::didChangeNegotiatedLegacyTLS):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::negotiatedLegacyTLS):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::commitChanges):
(WebKit::PageLoadState::hasNegotiatedLegacyTLS const):
(WebKit::PageLoadState::negotiatedLegacyTLS):
(WebKit::PageLoadState::didCommitLoad):
- UIProcess/PageLoadState.h:
(WebKit::PageLoadState::Observer::willChangeNegotiatedLegacyTLS):
(WebKit::PageLoadState::Observer::didChangeNegotiatedLegacyTLS):
(WebKit::PageLoadState::Data::Data): Deleted.
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(-[TLSObserver observeValueForKeyPath:ofObject:change:context:]):
(-[TLSObserver waitUntilNegotiatedLegacyTLSChanged]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/config.h:
- 1:45 PM Changeset in webkit [255521] by
-
- 1 copy in tags/Safari-609.1.16
Tag Safari-609.1.16.
- 1:25 PM Changeset in webkit [255520] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] editing/execCommand/insert-nested-lists.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207066
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac-wk1/TestExpectations:
- 1:05 PM Changeset in webkit [255519] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed macOS build fix after r255518
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleGestureEvent):
- 12:58 PM Changeset in webkit [255518] by
-
- 8 edits in trunk
[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=206934
<rdar://problem/58991581>
Source/WebKit:
Reviewed by Brady Eidson.
Flakiness would happen when the service worker would take too long to launch and the responsiveness timer would fire and
report the process as unresponsive while still launching or very shortly after. When a service worker is reported as
unresponsive, we would kill it.
To address the issue, several changes were made:
- Responsiveness checks are now disabled for slow builds (Debug, ASAN, GuardMalloc)
- We only start the ResponsivenessTimer after the process has finished launching since the responsiveness check relies on IPC to the process and we cannot send the IPC until after the process has launched.
- UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
(WebKit::DrawingAreaProxyCoordinatedGraphics::sendUpdateBackingStoreState):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::launchProcessWithItem):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPageProxy::stopLoading):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::handleGestureEvent):
(WebKit::WebPageProxy::handlePreventableTouchEvent):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
(WebKit::WebPageProxy::runOpenPanel):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::mayBecomeUnresponsive):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::startResponsivenessTimer):
(WebKit::WebProcessProxy::isResponsive):
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::responsivenessTimer):
LayoutTests:
Unskip test which should no longer be flaky.
- platform/ios-wk2/TestExpectations:
- 12:52 PM Changeset in webkit [255517] by
-
- 2 edits in trunk/Source/WebKit
Add page configuration additions to APIPageConfiguration
https://bugs.webkit.org/show_bug.cgi?id=206090
<rdar://problem/58489766>
Reviewed by Andy Estes.
- UIProcess/API/APIPageConfiguration.cpp:
- 11:59 AM Changeset in webkit [255516] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] imported/w3c/web-platform-tests/media-source/mediasource-replay.html flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207062
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/mac/TestExpectations:
- 11:55 AM Changeset in webkit [255515] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207063
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac-wk2/TestExpectations:
- 11:41 AM Changeset in webkit [255514] by
-
- 2 edits in trunk/LayoutTests
[ Mojave wk2 Release ] imported/w3c/web-platform-tests/html/webappapis/timers/type-long-setinterval.html flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207060
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/mac-wk2/TestExpectations:
- 11:38 AM Changeset in webkit [255513] by
-
- 2 edits in trunk/Tools
[ews] Display flaky test names in build summary when ReRunWebKitTests passes
https://bugs.webkit.org/show_bug.cgi?id=207050
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(ReRunWebKitTests.evaluateCommand):
- 11:26 AM Changeset in webkit [255512] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207059
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac-wk1/TestExpectations:
- 11:13 AM Changeset in webkit [255511] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS ] imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207057
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 11:01 AM Changeset in webkit [255510] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] animations/animation-welcome-safari.html is sometimes failing
https://bugs.webkit.org/show_bug.cgi?id=206604
Unreviewed test gardening.
Updated test expectations to align with existing bug.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/mac/TestExpectations:
- 10:36 AM Changeset in webkit [255509] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 release ] media/track/texttrackcue/texttrackcue-displaycue.html
https://bugs.webkit.org/show_bug.cgi?id=207055
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/ios-simulator-wk2/TestExpectations:
- 10:35 AM Changeset in webkit [255508] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] inspector/page/setBootstrapScript-sub-frame.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207053
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac/TestExpectations:
- 10:33 AM Changeset in webkit [255507] by
-
- 5 edits in trunk
REGRESSION: [ iPadOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html always fails
<https://webkit.org/b/206759>
<rdar://problem/58872607>
Reviewed by Brent Fulgham.
Source/WebKit:
Test: imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html
- Platform/spi/ios/UIKitSPI.h:
(-[UIViewController isPerformingModalTransition]): Add SPI
declaration.
Tools:
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
(WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
- Add declaration.
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
- Implement by waiting for -[UIViewController isPerformingModalTransition] to return NO while spinning the runloop.
(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
- Call waitForModalTransitionToFinish() to fix the test.
- 10:18 AM WebKitGTK/2.26.x edited by
- (diff)
- 10:05 AM Changeset in webkit [255506] by
-
- 2 edits in trunk/Tools
[ews] add build step to set custom build summary
https://bugs.webkit.org/show_bug.cgi?id=207026
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(SetBuildSummary.doStepIf): Run this step only if build_summary property is set.
(SetBuildSummary.hideStepIf): Hide this step if it is not executed.
(SetBuildSummary.start):
- 9:59 AM Changeset in webkit [255505] by
-
- 9 edits in trunk
Unmatched ] or } brackets should be syntax errors in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=207023
Reviewed by Darin Adler.
JSTests:
- test262/expectations.yaml: Mark 2 test cases as passing.
Source/JavaScriptCore:
This change adds SyntaxError for Unicode patterns, aligning JSC with
V8 and SpiderMonkey.
Grammar: https://tc39.es/ecma262/#prod-annexB-Term
(/u flag precludes the use of ExtendedAtom and thus ExtendedPatternCharacter)
- yarr/YarrErrorCode.cpp:
(JSC::Yarr::errorMessage):
(JSC::Yarr::errorToThrow):
- yarr/YarrErrorCode.h:
- yarr/YarrParser.h:
(JSC::Yarr::Parser::parseTokens):
LayoutTests:
- js/regexp-unicode-expected.txt:
- js/script-tests/regexp-unicode.js:
- 9:58 AM Changeset in webkit [255504] by
-
- 3 edits2 adds in trunk
[Web Animations] [WK1] REGRESSION: opacity doesn't animate
https://bugs.webkit.org/show_bug.cgi?id=207044
<rdar://problem/59061225>
Reviewed by Simon Fraser.
Source/WebCore:
Test: webanimations/opacity-animation.html
We failed to animate opacity in WK1 because we made the assumption that just because an animation targets only accelerated properties it would be accelerated
and wouldn't need to be updated as it runs in WebAnimation::timeToNextTick(). This is incorrect, an animation may fail to start or may fail to get a composited
layer, the latter being the case on WK1 because usesCompositing() is false in RenderLayerCompositor::requiresCompositingForAnimation().
We now check that an animation is both only animating accelerated properties and running accelerated to determine that an animation won't need to be updated
until it completes.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::timeToNextTick const):
LayoutTests:
- webanimations/opacity-animation-expected.html: Added.
- webanimations/opacity-animation.html: Added.
- 9:54 AM Changeset in webkit [255503] by
-
- 3 edits in trunk/Source/WebKit
REGRESSION (r251511): [iOS] HDR Playback broken
https://bugs.webkit.org/show_bug.cgi?id=207052
<rdar://problem/58975614>
Reviewed by Maciej Stachowiak.
I missed an XPC service in Bug 203318 when I stopped importing the 'common.sb' sandbox. This broke some
aspects of HDR playback for certain clients.
This patch returns the XPC service, and unblocks access to a network preference file that AVFoundation
needs to read to support some media playback features.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 9:31 AM Changeset in webkit [255502] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html is a Flaky Failure on mac
https://bugs.webkit.org/show_bug.cgi?id=201481
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:24 AM Changeset in webkit [255501] by
-
- 5 edits2 adds in trunk
Asynchronous scrolling of overflow element can enter a recursive loop
https://bugs.webkit.org/show_bug.cgi?id=206884
Reviewed by Frédéric Wang.
Source/WebCore:
After implementing RenderLayer::requestScrollPositionUpdate, there's a recursive loop
while performing asynchronous programmatic scrolling for overflow elements. In order to break
the loop call notifyScrollPositionChanged in updateScrollPositionAfterAsyncScroll instead.
Test: fast/scrolling/ios/programmatic-scroll-element-crash.html
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::requestScrollPositionUpdate):
(WebCore::RenderLayer::scrollToOffset):
- rendering/RenderLayer.h:
LayoutTests:
- fast/scrolling/ios/programmatic-scroll-element-crash-expected.txt: Added.
- fast/scrolling/ios/programmatic-scroll-element-crash.html: Added.
- 9:12 AM Changeset in webkit [255500] by
-
- 3 edits in trunk/Tools
results.webkit.org: Handle modified firewall rules
https://bugs.webkit.org/show_bug.cgi?id=207047
Reviewed by Aakash Jain.
- Scripts/webkitpy/results/upload.py:
(Upload.upload_archive): Return true for 403 and 413 errors, but print a message
indicating the upload failed.
- Scripts/webkitpy/results/upload_unittest.py:
(UploadTest.test_archive_upload):
- 9:07 AM Changeset in webkit [255499] by
-
- 6 edits in trunk/Source/WebCore
REGRESSION (r240250): Pages using smoothscroll.js can't be scrolled with trackpad
https://bugs.webkit.org/show_bug.cgi?id=207040
<rdar://problem/52712513>
Reviewed by Simon Fraser.
Add a quirk that makes the wheel event listener used by smoothscroll.js passive so it can't prevent scrolling.
This uses the same logic as the Chromium intervention in
https://chromium.googlesource.com/chromium/src/+/b6b13c9cfe64d52a4168d9d8d1ad9bb8f0b46a2a%5E%21/
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::functionName const):
- bindings/js/JSEventListener.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
- page/Quirks.cpp:
(WebCore::Quirks::shouldMakeEventListenerPassive const):
Also factor the existing code for making some touch event listeners passive here.
- page/Quirks.h:
- 8:38 AM Changeset in webkit [255498] by
-
- 2 edits in trunk/Source/WebKit
Compilation broken without service workers
https://bugs.webkit.org/show_bug.cgi?id=207037
Patch by Alejandro G. Castro <alex@igalia.com> on 2020-01-31
Reviewed by Chris Dumez.
Protect the use of m_swServers, check if the SERVICE_WORKER is
enabled.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::lowMemoryHandler):
- 8:32 AM Changeset in webkit [255497] by
-
- 2 edits in trunk/LayoutTests
[ macOSwk1 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-currentTime.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207046
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-31
- platform/mac-wk1/TestExpectations:
- 8:07 AM Changeset in webkit [255496] by
-
- 3 edits in trunk/Source/WebKit
Remove unused WKProcessPool downloads SPI
https://bugs.webkit.org/show_bug.cgi?id=207029
rdar://problem/59052066
Reviewed by Anders Carlsson.
Remove two unused SPI for starting/resuming downloads from a process pool. These methods were
deprecated in favor of variants that also require a WKWebsiteDataStore, and all clients of these
methods have switched to the new versions.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _downloadURLRequest:originatingWebView:]): Deleted.
(-[WKProcessPool _resumeDownloadFromData:path:originatingWebView:]): Deleted.
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- 7:44 AM Changeset in webkit [255495] by
-
- 5 edits in trunk/Source/WebCore
Media controls of the video player on nfl.com are not visible in fullscreen mode (iPad only)
https://bugs.webkit.org/show_bug.cgi?id=207020
Reviewed by Eric Carlson.
Add a quirk to disable the element fullscreen API support for nfl.com on iPads.
- dom/DocumentFullscreen.idl:
- dom/Element.idl:
- page/Quirks.cpp:
(WebCore::Quirks::shouldDisableElementFullscreenQuirk const):
- page/Quirks.h:
- 7:35 AM Changeset in webkit [255494] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
[WK1] hiddenPageCSSAnimationSuspensionEnabled should be enabled by default for Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=207042
<rdar://problem/58934778>
Reviewed by Zalan Bujtas.
While HiddenPageCSSAnimationSuspensionEnabled is specified in WebPreferences.yaml to default to DEFAULT_HIDDEN_PAGE_CSS_ANIMATION_SUSPENSION_ENABLED,
which is defined to be true on Cocoa platforms in WebPreferencesDefaultValues.h, it is hard-coded to @NO in WK1 although clearly the intent is for
this preference to be enabled. So we switch that default value in WK1 as well.
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
- 6:42 AM Changeset in webkit [255493] by
-
- 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit
Merge r249802 - [GTK] Allow CacheStore::destroyEngine to destroy default engine for soup.
https://bugs.webkit.org/show_bug.cgi?id=201690
Reviewed by Carlos Garcia Campos.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::destroyEngine): As we do for
NetworkProcess::destroySession, also allow destroying the engine
for the default session for the same reason.
- 6:40 AM Changeset in webkit [255492] by
-
- 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json
Unreviewed. Updating my info and re-activate commiter status.
- Scripts/webkitpy/common/config/contributors.json:
- 6:31 AM Changeset in webkit [255491] by
-
- 15 edits in trunk
[CMake] Add _PRIVATE_LIBRARIES to framework
https://bugs.webkit.org/show_bug.cgi?id=207004
Reviewed by Konstantin Tokarev.
.:
Use _PRIVATE_LIBRARIES to when creating a WebKit target to specify privately linked
libraries. This fits with the current conventions in WebKit for CMake libraries and
prevents appending to _LIBRARIES with a visibility modifier which likely has
unintended consequences.
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
Move uses of PRIVATE within _LIBRARIES to _PRIVATE_LIBRARIES. Any _LIBRARIES appended
afterwards will have that visibility set erroneously.
- PlatformFTW.cmake:
Source/WebKit:
Move uses of PRIVATE within _LIBRARIES to _PRIVATE_LIBRARIES. Any _LIBRARIES appended
afterwards will have that visibility set erroneously.
- CMakeLists.txt:
- PlatformFTW.cmake:
- PlatformGTK.cmake:
- PlatformWin.cmake:
Source/WebKitLegacy:
Move uses of PRIVATE within _LIBRARIES to _PRIVATE_LIBRARIES. Any _LIBRARIES appended
afterwards will have that visibility set erroneously.
- CMakeLists.txt:
- PlatformFTW.cmake:
- PlatformWin.cmake:
Source/WTF:
Move uses of PRIVATE within _LIBRARIES to _PRIVATE_LIBRARIES. Any _LIBRARIES appended
afterwards will have that visibility set erroneously.
- wtf/PlatformFTW.cmake:
- 3:15 AM Changeset in webkit [255490] by
-
- 6 edits in trunk/Source/WebCore
Regression(r255359): imported/mozilla/svg/svg-integration/clipPath-html-06.xhtml is failing consistently on windows
https://bugs.webkit.org/show_bug.cgi?id=206991
<rdar://problem/59030252>
Reviewed by Antoine Quint.
The previous approach may have still allowed RenderStyles computed with non-current FontCascade in
matched properties caches (because some non-font properties were resolved based on obsolete font information).
This patch takes a more robust approach by simply preventing caching of styles with non-current font.
- dom/Document.h:
(WebCore::Document::fontSelector const):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::isCurrent const):
- platform/graphics/FontCascade.h:
- style/MatchedDeclarationsCache.cpp:
(WebCore::Style::MatchedDeclarationsCache::isCacheable):
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::updateFont):
- 2:20 AM Changeset in webkit [255489] by
-
- 2 edits in trunk/Source/WebCore
[Web Animations] DocumentTimeline shouldn't suspend itself if hiddenPageCSSAnimationSuspensionEnabled is disabled
https://bugs.webkit.org/show_bug.cgi?id=207014
<rdar://problem/58815952>
Reviewed by Antti Koivisto.
We suspend a timeline upon consutrction if we know that the page is not visible because, unlike CSSAnimationController, the DocumentTimeline is not guaranteed
to be created by the time the Page sets the initial visibility state. This is because DocumentTimeline is created as needed when there are CSS Animations or CSS
Transitions created for the page, or if the content uses any of the Web Animations APIs.
However, the Page::setIsVisibleInternal() function that would call DocumentTimeline::resumeAnimations() at a later time checks whether the hiddenPageCSSAnimationSuspensionEnabled
setting is enabled. So we must respect that setting also when suspending animations in the first place or we risk ending up in a state where we suspend animations
because the page is not visible upon timeline creation, but never resuming animations later due to the hiddenPageCSSAnimationSuspensionEnabled setting being false.
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::DocumentTimeline):
- 1:54 AM Changeset in webkit [255488] by
-
- 6 edits in trunk/Source/WebKit
[WPE] Touch-based scrolling roundtrips through the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=206922
Reviewed by Adrian Perez de Castro.
Short-cut the touch events through the ScrollGestureCotroller while it
is actively handling the processed touch events, avoiding roundtrip
through the WebProcess. This effectively means that when the scroll
gesture is in action, any touch events that would affect that gesture
are piped into the controller, producing a corresponding axis event
or ending the gesture.
The ScrollGestureCotroller ownership is moved into the WKWPE::View class
in order to make accessing into that object easier from where the touch
events are handled.
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::doneWithTouchEvent):
- UIProcess/API/wpe/PageClientImpl.h:
- UIProcess/API/wpe/ScrollGestureController.h:
(WebKit::ScrollGestureController::isHandling const):
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::View):
(WKWPE::m_backend):
- UIProcess/API/wpe/WPEView.h:
(WKWPE::View::scrollGestureController const):
- 1:07 AM Changeset in webkit [255487] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION: [iOS release] http/tests/security/window-named-proto.html is a flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=206672
<rdar://problem/58838583>
Reviewed by Chris Dumez.
This is a speculative fix to increase the priority of the DataURLDecoder's WorkQueue such that
it is less likely to be preempted.
Covered by existing tests.
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::decodeQueue):
Jan 30, 2020:
- 10:59 PM Changeset in webkit [255486] by
-
- 3 edits in trunk/Source/WebCore
[iOS] Page throttling reasons are not initialized with the device low power mode
https://bugs.webkit.org/show_bug.cgi?id=206860
Patch by Said Abou-Hallawa <Said Abou-Hallawa> on 2020-01-30
Reviewed by Simon Fraser.
Initialize m_throttlingReasons with the device current low power mode in
the constructor of Page.
Add m_throttlingReasonsOverridenForTesting to Page and use it to control
overriding the ThrottlingReasons of m_throttlingReasons.
- page/Page.cpp:
(WebCore::m_deviceOrientationUpdateProvider):
(WebCore::Page::setLowPowerModeEnabledOverrideForTesting):
(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::isLowPowerModeEnabled const): Deleted.
- page/Page.h:
(WebCore::Page::isLowPowerModeEnabled const):
(WebCore::Page::canUpdateThrottlingReason const):
- 9:35 PM Changeset in webkit [255485] by
-
- 2 edits in trunk/Source/WebCore
Ensure non-initial values for CSS Font properties
https://bugs.webkit.org/show_bug.cgi?id=206312
Patch by Doug Kelly <Doug Kelly> on 2020-01-30
Reviewed by Antti Koivisto.
If CSS font properties are currently initial values, set them to a normal value.
- css/CSSFontFaceSet.cpp:
(WebCore::computeFontSelectionRequest):
- 9:28 PM Changeset in webkit [255484] by
-
- 2 edits in trunk/Source/WebCore
Crash in GraphicsLayerCA::fetchCloneLayers() when setting contents to solid color
https://bugs.webkit.org/show_bug.cgi?id=205530
Patch by Doug Kelly <Doug Kelly> on 2020-01-30
Reviewed by Ryosuke Niwa.
Change the assertion in fetchCloneLayers() to check for null explicitly to ensure contentsLayer is valid.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
- 8:21 PM Changeset in webkit [255483] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [Mac wk1] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205168
<rdar://problem/57880452>
Removed the flaky test expectation now that the test is no longer flaky.
- platform/mac-wk1/TestExpectations:
- 6:30 PM Changeset in webkit [255482] by
-
- 19 edits in trunk/Source/JavaScriptCore
Some improvements to DFG and FTL dumps to improve readability and searchability.
https://bugs.webkit.org/show_bug.cgi?id=207024
Reviewed by Saam Barati.
This patch applies the following changes:
- Prefix Air and B2 dumps with a tierName prefix. The tierName prefix strings are as follows:
"FTL ", "DFG ", "b3 ", "Air ", "asm "
The choice to use a lowercase "b3" and "asm" with upper case "Air" is
deliberate because I found this combination to be easier to read and scan as
prefixes of the dump lines. See dump samples below.
- Make DFG node IDs consistently expressed as D@<node index> e.g. D@104. The definition of the node will be the id followed by a colon e.g. D@104: This makes it easy to search references to this node anywhere in the dump.
Make B3 nodes expressed as b@<node index> e.g. b@542.
This also makes it searchable since there's now no ambiguity between b@542 and
D@542.
The choice to use a lowercase "b" and an uppercase "D" is intentional because
"b@542" and "d@542" looks too similar, and I prefer to not use too much
uppercase. Plus this makes the node consistent in capitalization with the
tierName prefixes above of "b3 " and "DFG " respectively.
Here's a sample of what the dumps now look like:
DFG graph dump:
<code>
...
6 55: <-- foo#DFndCW:<0x62d0000b8140, bc#65, Call, known callee: Object: 0x62d000035920 with butterfly 0x0 (Structure %AN:Function), StructureID: 12711, numArgs+this = 1, numFixup = 0, stackOffset = -16 (loc0 maps to loc16)>
3 6 55: D@79:< 3:-> ArithAdd(Int32:Kill:D@95, Int32:D@42, Int32|PureNum|UseAsOther, Int32, CheckOverflow, Exits, bc#71, ExitValid)
4 6 55: D@3:<!0:-> KillStack(MustGen, loc7, W:Stack(loc7), ClobbersExit, bc#71, ExitInvalid)
5 6 55: D@85:<!0:-> MovHint(Check:Untyped:D@79, MustGen, loc7, W:SideState, ClobbersExit, bc#71, ExitInvalid)
6 6 55: D@102:< 1:-> CompareLess(Int32:D@79, Int32:D@89, Boolean|UseAsOther, Bool, Exits, bc#74, ExitValid)
7 6 55: D@104:<!0:-> Branch(KnownBoolean:Kill:D@102, MustGen, T:#1/w:10.000000, F:#7/w:1.000000, W:SideState, bc#74, ExitInvalid)
...
</code>
B3 graph dump:
<code>
...
b3 BB#14: ; frequency = 10.000000
b3 Predecessors: #13
b3 Int32 b@531 = CheckAdd(b@10:WarmAny, $1(b@1):WarmAny, b@64:ColdAny, b@10:ColdAny, generator = 0x606000022e80, earlyClobbered = [], lateClobbered = [], usedRegisters = [], ExitsSideways|Reads:Top, D@79)
b3 Int32 b@539 = LessThan(b@531, $100(b@578), D@102)
b3 Void b@542 = Branch(b@539, Terminal, D@104)
b3 Successors: Then:#2, Else:#15
...
</code>
Air graph dump:
<code>
...
Air BB#5: ; frequency = 10.000000
Air Predecessors: #4
Air Move -96(%rbp), %rax, b@531
Air Patch &BranchAdd32(3,ForceLateUseUnlessRecoverable)3, Overflow, $1, %rax, -104(%rbp), -96(%rbp), b@531
Air Branch32 LessThan, %rax, $100, b@542
Air Successors: #1, #6
...
</code>
FTL disassembly dump:
<code>
...
Air BB#5: ; frequency = 10.000000
Air Predecessors: #4
DFG D@42:< 2:-> JSConstant(JS|PureInt, Int32, Int32: 1, bc#0, ExitInvalid)
DFG D@79:< 3:-> ArithAdd(Int32:Kill:D@95, Int32:D@42, Int32|PureNum|UseAsOther, Int32, CheckOverflow, Exits, bc#71, ExitValid)
b3 Int32 b@1 = Const32(1)
b3 Int32 b@531 = CheckAdd(b@10:WarmAny, $1(b@1):WarmAny, b@64:ColdAny, b@10:ColdAny, generator = 0x606000022e80, earlyClobbered = [], lateClobbered = [], usedRegisters = [%rax, %rbx, %rbp, %r12], ExitsSideways|Reads:Top, D@79)
Air Move -96(%rbp), %rax, b@531
asm 0x4576b9c04712: mov -0x60(%rbp), %rax
Air Patch &BranchAdd32(3,ForceLateUseUnlessRecoverable)3, Overflow, $1, %rax, -104(%rbp), -96(%rbp), b@531
asm 0x4576b9c04716: inc %eax
asm 0x4576b9c04718: jo 0x4576b9c04861
DFG D@89:< 1:-> JSConstant(JS|PureNum|UseAsOther, NonBoolInt32, Int32: 100, bc#0, ExitInvalid)
DFG D@102:< 1:-> CompareLess(Int32:D@79, Int32:D@89, Boolean|UseAsOther, Bool, Exits, bc#74, ExitValid)
DFG D@104:<!0:-> Branch(KnownBoolean:Kill:D@102, MustGen, T:#1/w:10.000000, F:#7/w:1.000000, W:SideState, bc#74, ExitInvalid)
b3 Int32 b@578 = Const32(100, D@89)
b3 Int32 b@539 = LessThan(b@531, $100(b@578), D@102)
b3 Void b@542 = Branch(b@539, Terminal, D@104)
Air Branch32 LessThan, %rax, $100, b@542
asm 0x4576b9c0471e: cmp $0x64, %eax
asm 0x4576b9c04721: jl 0x4576b9c0462f
Air Successors: #1, #6
...
</code>
- b3/B3BasicBlock.cpp:
(JSC::B3::BasicBlock::deepDump const):
- b3/B3Common.cpp:
- b3/B3Common.h:
- b3/B3Generate.cpp:
(JSC::B3::generateToAir):
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::dump const):
- b3/B3Value.cpp:
- b3/air/AirBasicBlock.cpp:
(JSC::B3::Air::BasicBlock::deepDump const):
(JSC::B3::Air::BasicBlock::dumpHeader const):
(JSC::B3::Air::BasicBlock::dumpFooter const):
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::dump const):
- b3/air/AirCode.h:
- b3/air/AirDisassembler.cpp:
(JSC::B3::Air::Disassembler::dump):
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
- dfg/DFGCommon.cpp:
- dfg/DFGCommon.h:
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::dumpBlockHeader):
- dfg/DFGNode.cpp:
(WTF::printInternal):
- ftl/FTLCompile.cpp:
(JSC::FTL::compile):
- ftl/FTLCompile.h:
- ftl/FTLState.cpp:
(JSC::FTL::State::State):
- 6:27 PM Changeset in webkit [255481] by
-
- 3 edits in trunk/LayoutTests
Regression: http/tests/loading/remove-child-triggers-parser.html is failing consistently on windows
https://bugs.webkit.org/show_bug.cgi?id=206992
Reviewed by Simon Fraser.
Added back html & body elements to make Windows bots happy.
- http/tests/loading/remove-child-triggers-parser-expected.txt:
- http/tests/loading/remove-child-triggers-parser.html:
- 6:22 PM Changeset in webkit [255480] by
-
- 3 edits in trunk/Source/WebKit
Add logging to show the flow of AppSSO
https://bugs.webkit.org/show_bug.cgi?id=206778
<rdar://problem/58626835>
Reviewed by Brent Fulgham.
- Platform/Logging.h:
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::shouldStart):
(WebKit::SOAuthorizationSession::start):
(WebKit::SOAuthorizationSession::fallBackToWebPath):
(WebKit::SOAuthorizationSession::abort):
(WebKit::SOAuthorizationSession::complete):
(WebKit::SOAuthorizationSession::presentViewController):
(WebKit::SOAuthorizationSession::dismissViewController):
- 5:55 PM Changeset in webkit [255479] by
-
- 1 copy in tags/Safari-609.1.15.3.1
Tag Safari-609.1.15.3.1.
- 5:54 PM Changeset in webkit [255478] by
-
- 1 copy in tags/Safari-609.1.15.3.11
Tag Safari-609.1.15.3.11.
- 5:53 PM Changeset in webkit [255477] by
-
- 4 edits in trunk/Source/WebCore
[Cairo] Use CAIRO_FILTER_BILINEAR for image tile painting with InterpolationQuality::Default
https://bugs.webkit.org/show_bug.cgi?id=201326
Reviewed by Carlos Garcia Campos.
Mac port is using a better image interpolation method for painting
a single image than painting tiled images.
In Cairo port, CAIRO_FILTER_GOOD was used for both cases as
default. CAIRO_FILTER_GOOD is using separable convolution filter
for down-scaling (≤ 0.75 and ≠ 0.5), and bi-linear filter
otherwise. The separable convolution filter is better quality but
quite slower than bi-linear filter.
drawSurface of CairoOperations.cpp has the code to choose a filter
based on InterpolationQuality.
<https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp?rev=254506#L966>
This change copied the code to drawPatternToCairoContext, and
changed it to use CAIRO_FILTER_BILINEAR for
InterpolationQuality::Default.
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawPattern):
- platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::drawPatternToCairoContext): Set a filter by calling
cairo_pattern_set_filter based on InterpolationQuality.
- platform/graphics/cairo/CairoUtilities.h: Added a InterpolationQuality argument.
- 4:58 PM Changeset in webkit [255476] by
-
- 2 edits in branches/safari-609.1.15.3-macOS-branch/Source/WebKitLegacy/mac
Revert r254584. rdar://problem/59045533
- 4:51 PM Changeset in webkit [255475] by
-
- 10 edits1 add1 delete in trunk
[CMake] Add SQLite::SQLite3 target
https://bugs.webkit.org/show_bug.cgi?id=207005
Reviewed by Don Olmstead.
.:
- Source/cmake/FindSQLite3.cmake: Added.
- Source/cmake/FindSqlite.cmake: Removed.
- Source/cmake/OptionsAppleWin.cmake: Actually use find_package.
- Source/cmake/OptionsFTW.cmake: Sqlite -> SQLite3
- Source/cmake/OptionsGTK.cmake: Sqlite -> SQLite3
- Source/cmake/OptionsPlayStation.cmake: Sqlite -> SQLite3
- Source/cmake/OptionsWPE.cmake: Sqlite -> SQLite3
- Source/cmake/OptionsWinCairo.cmake: Sqlite -> SQLite3
Source/WebCore:
- CMakeLists.txt: Use SQLite3 target.
- PlatformPlayStation.cmake: Remove redundant entries.
- 4:48 PM Changeset in webkit [255474] by
-
- 1 copy in tags/Safari-610.1.2.1
Tag Safari-610.1.2.1.
- 4:45 PM Changeset in webkit [255473] by
-
- 8 edits in branches/safari-610.1.2-branch/Source
Versioning.
- 4:43 PM Changeset in webkit [255472] by
-
- 1 copy in branches/safari-610.1.2-branch
New branch.
- 4:35 PM Changeset in webkit [255471] by
-
- 2 edits in trunk/LayoutTests
[ iOS Release wk2 ] imported/w3c/IndexedDB-private-browsing/idbindex_getKey6.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=206952
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-30
- platform/ios-simulator-wk2/TestExpectations:
- 4:32 PM Changeset in webkit [255470] by
-
- 1 copy in tags/Safari-610.1.2
Tag Safari-610.1.2.
- 4:30 PM Changeset in webkit [255469] by
-
- 2 edits in trunk/Source/WebCore
Add a quirk to opt Twitter out of the non-overlaid minimized input view
https://bugs.webkit.org/show_bug.cgi?id=207021
<rdar://problem/59016252>
Reviewed by Wenson Hsieh.
- page/Quirks.cpp:
(WebCore::Quirks::shouldAvoidResizingWhenInputViewBoundsChange const):
Twitter has a content breakpoint that sits immediately between the size
of the Safari content area on a 11" iPad in landscape with the App Banner
visible and the same minus the height of the minimized input view that
we display when using a hardware keyboard. This breakpoint removes the
login field, causing the keyboard to dismiss, the input view to disappear,
and the page to resize to the larger size. This results in a loop,
so we must opt Twitter out of the content-avoiding input view mechanism.
- 4:23 PM Changeset in webkit [255468] by
-
- 6 edits in trunk
[WebGL] Add logging statements to attempt to catch texture-upload-size.html timeout
https://bugs.webkit.org/show_bug.cgi?id=207006
Source/WebCore:
Unreviewed temporary logging additions for flaky timeout investigation.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::createTexture):
(WebCore::WebGLRenderingContextBase::getError):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::texImage2D):
- platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
(WebCore::GraphicsContextGLOpenGL::texImage2D):
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::bindTexture):
(WebCore::GraphicsContextGLOpenGL::getError):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::createTexture):
LayoutTests:
Unreviewed temporary logging additions caused unrelated tests to time out.
- 4:15 PM Changeset in webkit [255467] by
-
- 2 edits in trunk/Source/WTF
FALLTHROUGHmacro isn't properly defined when building Objective-C files using Clang
https://bugs.webkit.org/show_bug.cgi?id=206637
Reviewed by Darin Adler.
Allow the
FALLTHROUGHmacro to be defined properly when building with either GCC
or Clang.
- wtf/Compiler.h:
- 3:59 PM Changeset in webkit [255466] by
-
- 4 edits in trunk
Unreviewed, another speculative test fix after r255041
Source/WebKit:
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::getAttestation const):
Adds kSecAttrAccessible: kSecAttrAccessibleAfterFirstUnlock to secItem to bypass
potential error due to screen locks.
Tools:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::addTestKeyToKeychain):
Adds kSecAttrAccessible: kSecAttrAccessibleAfterFirstUnlock to secItem to bypass
potential error due to screen locks.
- 3:26 PM Changeset in webkit [255465] by
-
- 1 copy in tags/Safari-610.1.1.2
Tag Safari-610.1.1.2.
- 3:17 PM Changeset in webkit [255464] by
-
- 8 edits in branches/safari-609.1.15.3-iOS-branch/Source
Versioning.
- 3:14 PM Changeset in webkit [255463] by
-
- 1 copy in branches/safari-609.1.15.3-iOS-branch
New branch.
- 3:07 PM Changeset in webkit [255462] by
-
- 2 edits in trunk/LayoutTests
Regression: fast/hidpi/image-srcset-relative-svg-canvas-2x.html is consistently failing on iOS EWS
https://bugs.webkit.org/show_bug.cgi?id=206993
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Mark test as failing.
- 2:53 PM Changeset in webkit [255461] by
-
- 39 edits in trunk
Add WKNavigationDelegate SPI to disable TLS 1.0 and 1.1
https://bugs.webkit.org/show_bug.cgi?id=206979
Reviewed by Brady Eidson.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveChallenge):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::didReceiveChallenge):
- NetworkProcess/PingLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(processServerTrustEvaluation):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
- Shared/Authentication/AuthenticationManager.h:
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::shouldAllowLegacyTLS):
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::systemAllowsLegacyTLSFor):
(WebKit::NavigationState::NavigationClient::shouldAllowLegacyTLS):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
Tools:
- MiniBrowser/mac/SettingsController.m:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(-[TLSNavigationDelegate waitForDidFinishNavigation]):
(-[TLSNavigationDelegate waitForDidFailProvisionalNavigation]):
(-[TLSNavigationDelegate receivedShouldAllowLegacyTLS]):
(-[TLSNavigationDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TLSNavigationDelegate webView:didFinishNavigation:]):
(-[TLSNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
(-[TLSNavigationDelegate _webView:authenticationChallenge:shouldAllowLegacyTLS:]):
(TestWebKitAPI::TEST):
- 2:50 PM Changeset in webkit [255460] by
-
- 5 edits1 delete in trunk/Source
[WTF] Remove PackedIntVector
https://bugs.webkit.org/show_bug.cgi?id=207018
Reviewed by Mark Lam.
Source/JavaScriptCore:
- bytecode/BytecodeBasicBlock.h:
Source/WTF:
Simply removing PackedIntVector since (1) nobody uses it, (2) it is somewhat broken (like, size()), and (3) its implementation is not so efficient.
If we want to have this feature, we can recreate it.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/PackedIntVector.h: Removed.
- 2:32 PM Changeset in webkit [255459] by
-
- 14 edits in trunk/Source/JavaScriptCore
[JSC] Remove unnecessary allocations in BytecodeBasicBlock
https://bugs.webkit.org/show_bug.cgi?id=206986
Reviewed by Mark Lam.
We know that BytecodeBasicBlock itself takes 2MB in Gmail. And each BytecodeBasicBlock has Vector<unsigned>
and Vector<BytecodeBasicBlock*>.
BytecodeBasicBlock holds all the offset per bytecode as unsigned in m_offsets. But this offset is
only used when reverse iterating a bytecode in a BytecodeBasicBlock. We can hold a length of each
bytecode instead, which is much smaller (unsigned v.s. uint8_t).
Since each BytecodeBasicBlock has index, we should hold successors in Vector<unsigned> instead of Vector<BytecodeBasicBlock*>.
We are also allocating BytecodeBasicBlock in makeUnique<> and having them in Vector<std::unique_ptr<BytecodeBasicBlock>>.
But this is not necessary since only BytecodeBasicBlock::compute can modify this vector. We should generate Vector<BytecodeBasicBlock>
from BytecodeBasicBlock::compute.
We are also planning purging BytecodeBasicBlock in UnlinkedCodeBlock if it is not used so much. But this will be done in a separate patch.
- bytecode/BytecodeBasicBlock.cpp:
(JSC::BytecodeBasicBlock::BytecodeBasicBlock):
(JSC::BytecodeBasicBlock::addLength):
(JSC::BytecodeBasicBlock::shrinkToFit):
(JSC::BytecodeBasicBlock::computeImpl):
(JSC::BytecodeBasicBlock::compute):
- bytecode/BytecodeBasicBlock.h:
(JSC::BytecodeBasicBlock::delta const):
(JSC::BytecodeBasicBlock::successors const):
(JSC::BytecodeBasicBlock::operator bool const):
(JSC::BytecodeBasicBlock::addSuccessor):
(JSC::BytecodeBasicBlock::offsets const): Deleted.
(JSC::BytecodeBasicBlock:: const): Deleted.
(JSC::BytecodeBasicBlock::BytecodeBasicBlock): Deleted.
(JSC::BytecodeBasicBlock::addLength): Deleted.
- bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::BytecodeGeneratorification):
- bytecode/BytecodeGraph.h:
(JSC::BytecodeGraph::blockContainsBytecodeOffset):
(JSC::BytecodeGraph::findBasicBlockForBytecodeOffset):
(JSC::BytecodeGraph::findBasicBlockWithLeaderOffset):
(JSC::BytecodeGraph::at const):
(JSC::BytecodeGraph::operator[] const):
(JSC::BytecodeGraph::begin):
(JSC::BytecodeGraph::end):
(JSC::BytecodeGraph::first):
(JSC::BytecodeGraph::last):
(JSC::BytecodeGraph::BytecodeGraph):
(JSC::BytecodeGraph::begin const): Deleted.
(JSC::BytecodeGraph::end const): Deleted.
- bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeIndex):
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::computeKills):
(JSC::BytecodeLivenessAnalysis::dumpResults):
- bytecode/BytecodeLivenessAnalysis.h:
- bytecode/BytecodeLivenessAnalysisInlines.h:
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeIndex):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeIndex):
(JSC::BytecodeLivenessPropagation::runLivenessFixpoint):
- bytecode/InstructionStream.h:
(JSC::InstructionStream::MutableRef::operator-> const):
(JSC::InstructionStream::MutableRef::ptr const):
(JSC::InstructionStream::MutableRef::unwrap const):
- bytecode/Opcode.h:
- generator/Section.rb:
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- llint/LLIntData.cpp:
(JSC::LLInt::initialize):
- llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
- 2:31 PM Changeset in webkit [255458] by
-
- 4 edits in trunk/Source/WebKit
Can still get stuck after swipe backwards with a slow server, even after r254552
https://bugs.webkit.org/show_bug.cgi?id=207017
<rdar://problem/59016256>
Reviewed by Chris Dumez.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::unfreezeLayerTreeDueToSwipeAnimation):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp:
There's a second case where you can get stuck with the "swipe gesture"
layer tree freeze reason in the web process: when doing a cross-origin
navigation where the load takes more than 3 seconds (the swipe
snapshot timeout) to commit, the provisional page will have mirrored
the original page's frozen state upon creation, but will not ever
receive the unfreeze, because it is sent while still provisional.
To fix this, just forward the unfreeze message to the provisional page.
- 2:13 PM Changeset in webkit [255457] by
-
- 19 edits4 adds in trunk
[iOS] Issue mach sandbox extension to the frontboard and icon service when the attachment element is enabled
https://bugs.webkit.org/show_bug.cgi?id=205443
Source/WebCore:
Reviewed by Brent Fulgham.
Get focus ring color in the UI process since getting this color will communicate with the frontboard daemon.
Test: fast/sandbox/ios/focus-ring-color.html
- rendering/RenderTheme.h:
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::cachedFocusRingColor):
(WebCore::RenderThemeIOS::platformFocusRingColor const):
(WebCore::RenderThemeIOS::setFocusRingColor):
- testing/Internals.cpp:
(WebCore::Internals::focusRingColor):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
<rdar://problem/58074291>
Reviewed by Brent Fulgham.
When support for the html attachment element is enabled, issue a mach lookup extension to the frontboard and icon service
for the WebContent process, since these daemons are being contacted when icons for attachments are being queried. Also,
retrieve the focus ring color in the UI process, since getting this color requires access to the frontboard daemon.
Test: fast/sandbox/ios/sandbox-mach-lookup-attachment-element.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
LayoutTests:
Reviewed by Brent Fulgham.
- fast/sandbox/ios/focus-ring-color-expected.txt: Added.
- fast/sandbox/ios/focus-ring-color.html: Added.
- fast/sandbox/ios/sandbox-mach-lookup-attachment-element-expected.txt: Added.
- fast/sandbox/ios/sandbox-mach-lookup-attachment-element.html: Added.
- 1:52 PM Changeset in webkit [255456] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r253267): Swipe from edge on Twitter images no longer goes back
https://bugs.webkit.org/show_bug.cgi?id=207011
<rdar://problem/58966044>
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
The new touch-event async deferring gesture recognizer was erroneously deferring
edge swipes, which are not allowed to be blocked by touch events.
Opt them out of the new gesture gate mechanism.
- 1:36 PM Changeset in webkit [255455] by
-
- 18 edits in trunk
PAL: Remove old iOS version macros
https://bugs.webkit.org/show_bug.cgi?id=206905
Reviewed by Darin Adler.
Source/WebCore:
No functional changes, covered by existing tests.
- loader/archive/cf/LegacyWebArchiveMac.mm: Remove USE(SECURE_ARCHIVER_API).
- testing/cocoa/WebArchiveDumpSupport.mm: Ditto.
Source/WebCore/PAL:
- pal/cocoa/AVFoundationSoftLink.mm: Remove iOS 13 version checks.
- pal/spi/cf/CFNetworkSPI.h: Remove iOS 11 version checks.
- pal/spi/cg/CoreGraphicsSPI.h: Use HAVE macro instead of version checks.
- pal/spi/cocoa/IOSurfaceSPI.h: Remove iOS 11 version checks.
- pal/spi/cocoa/NSKeyedArchiverSPI.h: Remove USE(SECURE_ARCHIVER_API) and
USE(SECURE_ARCHIVER_FOR_ATTRIBUTED_STRING).
- pal/spi/cocoa/NSProgressSPI.h: Replace USE(NSPROGRESS_PUBLISHING_SPI) with
HAVE(NSPROGRESS_PUBLISHING_SPI).
- pal/spi/ios/MediaPlayerSPI.h: Remove iOS 11 version checks.
Source/WebKit:
- NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: Remove USE(NSPROGRESS_PUBLISHING_SPI)
- NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm: Ditto.
Source/WTF:
- wtf/PlatformHave.h: Add HAVE(NSPROGRESS_PUBLISHING_SPI).
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/DownloadProgress.mm: Remove USE(NSPROGRESS_PUBLISHING_SPI)
with HAVE(NSPROGRESS_PUBLISHING_SPI)
- 1:35 PM Changeset in webkit [255454] by
-
- 8 edits in branches/safari-609.1.15.3-Downlevel-branch/Source
Versioning.
- 1:30 PM Changeset in webkit [255453] by
-
- 8 edits in branches/safari-609.1.15.3-macOS-branch/Source
Versioning.
- 1:27 PM Changeset in webkit [255452] by
-
- 12 edits in trunk
Incomplete braced quantifiers should be banned in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=206776
Reviewed by Darin Adler.
JSTests:
Although the change does not affect Unicode property escapes, a few
test/built-ins/RegExp/property-escapes/non-existent-property-value*.js files
are now passing because they had
p or
P instead of CharacterClassEscape.
- test262/expectations.yaml: Mark 18 test cases as passing.
Source/JavaScriptCore:
This change adds SyntaxError for Unicode patterns, aligning JSC with
V8 and SpiderMonkey, and also capitalizes "Unicode" in error messages.
Grammar: https://tc39.es/ecma262/#prod-annexB-Term
(/u flag precludes the use of ExtendedAtom and thus InvalidBracedQuantifier)
- yarr/YarrErrorCode.cpp:
(JSC::Yarr::errorMessage):
(JSC::Yarr::errorToThrow):
- yarr/YarrErrorCode.h:
- yarr/YarrParser.h:
(JSC::Yarr::Parser::parseTokens):
LayoutTests:
An error message test is added for this change and for webkit.org/b/206768.
Other tests are adjusted for capitalized "Unicode" in error messages.
- js/regexp-named-capture-groups-expected.txt:
- js/regexp-unicode-expected.txt:
- js/regress-158080-expected.txt:
- js/script-tests/regexp-named-capture-groups.js:
- js/script-tests/regexp-unicode.js:
- 1:17 PM Changeset in webkit [255451] by
-
- 1 copy in branches/safari-609.1.15.3-Downlevel-branch
New branch.
- 1:16 PM Changeset in webkit [255450] by
-
- 1 copy in branches/safari-609.1.15.3-macOS-branch
New branch.
- 1:00 PM Changeset in webkit [255449] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Make SourceProviderCacheItem small
https://bugs.webkit.org/show_bug.cgi?id=206987
Reviewed by Mark Lam.
We know this becomes very large when parsing a large script, and it is noticeable in some of RAMification tests.
We should use PackedPtr to shrink size of SourceProviderCacheItem.
- parser/Parser.h:
(JSC::Scope::restoreFromSourceProviderCache):
- parser/SourceProviderCacheItem.h:
(JSC::SourceProviderCacheItem::usedVariables const):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):
- 12:59 PM Changeset in webkit [255448] by
-
- 3 edits2 adds in trunk
Crash in RenderElement::selectionPseudoStyle with detail element set to display: contents
https://bugs.webkit.org/show_bug.cgi?id=206705
Patch by Doug Kelly <Doug Kelly> on 2020-01-30
Reviewed by Zalan Bujtas.
Source/WebCore:
Check the element for a valid renderer before calling getUncachedPseudoStyle(), and if the
element is set to "display: contents", walk up to the parent element until we're at the root
or the element is not set to "display: contents".
Test: fast/css/display-contents-detail-selection.html
- rendering/RenderElement.cpp:
(WebCore::RenderElement::selectionPseudoStyle const):
LayoutTests:
- fast/css/display-contents-detail-selection-expected.txt: Added.
- fast/css/display-contents-detail-selection.html: Added.
- 12:02 PM Changeset in webkit [255447] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebKit
Revert "Cherry-pick r254874. rdar://problem/58936679"
This reverts commit r255432.
- 12:02 PM Changeset in webkit [255446] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebKit
Revert "Cherry-pick r255105. rdar://problem/58936679"
This reverts commit r255433.
- 12:02 PM Changeset in webkit [255445] by
-
- 3 edits1 delete in branches/safari-610.1.1-branch
Revert "Cherry-pick r255337. rdar://problem/58936679"
This reverts commit r255434.
- 12:02 PM Changeset in webkit [255444] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebKit
Revert "Cherry-pick r255339. rdar://problem/58936679"
This reverts commit r255435.
- 11:58 AM Changeset in webkit [255443] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255339. rdar://problem/58936679
Fix the build
- UIProcess/ios/WKMouseGestureRecognizer.mm: (-[WKMouseGestureRecognizer touchesEnded:withEvent:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255339 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:58 AM Changeset in webkit [255442] by
-
- 3 edits1 add in branches/safari-609-branch
Cherry-pick r255337. rdar://problem/58936679
macCatalyst: Right clicking on a link follows it immediately
https://bugs.webkit.org/show_bug.cgi?id=206919
<rdar://problem/58936679>
Reviewed by Wenson Hsieh.
Source/WebKit:
- UIProcess/ios/WKMouseGestureRecognizer.mm: (-[WKMouseGestureRecognizer createMouseEventWithType:forEvent:]): (-[WKMouseGestureRecognizer touchesBegan:withEvent:]): (-[WKMouseGestureRecognizer touchesEnded:withEvent:]): UIKit's _buttonMask does not include the currently-released button, so in order to correctly identify the released button in touchesEnded, store the mask for the length of the click.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/MacCatalystMouseSupport.mm: (TEST): Add a test ensuring that mouseup is still called with the secondary button, even if the event's buttonmask is 0.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:28 AM Changeset in webkit [255441] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] fast/history/page-cache-webdatabase-pending-transaction.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=207010
unreviewed test gardening.
- platform/mac/TestExpectations:
- 11:04 AM Changeset in webkit [255440] by
-
- 15 edits2 adds in trunk
Parser needs to restore unary stack state when backtracking
https://bugs.webkit.org/show_bug.cgi?id=206972
Reviewed by Saam Barati.
JSTests:
- stress/parser-save-state-remove-stale-entries.js: Added.
- stress/parser-syntax-checker-assignments-are-not-resolve-expressions.js: Added.
(foo):
Source/JavaScriptCore:
Previously we would try to parse possibly stale unary operator
stack entries after backtracking from a parse error. This would
cause us to think one token was a different token while reparsing
after backtracking. Additionally, this patch fixes an issue where
the syntax checker would think assignment expressions were resolve
expressions. Intrestingly, this was not tested in test262.
Lastly, I tried adding some assertions to improve help diagnose
when our source text locations are incorrect.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitExpressionInfo):
- bytecompiler/NodesCodegen.cpp:
(JSC::ThisNode::emitBytecode):
(JSC::ResolveNode::emitBytecode):
(JSC::EmptyVarExpression::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::DefineFieldNode::emitBytecode):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::unaryTokenStackDepth const):
(JSC::ASTBuilder::setUnaryTokenStackDepth):
- parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
- parser/Lexer.h:
(JSC::Lexer::setLineNumber):
- parser/Nodes.cpp:
(JSC::FunctionMetadataNode::operator== const):
- parser/Nodes.h:
(JSC::ThrowableExpressionData::ThrowableExpressionData):
(JSC::ThrowableExpressionData::setExceptionSourceCode):
(JSC::ThrowableExpressionData::checkConsistency const):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseAssignmentElement):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::maybeParseAsyncFunctionDeclarationStatement):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseYieldExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
- parser/Parser.h:
(JSC::Parser::lexCurrentTokenAgainUnderCurrentContext):
(JSC::Parser::internalSaveParserState):
(JSC::Parser::restoreParserState):
(JSC::Parser::internalSaveState):
(JSC::Parser::swapSavePointForError):
(JSC::Parser::createSavePoint):
(JSC::Parser::internalRestoreState):
(JSC::Parser::restoreSavePointWithError):
(JSC::Parser::restoreSavePoint):
(JSC::Parser::createSavePointForError): Deleted.
- parser/ParserTokens.h:
(JSC::JSTextPosition::JSTextPosition):
(JSC::JSTextPosition::checkConsistency):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::operatorStackPop):
- 10:57 AM Changeset in webkit [255439] by
-
- 12 edits9 deletes in trunk
Unreviewed, rolling out r255424.
Breaks internal builds.
Reverted changeset:
"[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=206582
https://trac.webkit.org/changeset/255424
- 10:54 AM Changeset in webkit [255438] by
-
- 2 edits in trunk/Source/WebKit
Disable Service Workers before terminating an unresponsive service worker process
https://bugs.webkit.org/show_bug.cgi?id=206994
Reviewed by Chris Dumez.
In case a process becomes unresponsive, we terminate it in case it is a service worker process.
In that case, we should make sure not to call the service worker process crash callback.
To do so, disable service workers before terminating the IPC connection.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didBecomeUnresponsive):
- 10:07 AM Changeset in webkit [255437] by
-
- 3 edits2 adds in trunk
Crash in RenderBlockFlow::adjustLinePositionForPagination() with complex line without root box
https://bugs.webkit.org/show_bug.cgi?id=206610
Patch by Doug Kelly <Doug Kelly> on 2020-01-30
Reviewed by Zalan Bujtas.
Source/WebCore:
Add a check for a null pointer when getting firstRootBox() -- if it is null, return early after calling setPaginationStrut().
Test: fast/text/complex-without-root-box.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):
LayoutTests:
- fast/text/complex-without-root-box-expected.txt: Added.
- fast/text/complex-without-root-box.html: Added.
- 9:56 AM Changeset in webkit [255436] by
-
- 2 edits in trunk/Tools
TestWebKitAPI: Re-baseline AccessibilityTests for Catalyst
https://bugs.webkit.org/show_bug.cgi?id=206997
Reviewed by Wenson Hsieh.
- TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
(TestWebKitAPI::TEST):
- 9:48 AM Changeset in webkit [255435] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebKit
Cherry-pick r255339. rdar://problem/58936679
Fix the build
- UIProcess/ios/WKMouseGestureRecognizer.mm: (-[WKMouseGestureRecognizer touchesEnded:withEvent:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255339 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:48 AM Changeset in webkit [255434] by
-
- 3 edits1 add in branches/safari-610.1.1-branch
Cherry-pick r255337. rdar://problem/58936679
macCatalyst: Right clicking on a link follows it immediately
https://bugs.webkit.org/show_bug.cgi?id=206919
<rdar://problem/58936679>
Reviewed by Wenson Hsieh.
Source/WebKit:
- UIProcess/ios/WKMouseGestureRecognizer.mm: (-[WKMouseGestureRecognizer createMouseEventWithType:forEvent:]): (-[WKMouseGestureRecognizer touchesBegan:withEvent:]): (-[WKMouseGestureRecognizer touchesEnded:withEvent:]): UIKit's _buttonMask does not include the currently-released button, so in order to correctly identify the released button in touchesEnded, store the mask for the length of the click.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/MacCatalystMouseSupport.mm: (TEST): Add a test ensuring that mouseup is still called with the secondary button, even if the event's buttonmask is 0.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:48 AM Changeset in webkit [255433] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebKit
Cherry-pick r255105. rdar://problem/58936679
macCatalyst: Right clicking on links follows the link, but shouldn't
https://bugs.webkit.org/show_bug.cgi?id=206777
<rdar://problem/56586280>
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKMouseGestureRecognizer.mm: (-[WKMouseGestureRecognizer createMouseEventWithType:forEvent:]): (-[WKMouseGestureRecognizer touchesEnded:withEvent:]): I got 'button' and 'buttons' backwards.
'button' indicates which button the event is about, so in MouseUp,
it should still be 2.
'buttons' indicate which buttons are still down, so in MouseUp,
it should not include 2. Since we don't currently track mouse button
chording here, we'll just say "none". Leave a FIXME about that.
This makes WebCore's behavior correct, and now it doesn't follow the link.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:48 AM Changeset in webkit [255432] by
-
- 2 edits in branches/safari-610.1.1-branch/Source/WebKit
Cherry-pick r254874. rdar://problem/58936679
macCatalyst: Two-finger click is dispatched to DOM as left click
https://bugs.webkit.org/show_bug.cgi?id=206549
Reviewed by Simon Fraser.
- UIProcess/ios/WKMouseGestureRecognizer.mm: (-[WKMouseGestureRecognizer createMouseEventWithType:forEvent:]): (-[WKMouseGestureRecognizer touchesBegan:withEvent:]): (-[WKMouseGestureRecognizer touchesMoved:withEvent:]): (-[WKMouseGestureRecognizer touchesEnded:withEvent:]): (-[WKMouseGestureRecognizer _hoverEntered:withEvent:]): (-[WKMouseGestureRecognizer _hoverMoved:withEvent:]): (-[WKMouseGestureRecognizer _hoverExited:withEvent:]): (-[WKMouseGestureRecognizer createMouseEventWithType:]): Deleted. We correctly say button=2 for ctrl-click, but not for secondary-button click.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:35 AM Changeset in webkit [255431] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r252064): [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
https://bugs.webkit.org/show_bug.cgi?id=206291
<rdar://problem/58606666>
Unreviewed, partial rollout of r252064 which seems to have introduced the regression.
No new tests, covered by existing test
- Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
- 9:15 AM Changeset in webkit [255430] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207003
Unreviewed test gardening.
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-30
- platform/mac-wk2/TestExpectations:
- 9:11 AM Changeset in webkit [255429] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] imported/w3c/web-platform-tests/FileAPI/historical.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207002
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-30
- platform/ios-simulator-wk2/TestExpectations:
- 9:09 AM Changeset in webkit [255428] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Remove report rule for 'com.apple.runningboard' from the Network and GPU process sandboxes
https://bugs.webkit.org/show_bug.cgi?id=206980
<rdar://problem/58900030>
Reviewed by Maciej Stachowiak.
Remove the logging now that we have useful backtraces.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 8:56 AM Changeset in webkit [255427] by
-
- 4 edits in trunk/LayoutTests
[ Mac ] fast/dom/Window/post-message-crash.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206949
<rdar://problem/58997453>
Unreviewed, fix fast/dom/Window/post-message-crash.html test to stop failing if it takes more than 50ms to run
and unskip on all platforms.
- fast/dom/Window/post-message-crash.html:
- platform/ios-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 8:52 AM Changeset in webkit [255426] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webrtc/video-autoplay.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207001
Unreviewed test gardening
Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-30
- platform/mac-wk2/TestExpectations:
- 7:42 AM Changeset in webkit [255425] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Remove the build warning since r254991 as below.
warning: base class ‘class WTF::RefCounted<WebCore::AnimationList>’
should be explicitly initialized in the copy constructor [-Wextra]
No new tests, no behavioral changes.
- platform/animation/AnimationList.cpp:
(WebCore::AnimationList::AnimationList):
- 6:52 AM Changeset in webkit [255424] by
-
- 13 edits1 copy8 adds in trunk
[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=206582
Reviewed by Eric Carlson.
Source/WebCore:
AVAssetWriterDelegate allows to grab recorded data whenever wanted.
This delegate requires passing compressed samples to AVAssetWriter.
Implement video encoding and audio encoding in dedicated classes and use these classes before adding buffers to AVAssetWriter.
Since AVAssetWriterDelegate is Apple SDK only, keep the existing file based implementation as a fallback.
Covered by existing tests.
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:
(WebCore::AudioSampleBufferCompressor::create):
(WebCore::AudioSampleBufferCompressor::AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initialize):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::audioConverterComplexInputDataProc):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::computeBufferSizeForAudioFormat):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
(WebCore::AudioSampleBufferCompressor::provideSourceDataNumOutputPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffer):
(WebCore::AudioSampleBufferCompressor::addSampleBuffer):
(WebCore::AudioSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::AudioSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::create):
(WebCore::MediaRecorderPrivateWriter::MediaRecorderPrivateWriter):
(WebCore::MediaRecorderPrivateWriter::initialize):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::appendCompressedAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendCompressedVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::stopRecording):
- platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h:
- platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:
(WebCore::VideoSampleBufferCompressor::create):
(WebCore::VideoSampleBufferCompressor::VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::initialize):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::videoCompressionCallback):
(WebCore::VideoSampleBufferCompressor::initCompressionSession):
(WebCore::VideoSampleBufferCompressor::processSampleBuffer):
(WebCore::VideoSampleBufferCompressor::addSampleBuffer):
(WebCore::VideoSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::VideoSampleBufferCompressor::takeOutputSampleBuffer):
Source/WebCore/PAL:
Add soft link macros for VideoToolbox and AudioToolbox.
- PAL.xcodeproj/project.pbxproj:
- pal/cf/AudioToolboxSoftLink.cpp: Added.
- pal/cf/AudioToolboxSoftLink.h: Added.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
- pal/cf/VideoToolboxSoftLink.cpp: Added.
- pal/cf/VideoToolboxSoftLink.h: Added.
Source/WebKit:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
(WebKit::RemoteMediaRecorder::create):
Use new constructor.
LayoutTests:
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
Remove web audio generation since there seems to be some unstability in web audio -> stream -> media recorder.
which should be fixed as follow-up specific patches.
- 6:12 AM Changeset in webkit [255423] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Fix build with ACCELERATED_2D_CANVAS enabled
https://bugs.webkit.org/show_bug.cgi?id=206976
Reviewed by Philippe Normand.
When ACCELERATED_2D_CANVAS is enabled the MediaPlayerPrivate uses both PlatformDisplay and
GLContext that were undefined. Apart from that all the MediaPlayer::PreLoad::None enums fail
because cairo-gl.h ends up including X.h which already defines None.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
- 5:47 AM Changeset in webkit [255422] by
-
- 8 edits2 adds in trunk
[Web Animations] Changing the delay of an accelerated animation doesn't seek the animation
https://bugs.webkit.org/show_bug.cgi?id=206990
<rdar://problem/58675608>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/seeking-by-changing-delay-accelerated.html
In order to seek an accelerated animation, we need to update the animation on the target element's backing GraphicsLayer. We do this by enqueuing an
AcceleratedAction:Seek command which is done by calling KeyframeEffect::animationDidSeek(), which we would only call from WebAnimation::setCurrentTime().
However, seeking can be performed by modifying the animation's effect's timing.
We now call WebAnimation::effectTimingDidChange() with an optional ComputedEffectTiming for call sites that want to provide timing data prior to
modifying timing properties. This allows WebAnimation::effectTimingDidChange() to compare the previous progress with the new progress to determine if the
animation was seeked, so KeyframeEffect::animationDidSeek() may be called.
There are two places where we now call WebAnimation::effectTimingDidChange() with the previous timing data. First, when updateTiming() is called
through the JavaScript API (AnimationEffect::updateTiming) and when a CSS Animation's timing has been modified by changing some of the animation CSS
properties (CSSAnimation::syncPropertiesWithBackingAnimation).
- animation/AnimationEffect.cpp:
(WebCore::AnimationEffect::updateTiming): Compute the previous timing data and provide it to WebAnimation::effectTimingDidChange().
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation): Compute the previous timing data and provide it to WebAnimation::effectTimingDidChange().
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::computeAcceleratedPropertiesState): Drive-by fix for faulty logic introduced in a recent patch (r255383).
(WebCore::KeyframeEffect::applyPendingAcceleratedActions): We need to reset the m_isRunningAccelerated flag when an animation was supposed to be stopped but
couldn't be because the target's layer backing was removed prior to the accelerated action being committed.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::effectTimingDidChange): If previous timing data was provided, check whether its progress differs from the current timing data and
call KeyframeEffect::animationDidSeek().
- animation/WebAnimation.h:
LayoutTests:
Add a new test which would fail prior to this patch where we pause an animation after it has started playing accelerated and
change its delay to check that it correctly seeks the animation.
- webanimations/seeking-by-changing-delay-accelerated-expected.html: Added.
- webanimations/seeking-by-changing-delay-accelerated.html: Added.
- platform/win/TestExpectations: Mark the new test as failing.
- 5:27 AM Changeset in webkit [255421] by
-
- 4 edits in trunk
REGRESSION(r253636): [GTK] Mouse cursor changes using onMouseXYZ are erratic
https://bugs.webkit.org/show_bug.cgi?id=206454
Reviewed by Tim Horton.
Source/WebKit:
Since r253636 only platforms defining HAVE_NSCURSOR claim to support setting the cursor.
- WebProcess/WebCoreSupport/WebChromeClient.h: Do not implement supportsSettingCursor() for GTK port either.
LayoutTests:
- platform/gtk/TestExpectations:
- 5:10 AM Changeset in webkit [255420] by
-
- 7 edits in trunk
REGRESSION (r254406): Gmail.com star/favorite icons are not rendering
https://bugs.webkit.org/show_bug.cgi?id=206909
Reviewed by Simon Fraser.
Source/WebCore:
Make image-set parsing more conservative, for backwards compatibility:
- Differentiate between image-set and -webkit-image-set when parsing, -webkit-image-set maintains old behavior.
- Don't allow empty urls when using raw strings, e.g. image-set( 1x) is invalid.
Tests updated: fast/css/image-set-parsing.html.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeImageSet):
(WebCore::CSSPropertyParserHelpers::consumeImage):
LayoutTests:
Added empty URLs and new syntax with prefixed image-set to invalid tests.
Modified valid image-set parsing test to separate prefixed/non-prefixed.
- fast/css/image-set-parsing-generated.html:
- fast/css/image-set-parsing-invalid-expected.txt:
- fast/css/image-set-parsing-invalid.html:
- fast/css/image-set-parsing.html:
- 2:27 AM Changeset in webkit [255419] by
-
- 7 edits3 moves3 adds3 deletes in trunk/LayoutTests
[css-grid] Move grid-item-alignment tests to WPT folder
https://bugs.webkit.org/show_bug.cgi?id=206831
Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-01-30
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
Add grid-item-alignment tests, checked and adapted, to WPT.
Add .thirdRowFirstColumn class to grid.css support file and update all tests using this class by removing the duplicated class
from their <style> section.
Imported to WPT with this PR: https://github.com/web-platform-tests/wpt/pull/21440
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-lr.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-rl.html:
- web-platform-tests/css/css-grid/alignment/grid-align-content-distribution.html:
- web-platform-tests/css/css-grid/alignment/grid-align-justify-overflow.html:
- web-platform-tests/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-expected.txt: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-lr-expected.txt: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-rl-expected.txt: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-lr.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-rl.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows.html: Added.
- web-platform-tests/css/support/grid.css:
(.thirdRowFirstColumn):
LayoutTests:
Remove from css-grid-layout folder some grid-item-alignment tests, that are being replaced by adapted tests in the corresponding WPT test folder.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-expected.txt: Removed.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr-expected.txt: Removed.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html: Removed.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl-expected.txt: Removed.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html: Removed.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html: Removed.