Timeline



Mar 28, 2019:

11:05 PM Changeset in webkit [243642] by msaboff@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

[YARR] Precompute BMP / non-BMP status when constructing character classes
https://bugs.webkit.org/show_bug.cgi?id=196296

Reviewed by Keith Miller.

Changed CharacterClass::m_hasNonBMPCharacters into a character width bit field which
indicateis if the class includes characters from either BMP, non-BMP or both ranges.
This allows the recognizing code to eliminate checks for the width of a matched
characters when the class has only one width. The character width is needed to
determine if we advance 1 or 2 character. Also, the pre-computed width of character
classes that contains either all BMP or all non-BMP characters allows the parser to
use fixed widths for terms using those character classes. Changed both the code gen
scripts and Yarr compiler to compute this bit field during the construction of
character classes.

For JIT'ed code of character classes that contain either all BMP or all non-BMP
characters, we can eliminate the generic check we were doing do compute how much
to advance after sucessfully matching a character in the class.

Generic isBMP check BMP only non-BMP only
-------------- -------------- --------------
inc %r9d inc %r9d add $0x2, %r9d
cmp $0x10000, %eax
jl isBMP
cmp %edx, %esi
jz atEndOfString
inc %r9d
inc %esi

isBMP:

For character classes that contained non-BMP characters, we were always generating
the code in the left column. The middle column is the code we generate for character
classes that contain only BMP characters. The right column is the code we now
generate if the character class has only non-BMP characters. In the fix width cases,
we can eliminate both the isBMP check as well as the atEndOfString check. The
atEndOfstring check is eliminated since we know how many characters this character
class requires and that check can be factored out to the beginning of the current
alternative. For character classes that contain both BMP and non-BMP characters,
we still generate the generic left column.

This change is a ~8% perf progression on UniPoker and a ~2% improvement on RexBench
as a whole.

  • runtime/RegExp.cpp:

(JSC::RegExp::matchCompareWithInterpreter):

  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::checkCharacterClassDontAdvanceInputForNonBMP):
(JSC::Yarr::Interpreter::matchCharacterClass):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::optimizeAlternative):
(JSC::Yarr::YarrGenerator::matchCharacterClass):
(JSC::Yarr::YarrGenerator::advanceIndexAfterCharacterClassTermMatch):
(JSC::Yarr::YarrGenerator::tryReadUnicodeCharImpl):
(JSC::Yarr::YarrGenerator::generateCharacterClassOnce):
(JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
(JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::YarrGenerator):
(JSC::Yarr::YarrGenerator::compile):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor):
(JSC::Yarr::CharacterClassConstructor::reset):
(JSC::Yarr::CharacterClassConstructor::charClass):
(JSC::Yarr::CharacterClassConstructor::addSorted):
(JSC::Yarr::CharacterClassConstructor::addSortedRange):
(JSC::Yarr::CharacterClassConstructor::hasNonBMPCharacters):
(JSC::Yarr::CharacterClassConstructor::characterWidths):
(JSC::Yarr::PatternTerm::dump):
(JSC::Yarr::anycharCreate):

  • yarr/YarrPattern.h:

(JSC::Yarr::operator|):
(JSC::Yarr::operator&):
(JSC::Yarr::operator|=):
(JSC::Yarr::CharacterClass::CharacterClass):
(JSC::Yarr::CharacterClass::hasNonBMPCharacters):
(JSC::Yarr::CharacterClass::hasOneCharacterSize):
(JSC::Yarr::CharacterClass::hasOnlyNonBMPCharacters):
(JSC::Yarr::PatternTerm::invert const):
(JSC::Yarr::PatternTerm::invert): Deleted.

  • yarr/create_regex_tables:
  • yarr/generateYarrUnicodePropertyTables.py:
10:18 PM Changeset in webkit [243641] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

Unreviewed build fix.

  • wtf/CMakeLists.txt: Added SpanningTree.h to WTF_PUBLIC_HEADERS.
9:57 PM Changeset in webkit [243640] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit

CFDictionary encoder crashes on non-string keys.
https://bugs.webkit.org/show_bug.cgi?id=196388
rdar://problem/49339242

Reviewed by Ryosuke Niwa.

Allow non-string keys in CFDictionary encoding/decoding. Encode the correct
size for dictionaries and arrays when unknown keys or values are skipped.
Allow null array encoding and decoding like dictionary already allowed.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::encode):
(IPC::decode):

9:42 PM Changeset in webkit [243639] by sbarati@apple.com
  • 6 edits
    2 adds in trunk

BackwardsGraph needs to consider back edges as the backward's root successor
https://bugs.webkit.org/show_bug.cgi?id=195991

Reviewed by Filip Pizlo.

JSTests:

  • stress/map-b3-licm-infinite-loop.js: Added.

Source/JavaScriptCore:

  • b3/testb3.cpp:

(JSC::B3::testInfiniteLoopDoesntCauseBadHoisting):
(JSC::B3::run):

Source/WTF:

Previously, our backwards graph analysis was slightly wrong. The idea of
backwards graph is that the root of the graph has edges to terminals in
the original graph. And then the original directed edges in the graph are flipped.

However, we weren't considering loops as a form of terminality. For example,
we wouldn't consider an infinite loop as a terminal. So there were no edges
from the root to a node in the infinite loop. This lead us to make mistakes
when we used backwards dominators to compute control flow equivalence.

This is better understood in an example:

`
preheader:
while (1) {

if (!isCell(v))

continue;

load structure ID
if (cond)

continue;

return

}
`

In the previous version of this algorithm, the only edge from the backwards
root would be to the block containing the return. This would lead us to
believe that the loading of the structureID backwards dominates the preheader,
leading us to believe it's control flow equivalent to preheader. This is
obviously wrong, since we can loop forever if "v" isn't a cell.

The solution here is to treat any backedge in the graph as a "terminal" node.
Since a backedge implies the existence of a loop.

In the above example, the backwards root now has an edge to both blocks with
"continue". This prevents us from falsely claiming that the return is control
flow equivalent with the preheader.

This patch uses DFS spanning trees to compute back edges. An edge
u->v is a back edge when u is a descendent of v in the DFS spanning
tree of the Graph.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/BackwardsGraph.h:

(WTF::BackwardsGraph::BackwardsGraph):

  • wtf/SpanningTree.h: Added.

(SpanningTree::SpanningTree):
(SpanningTree::isDescendent):

7:34 PM Changeset in webkit [243638] by Chris Dumez
  • 10 edits in trunk

Support <object>.contentWindow
https://bugs.webkit.org/show_bug.cgi?id=195562

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing or failing later on.

  • web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-03-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-attributes-expected.txt:

Source/WebCore:

Support <object>.contentWindow as per:

No new tests, updated / rebaselined existing tests.

  • html/HTMLObjectElement.idl:

LayoutTests:

Update existing test to extend test coverage.

  • fast/dom/HTMLObjectElement/object-as-frame-expected.txt:
  • fast/dom/HTMLObjectElement/object-as-frame.html:
7:26 PM Changeset in webkit [243637] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

FontFace constructor throws an exception when there is a name which starts with a number
https://bugs.webkit.org/show_bug.cgi?id=196232
<rdar://problem/49293978>

Reviewed by Ryosuke Niwa.

Source/WebCore:

We were technically following the spec, but Chrome and Firefox are both consistent and it was making a website break.
This is just a short-term fix until the underlying https://bugs.webkit.org/show_bug.cgi?id=196381 is fixed.

Test: fast/text/font-face-family.html

  • css/FontFace.cpp:

(WebCore::FontFace::setFamily):

LayoutTests:

  • fast/text/font-face-family-expected.txt: Added.
  • fast/text/font-face-family.html: Added.
7:19 PM Changeset in webkit [243636] by Justin Fan
  • 23 edits in trunk/Source/WebCore

[Web GPU] Replace 'unsigned long' with 'unsigned' when implementing u32 variables
https://bugs.webkit.org/show_bug.cgi?id=194618
<rdar://problem/48055796>

Reviewed by Myles C. Maxfield.

WebIDL for "unsigned" on 64-bit is "unsigned long". Update Web GPU to match.

No new tests; no change in behavior.

  • Modules/webgpu/GPUBindGroupLayoutBinding.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLVertexBufferIndexCalculator.cpp:

(WebCore::WHLSL::Metal::calculateVertexBufferIndex):

  • Modules/webgpu/WHLSL/Metal/WHLSLVertexBufferIndexCalculator.h:
  • Modules/webgpu/WebGPUBindGroupBinding.h:
  • Modules/webgpu/WebGPUBindGroupDescriptor.cpp:

(WebCore::validateBufferBindingType):
(WebCore::WebGPUBindGroupDescriptor::tryCreateGPUBindGroupDescriptor const):

  • Modules/webgpu/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::setSubData):

  • Modules/webgpu/WebGPUBuffer.h:
  • Modules/webgpu/WebGPUBufferBinding.h:
  • Modules/webgpu/WebGPURenderPassEncoder.cpp:

(WebCore::WebGPURenderPassEncoder::setVertexBuffers):
(WebCore::WebGPURenderPassEncoder::draw):

  • Modules/webgpu/WebGPURenderPassEncoder.h:
  • platform/graphics/gpu/GPUBindGroupBinding.h:
  • platform/graphics/gpu/GPUBindGroupLayout.h:
  • platform/graphics/gpu/GPUBufferBinding.h:
  • platform/graphics/gpu/GPUExtent3D.h:
  • platform/graphics/gpu/GPULimits.h:
  • platform/graphics/gpu/GPURenderPassEncoder.h:
  • platform/graphics/gpu/GPUTextureDescriptor.h:
  • platform/graphics/gpu/cocoa/GPUBindGroupLayoutMetal.mm:

(WebCore::GPUBindGroupLayout::tryCreate):

  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:

(WebCore::GPUBindGroup::tryCreate):

  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:

(WebCore::GPURenderPassEncoder::setVertexBuffers):
(WebCore::GPURenderPassEncoder::draw):

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::trySetInputStateForPipelineDescriptor):

  • platform/graphics/gpu/cocoa/GPUTextureMetal.mm:

(WebCore::storageModeForPixelFormatAndSampleCount):

6:56 PM Changeset in webkit [243635] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

getBoundingClientRect always returns empty rect on a collapsed range
https://bugs.webkit.org/show_bug.cgi?id=196380

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was caused by Range::boundingRect merging rects via FloatRect::unite which ignores empty rects.
Use uniteIfNonZero instead to fix the bug. Note that we can't use uniteEvenIfEmpty because that would
set x, y to always 0, 0 as we would end up merging any rect with the initial empty rect.

Test: fast/dom/Range/getBoundingClientRect-on-collapsed-selection-range.html

  • dom/Range.cpp:

(WebCore::Range::boundingRect const):

LayoutTests:

Added a regression test.

  • fast/dom/Range/getBoundingClientRect-on-collapsed-selection-range-expected.txt: Added.
  • fast/dom/Range/getBoundingClientRect-on-collapsed-selection-range.html: Added.
6:43 PM Changeset in webkit [243634] by Chris Dumez
  • 18 edits
    4 moves
    37 adds in trunk/LayoutTests

