Timeline
Mar 28, 2020:
- 11:13 PM Changeset in webkit [259175] by
-
- 32 edits in trunk/Source/JavaScriptCore
[JSC] Use CacheableIdentifier for all ById case
https://bugs.webkit.org/show_bug.cgi?id=209698
Reviewed by Saam Barati.
StructureStubInfo & AccessCase holds CacheableIdentifier to keep cell identifiers alive.
We are assuming that operationGetById...'s identifier is always owned by CodeBlock, and
we call CacheableIdentifier::createFromIdentifierOwnedByCodeBlock for UniquedStringImpl*.
This is wrong since GetById IC can be generated with identifier which is not owned by CodeBlock.
Let's consider the following case,
- op_get_by_val gets GetById IC. CacheableIdentifier is kept by StructureStubInfo/AccessCase correctly.
- This CodeBlock gets DFG.
- DFG understand op_get_by_val and emit GetById DFG node since it only has one identifier.
- Then, DFG can generate GetById DFG code which generates GetById IC
- (4)'s GetById IC gets executed. But this IC considers that identifier is owned by CodeBlock since this is ById IC.
- New DFG CodeBlock starts compilation. And it gets feedback from (2)'s get_by_val's StructureStubInfo, so it emits GetById with non-cell CacheableIdentifier! So it does not retain the cell. It just registers desired identifier.
- While compiling (6) (after parsing bytecode), (2)'s CodeBlock's DFG code & IC gets jettisoned. And then, identifier used in (6) gets destroyed too.
- (6)'s CodeBlock finalizes its compilation, registering desired identifiers to the actual CodeBlock. And it found the identifier gets destroyed.
In this patch,
- CacheableIdentifier::createFromIdentifierOwnedByCodeBlock is called only when the creator knowns that this is owned by the CodeBlock. Typically, this is when the code generator generates IC.
- operationGetById... functions get CacheableIdentifier instead of UniquedStringImpl*. So it propagates whether the given CacheableIdentifier is created from CodeBlock's identifier or cells.
- AccessCase holds this propagated CacheableIdentifiers. If CacheableIdentifiers is created from a cell in some tier's IC, then it continues to be represented as a cell-origin CacheableIdentifiers regardless of whether the current IC is GetById / GetByVal. Then GC marks it correctly.
- This patch does the same thing to all the ICs.
- This patch extends StructureStubInfo / AccessCase to pave the way to use them in PutByVal / InByVal by introducing CacheableIdentifier for Put and In.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::fromStructureStubInfo):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::visitAggregate):
(JSC::StructureStubInfo::setCacheType):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::identifier):
(JSC::StructureStubInfo::considerCachingBy):
(JSC::StructureStubInfo::getByIdSelfIdentifier): Deleted.
(JSC::StructureStubInfo::considerCachingById): Deleted.
(JSC::StructureStubInfo::considerCachingByVal): Deleted.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArrayMode.cpp:
(JSC::DFG::canBecomeGetArrayLength):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::emitPutById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::addStringReplacePrimordialChecks):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToInById):
(JSC::DFG::Node::hasCacheableIdentifier):
(JSC::DFG::Node::cacheableIdentifier):
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::OpInfoWrapper::OpInfoWrapper):
(JSC::DFG::Node::OpInfoWrapper::operator=):
- dfg/DFGOpInfo.h:
(JSC::DFG::OpInfo::OpInfo):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::compilePutByIdWithThis):
(JSC::DFG::SpeculativeJIT::cachedPutById):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileInById):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::slowPathFunction):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
- jit/JITInlineCacheGenerator.h:
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emitByValIdentifierCheck):
(JSC::JIT::privateCompilePutByValWithCachedId):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
- jit/Repatch.cpp:
(JSC::appropriateGenericPutByIdFunction):
(JSC::appropriateOptimizingPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryCacheInByID):
(JSC::repatchInByID):
(JSC::resetPutByID):
- jit/Repatch.h:
- runtime/CacheableIdentifier.cpp:
(JSC::CacheableIdentifier::dump const):
- runtime/CacheableIdentifier.h:
(JSC::CacheableIdentifier::createFromRawBits):
(JSC::CacheableIdentifier::rawBits const):
(JSC::CacheableIdentifier::CacheableIdentifier):
- runtime/CacheableIdentifierInlines.h:
(JSC::CacheableIdentifier::createFromIdentifierOwnedByCodeBlock):
(JSC::CacheableIdentifier::createFromImmortalIdentifier):
(JSC::CacheableIdentifier::CacheableIdentifier):
- 9:43 PM Changeset in webkit [259174] by
-
- 6 edits in trunk/LayoutTests
Regression: fast/hidpi/image-srcset-svg-canvas-2x.html is failing consistently on iOS EWS
https://bugs.webkit.org/show_bug.cgi?id=207038
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-28
Reviewed by Darin Adler.
Disable the canvas scaling anti-aliasing by applying the CSS property
"image-rendering: pixelated;" to the <img> and the <canvas> elements.
Avoid the SVG drawing anti-aliasing entirely by replacing the <cricle>
element by a <rect> element.
- fast/hidpi/resources/relativesrcset.svg:
- fast/hidpi/resources/srcset.svg:
- fast/hidpi/resources/srcset_100px.svg:
- fast/hidpi/resources/svg_tests.css:
(.test img, .test canvas):
- platform/mac/TestExpectations:
- 8:07 PM Changeset in webkit [259173] by
-
- 22 edits4 adds in trunk
Web Inspector: support editing cookie key/values from inspector
https://bugs.webkit.org/show_bug.cgi?id=31157
<rdar://problem/19281523>
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- inspector/protocol/Page.json:
Add a
sessionparameter toPage.Cookietype and a newPage.setCookiecommand.
Remove thesizeparameter fromPage.Cookieas this can be calculated in the frontend.
Source/WebCore:
Test: http/tests/inspector/page/setCookie.html
- inspector/agents/InspectorPageAgent.h:
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::buildObjectForCookie):
(WebCore::parseCookieObject): Added.
(WebCore::InspectorPageAgent::setCookie): Added.
- loader/CookieJar.h:
- loader/CookieJar.cpp:
(WebCore::CookieJar::setRawCookie): Added.
Source/WebInspectorUI:
- UserInterface/Models/Cookie.js:
(WI.Cookie):
(WI.Cookie.fromPayload):
(WI.Cookie.parseSetCookieResponseHeader):
(WI.Cookie.prototype.get session): Added.
(WI.Cookie.prototype.expirationDate):
(WI.Cookie.prototype.equals): Added.
(WI.Cookie.prototype.toProtocol): Added.
Addsessionvalue in addition to the existingexpiresvalue. Create helper methods for
comparingWI.Cookieobjects and for using theWI.Cookieas aPage.Cookietype when
invoking protocol commands (right now justPage.setCookie).
- UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView):
(WI.CookieStorageContentView.prototype.get navigationItems):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
(WI.CookieStorageContentView.prototype.willDismissPopover): Added.
(WI.CookieStorageContentView.prototype.async _willDismissCookiePopover): Added.
(WI.CookieStorageContentView.prototype._handleSetCookieButtonClick): Added.
(WI.CookieStorageContentView.prototype._reloadCookies):
(WI.CookieStorageContentView.prototype._formatCookiePropertyForColumn):
Add a + navigation item that shows a popover for creating a new cookie. When contextmenu
clicking on a table row, add an "Edit" item that shows a popover for creating a new cookie
with the values from the existing cookie, which will "replace" (delete and set) the existing
cookie upon being dismissed.
- UserInterface/Views/ResourceCookiesContentView.js:
(WI.ResourceCookiesContentView.prototype.tablePopulateCell):
If only use theexpiresvalue ifsessionis not set.
- UserInterface/Views/CookiePopover.js: Added.
(WI.CookiePopover):
(WI.CookiePopover.prototype.get serializedData):
(WI.CookiePopover.prototype.show.createRow):
(WI.CookiePopover.prototype.show.createInputRow):
(WI.CookiePopover.prototype.show):
(WI.CookiePopover.prototype._presentOverTargetElement):
(WI.CookiePopover.prototype._defaultExpires):
(WI.CookiePopover.prototype._parseExpires):
(WI.CookiePopover.prototype._handleInputKeyDown):
- UserInterface/Views/CookiePopover.css: Added.
(.popover .cookie-popover-content):
(.popover .cookie-popover-content > table):
(.popover .cookie-popover-content > table > tr > th):
(.popover .cookie-popover-content > table > tr > td):
(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"])):
(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"]).invalid):
(@media (prefers-color-scheme: dark) .popover .cookie-popover-content > table > tr > th):
Show an<input>(or<select>) for each configuration option when creating a cookie.
Hide the<input>forexpiresif the<input type="checkbox">forsessionis checked.
Indicate when the value in the<input>forexpiresis not a valid date.
- UserInterface/Main.html:
- Localizations/en.lproj/localizedStrings.js:
Source/WebKit:
- WebProcess/WebPage/WebCookieJar.h:
- WebProcess/WebPage/WebCookieJar.cpp:
(WebKit::WebCookieJar::setRawCookie):
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::setRawCookie): Added.
LayoutTests:
- http/tests/inspector/page/setCookie.html: Added.
- http/tests/inspector/page/setCookie-expected.txt: Added.
- inspector/unit-tests/number-utilities.html:
- inspector/unit-tests/number-utilities-expected.txt:
Drive-by: add tests for
Number.prototype.maxDecimals.
- 8:02 PM Changeset in webkit [259172] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r258201): Use-after-move in UserMediaCaptureManager::Source::didFail()
<https://webkit.org/b/209711>
<rdar://problem/61018569>
Reviewed by Darin Adler.
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::didFail):
- Use
m_errorMessageto fix the use-after-move.
- 7:58 PM Changeset in webkit [259171] by
-
- 9 edits in trunk
REGRESSION(r257963) UI process crashes when setting navigation delegate inside navigation delegate callbacks
https://bugs.webkit.org/show_bug.cgi?id=209705
<rdar://problem/60814765>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-28
Reviewed by Darin Adler.
Source/WebKit:
I introduced a pattern of making multiple delegate calls sequentially. This is bad because the delegate can change.
We need to go back to the WebPageProxy and get the navigation client again between calls.
I manually verified this fixes the crash in the radar.
Covered by modifying an existing API test to modify the navigation delegate in a callback.
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didStartProvisionalNavigation):
(API::NavigationClient::didStartProvisionalLoadForFrame):
(API::NavigationClient::didFailProvisionalNavigationWithError):
(API::NavigationClient::didFailProvisionalLoadWithErrorForFrame):
(API::NavigationClient::didCommitNavigation):
(API::NavigationClient::didCommitLoadForFrame):
(API::NavigationClient::didFinishNavigation):
(API::NavigationClient::didFinishLoadForFrame):
(API::NavigationClient::didFailNavigationWithError):
(API::NavigationClient::didFailLoadWithErrorForFrame):
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
- UIProcess/API/glib/WebKitNavigationClient.cpp:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::~NavigationState):
(WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation):
(WebKit::NavigationState::NavigationClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError):
(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::NavigationClient::didCommitNavigation):
(WebKit::NavigationState::NavigationClient::didCommitLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFinishNavigation):
(WebKit::NavigationState::NavigationClient::didFinishLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFailNavigationWithError):
(WebKit::NavigationState::NavigationClient::didFailLoadWithErrorForFrame):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/AsyncPolicyForNavigationResponse.mm:
(-[TestAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
- 7:56 PM Changeset in webkit [259170] by
-
- 11 edits6 adds in trunk
Web Inspector: CSS: create visual editor for
box-shadow
https://bugs.webkit.org/show_bug.cgi?id=208380
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
Recognize
box-shadowCSS properties in the Styles sidebar, parse the comma-separated list
value for individual box shadows, and create aWI.InlineSwatchfor each. When clicked,
show aWI.Popoverwith aWI.BoxShadowEditor, which contains a table of editors:
Offset X | <input type="text"> | [ 2D (X & Y) ]
Offset Y | <input type="text"> | [ Slider ]
Inset | <input type="checkbox"> |
Blur | <input type="text"> | <input type="range">
Spread | <input type="text"> | <input type="range">
[ ]
[ ]
[ full color picker ]
[ ]
[ ]
- UserInterface/Models/BoxShadow.js: Added.
(WI.BoxShadow):
(WI.BoxShadow.fromString):
(WI.BoxShadow.parseNumberComponent):
(WI.BoxShadow.prototype.get offsetX):
(WI.BoxShadow.prototype.get offsetY):
(WI.BoxShadow.prototype.get blurRadius):
(WI.BoxShadow.prototype.get spreadRadius):
(WI.BoxShadow.prototype.get inset):
(WI.BoxShadow.prototype.get color):
(WI.BoxShadow.prototype.copy):
(WI.BoxShadow.prototype.toString):
(WI.BoxShadow.prototype.toString.stringifyNumberComponent):
- UserInterface/Models/CSSCompletions.js:
Add a
Setof allowed CSS length units.
- UserInterface/Views/BoxShadowEditor.js: Added.
(WI.BoxShadowEditor):
(WI.BoxShadowEditor.createInputRow):
(WI.BoxShadowEditor.createSlider):
(WI.BoxShadowEditor.prototype.get element):
(WI.BoxShadowEditor.prototype.get boxShadow):
(WI.BoxShadowEditor.prototype.set boxShadow):
(WI.BoxShadowEditor.prototype.handleEvent):
(WI.BoxShadowEditor.prototype._updateBoxShadow):
(WI.BoxShadowEditor.prototype._updateBoxShadowOffsetFromSliderMouseEvent):
(WI.BoxShadowEditor.prototype._determineShiftForEvent):
(WI.BoxShadowEditor.prototype._handleOffsetSliderSVGKeyDown):
(WI.BoxShadowEditor.prototype._handleOffsetSliderSVGMouseDown):
(WI.BoxShadowEditor.prototype._handleWindowMouseMove):
(WI.BoxShadowEditor.prototype._handleWindowMouseUp):
(WI.BoxShadowEditor.prototype._handleOffsetXInputInput):
(WI.BoxShadowEditor.prototype._handleOffsetXInputKeyDown):
(WI.BoxShadowEditor.prototype._handleOffsetYInputInput):
(WI.BoxShadowEditor.prototype._handleOffsetYInputKeyDown):
(WI.BoxShadowEditor.prototype._handleBlurRadiusInputInput):
(WI.BoxShadowEditor.prototype._handleBlurRadiusInputKeyDown):
(WI.BoxShadowEditor.prototype._handleBlurRadiusSliderInput):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusInputInput):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusInputKeyDown):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusSliderInput):
(WI.BoxShadowEditor.prototype._handleInsetCheckboxChange):
(WI.BoxShadowEditor.prototype._handleColorChanged):
- UserInterface/Views/BoxShadowEditor.css: Added.
(.box-shadow-editor):
(.box-shadow-editor > table):
(.box-shadow-editor > table > tr > th):
(.box-shadow-editor > table > tr > td):
(.box-shadow-editor > table > tr > td > input[type="text"]):
(.box-shadow-editor > table > tr > td > input[type="range"]):
(.box-shadow-editor > table > tr > td > svg):
(.box-shadow-editor > table > tr > td > svg line.axis):
(.box-shadow-editor > table > tr > td > svg line:not(.axis)):
(.box-shadow-editor > table > tr > td > svg circle):
(@media (prefers-color-scheme: dark) .box-shadow-editor > table > tr > th):
- UserInterface/Views/InlineSwatch.js:
(WI.InlineSwatch):
(WI.InlineSwatch.prototype._fallbackValue):
(WI.InlineSwatch.prototype._valueEditorValueDidChange):
- UserInterface/Views/InlineSwatch.css:
(.inline-swatch):
(.inline-swatch:not(.box-shadow), .inline-swatch.box-shadow:matches(:hover, :active)): Added.
(.inline-swatch:matches(.bezier, .box-shadow, .spring, .variable)): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable):hover): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable):active): Added.
(.inline-swatch:matches(.bezier, .box-shadow, .spring, .variable) > span): Added.
(@media (prefers-color-scheme: dark) .inline-swatch.box-shadow > svg): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):hover): Deleted.
(.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):active): Deleted.
(.inline-swatch:matches(.bezier, .spring, .variable) > span): Deleted.
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens):
(WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
(WI.SpreadsheetStyleProperty.prototype._addColorTokens):
(WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
(WI.SpreadsheetStyleProperty.prototype._addBoxShadowTokens):
(WI.SpreadsheetStyleProperty.prototype._resolveVariables):
- UserInterface/Views/Variables.css:
(:root):
- UserInterface/Views/ColorPicker.css:
(.color-picker):
Move--color-picker-widthto:rootso thatWI.BoxShadowEditorcan use it.
- UserInterface/Main.html:
- UserInterface/Test.html:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/BoxShadow.svg: Added.
LayoutTests:
- inspector/model/boxShadow.html: Added.
- inspector/model/boxShadow-expected.txt: Added.
- 7:54 PM Changeset in webkit [259169] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r257759): Network: graph in Timing pane of selected resource is missing bars
https://bugs.webkit.org/show_bug.cgi?id=209525
Reviewed by Timothy Hatcher.
WI.ResourceTimingBreakdownViewuses the same CSS classes and DOM structure as the parent
WI.NetworkTableContentView, relying on the styles defined there for it's own styles.
- UserInterface/Views/NetworkTableContentView.css:
(.network-table > .table li:not(.filler, .selected) .cell:not(.current-session)): Added.
(.network-table .error): Added.
(.network-table .waterfall .block): Added.
(body[dir=ltr] .network-table .waterfall .block): Added.
(body[dir=rtl] .network-table .waterfall .block): Added.
(.network-table .waterfall .block.request,): Added.
(.network-table .waterfall .block.mouse-tracking): Added.
(.network-table .waterfall .block.filler): Added.
(.network-table .waterfall .block.redirect): Added.
(.network-table .waterfall .block.queue): Added.
(.network-table .waterfall .block.dns): Added.
(.network-table .waterfall .block.connect): Added.
(.network-table .waterfall .block.secure): Added.
(.network-table .waterfall .block.request): Added.
(.network-table .waterfall .block.response): Added.
(.network-table > .table li:not(.selected) .cell:not(.current-session)): Deleted.
(.network-table > .table .error): Deleted.
(.network-table > .table .waterfall .block): Deleted.
(body[dir=ltr] .network-table > .table .waterfall .block): Deleted.
(body[dir=rtl] .network-table > .table .waterfall .block): Deleted.
(.network-table > .table .waterfall .block.request,): Deleted.
(.network-table > .table .waterfall .block.mouse-tracking): Deleted.
(.network-table > .table .waterfall .block.filler): Deleted.
(.network-table > .table .waterfall .block.redirect): Deleted.
(.network-table > .table .waterfall .block.queue): Deleted.
(.network-table > .table .waterfall .block.dns): Deleted.
(.network-table > .table .waterfall .block.connect): Deleted.
(.network-table > .table .waterfall .block.secure): Deleted.
(.network-table > .table .waterfall .block.request): Deleted.
(.network-table > .table .waterfall .block.response): Deleted.
Drive-by: theWI.Tablefiller row should not be dimmed.
- UserInterface/Views/ResourceTimingBreakdownView.css:
(.resource-timing-breakdown .waterfall .block):
- 7:52 PM Changeset in webkit [259168] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: pressing RightArrow or LeftArrow unexpectedly changes panels
https://bugs.webkit.org/show_bug.cgi?id=209625
<rdar://problem/60940609>
Reviewed by Timothy Hatcher.
- UserInterface/Views/NavigationBar.js:
(WI.NavigationBar.prototype._keyDown):
- 7:50 PM Changeset in webkit [259167] by
-
- 2 edits in trunk/Source/WebKit
Use-after-move in NetworkProcess::addServiceWorkerSession()
<https://webkit.org/b/209710>
<rdar://problem/61017857>
Reviewed by Darin Adler.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::addServiceWorkerSession):
- Use
addResult.iterator->value.databasePathinstead of theserviceWorkerRegistrationDirectoryparameter to fix the use-after-move.
- 7:05 PM Changeset in webkit [259166] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686
<rdar://problem/60888891>
Reviewed by Darin Adler.
Client apps that rely on WebKit to open app links cannot call the [WKWebView _willOpenAppLink] SPI
that was added in r259146. Instead, we need to call WebPageProxy::willOpenAppLink() in
tryInterceptNavigation() when WebKit opens the AppLink itself.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::tryInterceptNavigation):
- 5:59 PM Changeset in webkit [259165] by
-
- 13 edits in trunk/Source
Add a ScrollLatching log channel and improve some logging functionality
https://bugs.webkit.org/show_bug.cgi?id=209706
Reviewed by Darin Adler, David Kilzer.
Source/WebCore:
Add a "ScrollLatching" log channel. Make ScrollLatchingState and Node loggable.
Make a convenience template class ValueOrNull<> which makes logging a pointer type convenient.
Also change Page::pushNewLatchingState() to take the new latching state.
- dom/Node.cpp:
(WebCore::operator<<):
- dom/Node.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::clearLatchedState):
- page/Page.cpp:
(WebCore::Page::pushNewLatchingState):
(WebCore::Page::popLatchingState):
(WebCore::Page::removeLatchingStateForTarget):
- page/Page.h:
(WebCore::Page::latchingStateStack const):
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::clearOrScheduleClearingLatchedStateIfNeeded):
(WebCore::EventHandler::platformPrepareForWheelEvents):
(WebCore::frameViewForLatchingState):
(WebCore::EventHandler::platformCompleteWheelEvent):
(WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent):
- page/scrolling/ScrollLatchingState.cpp:
(WebCore::operator<<):
- page/scrolling/ScrollLatchingState.h:
(WebCore::ScrollLatchingState::wheelEventElement const):
(WebCore::ScrollLatchingState::frame const):
(WebCore::ScrollLatchingState::previousWheelScrolledElement const):
(WebCore::ScrollLatchingState::scrollableContainer const):
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::setOrClearLatchedNode):
(WebCore::ScrollingTree::handleWheelEvent):
- platform/Logging.h:
Source/WTF:
- wtf/text/TextStream.h:
(WTF::ValueOrNull::ValueOrNull):
(WTF::operator<<):
- 3:13 PM Changeset in webkit [259164] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Unreviewed build fix for WinCairo Debug builds
https://bugs.webkit.org/show_bug.cgi?id=209098
It's broken since r259139 (Bug 209098).
..\..\Source\WebCore\platform\graphics\texmap\TextureMapperGC3DPlatformLayer.cpp(101): error C2065: 'm_state': undeclared identifier
- platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
(WebCore::TextureMapperGC3DPlatformLayer::paintToTextureMapper): Replaced 'm_state' with 'm_context.m_state'.
- 11:31 AM Changeset in webkit [259163] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix the watchOS build after r259151
The declaration of Pasteboard(const String&) in Pasteboard.h is present for all PLATFORM(IOS_FAMILY), but the
implementation is guarded by ENABLE(DRAG_SUPPORT). r259151 added a codepath that calls this constructor in
IOS_FAMILY code, causing a linker error. Fix this by moving the implementation out of the ENABLE(DRAG_SUPPORT)
guard, to match the declaration in the header.
- platform/ios/PasteboardIOS.mm:
- 10:22 AM Changeset in webkit [259162] by
-
- 3 edits2 adds in trunk
Sideways jiggles when scrolling the shelves on beta.music.apple.com
https://bugs.webkit.org/show_bug.cgi?id=209696
<rdar://problem/55092050>
Reviewed by Anders Carlsson.
Source/WebCore:
If a scroll snapping animation was running, EventHandler::platformNotifyIfEndGesture() would
reset the latching state. This was added in r190423, but not longer seems necessary
according to manual testing, and the passing layout test.
platformNotifyIfEndGesture() would be called at the end of the fingers-down scroll but
before momentum, and resetting latching here would cause the momentum events to go to
a new target, triggering incorrect scrolls.
Test: tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching.html
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::platformNotifyIfEndGesture):
LayoutTests:
Test that sends scroll and momentum events to a vertically-scrolling overflow with snap-points,
which checked that the document didn't scroll.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching-expected.txt: Added.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching.html: Added.
- 10:22 AM Changeset in webkit [259161] by
-
- 1 edit in trunk/Source/WebCore/ChangeLog
Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
https://bugs.webkit.org/show_bug.cgi?id=209693
Reviewed by Zalan Bujtas.
Source/WebCore:
Replace some #if PLATFORM(MAC) with #if ENABLE(WHEEL_EVENT_LATCHING).
ENABLE_WHEEL_EVENT_LATCHING is currently only enabled on macOS, but it's possible
that it should be defined everywhere that ENABLE_KINETIC_SCROLLING is defined.
This requires testing on WPE, GTK etc.
- page/EventHandler.cpp:
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler):
- page/Page.cpp:
- page/Page.h:
Source/WTF:
Define ENABLE_WHEEL_EVENT_LATCHING for macOS.
- wtf/PlatformEnable.h:
- 10:21 AM Changeset in webkit [259160] by
-
- 2 edits in trunk/Source/WebCore
[RenderTreeBuilder] Destroy the child first in RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers
https://bugs.webkit.org/show_bug.cgi?id=209695
Reviewed by Antti Koivisto.
The render tree tear down direction is usually leaf first (there are some non-trivial cases where we end up going container first).
Being able to access the ancestor chain helps with some final cleanup activities (e.g repaints).
This patch makes the renderer-inside-an-anonymous-wrapper case similar to the normal case as we destroy the leaf renderer first.
However the anonymous ancestor chain tear down is still container first (see r228606).
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
(WebCore::isAnonymousAndSafeToDelete): Deleted.
(WebCore::findDestroyRootIncludingAnonymous): Deleted.
- 9:45 AM Changeset in webkit [259159] by
-
- 20 edits in trunk
Deprecate injected bundle page group SPI
https://bugs.webkit.org/show_bug.cgi?id=209687
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-28
Reviewed by Timothy Hatcher.
Source/WebKit:
This old code is problematic, and the use of it is being removed in rdar://problem/60987265
- Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode const):
(WebKit::WebPageGroupData::decode):
- Shared/WebPageGroupData.h:
- UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::WebPageGroup):
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleAddUserScript):
(WKBundleAddUserStyleSheet):
(WKBundleRemoveUserScript):
(WKBundleRemoveUserStyleSheet):
(WKBundleRemoveUserScripts):
(WKBundleRemoveUserStyleSheets):
(WKBundleRemoveAllUserContent):
- WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addUserScript): Deleted.
(WebKit::InjectedBundle::addUserStyleSheet): Deleted.
(WebKit::InjectedBundle::removeUserScript): Deleted.
(WebKit::InjectedBundle::removeUserStyleSheet): Deleted.
(WebKit::InjectedBundle::removeUserScripts): Deleted.
(WebKit::InjectedBundle::removeUserStyleSheets): Deleted.
(WebKit::InjectedBundle::removeAllUserContent): Deleted.
- WebProcess/InjectedBundle/InjectedBundle.h:
- WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::userContentController): Deleted.
- WebProcess/WebPage/WebPageGroupProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic_Bundle.cpp:
(TestWebKitAPI::DOMWindowExtensionBasic::didCreatePage):
(TestWebKitAPI::DOMWindowExtensionBasic::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/DOMWindowExtensionNoCache_Bundle.cpp:
(TestWebKitAPI::DOMWindowExtensionNoCache::didCreatePage):
(TestWebKitAPI::DOMWindowExtensionNoCache::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/DocumentStartUserScriptAlertCrash_Bundle.cpp:
(TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::didCreatePage):
(TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/InjectedBundleDisableOverrideBuiltinsBehavior_Bundle.cpp:
(TestWebKitAPI::InjectedBundleNoDisableOverrideBuiltinsBehaviorTest::initialize): Deleted.
(TestWebKitAPI::InjectedBundleDisableOverrideBuiltinsBehaviorTest::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/InjectedBundleMakeAllShadowRootsOpen_Bundle.cpp:
(TestWebKitAPI::InjectedBundleMakeAllShadowRootOpenTest::didCreatePage):
(TestWebKitAPI::InjectedBundleMakeAllShadowRootOpenTest::initialize): Deleted.
- 8:35 AM Changeset in webkit [259158] by
-
- 8 edits2 adds in trunk
Nullptr crash in InlineTextBox::emphasisMarkExistsAndIsAbove
https://bugs.webkit.org/show_bug.cgi?id=207034
Reviewed by Zalan Bujtas.
Source/WebCore:
Reduced test case by Zalan.
Test: editing/selection/selection-update-during-anonymous-inline-teardown.html
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setNeedsSelectionUpdateForRenderTreeChange):
Don't clear the selection immediately, do it in updateAppearanceAfterLayoutOrStyleChange after render tree update/layout is done instead.
This is safe as selection uses WeakPtrs to reference renderers.
Renamed to emphasize the use case.
(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange):
(WebCore::FrameSelection::setNeedsSelectionUpdate): Deleted.
- editing/FrameSelection.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
- rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::detachFromRenderElement):
LayoutTests:
- editing/selection/selection-update-during-anonymous-inline-teardown-expected.txt: Added.
- editing/selection/selection-update-during-anonymous-inline-teardown.html: Added.
- 8:19 AM Changeset in webkit [259157] by
-
- 2 edits in trunk/JSTests
stress/test-out-of-memory.js test gaderning
https://bugs.webkit.org/show_bug.cgi?id=209701
Unreviewed test gardening.
- stress/test-out-of-memory.js:
- 6:07 AM Changeset in webkit [259156] by
-
- 5 edits in trunk/Source/WebCore
Unreviewed, reverting r259034.
https://bugs.webkit.org/show_bug.cgi?id=209700
Break StressGC bot (Requested by yusukesuzuki on #webkit).
Reverted changeset:
"IndexedDB: destroy UniqueIDBDatabase when it's not used"
https://bugs.webkit.org/show_bug.cgi?id=209532
https://trac.webkit.org/changeset/259034
- 3:50 AM Changeset in webkit [259155] by
-
- 3 edits in trunk/Tools
[GTK] No libsystemd-devel for DNF
https://bugs.webkit.org/show_bug.cgi?id=209697
Reviewed by Philippe Normand.
Replace libsystemd-devel to systemd-devel for DNF.
- gtk/install-dependencies:
- wpe/install-dependencies:
Mar 27, 2020:
- 9:21 PM Changeset in webkit [259154] by
-
- 6 edits in trunk/Source
Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
https://bugs.webkit.org/show_bug.cgi?id=209693
Reviewed by Zalan Bujtas.
Source/WebCore:
Replace some #if PLATFORM(MAC) with #if ENABLE(WHEEL_EVENT_LATCHING).
ENABLE_WHEEL_EVENT_LATCHING is currently only enabled on macOS, but it's possible
that it should be defined everywhere that ENABLE_KINETIC_SCROLLING is defined.
This requires testing on WPE, GTK etc.
- page/EventHandler.cpp:
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler):
- page/Page.cpp:
- page/Page.h:
Source/WTF:
Define ENABLE_WHEEL_EVENT_LATCHING for macOS.
- wtf/PlatformEnable.h:
- 9:17 PM Changeset in webkit [259153] by
-
- 3 edits2 adds in trunk
Nullptr crash in CompositeEditCommand::moveParagraphs when inserting OL into uneditable parent.
https://bugs.webkit.org/show_bug.cgi?id=209641
<rdar://problem/60915598>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Inserting BR in unlistifyParagraph() or OL/UL in listifyParagraph() would fail
because their insertion position is uneditable. In this case BR/OL/UL becomes
parentless and the code crashes later when their parent is dereferenced in
moveParagraphs().
In unlistifyParagraph(), only insertNodeBefore() and insertNodeAfter() are used
and both check parent of listNode for editability, so in order to avoid assertion
in the above functions, we check the editability of listNode before insertion.
In listifyParagraph() it is hard to predict where the final insertion position would be,
so we check the editability of the insertion position after it is finalized.
Test: editing/inserting/insert-ol-uneditable-parent.html
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::unlistifyParagraph):
(WebCore::InsertListCommand::listifyParagraph):
LayoutTests:
Added a regression test for the crash.
- editing/inserting/insert-ol-uneditable-parent-expected.txt: Added.
- editing/inserting/insert-ol-uneditable-parent.html: Added.
- 9:00 PM Changeset in webkit [259152] by
-
- 3 edits4 adds in trunk
Source/WebCore:
Fix null pointer crash in RenderBox::styleDidChange
https://bugs.webkit.org/show_bug.cgi?id=208311
Patch by Eugene But <eugenebut@chromium.org> on 2020-03-27
Reviewed by Ryosuke Niwa.
RenderBox::styleDidChange crashes when changing style for HTMLBodyElement element.
Crash happens on dereferencing null document().documentElement()->renderer() pointer:
if (.... !documentElementRenderer->style().hasExplicitlySetWritingMode())) { That HTMLBodyElement was added as the second child of document, which is not allowed per spec:
If parent is a document, and any of the statements below, switched on node,
are true, then throw a "HierarchyRequestError" DOMException:
.......
element
parent has an element child that is not child or a doctype is following child.
......
https://dom.spec.whatwg.org/#concept-node-replace
This patch prevents adding HTMLBodyElement as the second child by running more strict checks
inside WebCore::Document::canAcceptChild(). Previously canAcceptChild() would allow all
Replace operations if new child had the same type as old child, even if old child has changed the parent.
If old child has changed the parent (parent is not document), it means that child was removed from document
and it is possible that mutation event handler has already added a new child to document. This is normal
situation, but it means that canAcceptChild() can not short circuit only on comparing the types of old and
new child, and has to run all checks listed in https://dom.spec.whatwg.org/#concept-node-replace
Tests: fast/dom/add-document-child-during-document-child-replacement.html
fast/dom/add-document-child-and-reparent-old-child-during-document-child-replacement.html
- Source/WebCore/dom/Document.cpp:
(WebCore::Document::canAcceptChild):
LayoutTests:
Test for RenderBox::styleDidChange crash fix
https://bugs.webkit.org/show_bug.cgi?id=208311
Patch by Eugene But <eugenebut@chromium.org> on 2020-03-27
Reviewed by Ryosuke Niwa
add-document-child-during-document-child-replacement.html test adds svg child to a document
from mutation event observer while existing document child is being replaced.
After adding svg child, the document should reject the replacement of existing child, per spec:
If parent is a document, and any of the statements below, switched on node,
are true, then throw a "HierarchyRequestError" DOMException:
.......
element
parent has an element child that is not child or a doctype is following child.
......
https://dom.spec.whatwg.org/#concept-node-replace
add-document-child-and-reparent-old-child-during-document-child-replacement.html reparents the old child
to create slightly different state where old child still has a parent but that parent is not document.
- add-document-child-during-document-child-replacement.html:
- add-document-child-and-reparent-old-child-during-document-child-replacement.html:
- 8:05 PM Changeset in webkit [259151] by
-
- 18 edits in trunk/Source
Web content processes should not be able to arbitrarily request pasteboard data from the UI process
https://bugs.webkit.org/show_bug.cgi?id=209657
<rdar://problem/59611585>
Reviewed by Geoff Garen.
Source/WebCore:
Match macOS behavior in the iOS implementation of Pasteboard::createForCopyAndPaste by using the name of the
general pasteboard by default, when initializing a Pasteboard for copying and pasting. In WebKit2, this allows
us to grant permission to the web process when reading from the general pasteboard.
- platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::createForCopyAndPaste):
Source/WebCore/PAL:
Soft-link the string constant
UIPasteboardNameGeneral. See WebKit/ChangeLog for more details.
- pal/ios/UIKitSoftLink.h:
- pal/ios/UIKitSoftLink.mm:
Source/WebKit:
This patch adds a mechanism to prevent the UI process from sending pasteboard data to the web process in
response to WebPasteboardProxy IPC messages, unless the user (or the WebKit client, on behalf of the user) has
explicitly made the contents of the pasteboard available to a page in that web process. We determine the latter
by maintaining information about thechangeCounts of each pasteboard we allow each web process to read. This
mapping is updated when either the user interacts with trusted UI (context menus, DOM paste menu) for pasting,
or an API client calls into -[WKWebView paste:], as is the case when pasting via the callout bar on iOS or
pasting via keyboard shortcuts (i.e. cmd + V) on macOS and iOS.
See per-change comments below for more details. Under normal circumstances, there should be no change in
behavior; refer to the radar for more context.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::grantAccessToCurrentPasteboardData):
Add a helper method to grant access to the data currently on the pasteboard with the given name; for now, this
grants access to all related pages that reside in the same web process, but this may be refactored in a future
change to make the mapping granular to each WebPageProxy rather than WebProcessProxy.
(Note: it is _critical_ that this method is never invoked as a result of IPC from the web process.)
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::grantAccessToCurrentData):
Helper method to grant access to the current contents on the named pasteboard. Calling this method updates
m_pasteboardNameToChangeCountAndProcessesMap, such that the given web process is able to read from the
pasteboard with the given name, as long as thechangeCountis still the same. To implement this behavior,
we either (1) add the process to an existingWeakHashSetof process proxies in the case where the
changeCountis the same as it was when we added the existingWeakHashSet, or in all other cases, (2) add a
replace the current (changeCount, processes) pair with the new change count and a weak set containing only the
given WebProcessProxy.
(WebKit::WebPasteboardProxy::revokeAccessToAllData):
Helper method to revoke all pasteboard access for the given WebProcessProxy. Called when resetting state, e.g.
after web process termination.
(WebKit::WebPasteboardProxy::canAccessPasteboardData const):
Private helper method to check whether an IPC message can access pasteboard data, based on the IPC::Connection
used to receive the message. This helper method returns true if either the WebKit client has used SPI
(both DOMPasteAllowed and JavaScriptCanAccessClipboard) to grant unmitigated access to the clipboard from the
web process, or access has been previously granted due to user interaction in the UI process or API calls made
directly by the WebKit client.
(WebKit::WebPasteboardProxy::didModifyContentsOfPasteboard):
Private helper method to update the pasteboard changeCount that has been granted to a given web process, in the
case where that web process was also responsible for writing data to the pasteboard and the pasteboard
changeCount prior to modifying the pasteboard was still valid. In other words, we should always allow a web
process to read contents it has just written. This allows us to maintain the use case where a WKWebView client
copies and pastes using back-to-back API calls:
`
[webView copy:nil];
[webView paste:nil];
`
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
Add a FIXME to add the
canAccessPasteboardDatacheck here as well. We can't do this yet because the web
process currently relies on being able to read the full list of pasteboard path names when dragging over the
page, but this will be fixed in a followup patch in the near future (see https://webkit.org/b/209671).
(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getPasteboardColor):
(WebKit::WebPasteboardProxy::getPasteboardURL):
In all the call sites where we ask for pasteboard data (with the exception of getPasteboardPathnamesForType, for
the time being), check whether we're allowed to read pasteboard data by consulting canAccessPasteboardData. If
not, return early with no data.
(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):
In all the call sites where we knowingly mutate the pasteboard (and bump the changeCount as a result),
additionally update the changeCount to which we've granted access on behalf of the web process that is modifying
the pasteboard.
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):
(See comments above).
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::performDragOperation):
When performing a drop on macOS, grant temporary access to the drag pasteboard.
(WebKit::WebViewImpl::requestDOMPasteAccess):
(WebKit::WebViewImpl::handleDOMPasteRequestWithResult):
If the user has granted DOM paste access, additionally grant access to the general pasteboard.
- UIProcess/WebPageProxy.cpp:
(WebKit::isPasteCommandName):
(WebKit::WebPageProxy::executeEditCommand):
When executing an edit command on behalf of a WebKit client, check to see if it is a paste command (one of
the four that are defined in EditorCommand.cpp). If so, we grant access to the current contents of the general
pasteboard.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPasteboardProxy.cpp:
(WebKit::WebPasteboardProxy::webProcessProxyForConnection const):
Add a helper method to map a given IPC::Connection to a WebProcessProxy. While we have a list of WebProcessProxy
objects, we know a priori that at most one of them will have the given connection, so returning a single
WebProcessProxy*here is sufficient (rather than a list ofWebProcessProxy*s).
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
Update interface stubs for non-Cocoa platforms.
- UIProcess/WebPasteboardProxy.h:
- UIProcess/WebPasteboardProxy.messages.in:
Decorate more IPC endpoints with
WantsConnection, so that we can reason about theIPC::Connections used to
receive pasteboard messages.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _handleDOMPasteRequestWithResult:]):
If the user has granted DOM paste access, additionally grant access to the general pasteboard.
(-[WKContentView dropInteraction:performDrop:]):
When performing a drop on iOS, grant temporary access to the drag pasteboard.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willPerformPasteCommand):
- UIProcess/libwpe/WebPasteboardProxyLibWPE.cpp:
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::platformDidSelectItemFromActiveContextMenu):
Grant pasteboard access when using the context menu to paste on macOS.
(WebKit::WebPageProxy::willPerformPasteCommand):
Grant pasteboard access when triggering the "Paste" edit command using WebKit SPI.
- 7:47 PM Changeset in webkit [259150] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Make Operator an enum class to avoid Op* identifiers
https://bugs.webkit.org/show_bug.cgi?id=209637
Reviewed by Darin Adler.
Currently, (e.g.) OpLShift is a value of enum Operator while OpLshift is an opcode.
Capitalization aside, it's confusing to be using Op* for disparate purposes like this.
Let's modernize the enum so that this confusion can go away as a side effect.
- bytecompiler/NodesCodegen.cpp:
(JSC::emitIncOrDec):
(JSC::PostfixNode::emitBytecode):
(JSC::PrefixNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecodeInConditionContext):
(JSC::emitReadModifyAssignment):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::makeBinaryNode):
(JSC::ASTBuilder::makeAssignNode):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
- 5:56 PM Changeset in webkit [259149] by
-
- 2 edits in trunk/JSTests
Skip stress/test-out-of-memory.js on memory limited devices.
https://bugs.webkit.org/show_bug.cgi?id=209690
<rdar://problem/60659198>
Reviewed by Keith Miller.
- stress/test-out-of-memory.js:
- 5:45 PM Changeset in webkit [259148] by
-
- 6 edits in trunk/Source/WebCore
REGRESSION (r256577): Previous page continues to display after navigating to media document
https://bugs.webkit.org/show_bug.cgi?id=209630
<rdar://problem/60609318>
Reviewed by Simon Fraser.
Add a way for non-HTML documents to signal visually non-empty state (for example when media document constructs the controls for the media content.)
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
- html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
- html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
- page/FrameView.cpp:
(WebCore::FrameView::resetLayoutMilestones):
(WebCore::FrameView::checkAndDispatchDidReachVisuallyNonEmptyState):
- page/FrameView.h:
- 4:51 PM Changeset in webkit [259147] by
-
- 7 edits in trunk/Source/WebCore
Change SVGRenderingContext::renderSubtreeToImageBuffer() to SVGRenderingContext::renderSubtreeToContext()
https://bugs.webkit.org/show_bug.cgi?id=209679
Reviewed by Said Abou-Hallawa.
renderSubtreeToImageBuffer() just gets the context from the buffer, so change the name and signature
and just pass a GraphicsContext.
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
- rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
- rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage const):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::renderSubtreeToContext):
(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): Deleted.
- rendering/svg/SVGRenderingContext.h:
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
- 4:44 PM Changeset in webkit [259146] by
-
- 6 edits in trunk/Source/WebKit
[iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686
<rdar://problem/60888891>
Reviewed by Darin Adler.
Delay process suspension for a while after loading an app link. This will allow the page's script to pass
information more reliably to the native app handling the navigation.
This patch adds a [WKWebView _willOpenAppLink] SPI that the client needs to call before opening the
app link.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _willOpenAppLink]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willOpenAppLink):
- 4:25 PM Changeset in webkit [259145] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] MediaPlayerPrivateInterface crash in WebKit::VideoFullscreenManager
https://bugs.webkit.org/show_bug.cgi?id=209688
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:13 PM Changeset in webkit [259144] by
-
- 1 copy in tags/Safari-609.2.1.2.10
Tag Safari-609.2.1.2.10.
- 3:26 PM Changeset in webkit [259143] by
-
- 2 edits in trunk/LayoutTests
[ Mac Debug ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209684
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:00 PM Changeset in webkit [259142] by
-
- 1 copy in tags/Safari-609.2.2
Tag Safari-609.2.2.
- 2:32 PM Changeset in webkit [259141] by
-
- 5 edits in trunk
Web Inspector: should also escape the method when Copy as cURL
https://bugs.webkit.org/show_bug.cgi?id=209665
<rdar://problem/58432154>
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Models/Resource.js:
(WI.Resource.prototype.generateCURLCommand):
(WI.Resource.prototype.generateCURLCommand.escapeStringPosix):
The method could be maliciously crafted, so we should also escape it (if needed).
LayoutTests:
- http/tests/inspector/network/copy-as-curl.html:
- 2:25 PM Changeset in webkit [259140] by
-
- 4 edits in trunk/Source/WebCore
Use EnsureStillAliveScope to keep JSValues alive
https://bugs.webkit.org/show_bug.cgi?id=209577
Reviewed by Geoffrey Garen.
Some of WebCore code is using JSC::Strong<> to ensure JSC value alive while doing some operations.
But JSC::EnsureStillAliveScope is sufficient for this use case. This patch replaces these Strong<> use
with JSC::EnsureStillAliveScope.
- bindings/js/JSEventListener.h:
(WebCore::JSEventListener::ensureJSFunction const):
- bindings/js/JSWindowProxy.cpp:
(WebCore::JSWindowProxy::setWindow):
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):
- 2:08 PM Changeset in webkit [259139] by
-
- 52 edits2 copies1 add3 deletes in trunk
Use ANGLE_robust_client_memory to replace framebuffer/texture validation
https://bugs.webkit.org/show_bug.cgi?id=209098
Patch by Kenneth Russell <kbr@chromium.org> on 2020-03-27
Reviewed by Dean Jackson.
Source/ThirdParty/ANGLE:
Incorporated fix from anglebug.com/4504 to make
fast/canvas/webgl/uninitialized-test.html pass.
Incorporated fix from anglebug.com/4518 to make:
webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer.html
webgl/2.0.0/conformance2/rendering/blitframebuffer-test.html
webgl/2.0.0/conformance2/rendering/rgb-format-support.html
webgl/2.0.0/conformance2/state/gl-object-get-calls.html
webgl/2.0.0/conformance2/textures/misc/tex-new-formats.html
pass.
- src/libANGLE/Texture.cpp:
(gl::Texture::copySubImage):
(gl::Texture::ensureSubImageInitialized):
- src/libANGLE/renderer/gl/renderergl_utils.cpp:
(rx::nativegl_gl::InitializeFeatures):
Source/WebCore:
Original patch by James Darpinian.
Delegate most framebuffer, compressed texture, renderbuffer, draw call,
clear, and ReadPixels validation to the ANGLE_robust_client_memory
extension. Delegate much, but not all, texture validation as well.
Remove tracking of textures' levels and immutability state, framebuffer
size and format, and unrenderable texture units from WebCore; these are
now handled by ANGLE. Hook up WebGL 2.0 draw/read framebuffer support
and BlitFramebuffer.
Disable WebGL 2.0 for non-ANGLE backends. It is infeasible to maintain
correctness of GraphicsContextGLOpenGL and GraphicsContextGLOpenGLES
under relaxed OpenGL ES 3.0 constraints.
Covered by existing WebGL layout tests. Several more webgl/2.0.0 tests
pass completely with this change.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
(WebCore::WebGL2RenderingContext::readBuffer):
(WebCore::WebGL2RenderingContext::renderbufferStorageMultisample):
(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::clear):
(WebCore::WebGL2RenderingContext::renderbufferStorage):
(WebCore::WebGL2RenderingContext::baseInternalFormatFromInternalFormat):
- html/canvas/WebGL2RenderingContext.h:
- html/canvas/WebGLFramebuffer.cpp:
- html/canvas/WebGLFramebuffer.h:
- html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::clear):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::reshape):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::checkFramebufferStatus):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::deleteTexture):
(WebCore::WebGLRenderingContextBase::validateVertexAttributes):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::generateMipmap):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::texImageSource2D):
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::texImage2DImpl):
(WebCore::WebGLRenderingContextBase::validateTexFunc):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::texSubImage2DImpl):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):
(WebCore::WebGLRenderingContextBase::texSubImage2DBase):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferColorFormat):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferWidth):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferHeight):
(WebCore::WebGLRenderingContextBase::validateTextureBinding):
(WebCore::WebGLRenderingContextBase::validateTexFuncLevel):
(WebCore::WebGLRenderingContextBase::restoreCurrentFramebuffer):
(WebCore::WebGLRenderingContextBase::restoreCurrentTexture2D):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
(WebCore::WebGLRenderingContextBase::getBoundFramebufferColorFormat): Deleted.
(WebCore::WebGLRenderingContextBase::getBoundFramebufferWidth): Deleted.
(WebCore::WebGLRenderingContextBase::getBoundFramebufferHeight): Deleted.
- html/canvas/WebGLRenderingContextBase.h:
- html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::WebGLTexture):
(WebCore::WebGLTexture::setTarget):
(WebCore::WebGLTexture::deleteObjectImpl):
(WebCore::WebGLTexture::computeLevelCount):
(WebCore::WebGLTexture::canGenerateMipmaps):
- html/canvas/WebGLTexture.h:
- platform/graphics/ExtensionsGL.h:
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::readPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE):
(WebCore::wipeAlphaChannelFromPixels):
(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):
- platform/graphics/angle/ExtensionsGLANGLE.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFloatvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getIntegervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getProgramivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getShaderivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::readPixelsRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getPointervRobustANGLERobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectui64vRobustANGLE):
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::readPixels):
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
- platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
LayoutTests:
Several more webgl/2.0.0 tests pass completely with these changes.
Rebaseline all WebGL-related layout tests. Nearly all diffs are forward
progressions. All will eventually be passed as more of WebGL 2.0 is
implemented.
Removed fast/canvas/webgl/webgl-specific.html test, which was
duplicated in webgl/1.0.3 and webgl/2.0.0 and which was testing
behavior from an old version of the WebGL specification.
Revised uninitialized-test.html to test current WebGL
specification; copyTexSubImage2D now leaves out-of-range
pixels untouched, rather than zeroing them.
- fast/canvas/webgl/uninitialized-test.html:
- fast/canvas/webgl/webgl-specific-expected.txt: Removed.
- fast/canvas/webgl/webgl-specific.html: Removed.
- fast/canvas/webgl/webgl2-texStorage-expected.txt:
- platform/gtk/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Copied from LayoutTests/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt.
- platform/ios/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Removed.
- platform/mac/TestExpectations:
- platform/wpe/TestExpectations:
- platform/wpe/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Copied from LayoutTests/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt.
- webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt:
- webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d-expected.txt:
- webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt:
- webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
- webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt:
- webgl/2.0.0/conformance2/renderbuffers/readbuffer-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt:
- webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
- webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt:
- webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt:
- webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
- webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
- webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
- webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
- webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt:
- 2:07 PM Changeset in webkit [259138] by
-
- 4 edits in trunk/Source/WebCore
HTMLTrackElement should be pending while it is waiting for LoadableTextTrack request
https://bugs.webkit.org/show_bug.cgi?id=208798
<rdar://problem/60325421>
Reviewed by Geoffrey Garen.
Have HTMLTrackElement and subclass ActiveDOMObject::hasPendingActivity() to keeps its
wrapper alive if its in LOADING state and the page's script has relevant load events
event listeners registered.
No new tests, covered by media/track/track-disabled-addcue.html.
- html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::create):
(WebCore::HTMLTrackElement::didCompleteLoad):
(WebCore::HTMLTrackElement::readyState const):
(WebCore::HTMLTrackElement::activeDOMObjectName const):
(WebCore::HTMLTrackElement::eventListenersDidChange):
(WebCore::HTMLTrackElement::hasPendingActivity const):
(WebCore::HTMLTrackElement::readyState): Deleted.
- html/HTMLTrackElement.h:
- html/HTMLTrackElement.idl:
- 1:57 PM Changeset in webkit [259137] by
-
- 7 edits4 adds in trunk
Hovering over countries at https://covidinc.io/ shows bizarre rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=209635
<rdar://problem/60935010>
Reviewed by Said Abou-Hallawa.
Source/WebCore:
RenderSVGResourceClipper::applyClippingToContext() cached an ImageBuffer per RenderObject
when using a image buffer mask. However, the function created and rendered into this image buffer
using repaintRect, which can change between invocations. Painting with different repaintRects
is very common when rendering into page tiles.
The buffer can only be re-used if the inputs used to create the buffer (objectBoundingBox, absoluteTransform)
are the same, so store those and compare them when determining when to use the cached buffer, and
don't use repaintRect when setting up the buffer.
This revealed another problem where renderers with visual overflow could be truncated by
the clipping, tested by imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml, which occurred
because RenderLayer::setupClipPath() used the 'svgReferenceBox' for the clipping bounds, which
is the content box of the renderer excluding overflow. Fix this by using the bounds of the layer,
which includes the bounds of descendants.
Tests: svg/clip-path/clip-path-on-overflowing.html
svg/clip-path/resource-clipper-multiple-repaints.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::addRendererToClipper):
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):
- rendering/svg/RenderSVGResourceClipper.h:
LayoutTests:
Ref test that exercises the code path by painting into a tiled compositing
layer.
- svg/clip-path/clip-path-on-overflowing-expected.html: Added.
- svg/clip-path/clip-path-on-overflowing.html: Added.
- svg/clip-path/mask-nested-clip-path-010-expected.svg:
- svg/clip-path/mask-nested-clip-path-010.svg: Copied from imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml,
and modified to have a non-zero offset for better testing of the clipping bounds computation.
- svg/clip-path/resource-clipper-multiple-repaints-expected.html: Added.
- svg/clip-path/resource-clipper-multiple-repaints.html: Added.
- 1:53 PM Changeset in webkit [259136] by
-
- 2 edits in trunk/Source/WebKit
NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked should validate its parameters
<https://webkit.org/b/209614>
<rdar://problem/60096304>
Reviewed by Alex Christensen.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(NETWORK_PROCESS_MESSAGE_CHECK):
- Define/undef macro for killing WebContent process when an invalid IPC message is received.
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):
- Use NETWORK_PROCESS_MESSAGE_CHECK to validate its parameters.
- 1:33 PM Changeset in webkit [259135] by
-
- 3 edits in trunk/Source/WebCore
[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MediaRecorder::dispatchError
https://bugs.webkit.org/show_bug.cgi?id=209674
<rdar://problem/60541201>
Reviewed by Darin Adler.
Keep the MediaRecorder wrapper alive while its state is not inactive (i.e. it is recording
or paused), as it may still dispatch events.
Also drop MediaRecorder::scheduleDeferredTask() and use the utility functions in
ActiveDOMObject instead to achieve the same thing.
No new tests, already covered by http/wpt/mediarecorder/MediaRecorder-onremovetrack.html.
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::suspend):
(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::didAddOrRemoveTrack):
(WebCore::MediaRecorder::hasPendingActivity const):
(WebCore::MediaRecorder::scheduleDeferredTask): Deleted.
- Modules/mediarecorder/MediaRecorder.h:
- 12:48 PM Changeset in webkit [259134] by
-
- 2 edits in trunk/Source/WTF
REGRESSION(r258857): Broke aarch64 JSCOnly CI
https://bugs.webkit.org/show_bug.cgi?id=209670
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-27
Reviewed by Carlos Alberto Lopez Perez.
Change aarch64 to use 4 KB rather than 64 KB as the ceiling on page size.
This change is definitely incorrect, because it will break our internal aarch64 CI that uses
64 KB pages. But maybe it will fix the public aarch64 CI bot that is using 4 KB pages?
Further investigation is required, because 64 KB should have been a safe value for all
platforms, but first step is to commit this and see what happens.
- wtf/PageBlock.h:
- 12:43 PM Changeset in webkit [259133] by
-
- 2 edits in trunk/Source/WebKit
Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317
Reviewed by Dean Jackson.
- Platform/spi/ios/UIKitSPI.h:
One more attempt. IPHONE_OS_VERSION_MAX_ALLOWED is inaccurate.
- 12:12 PM Changeset in webkit [259132] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] ASSERTION FAILED: m_messageEventCount @ WebCore::ServiceWorkerThread::finishedFiringMessageEvent()
https://bugs.webkit.org/show_bug.cgi?id=209672
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:39 AM Changeset in webkit [259131] by
-
- 21 edits in trunk/Source/JavaScriptCore
Fix instances of new.target that should be syntax errors
https://bugs.webkit.org/show_bug.cgi?id=208040
<rdar://problem/59653142>
Reviewed by Michael Saboff.
We were not throwing the appropriate syntax errors for the following usages of new.target:
- Class field initializers outside ordinary functions: we were missing a check that the closestOrdinaryFunctionScope was not the global scope.
- Within an eval inside an arrow function: we were only checking that the EvalContextType should be FunctionEvalContext, but that does not tell us whether it's an arrow function or an ordinary function. To fix that we must thread that information from the executables to the parser.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::link):
- bytecode/UnlinkedFunctionExecutable.h:
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
- interpreter/Interpreter.cpp:
(JSC::eval):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseMemberExpression):
- parser/Parser.h:
(JSC::parse):
- runtime/CodeCache.cpp:
(JSC::generateUnlinkedCodeBlockImpl):
- runtime/DirectEvalExecutable.cpp:
(JSC::DirectEvalExecutable::create):
(JSC::DirectEvalExecutable::DirectEvalExecutable):
- runtime/DirectEvalExecutable.h:
- runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::EvalExecutable):
- runtime/EvalExecutable.h:
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::FunctionExecutable):
- runtime/FunctionExecutable.h:
- runtime/GlobalExecutable.h:
(JSC::GlobalExecutable::GlobalExecutable):
- runtime/IndirectEvalExecutable.cpp:
(JSC::IndirectEvalExecutable::IndirectEvalExecutable):
- runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::ProgramExecutable):
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::ScriptExecutable):
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::isInsideOrdinaryFunction const):
- 11:30 AM Changeset in webkit [259130] by
-
- 7 edits in trunk/Source/WebCore
[StressGC] ASSERTION FAILED: m_wrapper under WebCore::WebGLRenderingContextBase::dispatchContextLostEvent
https://bugs.webkit.org/show_bug.cgi?id=209660
<rdar://problem/60541733>
Reviewed by Darin Adler.
Make HTMLCanvasElement an ActiveDOMObject since WebGLRenderingContextBase needs to dispatch events
asynchronously on its canvas element. Update WebGLRenderingContextBase to use the HTML event loop
to dispatch those events asynchronously instead of using suspendible timers.
No new tests, already covered by webgl/max-active-contexts-webglcontextlost-prevent-default.html.
- dom/TaskSource.h:
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::create):
(WebCore::HTMLCanvasElement::activeDOMObjectName const):
- html/HTMLCanvasElement.h:
- html/HTMLCanvasElement.idl:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent): Deleted.
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent): Deleted.
- html/canvas/WebGLRenderingContextBase.h:
- 11:21 AM Changeset in webkit [259129] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 Release ] media/modern-media-controls/seek-backward-support/seek-backward-support.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209668
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:07 AM Changeset in webkit [259128] by
-
- 3 edits in trunk/Source/WebCore
Use Optional<> for a lazily-computed bounds rectangle
https://bugs.webkit.org/show_bug.cgi?id=209659
Reviewed by Zalan Bujtas.
Replace LayoutRect& rootRelativeBounds, bool& rootRelativeBoundsComputed with Optional<LayoutRect>.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintLayerContents):
- rendering/RenderLayer.h:
- 11:05 AM Changeset in webkit [259127] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add missing scope release to DataView's buffer getter
https://bugs.webkit.org/show_bug.cgi?id=209663
Reviewed by Yusuke Suzuki.
- runtime/JSDataViewPrototype.cpp:
(JSC::dataViewProtoGetterBuffer):
- 10:58 AM Changeset in webkit [259126] by
-
- 2 edits in trunk/Source/WebKit
Use -_hasFocusedElement in -_didUpdateInputMode
https://bugs.webkit.org/show_bug.cgi?id=209662
Reviewed by Wenson Hsieh.
Remove duplication by using -_hasFocusedElement.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didUpdateInputMode:]):
- 10:54 AM Changeset in webkit [259125] by
-
- 2 edits in trunk/JSTests
Skip new memory test stress/typed-array-oom-in... in memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=209661
Patch by Paulo Matos <Paulo Matos> on 2020-03-27
Reviewed by Keith Miller.
- stress/typed-array-oom-in-buffer-accessor.js:
- 10:00 AM Changeset in webkit [259124] by
-
- 17 edits in trunk/Source
DragData::containsURL() should avoid reading URL strings from the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=209642
Work towards <rdar://problem/59611585>
Reviewed by Tim Horton.
Source/WebCore:
Refactor the implementation of DragData::containsURL(), such that in WebKit2, the web process never needs to
reason about the value of any string data in the pasteboard. We move most of the Cocoa-specific logic in
DragData::containsURL into PlatformPasteboard, and add new PasteboardStrategy methods in support of this. See
below for more details. There should be no change in behavior; however, this has the minor benefit of reducing
the number of sync IPC to 1 (2 in the case of macOS) in both containsURL and asURL.
- platform/PasteboardStrategy.h:
Add new strategy methods containsURLStringSuitableForLoading and urlStringSuitableForLoading, which are used in
DragData::containsURL and DragData::asURL, respectively.
- platform/PlatformPasteboard.h:
- platform/cocoa/DragDataCocoa.mm:
(WebCore::DragData::containsURL const):
In Cocoa platforms, the argument to containsURL was effectively unused. Leave only the type behind, now that we
don't need to plumb it through to asURL() anymore.
(WebCore::DragData::asURL const):
In both asURL and containsURL, use the new PasteboardStrategy helpers to get information about loadable URLs in
the drag pasteboard. A bit of macOS-specific code remains here since it relies on DragData::fileNames() --
information which is not present in the platform pasteboard.
- platform/cocoa/PlatformPasteboardCocoa.mm:
(WebCore::PlatformPasteboard::urlStringSuitableForLoading):
Move the Cocoa-specific implementation of DragData::asURL into PlatformPasteboardCocoa, since the implementation
is mostly the same (with some minor additions for macOS). The only minor changes here (and below, in
containsURLStringSuitableForLoading) is the use of URL::protocolIsInHTTPFamily() instead of checking that
-[NSURL scheme] is equal to either @"http" or @"https".
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::containsURLStringSuitableForLoading):
Move the platform-dependent implementations of DragData::containsURL to PlatformPasteboardIOS and
PlatformPasteboardMac. These implementations were already quite different, so this split into -IOS and -Mac
files is cleaner than using #if and #else in the same method implementation.
- platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::containsURLStringSuitableForLoading):
Source/WebKit:
See WebCore/ChangeLog for more details.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
- UIProcess/WebPasteboardProxy.cpp:
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
- UIProcess/WebPasteboardProxy.h:
- UIProcess/WebPasteboardProxy.messages.in:
Add IPC plumbing for the new pasteboard strategy methods: containsURLStringSuitableForLoading and
urlStringSuitableForLoading.
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebKit::WebPlatformStrategies::urlStringSuitableForLoading):
- WebProcess/WebCoreSupport/WebPlatformStrategies.h:
Source/WebKitLegacy/mac:
See WebCore/ChangeLog for more details.
- WebCoreSupport/WebPlatformStrategies.h:
- WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebPlatformStrategies::urlStringSuitableForLoading):
- 9:54 AM Changeset in webkit [259123] by
-
- 8 edits in branches/safari-610.1.7-branch/Source
Versioning.
- 9:53 AM Changeset in webkit [259122] by
-
- 12 edits in trunk/Source/WebCore
[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MainThreadGenericEventQueue::dispatchOneEvent
https://bugs.webkit.org/show_bug.cgi?id=209655
<rdar://problem/60541442>
Reviewed by Geoffrey Garen.
TrackListBase should subclass ActiveDOMObject and keep its wrapper alive when there are pending
events to be dispatched. TrackListBase has a queue to dispatch events asynchronously.
No new tests, covered by media/track/track-remove-track.html.
- html/track/AudioTrackList.cpp:
(WebCore::AudioTrackList::activeDOMObjectName const):
- html/track/AudioTrackList.h:
- html/track/AudioTrackList.idl:
- html/track/TextTrackList.cpp:
(WebCore::TextTrackList::activeDOMObjectName const):
- html/track/TextTrackList.h:
- html/track/TextTrackList.idl:
- html/track/TrackListBase.cpp:
(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::hasPendingActivity const):
- html/track/TrackListBase.h:
- html/track/VideoTrackList.cpp:
(WebCore::VideoTrackList::activeDOMObjectName const):
- html/track/VideoTrackList.h:
- html/track/VideoTrackList.idl:
- 9:45 AM Changeset in webkit [259121] by
-
- 34 edits in trunk/LayoutTests
Clean up fast/scrolling/latching tests
https://bugs.webkit.org/show_bug.cgi?id=209629
Reviewed by Zalan Bujtas.
These tests had a bunch of issues:
- mixture of waitUntilDone/jsTestIsAsync
- not all used eventSender.monitorWheelEvents
- script in the body for no reason
- commented out code, unused variables
- confusing comments
- contradictory test content
- fast/scrolling/latching/iframe_in_iframe-expected.txt:
- fast/scrolling/latching/iframe_in_iframe.html:
- fast/scrolling/latching/resources/inner_content.html:
- fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html:
- fast/scrolling/latching/scroll-div-latched-div-expected.txt:
- fast/scrolling/latching/scroll-div-latched-div.html:
- fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt:
- fast/scrolling/latching/scroll-div-latched-mainframe.html:
- fast/scrolling/latching/scroll-div-no-latching-expected.txt:
- fast/scrolling/latching/scroll-div-no-latching.html:
- fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt:
- fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
- fast/scrolling/latching/scroll-iframe-fragment-expected.txt:
- fast/scrolling/latching/scroll-iframe-fragment.html:
- fast/scrolling/latching/scroll-iframe-in-overflow-expected.txt:
- fast/scrolling/latching/scroll-iframe-in-overflow.html:
- fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt:
- fast/scrolling/latching/scroll-iframe-latched-iframe.html:
- fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt:
- fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
- fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt:
- fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
- fast/scrolling/latching/scroll-latched-nested-div-expected.txt:
- fast/scrolling/latching/scroll-latched-nested-div.html:
- fast/scrolling/latching/scroll-nested-iframe-expected.txt:
- fast/scrolling/latching/scroll-nested-iframe.html:
- fast/scrolling/latching/scroll-select-bottom-test-expected.txt:
- fast/scrolling/latching/scroll-select-bottom-test.html:
- fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt:
- fast/scrolling/latching/scroll-select-latched-mainframe.html:
- fast/scrolling/latching/scroll-select-latched-select-expected.txt:
- fast/scrolling/latching/scroll-select-latched-select.html:
- platform/mac-wk2/TestExpectations:
- 9:41 AM Changeset in webkit [259120] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database.html is flaky failing on safari-609-branch
<rdar://problem/60940165>
Unreviewed test gardening. Updating expectations for ITP test which
should be skipped due to a short timestampResolution.
- platform/mac-wk2/TestExpectations:
- 9:37 AM Changeset in webkit [259119] by
-
- 2 edits in branches/safari-609.2.1.2-branch/Source/WebCore
Cherry-pick r257640. rdar://problem/60919944
updateCSSTransitionsForElementAndProperty should clone RenderStyles
https://bugs.webkit.org/show_bug.cgi?id=208356
rdar://59869560
Reviewed by Antti Koivisto.
Make ownership of the local variable clear by cloning the RenderStyles
used in updateCSSTransitionsForElementAndProperty rather than referencing
different versions.
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:37 AM Changeset in webkit [259118] by
-
- 15 edits in branches/safari-609.2.1.2-branch
Cherry-pick r256627. rdar://problem/60919944
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Mark Web Platform Tests progressions.
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
Source/WebCore:
While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.
To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.
If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.
Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.
- animation/AnimationTimeline.cpp: (WebCore::keyframeEffectForElementAndProperty): (WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
- animation/AnimationTimeline.h:
- animation/CSSAnimation.cpp: (WebCore::CSSAnimation::create): (WebCore::CSSAnimation::CSSAnimation):
- animation/CSSAnimation.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property. (WebCore::KeyframeEffect::clearBlendingKeyframes): (WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes): (WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes): (WebCore::KeyframeEffect::apply):
- animation/KeyframeEffect.h: (WebCore::KeyframeEffect::unanimatedStyle const):
- style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::createAnimatedElementUpdate):
LayoutTests:
Mark that a couple of tests are no longer flaky.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256627 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:37 AM Changeset in webkit [259117] by
-
- 1 edit in branches/safari-609.2.1.2-branch/Source/WebCore/ChangeLog
Revert "Cherry-pick r257640. rdar://problem/60260332"
This reverts commit r258426.
- 9:17 AM WebKitGTK/2.28.x edited by
- (diff)
- 9:12 AM Changeset in webkit [259116] by
-
- 7 edits in trunk/Source/WebCore
Move applyUserAgentIfNeeded calls to a more central place
https://bugs.webkit.org/show_bug.cgi?id=209587
Patch by Rob Buis <rbuis@igalia.com> on 2020-03-27
Reviewed by Darin Adler.
Make main resource loads stop calling applyUserAgentIfNeeded
and instead do it in the CachedResourceLoader.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToRequest):
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::createRequest):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):
- loader/cache/CachedResourceLoader.h:
- loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::updateReferrerAndOriginHeaders):
(WebCore::CachedResourceRequest::updateUserAgentHeader):
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders): Deleted.
- loader/cache/CachedResourceRequest.h:
- 9:11 AM Changeset in webkit [259115] by
-
- 19 edits1 add in trunk/Source
Filter DOMCache records in network process to reduce the number of records being sent to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=209469
<rdar://problem/55207565>
Reviewed by Alex Christensen.
Source/WebCore:
Instead of retrieving all records and filtering them in WebProcess, WebProcess is now
sending filtering options to NetworkProcess.
In case of keys, ask network process to not send back any response.
Covered by existing tests.
- Headers.cmake:
- Modules/cache/CacheStorageConnection.h:
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::doMatch):
(WebCore::DOMCache::matchAll):
(WebCore::DOMCache::keys):
(WebCore::DOMCache::queryCache):
(WebCore::DOMCache::retrieveRecords): Deleted.
(WebCore::DOMCache::queryCacheWithTargetStorage): Deleted.
- Modules/cache/DOMCache.h:
- Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::retrieveRecords):
- Modules/cache/WorkerCacheStorageConnection.h:
- WebCore.xcodeproj/project.pbxproj:
- page/CacheStorageProvider.h:
Source/WebKit:
Receive new retrieve record options and make use of them to filter the records sent back to the WebProcess.
This includes filtering the records for a given requests.
This includes removing responses in case the request is made to gather all requests for Cache.keys().
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::retrieveRecords):
- NetworkProcess/cache/CacheStorageEngine.h:
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::retrieveRecords):
- NetworkProcess/cache/CacheStorageEngineCache.h:
- NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::retrieveRecords):
- NetworkProcess/cache/CacheStorageEngineConnection.h:
- NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
- WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::retrieveRecords):
- WebProcess/Cache/WebCacheStorageConnection.h:
- 7:51 AM Changeset in webkit [259114] by
-
- 2 edits1 delete in trunk/JSTests
Pass hardness for test numberingSystemsForLocale-cached-... through test header
https://bugs.webkit.org/show_bug.cgi?id=209476
Patch by Paulo Matos <Paulo Matos> on 2020-03-27
Reviewed by Yusuke Suzuki.
Improvement over change r258190. Instead of creating a new test file
duplicating contents where a hardness parameter is different, pass this
through the test header using the -e flag to jsc.
- stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js:
- stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access_memory-limited.js: Removed.
- 6:20 AM WebKitGTK/2.28.x edited by
- (diff)
- 6:14 AM Changeset in webkit [259113] by
-
- 3 edits in trunk/Source/WebCore
[WPE] Unnecessary gl synchronization when using an OpenMAX video decoder and GLES2
https://bugs.webkit.org/show_bug.cgi?id=209647
Reviewed by Adrian Perez de Castro.
Don't perform the call to gst_gl_sync_meta_wait_cpu() when using an OpenMAX decoder,
as we don't need synchronization in that case and the internal call to glFinish()
casues an important fps drop.
- platform/graphics/gstreamer/GStreamerCommon.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::GstVideoFrameHolder::waitForCPUSync):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- 5:54 AM Changeset in webkit [259112] by
-
- 22 edits in trunk/Source
Source/WebCore:
[GTK][WPE] Enable kinetic scrolling with async rendering
https://bugs.webkit.org/show_bug.cgi?id=209230
Reviewed by Žan Doberšek.
Refactor ScrollAnimationKinetic so that it no longer depends on
ScrollableArea, uses RunLoop::Timer and is responsible for tracking
the history of scroll events. This allows it to be used in
ScrollingTree*ScrollingNodeNicosia to provide kinetic scrolling when
async scrolling is enabled, on GTK and WPE.
No new tests, this just enables existing functionality in more situations.
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::scrollTo):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
- platform/ScrollAnimationKinetic.cpp:
(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):
(WebCore::ScrollAnimationKinetic::appendToScrollHistory):
(WebCore::ScrollAnimationKinetic::clearScrollHistory):
(WebCore::ScrollAnimationKinetic::computeVelocity):
(WebCore::ScrollAnimationKinetic::start):
- platform/ScrollAnimationKinetic.h:
- platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorGeneric::handleWheelEvent):
(WebCore::ScrollAnimatorGeneric::willEndLiveResize):
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar):
- platform/generic/ScrollAnimatorGeneric.h:
Source/WebKit:
[GTK][WPE] Enable kinetic scrolling with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=209230
Reviewed by Žan Doberšek.
Modify WPE mousewheel event delivery so that it includes the necessary
phases needed to infer press/release times and allow for kinetic
scrolling.
- Shared/NativeWebWheelEvent.h:
- Shared/WebEvent.h:
- Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):
- Shared/libwpe/NativeWebWheelEventLibWPE.cpp:
(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
- Shared/libwpe/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebWheelEvent):
- Shared/libwpe/WebEventFactory.h:
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithTouchEvent):
- UIProcess/API/wpe/ScrollGestureController.cpp:
(WebKit::ScrollGestureController::handleEvent):
- UIProcess/API/wpe/ScrollGestureController.h:
(WebKit::ScrollGestureController::phase):
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::m_backend):
- 3:36 AM Changeset in webkit [259111] by
-
- 361 edits8 adds20 deletes in trunk/Source/ThirdParty/libwebrtc
Bump boringssl version to M82
https://bugs.webkit.org/show_bug.cgi?id=209538
Reviewed by Eric Carlson.
- CMakeLists.txt:
- Source/third_party/boringssl: Updated.
- WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
- libwebrtc.xcodeproj/project.pbxproj:
- 2:53 AM Changeset in webkit [259110] by
-
- 2 edits in trunk/Source/WebCore
Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=209631
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-27
Reviewed by Carlos Garcia Campos.
- platform/UserAgentQuirks.cpp:
(WebCore::UserAgentQuirks::stringForQuirk):
- 2:53 AM Changeset in webkit [259109] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Allow passing gst-build Meson options
https://bugs.webkit.org/show_bug.cgi?id=209608
Reviewed by Žan Doberšek.
Add support for the GST_BUILD_ARGS env var storing gst-build Meson options.
- flatpak/flatpakutils.py:
(WebkitFlatpak.setup_gstbuild):
- 2:52 AM Changeset in webkit [259108] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Warn when gst-build support was requested but GST_BUILD_PATH is not set
https://bugs.webkit.org/show_bug.cgi?id=209599
Reviewed by Žan Doberšek.
- flatpak/flatpakutils.py:
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.setup_dev_env):