Re-sync web-platform-tests/html/browsers/the-window-object/ from upstream
https://bugs.webkit.org/show_bug.cgi?id=196379

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Re-sync web-platform-tests/html/browsers/the-window-object/ from upstream 3bfdeb8976fc.

  • web-platform-tests/html/browsers/the-window-object/*: Updated.

LayoutTests:

  • tests-options.json:
6:29 PM Changeset in webkit [243633] by Fujii Hironori
  • 3 edits in trunk/Source/JavaScriptCore

Opcode.h(159,27): warning: adding 'unsigned int' to a string does not append to the string [-Wstring-plus-int]
https://bugs.webkit.org/show_bug.cgi?id=196343

Reviewed by Saam Barati.

Clang reports a compilation warning and recommend '&PADDING_STRING[PADDING_STRING_LENGTH]'
instead of 'PADDING_STRING + PADDING_STRING_LENGTH'.

  • bytecode/Opcode.cpp:

(JSC::padOpcodeName): Moved padOpcodeName from Opcode.h because
this function is used only in Opcode.cpp. Changed macros
PADDING_STRING and PADDING_STRING_LENGTH to simple variables.
(JSC::compareOpcodePairIndices): Replaced pair with std::pair.

  • bytecode/Opcode.h:

(JSC::padOpcodeName): Moved.

6:15 PM Changeset in webkit [243632] by wilander@apple.com
  • 24 edits in trunk

Resource Load Statistics: IPC to the WebsiteDataStore in the UI process from NetworkProcess::deleteWebsiteDataForRegistrableDomains()
https://bugs.webkit.org/show_bug.cgi?id=196281
<rdar://problem/48938748>

Reviewed by Alex Christensen.

Source/WebKit:

The move of Resource Load Statistics to the network process requires that it
calls the UI process when clearing website data (previously the other way
around). This patch achieves that.

Specifically, NetworkProcess::deleteWebsiteDataForRegistrableDomains() now
filters its WebsiteDataTypes down to just the ones applicable for the UI
process and then calls DeleteWebsiteDataInUIProcessForRegistrableDomains over
IPC.

NetworkProcessProxy::deleteWebsiteDataInUIProcessForRegistrableDomains() on
the UI process side makes use of the re-introduced
WebsiteDataStore::fetchDataForRegistrableDomains() function to get the relevant
data records and call WebsiteDataStore::removeData(). The re-introduced
WebsiteDataStore::fetchDataForRegistrableDomains() was removed as dead code in
https://trac.webkit.org/changeset/242056/webkit, then under the name
WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains(). The reason it
was dead code was the lack of IPC call that this patch adds.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):

Now calls DeleteWebsiteDataInUIProcessForRegistrableDomains over IPC if there
are WebsiteDataTypes applicable to the UI process.

  • NetworkProcess/NetworkProcess.h:
  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::ownerProcess):
(WebKit::WebsiteData::filter):

Convenience functions to manage process ownership of website data types.

  • Shared/WebsiteData/WebsiteData.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsHasLocalStorage):

Test infrastructure, called by the TestRunner.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::deleteWebsiteDataInUIProcessForRegistrableDomains):

New function to be called from the network process.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::matches const):

Now matches with WebCore::RegistrableDomain instead of a string.

(WebKit::WebsiteDataRecord::matchesTopPrivatelyControlledDomain const): Deleted.

Replaced by WebsiteDataRecord::matches().

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataForRegistrableDomains):

Re-introduced. It was removed as dead code in r242056.

(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::hasLocalStorageForTesting const):

Test infrastructure, called by the TestRunner.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

This patch adds the function isStatisticsHasLocalStorage() to the
TestRunner. With it, the page can query the WebsiteDataStore in the
UI process to make sure that it sees LocalStorage.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::isStatisticsHasLocalStorage):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::isStatisticsHasLocalStorage):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

This test now covers LocalStorage too.

  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:
  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
4:47 PM Changeset in webkit [243631] by jiewen_tan@apple.com
  • 5 edits
    1 add in trunk

API::Data::createWithoutCopying should do a null check before calling CFRelease
https://bugs.webkit.org/show_bug.cgi?id=196276
<rdar://problem/48059859>

Reviewed by Alex Christensen.

Source/WebKit:

  • Shared/Cocoa/APIDataCocoa.mm:

(API::Data::createWithoutCopying):

Tools:

Add an API test that will pass a nil to API::Data::createWithoutCopying via NavigationState::NavigationClient::webCryptoMasterKey.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/navigation-client-default-crypto.html:
  • TestWebKitAPI/Tests/WebKitCocoa/WebCryptoMasterKey.mm: Added.

(-[WebCryptoMasterKeyNavigationDelegate _webCryptoMasterKeyForWebView:]):
(-[WebCryptoMasterKeyNavigationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):

4:30 PM Changeset in webkit [243630] by pvollan@apple.com
  • 11 edits in trunk/Source/WebKit

[iOS] Automatic focus of input field is flaky
https://bugs.webkit.org/show_bug.cgi?id=196302

Reviewed by Brent Fulgham.

Sometimes the status of whether a keyboard is connected can be incorrect, both in the UI process, and in
the WebContent process. Fix this by sending the keyboard status to the WebContent process as part of the
Web page creation parameters. Stop caching the keyboard status in the Web process proxy, and call
[UIKeyboard isInHardwareKeyboardMode] instead, since this method is swizzled in the test harness.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(hardwareKeyboardAvailabilityChangedCallback):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::setKeyboardIsAttached): Deleted.
(WebKit::WebProcessProxy::keyboardIsAttached const): Deleted.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::isInHardwareKeyboardMode):
(WebKit::WebPageProxy::applicationWillEnterForeground):

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
4:11 PM Changeset in webkit [243629] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

The following layout tests are flaky failures
http/wpt/webauthn/public-key-credential-get-success-hid.https.html
http/wpt/webauthn/public-key-credential-create-success-hid.https.html
https://bugs.webkit.org/show_bug.cgi?id=194780
https://bugs.webkit.org/show_bug.cgi?id=196377

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations for flaky failures
3:32 PM Changeset in webkit [243628] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

storage/domstorage/localstorage/private-browsing-affects-storage.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196376

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure
3:13 PM Changeset in webkit [243627] by Justin Fan
  • 38 edits
    13 copies
    4 adds in trunk

[Web GPU] Prototype compute pipeline with MSL
https://bugs.webkit.org/show_bug.cgi?id=196107
<rdar://problem/46289650>

Reviewed by Myles Maxfield.

Source/WebCore:

Add GPUComputePassEncoder, GPUComputePipeline, and GPUComputePipelineDescriptor.
Implement everything needed to prototype a compute pipeline in Web GPU using Metal shaders and bound resources.

Test: webgpu/compute-squares.html

Add files and symbols:

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

Misc fixes:

  • Modules/webgpu/WHLSL/WHLSLNameResolver.h: Missing include.
  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp: Missing include.
  • Modules/webgpu/WebGPUPipelineStageDescriptor.cpp: Added. Move pipeline stage validation logic here.

(WebCore::WebGPUPipelineStageDescriptor::tryCreateGPUPipelineStageDescriptor const):

  • Modules/webgpu/WebGPURenderPipeline.cpp: Remove unnecessary include.
  • Modules/webgpu/WebGPURenderPipeline.h:
  • Modules/webgpu/WebGPURenderPipelineDescriptor.cpp: Add missing inlcude.

(WebCore::WebGPUPipelineStageDescriptor::tryCreateGPUPipelineStageDescriptor const): Moved to WebGPUPipelineStageDescriptor.cpp.

  • platform/graphics/gpu/GPUPipelineDescriptorBase.h: Add missing include.
  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Add missing include.

(WebCore::GPURenderPipeline::GPURenderPipeline): Remove unecessary ref of GPUPipelineLayout.

  • platform/text/mac/TextEncodingRegistryMac.mm: Carbon.h was causing ambiguous reference build errors in this file.

Enable creating a GPUComputePassEncoder from a GPUCommandEncoder:

  • Modules/webgpu/WebGPUCommandEncoder.cpp:

(WebCore::WebGPUCommandEncoder::beginRenderPass): No longer passing this WebGPUCommandEncoder to pass encoders.
(WebCore::WebGPUCommandEncoder::beginComputePass): Added.

  • Modules/webgpu/WebGPUCommandEncoder.h:
  • Modules/webgpu/WebGPUCommandEncoder.idl:

Add GPUComputePassEncoder:

  • Modules/webgpu/WebGPUComputePassEncoder.cpp: Added.

(WebCore::WebGPUComputePassEncoder::create):
(WebCore::WebGPUComputePassEncoder::WebGPUComputePassEncoder):
(WebCore::WebGPUComputePassEncoder::setPipeline):
(WebCore::WebGPUComputePassEncoder::dispatch):
(WebCore::WebGPUComputePassEncoder::passEncoder):
(WebCore::WebGPUComputePassEncoder::passEncoder const):

  • Modules/webgpu/WebGPUComputePassEncoder.h: Added.
  • Modules/webgpu/WebGPUComputePassEncoder.idl: Added.
  • platform/graphics/gpu/GPUComputePassEncoder.h: Added.

(WebCore::GPUComputePassEncoder::~GPUComputePassEncoder):

  • platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Added.

(WebCore::GPUComputePassEncoder::tryCreate):
(WebCore::GPUComputePassEncoder::GPUComputePassEncoder):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch): Use a default calculation for threadsPerThreadgroup while MSL is still an accepted shader format.
(WebCore::GPUComputePassEncoder::platformPassEncoder const):
(WebCore::GPUComputePassEncoder::useResource):
(WebCore::GPUComputePassEncoder::setComputeBuffer):

Add GPUComputePipeline:

  • Modules/webgpu/WebGPUComputePipeline.cpp: Added.

(WebCore::WebGPUComputePipeline::create):
(WebCore::WebGPUComputePipeline::WebGPUComputePipeline):

  • Modules/webgpu/WebGPUComputePipeline.h: Added.

(WebCore::WebGPUComputePipeline::computePipeline const):

  • Modules/webgpu/WebGPUComputePipeline.idl: Added.
  • Modules/webgpu/WebGPUComputePipelineDescriptor.cpp: Added.

(WebCore::WebGPUComputePipelineDescriptor::tryCreateGPUComputePipelineDescriptor const):

  • Modules/webgpu/WebGPUComputePipelineDescriptor.h: Added.
  • Modules/webgpu/WebGPUComputePipelineDescriptor.idl: Added.
  • platform/graphics/gpu/GPUComputePipeline.h: Added.

(WebCore::GPUComputePipeline::platformComputePipeline const):

  • platform/graphics/gpu/GPUComputePipelineDescriptor.h: Added.

(WebCore::GPUComputePipelineDescriptor::GPUComputePipelineDescriptor):

  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Added.

(WebCore::tryCreateMtlComputeFunction):
(WebCore::tryCreateMTLComputePipelineState):
(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):

Enable creating a GPUComputePipeline from a GPUDevice:

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createComputePipeline const):

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.idl:
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateComputePipeline const):

  • platform/graphics/gpu/GPUDevice.h:

No longer unnecessarily ref the WebGPUCommandEncoder when creating pass encoder:

  • Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:

(WebCore::WebGPUProgrammablePassEncoder::setBindGroup):
(WebCore::WebGPUProgrammablePassEncoder::WebGPUProgrammablePassEncoder): Deleted.
(WebCore::WebGPUProgrammablePassEncoder::setBindGroup const): Deleted.

  • Modules/webgpu/WebGPUProgrammablePassEncoder.h:
  • Modules/webgpu/WebGPURenderPassEncoder.cpp:

(WebCore::WebGPURenderPassEncoder::create):
(WebCore::WebGPURenderPassEncoder::WebGPURenderPassEncoder):
(WebCore::WebGPURenderPassEncoder::setPipeline):
(WebCore::WebGPURenderPassEncoder::passEncoder):
(WebCore::WebGPURenderPassEncoder::passEncoder const):

  • Modules/webgpu/WebGPURenderPassEncoder.h:

Updates to GPUBindGroup and *setBindGroup for compute function arguments:

  • platform/graphics/gpu/GPUBindGroup.h:

(WebCore::GPUBindGroup::vertexArgsBuffer const):
(WebCore::GPUBindGroup::fragmentArgsBuffer const):
(WebCore::GPUBindGroup::computeArgsBuffer const):
(WebCore::GPUBindGroup::vertexArgsBuffer): Deleted. Const-qualified.
(WebCore::GPUBindGroup::fragmentArgsBuffer): Ditto.

  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:

(WebCore::tryGetResourceAsMTLSamplerState): Now just returns the MTLSamplerState to reduce reference churning.
(WebCore::GPUBindGroup::tryCreate):
(WebCore::GPUBindGroup::GPUBindGroup):
(WebCore::tryGetResourceAsSampler): Renamed to tryGetResourceAsMTLSamplerState.

Updates to GPUProgrammablePassEncoder and GPURenderPassEncoder:

  • platform/graphics/gpu/GPUProgrammablePassEncoder.h:

(WebCore::GPUProgrammablePassEncoder::setVertexBuffer):
(WebCore::GPUProgrammablePassEncoder::setFragmentBuffer):
(WebCore::GPUProgrammablePassEncoder::setComputeBuffer): Added.

  • platform/graphics/gpu/GPURenderPassEncoder.h:

(WebCore::GPURenderPassEncoder::~GPURenderPassEncoder):

  • platform/graphics/gpu/GPURenderPipeline.h:
  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm: Remove unecessary include.

(WebCore::GPUProgrammablePassEncoder::endPass): No longer virtual. Delegates shared behavior for derived classes.
(WebCore::GPUProgrammablePassEncoder::setBindGroup):

  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:

(WebCore::GPURenderPassEncoder::platformPassEncoder const):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::useResource): These private overrides are called only by base after checking for encoder existence.
(WebCore::GPURenderPassEncoder::setVertexBuffer): Ditto.
(WebCore::GPURenderPassEncoder::setFragmentBuffer): Ditto.
(WebCore::GPURenderPassEncoder::endPass): Deleted. Now handled by base class.

LayoutTests:

Add a basic test to create, execute, and verify the results of a Web GPU compute pipeline.

  • webgpu/compute-squares-expected.txt: Added.
  • webgpu/compute-squares.html: Added.
  • webgpu/whlsl.html: Update some function names to match API changes.
3:05 PM Changeset in webkit [243626] by Tadeu Zagallo
  • 6 edits
    1 add in trunk

CodeBlock::jettison() should disallow repatching its own calls
https://bugs.webkit.org/show_bug.cgi?id=196359
<rdar://problem/48973663>

Reviewed by Saam Barati.

JSTests:

  • stress/call-link-info-osrexit-repatch.js: Added.

(foo):

Source/JavaScriptCore:

CodeBlock::jettison() calls CommonData::invalidate, which replaces the hlt
instruction with the jump to OSR exit. However, if the hlt was immediately
followed by a call to the CodeBlock being jettisoned, we would write over the
OSR exit address while unlinking all the incoming CallLinkInfos later in
CodeBlock::jettison().

Change it so that we set a flag, clearedByJettison, in all the CallLinkInfos
owned by the CodeBlock being jettisoned. If the flag is set, we will avoid
repatching the call during unlinking. This is safe because this call will never
be reachable again after the CodeBlock is jettisoned.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::CallLinkInfo):
(JSC::CallLinkInfo::setCallee):
(JSC::CallLinkInfo::clearCallee):
(JSC::CallLinkInfo::setCodeBlock):
(JSC::CallLinkInfo::clearCodeBlock):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::clearedByJettison):
(JSC::CallLinkInfo::setClearedByJettison):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison):

  • jit/Repatch.cpp:

(JSC::revertCall):

3:03 PM Changeset in webkit [243625] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

Fixed typing error I made in https://trac.webkit.org/changeset/243612/webkit
https://bugs.webkit.org/show_bug.cgi?id=196357

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Fixing error in test expectations file
2:45 PM Changeset in webkit [243624] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

[JSC] imports-oom.js intermittently fails
https://bugs.webkit.org/show_bug.cgi?id=196373

Reviewed by Saam Barati.

imports-oom.js ensures that a wasm module compilation / instantiation throws an OOM error instead of crashing when compiling / instantiating their entry points
with extremely low executable memory amount. And this test expects we at least once successfully compile, instantiate, and execute a wasm module to test that
wasm implementation is always throwing an OOM error. However, maybe due to wasm changes, the amount of executable memory consumed by wasm compilation is changed,
and now we may encounter an OOM error at the first compilation. Since imports-oom.js randomize the amount of executable memory used by the generated wasm module,
imports-oom.js intermittently fails when it first generates large wasm module which cannot be compiled.

This patch reduces the maxParams from 32 to 8 to reduce the size of randomly generated wasm module. Since we repeatedly generate wasm modules, this test soon encounter
an expected OOM error. But this avoids the situation that we get an OOM error when we compile a first wasm module.

  • wasm/lowExecutableMemory/imports-oom.js:
2:30 PM Changeset in webkit [243623] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Fix font family for WebKit.org
https://bugs.webkit.org/show_bug.cgi?id=196311

Reviewed by Myles C. Maxfield.

  • wp-content/themes/webkit/header.php: Added SF Mono loading
  • wp-content/themes/webkit/style.css:

(html): Use Text font by default
(h1,): Use Display font for large headings
(.nextrouter-copy): Use Display font for routers

2:26 PM Changeset in webkit [243622] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

IDBRequest::dispatchEvent should check nullability of m_transaction before operations that rely on it to be non null
https://bugs.webkit.org/show_bug.cgi?id=196319
<rdar://problem/49355279>

Reviewed by Alex Christensen.

The test that triggers this crash is on Bug 196276.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent):

2:23 PM Changeset in webkit [243621] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Debug assert in DOMSelection::containsNode when node belongs to a different tree
https://bugs.webkit.org/show_bug.cgi?id=196342

Reviewed by Antti Koivisto.

Source/WebCore:

The assertion was wrong. It's possible for Range::compareBoundaryPoints to return WRONG_DOCUMENT_ERR
when the node and the start container belong to two different trees.

Return false in such a case for now since it's unclear (unspecified) what these methods on Selection
should do with respect to shadow trees, preserving the current behavior of release builds.

Test: editing/selection/containsNode-with-no-common-ancestor.html

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::containsNode const):

LayoutTests:

Added a regression test to catch the debug assertion failure. The test always passed in release builds.

  • editing/selection/containsNode-with-no-common-ancestor-expected.txt: Added.
  • editing/selection/containsNode-with-no-common-ancestor.html: Added.
2:23 PM Changeset in webkit [243620] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline web-platform-tests/html/dom/interfaces.html

  • web-platform-tests/html/dom/interfaces-expected.txt:
1:03 PM Changeset in webkit [243619] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

Un-fix the build

  • wtf/Platform.h:

It is no longer necessary to exclude this from PLATFORM(IOSMAC).

1:00 PM Changeset in webkit [243618] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Fix the build.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showImageSheet]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView actionSheetAssistant:showCustomSheetForElement:]):

12:37 PM Changeset in webkit [243617] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Drop VM and Context cache map in JavaScriptCore.framework
https://bugs.webkit.org/show_bug.cgi?id=196341

Reviewed by Saam Barati.

Previously, we created Objective-C weak map to maintain JSVirtualMachine and JSContext wrappers corresponding to VM and JSGlobalObject.
But Objective-C weak map is really memory costly. Even if the entry is only one, it consumes 2.5KB per weak map. Since we can modify
JSC intrusively for JavaScriptCore.framework (and we already did it, like, holding JSWrapperMap in JSGlobalObject), we can just hold
a pointer to a wrapper in VM and JSGlobalObject.

This patch adds void* members to VM and JSGlobalObject, which holds a non-strong reference to a wrapper. When a wrapper is gone, we
clear this pointer too. This removes unnecessary two Objective-C weak maps, and save 5KB.

  • API/JSContext.mm:

(-[JSContext initWithVirtualMachine:]):
(-[JSContext dealloc]):
(-[JSContext initWithGlobalContextRef:]):
(-[JSContext wrapperMap]):
(+[JSContext contextWithJSGlobalContextRef:]):

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine initWithContextGroupRef:]):
(-[JSVirtualMachine dealloc]):
(+[JSVirtualMachine virtualMachineWithContextGroupRef:]):
(scanExternalObjectGraph):
(scanExternalRememberedSet):
(initWrapperCache): Deleted.
(wrapperCache): Deleted.
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]): Deleted.
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]): Deleted.
(-[JSVirtualMachine contextForGlobalContextRef:]): Deleted.
(-[JSVirtualMachine addContext:forGlobalContextRef:]): Deleted.

  • API/JSVirtualMachineInternal.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::setAPIWrapper):
(JSC::JSGlobalObject::apiWrapper const):

  • runtime/VM.h:
12:32 PM Changeset in webkit [243616] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(APPLE_PAY) build

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::shouldAllowUserAgentScripts const):

12:18 PM Changeset in webkit [243615] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

Crash at IDBDatabaseInfo::infoForExistingObjectStore and IDBDatabaseInfo::infoForExistingObjectStore
https://bugs.webkit.org/show_bug.cgi?id=196120
<rdar://problem/39869767>

Reviewed by Ryosuke Niwa.

No new tests because it is unclear how the crash happens. Added release logging to help debug.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

11:47 AM Changeset in webkit [243614] by Joseph Pecoraro
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Show Resource Initiator in Network Tab detail views
https://bugs.webkit.org/show_bug.cgi?id=196316
<rdar://problem/49352679>

Reviewed by Devin Rousso.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.resourceRequestWillBeSent):
(WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.NetworkManager.prototype._initiatorCallFramesFromPayload):
Initialize call frames from the initiator payload.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.get initiatorCallFrames):
Initialization and accessor.

  • UserInterface/Views/CallFrameTreeElement.js:

(WI.CallFrameTreeElement):
Selecting a native element won't do anything so just don't allow selection.

  • UserInterface/Views/ResourceHeadersContentView.css:

(.resource-headers .go-to-link):
(.resource-headers .call-stack):
(.resource-headers .call-stack:hover):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView):
(WI.ResourceHeadersContentView.prototype.hidden):
(WI.ResourceHeadersContentView.prototype._refreshSummarySection):
Add an "Initiator" line in the summary with a way to view the whole
initiator backtrace if one exists.

11:38 AM Changeset in webkit [243613] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

http/wpt/cache-storage/quota-third-party.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196358

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure
11:18 AM Changeset in webkit [243612] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

storage/indexeddb/modern/idbtransaction-objectstore-failures-private.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196357

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Updating test expectations for flaky failure
11:08 AM Changeset in webkit [243611] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

Web Inspector: Canvas: unbinding a canvas should always remove the agent as an observer
https://bugs.webkit.org/show_bug.cgi?id=196324
<rdar://problem/49357109>

Reviewed by Matt Baker.

No change in functionality.

  • html/CanvasBase.cpp:

(WebCore::CanvasBase::notifyObserversCanvasChanged):
(WebCore::CanvasBase::notifyObserversCanvasResized):
(WebCore::CanvasBase::notifyObserversCanvasDestroyed):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::bindCanvas):
(WebCore::InspectorCanvasAgent::unbindCanvas):

11:05 AM Changeset in webkit [243610] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove dead code in MediaPlayerPrivateGStreamer::doSeek()
https://bugs.webkit.org/show_bug.cgi?id=196352

Reviewed by Xabier Rodriguez-Calvar.

MediaPlayerPrivateGStreamerMSE overrides doSeek() and seek(), so this
branch is never reached.

This patch does not introduce behavior changes.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::doSeek):

10:50 AM Changeset in webkit [243609] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

In-memory code cache should not share bytecode across domains
https://bugs.webkit.org/show_bug.cgi?id=196321

Reviewed by Geoffrey Garen.

Use the SourceProvider's URL to make sure that the hosts match for the
two SourceCodeKeys in operator==.

  • parser/SourceCodeKey.h:

(JSC::SourceCodeKey::host const):
(JSC::SourceCodeKey::operator== const):

10:50 AM Changeset in webkit [243608] by Michael Catanzaro
  • 4 edits in trunk

[WPE][GTK] webkit_web_resource_get_data_finish can return NULL without setting error
https://bugs.webkit.org/show_bug.cgi?id=186276

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Currently it's possible for webkit_web_resource_get_data_finish() to return NULL without
setting the error parameter. This is illegal because it is an API guarantee (and a GObject
convention) that if an error parameter exists, it should be set whenever a function call
returns NULL. Epiphany correctly dereferences the error in this case without checking if it
is NULL, because it knows it does not have to, and crashes. Fix this. We'll return a byte
array of length 1 containing a NUL character. This isn't great, but there's not really any
better solution without deprecating the API or returning an error code to indicate an empty
resource, and it at least fixes the Epiphany crash.

This does not fix bug #186276, in which this function incorrectly returns no data when it
ought to. But that is a different bug. Now, at least we won't crash when no data is
available.

  • UIProcess/API/glib/WebKitWebResource.cpp:

(resourceDataCallback):

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:

(webViewLoadChanged):
(testWebResourceGetDataError):
(testWebResourceGetDataEmpty):
(beforeAll):
(webViewloadChanged): Deleted.

10:42 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
9:44 AM Changeset in webkit [243607] by Simon Fraser
  • 7 edits
    2 adds in trunk

[macOS WK2] Overlays on instagram.com are shifted if you click on a photo after scrolling
https://bugs.webkit.org/show_bug.cgi?id=196330
rdar://problem/49100304

Source/WebCore:

Reviewed by Antti Koivisto.

When we call ScrollingTree::applyLayerPositions() on the main thread after a flush,
we need to ensure that the most recent version of the scrolling tree has been committed,
because it has to have state (like requested scroll position and layout viewport rect)
that match the layer flush.

To fix this we have to have the main thread wait for the commit to complete, so
ThreadedScrollingTree keeps track of a pending commit count, and uses a condition
variable to allow the main thread to safely wait for it to reach zero.

Tracing shows that this works as expected, and the main thread is never blocked for
more than a few tens of microseconds.

Also lock the tree mutex in ScrollingTree::handleWheelEvent(), since we enter the
scrolling tree here and we don't want that racing with applyLayerPositions() on the
main thread.

Test: scrollingcoordinator/mac/fixed-scrolled-body.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::applyLayerPositions):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::commitTreeState):
(WebCore::ThreadedScrollingTree::incrementPendingCommitCount):
(WebCore::ThreadedScrollingTree::decrementPendingCommitCount):
(WebCore::ThreadedScrollingTree::waitForPendingCommits):
(WebCore::ThreadedScrollingTree::applyLayerPositions):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::commitTreeState):

LayoutTests:

Reviewed by NOBODY (OOPS!).

  • scrollingcoordinator/mac/fixed-scrolled-body-expected.html: Added.
  • scrollingcoordinator/mac/fixed-scrolled-body.html: Added.
9:36 AM Changeset in webkit [243606] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

[iPad] Tapping on a popup form control may not show a popover
https://bugs.webkit.org/show_bug.cgi?id=196322
<rdar://problem/49229632>

Reviewed by Wenson Hsieh.

Stop taking advantage of -[WKContentView inputView] being called when we invoke -reloadInputViews
to "lazily" allocate the input peripheral for the currently focused element. In theory, UIKit only
needs to call -inputView when it actually needs to display the input view (the keyboard). For
popup menu buttons, like <select>, no keyboard is needed. Instead we should create the peripheral
as part of the logic in the UI process to focus a new element before we call -reloadInputViews.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView inputView]): Extract logic to allocate the peripheral from here and moved it to createInputPeripheralWithView().
(-[WKContentView accessoryTab:]): While I am here, add a FIXME comment to explain why we need to
end the input sessions and nullify the input peripheral before we tell the web process to switch
focus as opposed to letting this happen after the web process tells us it focused a new element.
(createInputPeripheralWithView): Added.
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
Write in terms of createInputPeripheralWithView(). Create the input peripheral after becoming
first responder because creating the peripheral has known side-effects: for popup buttons it
tells the popup controller to present the popover. For key input to popovers to work from the get-go,
the content view must be the first responder. See <https://bugs.webkit.org/show_bug.cgi?id=196272>
for more details.

9:02 AM Changeset in webkit [243605] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[SimpleLineLayout] Disable SLL when text-underline-position is not auto.
https://bugs.webkit.org/show_bug.cgi?id=196338
<rdar://problem/47975167>

Reviewed by Daniel Bates.

Source/WebCore:

Disable simple line layout unconditionally on non-auto text-underline-position content. We don't support it yet.

Test: fast/text/simple-line-layout-with-text-underline-position.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForStyle):

LayoutTests:

  • fast/text/simple-line-layout-with-text-underline-position-expected.html: Added.
  • fast/text/simple-line-layout-with-text-underline-position.html: Added.
8:54 AM Changeset in webkit [243604] by Ryan Haddad
  • 2 edits in trunk/PerformanceTests

REGRESSION (r242911?): High Sierra Release WK2 Perf bot timing out while running IndexedDB/large-number-of-inserts.html
https://bugs.webkit.org/show_bug.cgi?id=195952

Unreviewed test gardening.

  • Skipped: Skip the affected test so the bot will finish the run.
7:18 AM Changeset in webkit [243603] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Silence lot of warnings when compiling with clang
https://bugs.webkit.org/show_bug.cgi?id=196310

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2019-03-28
Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Initialize variable with default constructor.

  • API/glib/JSCOptions.cpp:

(jsc_options_foreach):

Source/WebCore:

No change in behavior.

  • accessibility/AccessibilityObject.h: add missing override

clause.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcChangeState): add missing format string to log.

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: add

missing virtual destructor.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

add missing override clause and remove unused private member.

Source/WebKit:

  • UIProcess/API/glib/WebKitInjectedBundleClient.cpp: add missing

override clause.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h: add

missing override clause.

6:58 AM Changeset in webkit [243602] by Carlos Garcia Campos
  • 7 edits in trunk

[FreeType] Incorrect application of glyph positioning in the Y direction
https://bugs.webkit.org/show_bug.cgi?id=161493

Reviewed by Michael Catanzaro.

Source/WebCore:

Use the first glyph origin as the initial advance of every complex text run.

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::FontCascade::drawGlyphs): Update the yOffset using the height advance.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawGlyphs): Ditto.

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Set the initial advance.

LayoutTests:

Rebaseline fast/text/international/hebrew-vowels.html.

  • platform/gtk/fast/text/international/hebrew-vowels-expected.png:
  • platform/gtk/fast/text/international/hebrew-vowels-expected.txt:
5:52 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)

Mar 27, 2019:

11:22 PM Changeset in webkit [243601] by rniwa@webkit.org
  • 10 edits
    5 adds in trunk

[macOS] Select element doesn't show popup if select element had lost focus while popup was previosuly shown
https://bugs.webkit.org/show_bug.cgi?id=196336

Reviewed by Tim Horton.

Source/WebCore:

  • rendering/RenderMenuList.cpp:

(RenderMenuList::popupDidHide): Added a comment.

Source/WebKit:

The bug was caused by WebPopupMenu::hide never notifying PopupClient that the popup had been dismissed.
This resulted in RenderMenuList::m_popupIsVisible to be never reset.

Also fixed a bug in WebPopupMenuProxyMac::hidePopupMenu that this function was never dismissing
the popup as the selector "dismissPopUp", on the contrary to its name, does not dimiss the popup.
Send cancelTracking to NSMenu instead, which DOES dismiss the popup.

Tests: fast/forms/select/mac-wk2/blur-dismisses-select-popup.html

fast/forms/select/mac-wk2/open-select-popup-after-dismissing-by-blur.html

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::hidePopupMenu):

  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::hide):

Source/WebKitLegacy/mac:

Fixed the bug that we were not actually dismissing the popup in PopupMenuMac::hide as done in WebKit2.

Unfortunately no new tests since intenals.isSelectPopupVisible would always return false in WebKit1.

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::hide):

LayoutTests:

Added regression tests for dismissing the select element's popup menu by bluring the element then re-opening the popup.
Unfortunately these tests are only enabled in WebKit2 since intenals.isSelectPopupVisible would always return false in WebKit1.

  • TestExpectations:
  • fast/forms/select/mac-wk2: Added.
  • fast/forms/select/mac-wk2/blur-dismisses-select-popup-expected.html: Added.
  • fast/forms/select/mac-wk2/blur-dismisses-select-popup.html: Added.
  • fast/forms/select/mac-wk2/open-select-popup-after-dismissing-by-blur-expected.txt: Added.
  • fast/forms/select/mac-wk2/open-select-popup-after-dismissing-by-blur.html: Added.
  • platform/mac-wk2/TestExpectations:
10:44 PM Changeset in webkit [243600] by mitz@apple.com
  • 7 copies
    1 add in releases/Apple/watchOS 5.2

Added a tag for watchOS 5.2.

10:43 PM Changeset in webkit [243599] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari 12.1

Added a tag for Safari 12.1.

10:40 PM Changeset in webkit [243598] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 12.2

Added a tag for iOS 12.2.

6:47 PM Changeset in webkit [243597] by sbarati@apple.com
  • 4 edits in trunk

JetStream 2 should not report time values as scores
https://bugs.webkit.org/show_bug.cgi?id=196334

Reviewed by Yusuke Suzuki.

PerformanceTests:

  • JetStream2/JetStreamDriver.js:

(toTimeValue):
(Driver.prototype.async.reportScoreToRunBenchmarkRunner):

Websites/browserbench.org:

  • JetStream2.0/JetStreamDriver.js:

(toTimeValue):
(Driver.prototype.async.reportScoreToRunBenchmarkRunner):

6:06 PM Changeset in webkit [243596] by sbarati@apple.com
  • 4 edits
    1 add in trunk

validateOSREntryValue with Int52 should box the value being checked into double format
https://bugs.webkit.org/show_bug.cgi?id=196313
<rdar://problem/49306703>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/validate-int-52-ai-state.js: Added.

Source/JavaScriptCore:

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):

6:02 PM Changeset in webkit [243595] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

[ARKit] Black view when opening a 3D model usdz file in new tab
https://bugs.webkit.org/show_bug.cgi?id=196333
<rdar://problem/47693367>

Reviewed by Tim Horton.

When opening a new WKSystemPreviewView, we were exiting if there was no
presentingViewController. This code was unnecessary, and causing blank
content when opening a new tab.

  • UIProcess/ios/WKSystemPreviewView.mm:

(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]):
Remove the code looking for a presentingViewController.

5:58 PM Changeset in webkit [243594] by aboya@igalia.com
  • 5 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=196329

  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/inspector/network/har/har-page-expected.txt:
  • platform/gtk/http/tests/inspector/network/resource-sizes-network-expected.txt:
  • platform/gtk/js/intl-datetimeformat-expected.txt: Added.
  • platform/wpe/TestExpectations:
4:56 PM Changeset in webkit [243593] by Alan Coon
  • 3 edits
    2 adds in branches/safari-607-branch

Cherry-pick r242943. rdar://problem/49307995

Cleanup inline boxes when list marker gets blockified
https://bugs.webkit.org/show_bug.cgi?id=195746
<rdar://problem/48049175>

Reviewed by Antti Koivisto.

Source/WebCore:

Normally when an element gets blockified (inline -> block) we destroy its renderer and construct a new one (RenderInline -> RenderBlock).
During this process the associated inline boxtree gets destroyed as well. Since RenderListMarker is just a generic RenderBox, the blockifying
change does not require a new renderer.
This patch takes care of destroying the inline boxtree when the marker gains block display type.

Test: fast/block/float/list-marker-is-float-crash.html

  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::styleDidChange):

LayoutTests:

  • fast/block/float/list-marker-is-float-crash-expected.txt: Added.
  • fast/block/float/list-marker-is-float-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242943 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:52 PM Changeset in webkit [243592] by Alan Coon
  • 4 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r242964. rdar://problem/49359851

Storing a Node in Ref/RefPtr inside its destructor results in double delete
https://bugs.webkit.org/show_bug.cgi?id=195661

Reviewed by Brent Fulgham.

Set Node::m_refCount to 1 before calling its virtual destructor.

This is a security mitigation to prevent any code which ends up storing the node to Ref / RefPtr
inside the destructor, which is a programming error caught by debug assertions, from triggering
a double-delete on the same Node.

Such a code would hit the debug assertions in Node::deref() because m_inRemovedLastRefFunction
had been set to true by then.

  • dom/Document.cpp: (WebCore::Document::removedLastRef):
  • dom/Document.h: (WebCore::Document::decrementReferencingNodeCount):
  • dom/Node.cpp: (WebCore::Node::~Node): (WebCore::Node::removedLastRef):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242964 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:50 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
4:50 PM Changeset in webkit [243591] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merged r243538 - Build failure with gstreamer 1.12.5 if USE_GSTREAMER_GL is enabled
https://bugs.webkit.org/show_bug.cgi?id=196178

Reviewed by Xabier Rodriguez-Calvar.

The gst/gl/gl.h header needs to be included before
GraphicsContext3D.h to avoid declaration conflicts with
OpenGLShims.

Based on a patch from Mike Gorse <mgorse@suse.com>

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):

4:48 PM Changeset in webkit [243590] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merged r243492 - [WPE][Qt] Uninitialized racy ViewBackend
https://bugs.webkit.org/show_bug.cgi?id=196247

Patch by Philippe Normand <pnormand@igalia.com> on 2019-03-26
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/wpe/qt/WPEQtView.h: Initialize the backend pointer to nullptr.
4:48 PM Changeset in webkit [243589] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.24

Merged r243489 - [GStreamer] Sound loop with Google Hangouts and WhatsApp notifications
https://bugs.webkit.org/show_bug.cgi?id=189471

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The media duration is now cached (again). The loop issue was
triggered by the previous version of the code returning positive
infinite duration in didEnd(), followed by the timeupdate event
propagation that would trick the HTMLMediaElement into a new call
to play(). Now the cached duration is updated to current position
at EOS (for forward playback direction only), so the media element
no longer triggers a new play call for those cases.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::loadFull):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::platformDuration const):
(WebCore::MediaPlayerPrivateGStreamer::durationMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::durationChanged):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime const):

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/media/video-playing-and-pause-expected.txt:
4:47 PM Changeset in webkit [243588] by Adrian Perez de Castro
  • 4 edits
    6 adds in releases/WebKitGTK/webkit-2.24

Merged r243372 - [MSE][GStreamer] Don't construct segments on PlaybackPipeline::flush
https://bugs.webkit.org/show_bug.cgi?id=195867

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

These tests check that video and audio are roughly in sync with each
other and with the reported player position during MSE playback.

  • web-platform-tests/media-source/mediasource-correct-frames-after-reappend-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-correct-frames-after-reappend.html: Added.
  • web-platform-tests/media-source/mediasource-correct-frames-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-correct-frames.html: Added.
  • web-platform-tests/media-source/mp4/test-boxes-audio.mp4: Added.
  • web-platform-tests/media-source/mp4/test-boxes-video.mp4: Added.

Source/WebCore:

The previous approach did not really work for flushes on only one
branch, as setting reset-time in FLUSH_STOP affects the running time
of the entire pipeline, causing timing issues in the other branch.

Since it's preferable not to interfere with the other branch if
possible, setting reset-time to FALSE fixes that problem.

Also, it's not necessary to fabricate a segment. Since we are not
seeking, only the base needs to be adjusted, and gstbasesrc already
handles this correctly by default.

This fixes an audio/video synchronization bug in YT when some
automatic quality changes occur.

Tests: imported/w3c/web-platform-tests/media-source/mediasource-correct-frames-after-reappend.html

imported/w3c/web-platform-tests/media-source/mediasource-correct-frames.html

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::flush):

LayoutTests:

Drawing an MSE video in a canvas seems to be failing in Mac. That
functionality is necessary for the tests introduced with this patch,
therefore they fail there. Marking them as Skip.

  • platform/mac/TestExpectations:
4:47 PM Changeset in webkit [243587] by Adrian Perez de Castro
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.24

Merged r243199 - [MSE][GStreamer] Fix handling of resolution changes in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=195855

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

MediaSample instances produced by the AppendPipeline were not
accounting for resolution changes. The causes of this are twofold:

1) m_presentationSize is set by connectDemuxerSrcPadToAppsink() (by
calling parseDemuxerSrcPadCaps()), but not by appsinkCapsChanged().

2) appsinkCapsChanged() was being called in the main thread as an
asynchronous task. In consequence, even if m_presentationSize is set
there, many samples with the new resolution would still be wrapped in
a MediaSampleGStreamer using the old resolution by the main thread
running consumeAppsinkAvailableSamples() before appsinkCapsChanged()
is dispatched.

This patch fixes these problems by updating m_presentationSize in
appsinkCapsChanged() and making the streaming thread block until the
main thread has dispatched appsinkCapsChanged(). This way the handling
of caps changes is serialized with the handling of frames.

Test: media/media-source/media-source-samples-resolution-change.html

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::appsinkCapsChanged):

LayoutTests:

  • media/media-source/content/test-green-6s-320x240.mp4: Added.
  • media/media-source/content/test-red-3s-480x360.mp4: Added.
  • media/media-source/media-source-samples-resolution-change-expected.txt: Added.
  • media/media-source/media-source-samples-resolution-change.html: Added.
4:47 PM Changeset in webkit [243586] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merged r243138 - [MSE] Use tolerance in eraseBeginTime
https://bugs.webkit.org/show_bug.cgi?id=195911

Reviewed by Jer Noble.

Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=190085 introduced tolerance
when erasing frames during the Coded Frame Processing algorithm in
such a way that, in files with less than perfect timestamps, a frame
existing before after the current append is not erased accidentally
due to small overlaps.

This patch takes care of the opposite problem: we don't want an old
frame being accidentally NOT erased by a new one with the same
timestamps just because these overlaps make
highestPresentationTimestamp very slightly higher than the frame PTS.

This bug in practice causes some frames of the old quality to not be
erased when the new quality is appended, resulting in some seemingly
still frames from a different quality appearing at some points during
WebM video in presence of quality changes.

This bug can be reduced to this minimal test case that illustrates the
timestamp imprecission of a typical WebM file:

function sampleRun(generation) {

return concatenateSamples([

makeASample( 0, 0, 166667, 1000000, 1, SAMPLE_FLAG.SYNC, generation),
makeASample(167000, 167000, 166667, 1000000, 1, SAMPLE_FLAG.NONE, generation),
makeASample(333000, 333000, 166667, 1000000, 1, SAMPLE_FLAG.SYNC, generation), overlaps previous frame
makeASample(500000, 500000, 166667, 1000000, 1, SAMPLE_FLAG.NONE, generation),

]);

}

After appending this twice it would be expected that the second
generation takes fully over the first, since the timestamps are
completely the same. Due to the bug, sync frames with an overlap, like
the third one in that list, actually persist from the first
generation, due to lack of tolerance when comparing the start of a new
frame with highestPresentationTimestamp.

This patch introduces the tolerance in that case too to fix this
problem.

Test: media/media-source/media-source-append-twice-overlapping-sync-frame.html

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

LayoutTests:

  • media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt: Added.
  • media/media-source/media-source-append-twice-overlapping-sync-frame.html: Added.
4:46 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
4:44 PM Changeset in webkit [243585] by Alan Coon
  • 1 edit in branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabase.cpp

Apply patch. rdar://problem/49308059

4:44 PM Changeset in webkit [243584] by Alan Coon
  • 3 edits
    2 adds in branches/safari-607-branch

Cherry-pick r243506. rdar://problem/49307987

vertexAttribPointer must restrict offset parameter
https://bugs.webkit.org/show_bug.cgi?id=196261
<rdar://problem/48458086>

Reviewed by Antoine Quint.

Source/WebCore:

This WebGL function should fail if the offset parameter is
not within [0, max 32-bit int].

Test: fast/canvas/webgl/vertexAttribPointer-with-bad-offset.html

  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::vertexAttribPointer):

LayoutTests:

Add a test where the offset parameter is out of bounds.

  • fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt: Added.
  • fast/canvas/webgl/vertexAttribPointer-with-bad-offset.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243506 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:44 PM Changeset in webkit [243583] by Alan Coon
  • 2 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r243341. rdar://problem/49308013

Inband Text Track cues interspersed with Data cues can display out of order.
https://bugs.webkit.org/show_bug.cgi?id=196095

Reviewed by Eric Carlson.

The compareCueIntervalForDisplay() comparator depends on a virtual function, isPositionedAbove(TextTrackCue* other),
but this comparison returns inconsistent results for cueA->isPositionedAbove(cueB) and cueB->isPositionedAbove(cueA)
if the two cues are different subclasses of TextTrackCue.

The underlying algorithm should be fixed in a future patch, but for now, remove all non-displaying cues from the array
of activeCues before sorting, rather than after when iterating over the sorted list of activeCues.

  • html/shadow/MediaControlElements.cpp: (WebCore::MediaControlTextTrackContainerElement::updateDisplay):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243341 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:44 PM Changeset in webkit [243582] by Alan Coon
  • 2 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r243338. rdar://problem/49307958

Fix iOS build after r243337
https://bugs.webkit.org/show_bug.cgi?id=195935

  • platform/ios/PlaybackSessionInterfaceAVKit.mm: (WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const): (WebCore::playbackSessionModel const): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243338 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:44 PM Changeset in webkit [243581] by Alan Coon
  • 8 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r243337. rdar://problem/49307958

Hardening: Use WeakPtrs in PlaybackSessionInterface{Mac,AVKit}
https://bugs.webkit.org/show_bug.cgi?id=195935
<rdar://problem/49007015>

Reviewed by Eric Carlson.

The PlaybackSessionInterface{Mac,AVKit} implementations store their playback session model
and playback controls manager members as bare pointers, something we've been working
to eliminate.

This patch corrects this oversight.

No new tests since no changes in behavior.

  • platform/cocoa/PlaybackSessionModel.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm: (WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit): (WebCore::playbackSessionModel const): Moved to implementation since WEBCORE_EXPORT is not supposed to be used with inline methods.
  • platform/mac/PlaybackSessionInterfaceMac.h:
  • platform/mac/PlaybackSessionInterfaceMac.mm: (WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac): (WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const): (WebCore::PlaybackSessionInterfaceMac::beginScrubbing): (WebCore::PlaybackSessionInterfaceMac::endScrubbing): (WebCore::PlaybackSessionInterfaceMac::playBackControlsManager):
  • platform/mac/VideoFullscreenInterfaceMac.mm: (WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):
  • platform/mac/WebPlaybackControlsManager.mm: (-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): (-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]): (-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243337 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:44 PM Changeset in webkit [243580] by Alan Coon
  • 4 edits
    2 adds in branches/safari-607-branch

Cherry-pick r243331. rdar://problem/49308068

Do not insert the first-letter anonymous container until after we've constructed the first-letter renderer.
https://bugs.webkit.org/show_bug.cgi?id=195919
<rdar://problem/48573434>

Reviewed by Brent Fulgham.

Source/WebCore:

When the container is injected too early, we might end up removing it as part of the collapsing logic
while the text renderer is being removed (replaced with the first letter + remaining text).

Test: fast/css/first-letter-and-float-crash.html

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp: (WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

LayoutTests:

  • fast/css/first-letter-and-float-crash-expected.txt: Added.
  • fast/css/first-letter-and-float-crash.html: Added.
  • platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243331 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243579] by Alan Coon
  • 7 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r243298. rdar://problem/49308011

Hardening: Use WeakPtrs in VideoFullscreenInterface{Mac,AVKit}
https://bugs.webkit.org/show_bug.cgi?id=196052
<rdar://problem/48778571>

Reviewed by Eric Carlson.

The VideoFullscreenInterface{Mac,AVKit} implementations store their fullscreen model
and fullscreen change observer members as bare pointers, something we've been working
to eliminate.

This patch corrects this oversight.

No new tests since no changes in behavior.

  • platform/cocoa/VideoFullscreenChangeObserver.h:
  • platform/cocoa/VideoFullscreenModel.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm: (VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): (VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver): (VideoFullscreenInterfaceAVKit::presentingViewController): (VideoFullscreenInterfaceAVKit::invalidate): (VideoFullscreenInterfaceAVKit::preparedToExitFullscreen): (VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): (VideoFullscreenInterfaceAVKit::doSetup):
  • platform/mac/VideoFullscreenInterfaceMac.h: (WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const): (WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):
  • platform/mac/VideoFullscreenInterfaceMac.mm: (WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): (WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver): (WebCore::VideoFullscreenInterfaceMac::enterFullscreen): (WebCore::VideoFullscreenInterfaceMac::invalidate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243298 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243578] by Alan Coon
  • 3 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r243291. rdar://problem/49307996

Fix possible memory leak when dismissing a color picker
https://bugs.webkit.org/show_bug.cgi?id=196026
<rdar://problem/48778568>

Reviewed by Wenson Hsieh.

Fix a problem with WebPageProxy::endColorPicker where an early return could leave a color picker
with a +1 reference count after dismissing it.

  • UIProcess/WebColorPicker.cpp: (WebKit::WebColorPicker::endPicker):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::endColorPicker): (WebKit::WebPageProxy::didEndColorPicker):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243291 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243577] by Alan Coon
  • 8 edits
    1 add in branches/safari-607-branch

Cherry-pick r243280. rdar://problem/49308036

Cap length of an array with spread to MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.
https://bugs.webkit.org/show_bug.cgi?id=196055
<rdar://problem/49067448>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js: Added.

Source/JavaScriptCore:

We are doing this because:

  1. We expect the array to be densely packed.
  2. SpeculativeJIT::compileAllocateNewArrayWithSize() (and the FTL equivalent) expects the array length to be less than MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH if we don't want to use an ArrayStorage shape.
  3. There's no reason why an array with spread needs to be that large anyway. MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH is plenty.

In this patch, we also add a debug assert in compileAllocateNewArrayWithSize() and
emitAllocateButterfly() to check for overflows.

  • assembler/AbortReason.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileCreateRest): (JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread): (JSC::DFG::SpeculativeJIT::emitAllocateButterfly): (JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
  • runtime/ArrayConventions.h:
  • runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243280 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243576] by Alan Coon
  • 3 edits
    1 add in branches/safari-607-branch

Cherry-pick r243069. rdar://problem/49308056

Structure::flattenDictionary() should clear unused property slots.
https://bugs.webkit.org/show_bug.cgi?id=195871
<rdar://problem/48959497>

Reviewed by Michael Saboff.

JSTests:

  • stress/structure-flattenDictionary-should-clear-unused-property-slots.js: Added.

Source/JavaScriptCore:

It currently attempts to do this but fails because it's actually clearing up the
preCapacity region instead. The fix is simply to account for the preCapacity
when computing the start address of the property slots.

  • runtime/Structure.cpp: (JSC::Structure::flattenDictionaryStructure):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243069 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243575] by Alan Coon
  • 2 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r242946. rdar://problem/49308005

Certain videos are causing a crash when used as WebGL texture
https://bugs.webkit.org/show_bug.cgi?id=195700
<rdar://problem/48869347>

Reviewed by Eric Carlson.

CFEqual is not null-safe, so perform a null and type check before comparing.

  • platform/graphics/cv/VideoTextureCopierCV.cpp: (WebCore::transferFunctionFromString):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242946 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243574] by Alan Coon
  • 3 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r242921. rdar://problem/49308071

[WeakPtr] RenderListMarker::m_listItem should be a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=195704
<rdar://problem/48486278>

Reviewed by Simon Fraser.

  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::RenderListMarker): (WebCore::RenderListMarker::paint): (WebCore::RenderListMarker::layout): (WebCore::RenderListMarker::updateContent): (WebCore::RenderListMarker::computePreferredLogicalWidths): (WebCore::RenderListMarker::lineHeight const): (WebCore::RenderListMarker::baselinePosition const): (WebCore::RenderListMarker::suffix const): (WebCore::RenderListMarker::isInside const): (WebCore::RenderListMarker::getRelativeMarkerRect):
  • rendering/RenderListMarker.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242921 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243573] by Alan Coon
  • 4 edits
    2 adds in branches/safari-607-branch

Cherry-pick r242919. rdar://problem/49307949

Use RenderBox::previousSiblingBox/nextSiblingBox in RenderMultiColumnFlow
https://bugs.webkit.org/show_bug.cgi?id=195701
<rdar://problem/48448658>

Reviewed by Simon Fraser.

Source/WebCore:

It's safer to use existing RenderBox functions to get sibling boxes.

Test: fast/ruby/crash-when-paginated-ruby.html

  • rendering/RenderMultiColumnFlow.cpp: (WebCore::RenderMultiColumnFlow::nextColumnSetOrSpannerSiblingOf): (WebCore::RenderMultiColumnFlow::previousColumnSetOrSpannerSiblingOf):

LayoutTests:

  • fast/ruby/crash-when-paginated-ruby-expected.txt: Added.
  • fast/ruby/crash-when-paginated-ruby.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242919 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243572] by Alan Coon
  • 4 edits
    2 adds in branches/safari-607-branch

Cherry-pick r242917. rdar://problem/49307956

Fix an edge case where HTMLFormElement::removeFormElement is invoked twice with the same element
https://bugs.webkit.org/show_bug.cgi?id=195663
<rdar://problem/48576391>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Currently, it's possible for HTMLFormControlElement's destructor to be reentrant. This may happen if the form
control element is ref'd while carrying out its destructor's logic. This may happen in two places in
HTMLFormControlElement (didChangeForm and resetDefaultButton), both of which actually don't require ensuring a
protected reference to the form control element since they should never result in any script execution.

To fix the bug, convert these strong references into raw pointers, and add ScriptDisallowedScope to ensure that
we don't change these codepaths in the future, such that they trigger arbitrary script execution.

Test: fast/forms/remove-associated-element-after-gc.html

  • html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::didChangeForm):
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::resetDefaultButton):

LayoutTests:

Add a layout test to exercise the scenario described in the WebCore ChangeLog.

  • fast/forms/remove-associated-element-after-gc-expected.txt: Added.
  • fast/forms/remove-associated-element-after-gc.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242917 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243571] by Alan Coon
  • 3 edits
    1 add in branches/safari-607-branch

Cherry-pick r242838. rdar://problem/49307991

REGRESSION (iOS 12.2): Webpage using CoffeeScript crashes
https://bugs.webkit.org/show_bug.cgi?id=195613

Reviewed by Mark Lam.

JSTests:

New regression test.

  • stress/regexp-backref-inbounds.js: Added. (testRegExp):

Source/JavaScriptCore:

The bug here is in Yarr JIT backreference matching code. We are incorrectly
using a checkedOffset / inputPosition correction when checking for the available
length left in a string. It is improper to do these corrections as a backreference's
match length is based on what was matched in the referenced capture group and not
part of the checkedOffset and inputPosition computed when we compiled the RegExp.
In some cases, the resulting incorrect calculation would allow us to go past
the subject string's length. Removed these adjustments.

After writing tests for the first bug, found another bug where the non-greedy
backreference backtracking code didn't do an "are we at the end of the input?" check.
This caused an infinite loop as we'd jump from the backtracking code back to
try matching one more backreference, fail and then backtrack.

  • yarr/YarrJIT.cpp: (JSC::Yarr::YarrGenerator::generateBackReference): (JSC::Yarr::YarrGenerator::backtrackBackReference):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242838 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:43 PM Changeset in webkit [243570] by Alan Coon
  • 2 edits in branches/safari-607-branch/Source/WebKit

Apply patch. rdar://problem/49307967

fix-radar-48878188

4:34 PM Changeset in webkit [243569] by Wenson Hsieh
  • 2 edits
    1 add in trunk/Source/WebKit

Need a way to include WebKitAdditions code in WebKit API headers
https://bugs.webkit.org/show_bug.cgi?id=196173

Reviewed by Tim Horton.

Introduce a mechanism that allows us to insert code from WebKitAdditions into public or private SDK headers
using #imports of the form:

`
#if USE(APPLE_INTERNAL_SDK)
#import <WebKitAdditions/WKWebViewConfigurationAdditions.h>
#endif
`

The resulting header in the built products directory will contain the contents of the imported file inserted in
place of the #if USE(APPLE_INTERNAL_SDK) … #endif block; however, when building with the Apple internal SDK,
the additions header content will be imported by the usual means.

  • mac/postprocess-framework-headers.sh:
  • mac/replace-webkit-additions-includes.py: Added.

Add a step when post-processing framework headers to replace instances of #if USE(APPLE_INTERNAL_SDK) … #endif
with the text content of the additions files. The replacement script first searches in the built products
directory for the matching additions file, and falls back to the SDK if no matching file is found. If neither
are present (e.g. a build using the public SDK), then the block is simply replaced by the empty string.

(read_content_from_webkit_additions):
(main):

4:32 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
4:32 PM Changeset in webkit [243568] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merged r243104 - REGRESSION(r236862): early frame decoupling leaves JSC ArrayBuffer objects lingering
https://bugs.webkit.org/show_bug.cgi?id=195322

Reviewed by Ryosuke Niwa.

Since r236862, DOMWindow objects get disconnected from their Frame object as soon as
their iframe element gets removed from the document. Previously, DOMWindow was a
FrameDestructionObserver and would stay connected to its frame until the frame died.

This means that some of the work that we were doing in DOMWindow::frameDestroyed() and
Document::willDetachPage() no longer happens for subframe windows because they get
disconnected from their frame because they get a chance to get such notifications.
To address this issue, we now also do this work in DOMWindow::willDetachDocumentFromFrame()
which gets called when the iframe gets removed from the document and the document / window
get disconnected from the Frame element.

No new tests, verified locally that the leak is gone on JetStream.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::willDetachDocumentFromFrame):

4:09 PM Changeset in webkit [243567] by aestes@apple.com
  • 5 edits
    1 delete in trunk

REGRESSION (r242686): package-root creates roots with broken symlinks in WebKit.framework/XPCServices/
https://bugs.webkit.org/show_bug.cgi?id=196317

Reviewed by Dan Bernstein.

Source/WebKit:

Removed some remnants of the Storage Process.

  • Configurations/BaseTarget.xcconfig:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Storage.sb: Removed.
  • WebKit.xcodeproj/project.pbxproj:

Tools:

package-root copies built products into a staging directory using ditto(1), which does not
follow symbolic links as it traverses a directory. Now that the files in
WebKit.framework/XPCServices/ are symbolic links to a location outside of the framework
itself, these become broken links when ditto'd into the staging directory.

To account for this, change package-root to copy using cp(1) in a mode that follows symlinks.

  • Scripts/package-root:
4:06 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
3:16 PM Changeset in webkit [243566] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

The following layout tests are flaky Image Only Failures
imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant-bold.html
imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant-double-struck.html
imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant-italic.html
https://bugs.webkit.org/show_bug.cgi?id=196112

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations: Marking tests as flaky
2:48 PM Changeset in webkit [243565] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Include the CFNetworking task UUID to the NSError when a resource-load fails
https://bugs.webkit.org/show_bug.cgi?id=196156

Reviewed by Alex Christensen.

In order to help track the connection between a failed resource-load
and a user-visible error message, include the CFNetworking task UUID
in the associated error as an element of the userInfo property. This
can then be pulled out and reported in the logging at the point the
error is reported to the user.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):

2:09 PM Changeset in webkit [243564] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Update display text of Submit for ews analysis
https://bugs.webkit.org/show_bug.cgi?id=196309

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/ews-app/ews/templates/statusbubble.html:
1:47 PM Changeset in webkit [243563] by Justin Fan
  • 44 edits
    1 copy in trunk

[Web GPU] Standardize Web GPU object reference counting and creation logic
https://bugs.webkit.org/show_bug.cgi?id=196183

Reviewed by Dean Jackson.

Source/WebCore:

Make getters return raw refs/pointers and provide const versions if necessary.
All Web GPU objects are non-nullable, but become no-op if invalid, and descriptors are not moved unless needed.

No new tests; no change in behavior.

Getter updates and const qualifications:

  • Modules/webgpu/WebGPUAdapter.h:

(WebCore::WebGPUAdapter::options const):

  • Modules/webgpu/WebGPUBindGroup.h:

(WebCore::WebGPUBindGroup::bindGroup):
(WebCore::WebGPUBindGroup::bindGroup const): Deleted.

  • Modules/webgpu/WebGPUBindGroupDescriptor.cpp:

(WebCore::WebGPUBindGroupDescriptor::tryCreateGPUBindGroupDescriptor const):

  • Modules/webgpu/WebGPUBindGroupDescriptor.h:
  • Modules/webgpu/WebGPUBindGroupLayout.h:

(WebCore::WebGPUBindGroupLayout::bindGroupLayout const):

  • Modules/webgpu/WebGPUBuffer.h:

(WebCore::WebGPUBuffer::buffer):
(WebCore::WebGPUBuffer::buffer const):

  • Modules/webgpu/WebGPURenderPassDescriptor.cpp:

(WebCore::WebGPURenderPassDescriptor::tryCreateGPURenderPassDescriptor const):

  • Modules/webgpu/WebGPURenderPassEncoder.cpp:

(WebCore::WebGPURenderPassEncoder::setVertexBuffers):

  • Modules/webgpu/WebGPUSampler.h:

(WebCore::WebGPUSampler::sampler const):

  • Modules/webgpu/WebGPUSwapChain.h:

(WebCore::WebGPUSwapChain::swapChain):
(WebCore::WebGPUSwapChain::swapChain const): Deleted.

  • Modules/webgpu/WebGPUTexture.h:

(WebCore::WebGPUTexture::texture):
(WebCore::WebGPUTexture::texture const): Deleted.

  • Modules/webgpu/WebGPUTextureView.h:

(WebCore::WebGPUTextureView::texture):
(WebCore::WebGPUTextureView::texture const): Deleted.

  • platform/graphics/gpu/GPUBindGroupBinding.h:
  • platform/graphics/gpu/GPUBindGroupDescriptor.h:
  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:

(WebCore::tryGetResourceAsMTLSamplerState):

Web GPU object creation logic:

  • Modules/webgpu/WebGPUCommandEncoder.cpp:

(WebCore::WebGPUBufferCopyView::tryCreateGPUBufferCopyView const):
(WebCore::WebGPUTextureCopyView::tryCreateGPUTextureCopyView const):
(WebCore::WebGPUCommandEncoder::beginRenderPass):
(WebCore::WebGPUCommandEncoder::copyBufferToBuffer):

  • Modules/webgpu/WebGPUCommandEncoder.h:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createBuffer const):
(WebCore::WebGPUDevice::createTexture const):
(WebCore::WebGPUDevice::createPipelineLayout const):
(WebCore::WebGPUDevice::createBindGroup const):
(WebCore::WebGPUDevice::createShaderModule const):
(WebCore::WebGPUDevice::createRenderPipeline const):
(WebCore::WebGPUDevice::getQueue const):

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUPipelineLayout.cpp:

(WebCore::WebGPUPipelineLayout::create):
(WebCore::WebGPUPipelineLayout::WebGPUPipelineLayout):

  • Modules/webgpu/WebGPUPipelineLayout.h:

(WebCore::WebGPUPipelineLayout::pipelineLayout):

  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.cpp:

(WebCore::WebGPUPipelineLayoutDescriptor::tryCreateGPUPipelineLayoutDescriptor const):

  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.h:
  • Modules/webgpu/WebGPUQueue.cpp:

(WebCore::WebGPUQueue::create):
(WebCore::WebGPUQueue::WebGPUQueue):
(WebCore::WebGPUQueue::submit):

  • Modules/webgpu/WebGPUQueue.h:
  • Modules/webgpu/WebGPUShaderModule.cpp:

(WebCore::WebGPUShaderModule::create):
(WebCore::WebGPUShaderModule::WebGPUShaderModule):

  • Modules/webgpu/WebGPUShaderModule.h:

(WebCore::WebGPUShaderModule::module const):

  • platform/graphics/gpu/GPUBuffer.h:
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateBuffer):
(WebCore::GPUDevice::tryCreateTexture const):
(WebCore::GPUDevice::tryCreateShaderModule const):
(WebCore::GPUDevice::tryCreateRenderPipeline const):
(WebCore::GPUDevice::tryGetQueue const):
(WebCore::GPUDevice::createShaderModule const): Deleted.
(WebCore::GPUDevice::createRenderPipeline const): Deleted.
(WebCore::GPUDevice::getQueue const): Deleted.

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPUPipelineLayout.cpp:

(WebCore::GPUPipelineLayout::create):
(WebCore::GPUPipelineLayout::GPUPipelineLayout):

  • platform/graphics/gpu/GPUPipelineLayout.h:

(WebCore::GPUPipelineLayout::bindGroupLayouts const):

  • platform/graphics/gpu/GPUPipelineLayoutDescriptor.h:
  • platform/graphics/gpu/GPURenderPipeline.h:
  • platform/graphics/gpu/GPUShaderModule.h:
  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:

(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::setSubData):

  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:

(WebCore::GPUCommandBuffer::tryCreate):

  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::tryCreate):

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::GPURenderPipeline::tryCreate):
(WebCore::GPURenderPipeline::GPURenderPipeline):
(WebCore::GPURenderPipeline::create): Deleted.

  • platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:

(WebCore::GPUShaderModule::tryCreate):
(WebCore::GPUShaderModule::create): Deleted.

Add WebGPUPipelineLayoutDescriptor.cpp to project:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

GPUShaderModule is no longer nullable.

  • webgpu/shader-modules.html:
1:47 PM Changeset in webkit [243562] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[ iOS Sim ] REGRESSION (r242277) Layout Test http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=195425
<rdar://problem/48682403>

Reviewed by Alex Christensen.

When process-swapping on history navigation, we lookup the WebProcessProxy we'd like to use from the
process identifier that is saved on the WebBackForwardListItem, to try and load the item in the process
in which it was previously loaded. However, we were failing to check if the WebProcess in question was
still running so we could potentially try to use a process that's already exited.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

1:29 PM Changeset in webkit [243561] by Shawn Roberts
  • 4 edits
    2 deletes in trunk

Unreviewed, rolling out r243346.

Causing timeouts in animation tests across 10 builds

Reverted changeset:

"[Web Animations] JS wrapper may be deleted while animation is
yet to dispatch its finish event"
https://bugs.webkit.org/show_bug.cgi?id=196118
https://trac.webkit.org/changeset/243346

1:29 PM Changeset in webkit [243560] by ysuzuki@apple.com
  • 24 edits
    2 moves
    1 add in trunk

[JSC] Owner of watchpoints should validate at GC finalizing phase
https://bugs.webkit.org/show_bug.cgi?id=195827

Reviewed by Filip Pizlo.

JSTests:

  • stress/gc-should-reap-dead-watchpoints.js: Added.

(foo):
(A.prototype.y):
(A):

Source/JavaScriptCore:

This patch fixes JSC's watchpoint liveness issue by the following two policies.

  1. Watchpoint should have owner cell, and "fire" operation should be gaurded with owner cell's isLive check.

Watchpoints should hold its owner cell, and fire procedure should be guarded by owner->isLive().
When the owner cell is destroyed, these watchpoints are destroyed too. But this destruction can
be delayed due to incremental sweeper. So the following condition can happen.

When we have a watchpoint like the following.

class XXXWatchpoint {

ObjectPropertyCondition m_key;
JSCell* m_owner;

};

Both m_key's cell and m_owner is now unreachable from the root. So eventually, m_owner cell's destructor
is called and this watchpoint will be destroyed. But before that, m_key's cell can be destroyed. And this
watchpoint's fire procedure can be called since m_owner's destructor is not called yet. In this situation,
we encounter the destroyed cell held in m_key. This problem can be avoided if we guard fire procedure with
m_owner->isLive(). Until the owner cell is destroyed, this guard avoids "fire" procedure execution. And
once the destructor of m_owner is called, this watchpoint will be destroyed too.

  1. Watchpoint liveness should be maintained by owner cell's unconditional finalizer

Watchpoints often hold weak references to the other cell (like, m_key in the above example). If we do not
delete watchpoints with dead cells when these weak cells become dead, these watchpoints continue holding dead cells,
and watchpoint's fire operation can use these dead cells accidentally. isLive / isStillLive check for these weak cells
in fire operation is not useful. Because these dead cells can be reused to the other live cells eventually, and this
isLive / isStillLive checks fail to see these cells are live if they are reused. Appropriate way is deleting watchpoints
with dead cells when finalizing GC. In this patch, we do this in unconditional finalizers in owner cells of watchpoints.
We already did this in CodeBlock etc. We add the same thing to StructureRareData which owns watchpoints for toString operations.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.h:

(JSC::AdaptiveInferredPropertyValueWatchpointBase::StructureWatchpoint::StructureWatchpoint): Deleted.
(JSC::AdaptiveInferredPropertyValueWatchpointBase::PropertyWatchpoint::PropertyWatchpoint): Deleted.

  • bytecode/CodeBlockJettisoningWatchpoint.h:

(JSC::CodeBlockJettisoningWatchpoint::CodeBlockJettisoningWatchpoint): Deleted.

  • bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:

(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::LLIntPrototypeLoadAdaptiveStructureWatchpoint):
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal):

  • bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h:

(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::key const): Deleted.

  • bytecode/StructureStubClearingWatchpoint.cpp:

(JSC::StructureStubClearingWatchpoint::fireInternal):
(JSC::WatchpointsOnStructureStubInfo::isValid const):

  • bytecode/StructureStubClearingWatchpoint.h:

(JSC::StructureStubClearingWatchpoint::StructureStubClearingWatchpoint): Deleted.

  • dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp:

(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::isValid const):

  • dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h:
  • dfg/DFGAdaptiveStructureWatchpoint.cpp:

(JSC::DFG::AdaptiveStructureWatchpoint::fireInternal):

  • dfg/DFGAdaptiveStructureWatchpoint.h:

(JSC::DFG::AdaptiveStructureWatchpoint::key const): Deleted.

  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):

  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setupGetByIdPrototypeCache):

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::notifyIncommingReferencesOfTransfer):

  • runtime/ArrayBufferNeuteringWatchpointSet.cpp: Renamed from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpoint.cpp.

(JSC::ArrayBufferNeuteringWatchpointSet::ArrayBufferNeuteringWatchpointSet):
(JSC::ArrayBufferNeuteringWatchpointSet::destroy):
(JSC::ArrayBufferNeuteringWatchpointSet::create):
(JSC::ArrayBufferNeuteringWatchpointSet::createStructure):
(JSC::ArrayBufferNeuteringWatchpointSet::fireAll):

  • runtime/ArrayBufferNeuteringWatchpointSet.h: Renamed from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpoint.h.
  • runtime/FunctionRareData.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):

  • runtime/ObjectPropertyChangeAdaptiveWatchpoint.h:

(JSC::ObjectPropertyChangeAdaptiveWatchpoint::ObjectPropertyChangeAdaptiveWatchpoint): Deleted.

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::finalizeUnconditionally):

  • runtime/StructureRareData.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

1:25 PM Changeset in webkit [243559] by ddkilzer@apple.com
  • 13 edits in trunk/Tools

run-webkit-tests should check for leaks in WebKit processes
<https://webkit.org/b/193772>
<rdar://problem/46526680>

Reviewed by Ryosuke Niwa.

This works by doing the following:

  • Add a "#LIST CHILD PROCESSES" command to WebKitTestRunnner. The list of child processes are returned one per line: process.name: pid
  • Run the "#LIST CHILD PROCESSES" command just before the "#CHECK FOR WORLD LEAKS" command, and store the list of child processes on the ServerProcess object.
  • When the --leaks switch is handled, run check_for_leaks() on each child process after the main test harness.
  • DumpRenderTree/mac/DumpRenderTree.mm:

(handleControlCommand):

  • Use strncmp() instead of strcmp().
  • Add support for handling "#LIST CHILD PROCESSES" command.
  • Scripts/webkitpy/port/base.py:

(Port.check_for_leaks):

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort.check_for_leaks):

  • Rename redundant 'process_pid' argument to 'process_id'.
  • Scripts/webkitpy/port/driver.py:

(Driver.do_post_tests_work):

  • Restructure the logic since "#CHECK FOR WORLD LEAKS" is no longer the only command this sends to WebKitTestRunner.
  • If the --leaks switch is present, send the "#LIST CHILD PROCESSES" to WebKitTestRunner and store the result using Port.set_webkit_processes().

(Driver._parse_child_processes_output):

  • Add helper method to parse list of child process names and process IDs returned from WebKitTestRunner.
  • Scripts/webkitpy/port/ios_device.py:

(IOSDevicePort.check_for_leaks):

  • Rename redundant 'process_pid' argument to 'process_id'.
  • Scripts/webkitpy/port/leakdetector.py:

(LeakDetector._parse_leaks_output):

  • Return early if there is no leaks_output.

(LeakDetector.check_for_leaks):

  • Rename redundant 'process_pid' argument to 'process_id'.
  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.init):
(ServerProcess.child_processes):
(ServerProcess.set_child_processes):

  • Add instance variable to Port to store list of child process names and process IDs returned from WebKitTestRunner.

(ServerProcess._start):

  • Clear self._child_processes.

(ServerProcess.stop):

  • If self._child_processes is set, call self._port.check_for_leaks() for each child process.
  • Scripts/webkitpy/port/server_process_unittest.py:

(TrivialMockPort.check_for_leaks):

  • Rename redundant 'process_pid' argument to 'process_id'.
  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.stop):

  • If self._child_processes is set, call self._port.check_for_leaks() for each child process.
  • Scripts/webkitpy/port/watch_device.py:

(WatchDevicePort.check_for_leaks):

  • Rename redundant 'process_pid' argument to 'process_id'.
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::dumpResponse):

  • Extract method from findAndDumpWorldLeaks() so that it may be reused by findAndDumpWebKitProcessIdentifiers().

(WTR::TestController::findAndDumpWebKitProcessIdentifiers):

  • Add method to output process name and process ID of both the WebContent and Networking processes.

(WTR::TestController::findAndDumpWorldLeaks):

  • Fix missing newline in output when there were no abandoned documents.
  • Call dumpResponse() for extracted code.

(WTR::TestController::handleControlCommand):

  • Restructure the logic for "#CHECK FOR WORLD LEAKS".
  • Use strncmp() instead of strcmp().
  • Call findAndDumpWebKitProcessIdentifiers() when "#LIST CHILD PROCESSES" command is sent.
  • WebKitTestRunner/TestController.h:

(WTR::TestController::dumpResponse):
(WTR::TestController::findAndDumpWebKitProcessIdentifiers):

  • Declare methods.
12:56 PM Changeset in webkit [243558] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[ iOS Simulator ] REGRESSION (r237702) Layout Test http/tests/security/xss-DENIED-script-inject-into-inactive-window.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=195385
<rdar://problem/48657425>

Reviewed by Alex Christensen.

Before r237702, the test used to detect that _openedWindowDocument had become frameless (i.e. lost its browsing context)
by checking if _openedWindowDocument.location.href is the empty String. However, r237702 updating Location to return
"about:blank" instead of "" when frameless, to match the latest specification. As a result, I had updated the test to
expect _openedWindowDocument.location.href to be "about:blank". However, I had not noticed that the document's initial
URL (while it had a browsing context) was also "about:blank". Therefore, checking that location.href is "about:blank"
would actually not guarantee that the document has no browsing context.

To address the issue, check that _openedWindowDocument.defaultView is null instead since this is guaranteed to be null
for Documents that do not have a browsing context as per:

  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
12:41 PM Changeset in webkit [243557] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[ContentChangeObserver] Always dispatch the synthetic click asynchronously
https://bugs.webkit.org/show_bug.cgi?id=196278
<rdar://problem/49299968>

Reviewed by Simon Fraser.

This patch ensures that all completeSyntheticClick() calls happen in an asynchronous manner (unless the feature is turned off).

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::dispatchSyntheticMouseMove):
(WebKit::WebPage::handleSyntheticClick):

12:05 PM Changeset in webkit [243556] by Alan Bujtas
  • 6 edits
    3 adds in trunk

[ContentChangeObserver] Stop using the global _WKContentChange
https://bugs.webkit.org/show_bug.cgi?id=196288
<rdar://problem/49228081>

Reviewed by Simon Fraser.

Source/WebCore:

This patch ensures that activities on frames don't overwrite the observed state on other frames.
(Unfortunately the global variable is still used in WebKitLegacy (see webkit.org/b/196286)).

Tests: fast/events/touch/ios/content-observation/remove-subframe-while-observing.html

fast/events/touch/ios/content-observation/subframe.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::observedContentChange const): Deleted.

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::observedContentChange const):
(WebCore::ContentChangeObserver::setHasNoChangeState):
(WebCore::ContentChangeObserver::setHasIndeterminateState):
(WebCore::ContentChangeObserver::setHasVisibleChangeState):
(WebCore::ContentChangeObserver::setObservedContentState):

LayoutTests:

  • fast/events/touch/ios/content-observation/remove-subframe-while-observing-expected.txt: Added.
  • fast/events/touch/ios/content-observation/remove-subframe-while-observing.html: Added.
  • fast/events/touch/ios/content-observation/subframe.html: Added.
  • platform/ios-device-wk1/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
11:56 AM Changeset in webkit [243555] by commit-queue@webkit.org
  • 35 edits
    2 adds
    33 deletes in trunk

Remove the SVG tear off objects for SVGPathSeg, SVGPathSegList and SVGAnimatedPathSegList
https://bugs.webkit.org/show_bug.cgi?id=196085

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-03-27
Reviewed by Simon Fraser.

Source/WebCore:

The SVGPathSegList is similar to the other SVGLists, e.g. SVGNUmberList
and SVGPointList except in two things:

  1. Its items can be different but they are derived from the same base class SVGPathSeg.
  1. The SVGPathSeg items are only used for DOM. When drawing or animating we have to have an SVGPathByteStream and convert it to a Path. Converting an SVGPathByteStream to SVGPathSeg items and vice versa is expensive. Building a Path from an SVGPathByteStream is also expensive. So an extra care needs to be taken for when these conversions happen.

In addition to handling the SVGPathSeg items, SVGPathSegList will manage
the associated SVGPathByteStream and Path objects. SVGPathSegList will be
lazy in getting updated objects when a change happens. For example, when
the byte stream changes, SVGPathSegList will clear its items and nullify
the Path object. But it will not build any of them until they are explicitly
requested.

Like what was done for other SVG properties when removing their tear off
objects, a new accessor, a new animator and a new animation function will
be added for the SVGAnimatedPathSegList.

All the header files of the concrete classes of SVGPathSeg will be removed
because they are small structures which hold some data items and they provide
setters and getters for these items. Here is the new file structures and
their contents:

-- SVGPathSeg.h still has the class SVGPathSeg which is now a superclass

of SVGProperty.

-- SVGPathSegValue.h will have the template class SVGPathSegValue which

holds an std::tuple of packed arguments. It provides setters and getters
for these arguments. SVGPathSegValue.h will also have specialized
classed derived from SVGPathSegValue and hold different arguments.

-- SVGPathSegImpl.h will have the final concrete SVGPathSeg classes.

Note SVGPathSeg concrete classes do not need to have a reference to the
the context SVGPathElement. SVGPathSeg will be owned by its SVGPathSegList
which will be owned by the SVGAnimatedPathSegList which will be owned by
the SVGPathElement.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSSVGPathSegCustom.cpp:
  • bindings/scripts/CodeGenerator.pm:

(IsSVGPathSegTypeName):
(IsSVGPathSegType):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • rendering/svg/SVGPathData.cpp:

(WebCore::pathFromPathElement):

  • svg/SVGAnimatedPath.cpp: Removed.
  • svg/SVGAnimatedPath.h: Removed.
  • svg/SVGAnimatedType.h:

(WebCore::SVGAnimatedType::type const):

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::create):

  • svg/SVGPathByteStream.h:

(WebCore::SVGPathByteStream::SVGPathByteStream):
This constructor is used by SVGAnimationPathSegListFunction to convert
the 'form', 'to' and 'toAtEndOfDuration' strings to SVGPathByteStreams.

(WebCore::SVGPathByteStream::resize): Deleted.
(WebCore::SVGPropertyTraits<SVGPathByteStream>::initialValue): Deleted.
(WebCore::SVGPropertyTraits<SVGPathByteStream>::fromString): Deleted.
(WebCore::SVGPropertyTraits<SVGPathByteStream>::parse): Deleted.
(WebCore::SVGPropertyTraits<SVGPathByteStream>::toString): Deleted.

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::SVGPathElement):
(WebCore::SVGPathElement::parseAttribute):
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::getTotalLength const):
(WebCore::SVGPathElement::getPointAtLength const):
(WebCore::SVGPathElement::getPathSegAtLength const):
(WebCore::SVGPathElement::createSVGPathSegClosePath): Deleted.
(WebCore::SVGPathElement::createSVGPathSegMovetoAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegMovetoRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegLinetoAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegLinetoRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegArcAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegArcRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs): Deleted.
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel): Deleted.
The SVGPathSeg creation functions are moved to the header file.

(WebCore::SVGPathElement::registerAttributes): Deleted.
(WebCore::SVGPathElement::pathByteStream const): Deleted.
(WebCore::SVGPathElement::pathForByteStream const): Deleted.
(WebCore::SVGPathElement::lookupOrCreateDWrapper): Deleted.
(WebCore::SVGPathElement::animatedPropertyWillBeDeleted): Deleted.
(WebCore::SVGPathElement::pathSegList): Deleted.
(WebCore::SVGPathElement::normalizedPathSegList): Deleted.
(WebCore::SVGPathElement::animatedPathSegList): Deleted.
(WebCore::SVGPathElement::animatedNormalizedPathSegList): Deleted.
(WebCore::SVGPathElement::approximateMemoryCost const): Deleted.
(WebCore::SVGPathElement::pathSegListChanged): Deleted.
Managing the SVGPathByteStream and the drawing Path objects will be the
responsibility of SVGPathSegList.

  • svg/SVGPathElement.h:
  • svg/SVGPathSeg.h:
  • svg/SVGPathSegArc.h: Removed.
  • svg/SVGPathSegArcAbs.h: Removed.
  • svg/SVGPathSegArcRel.h: Removed.
  • svg/SVGPathSegClosePath.h: Removed.
  • svg/SVGPathSegCurvetoCubic.h: Removed.
  • svg/SVGPathSegCurvetoCubicAbs.h: Removed.
  • svg/SVGPathSegCurvetoCubicRel.h: Removed.
  • svg/SVGPathSegCurvetoCubicSmooth.h: Removed.
  • svg/SVGPathSegCurvetoCubicSmoothAbs.h: Removed.
  • svg/SVGPathSegCurvetoCubicSmoothRel.h: Removed.
  • svg/SVGPathSegCurvetoQuadratic.h: Removed.
  • svg/SVGPathSegCurvetoQuadraticAbs.h: Removed.
  • svg/SVGPathSegCurvetoQuadraticRel.h: Removed.
  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.h: Removed.
  • svg/SVGPathSegCurvetoQuadraticSmoothRel.h: Removed.
  • svg/SVGPathSegImpl.h: Added.
  • svg/SVGPathSegLinetoAbs.h: Removed.
  • svg/SVGPathSegLinetoHorizontal.h: Removed.
  • svg/SVGPathSegLinetoHorizontalAbs.h: Removed.
  • svg/SVGPathSegLinetoHorizontalRel.h: Removed.
  • svg/SVGPathSegLinetoRel.h: Removed.
  • svg/SVGPathSegLinetoVertical.h: Removed.
  • svg/SVGPathSegLinetoVerticalAbs.h: Removed.
  • svg/SVGPathSegLinetoVerticalRel.h: Removed.

The definition of these classes are now in SVGPathSegImpl.h.

  • svg/SVGPathSegList.cpp: Removed.
  • svg/SVGPathSegList.h:
  • svg/SVGPathSegListBuilder.cpp:

(WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):
(WebCore::SVGPathSegListBuilder::moveTo):
(WebCore::SVGPathSegListBuilder::lineTo):
(WebCore::SVGPathSegListBuilder::lineToHorizontal):
(WebCore::SVGPathSegListBuilder::lineToVertical):
(WebCore::SVGPathSegListBuilder::curveToCubic):
(WebCore::SVGPathSegListBuilder::curveToCubicSmooth):
(WebCore::SVGPathSegListBuilder::curveToQuadratic):
(WebCore::SVGPathSegListBuilder::curveToQuadraticSmooth):
(WebCore::SVGPathSegListBuilder::arcTo):
(WebCore::SVGPathSegListBuilder::closePath):

  • svg/SVGPathSegListBuilder.h:

The concrete SVGPathSeg classes can now create instances of their classes
without having to go through the SVGPathElement.

  • svg/SVGPathSegListSource.cpp:

(WebCore::SVGPathSegListSource::SVGPathSegListSource):

  • svg/SVGPathSegListSource.h:
  • svg/SVGPathSegListValues.cpp: Removed.
  • svg/SVGPathSegListValues.h: Removed.
  • svg/SVGPathSegMovetoAbs.h: Removed.
  • svg/SVGPathSegMovetoRel.h: Removed.
  • svg/SVGPathSegValue.h: Added.

(WebCore::SVGPathSegValue::create):
(WebCore::SVGPathSegValue::clone const):
(WebCore::SVGPathSegValue::SVGPathSegValue):
(WebCore::SVGPathSegValue::argument const):
(WebCore::SVGPathSegValue::setArgument):
(WebCore::SVGPathSegLinetoHorizontal::x const):
(WebCore::SVGPathSegLinetoHorizontal::setX):
(WebCore::SVGPathSegLinetoVertical::y const):
(WebCore::SVGPathSegLinetoVertical::setY):
(WebCore::SVGPathSegSingleCoordinate::x const):
(WebCore::SVGPathSegSingleCoordinate::setX):
(WebCore::SVGPathSegSingleCoordinate::y const):
(WebCore::SVGPathSegSingleCoordinate::setY):
(WebCore::SVGPathSegCurvetoQuadratic::x const):
(WebCore::SVGPathSegCurvetoQuadratic::setX):
(WebCore::SVGPathSegCurvetoQuadratic::y const):
(WebCore::SVGPathSegCurvetoQuadratic::setY):
(WebCore::SVGPathSegCurvetoQuadratic::x1 const):
(WebCore::SVGPathSegCurvetoQuadratic::setX1):
(WebCore::SVGPathSegCurvetoQuadratic::y1 const):
(WebCore::SVGPathSegCurvetoQuadratic::setY1):
(WebCore::SVGPathSegCurvetoCubicSmooth::x const):
(WebCore::SVGPathSegCurvetoCubicSmooth::setX):
(WebCore::SVGPathSegCurvetoCubicSmooth::y const):
(WebCore::SVGPathSegCurvetoCubicSmooth::setY):
(WebCore::SVGPathSegCurvetoCubicSmooth::x2 const):
(WebCore::SVGPathSegCurvetoCubicSmooth::setX2):
(WebCore::SVGPathSegCurvetoCubicSmooth::y2 const):
(WebCore::SVGPathSegCurvetoCubicSmooth::setY2):
(WebCore::SVGPathSegCurvetoCubic::x const):
(WebCore::SVGPathSegCurvetoCubic::setX):
(WebCore::SVGPathSegCurvetoCubic::y const):
(WebCore::SVGPathSegCurvetoCubic::setY):
(WebCore::SVGPathSegCurvetoCubic::x1 const):
(WebCore::SVGPathSegCurvetoCubic::setX1):
(WebCore::SVGPathSegCurvetoCubic::y1 const):
(WebCore::SVGPathSegCurvetoCubic::setY1):
(WebCore::SVGPathSegCurvetoCubic::x2 const):
(WebCore::SVGPathSegCurvetoCubic::setX2):
(WebCore::SVGPathSegCurvetoCubic::y2 const):
(WebCore::SVGPathSegCurvetoCubic::setY2):
(WebCore::SVGPathSegArc::x const):
(WebCore::SVGPathSegArc::setX):
(WebCore::SVGPathSegArc::y const):
(WebCore::SVGPathSegArc::setY):
(WebCore::SVGPathSegArc::r1 const):
(WebCore::SVGPathSegArc::setR1):
(WebCore::SVGPathSegArc::r2 const):
(WebCore::SVGPathSegArc::setR2):
(WebCore::SVGPathSegArc::angle const):
(WebCore::SVGPathSegArc::setAngle):
(WebCore::SVGPathSegArc::largeArcFlag const):
(WebCore::SVGPathSegArc::setLargeArcFlag):
(WebCore::SVGPathSegArc::sweepFlag const):
(WebCore::SVGPathSegArc::setSweepFlag):

  • svg/SVGPathSegWithContext.h: Removed.
  • svg/SVGPathUtilities.cpp:

(WebCore::buildSVGPathByteStreamFromSVGPathSegList):
(WebCore::buildSVGPathSegListFromByteStream):
(WebCore::buildStringFromByteStream):
(WebCore::buildSVGPathByteStreamFromSVGPathSegListValues): Deleted.
(WebCore::appendSVGPathByteStreamFromSVGPathSeg): Deleted.
(WebCore::buildSVGPathSegListValuesFromByteStream): Deleted.
(WebCore::buildStringFromSVGPathSegListValues): Deleted.

  • svg/SVGPathUtilities.h:

Since the class SVGPathSegListValues is removed, all the parsing functions
have now to deal with SVGPathSegList directly.

  • svg/SVGPoint.h:
  • svg/SVGValue.h:
  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.cpp: Removed.
  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Removed.
  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyImpl.h:

(WebCore::SVGAnimatedPathSegList::create):
(WebCore::SVGAnimatedPathSegList::currentPathByteStream):
(WebCore::SVGAnimatedPathSegList::currentPath):
(WebCore::SVGAnimatedPathSegList::approximateMemoryCost const):
Provides an easy way to access the current SVGPathByteStream and Path
objects from the SVGAnimatedPathSegList.

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationPathSegListFunction::progress):

  • svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGPropertyOwnerRegistry::registerProperty):

LayoutTests:

  • svg/dom/SVGPathSegList-appendItem-expected.txt:
  • svg/dom/SVGPathSegList-appendItem.xhtml:
  • svg/dom/SVGPathSegList-clear-and-initialize-expected.txt:
  • svg/dom/SVGPathSegList-clear-and-initialize.xhtml:
  • svg/dom/SVGPathSegList-insertItemBefore-expected.txt:
  • svg/dom/SVGPathSegList-insertItemBefore.xhtml:
  • svg/dom/SVGPathSegList-replaceItem-expected.txt:
  • svg/dom/SVGPathSegList-replaceItem.xhtml:

These changes are required because SVGPathSegList will be following the SVG2
specs regarding adding new items to the list.

See https://www.w3.org/TR/SVG/types.html#TermListInterface.

11:33 AM Changeset in webkit [243554] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196307

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations: Marking test as flaky while waiting for a fix
11:22 AM Changeset in webkit [243553] by timothy_horton@apple.com
  • 10 edits
    2 deletes in trunk/Source/WebKit

Fix some more deprecation warnings in WKDrawingView
https://bugs.webkit.org/show_bug.cgi?id=196282
<rdar://problem/47637608>

Reviewed by Wenson Hsieh.

  • Platform/spi/ios/PencilKitSPI.h:
  • SourcesCocoa.txt:
  • UIProcess/ios/PencilKitSoftLink.h:
  • UIProcess/ios/PencilKitSoftLink.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/WKDrawingCoordinator.h:
  • UIProcess/ios/WKDrawingCoordinator.mm:

(-[WKDrawingCoordinator initWithContentView:]):
(-[WKDrawingCoordinator currentInk]):
(-[WKDrawingCoordinator undoManagerForInkPicker:]):
(-[WKDrawingCoordinator containingViewForInkPicker:]):
(-[WKDrawingCoordinator inkPickerDidToggleRuler:]):
(-[WKDrawingCoordinator inkPickerDidChangeInk:]):
(-[WKDrawingCoordinator installInkPickerForDrawing:]):
(-[WKDrawingCoordinator uninstallInkPicker]):
(-[WKDrawingCoordinator inkPicker]): Deleted.
(-[WKDrawingCoordinator didChangeRulerState:]): Deleted.
(-[WKDrawingCoordinator didChangeInk:]): Deleted.

  • UIProcess/ios/WKDrawingView.mm:

(-[WKDrawingView _canvasViewWillBeginDrawing:]):

  • UIProcess/ios/WKInkPickerView.h: Removed.
  • UIProcess/ios/WKInkPickerView.mm: Removed.
  • WebKit.xcodeproj/project.pbxproj:

Adopt the new names.

11:22 AM Changeset in webkit [243552] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

AVAudioSessionRouteSharingPolicyLongForm has been deprecated
https://bugs.webkit.org/show_bug.cgi?id=196301

Unrereivewed build fix.

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::setCategory):
(WebCore::AudioSession::routeSharingPolicy const):

11:10 AM Changeset in webkit [243551] by Chris Dumez
  • 14 edits in trunk

XMLHttpRequestUpload's loadstart event not correct initialized
https://bugs.webkit.org/show_bug.cgi?id=196174
<rdar://problem/49191412>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/event-error-order.sub.html:

Update test after https://github.com/web-platform-tests/wpt/pull/13365

  • web-platform-tests/xhr/abort-during-upload-expected.txt:
  • web-platform-tests/xhr/event-error-order.sub-expected.txt:
  • web-platform-tests/xhr/event-loadstart-upload-expected.txt:
  • web-platform-tests/xhr/event-timeout-order-expected.txt:
  • web-platform-tests/xhr/send-response-event-order-expected.txt:

Rebaseline several WPT tests that are now passing.

Source/WebCore:

Align progress event firing with the XHR specification.

No new tests, rebaselined existing tests.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):
As per [1], the loadstart event fired on the XMLHttpRequestUpload object should use
loaded=0 and total=req’s body’s total bytes.
[1] https://xhr.spec.whatwg.org/#the-send()-method (step 11.2.)

(WebCore::XMLHttpRequest::didSendData):
As per [2], the progress / load / loadend should use loaded=transmitted and total=length.
[2] https://xhr.spec.whatwg.org/#ref-for-process-request-end-of-body (steps 5, 6 and 7)

(WebCore::XMLHttpRequest::didReceiveData):
As per [3], we should fire the readystatechange event *before* the progress event.
This is covered by web-platform-tests/xhr/send-response-event-order.htm which was failing
differently after the other changes in this patch.
[3] https://xhr.spec.whatwg.org/#ref-for-process-response (steps 9.4 and 9.5)

(WebCore::XMLHttpRequest::dispatchErrorEvents):
As per [4], in case of an error, we should fire the provided 'event' and 'loadend' with
loaded=0 and total=0.
[4] https://xhr.spec.whatwg.org/#request-error-steps (steps 7 and 8)

  • xml/XMLHttpRequestUpload.cpp:

(WebCore::XMLHttpRequestUpload::dispatchProgressEvent):

  • xml/XMLHttpRequestUpload.h:

Simplify XMLHttpRequestUpload. It no longer needs to store loaded / total as data
members now that they are always passed by the call site. lengthComputable is set
to !!total as [5] says to set it to true if length/total is not 0.
[5] https://xhr.spec.whatwg.org/#concept-event-fire-progress

11:06 AM Changeset in webkit [243550] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r242687): Fullscreen YouTube videos show blank white space at top
https://bugs.webkit.org/show_bug.cgi?id=196304
rdar://problem/49175760

Reviewed by Zalan Bujtas.

Source/WebCore:

repositionRelatedLayers() should not short-circuit when topContentInset is zero,
because topContentInset might be changing from non-zero to zero, and then we need
to move layers around.

Test: scrollingcoordinator/mac/top-content-inset-to-zero.html

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):

LayoutTests:

  • scrollingcoordinator/mac/top-content-inset-to-zero-expected.html: Added.
  • scrollingcoordinator/mac/top-content-inset-to-zero.html: Added.
10:59 AM Changeset in webkit [243549] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

http/tests/cache/disk-cache/memory-cache-revalidation-updates-disk-cache.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=16297

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Updated test expectations to include iOS Simulator
9:42 AM Changeset in webkit [243548] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196298

Unreviewed test gardening

  • platform/ios-simulator-wk2/TestExpectations: Updating test expectation for flaky failure
9:37 AM Changeset in webkit [243547] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

fast/visual-viewport/ios/min-scale-greater-than-one.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196300

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Updating test expectation for flaky failure
9:33 AM Changeset in webkit [243546] by Alan Coon
  • 7 edits in tags/Safari-608.1.14/Source

Versioning.

9:31 AM Changeset in webkit [243545] by Alan Coon
  • 1 copy in tags/Safari-608.1.14

Tag Safari-608.1.14.

9:12 AM Changeset in webkit [243544] by pvollan@apple.com
  • 4 edits in trunk

Layout Test js/math-clz32.html is failing
https://bugs.webkit.org/show_bug.cgi?id=196209

Reviewed by Ross Kirsling.

Source/WTF:

Use the correct number of loop iterations when counting leading zeros. Also, the
count was off by one for the Win64 case.

  • wtf/MathExtras.h:

(WTF::clz):

LayoutTests:

  • platform/win/TestExpectations:
8:46 AM Changeset in webkit [243543] by Alan Coon
  • 4 edits in tags/Safari-608.1.13.2/Source/WebKit

Cherry-pick r243454. rdar://problem/48702444

Animated keyboard scrolling is extremely chaotic
https://bugs.webkit.org/show_bug.cgi?id=196164
<rdar://problem/48702444>

Reviewed by Simon Fraser.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interpretKeyEvent:isCharEvent:]): Consume keyboard events instead of interpreting them traditionally if WKKeyboardScrollingAnimator is animating.
  • UIProcess/ios/WKKeyboardScrollingAnimator.h:
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm: (-[WKKeyboardScrollingAnimator beginWithEvent:]): (-[WKKeyboardScrollingAnimator handleKeyEvent:]): (-[WKKeyboardScrollingAnimator stopAnimatedScroll]): (-[WKKeyboardScrollingAnimator scrollTriggeringKeyIsPressed]): (-[WKKeyboardScrollingAnimator displayLinkFired:]): (-[WKKeyboardScrollViewAnimator scrollTriggeringKeyIsPressed]): Expose the current state of interactive scrolling, and rename the related member.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243454 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:29 AM Changeset in webkit [243542] by Alan Coon
  • 7 edits in tags/Safari-608.1.13.2/Source

Versioning.

8:22 AM Changeset in webkit [243541] by sbarati@apple.com
  • 4 edits in trunk

Unreviewed. Fix individual benchmark description urls to go to in-depth.html instead of about.html

PerformanceTests:

  • JetStream2/JetStreamDriver.js:

(Driver.prototype.prepareToRun.text.div.id.string_appeared_here.h3):

Websites/browserbench.org:

  • JetStream2.0/JetStreamDriver.js:

(Driver.prototype.prepareToRun.text.div.id.string_appeared_here.h3):

8:22 AM Changeset in webkit [243540] by Alan Coon
  • 1 copy in tags/Safari-608.1.13.2

New tag.

8:22 AM Changeset in webkit [243539] by Simon Fraser
  • 9 edits
    2 adds in trunk

[iOS WK2] Fixed elements in frames can be misplaced sometimes
https://bugs.webkit.org/show_bug.cgi?id=196290

Reviewed by Frédéric Wang.

Source/WebCore:

In a page containing position:fixed inside an async-scrolling iframe, if the
main page is scrolled down, and you reload, then the fixed element in the iframe can
get misplaced or disappear.

The bug was that the reconcileViewportConstrainedLayerPositions() recursive state node
walk would cross frame boundaries, hitting subframe ScrollingStateFixedNodes with a viewport rect
for the main page.

Fix by giving ScrollingStateTree the responsibility for the recursive tree walk, and
have it bail at at frame boundaries.

Test: scrollingcoordinator/ios/fixed-in-frame-layer-reconcile-layer-position.html

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::reconcileViewportConstrainedLayerPositions):

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::reconcileLayerPositionForViewportRect):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::reconcileLayerPositionForViewportRect): Deleted.

  • page/scrolling/ScrollingStateNode.h:

(WebCore::ScrollingStateNode::reconcileLayerPositionForViewportRect):

  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::reconcileLayerPositionForViewportRect):

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::reconcileLayerPositionsRecursive):
(WebCore::ScrollingStateTree::reconcileViewportConstrainedLayerPositions):

  • page/scrolling/ScrollingStateTree.h:

LayoutTests:

  • scrollingcoordinator/ios/fixed-in-frame-layer-reconcile-layer-position-expected.txt: Added.
  • scrollingcoordinator/ios/fixed-in-frame-layer-reconcile-layer-position.html: Added.
5:15 AM WebKitGTK/2.24.x edited by Philippe Normand
(diff)
5:14 AM Changeset in webkit [243538] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Build failure with gstreamer 1.12.5 if USE_GSTREAMER_GL is enabled
https://bugs.webkit.org/show_bug.cgi?id=196178

Reviewed by Xabier Rodriguez-Calvar.

The gst/gl/gl.h header needs to be included before
GraphicsContext3D.h to avoid declaration conflicts with
OpenGLShims.

Based on a patch from Mike Gorse <mgorse@suse.com>

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):

4:34 AM Changeset in webkit [243537] by Philippe Normand
  • 4 edits in trunk/Source/WebCore

[GStreamer] Remove the HLS queue buffering query hack
https://bugs.webkit.org/show_bug.cgi?id=196244

Reviewed by Xabier Rodriguez-Calvar.

Because the http src element now provides network statistics to
the player we can now compute an estimation of the data loading in
case the buffering query isn't handled by any element of the
pipeline.

No new tests, existing HLS tests cover this change.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::findHLSQueue): Deleted.
(WebCore::isHLSProgressing): Deleted.

4:34 AM Changeset in webkit [243536] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.24.0

WPE WebKit 2.24.0

4:34 AM Changeset in webkit [243535] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.24

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.24.0 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.24.0
3:59 AM Changeset in webkit [243534] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

Unreviewed. Add GLib API test cases after r243434.

  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:

(testWebViewActiveURI):
(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(sendRequestCallback):

2:36 AM Changeset in webkit [243533] by Carlos Garcia Campos
  • 6 edits in trunk

Geolocation request not complete when watch request was started in a different web process
https://bugs.webkit.org/show_bug.cgi?id=195996

Reviewed by Alex Christensen.

Source/WebKit:

In WebGeolocationManagerProxy::startUpdating() we do nothing when the provider is already updating. We should
reply with a DidChangePosition using the last known position, if available. If we are updating, but we still
don't have a known position, the request will be completed when
WebGeolocationManagerProxy::providerDidChangePosition() is called since it always notifies all web
processes.

  • UIProcess/WebGeolocationManagerProxy.cpp:

(WebKit::WebGeolocationManagerProxy::providerDidChangePosition): Cache the position.
(WebKit::WebGeolocationManagerProxy::startUpdating): Reply using cached position if already known.

  • UIProcess/WebGeolocationManagerProxy.h:

(WebKit::WebGeolocationManagerProxy::lastPosition const): Return cached position.

  • WebProcess/WebCoreSupport/WebGeolocationClient.cpp:

(WebKit::WebGeolocationClient::lastPosition): Remove the FIXME since we don't want this feature.

Tools:

Add a test case.

  • TestWebKitAPI/Tests/WebKit/Geolocation.cpp:

(TestWebKitAPI::runJavaScriptAlert):
(TestWebKitAPI::TEST):

Mar 26, 2019:

6:05 PM Changeset in webkit [243532] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows build fix
https://bugs.webkit.org/show_bug.cgi?id=196083
<rdar://problem/49121836>

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::isSupportedAttributeType):

5:55 PM Changeset in webkit [243531] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Correct kerberos-related sandbox violations
https://bugs.webkit.org/show_bug.cgi?id=196279
<rdar://problem/48622502>

Reviewed by Per Arne Vollan.

We need to allow communications with a Kerberos-related service on macOS
until <rdar://problem/35542803> is fixed.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
5:08 PM Changeset in webkit [243530] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL: Emit code to validate AI's state when running the compiled code
https://bugs.webkit.org/show_bug.cgi?id=195924
<rdar://problem/49003422>

Reviewed by Filip Pizlo.

This patch adds code that between the execution of each node that validates
the types that AI proves. This option is too expensive to turn on for our
regression testing, but we think it will be valuable in other types of running
modes, such as when running with a fuzzer.

This patch also adds options to only probabilistically run this validation
after the execution of each node. As the probability is lowered, there is
less of a perf hit.

This patch just adds this validation in the FTL. A follow-up patch will land
it in the DFG too: https://bugs.webkit.org/show_bug.cgi?id=196219

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::LowerDFGToB3):
(JSC::FTL::DFG::LowerDFGToB3::compileBlock):
(JSC::FTL::DFG::LowerDFGToB3::validateAIState):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::lowJSValue):

  • runtime/Options.h:
5:02 PM Changeset in webkit [243529] by dinfuehr@igalia.com
  • 2 edits in trunk/JSTests

Skip WebAssembly test on 32-bit systems
https://bugs.webkit.org/show_bug.cgi?id=196206

Reviewed by Saam Barati.

Invoking runDefault executes test immediately even though
that test should be skipped due to missing WASM support.
Therefore remove runDefault.

  • wasm/regress/web-assembly-link-error-exception-check.js:
4:54 PM Changeset in webkit [243528] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

[macOS] The network process is not exiting reliably when the WebProcessPool is destroyed
https://bugs.webkit.org/show_bug.cgi?id=196277
<rdar://problem/49127581>

Reviewed by Alex Christensen.

When, an AuxiliaryProcess receives the AuxiliaryProcess::Terminate IPC, it calls stopRunLoop()
to exit. WebProcess overrides AuxiliaryProcess::stopRunLoop() to call exit(0) on the main
thread. Other auxiliary processes such as the NetworkProcess would end up calling
platformStopRunLoop(). On iOS and iOSMac, platformStopRunLoop() calls XPCServiceExit(), which
makes sense since auxiliary processes run their run loop by calling xpc_main(). However, on
macOS, platformStopRunLoop() was calling RunLoop::main().stop() to exit instead, which was
unreliable as demonstrated by the test app attached to the radar.

Updating platformStopRunLoop() to call XPCServiceExit() on macOS fixes the problem and I now
see the NetworkProcess exiting reliably there. This is the approach I have chosen in this
patch since it appears to be reliable and it makes the code consistent on all Cocoa platforms.

  • Shared/AuxiliaryProcess.cpp:
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::platformStopRunLoop):

  • Shared/ios/AuxiliaryProcessIOS.mm:

(WebKit::AuxiliaryProcess::platformStopRunLoop): Deleted.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::platformStopRunLoop): Deleted.

4:51 PM Changeset in webkit [243527] by Keith Rollin
  • 2 edits in trunk/Tools

Update the way generate-xcfilelists returns strings from functions
https://bugs.webkit.org/show_bug.cgi?id=195975
<rdar://problem/49040807>

Reviewed by Dean Jackson.

There are places where generate-xcfilelists executes assignments with
statements like:

FOO=$(some_function)

where "some_function" return a string by echoing it. E.g.

some_function()
{

echo "Hello, World"

}

This is a common idiom, but it has a problem if "some_function" needs
to call "exit" in an attempt to halt the entire script right then and
there. Since "some_function" is called inside of $(), it's being
executed in a sub-shell. Calling exit in that sub-shell simply exits
that shell; it doesn't not exit the outer shell in which the main part
of the script is still running. As such, the main script keeps
executing when the intent was for the script to halt.

The solution to this is to use a different idiom for returning
strings. The one we now is to pass in the name of the variable to
receive the string result:

some_function()
{

variable_name=$1
eval $variable_name ="Hello, World"

}

The call site now looks like

some_function FOO

Because there's no invocation of a sub-shell, some_function can now
call "exit" if it wants to, and the entire script will exit at that
point.

  • Scripts/generate-xcfilelists:
4:50 PM Changeset in webkit [243526] by Jon Davis
  • 3 edits
    2 adds in trunk/Websites/browserbench.org

Update BrowserBench for JetStream2.
https://bugs.webkit.org/show_bug.cgi?id=196273

Reviewed by Saam Barati.

(.benchmark:hover img): Improved hover effect for the JetStream2 logo.

4:41 PM Changeset in webkit [243525] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[Cocoa] Refactor some helper functions for building UserAgent strings
https://bugs.webkit.org/show_bug.cgi?id=195990

Reviewed by Brent Fulgham.

Add an optional argument to standardUserAgentWithApplicationName to request the desktop version of the user
agent in Cocoa platforms. Work towards refactoring some codepaths to make the implementation of the "Request
Desktop Site" feature in Safari a bit more straightforward.

No change in behavior.

  • platform/UserAgent.h:
  • platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):

The corresponding macOS version is currently hard-coded — the followup bug webkit.org/b/196275 tracks making
this dynamically fetch the paired macOS version when building for iOS.

  • platform/mac/UserAgentMac.mm:

(WebCore::standardUserAgentWithApplicationName):

4:29 PM Changeset in webkit [243524] by Keith Rollin
  • 4 edits in trunk/Source

Inhibit CFNetwork logging in private sessions
https://bugs.webkit.org/show_bug.cgi?id=196268
<rdar://problem/48210793>

Reviewed by Alex Christensen.

Before performing any logging, the NetworkProcess checks to see if
it's performing an operation associated with a private (ephemeral)
browsing session. If so, it skips the logging. However, networking
layers below the NetworkProcess don't know about private browsing, so
they would still perform their own logging. CFNetwork now has a flag
that lets us control that, so set it to False if private browsing.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID):

Source/WTF:

  • wtf/Platform.h:
4:24 PM Changeset in webkit [243523] by Chris Dumez
  • 17 edits
    2 adds in trunk

Add basic layout test coverage for File Picker on iOS
https://bugs.webkit.org/show_bug.cgi?id=196265

Reviewed by Wenson Hsieh.

Source/WebKit:

Add layout test infrastructure to test the file picker on iOS.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _dismissFilePicker]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dismissFilePicker]):
(-[WKContentView _contentsOfUserInterfaceItem:]):

  • UIProcess/ios/forms/WKFileUploadPanel.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel currentAvailableActionTitles]):

Tools:

Add layout test infrastructure to test the file picker on iOS.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::dismissFilePicker):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::dismissFilePicker):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(overridePresentViewController):
(WTR::TestController::platformInitialize):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::dismissFilePicker):

LayoutTests:

Add new layout test.

  • fast/forms/ios/file-upload-panel-expected.txt: Added.
  • fast/forms/ios/file-upload-panel.html: Added.
3:59 PM Changeset in webkit [243522] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

Layout tests editing/deleting/delete-emoji-1.html
editing/deleting/delete-emoji-9.html
editing/deleting/delete-emoji.html are failing
webkit.org/b/191709

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Updating test expectations waiting for rebaseline
3:13 PM Changeset in webkit [243521] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/xhr/send-redirect-post-upload.htm is a flaky crash and a failing test
https://bugs.webkit.org/show_bug.cgi?id=196274

Unreviewed test gardening.

  • TestExpectations:
  • platform/mac/TestExpectations: Updating test expectaion for flaky crash
3:08 PM Changeset in webkit [243520] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS][WK2] Use a better concept to describe the reason we defer zooming a focused element: selectabiltiy
https://bugs.webkit.org/show_bug.cgi?id=196264

Reviewed by Wenson Hsieh.

Rename shouldDeferZoomingToSelectionWhenRevealingFocusedElement() to mayContainSelectableText() to describe
the criterion that we will use to decide whether to defer zooming or not. We defer zooming only for elements
that may support text selection on initial focus because we do not have an up-to-date selection rect at that
time. For element, like <select>, that do not support text selection, we can zoom them immediately when focused.

  • UIProcess/ios/WKContentViewInteraction.mm:

(mayContainSelectableText): Renamed from shouldDeferZoomingToSelectionWhenRevealingFocusedElement.
List all the input types in the switch block and remove the default case to force the compiler to check that we
covered all cases. This will prevent unforseen keyboard issues (why isn't the keyboard shown? or why is the keyboard shown?)
for future input types that we may add.
(rectToRevealWhenZoomingToFocusedElement): Update for renaming.
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): Add a
comment to explain why we may need to defer the zoom: the focused element supports text selection and we need
to wait for the web process to call back to provide an up-to-date selection rect for us to zoom and reveal.
(-[WKContentView _didReceiveEditorStateUpdateAfterFocus]): Update for renaming.
(shouldDeferZoomingToSelectionWhenRevealingFocusedElement): Deleted.

2:15 PM Changeset in webkit [243519] by Wenson Hsieh
  • 7 edits in trunk

Implement async paste method on UIWKInteractionViewProtocol
https://bugs.webkit.org/show_bug.cgi?id=196267
<rdar://problem/49236346>

Reviewed by Tim Horton.

Source/WebKit:

Implement a new UIWKInteractionViewProtocol hook to perform a paste command, and invoke the given completion
handler when pasting is finished.

Test: UIPasteboardTests.PasteWithCompletionHandler

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView pasteWithCompletionHandler:]):

Tools:

Add a new test to exercise the new SPI. Additionally, add staging forward declarations for
-pasteWithCompletionHandler:, and remove some old existing staging declarations for other bits of UIKit SPI that
are now a part of all iOS 12 internal SDKs.

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

While we're here, also change a few iOS 11.3 checks to just be about PLATFORM(IOS) (since we don't build for iOS
prior to 12, these version checks are effectively only about iOS vs. tvOS or watchOS).

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator _sendQueuedAdditionalItemRequest]):

  • TestWebKitAPI/ios/UIKitSPI.h:
2:04 PM Changeset in webkit [243518] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Use PostgreSQL for ews.webkit.org database
https://bugs.webkit.org/show_bug.cgi?id=196270

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews-app/settings.py:
1:42 PM Changeset in webkit [243517] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

Layout tests http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource.html
http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource.html
http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource.html
http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource.html are flaky time outs
https://bugs.webkit.org/show_bug.cgi?id=196269

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Updating test expectations for flaky tests
  • platform/ios-wk2/TestExpectations: Updatiting test expectations for flaky tests
1:41 PM Changeset in webkit [243516] by Jonathan Bedard
  • 2 edits in trunk/Tools

[ews] Reset simctl states on reboot
https://bugs.webkit.org/show_bug.cgi?id=196260

Rubber-stamped by Aakash Jain.

  • EWSTools/start-queue-mac.sh:
1:14 PM Changeset in webkit [243515] by Said Abou-Hallawa
  • 78 edits
    4 copies
    6 deletes in trunk

Remove the SVG tear off objects for SVGLength, SVGLengthList and SVGAnimatedLengthList
https://bugs.webkit.org/show_bug.cgi?id=196083

Reviewed by Simon Fraser.

Source/WebCore:

-- SVGLength will be a superclass of SVGValueProperty<SVGLengthValue>. It

is a wrapper of SVGLengthValue. It will be provide the DOM methods. It
can setValueAsString() and return valueAsString().

-- SVGLengthList will be a superclass of SVGValuePropertyList<SVGLength>.

The base class will provide all the DOM methods. SVGLengthList will be
responsible for parsing a String to a SVGLength items. It can also
build a string representing the stored items.

-- SVGAnimatedLengthList will be defined as SVGAnimatedPropertyList<SVGLengthList>.

Like SVGAnimatedPointList, all the required methods and attributes
will be handled by SVGAnimatedPropertyList.

-- SVGAnimatedLengthAccessor and SVGAnimatedLengthListAccessor will be

added to access the members of types SVGAnimatedLength and
SVGAnimatedLengthList.

-- SVGAnimatedLengthAnimator and SVGAnimatedLengthListAnimator will be

created by the the new accessors to animate attributes of types
SVGAnimatedLength and SVGAnimatedLengthList.

-- SVGAnimationLengthFunction and SVGAnimationLengthListFunction will be

responsible for progressing the animVal() of attributes of types
SVGAnimatedLength and SVGAnimatedLengthList.

-- SVGValuePropertyAnimator is a new template class which can animate a

none reflecting attribute which should be backed by a value property,
e.g. SVGLength.

-- SVGValuePropertyListAnimator is a new template class which can animate a

none reflecting attribute which should be backed by a value property
list, e.g. SVGLengthList.

Notes:

-- SVGElement::isAnimatedStyleAttribute() will return true if the

attribute is known by SVGPropertyAnimatorFactory. Or it's has
a reflecting SVGAnimatedPropertyLength property and its name is
one of the names listed in isAnimatedStylePropertyAttribute() of
the propertyRegistry() of the SVGElement.

-- SVGElement::commitPropertyChange() has to handle the attributes

for which isAnimatedStylePropertyAttribute() returns true different
from the other ones. styleReclac() needs updated attributes since
it does not access the reflecting properties in the SVGELement.

-- SVGTextContentElement does not need a customized SVGAnimatedLength.

All SVGTextContentElement::textLengthAnimated() needs to know is
whether m_textLength->baseVal() holds an empty SVGLength. If it
does, it sets its value to getComputedTextLength().

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/SVGTextLayoutAttributesBuilder.cpp:

(WebCore::updateCharacterData):
(WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::hasValidAttributeType const):

  • svg/SVGAnimatedLength.cpp: Removed.
  • svg/SVGAnimatedLength.h: Removed.
  • svg/SVGAnimatedLengthList.cpp: Removed.
  • svg/SVGAnimatedLengthList.h: Removed.
  • svg/SVGAnimatedType.h:

(WebCore::SVGAnimatedType::type const):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
(WebCore::inheritsFromProperty):

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::isSupportedAttribute):
(WebCore::SVGAnimatorFactory::create):
These changes were required because some of the tests were trying to
animated unsupported attributes. To differentiate between between the
these two cases:

1) the attribute is animate-able by the legacy controller.
2) animating the attribute or the attribute itself is not supported

by the element.

We want SVGAnimatorFactory tell us whether it can create an animator for
a given attribute or not.

  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::SVGCircleElement):
(WebCore::SVGCircleElement::parseAttribute):
(WebCore::SVGCircleElement::svgAttributeChanged):
(WebCore::SVGCircleElement::registerAttributes): Deleted.

  • svg/SVGCircleElement.h:
  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::SVGCursorElement):
(WebCore::SVGCursorElement::parseAttribute):
(WebCore::SVGCursorElement::svgAttributeChanged):
(WebCore::SVGCursorElement::registerAttributes): Deleted.

  • svg/SVGCursorElement.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):
(WebCore::SVGElement::isAnimatedStyleAttribute const):

  • svg/SVGElement.h:
  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::SVGEllipseElement):
(WebCore::SVGEllipseElement::parseAttribute):
(WebCore::SVGEllipseElement::svgAttributeChanged):
(WebCore::SVGEllipseElement::registerAttributes): Deleted.

  • svg/SVGEllipseElement.h:
  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::SVGFilterElement):
(WebCore::SVGFilterElement::registerAttributes):
(WebCore::SVGFilterElement::parseAttribute):

  • svg/SVGFilterElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
(WebCore::SVGFilterPrimitiveStandardAttributes::registerAttributes): Deleted.

  • svg/SVGFilterPrimitiveStandardAttributes.h:

(WebCore::SVGFilterPrimitiveStandardAttributes::x const):
(WebCore::SVGFilterPrimitiveStandardAttributes::y const):
(WebCore::SVGFilterPrimitiveStandardAttributes::width const):
(WebCore::SVGFilterPrimitiveStandardAttributes::height const):
(WebCore::SVGFilterPrimitiveStandardAttributes::xAnimated):
(WebCore::SVGFilterPrimitiveStandardAttributes::yAnimated):
(WebCore::SVGFilterPrimitiveStandardAttributes::widthAnimated):
(WebCore::SVGFilterPrimitiveStandardAttributes::heightAnimated):
(WebCore::SVGFilterPrimitiveStandardAttributes::isKnownAttribute): Deleted.

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
(WebCore::SVGForeignObjectElement::parseAttribute):
(WebCore::SVGForeignObjectElement::registerAttributes): Deleted.

  • svg/SVGForeignObjectElement.h:
  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::SVGImageElement):
(WebCore::SVGImageElement::parseAttribute):
(WebCore::SVGImageElement::registerAttributes): Deleted.

  • svg/SVGImageElement.h:
  • svg/SVGLength.h:

(WebCore::SVGLength::create):
(WebCore::SVGLength::clone const):
(WebCore::SVGLength::unitType):
(WebCore::SVGLength::valueForBindings):
(WebCore::SVGLength::setValueForBindings):
(WebCore::SVGLength::valueInSpecifiedUnits):
(WebCore::SVGLength::setValueInSpecifiedUnits):
(WebCore::SVGLength::setValueAsString):
(WebCore::SVGLength::newValueSpecifiedUnits):
(WebCore::SVGLength::convertToSpecifiedUnits):
(WebCore::SVGLength::valueAsString): Deleted.
(WebCore::SVGLength::SVGLength): Deleted.

  • svg/SVGLengthList.h:

(WebCore::SVGLengthList::create):
(WebCore::SVGLengthList::lengthMode const):
(WebCore::SVGLengthList::parse):
(WebCore::SVGLengthList::SVGLengthList):

  • svg/SVGLengthListValues.cpp: Removed.
  • svg/SVGLengthListValues.h: Removed.
  • svg/SVGLineElement.cpp:

(WebCore::SVGLineElement::SVGLineElement):
(WebCore::SVGLineElement::parseAttribute):
(WebCore::SVGLineElement::svgAttributeChanged):
(WebCore::SVGLineElement::registerAttributes): Deleted.

  • svg/SVGLineElement.h:
  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
(WebCore::SVGLinearGradientElement::parseAttribute):
(WebCore::SVGLinearGradientElement::svgAttributeChanged):
(WebCore::SVGLinearGradientElement::registerAttributes): Deleted.

  • svg/SVGLinearGradientElement.h:
  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::registerAttributes):
(WebCore::SVGMarkerElement::parseAttribute):

  • svg/SVGMarkerElement.h:
  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::SVGMaskElement):
(WebCore::SVGMaskElement::registerAttributes):
(WebCore::SVGMaskElement::parseAttribute):
(WebCore::SVGMaskElement::svgAttributeChanged):

  • svg/SVGMaskElement.h:
  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::registerAttributes):
(WebCore::SVGPatternElement::parseAttribute):

  • svg/SVGPatternElement.h:
  • svg/SVGPoint.h:
  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
(WebCore::SVGRadialGradientElement::parseAttribute):
(WebCore::SVGRadialGradientElement::svgAttributeChanged):
(WebCore::SVGRadialGradientElement::registerAttributes): Deleted.

  • svg/SVGRadialGradientElement.h:
  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::SVGRectElement):
(WebCore::SVGRectElement::parseAttribute):
(WebCore::SVGRectElement::svgAttributeChanged):
(WebCore::SVGRectElement::registerAttributes): Deleted.

  • svg/SVGRectElement.h:
  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::parseAttribute):
(WebCore::SVGSVGElement::svgAttributeChanged):
(WebCore::SVGSVGElement::registerAttributes): Deleted.

  • svg/SVGSVGElement.h:
  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::SVGTextContentElement):
(WebCore::SVGTextContentElement::registerAttributes):
(WebCore::SVGTextContentElement::parseAttribute):
(WebCore::SVGTextContentElement::svgAttributeChanged):
(WebCore::SVGTextContentElement::textLengthAnimated):

  • svg/SVGTextContentElement.h:

(WebCore::SVGTextContentElement::specifiedTextLength const):
(WebCore::SVGTextContentElement::textLength const):
(WebCore::SVGTextContentElement::specifiedTextLength): Deleted.
(WebCore::SVGTextContentElement::textLengthAnimated): Deleted.
(WebCore::SVGTextContentElement::SVGAnimatedCustomLengthAttribute::SVGAnimatedCustomLengthAttribute): Deleted.
(WebCore::SVGTextContentElement::SVGAnimatedCustomLengthAttribute::synchronize): Deleted.
(WebCore::SVGTextContentElement::SVGAnimatedCustomLengthAttribute::animatedProperty): Deleted.

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::SVGTextPathElement):
(WebCore::SVGTextPathElement::registerAttributes):
(WebCore::SVGTextPathElement::parseAttribute):

  • svg/SVGTextPathElement.h:
  • svg/SVGTextPositioningElement.cpp:

(WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
(WebCore::SVGTextPositioningElement::parseAttribute):
(WebCore::SVGTextPositioningElement::svgAttributeChanged):
(WebCore::SVGTextPositioningElement::registerAttributes): Deleted.

  • svg/SVGTextPositioningElement.h:

(WebCore::SVGTextPositioningElement::x const):
(WebCore::SVGTextPositioningElement::y const):
(WebCore::SVGTextPositioningElement::dx const):
(WebCore::SVGTextPositioningElement::dy const):
(WebCore::SVGTextPositioningElement::xAnimated):
(WebCore::SVGTextPositioningElement::yAnimated):
(WebCore::SVGTextPositioningElement::dxAnimated):
(WebCore::SVGTextPositioningElement::dyAnimated):
(WebCore::SVGTextPositioningElement::isKnownAttribute): Deleted.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::SVGUseElement):
(WebCore::SVGUseElement::parseAttribute):
(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::SVGUseElement::registerAttributes): Deleted.

  • svg/SVGUseElement.h:
  • svg/SVGValue.h:
  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimator.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyImpl.h:
  • svg/properties/SVGAnimationAdditiveListFunctionImpl.h:

(WebCore::SVGAnimationLengthListFunction::SVGAnimationLengthListFunction):
(WebCore::SVGAnimationLengthListFunction::progress):
(WebCore::SVGAnimationNumberListFunction::progress):
(WebCore::SVGAnimationPointListFunction::progress):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationLengthFunction::SVGAnimationLengthFunction):
(WebCore::SVGAnimationLengthFunction::progress):

  • svg/properties/SVGAttributeAnimator.cpp:

(WebCore::SVGAttributeAnimator::isAnimatedStylePropertyAniamtor const):

  • svg/properties/SVGAttributeAnimator.h:
  • svg/properties/SVGAttributeRegistry.h:
  • svg/properties/SVGPropertyAnimatorFactory.h:

(WebCore::SVGPropertyAnimatorFactory::createLengthAnimator):
(WebCore::SVGPropertyAnimatorFactory::createLengthListAnimator):
(WebCore::SVGPropertyAnimatorFactory::attributeAnimatorCreator):

  • svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGPropertyOwnerRegistry::registerProperty):
(WebCore::SVGPropertyOwnerRegistry::isAnimatedLengthAttribute):

  • svg/properties/SVGPropertyRegistry.h:
  • svg/properties/SVGValuePropertyAnimator.h: Added.

(WebCore::SVGValuePropertyAnimator::SVGValuePropertyAnimator):

  • svg/properties/SVGValuePropertyAnimatorImpl.h: Added.
  • svg/properties/SVGValuePropertyListAnimator.h: Added.

(WebCore::SVGValuePropertyListAnimator::SVGValuePropertyListAnimator):

  • svg/properties/SVGValuePropertyListAnimatorImpl.h: Added.

LayoutTests:

  • platform/win/TestExpectations:
  • svg/animations/svglength-element-removed-crash.svg:
  • svg/dom/SVGLengthList-appendItem-expected.txt:
  • svg/dom/SVGLengthList-appendItem.xhtml:
  • svg/dom/SVGLengthList-basics-expected.txt:
  • svg/dom/SVGLengthList-basics.xhtml:
  • svg/dom/SVGLengthList-initialize-expected.txt:
  • svg/dom/SVGLengthList-initialize.xhtml:
  • svg/dom/SVGLengthList-insertItemBefore-expected.txt:
  • svg/dom/SVGLengthList-insertItemBefore.xhtml:
  • svg/dom/SVGLengthList-removeItem-expected.txt:
  • svg/dom/SVGLengthList-removeItem.xhtml:
  • svg/dom/SVGLengthList-replaceItem-expected.txt:
  • svg/dom/SVGLengthList-replaceItem.xhtml:

This changes are required because SVGLengthList will be following the SVG2
specs regarding adding new items to the list.

See https://www.w3.org/TR/SVG/types.html#TermListInterface.

12:29 PM Changeset in webkit [243514] by Tadeu Zagallo
  • 7 edits in trunk

WebAssembly: Fix f32.min, f64.min and f64.max operations on NaN
https://bugs.webkit.org/show_bug.cgi?id=196217

Reviewed by Saam Barati.

JSTests:

Re-enable all NaN tests for f32.min, f64.min and f64.max.

  • wasm/spec-tests/f32.wast.js:
  • wasm/spec-tests/f64.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

Generalize the fix for f32.max to properly handle NaN by doing an extra GreatherThan
comparison in r243446 to all min and max float operations.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Min>):
(JSC::Wasm::AirIRGenerator::addFloatingPointMinOrMax):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Max>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Min>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Max>):

  • wasm/wasm.json:
12:23 PM Changeset in webkit [243513] by Simon Fraser
  • 5 edits
    1 copy
    3 adds in trunk

[iOS WK2] position:fixed inside oveflow:scroll is jumpy
https://bugs.webkit.org/show_bug.cgi?id=196238

Reviewed by Antti Koivisto.
Source/WebCore:

We were inadvertently making Positioned nodes for position:fixed, which is unnecessary because
Fixed nodes handle them, and harmful because they introduced unwanted layer movement.

Tests: scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree.html

scrollingcoordinator/ios/fixed-in-overflow-scroll.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCoordinatedPositioningForLayer const):

LayoutTests:

fixed-in-overflow-scroll-scrolling-tree.html actually tests the fix.
For some reason fixed-in-overflow-scroll.html doesn't show the jumpiness, but it's
a good test to have nonetheless.

Other minor cleanup.

  • resources/ui-helper.js:

(window.UIHelper.immediateScrollElementAtContentPointToOffset):

  • scrollingcoordinator/ios/fixed-in-overflow-scroll-expected.html: Added.
  • scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree-expected.txt: Added.
  • scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree.html: Copied from LayoutTests/scrollingcoordinator/ios/ui-scrolling-tree.html.
  • scrollingcoordinator/ios/fixed-in-overflow-scroll.html: Added.
  • scrollingcoordinator/ios/ui-scrolling-tree.html:
12:20 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
12:20 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
12:18 PM Changeset in webkit [243512] by andy@vanwagoner.family
  • 5 edits in trunk

Intl.DateTimeFormat should obey 2-digit hour
https://bugs.webkit.org/show_bug.cgi?id=195974

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):

LayoutTests:

  • js/intl-datetimeformat-expected.txt:
  • js/script-tests/intl-datetimeformat.js:
12:15 PM Changeset in webkit [243511] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Fix sandbox violations
https://bugs.webkit.org/show_bug.cgi?id=196262
<rdar://problem/47738015>

Reviewed by Brent Fulgham.

Fix various observed sandbox violations.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
12:04 PM Changeset in webkit [243510] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Primary cluster of measurement set should always contain latest point.
https://bugs.webkit.org/show_bug.cgi?id=196243

Reviewed by Ryosuke Niwa.

Fix a bug in measurement-set api that primary cluster may not contain latest data point as
'carry_over' row may not be updated.

  • public/api/measurement-set.php: Should always keep 'carry_over' data points up to date.
  • server-tests/api-measurement-set-tests.js: Added an unit test for this change.

Fixed a typo.

11:20 AM Changeset in webkit [243509] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Use PostgreSQL for ews-build database
https://bugs.webkit.org/show_bug.cgi?id=196229

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/master.cfg:
11:13 AM Changeset in webkit [243508] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Get master_hostname dynamically in master.cfg
https://bugs.webkit.org/show_bug.cgi?id=196255

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/master.cfg: Get hostname dynamically. Also do not

send events data in test mode.

11:12 AM Changeset in webkit [243507] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: fix typo in CSS selector to always show add breakpoint button
https://bugs.webkit.org/show_bug.cgi?id=196241

Reviewed by Matt Baker.

  • UserInterface/Views/SourcesNavigationSidebarPanel.css:

(.sidebar > .panel.navigation.sources > .content > .details-section:matches(.paused-reason, .breakpoints).collapsed > .header > .options,):
(.sidebar > .panel.navigation.sources > .content > .details-section:matches(.paused-reason, .breakpoins).collapsed > .header > .options,): Deleted.

11:00 AM Changeset in webkit [243506] by dino@apple.com
  • 3 edits
    2 adds in trunk

vertexAttribPointer must restrict offset parameter
https://bugs.webkit.org/show_bug.cgi?id=196261
<rdar://problem/48458086>

Reviewed by Antoine Quint.

Source/WebCore:

This WebGL function should fail if the offset parameter is
not within [0, max 32-bit int].

Test: fast/canvas/webgl/vertexAttribPointer-with-bad-offset.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::vertexAttribPointer):

LayoutTests:

Add a test where the offset parameter is out of bounds.

  • fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt: Added.
  • fast/canvas/webgl/vertexAttribPointer-with-bad-offset.html: Added.
10:57 AM Changeset in webkit [243505] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Assertion failure !isInAcceleratedCompositingMode() in DrawingAreaProxyCoordinatedGraphics::incorporateUpdate when forceCompositingMode is turned on
https://bugs.webkit.org/show_bug.cgi?id=195879

Patch by Tomoki Imai <Tomoki Imai> on 2019-03-26
Reviewed by Carlos Garcia Campos.

The root cause is that DrawingAreaProxyCoordinatedGraphics::isInAcceleratedCompositingMode checks both of alwaysUseCompositing() and !m_layerTreeContext.isEmpty().
alwaysUseCompositing() refers preferences, which is written by the application (UIProcess).
On the other hand, m_layerTreeContext is changed when it receives enterAcceleratedCompositingMode/exitAcceleratedCompositingMode from WebProcess.

It results when we set forceCompositingMode and acceleratedCompositingEnabled to true, WebProcess and UIProcess is out of sync until WebProcess sends enterAcceleratedCompositingMode message.
In such situation, WebProcess sends incorporateUpdate to UIProcess because WebProcess is in non-AC mode, but isInAcceleratedCompositingMode becomes true in UIProcess side.

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:

(WebKit::DrawingAreaProxyCoordinatedGraphics::~DrawingAreaProxyCoordinatedGraphics): Should call exitAcceleratedCompositingMode even when alwaysUseCompositing is true.
(WebKit::DrawingAreaProxyCoordinatedGraphics::enterAcceleratedCompositingMode): enterAcceleratedCompositingMode should check enterAcceleratedCompositingMode is not called twice.

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h: Remove alwaysUseCompositing from isInAcceleratedCompositingMode
10:29 AM Changeset in webkit [243504] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

Remove mousemoveEventHandlingPreventsDefault internal setting and quirk
https://bugs.webkit.org/show_bug.cgi?id=196254
<rdar://problem/49124334>

Unreviewed. Fix build broken by previous commit.

  • dom/Event.cpp:
  • dom/Event.h:

(WebCore::Event::hasEncounteredListener const): Deleted.
(WebCore::Event::setHasEncounteredListener): Deleted.

  • dom/EventTarget.cpp:

(WebCore::EventTarget::innerInvokeEventListeners):

10:27 AM Changeset in webkit [243503] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[ContentChangeObserver] Skip anonymous renderers when checking for "willRespondToMouseClickEvents"
https://bugs.webkit.org/show_bug.cgi?id=196259
<rdar://problem/49240029>

Reviewed by Dean Jackson.

Source/WebCore:

Anonymous renderers don't have associated DOM nodes so they can't have event listeners either. Let's skip them.

Test: fast/events/touch/ios/content-observation/crash-on-anonymous-renderer.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::StyleChangeScope::isConsideredClickable const):

LayoutTests:

  • fast/events/touch/ios/content-observation/crash-on-anonymous-renderer-expected.txt: Added.
  • fast/events/touch/ios/content-observation/crash-on-anonymous-renderer.html: Added.
10:13 AM Changeset in webkit [243502] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-app] Set db_constraint to False for Foreign Keys
https://bugs.webkit.org/show_bug.cgi?id=196252

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/models/build.py:
  • BuildSlaveSupport/ews-app/ews/models/step.py:
10:12 AM Changeset in webkit [243501] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] is_test_mode_enabled should default to True
https://bugs.webkit.org/show_bug.cgi?id=196248

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/master.cfg: Reverse the environment variable used to decide is_test_mode_enabled.
10:08 AM Changeset in webkit [243500] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Add webkitperl to ENABLED_QUEUES
https://bugs.webkit.org/show_bug.cgi?id=196253

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
9:57 AM Changeset in webkit [243499] by graouts@webkit.org
  • 6 edits in trunk/Source

Remove mousemoveEventHandlingPreventsDefault internal setting and quirk
https://bugs.webkit.org/show_bug.cgi?id=196254
<rdar://problem/49124334>

Reviewed by Dean Jackson.

Source/WebCore:

  • page/Quirks.cpp:

(WebCore::Quirks::shouldMousemoveEventHandlingPreventDefault const): Deleted.

  • page/Quirks.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setMouseEventsSimulationEnabled):
(WebCore::RuntimeEnabledFeatures::mousemoveEventHandlingPreventsDefaultEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setMousemoveEventHandlingPreventsDefaultEnabled): Deleted.

Source/WebKit:

  • Shared/WebPreferences.yaml:
9:39 AM Changeset in webkit [243498] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

Layout tests fast/events/wheel-event-destroys-overflow.html
fast/events/wheelevent-mousewheel-interaction.html
fast/events/wheel-event-destroys-frame.html
fast/events/wheelevent-basic.html
fast/events/wheelevent-in-text-node.html are a flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=195719

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Marking tests as flaky
9:36 AM Changeset in webkit [243497] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r243493.
https://bugs.webkit.org/show_bug.cgi?id=196257

broke the non-gst-gl build (Requested by philn on #webkit).

Reverted changeset:

"Build failure with gstreamer 1.12.5 if USE_GSTREAMER_GL is
enabled"
https://bugs.webkit.org/show_bug.cgi?id=196178
https://trac.webkit.org/changeset/243493

9:30 AM WebKitGTK/2.24.x edited by Philippe Normand
(diff)
8:58 AM Changeset in webkit [243496] by ap@apple.com
  • 5 edits in trunk/Tools

Address NSWindow sometimes using WebKitTestRunnerEvent too early
https://bugs.webkit.org/show_bug.cgi?id=196211
rdar://problem/49110552

Reviewed by Tim Horton.

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::initialize):

Make sure that EventSenderProxy always exists when running tests. We used to create
it when resetting before the first test, which is a bit too late.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):
(WTR::TestController::platformCreateOtherPage):
(WTR::TestController::finishCreatingPlatformWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):
Moved some code that made NSWindow use NSEvent during web view creation. We may
need to move more if some other case us found, but this is enough for now.

7:50 AM Changeset in webkit [243495] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test js/math-clz32.html is failing
https://bugs.webkit.org/show_bug.cgi?id=196209

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:22 AM Changeset in webkit [243494] by Diego Pino Garcia
  • 2 edits
    3 adds in trunk/LayoutTests

[GTK] Unreviewed gardening, update test expectations and baselines

  • platform/gtk/TestExpectations:
  • platform/gtk/compositing/overflow/textarea-scroll-touch-expected.txt:

New expected results after r243031.

  • platform/gtk/http/tests/inspector/network/har/har-page-expected.txt:

New expected results after r243347.

6:19 AM WebKitGTK/2.24.x edited by Philippe Normand
(diff)
6:11 AM Changeset in webkit [243493] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Build failure with gstreamer 1.12.5 if USE_GSTREAMER_GL is enabled
https://bugs.webkit.org/show_bug.cgi?id=196178

Patch by Mike Gorse <mgorse@alum.wpi.edu> on 2019-03-26
Reviewed by Philippe Normand.

No new tests (build fix).

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

Include gst/gl/gl.h before including GraphicsContext3D.h.

5:19 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
5:16 AM WebKitGTK/2.24.x edited by Philippe Normand
(diff)
5:09 AM Changeset in webkit [243492] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][Qt] Uninitialized racy ViewBackend
https://bugs.webkit.org/show_bug.cgi?id=196247

Patch by Philippe Normand <pnormand@igalia.com> on 2019-03-26
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/wpe/qt/WPEQtView.h: Initialize the backend pointer to nullptr.
4:18 AM Changeset in webkit [243491] by Carlos Garcia Campos
  • 8 edits in trunk

Unreviewed. Fix typo in GLib geolocation API after r243285.

gelocation -> geolocation.

Source/WebKit:

  • UIProcess/API/glib/WebKitGeolocationManager.cpp:

(webkit_geolocation_manager_class_init):
(webkit_geolocation_manager_update_position):
(webkit_geolocation_manager_failed):
(webkit_gelocation_manager_update_position): Deleted.
(webkit_gelocation_manager_failed): Deleted.

  • UIProcess/API/gtk/WebKitGeolocationManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitGeolocationManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestGeolocationManager.cpp:

(testGeolocationManagerWatchPosition):

3:16 AM Changeset in webkit [243490] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Disable process warming
https://bugs.webkit.org/show_bug.cgi?id=196208

Patch by Patrick Griffis <Patrick Griffis> on 2019-03-26
Reviewed by Chris Dumez.

Fixes crash caused by r243384.

Process warming is incompatible with our launcher as it expects a valid
WebsiteDataStore at initialization time for sandbox permissions.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitialize):

2:34 AM Changeset in webkit [243489] by Philippe Normand
  • 7 edits in trunk

[GStreamer] Sound loop with Google Hangouts and WhatsApp notifications
https://bugs.webkit.org/show_bug.cgi?id=189471

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The media duration is now cached (again). The loop issue was
triggered by the previous version of the code returning positive
infinite duration in didEnd(), followed by the timeupdate event
propagation that would trick the HTMLMediaElement into a new call
to play(). Now the cached duration is updated to current position
at EOS (for forward playback direction only), so the media element
no longer triggers a new play call for those cases.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::loadFull):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::platformDuration const):
(WebCore::MediaPlayerPrivateGStreamer::durationMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::durationChanged):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime const):

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/media/video-playing-and-pause-expected.txt:
12:12 AM Changeset in webkit [243488] by Antti Koivisto
  • 7 edits in trunk

Hit-testing on layers overlapping scrollers should hit-test on text boxes
https://bugs.webkit.org/show_bug.cgi?id=195373
<rdar://problem/48649865>

Reviewed by Simon Fraser.

Source/WebCore:

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paint):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

Collect event region for overflowing line boxes.

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):

Collect event region for overflowing simple lines.

LayoutTests:

  • fast/scrolling/ios/overflow-scroll-overlap-3.html:

Mar 25, 2019:

11:12 PM Changeset in webkit [243487] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

Do not terminate the NetworkProcess if a third party application sends a NSCredential with a SecIdentityRef
https://bugs.webkit.org/show_bug.cgi?id=196213

Patch by Alex Christensen <achristensen@webkit.org> on 2019-03-25
Reviewed by Geoff Garen.

Source/WebKit:

A release assertion added in r230225 was reachable. I reached it in a unit test that responds to a challenge
with a SecIdentityRef wrapped in an NSCredential.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: Added.

(credentialWithIdentityAndKeychainPath):
(-[ChallengeDelegate webView:didFinishNavigation:]):
(-[ChallengeDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(TestWebKitAPI::TEST):

10:53 PM Changeset in webkit [243486] by commit-queue@webkit.org
  • 7 edits in trunk

Expected shouldn't assume its contained types are copyable
https://bugs.webkit.org/show_bug.cgi?id=195986

Patch by Alex Christensen <achristensen@webkit.org> on 2019-03-25
Reviewed by JF Bastien.

Source/WebCore:

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):

Source/WTF:

  • wtf/Expected.h:

(std::experimental::fundamentals_v3::expected_detail::constexpr_base::constexpr_base):
(std::experimental::fundamentals_v3::operator==):
(std::experimental::fundamentals_v3::operator!=):

  • wtf/Unexpected.h:

(std::experimental::fundamentals_v3::unexpected::unexpected):

Tools:

  • TestWebKitAPI/Tests/WTF/Expected.cpp:

(TestWebKitAPI::NonCopyable::operator== const):
(TestWebKitAPI::NonCopyable::operator!= const):
(TestWebKitAPI::TEST):

10:48 PM Changeset in webkit [243485] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r242369) Trying to change profile picture on linked in shows file picker, not the image picker
https://bugs.webkit.org/show_bug.cgi?id=196205
<rdar://problem/49083324>

Reviewed by Geoffrey Garen.

Update our FileUploadPanel code on iOS to properly deal with the MIME types containing
wild cards (e.g. "image/*") that are defined in the HTML specification:

Previously, we would fail to convert those to UTIs.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:
9:45 PM Changeset in webkit [243484] by timothy_horton@apple.com
  • 4 edits in trunk

Remove some now-unnecessary dynamic class lookup
https://bugs.webkit.org/show_bug.cgi?id=196237

Reviewed by Simon Fraser.

Source/WebKit:

  • Shared/DocumentEditingContext.mm:

(WebKit::DocumentEditingContext::toPlatformContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(makeRequest):
(TEST):

8:34 PM Changeset in webkit [243483] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Leak of SVGFontFaceElement when RenderStyle holds onto a FontRances which uses it
https://bugs.webkit.org/show_bug.cgi?id=196059

Reviewed by Zalan Bujtas.

SVGFontFaceElement keeps its RenderStyle alive via ElementRareData but RenderStyle can hold onto FontRanges
and therefore CSSFontSource, which in turn keeps SVGFontFaceElement alive, making a reference cycle.

More precisely, there are two reference cycles:
SVGFontFaceElement (1) -> ElementRareData -> StyleInheritedData -> FontCascade -> FontCascadeFonts (2)
FontCascadeFonts (2) -> FontRanges (3)
FontCascadeFonts (2) -> CSSFontSelector -> CSSFontFaceSet -> CSSSegmentedFontFace -> FontRanges (3)
FontRanges (3) -> CSSFontAccessor > CSSFontFace > CSSFontSource -> SVGFontFaceElement (1)

No new tests. Unfortunately, writing a test proved to be intractable. The leak can be reproduced by running
svg/text/text-text-05-t.svg then svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html consecutively.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::load):
(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::isSVGFontFaceSource const):

  • css/CSSFontFaceSource.h:
8:30 PM Changeset in webkit [243482] by Fujii Hironori
  • 20 edits
    3 deletes in trunk

Unreviewed, rolling out r243450.

AppleWin and WinCairo port builds get broken.

Reverted changeset:

"Add test for fix of #196095"
https://bugs.webkit.org/show_bug.cgi?id=196097
https://trac.webkit.org/changeset/243450

7:18 PM Changeset in webkit [243481] by Adrian Perez de Castro
  • 3 edits in trunk

[WPE][GTK] Make building WebVR (w/OpenVR) not depend on ENABLE_EXPERIMENTAL_FEATURES
https://bugs.webkit.org/show_bug.cgi?id=196223

Reviewed by Michael Catanzaro.

Disentangle USE_OPENVR from ENABLE_EXPERIMENTAL_FEATURES, making it
unneeded to include ThirdParty/openvr/ in release tarballs.

  • Source/cmake/OptionsGTK.cmake: Set USE_OPENVR to OFF by default,

instead of making it use the value of ENABLE_EXPERIMENTAL_FEATURES.

  • Source/cmake/OptionsWPE.cmake: Ditto.
6:44 PM Changeset in webkit [243480] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Get rid of ENABLE(ANIMATED_KEYBOARD_SCROLLING)
https://bugs.webkit.org/show_bug.cgi?id=196224

Reviewed by Simon Fraser.

  • Platform/spi/ios/AccessibilitySupportSPI.h:
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator invalidate]):
(perpendicularAbsoluteUnitVector):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
(-[WKKeyboardScrollingAnimator willStartInteractiveScroll]):
(-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]):
(-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]):
(-[WKKeyboardScrollingAnimator startRepeatTimerIfNeeded]): Deleted.
(-[WKKeyboardScrollingAnimator stopRepeatTimer]): Deleted.
(-[WKKeyboardScrollingAnimator performDiscreteScroll]): Deleted.

6:36 PM Changeset in webkit [243479] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Enable IPC sending and receiving non-default-constructible types
https://bugs.webkit.org/show_bug.cgi?id=196132
<rdar://problem/49229221>

Unreviewed build fix for WinCairo port.

error C2440: '=': cannot convert from 'int' to 'HANDLE'

  • Platform/win/SharedMemoryWin.cpp:

(WebKit::SharedMemory::Handle::Handle): std::exchange HANDLE with nullptr, not 0.
(WebKit::SharedMemory::Handle::operator=): Ditto.

6:26 PM Changeset in webkit [243478] by commit-queue@webkit.org
  • 59 edits
    3 copies
    1 add
    7 deletes in trunk

Remove the SVG tear off objects for SVGAngle, SVGAnimatedAngle and SVGAnimatedEnumeration
https://bugs.webkit.org/show_bug.cgi?id=196087

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-03-25
Reviewed by Simon Fraser.

Source/WebCore:

In this patch, the tear off objects for SVGAnimatedEnumeration will be
removed. Because the angle is paired with the orient type so its tear
off objects have to be removed as well. Here is what this patch does:

-- SVGAngle is now a superclass of SVGValueProperty<SVGAngleValue>. Its
relationship with its owner will be managed by the owner of its base
class SVGProperty.

-- SVGAnimatedAngle is now defined to be SVGAnimatedValueProperty<
SVGAngle>. All the DOM interfaces will be handled by the base class
given its baseVal and animVal are of type SVGAngle.

-- SVGAnimatedEnumeration is now defined to be
SVGAnimatedDecoratedProperty<SVGDecoratedEnumeration, unsigned>.
This can be read: SVGAnimatedEnumeration is an SVGAnimatedProperty which
decorates the "SVGDecoratedEnumeration" type to "unsigned". The reason
for this complication is the IDL of SVGAnimatedEnumeration defines the
baseVal and animVal are of type unsigned. However SVGAnimatedEnumeration
should be able to convert a string to its enum value and vice versa.

-- SVGAnimatedDecoratedProperty is a template class which maps from
DecoratedProperty to DecorationType. The DecoratedProperty is actually
a template class which exposes a property of type DecorationType.

-- SVGDecoratedProperty is an abstract class which manages setting and
getting a property in DecorationType regardless of how it is actually
stored.

-- SVGDecoratedPrimitive is a superclass of SVGDecoratedProperty which
stores a primitive property whose type is PropertyType but can decorate
it to the callers as DecorationType.

-- SVGDecoratedEnumeration is a superclass of SVGDecoratedPrimitive
which stores a primitive type DecorationType like "BlendMode" but
decorates it as "unsigned"

To get the mechanics of this change correct, new accessors, animators
and animation functions need to be added for SVGAnimatedAngle,
SVGAnimatedEnumeration and SVGAnimatedOrientType. But since angle and
the orient type are paired under a single attribute, a pair accessor and
animator are also needed for the pair { angle, orientType }.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • svg/SVGAngle.h:

(WebCore::SVGAngle::create):
(WebCore::SVGAngle::unitType):
(WebCore::SVGAngle::setValueForBindings):
(WebCore::SVGAngle::valueForBindings):
(WebCore::SVGAngle::setValueInSpecifiedUnits):
(WebCore::SVGAngle::valueInSpecifiedUnits):
(WebCore::SVGAngle::setValueAsString):
(WebCore::SVGAngle::newValueSpecifiedUnits):
(WebCore::SVGAngle::convertToSpecifiedUnits):
(WebCore::SVGAngle::valueAsString): Deleted.
(WebCore::SVGAngle::SVGAngle): Deleted.

  • svg/SVGAnimatedAngle.cpp: Removed.
  • svg/SVGAnimatedAngle.h: Removed.
  • svg/SVGAnimatedEnumeration.cpp: Removed.
  • svg/SVGAnimatedEnumeration.h: Removed.
  • svg/SVGAnimatedType.h:

(WebCore::SVGAnimatedType::type const):

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::create):

  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::SVGClipPathElement):
(WebCore::SVGClipPathElement::parseAttribute):
(WebCore::SVGClipPathElement::svgAttributeChanged):
(WebCore::SVGClipPathElement::registerAttributes): Deleted.

  • svg/SVGClipPathElement.h:
  • svg/SVGComponentTransferFunctionElement.cpp:

(WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
(WebCore::SVGComponentTransferFunctionElement::parseAttribute):
(WebCore::SVGComponentTransferFunctionElement::registerAttributes): Deleted.

  • svg/SVGComponentTransferFunctionElement.h:

(WebCore::SVGComponentTransferFunctionElement::type const):
(WebCore::SVGComponentTransferFunctionElement::typeAnimated):
(WebCore::SVGComponentTransferFunctionElement::attributeRegistry): Deleted.
(WebCore::SVGComponentTransferFunctionElement::isKnownAttribute): Deleted.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::SVGFEBlendElement):
(WebCore::SVGFEBlendElement::parseAttribute):
(WebCore::SVGFEBlendElement::registerAttributes): Deleted.

  • svg/SVGFEBlendElement.h:

(WebCore::SVGPropertyTraits<BlendMode>::fromString):

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
(WebCore::SVGFEColorMatrixElement::parseAttribute):
(WebCore::SVGFEColorMatrixElement::registerAttributes): Deleted.

  • svg/SVGFEColorMatrixElement.h:
  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::SVGFECompositeElement):
(WebCore::SVGFECompositeElement::parseAttribute):
(WebCore::SVGFECompositeElement::registerAttributes): Deleted.

  • svg/SVGFECompositeElement.h:
  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
(WebCore::SVGFEConvolveMatrixElement::parseAttribute):
(WebCore::SVGFEConvolveMatrixElement::registerAttributes): Deleted.

  • svg/SVGFEConvolveMatrixElement.h:
  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
(WebCore::SVGFEDisplacementMapElement::parseAttribute):
(WebCore::SVGFEDisplacementMapElement::registerAttributes): Deleted.

  • svg/SVGFEDisplacementMapElement.h:
  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
(WebCore::SVGFEGaussianBlurElement::parseAttribute):
(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
(WebCore::SVGFEGaussianBlurElement::registerAttributes): Deleted.

  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement):
(WebCore::SVGFEMorphologyElement::parseAttribute):
(WebCore::SVGFEMorphologyElement::registerAttributes): Deleted.

  • svg/SVGFEMorphologyElement.h:
  • svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
(WebCore::SVGFETurbulenceElement::parseAttribute):
(WebCore::SVGFETurbulenceElement::svgAttributeChanged):
(WebCore::SVGFETurbulenceElement::registerAttributes): Deleted.

  • svg/SVGFETurbulenceElement.h:
  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::SVGFilterElement):
(WebCore::SVGFilterElement::registerAttributes):
(WebCore::SVGFilterElement::parseAttribute):

  • svg/SVGFilterElement.h:
  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::SVGGradientElement):
(WebCore::SVGGradientElement::registerAttributes):
(WebCore::SVGGradientElement::parseAttribute):

  • svg/SVGGradientElement.h:

(WebCore::SVGGradientElement::spreadMethod const):
(WebCore::SVGGradientElement::gradientUnits const):
(WebCore::SVGGradientElement::spreadMethodAnimated):
(WebCore::SVGGradientElement::gradientUnitsAnimated):

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::registerAttributes):
(WebCore::SVGMarkerElement::parseAttribute):
(WebCore::SVGMarkerElement::setOrient):
(WebCore::SVGMarkerElement::setOrientToAngle):
(WebCore::SVGMarkerElement::orientTypeIdentifier): Deleted.
(WebCore::SVGMarkerElement::orientAngleIdentifier): Deleted.

  • svg/SVGMarkerElement.h:
  • svg/SVGMarkerTypes.h:

(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::autoString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::autoStartReverseString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::fromString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::toString):

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::SVGMaskElement):
(WebCore::SVGMaskElement::registerAttributes):
(WebCore::SVGMaskElement::parseAttribute):

  • svg/SVGMaskElement.h:
  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::registerAttributes):
(WebCore::SVGPatternElement::parseAttribute):

  • svg/SVGPatternElement.h:
  • svg/SVGSVGElement.cpp:
  • svg/SVGScriptElement.cpp:
  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::SVGTextContentElement):
(WebCore::SVGTextContentElement::registerAttributes):
(WebCore::SVGTextContentElement::parseAttribute):

  • svg/SVGTextContentElement.h:

(WebCore::SVGTextContentElement::lengthAdjust const):
(WebCore::SVGTextContentElement::lengthAdjustAnimated):

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::SVGTextPathElement):
(WebCore::SVGTextPathElement::registerAttributes):
(WebCore::SVGTextPathElement::parseAttribute):

  • svg/SVGTextPathElement.h:
  • svg/SVGValue.h:
  • svg/properties/SVGAnimatedDecoratedProperty.h: Added.

(WebCore::SVGAnimatedDecoratedProperty::create):
(WebCore::SVGAnimatedDecoratedProperty::SVGAnimatedDecoratedProperty):
(WebCore::SVGAnimatedDecoratedProperty::setBaseVal):
(WebCore::SVGAnimatedDecoratedProperty::setBaseValInternal):
(WebCore::SVGAnimatedDecoratedProperty::baseVal const):
(WebCore::SVGAnimatedDecoratedProperty::setAnimVal):
(WebCore::SVGAnimatedDecoratedProperty::animVal const):
(WebCore::SVGAnimatedDecoratedProperty::currentValue const):

  • svg/properties/SVGAnimatedEnumerationPropertyTearOff.h: Removed.
  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyImpl.h:

(WebCore::SVGAnimatedOrientType::create):

  • svg/properties/SVGAnimatedPropertyPairAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyPairAnimator.h:

(WebCore::SVGAnimatedPropertyPairAnimator::appendAnimatedInstance):

  • svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
  • svg/properties/SVGAnimatedStaticPropertyTearOff.h: Removed.
  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationAngleFunction::progress):

  • svg/properties/SVGAnimationDiscreteFunctionImpl.h:
  • svg/properties/SVGAttributeRegistry.h:
  • svg/properties/SVGDecoratedEnumeration.h: Added.

(WebCore::SVGDecoratedEnumeration::create):

  • svg/properties/SVGDecoratedPrimitive.h: Added.

(WebCore::SVGDecoratedPrimitive::SVGDecoratedPrimitive):

  • svg/properties/SVGDecoratedProperty.h: Added.

(WebCore::SVGDecoratedProperty::setValue):
(WebCore::SVGDecoratedProperty::value const):

  • svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGPropertyOwnerRegistry::registerProperty):
(WebCore::SVGPropertyOwnerRegistry::isAnimatedLengthAttribute):

  • svg/properties/SVGPropertyRegistry.h:
  • svg/properties/SVGStaticPropertyTearOff.h: Removed.

LayoutTests:

  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html:

Fixes cases that the tear off objects could not handle correctly for the
paired { angle, orientType }. Also when setting the orient type to "auto"
or "auto-start-reverse", the orient angle should be reset to
SVG_ANGLETYPE_UNSPECIFIED and is not suppsed to keep its original value.

6:21 PM Changeset in webkit [243477] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

fast/visual-viewport/ios/min-scale-greater-than-one.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196236

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Changing expectations due to test being flaky
6:19 PM Changeset in webkit [243476] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[iOS] Break a reference cycle between PreviewLoader and ResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=194964

Unreviewed build fix for WinCairo port.

error C2504: 'CanMakeWeakPtr': base class undefined

  • loader/ResourceLoader.h: Added #include <wtf/WeakPtr.h>.
5:43 PM Changeset in webkit [243475] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[Coordinated Graphics][WinCairo] ASSERTION FAILED: state.id == m_nicosia.state.id
https://bugs.webkit.org/show_bug.cgi?id=196190

Reviewed by Žan Doberšek.

This assertion assumes the pre-committed and the committed scenes
are identical. But, the pre-committed scene is updated in the main
thread. Removed the false assertion.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::purgeGLResources): Remove the
assertion. Removed layers of committed scene, not pre-committed
scene.

5:24 PM Changeset in webkit [243474] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

fast/viewport/ios/initial-scale-after-changing-view-scale.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=196233

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Changing expectations due to test being flaky
4:58 PM Changeset in webkit [243473] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

http/tests/cache-storage/cache-clearing-origin.https.html
http/tests/cache-storage/cache-records-persistency.https.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=196228

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations: Changing expectations due to flaky tests
4:50 PM Changeset in webkit [243472] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Add socket-delegate to another entitlements config
rdar://problem/48090350 and https://bugs.webkit.org/show_bug.cgi?id=196227

Reviewed by Geoffrey Garen.

  • Configurations/Network-iOSMac.entitlements:
4:30 PM Changeset in webkit [243471] by aestes@apple.com
  • 7 edits in trunk/Source

[iOS] Break a reference cycle between PreviewLoader and ResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=194964
<rdar://problem/48279441>

Reviewed by Alex Christensen.

Source/WebCore:

When a document's QuickLook preview is loaded, a reference cycle is created between
WebPreviewLoader and ResourceLoader. Break the cycle by changing WebPreviewLoader to hold a
WeakPtr to its ResourceLoader ResourceLoader::releaseResources().

Fixes leaks detected by run-webkit-tests --leaks LayoutTests/quicklook. Also covered by
existing API tests.

  • loader/ResourceLoader.h:
  • loader/ios/PreviewLoader.mm:

(-[WebPreviewLoader initWithResourceLoader:resourceResponse:]):
(-[WebPreviewLoader _sendDidReceiveResponseIfNecessary]):
(-[WebPreviewLoader connection:didReceiveData:lengthReceived:]):
(-[WebPreviewLoader connectionDidFinishLoading:]):
(-[WebPreviewLoader connection:didFailWithError:]):

Source/WebKitLegacy/mac:

The WebDataSource._quickLookContent SPI accidentally relied on PreviewLoaders being leaked
to keep the temporary file referenced by WebQuickLookFileNameKey in existence. Since
PreviewLoaders are now being deleted properly, we teach WebDataSource to keep the
PreviewLoaderClient alive for its lifetime. This ensures that as long as
WebDataSource._quickLookContent can be called, the associated temp file will not be deleted
by WebKit.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createPreviewLoaderClient):

  • WebView/WebDataSource.mm:

(-[WebDataSource _quickLookPreviewLoaderClient]):
(-[WebDataSource _setQuickLookPreviewLoaderClient:]):

  • WebView/WebDataSourceInternal.h:
4:18 PM Changeset in webkit [243470] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk

Unreviewed, rolling out r243465.
https://bugs.webkit.org/show_bug.cgi?id=196226

the test doesn't build (Requested by thorton on #webkit).

Reverted changeset:

"Do not terminate the NetworkProcess if a third party
application sends a NSCredential with a SecIdentityRef"
https://bugs.webkit.org/show_bug.cgi?id=196213
https://trac.webkit.org/changeset/243465

4:11 PM Changeset in webkit [243469] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

REGRESSION (r242687): Flicker when pinch-zooming pages in macOS Safari
https://bugs.webkit.org/show_bug.cgi?id=196126
rdar://problem/49095791

Reviewed by Tim Horton.

I fumbled the commit after the enum rename. Make this actually work.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):

4:11 PM Changeset in webkit [243468] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Zoom on macOS is centered around a point lower than the cursor
https://bugs.webkit.org/show_bug.cgi?id=196225
rdar://problem/49213574

Reviewed by Tim Horton.

The origin handed to ViewGestureController::handleMagnificationGestureEvent is in WKWebView
coordinates, but we end up setting the transform on the RenderView's layer, so we need
to subtract the topContentInset.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::handleMagnificationGestureEvent):

3:40 PM Changeset in webkit [243467] by ysuzuki@apple.com
  • 60 edits in trunk/Source/JavaScriptCore

Heap::isMarked and friends should be instance methods
https://bugs.webkit.org/show_bug.cgi?id=179988

Reviewed by Saam Barati.

Almost all the callers of Heap::isMarked have VM& reference. We should make Heap::isMarked instance function instead of static function
so that we do not need to look up Heap from the cell.

  • API/JSAPIWrapperObject.mm:

(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):

  • API/JSMarkingConstraintPrivate.cpp:

(JSC::isMarked):

  • API/glib/JSAPIWrapperObjectGLib.cpp:

(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::finalizeUnconditionally):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::visitWeak const):
(JSC::AccessCase::propagateTransitions const):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::visitWeak):

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::finalize):

  • bytecode/CallLinkStatus.h:
  • bytecode/CallVariant.cpp:

(JSC::CallVariant::finalize):

  • bytecode/CallVariant.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::shouldJettisonDueToWeakReference):
(JSC::CodeBlock::shouldJettisonDueToOldAge):
(JSC::shouldMarkTransition):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::jettison):

  • bytecode/CodeBlock.h:
  • bytecode/ExecutableToCodeBlockEdge.cpp:

(JSC::ExecutableToCodeBlockEdge::visitChildren):
(JSC::ExecutableToCodeBlockEdge::finalizeUnconditionally):
(JSC::ExecutableToCodeBlockEdge::runConstraint):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::finalize):

  • bytecode/GetByIdStatus.h:
  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::finalize):

  • bytecode/GetByIdVariant.h:
  • bytecode/InByIdStatus.cpp:

(JSC::InByIdStatus::finalize):

  • bytecode/InByIdStatus.h:
  • bytecode/InByIdVariant.cpp:

(JSC::InByIdVariant::finalize):

  • bytecode/InByIdVariant.h:
  • bytecode/ObjectPropertyCondition.cpp:

(JSC::ObjectPropertyCondition::isStillLive const):

  • bytecode/ObjectPropertyCondition.h:
  • bytecode/ObjectPropertyConditionSet.cpp:

(JSC::ObjectPropertyConditionSet::areStillLive const):

  • bytecode/ObjectPropertyConditionSet.h:
  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::visitWeak const):

  • bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isStillLive const):

  • bytecode/PropertyCondition.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::finalize):

  • bytecode/PutByIdStatus.h:
  • bytecode/PutByIdVariant.cpp:

(JSC::PutByIdVariant::finalize):

  • bytecode/PutByIdVariant.h:
  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::finalizeWithoutDeleting):
(JSC::RecordedStatuses::finalize):

  • bytecode/RecordedStatuses.h:
  • bytecode/StructureSet.cpp:

(JSC::StructureSet::isStillAlive const):

  • bytecode/StructureSet.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::visitWeakReferences):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalizeInGC):
(JSC::DFG::Plan::isKnownToBeLiveDuringGC):

  • heap/GCIncomingRefCounted.h:
  • heap/GCIncomingRefCountedInlines.h:

(JSC::GCIncomingRefCounted<T>::filterIncomingReferences):

  • heap/GCIncomingRefCountedSet.h:
  • heap/GCIncomingRefCountedSetInlines.h:

(JSC::GCIncomingRefCountedSet<T>::lastChanceToFinalize):
(JSC::GCIncomingRefCountedSet<T>::sweep):
(JSC::GCIncomingRefCountedSet<T>::removeAll): Deleted.
(JSC::GCIncomingRefCountedSet<T>::removeDead): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::addToRememberedSet):
(JSC::Heap::runEndPhase):
(JSC::Heap::sweepArrayBuffers):
(JSC::Heap::addCoreConstraints):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::isMarked):

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::appendNode):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendToMarkStack):
(JSC::SlotVisitor::visitChildren):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::visitWeak):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finalizeUnconditionally):

  • runtime/InferredValueInlines.h:

(JSC::InferredValue::finalizeUnconditionally):

  • runtime/StackFrame.h:

(JSC::StackFrame::isMarked const):

  • runtime/Structure.cpp:

(JSC::Structure::isCheapDuringGC):
(JSC::Structure::markIfCheap):

  • runtime/Structure.h:
  • runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::invalidateTypeSetCache):

  • runtime/TypeProfiler.h:
  • runtime/TypeSet.cpp:

(JSC::TypeSet::invalidateCache):

  • runtime/TypeSet.h:
  • runtime/WeakMapImpl.cpp:

(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints):

  • runtime/WeakMapImplInlines.h:

(JSC::WeakMapImpl<WeakMapBucket>::finalizeUnconditionally):

3:15 PM Changeset in webkit [243466] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

performance-api/performance-observer-periodic.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196218

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Changing expectations due to flaky test
3:10 PM Changeset in webkit [243465] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

Do not terminate the NetworkProcess if a third party application sends a NSCredential with a SecIdentityRef
https://bugs.webkit.org/show_bug.cgi?id=196213

Patch by Alex Christensen <achristensen@webkit.org> on 2019-03-25
Reviewed by Geoff Garen.

Source/WebKit:

A release assertion added in r230225 was reachable. I reached it in a unit test that responds to a challenge
with a SecIdentityRef wrapped in an NSCredential.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: Added.

(credentialWithIdentityAndKeychainPath):
(-[ChallengeDelegate webView:didFinishNavigation:]):
(-[ChallengeDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(TestWebKitAPI::TEST):

3:04 PM Changeset in webkit [243464] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Gracefully handle missing patch_id in events
https://bugs.webkit.org/show_bug.cgi?id=196216

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/events.py:
3:03 PM Changeset in webkit [243463] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] use lz4 compression for improving buildbot performance
https://bugs.webkit.org/show_bug.cgi?id=196155

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/master.cfg:
2:39 PM Changeset in webkit [243462] by Wenson Hsieh
  • 3 edits in trunk/Tools

Pull some API testing helper methods out of TestWKWebView
https://bugs.webkit.org/show_bug.cgi?id=196212

Reviewed by Tim Horton.

Refactor some more API testing utility methods, so that they can be used in
tests that do not use TestWKWebView.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView loadTestPageNamed:]):
(-[WKWebView synchronouslyLoadHTMLString:baseURL:]):
(-[WKWebView synchronouslyLoadHTMLString:]):
(-[WKWebView synchronouslyLoadTestPageNamed:]):
(-[TestWKWebView loadTestPageNamed:]): Deleted.
(-[TestWKWebView synchronouslyLoadHTMLString:baseURL:]): Deleted.
(-[TestWKWebView synchronouslyLoadHTMLString:]): Deleted.
(-[TestWKWebView synchronouslyLoadTestPageNamed:]): Deleted.

2:28 PM Changeset in webkit [243461] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Get rid of WebPage::m_shouldResetDrawingAreaAfterSuspend flag
https://bugs.webkit.org/show_bug.cgi?id=196210
<rdar://problem/48681326>

Reviewed by Geoffrey Garen.

Get rid of WebPage::m_shouldResetDrawingAreaAfterSuspend flag and use the drawing area identifier
instead to reset the DrawingArea in the WebProcess whenever the UIProcess did.

This is less error-prone and guarantees that the WebProcess and the UIProcess can reliably
communicate via DrawingArea IPC.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setIsSuspended):

  • WebProcess/WebPage/WebPage.h:
2:23 PM Changeset in webkit [243460] by achristensen@apple.com
  • 33 edits in trunk/Source

Enable IPC sending and receiving non-default-constructible types
https://bugs.webkit.org/show_bug.cgi?id=196132

Reviewed by Geoff Garen.

Source/WebCore:

This basically just requires the decoding of std::tuple to return an Optional<std::tuple> instead of
constructing a std::tuple then decoding into it. I now decode synchronous replies into an Optional<std::tuple>
then move it into the tuple of references where the successfully decoded reply should go. This required
the synchronous reply types be move constructible and move assignable.

  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:
  • platform/DragImage.h:
  • platform/PasteboardWriterData.h:
  • platform/audio/mac/CAAudioStreamDescription.h:
  • platform/graphics/RemoteVideoSample.h:

Source/WebKit:

  • Platform/IPC/ArgumentCoder.h:
  • Platform/IPC/ArgumentCoders.h:

(IPC::TupleEncoder::encode):
(IPC::tupleFromTupleAndObject):
(IPC::TupleDecoderImpl::decode):
(IPC::TupleDecoderImpl<Type>::decode):
(IPC::TupleDecoder::decode):
(IPC::TupleDecoder<0>::decode):
(IPC::TupleCoder::encode): Deleted.
(IPC::TupleCoder::decode): Deleted.

  • Platform/IPC/Connection.h:

(IPC::Connection::sendWithReply):
(IPC::TupleMover::move):
(IPC::moveTuple):
(IPC::Connection::sendSync):

  • Platform/IPC/Decoder.h:

(IPC::Decoder::decode):
(IPC::Decoder::operator>>):

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessage):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):

  • Platform/SharedMemory.h:
  • Scripts/webkit/LegacyMessages-expected.h:
  • Scripts/webkit/Messages-expected.h:
  • Scripts/webkit/MessagesSuperclass-expected.h:
  • Scripts/webkit/messages.py:
  • Shared/Databases/IndexedDB/WebIDBResult.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
  • Shared/ShareableBitmap.h:
  • Shared/ShareableResource.h:
  • Shared/UpdateInfo.h:
  • Shared/WebEvent.h:
  • Shared/WebProcessCreationParameters.cpp:
  • Shared/WebProcessCreationParameters.h:
  • Shared/mac/SecItemResponseData.cpp:

(WebKit::SecItemResponseData::SecItemResponseData):
(WebKit::SecItemResponseData::decode):

  • Shared/mac/SecItemResponseData.h:
  • WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
2:21 PM Changeset in webkit [243459] by achristensen@apple.com
  • 20 edits in trunk/Source/WebCore

Stop storing raw pointers to Documents
https://bugs.webkit.org/show_bug.cgi?id=196042

Reviewed by Geoff Garen.

Use WeakPtr instead! This could change some UAF bugs into null dereference crashes.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontRangesForFamily):

  • css/CSSFontSelector.h:
  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::MediaQueryMatcher):
(WebCore::MediaQueryMatcher::matchMedia):

  • css/MediaQueryMatcher.h:
  • css/StyleSheetList.cpp:

(WebCore::StyleSheetList::StyleSheetList):
(WebCore::StyleSheetList::ownerNode const):

  • css/StyleSheetList.h:
  • css/ViewportStyleResolver.cpp:

(WebCore::ViewportStyleResolver::ViewportStyleResolver):

  • css/ViewportStyleResolver.h:
  • dom/Document.h:

(WebCore::Document::setTemplateDocumentHost):
(WebCore::Document::templateDocumentHost):

  • dom/DocumentParser.cpp:

(WebCore::DocumentParser::DocumentParser):

  • dom/DocumentParser.h:

(WebCore::DocumentParser::document const):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):

  • dom/ScriptedAnimationController.h:
  • html/parser/HTMLScriptRunner.cpp:

(WebCore::HTMLScriptRunner::HTMLScriptRunner):
(WebCore::HTMLScriptRunner::runScript):

  • html/parser/HTMLScriptRunner.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::MediaResourceLoader):

  • loader/MediaResourceLoader.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequestInContentDispositionAttachmentSandbox const):
(WebCore::CachedResourceLoader::loadDone):

  • loader/cache/CachedResourceLoader.h:

(WebCore::CachedResourceLoader::document const):
(WebCore::CachedResourceLoader::setDocument):

2:14 PM Changeset in webkit [243458] by sbarati@apple.com
  • 1 edit
    3 copies in trunk/Websites/browserbench.org

Update browserbench.org/JetStream2.0 to the latest version.

Rubber-stamped by Filip Pizlo.

  • JetStream2.0: Replaced with ../../PerformanceTests/JetStream2.
2:12 PM Changeset in webkit [243457] by Truitt Savell
  • 38 edits
    17 deletes in trunk

Unreviewed, rolling out r243419.

Caused Mac WK2 testers to crash and become unresponsive.

Reverted changeset:

"[Web GPU] Prototype compute pipeline with MSL"
https://bugs.webkit.org/show_bug.cgi?id=196107
https://trac.webkit.org/changeset/243419

2:10 PM Changeset in webkit [243456] by Truitt Savell
  • 28 edits
    1 copy in trunk

Unreviewed, rolling out r243438.

243319 Caused Mac WK2 testers to crash and become
unresponsive.

Reverted changeset:

"Update WebGPU class names based on sketch.idl"
https://bugs.webkit.org/show_bug.cgi?id=194260
https://trac.webkit.org/changeset/243438

2:03 PM Changeset in webkit [243455] by sbarati@apple.com
  • 3 edits in trunk/PerformanceTests

Update the blurb describing JetStream2 and fix a broken link in the in-depth page.

Rubber-stamped by Filip Pizlo.

  • JetStream2/in-depth.html:
  • JetStream2/index.html:
1:55 PM Changeset in webkit [243454] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Animated keyboard scrolling is extremely chaotic
https://bugs.webkit.org/show_bug.cgi?id=196164
<rdar://problem/48702444>

Reviewed by Simon Fraser.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]):
Consume keyboard events instead of interpreting them traditionally
if WKKeyboardScrollingAnimator is animating.

  • UIProcess/ios/WKKeyboardScrollingAnimator.h:
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
(-[WKKeyboardScrollingAnimator scrollTriggeringKeyIsPressed]):
(-[WKKeyboardScrollingAnimator displayLinkFired:]):
(-[WKKeyboardScrollViewAnimator scrollTriggeringKeyIsPressed]):
Expose the current state of interactive scrolling, and rename the related member.

1:46 PM Changeset in webkit [243453] by Keith Rollin
  • 3 edits in trunk/Source/WebKit

Add WebKit logging for first paint and other interesting layout milestones
https://bugs.webkit.org/show_bug.cgi?id=196159
<rdar://problem/49128952>

Reviewed by Simon Fraser.

Add some logging to indicate what layout milestones have been reached.
This should help us determine if there's a client, rendering, layout,
or some other issue when page content does not appear in the client
window.

The logging is being added to
WebFrameLoaderClient::dispatchDidReachLayoutMilestone. This seems like
a nice central place to capture layout milestones. However, it will
only log notifications that are being sent to clients. It does not
indicate all milestones that have occurred. That is, it does not
report milestones that are filtered out due to client disinterest.
There doesn't seem to be a good central place to capture all
milestones, regardless of client interest.

  • Platform/Logging.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):

1:45 PM Changeset in webkit [243452] by Joseph Pecoraro
  • 6 edits
    1 add in trunk

Web Inspector: Page Weight indicator clears on pages with zero length resources (macrumors.com)
https://bugs.webkit.org/show_bug.cgi?id=196170

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Models/DefaultDashboard.js:

(WI.DefaultDashboard.prototype._resourceSizeDidChange):
Catch NaN earlier.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.updateWithMetrics):
When we receive exact metrics transition the estimated size to zero,
since we won't receive any more updates for the resource.

LayoutTests:

  • http/tests/inspector/network/resource-sizes-network.html:
  • http/tests/inspector/network/resources/empty.txt: Added.
  • platform/mac/http/tests/inspector/network/resource-sizes-network-expected.txt:
1:43 PM Changeset in webkit [243451] by eric.carlson@apple.com
  • 5 edits
    2 deletes in trunk

Delete MetadataPreloadingNotPermitted, it is unused
https://bugs.webkit.org/show_bug.cgi?id=196202
<rdar://problem/49213611>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, the flat was unused except in an existing test that was removed.

  • html/MediaElementSession.cpp:

(WebCore::restrictionNames):
(WebCore::MediaElementSession::effectivePreloadForElement const):

  • html/MediaElementSession.h:
  • platform/graphics/cg/UTIRegistry.cpp:

(WebCore::defaultSupportedImageTypes):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaElementRestrictions):

LayoutTests:

  • media/video-restricted-no-preload-metadata-expected.txt: Removed.
  • media/video-restricted-no-preload-metadata.html: Removed.
1:39 PM Changeset in webkit [243450] by jer.noble@apple.com
  • 20 edits
    3 adds in trunk

Source/WebCore:
Test for: 196095 Inband Text Track cues interspersed with Data cues can display out of order.
https://bugs.webkit.org/show_bug.cgi?id=196097

Reviewed by Eric Carlson.

Test: media/track/track-in-band-metadata-display-order.html

Add a method in Internals to create a TextTrackCueGeneric (which can normally only be created
by parsing an in-band media track). This requires adding IDL for TextTrackCueGeneric, and exporting
TextTrackCueGeneric for testing.

Drive-by fixes:

Add runtime logging to MediaControlTextTrackContainerElement. This necessitates modifying the
parentMediaElement() method to take a const Node*, and const_cast that constness away in order to return
a HTMLMediaElement*

TextTrackCue, VTTCue, TextTrackCueGeneric, and DataCue should all use the WTF TypeCasts macros to
enable use of is<> and downcast<>.

  • Source/WebCore/CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • html/shadow/MediaControlElementTypes.cpp:

(WebCore::parentMediaElement):

  • html/shadow/MediaControlElementTypes.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::logger const):
(WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
(WebCore::MediaControlTextTrackContainerElement::logChannel const):

  • html/shadow/MediaControlElements.h:
  • html/track/DataCue.h:

(isType):

  • html/track/TextTrackCueGeneric.h:

(isType):

  • html/track/TextTrackCueGeneric.idl: Added.
  • html/track/VTTCue.h:

(isType):

  • testing/Internals.cpp:

(WebCore::Internals::createGenericCue):

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:
Test for: 196095 Inband Text Track cues interspersed with Data cues can display out of order.
https://bugs.webkit.org/show_bug.cgi?id=196097

Reviewed by Eric Carlson.

Drive-by bug fix: allow tests to play audio without a user gesture by default.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:
Add test for fix of #196095
https://bugs.webkit.org/show_bug.cgi?id=196097

Reviewed by Eric Carlson.

  • media/track/track-in-band-metadata-display-order-expected.txt: Added.
  • media/track/track-in-band-metadata-display-order.html: Added.
1:38 PM Changeset in webkit [243449] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[GTK][WPE] Remove network access from web process sandbox
https://bugs.webkit.org/show_bug.cgi?id=189967

Patch by Patrick Griffis <Patrick Griffis> on 2019-03-25
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::createFlatpakInfo):
(WebKit::bubblewrapSpawn):

  • UIProcess/Launcher/glib/FlatpakLauncher.cpp:

(WebKit::flatpakSpawn):

1:29 PM Changeset in webkit [243448] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

ASSERTION FAILED: m_op == CompareStrictEq in JSC::DFG::Node::convertToCompareEqPtr(JSC::DFG::FrozenValue *, JSC::DFG::Edge)
https://bugs.webkit.org/show_bug.cgi?id=196176

Reviewed by Saam Barati.

JSTests:

  • stress/object-is-fold-to-compare-eq-ptr.js: Added.

(main.v10):
(main):

Source/JavaScriptCore:

convertToCompareEqPtr should allow for either CompareStrictEq or
the SameValue DFG node. This fixes the old assertion that only
allowed CompareStrictEq.

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToCompareEqPtr):

1:23 PM Changeset in webkit [243447] by aestes@apple.com
  • 5 edits in trunk/Source/WebKit

[Apple Pay] Call +canMakePayments on a work queue
https://bugs.webkit.org/show_bug.cgi?id=196179
<rdar://problem/45388749>

Reviewed by Brady Eidson.

Calling +canMakePayments on either PKPaymentAuthorizationController or
PKPaymentAuthorizationViewController results in synchronous IPC and is therefore very
expensive to call on the main thread. On iOS, these calls are made in the network process,
and on Mac in the UI process.

Call these methods on a work queue to avoid main thread spins.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::canMakePayments):

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):

12:11 PM Changeset in webkit [243446] by Tadeu Zagallo
  • 6 edits in trunk

WebAssembly: f32.max with NaN generates incorrect result
https://bugs.webkit.org/show_bug.cgi?id=175691
<rdar://problem/33952228>

Reviewed by Saam Barati.

JSTests:

Enable all f32.max NaN tests

  • wasm/spec-tests/f32.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

Fix the B3 and Air compilation for f32.max. In order to handle the NaN
case, we need an extra GreaterThan comparison on top of the existing
Equal and LessThan ones.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Max>):

  • wasm/wasm.json:
12:09 PM Changeset in webkit [243445] by Wenson Hsieh
  • 3 edits
    1 add in trunk/Tools

Pull IPadUserInterfaceSwizzler out into a separate header file
https://bugs.webkit.org/show_bug.cgi?id=196193

Reviewed by Anders Carlsson.

Pull the IPadUserInterfaceSwizzler helper class out into a separate file, so that it may
be used in other API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:

(TestWebKitAPI::IPadUserInterfaceSwizzler::IPadUserInterfaceSwizzler): Deleted.
(TestWebKitAPI::IPadUserInterfaceSwizzler::padUserInterfaceIdiom): Deleted.

  • TestWebKitAPI/ios/IPadUserInterfaceSwizzler.h: Added.

(TestWebKitAPI::IPadUserInterfaceSwizzler::IPadUserInterfaceSwizzler):
(TestWebKitAPI::IPadUserInterfaceSwizzler::padUserInterfaceIdiom):

11:27 AM Changeset in webkit [243444] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Toggling "display: contents" to "display: none" fails to hide the element
https://bugs.webkit.org/show_bug.cgi?id=188259
<rdar://problem/42886896>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/css/display-contents-to-none.html

  • style/StyleTreeResolver.cpp:

(WebCore::Style::affectsRenderedSubtree):

An element with 'display:contents' has a rendered subtree.

LayoutTests:

  • fast/css/display-contents-to-none-expected.html: Added.
  • fast/css/display-contents-to-none.html: Added.
11:26 AM Changeset in webkit [243443] by aestes@apple.com
  • 10 edits
    2 adds in trunk/Source/WebKit

[Apple Pay] Remove the AvailablePaymentNetworks synchronous message
https://bugs.webkit.org/show_bug.cgi?id=196180

Reviewed by Youenn Fablet.

Unlike many PassKit interactions, it's ok to call +[PKPaymentRequest availableNetworks]
without an entitlement. Therefore, we can call it from the web process directly rather than
synchronously messaging the entitled UI or networking process.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::availablePaymentNetworks):

  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/cocoa/WebPaymentCoordinatorCocoa.mm: Added.

(WebKit::WebPaymentCoordinator::platformAvailablePaymentNetworks const):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]):
(-[WKAccessibilityWebPageObjectBase setWebPage:]):

11:13 AM Changeset in webkit [243442] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, speculative fix for CLoop build on CPU(UNKNOWN)
https://bugs.webkit.org/show_bug.cgi?id=195982

  • jit/ExecutableAllocator.h:

(JSC::ExecutableAllocator::initializeUnderlyingAllocator):

11:05 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
10:57 AM Changeset in webkit [243441] by commit-queue@webkit.org
  • 2 edits in trunk

[WTF] Fix typo when forcing WTF_CPU_X86
https://bugs.webkit.org/show_bug.cgi?id=196204

Patch by Xan López <Xan Lopez> on 2019-03-25
Reviewed by Michael Catanzaro.

Fix a typo when setting the WTF_CPU variable for X86.

  • CMakeLists.txt:
9:11 AM Changeset in webkit [243440] by Diego Pino Garcia
  • 1 edit
    3 adds in trunk/LayoutTests

[GTK] Gardening, update expected results for several smart-delete-paragraph tests

Unreviewed test gardening.

  • platform/gtk/editing/deleting/smart-delete-paragraph-001-expected.txt: Added.
  • platform/gtk/editing/deleting/smart-delete-paragraph-002-expected.txt: Added.
  • platform/gtk/editing/deleting/smart-delete-paragraph-004-expected.txt: Added.
8:37 AM Changeset in webkit [243439] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, tiny fix after r243388 to address API test failures on iOS

m_processType was properly initialized on macOS but not iOS.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

8:29 AM Changeset in webkit [243438] by Justin Fan
  • 28 edits
    1 delete in trunk

Update WebGPU class names based on sketch.idl
https://bugs.webkit.org/show_bug.cgi?id=194260

Reviewed by Dean Jackson.
Source/WebCore:

Update all exposed Web GPU interface names to GPU* prefix.

Existing Web GPU tests updated to expect new names.

  • Modules/webgpu/WebGPU.idl:
  • Modules/webgpu/WebGPUAdapter.idl:
  • Modules/webgpu/WebGPUBindGroup.idl:
  • Modules/webgpu/WebGPUBindGroupLayout.idl:
  • Modules/webgpu/WebGPUBuffer.idl:
  • Modules/webgpu/WebGPUDevice.idl:
  • Modules/webgpu/WebGPUInputStepMode.h: Removed.
  • Modules/webgpu/WebGPUPipelineLayout.idl:
  • Modules/webgpu/WebGPUProgrammablePassEncoder.idl:
  • Modules/webgpu/WebGPUQueue.idl:
  • Modules/webgpu/WebGPURenderPassEncoder.idl:
  • Modules/webgpu/WebGPURenderPipeline.idl:
  • Modules/webgpu/WebGPUSampler.idl:
  • Modules/webgpu/WebGPUTexture.idl:
  • Modules/webgpu/WebGPUTextureView.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Update all exposed Web GPU interface names to GPU* prefix.

  • webgpu/adapter-options.html:
  • webgpu/bind-groups.html:
  • webgpu/map-read-buffers.html:
  • webgpu/map-write-buffers.html:
  • webgpu/pipeline-layouts.html:
  • webgpu/queue-creation.html:
  • webgpu/render-command-encoding.html:
  • webgpu/render-pipelines.html:
  • webgpu/textures-textureviews.html:
  • webgpu/webgpu-enabled.html:
8:07 AM Changeset in webkit [243437] by jfernandez@igalia.com
  • 8 edits
    24 adds in trunk

A single leading space is not considered as a word break even when word-break: break-all is set
https://bugs.webkit.org/show_bug.cgi?id=195361

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Imported additonal WPT from the CSS Text Suite that verify the
change doesn't regress in any case, specially for the word-break:
break-word feature.

  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/w3c-import.log:
  • web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-wrap-008.html: Added.
  • web-platform-tests/css/css-text/white-space/w3c-import.log:
  • web-platform-tests/css/css-text/word-break/w3c-import.log:
  • web-platform-tests/css/css-text/word-break/word-break-break-all-015-expected.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-015.html: Added.

Source/WebCore:

We must consider leading white-spaces as potential soft-breaking
opportunities that may avoid breaking in the middle of the word.

However, 'break-word: break-all' [1] implies that we should ignore
previous opportunities and break at any character (among the ones
valid for 'break-all') that prevents the line to overflow. Note,
that these breakable characters are different from the ones
provided by 'line-break: anywhere' [2].

This change is covered by the already existent tests of the CSS
Text 3 suite of the Web Platform Tests.

The word-break-break-all-010.html was precisely designed to cover
the basic issue fixed with this change, verifying that the word is
indeed broken even if a single leading space constitutes a
previous soft-breaking opportunity.

There are other Web Platform Tests. which already pass before this
change, to verify that such leading white-space must be used
instead of breaking the word in any other case, including
overflow-wrap: break-word and even the deprecated word-break:
break-word.

  • white-space/pre-wrap-008.html
  • white-space/pre-wrap-015.html
  • white-space/pre-wrap-016.html
  • overflow-wrap/overflow-wrap-break-word-004.html
  • overflow-wrap/overflow-wrap-break-word-005.html
  • overflow-wrap/overflow-wrap-break-word-007.html
  • word-break/word-break-break-all-011.html
  • word-break/word-break-break-all-014.html

The reason why the word-break-break-all-010.html passes in Mac
platform is that for that case the SimpleLineLayout codepath is
executed instead, which doesn't have this bug, present in the old
line-breaking logic implemented in the BreakingContext class.

In order to verify the validity of this change, I've added several
tests under fast/text with the SimpleLineLayout disabled.

Tests: fast/text/overflow-wrap-break-word-004.html

fast/text/overflow-wrap-break-word-005.html
fast/text/overflow-wrap-break-word-007.html
fast/text/whitespace/pre-wrap-008.html
fast/text/whitespace/pre-wrap-015.html
fast/text/whitespace/pre-wrap-016.html
fast/text/word-break-break-all-010.html
fast/text/word-break-break-all-011.html
fast/text/word-break-break-all-015.html
imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007.html
imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-015.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

Removed some entries from the GTK expectation file.
Added tests to verify the codepath with SimpleLineLayout disabled.

  • fast/text/overflow-wrap-break-word-004-expected.html: Added.
  • fast/text/overflow-wrap-break-word-004.html: Added.
  • fast/text/overflow-wrap-break-word-005-expected.html: Added.
  • fast/text/overflow-wrap-break-word-005.html: Added.
  • fast/text/overflow-wrap-break-word-007-expected.html: Added.
  • fast/text/overflow-wrap-break-word-007.html: Added.
  • fast/text/whitespace/pre-wrap-008-expected.html: Added.
  • fast/text/whitespace/pre-wrap-008.html: Added.
  • fast/text/whitespace/pre-wrap-015-expected.html: Added.
  • fast/text/whitespace/pre-wrap-015.html: Added.
  • fast/text/whitespace/pre-wrap-016-expected.html: Added.
  • fast/text/whitespace/pre-wrap-016.html: Added.
  • fast/text/word-break-break-all-010-expected.html: Added.
  • fast/text/word-break-break-all-010.html: Added.
  • fast/text/word-break-break-all-011-expected.html: Added.
  • fast/text/word-break-break-all-011.html: Added.
  • fast/text/word-break-break-all-015-expected.html: Added.
  • fast/text/word-break-break-all-015.html: Added.
  • platform/gtk/TestExpectations:
    • word-break-break-all-010.html passes now thanks to this change.
7:42 AM Changeset in webkit [243436] by Diego Pino Garcia
  • 3 edits
    1 delete in trunk/LayoutTests

[GTK][WPE] Gardening, update test expectations.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/text/ja-sans-serif-expected.png: Removed.

Test harnessing suggested to remove this file as it was not being used.

  • platform/wpe/TestExpectations:
3:30 AM Changeset in webkit [243435] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

Reflect HTMLLinkElement.as according to the spec
https://bugs.webkit.org/show_bug.cgi?id=196189

Patch by Rob Buis <rbuis@igalia.com> on 2019-03-25
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update improved test result and import reflected-as-value.html.

  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/preload/reflected-as-value-expected.txt: Added.
  • web-platform-tests/preload/reflected-as-value.html: Added.

Source/WebCore:

The 'as' attribute is an enumerated attribute [1] and should
reflect using a finite set of keywords, so lowercase the as getter
to match the defined set of destinations [2].

Test: imported/w3c/web-platform-tests/preload/reflected-as-value.html

[1] https://html.spec.whatwg.org/#enumerated-attribute
[2] https://fetch.spec.whatwg.org/#concept-request-destination

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::as const):

LayoutTests:

Update improved test result.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt:
2:11 AM Changeset in webkit [243434] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Do not allow changes in active URI before provisional load starts for non-API requests
https://bugs.webkit.org/show_bug.cgi?id=194208

Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewWillStartLoad): Block updates of active URL.
(webkitWebViewLoadChanged): Unblock updates of active URL on WEBKIT_LOAD_STARTED.

1:07 AM Changeset in webkit [243433] by Gyuyoung Kim
  • 24 edits
    3 deletes in trunk

Remove NavigatorContentUtils in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=196070

Reviewed by Alex Christensen.

NavigatorContentUtils was to support the custom scheme spec [1].
However, in WebKit side, no port has supported the feature in
WebKit layer after EFL port was removed. So there has been the
only IDL implementation of the NavigatorContentUtils in WebCore.
Source/JavaScriptCore:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

No new tests because this patch is just to remove the feature.

  • CMakeLists.txt:
  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp: Removed.
  • Modules/navigatorcontentutils/NavigatorContentUtils.h: Removed.
  • Modules/navigatorcontentutils/NavigatorContentUtils.idl: Removed.
  • Modules/navigatorcontentutils/NavigatorContentUtilsClient.h: Removed.
  • Sources.txt:

Source/WebCore/PAL:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h: Removed.

Source/WebKitLegacy/mac:

So we don't need to keep the implementation in WebKit.

  • Configurations/FeatureDefines.xcconfig:

Tools:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • fast/dom/NavigatorContentUtils/is-protocol-handler-registered-expected.txt: Removed.
  • fast/dom/NavigatorContentUtils/is-protocol-handler-registered.html: Removed.
  • fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt: Removed.
  • fast/dom/NavigatorContentUtils/register-protocol-handler.html: Removed.
  • fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt: Removed.
  • fast/dom/NavigatorContentUtils/unregister-protocol-handler.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
12:46 AM Changeset in webkit [243432] by Manuel Rego Casasnovas
  • 4 edits
    2 adds in trunk

[css-grid] Fix grid container baseline alignment for orthogonal items
https://bugs.webkit.org/show_bug.cgi?id=196141

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Imported test from WPT. This patch is making some of the test cases pass but not all.
Some are still failing in WebKit as it never uses the central baseline on vertical writing modes (bug #94410),
also "text-orientation" is not supported yet in WebKit (bug #196139),
even the prefixed version "-webkit-text-orientation" doesn't fix anything in this test case.

  • web-platform-tests/css/css-grid/alignment/grid-container-baseline-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/alignment/grid-container-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/alignment/w3c-import.log:

Source/WebCore:

Grid container baseline was wrongly computed when done in reference to an orthogonal item.

Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-container-baseline-001.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::firstLineBaseline const): Simple change to use logicalTopForChild()
so it takes into account grid container and item writing modes.

Mar 24, 2019:

11:24 PM Changeset in webkit [243431] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed WPE build fix.

  • UIProcess/wpe/WebPasteboardProxyWPE.cpp:

Add an explicit CompletionHandler.h include to avoid a trip-up in
unified builds.

10:09 PM Changeset in webkit [243430] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] WebProcessDataStoreParameters.h(32): error C2653: 'SandboxExtension': is not a class or namespace name
https://bugs.webkit.org/show_bug.cgi?id=196192

Unreviewed for WinCairo port.

  • Shared/WebProcessDataStoreParameters.h: Added #include "SandboxExtension.h".
7:53 PM Changeset in webkit [243429] by keith_miller@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, forgot to refactor variable name for windows build in
r243418.

  • wtf/MathExtras.h:

(WTF::clz):
(WTF::ctz):

5:41 PM Changeset in webkit [243428] by dinfuehr@igalia.com
  • 1 edit
    1 move in trunk/JSTests

[JSC] Move test into directory for WASM tests
https://bugs.webkit.org/show_bug.cgi?id=196187

Reviewed by Mark Lam.

Move Test into wasm-directory. Otherwise this test
is also executed on systems without WASM support.

  • wasm/regress/web-assembly-link-error-exception-check.js: Renamed from JSTests/stress/web-assembly-link-error-exception-check.js.
1:42 PM Changeset in webkit [243427] by aestes@apple.com
  • 20 edits
    1 delete in trunk

[watchOS] Remove unused Proximity Networking code
https://bugs.webkit.org/show_bug.cgi?id=196188

Reviewed by Tim Horton.

Source/WebKit:

  • Configurations/WebKit.xcconfig:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformPrepareToSuspend):
(WebKit::NetworkProcess::platformProcessDidResume):
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground):
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground):

  • NetworkProcess/watchos/NetworkProximityAssertion.h: Removed.
  • NetworkProcess/watchos/NetworkProximityAssertion.mm: Removed.
  • NetworkProcess/watchos/NetworkProximityManager.h: Removed.
  • NetworkProcess/watchos/NetworkProximityManager.mm: Removed.
  • SourcesCocoa.txt:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration wirelessContextIdentifier]):
(-[_WKProcessPoolConfiguration setWirelessContextIdentifier:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:

(TEST):

1:23 PM Changeset in webkit [243426] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: WebGL action icon shouldn't invert when selected
https://bugs.webkit.org/show_bug.cgi?id=196135

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._classNameForAction):
(WI.RecordingActionTreeElement._classNameForAction.classNameForActionName): Deleted.
Remove unnecessary logging and memoization.

  • UserInterface/Views/RecordingActionTreeElement.css:

(.tree-outline:focus .item.recording-action.selected:not(.invalid, .initial-state, .has-context-replacer, .name-unknown) > .icon): Added.
(@media (prefers-color-scheme: dark)):
(.item.recording-action:not(.invalid, .initial-state, .has-context-replacer, .name-unknown) > .icon): Added.
(.tree-outline:focus .item.recording-action.selected:not(.invalid, .initial-state, .has-context-replacer) > .icon): Deleted.
(.item.recording-action.has-context-replacer > .icon): Deleted.
(.item.recording-action:not(.invalid, .initial-state, .has-context-replacer) > .icon): Deleted.
Simplify styles between light and dark mode.

1:21 PM Changeset in webkit [243425] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: testCellRoleForRequiredChidren accessibility audit checks for rows in cells
https://bugs.webkit.org/show_bug.cgi?id=195988

Patch by Simon Welsh <simon@welsh-au.com> on 2019-03-24
Reviewed by Timothy Hatcher.

The audit now checks that rows contain cells, allowing any of the four
cell-based roles.

  • UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.addDefaultTestsIfNeeded):
(WI.AuditManager):
(WI.AuditManager.prototype.addDefaultTestsIfNeeded.const.testCellRoleForRequiredChidren): Deleted.

1:21 PM Changeset in webkit [243424] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: missing icons for WebGL2 contexts
https://bugs.webkit.org/show_bug.cgi?id=196136

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled > .glyph): Added.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas:matches(.canvas-2d, .bitmaprenderer) .icon): Added.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas:matches(.webgl, .webgl2, .webgpu, .webmetal) .icon): Added.
(@media (prefers-color-scheme: dark)):
(.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): Deleted.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.canvas-2d .icon): Deleted.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.casnvas.webgl .icon): Deleted.
Use the 2D icon for BitmapRenderer and the 3D icon for WebGL2, WebMetals, and WebGPU.
Drive-by: the start/stop button text was too dark when disabled in dark mode.

  • UserInterface/Models/Canvas.js:

Drive-by: "gpu" => "webgpu", to match the protocol string.

12:12 PM WebKitGTK/2.24.x edited by Michael Catanzaro
(diff)
11:13 AM Changeset in webkit [243423] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.13.1/Source

Versioning.

11:11 AM Changeset in webkit [243422] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.13.1

New tag.

10:20 AM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
trac has RSS (diff)
10:17 AM Changeset in webkit [243421] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix -Wpessimizing-move warning
https://bugs.webkit.org/show_bug.cgi?id=195905
<rdar://problem/49121824>

  • svg/properties/SVGPropertyList.h:
10:16 AM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
More tips (diff)
Note: See TracTimeline for information about the timeline view.