Timeline



Aug 21, 2019:

11:16 PM Changeset in webkit [248997] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix; add a 'final' declaration on shouldOverridePauseDuringRouteChange().

  • Modules/mediastream/MediaStream.h:
10:51 PM Changeset in webkit [248996] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Layout Test perf/clone-with-focus.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=201012

Reviewed by Antti Koivisto.

The flakiness was observed when the time to clone elements without focus is 0ms
but the time to clone elements with focus is 1ms or greater.

The test tries to make sure the time to clone elements with foucs is less than 2x
of the time to clone elements without focus. When the time to clone without focus
is 0ms, any difference is always more than 2x larger.

Fixed the test by increasing the number of elements until the time to clone without
focus takes at least 5ms.

  • perf/clone-with-focus.html:
10:33 PM Changeset in webkit [248995] by Jonathan Bedard
  • 4 edits in trunk/Tools

results.webkit.org: Fix drawer style
https://bugs.webkit.org/show_bug.cgi?id=200988

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/drawer.js:

(Drawer): Nothing in the drawer should be selectable.
(ConfigurationSelectors): Standardize text size, remove underscore from expanders.

  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(.action:hover): Disable underline on 'links' which are actually actions
(.unselectable): Make a div unselectable.

  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

(Timeline.ExpandableSeriesWithHeaderExpanderComponent): Remove underscore from expanders.

7:55 PM Changeset in webkit [248994] by sbarati@apple.com
  • 3 edits in trunk/Source/WebCore

[WHLSL] Improve default constructor and emit fewer pointers in metal codegen
https://bugs.webkit.org/show_bug.cgi?id=200995

Reviewed by Myles C. Maxfield.

This patch makes it so that we:

  1. Emit less code for copy constructors by omitting an unused variable.
  2. Emit ternary expressions instead of if statements for conditional assignments.
  3. Don't copy pointers for producing an lvalue from DereferenceExpression.
  4. Lazily produce lvalues for GlobalVariableReference.
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::inlineNativeFunction):

7:50 PM Changeset in webkit [248993] by mmaxfield@apple.com
  • 30 edits
    1 copy
    55 adds in trunk

[WHLSL] Vertex shader and fragment shader need to be able to come from two different programs
https://bugs.webkit.org/show_bug.cgi?id=195446

Reviewed by Saam Barati.

Source/WebCore:

When an author configures WebGPU to render things, the author provides a vertex shader and a fragment
shader, and they both execute within the same draw call. It's common for authors coming from WebGL to
put the two shaders in distinct files. Until this patch, WHLSL was unable to process two shaders from
different sources which were meant to be hooked together.

The first thing this patch does is add the notion of a "shader module" to the WHLSL compiler. This
represents the source code containing one or more shaders. When the author wants to actually compile
their source, they supply one or more shader modules to the compiler. The compiler then looks in the
first module for the vertex shader and the second module for the fragment shader. The two modules are
passed by reference, so they may refer to the same underlying object, which is supported.

Shader modules have this interesting behavior where, within a shader module, funtion / type names may
refer to each other, but may not refer to any other name within any other shader module. They behave
as if all the names inside the module are not exported. So, it would seem that the most natural way to
support this would be to run the WHLSL compiler and the MSL compiler twice independently, once for each
module. However, this means that our compile times would double, which would be unfortunate. Instead,
a more performant option would be to make the WHLSL compiler smart enough to handle multiple shader
modules at once, and to produce a single merged output program that contains everything. It does this
by parsing all the shader modules into a single Program object, but remembering which items in the
Program came from which places.

This is implemented by teaching the WHLSL compiler about "namespaces." There are three namespaces: one
for each shader module, and an additional one for the standard library. Every global object (e.g.
named types and functions) knows which namespace it lives inside. The NameResolver has been educated
to understand namespaces, so when you ask it for a name in a particular namespace, it will look up
all the names both in that namespace and in the standard library's namespace, and it will union the
results together.

Function overload resolution doesn't actually go through the name resolver; instead, it's handled by
sorting all functions into buckets such that any CallExpression only has to look in a single bucket
to find all its potential overloads. These buckets can't be educated about namespaces (consider a
function which has overloads in all 3 namespaces that is called from both shader modules - all the
overloads must end up in the same bucket). Therefore, this logic is moved into
resolveFunctionOverload(), which will now disregard candidate functions if they are in an inaccessible
namespace.

Tests: webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html

webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html
webgpu/whlsl/separate-shader-modules/separate-shader-modules.html

  • Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:

(WebCore::WHLSL::AST::FunctionDeclaration::nameSpace const):
(WebCore::WHLSL::AST::FunctionDeclaration::setNameSpace):

  • Modules/webgpu/WHLSL/AST/WHLSLNameSpace.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.h.
  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:

(WebCore::WHLSL::AST::NamedType::nameSpace const):
(WebCore::WHLSL::AST::NamedType::setNameSpace):

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::emitMetalFunctions):

  • Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.cpp:

(WebCore::WHLSL::DuplicateFunctionKey::operator== const):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::FunctionKey::operator== const):
(WebCore::WHLSL::checkOperatorOverload):
(WebCore::WHLSL::Checker::checkShaderType):
(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::Checker::resolveFunction):

  • Modules/webgpu/WHLSL/WHLSLLexer.cpp:
  • Modules/webgpu/WHLSL/WHLSLNameContext.cpp:

(WebCore::WHLSL::NameContext::add):
(WebCore::WHLSL::NameContext::getTypes):
(WebCore::WHLSL::NameContext::getFunctions):
(WebCore::WHLSL::NameContext::searchTypes const):
(WebCore::WHLSL::NameContext::searchFunctions const):
(WebCore::WHLSL::NameContext::globalExists const):
(WebCore::WHLSL::NameContext::localExists const):
(WebCore::WHLSL::NameContext::exists): Deleted.

  • Modules/webgpu/WHLSL/WHLSLNameContext.h:

(WebCore::WHLSL::NameContext::setCurrentNameSpace):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:

(WebCore::WHLSL::NameResolver::NameResolver):
(WebCore::WHLSL::NameResolver::visit):
(WebCore::WHLSL::resolveNamesInTypes):
(WebCore::WHLSL::resolveTypeNamesInFunctions):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.h:

(WebCore::WHLSL::NameResolver::setCurrentNameSpace):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parse):
(WebCore::WHLSL::Parser::fail):
(WebCore::WHLSL::Parser::consumeIntegralLiteral):
(WebCore::WHLSL::Parser::consumeNonNegativeIntegralLiteral):
(WebCore::WHLSL::Parser::parseConstantExpression):
(WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated):
(WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated):
(WebCore::WHLSL::Parser::parseBuiltInSemantic):
(WebCore::WHLSL::Parser::parseResourceSemantic):
(WebCore::WHLSL::Parser::parseStageInOutSemantic):
(WebCore::WHLSL::Parser::parseEnumerationDefinition):
(WebCore::WHLSL::Parser::parseEnumerationMember):
(WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute):
(WebCore::WHLSL::Parser::parseVertexOrFragmentFunctionDeclaration):
(WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
(WebCore::WHLSL::Parser::parseSwitchCase):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseVariableDeclarations):
(WebCore::WHLSL::Parser::completeAssignment):
(WebCore::WHLSL::Parser::parsePossibleTernaryConditional):
(WebCore::WHLSL::Parser::parseTerm):

  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp:

(WebCore::WHLSL::ShaderModule::ShaderModule):
(WebCore::WHLSL::createShaderModule):
(WebCore::WHLSL::ShaderModuleDeleter::operator()):
(WebCore::WHLSL::prepareShared):
(WebCore::WHLSL::prepare):

  • Modules/webgpu/WHLSL/WHLSLPrepare.h:
  • Modules/webgpu/WHLSL/WHLSLProgram.h:

(WebCore::WHLSL::Program::append):

  • Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.cpp:

(WebCore::WHLSL::resolveFunctionOverloadImpl):
(WebCore::WHLSL::resolveFunctionOverload):

  • Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.h:
  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp:

(WebCore::WHLSL::matchSemantics):
(WebCore::WHLSL::findEntryPoint): Deleted.

  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.h:
  • Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.cpp:

(WebCore::WHLSL::includeStandardLibrary):

  • Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUShaderModule.h:

(WebCore::GPUShaderModule::platformShaderModule const):
(WebCore::GPUShaderModule::whlslModule const):
(WebCore::GPUShaderModule::whlslSource const): Deleted.

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

(WebCore::trySetFunctions):
(WebCore::convertComputePipelineDescriptor):

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

(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertRenderPipelineDescriptor):

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

(WebCore::GPUShaderModule::tryCreate):
(WebCore::GPUShaderModule::GPUShaderModule):

LayoutTests:

  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-10-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-11-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-12-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-13-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-14-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-15-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-16-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-17-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-18-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-19-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-2-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-20-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-21-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-22-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-23-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-24-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-25-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-26-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-27-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-3-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-4-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-5-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-6-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-7-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-8-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-9-expected.txt: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-expected.html: Added.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules.html: Added.
7:44 PM Changeset in webkit [248992] by mark.lam@apple.com
  • 3 edits in trunk/Source/WTF

Fix infinite recursion in WTFCrashWithInfo() after r248930.
https://bugs.webkit.org/show_bug.cgi?id=201022

Reviewed by Saam Barati.

  • wtf/Assertions.cpp:

(WTFCrashWithInfoImpl):
(WTFCrashWithInfo): Deleted.

  • wtf/Assertions.h:

(WTFCrashWithInfo):

7:33 PM Changeset in webkit [248991] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: DOM outline in Elements tab should be LTR
https://bugs.webkit.org/show_bug.cgi?id=200601

Reviewed by Timothy Hatcher.

Make DOM outlines in Console and Elements tab always LTR,
and unsure that Left and Right arrow keys continue working correctly.

  • UserInterface/Base/Main.js:

(WI.resolveLayoutDirectionForElement): Added.
The existing WI.resolvedLayoutDirection function returns the value of the root DOM element.
The newly added resolveLayoutDirectionForElement function returns the correct value for any element,
including elements with dir=ltr inside of <body dir=rtl>.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(.tree-outline.dom li:not(.editing)):
(.tree-outline.dom li.editing):
(.tree-outline.dom li .pseudo-class-indicator):
(.tree-outline.dom.single-node li):
(.tree-outline.dom li.parent):
(.tree-outline.dom li .html-tag.close):
(.tree-outline.dom li.parent::before):
(.tree-outline.dom li.parent.shadow::after):
Remove RTL logic.

  • UserInterface/Views/DOMTreeOutline.js:
  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype._treeKeyDown):
Make Left and Right arrow keys work correctly for LTR DOM outlines inside of the global RTL.

6:49 PM Changeset in webkit [248990] by Fujii Hironori
  • 10 edits in trunk/Tools

[Win][MiniBrowser] Add a progress indicator to the main window
https://bugs.webkit.org/show_bug.cgi?id=200970

Reviewed by Alex Christensen.

  • MiniBrowser/win/BrowserWindow.h: Added BrowserWindowClient class.
  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::init):
(MainWindow::resizeSubViews):
(MainWindow::progressChanged):
(MainWindow::progressFinished):

  • MiniBrowser/win/MainWindow.h: Inherited BrowserWindowClient.

Added m_hProgressIndicator.
(MainWindow::hwnd const): Deleted.
(MainWindow::browserWindow const): Deleted.
(): Deleted.

  • MiniBrowser/win/MiniBrowserWebHost.cpp:

(MiniBrowserWebHost::onNotify):

  • MiniBrowser/win/MiniBrowserWebHost.h:
  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::create):
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::didChangeIsLoading):
(WebKitBrowserWindow::didChangeEstimatedProgress):
(WebKitBrowserWindow::createNewPage):

  • MiniBrowser/win/WebKitBrowserWindow.h:
  • MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:

(WebKitLegacyBrowserWindow::create):
(WebKitLegacyBrowserWindow::WebKitLegacyBrowserWindow):
(WebKitLegacyBrowserWindow::init):

  • MiniBrowser/win/WebKitLegacyBrowserWindow.h:
6:42 PM Changeset in webkit [248989] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Wasm::FunctionParser is failing to enforce maxFunctionLocals.
https://bugs.webkit.org/show_bug.cgi?id=201016
<rdar://problem/54579911>

Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/stress/too-many-locals.js: Added.

(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.catch):

Source/JavaScriptCore:

Currently, Wasm::FunctionParser is allowing

maxFunctionParams + maxFunctionLocals * maxFunctionLocals

... locals, which is 0x9502FCE8. It should be enforcing max locals of
maxFunctionLocals instead.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parse):

6:25 PM Changeset in webkit [248988] by Kocsen Chung
  • 11 edits
    2 adds in branches/safari-608-branch

Cherry-pick r248974. rdar://problem/54579634

[Mail] Tapping top of message scrolls back to copied text instead of top of the message
https://bugs.webkit.org/show_bug.cgi?id=200999
<rdar://problem/54564878>

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: editing/selection/ios/change-selection-by-tapping-with-existing-selection.html

  • page/EditorClient.h: (WebCore::EditorClient::shouldAllowSingleClickToChangeSelection const):
  • page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEventSingleClick): Instead of encoding platform behaviors in EventHandler, defer to EditorClient.

Source/WebKit:

In the case where you have a WebCore selection but are not first responder,
when you tap the WKWebView to become first responder, EventHandler would
bail from setting the selection, assuming UIKit was going to do it. This
behavior was introduced in r233311.

However, since we are not first responder, UIKit does not change the
selection, since it considers the view to not be editable.

Fix this by letting WebCore set the selection in this case, as it used to.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm: (WebKit::WebEditorClient::shouldAllowSingleClickToChangeSelection const):
  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::isShowingInputViewForFocusedElement const): Copy the logic from EventHandler, with the added caveat (which fixes the aforementioned behavior) that we will allow EventHandler to change the selection if we don't have a focused node in the UIKit sense, because we know that the platform text interaction code will *not* change the selection if that is the case, so it's up to us.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm: (WebEditorClient::shouldAllowSingleClickToChangeSelection const): Copy the existing behavior from EventHandler. We do not fix the bug in WebKitLegacy for a multitude of reasons, primarily because we do not know of any user impact.

LayoutTests:

  • editing/selection/ios/change-selection-by-tapping-with-existing-selection-expected.txt: Added.
  • editing/selection/ios/change-selection-by-tapping-with-existing-selection.html: Added.

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

6:25 PM Changeset in webkit [248987] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r248959. rdar://problem/54579630

Crash under StringImpl::~StringImpl() in NetworkProcess::deleteWebsiteDataForRegistrableDomains()
https://bugs.webkit.org/show_bug.cgi?id=200986
<rdar://problem/32850192>

Reviewed by Brent Fulgham.

Code was calling postStorageTask() with a lambda that captures Strings that are not isolated copied.
The lambda would get executed on another thread so this is not safe. The CrossThreadTask constructor
does not take care of this for you, despite its name (the createCrossThreadTask() function does though).

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::fetchWebsiteData): (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): (WebKit::NetworkProcess::registrableDomainsWithWebsiteData):

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

6:25 PM Changeset in webkit [248986] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r248952. rdar://problem/54579626

[iOS] HLS streams disappear from Now Playing when paused on the lock screen
https://bugs.webkit.org/show_bug.cgi?id=200951
<rdar://problem/54534301>

Reviewed by Eric Carlson.

The AVPlayerItemTracks will get recreated on occasion (during seeks, and when
changing buffering policy) which can result in a player which no longer reports
that it has audio, which in turn results in Now Playing no longer considering
the web page to be an eligable now playing application. Bridge this gap by also
taking AVPlayerItem.hasEnabledAudio into account when determining whether the
player has audio.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):

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

6:25 PM Changeset in webkit [248985] by Kocsen Chung
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r248944. rdar://problem/54579628

REGRESSION: naver.com - Multiple taps are required to open email
https://bugs.webkit.org/show_bug.cgi?id=200979
<rdar://problem/54295239>

Patch by Antoine Quint <Antoine Quint> on 2019-08-21
Reviewed by Dean Jackson.

The "click" events on subjects in the message list are prevented by preventDefault() being called from a "mouseup" event listener.
This shouldn't actually happen, but due to how simulated mouse events are implemented, there is no current distinction between
"touchend" and "mouseup" events. It is safe however to opt mail.naver.com out of simulated mouse events altogether.

  • page/Quirks.cpp: (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

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

5:40 PM Changeset in webkit [248984] by Kocsen Chung
  • 7 edits in branches/safari-608-branch/Source

Versioning.

5:34 PM Changeset in webkit [248983] by rniwa@webkit.org
  • 11 edits in trunk

SVG element should become focusable when focus and key event listeners are added
https://bugs.webkit.org/show_bug.cgi?id=200997

Reviewed by Said Abou-Hallawa.

Source/WebCore:

This patch removes the odd behavior WebKit (and Blink) browsers had to make SVG elements
with key or focus event listeners focusable. New behavior matches the behavior of Firefox
as well as the SVG 2.0 specification: https://www.w3.org/TR/SVG2/interact.html#Focus

Test: svg/custom/tabindex-order.html

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::supportsFocus const):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::hasFocusEventListeners const): Deleted.
(WebCore::SVGElement::isMouseFocusable const): Deleted.

  • svg/SVGElement.h:
  • svg/SVGGraphicsElement.h:

LayoutTests:

Updated existing tests to set tabIndex where appropriate, and added SVG elements
without tabindex content attribute to tabindex-order.html so that the test would
skip those elements when sequentially focus navigating across them.

  • svg/custom/add-event-listener-shadow-tree-element.html:
  • svg/custom/resources/focus-event-handling-keyboard.js:
  • svg/custom/resources/focus-event-handling.js:
  • svg/custom/tabindex-order-expected.txt:
  • svg/custom/tabindex-order.html: Added test cases without tabindex.
5:24 PM Changeset in webkit [248982] by Ryan Haddad
  • 3 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r248964. rdar://problem/54561673

Unreviewed test gardening, land test expectations for rdar://54561673.

  • platform/ios/TestExpectations:
  • platform/ios-12/TestExpectations:

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

5:24 PM Changeset in webkit [248981] by Ryan Haddad
  • 4 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r248917. rdar://problem/53829560

Updating Expectations for Multiple Newly Passing Tests.

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:

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

5:23 PM Changeset in webkit [248980] by Ryan Haddad
  • 2 edits in trunk/Tools

Unreviewed, rolling out r248970.

Caused
lldb_webkit_unittest.TestSummaryProviders.serial_test_WTFOptionSetProvider_empty
to fail.

Reverted changeset:

"[lldb-webkit] OptionSet summary shows size 0 sometimes for
non-empty set"
https://bugs.webkit.org/show_bug.cgi?id=200742
https://trac.webkit.org/changeset/248970

5:21 PM Changeset in webkit [248979] by Jonathan Bedard
  • 3 edits
    2 adds in trunk/Tools

results.webkit.org: Add database table to save zip archives to
https://bugs.webkit.org/show_bug.cgi?id=200718

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/model/archive_context.py: Added.

(ArchiveContext):
(ArchiveContext.ArchivesByCommit): Store archives to be retrieved by commit and configuration.
(ArchiveContext.ArchivesByCommit.unpack):
(ArchiveContext.assert_zipfile):
(ArchiveContext.open_zipfile):
(ArchiveContext.init):
(ArchiveContext.enter):
(ArchiveContext.exit):
(ArchiveContext.register): Save the provided archive to Cassandra.
(ArchiveContext.find_archive): Find all archives matching the specified criteria.
(ArchiveContext._files_for_archive):
(ArchiveContext.ls): List all files in the matching archives.
(ArchiveContext.file): Extract a file from the matching archives.

  • resultsdbpy/resultsdbpy/model/archive_context_unittest.py: Added.

(ArchiveContextTest):

  • resultsdbpy/resultsdbpy/model/mock_model_factory.py:

(MockModelFactory):
(MockModelFactory.process_results):
(MockModelFactory.add_mock_archives):

  • resultsdbpy/resultsdbpy/model/model.py:

(Model.init): Add an ArchiveContext to the model.

5:11 PM Changeset in webkit [248978] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Adopt AVSystemController_ActiveAudioRouteDidChangeNotification
https://bugs.webkit.org/show_bug.cgi?id=200992
<rdar://problem/54408993>

Reviewed by Eric Carlson.

Follow-up to r248962: When the active audio route changes, and the
system instructs us to pause, only pause the currently audible sessions.

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::activeAudioRouteDidChange):
(-[WebMediaSessionHelper activeAudioRouteDidChange:]):
(WebCore::MediaSessionManageriOS::activeRouteDidChange): Deleted.

5:06 PM Changeset in webkit [248977] by Megan Gardner
  • 4 edits
    2 adds in trunk

Do not adjust viewport if editing selection is already visible
https://bugs.webkit.org/show_bug.cgi?id=200907
<rdar://problem/53903417>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/ios/autoscroll-input-when-very-zoomed.html

Currently due to scrolling being mostly handled by integers, we are getting
issues with rounding errors when trying to adjust the viewport while
editing text when we are significantly zoomed in. The real fix would be to
start dealing with scrolling with floats/doubles, but until such time,
we should early out of adjusting selections that we are certain are currently
visible.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

LayoutTests:

  • fast/scrolling/ios/autoscroll-input-when-very-zoomed-expected.txt: Added.
  • fast/scrolling/ios/autoscroll-input-when-very-zoomed.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.immediateZoomToScale):

4:56 PM Changeset in webkit [248976] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] view layout test results option should be displayed next to layout-test build step
https://bugs.webkit.org/show_bug.cgi?id=200048

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ExtractTestResults.getLastBuildStepByName): Method to return the last build-step matching the step name.
(ExtractTestResults.addCustomURLs): Add urls to corresponding layout-test step.

4:51 PM Changeset in webkit [248975] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Fix capitalization in Found x new Test failure message
https://bugs.webkit.org/show_bug.cgi?id=201004

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeAPITestsResults.analyzeResults):

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests accordingly.
4:05 PM Changeset in webkit [248974] by timothy_horton@apple.com
  • 11 edits
    2 adds in trunk

[Mail] Tapping top of message scrolls back to copied text instead of top of the message
https://bugs.webkit.org/show_bug.cgi?id=200999
<rdar://problem/54564878>

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: editing/selection/ios/change-selection-by-tapping-with-existing-selection.html

  • page/EditorClient.h:

(WebCore::EditorClient::shouldAllowSingleClickToChangeSelection const):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEventSingleClick):
Instead of encoding platform behaviors in EventHandler, defer to EditorClient.

Source/WebKit:

In the case where you have a WebCore selection but are not first responder,
when you tap the WKWebView to become first responder, EventHandler would
bail from setting the selection, assuming UIKit was going to do it. This
behavior was introduced in r233311.

However, since we are not first responder, UIKit does not change the
selection, since it considers the view to not be editable.

Fix this by letting WebCore set the selection in this case, as it used to.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:

(WebKit::WebEditorClient::shouldAllowSingleClickToChangeSelection const):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::isShowingInputViewForFocusedElement const):
Copy the logic from EventHandler, with the added caveat (which fixes the
aforementioned behavior) that we will allow EventHandler to change the
selection if we don't have a focused node in the UIKit sense, because
we know that the platform text interaction code will *not* change the
selection if that is the case, so it's up to us.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::shouldAllowSingleClickToChangeSelection const):
Copy the existing behavior from EventHandler.
We do not fix the bug in WebKitLegacy for a multitude of reasons, primarily
because we do not know of any user impact.

LayoutTests:

  • editing/selection/ios/change-selection-by-tapping-with-existing-selection-expected.txt: Added.
  • editing/selection/ios/change-selection-by-tapping-with-existing-selection.html: Added.
4:01 PM Changeset in webkit [248973] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Crash under NetworkCache::Data::mapToFile()
https://bugs.webkit.org/show_bug.cgi?id=200996
<rdar://problem/54570421>

Reviewed by Geoffrey Garen.

Make sure NetworkCache::Data::mapToFile() calls makeSafeToUseMemoryMapForPath() between
creating the file and calling mmap().

  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:

(WebKit::NetworkCache::BlobStorage::add):

  • NetworkProcess/cache/NetworkCacheData.cpp:

(WebKit::NetworkCache::Data::mapToFile const):

3:48 PM Changeset in webkit [248972] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Assign ews117 to EWS High-Sierra Debug queues
https://bugs.webkit.org/show_bug.cgi?id=200993

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json:
3:45 PM Changeset in webkit [248971] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Crash under StringImpl::endsWith() in SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade()
https://bugs.webkit.org/show_bug.cgi?id=200990
<rdar://problem/54566439>

Reviewed by Alex Christensen.

Make sure we call isolatedCopy() on SQLiteIDBBackingStore::m_databaseRootDirectory before using
it from background threads.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade):
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseRootDirectory const):

3:42 PM Changeset in webkit [248970] by dbates@webkit.org
  • 2 edits in trunk/Tools

[lldb-webkit] OptionSet summary shows size 0 sometimes for non-empty set
https://bugs.webkit.org/show_bug.cgi?id=200742

Reviewed by Simon Fraser.

The OptionSet synthetic provider must respond to requests for the value of m_storage
(i.e. GetChildMemberWithName('m_storage')) to avoid interfering with the computation
of the type summary.

Synthetic providers substitute alternative debug information (children) for the default
information for a variable. The OptionSet type summary is implemented in terms of the
OptionSet synthetic provider to maximize code reuse. If LLDB instantiates the provider
before invoking the type summary handler then evaluating GetChildMemberWithName() on
the SBValue passed to the type summary handler will access the substitute information
instead of the original debug information. As a result OptionSet's synthetic provider's
get_child_index('m_storage') returns None hence SBValue.GetChildMemberWithName('m_storage')
returned an invalid value; => WTFOptionSetProvider._bitmask() returns 0; => the size
reported in the type summary for the OptionSet is 0. Instead get_child_index('m_storage')
should return a valid value.

  • lldb/lldb_webkit.py:

(FlagEnumerationProvider.init):
(FlagEnumerationProvider):
(FlagEnumerationProvider._get_child_index): Added. WTFOptionSetProvider will override.
(FlagEnumerationProvider._get_child_at_index): Added. WTFOptionSetProvider will override.
(FlagEnumerationProvider.size): Added.
(FlagEnumerationProvider.get_child_index): Modified to call _get_child_index().
(FlagEnumerationProvider.get_child_at_index): Modified to call _get_child_at_index().
(FlagEnumerationProvider.update): Moved initialization of self._elements to the constructor
and removed self.size. For the latter we can just expose a getter that returns the size of
the list self._elements.
(WTFOptionSetProvider._get_child_index): Added. Return the index for LLDB to query for the
value of m_storage.
(WTFOptionSetProvider):
(WTFOptionSetProvider._get_child_at_index): Added. Return the value for m_storage if it
matches the specified index.

3:32 PM Changeset in webkit [248969] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Crash under StringImpl::~StringImpl() in IDBServer::computeSpaceUsedForOrigin()
https://bugs.webkit.org/show_bug.cgi?id=200989
<rdar://problem/54565546>

Reviewed by Alex Christensen.

Make sure we call isolatedCopy() on IDBServer::m_databaseDirectoryPath before using it from
background threads.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames):
(WebCore::IDBServer::IDBServer::removeDatabasesModifiedSinceForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::removeDatabasesWithOriginsForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin):
(WebCore::IDBServer::IDBServer::upgradeFilesIfNecessary):

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::databaseDirectoryPath const):

3:27 PM Changeset in webkit [248968] by Alan Coon
  • 1 copy in tags/Safari-608.2.7

Tag Safari-608.2.7.

3:17 PM Changeset in webkit [248967] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Crash under StringImpl::endsWith() in RegistrationDatabase::openSQLiteDatabase()
https://bugs.webkit.org/show_bug.cgi?id=200991
<rdar://problem/54566689>

Reviewed by Geoffrey Garen.

Make sure we call isolatedCopy() on RegistrationDatabase::m_databaseDirectory before using
it from background threads.

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):
(WebCore::RegistrationDatabase::clearAll):

  • workers/service/server/RegistrationDatabase.h:

(WebCore::RegistrationDatabase::databaseDirectory const):

3:03 PM Changeset in webkit [248966] by achristensen@apple.com
  • 6 edits
    1 add in trunk

Disabling text autosizing should prevent text autosizing
https://bugs.webkit.org/show_bug.cgi?id=200955
<rdar://problem/48095374>

Reviewed by Simon Fraser.

Source/WebCore:

Before this change there was no way to reliably change the text size on iOS when a -webkit-text-size-adjust:none style was applied
because it would ignore the WKPreferences value for _textAutosizingEnabled. Now that value has the desired effect when laying out.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::checkForTextSizeAdjust):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/TextSize.mm: Added.

(TEST):

LayoutTests:

  • fast/text-autosizing/ios/text-size-adjust-inline-style.html:

The comment was incorrect because we call WKPreferencesSetTextAutosizingEnabled(preferences, false) in TestController::platformResetPreferencesToConsistentValues.
In order to test the effect of text autosizing in this test, we need to explicitly turn it on. The disabling of text autosizing didn't do anything before this
patch, so it wasn't needed before now.

2:49 PM Changeset in webkit [248965] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[GTK][WPE] Make debug-test-runner work
https://bugs.webkit.org/show_bug.cgi?id=193576

Reviewed by Michael Catanzaro.

  • Scripts/webkitdirs.pm:

(wrapperPrefixIfNeeded): Only add the wrapper prefix when not running inside a Flatpak sandbox.
(setupUnixWebKitEnvironment): Added, sets TEST_RUNNER_INJECTED_BUNDLE_FILENAME and
TEST_RUNNER_TEST_PLUGIN_PATH in the environment.
(execUnixAppForDebugging): Added.
(debugWebKitTestRunner): Alternatively, use execUnixAppForDebugging() for the WPE and GTK+ ports.

2:38 PM Changeset in webkit [248964] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening, land test expectations for rdar://54561673.

  • platform/ios/TestExpectations:
  • platform/ios-12/TestExpectations:
2:30 PM Changeset in webkit [248963] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Have NetworkCache::store() null check its completion handler before calling it
https://bugs.webkit.org/show_bug.cgi?id=200994

Reviewed by Geoffrey Garen.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
Stop passing nullptr for the completion handler now that the parameter has a default value.
Note that passing nullptr here was likely wrong since the NetworkCache::store() implementation
did not null-check the completion handler before calling it.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):
Have NetworkCache::store() null check its completion handler before calling it as calling
a null WTF::Function crashes.

  • NetworkProcess/cache/NetworkCache.h:

Use nullptr as default parameter value for the completion handler.

2:29 PM Changeset in webkit [248962] by jer.noble@apple.com
  • 6 edits in trunk/Source/WebCore

Adopt AVSystemController_ActiveAudioRouteDidChangeNotification
https://bugs.webkit.org/show_bug.cgi?id=200992
<rdar://problem/54408993>

Reviewed by Eric Carlson.

When the system notifies us that the active audio route has changed in such a way
that necessitates pausing, pause all media sessions, exempting those that are
associated with WebRTC, since "pausing" an active audio conference isn't really
possible.

  • Modules/mediastream/MediaStream.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::shouldOverridePauseDuringRouteChange const):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSessionClient::shouldOverridePauseDuringRouteChange const):

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::activeRouteDidChange):
(-[WebMediaSessionHelper initWithCallback:]):
(-[WebMediaSessionHelper activeAudioRouteDidChange:]):

1:26 PM Changeset in webkit [248961] by commit-queue@webkit.org
  • 6 edits
    5 adds in trunk

Verify Prefetch and credential behavior
https://bugs.webkit.org/show_bug.cgi?id=200000

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-21
Reviewed by Youenn Fablet.

Source/WebKit:

Cancel cross-origin prefetches for Vary: Cookie.

Test: http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):

  • NetworkProcess/cache/PrefetchCache.cpp:

(WebKit::PrefetchCache::take):

LayoutTests:

Add a test to verify that navigating to a prefetched main resource
that sets Vary: Cookie does send cookies.

  • http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie-expected.txt: Added.
  • http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html: Added.
  • http/wpt/prefetch/resources/main-resource-cross-origin-set-cookie.py: Added.

(main):

  • http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py: Added.

(main):

  • http/wpt/prefetch/resources/navigate-cross-origin-vary-cookie.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
1:25 PM Changeset in webkit [248960] by rniwa@webkit.org
  • 101 edits in trunk

Put keygen element behind a runtime flag and disable it by default
https://bugs.webkit.org/show_bug.cgi?id=200850

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Re-sycned htmlformcontrolscollection.html as of ffc0fba7d4063f0fb063b9a215dd9ef7fedefebd.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt:

Rebaselined due to the whitespace change due to the keygen element rendering differently.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt:

Ditto.

  • web-platform-tests/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection-expected.txt:
  • web-platform-tests/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html:
  • web-platform-tests/html/semantics/forms/the-label-element/labelable-elements-expected.txt: Rebaselined now that the test for keygen is passing.

Source/WebCore:

The HTML keygen element has been removed from Chrome, Firefox, and the HTML specification in 2017.
This patch disables the keygen element by default by adding a runtime enabled flag which is disabled by default.

  • bindings/js/WebCoreBuiltinNames.h:
  • html/HTMLKeygenElement.idl:
  • html/HTMLTagNames.in:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setKeygenElementEnabled):
(WebCore::RuntimeEnabledFeatures::keygenElementEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetKeygenElementEnabled):
(WKPreferencesGetKeygenElementEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences keygenElementEnabled]):
(-[WebPreferences setKeygenElementEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::keygenElementEnabled):
(WebPreferences::setKeygenElementEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

Added the support for enableKeygenElement test runner option, which enables keygen element in layout tests.

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(setWebPreferencesForTestOptions):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

Deployed enableKeygenElement test runner option to keep the layout tests running.

  • accessibility/content-changed-notification-causes-crash.html:
  • accessibility/contenteditable-table-check-causes-crash.html:
  • accessibility/duplicate-axrenderobject-crash.html:
  • fast/block/float/float-not-removed-from-first-letter.html:
  • fast/block/float/split-inline-sibling-of-float-crash.html:
  • fast/css/pseudo-required-optional-unapplied.html:
  • fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html:
  • fast/dom/HTMLKeygenElement/keygen-keytype.html:
  • fast/dom/HTMLKeygenElement/keygen.html:
  • fast/dom/adopt-node-crash-2.html:
  • fast/dom/attribute-set-before-element-in-tree.html:
  • fast/dom/domstring-attribute-reflection.html:
  • fast/dom/set-custom-validity-with-too-few-arguments.html:
  • fast/dom/tabindex-defaults.html:
  • fast/dom/wrapper-classes.html:
  • fast/dynamic/insertAdjacentHTML-allowed-parents.html:
  • fast/flexbox/crash-button-keygen.html:
  • fast/forms/ValidityState-001.html:
  • fast/forms/autofocus-keygen.html:
  • fast/forms/checkValidity-001.html:
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html:
  • fast/forms/fieldset/fieldset-elements.html:
  • fast/forms/form-associated-element-crash3.html:
  • fast/forms/form-attribute.html:
  • fast/forms/form-collection-elements-order.html:
  • fast/forms/form-collection-elements.html:
  • fast/forms/form-collection-radio-node-list.html:
  • fast/forms/label/labelable-elements.html:
  • fast/forms/label/labels-add-htmlFor-label.html:
  • fast/forms/label/labels-add-parent-label.html:
  • fast/forms/label/labels-change-htmlFor-attribute.html:
  • fast/forms/label/labels-multiple-sibling-labels.html:
  • fast/forms/label/labels-parent-and-sibling-labels.html:
  • fast/forms/label/labels-remove-htmlFor-attribute.html:
  • fast/forms/label/labels-remove-htmlFor-label.html:
  • fast/forms/label/labels-remove-parent-label.html:
  • fast/forms/label/labels-set-htmlFor-attribute.html:
  • fast/forms/large-parts.html:
  • fast/forms/scrollheight-with-mutation-crash.html:
  • fast/forms/setCustomValidity-arguments.html:
  • fast/forms/setCustomValidity-existence.html:
  • fast/forms/setCustomValidity-null-parameter.html:
  • fast/forms/state-restore-skip-stateless.html:
  • fast/forms/update-form-owner-in-moved-subtree-assertion-failure.html:
  • fast/forms/validationMessage.html:
  • fast/forms/willvalidate.html:
  • fast/html/clone-keygen.html:
  • fast/html/keygen.html:
  • fast/html/marquee-reparent-check.html:
  • fast/invalid/residual-style-expected.html:
  • fast/invalid/residual-style.html:
  • fast/multicol/span/positioned-child-not-removed-crash.html:
  • fast/ruby/float-object-doesnt-crash.html:
  • fast/shadow-dom/keygen-shadow-manipulation.html:
  • fast/table/crash-splitColumn-2.html:
  • fast/table/multiple-captions-crash3-expected.html:
  • fast/table/multiple-captions-crash3.html:
  • http/tests/misc/resources/check-keygen-post.php:
  • http/tests/misc/submit-post-keygen.html:
  • imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow-expected.html:
  • imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow.html:
  • imported/blink/fast/text/international-iteration-simple-text.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Rebaselined

now that the test case for keygen is passing.

  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Ditto.
  • svg/dom/css-animate-input-foucs-crash.html:
1:02 PM Changeset in webkit [248959] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under StringImpl::~StringImpl() in NetworkProcess::deleteWebsiteDataForRegistrableDomains()
https://bugs.webkit.org/show_bug.cgi?id=200986
<rdar://problem/32850192>

Reviewed by Brent Fulgham.

Code was calling postStorageTask() with a lambda that captures Strings that are not isolated copied.
The lambda would get executed on another thread so this is not safe. The CrossThreadTask constructor
does not take care of this for you, despite its name (the createCrossThreadTask() function does though).

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):

12:50 PM Changeset in webkit [248958] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Get rid of m_weakThis data members now that we have a safe way to call makeWeakPtr() from various threads
https://bugs.webkit.org/show_bug.cgi?id=200981

Reviewed by Alex Christensen.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.cpp:

(WebCore::LibWebRTCDTMFSenderBackend::LibWebRTCDTMFSenderBackend):
(WebCore::LibWebRTCDTMFSenderBackend::OnToneChange):

  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h:
  • platform/network/cocoa/CookieStorageObserver.h:
  • platform/network/cocoa/CookieStorageObserver.mm:

(WebCore::CookieStorageObserver::CookieStorageObserver):
(WebCore::CookieStorageObserver::cookiesDidChange):

12:36 PM Changeset in webkit [248957] by Chris Dumez
  • 10 edits in trunk

Add internal setting to disable SecureContext checks
https://bugs.webkit.org/show_bug.cgi?id=200980
<rdar://problem/54438512>

Reviewed by Alex Christensen.

Source/WebCore:

Add internal setting to disable SecureContext checks, in order to facilitate development
for features like Service workers or device orientation / motion.

  • dom/Document.cpp:

(WebCore::Document::isSecureContext const):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::secureContextChecksEnabled const):
(WebCore::RuntimeEnabledFeatures::setSecureContextChecksEnabled):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::isSecureContext const):

Source/WebKit:

Add internal setting to disable SecureContext checks, in order to facilitate development
for features like Service workers or device orientation / motion.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _secureContextChecksEnabled]):
(-[WKPreferences _setSecureContextChecksEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:

(log):
(requestPermission):

12:24 PM Changeset in webkit [248956] by Chris Dumez
  • 15 edits in trunk/Source

registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap
https://bugs.webkit.org/show_bug.cgi?id=200985

Reviewed by John Wilander.

Source/WebKit:

registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap. It is more
efficient to simply return a Vector since we never need to look up keys.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::domainsToString):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains):

  • NetworkProcess/NetworkSession.h:

Source/WTF:

Allow calling crossThreadCopy() on a std::pair<>.

  • wtf/CrossThreadCopier.h:
12:17 PM Changeset in webkit [248955] by Ross Kirsling
  • 2 edits in trunk/JSTests

JSTests/stress/optional-chaining should not call shouldThrowTypeError in a loop
https://bugs.webkit.org/show_bug.cgi?id=200965

Reviewed by Saam Barati.

This has nothing to do with ?. in particular, but throwing >1M type errors takes 100s in Debug on my machine.
The main idea here was to JITify the simple success cases, so let's not run the simple failures so many times.

  • stress/optional-chaining.js:
11:58 AM Changeset in webkit [248954] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK][WPE] Gtk-Doc fails with build options which need cooperation between CFLAGS and LDFLAGS
https://bugs.webkit.org/show_bug.cgi?id=200987

Reviewed by Philippe Normand.

Only CFLAGS was being set before trying to generate the documentation
but not LDFLAGS, which could cause errors when gtk-doc tries to link
a generated program when the compiler flags would also require usage
of certain linker flags later on.

  • Source/cmake/GtkDoc.cmake: Also set LDFLAGS in the environment when

invoking Tools/gtkdoc/generate-gtkdoc.

11:47 AM Changeset in webkit [248953] by russell_e@apple.com
  • 6 edits
    5 deletes in trunk

Unreviewed, rolling out r248942.

Causes multiple layout test crashes on MacOS Bots

Reverted changeset:

"Verify Prefetch and credential behavior"
https://bugs.webkit.org/show_bug.cgi?id=200000
https://trac.webkit.org/changeset/248942

11:19 AM Changeset in webkit [248952] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] HLS streams disappear from Now Playing when paused on the lock screen
https://bugs.webkit.org/show_bug.cgi?id=200951
<rdar://problem/54534301>

Reviewed by Eric Carlson.

The AVPlayerItemTracks will get recreated on occasion (during seeks, and when
changing buffering policy) which can result in a player which no longer reports
that it has audio, which in turn results in Now Playing no longer considering
the web page to be an eligable now playing application. Bridge this gap by also
taking AVPlayerItem.hasEnabledAudio into account when determining whether the
player has audio.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):

11:08 AM Changeset in webkit [248951] by msaboff@apple.com
  • 5 edits
    1 add in trunk

[JSC] incorrent JIT lead to StackOverflow
https://bugs.webkit.org/show_bug.cgi?id=197823

Reviewed by Tadeu Zagallo.

JSTests:

New test.

  • stress/bound-function-stack-overflow.js: Added.

(foo):
(catch):

Source/JavaScriptCore:

Added stack overflow check to the bound function thunk generator. Added a new C++ operation
throwStackOverflowErrorFromThunk() to throw the error.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/ThunkGenerators.cpp:

(JSC::boundThisNoArgsFunctionCallGenerator):

11:02 AM Changeset in webkit [248950] by Keith Rollin
  • 11 edits in trunk

Remove support for watchOS < 6.0
https://bugs.webkit.org/show_bug.cgi?id=200937
<rdar://problem/54524009>

Reviewed by Darin Adler.

Update conditionals that reference WATCH_OS_VERSION_MIN_REQUIRED and
WATCH_OS_VERSION_MAX_ALLOWED, assuming that they both have values >=

  1. This means that expressions like

"WATCH_OS_VERSION_MIN_REQUIRED < 60000" are always False and
"
WATCH_OS_VERSION_MIN_REQUIRED >= 60000" are always True.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:
  • pal/spi/cocoa/NSKeyedArchiverSPI.h:
  • pal/spi/cocoa/NSProgressSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

Source/WTF:

  • wtf/FeatureDefines.h:
  • wtf/Platform.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST):

10:49 AM Changeset in webkit [248949] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source

Cherry-pick r248902. rdar://problem/54543355
Build fix.

Unsafe usage of CookieStorageObserver from a background thread
https://bugs.webkit.org/show_bug.cgi?id=200920

Reviewed by Alex Christensen.

Source/WebCore:

Unsafe usage of CookieStorageObserver from a background thread. CookieStorageObserver gets
constructed / destructed on the main thread. However, CookieStorageObserver::cookiesDidChange()
gets called on a background thread and tries to ref |this|. Even though CookieStorageObserver
is ThreadSafeRefCounted, this is still unsafe because the CookieStorageObserver destructor may
already be running on the main thread when CookieStorageObserver::cookiesDidChange() gets called
on the background thread.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/CookieStorageObserver.h:
  • platform/network/cocoa/CookieStorageObserver.mm: (WebCore::CookieStorageObserver::CookieStorageObserver): (WebCore::CookieStorageObserver::cookiesDidChange): (WebCore::CookieStorageObserver::create): Deleted.
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::NetworkStorageSession::cookieStorageObserver const):

Source/WebKit:

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm: (API::HTTPCookieStore::startObservingChangesToDefaultUIProcessCookieStore):

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

10:23 AM Changeset in webkit [248948] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK] Build failure due to unwieldy definition of “None” from X11 headers
https://bugs.webkit.org/show_bug.cgi?id=200984

Reviewed by Carlos Alberto Lopez Perez.

  • SourcesGTK.txt: Mark AcceleratedBackingStore.cpp with @no-unify

because it includes AcceleratedSurfaceX11.h when building with
ENABLE_X11_TARGET=ON, which in turn will include the X11 headers.
It is just lucky that most of the time the order of the generated
#include statements in the unified sources has been masking this
problem.

10:21 AM Changeset in webkit [248947] by sihui_liu@apple.com
  • 2 edits
    16 copies
    9 moves
    2 adds in trunk/PerformanceTests

Add some IDB performance tests
https://bugs.webkit.org/show_bug.cgi?id=200906

Reviewed by Geoffrey Garen.

Add test coverage for IDB performance, and organize IDB tests into two categories.

  • IndexedDB/basic/index-count-key.html: Added.
  • IndexedDB/basic/index-count.html: Added.
  • IndexedDB/basic/index-cursor-advance.html: Added.
  • IndexedDB/basic/index-cursor-continue.html: Added.
  • IndexedDB/basic/index-cursor-continuePrimaryKey.html: Added.
  • IndexedDB/basic/index-cursor-delete.html: Added.
  • IndexedDB/basic/index-cursor-update.html: Added.
  • IndexedDB/basic/index-get.html: Added.
  • IndexedDB/basic/index-multientry.html: Renamed from PerformanceTests/IndexedDB/index-multientry.html.
  • IndexedDB/basic/objectstore-add.html: Added.
  • IndexedDB/basic/objectstore-clear.html: Added.
  • IndexedDB/basic/objectstore-count.html: Added.
  • IndexedDB/basic/objectstore-cursor-advance.html: Added.
  • IndexedDB/basic/objectstore-cursor-continue.html: Added.
  • IndexedDB/basic/objectstore-cursor-delete.html: Added.
  • IndexedDB/basic/objectstore-cursor-update.html: Added.
  • IndexedDB/basic/objectstore-cursor.html: Renamed from PerformanceTests/IndexedDB/objectstore-cursor.html.
  • IndexedDB/basic/objectstore-delete.html: Renamed from PerformanceTests/IndexedDB/index-get.html.
  • IndexedDB/basic/objectstore-get.html: Added.
  • IndexedDB/basic/objectstore-put.html: Renamed from PerformanceTests/IndexedDB/objectstore-get.html.
  • IndexedDB/stress/large-array-keys.html: Renamed from PerformanceTests/IndexedDB/large-array-keys.html.
  • IndexedDB/stress/large-binary-keys.html: Renamed from PerformanceTests/IndexedDB/large-binary-keys.html.
  • IndexedDB/stress/large-number-of-inserts-responsiveness.html: Renamed from PerformanceTests/IndexedDB/large-number-of-inserts-responsiveness.html.
  • IndexedDB/stress/large-number-of-inserts.html: Renamed from PerformanceTests/IndexedDB/large-number-of-inserts.html.
  • IndexedDB/stress/large-string-keys.html: Renamed from PerformanceTests/IndexedDB/large-string-keys.html.
  • Skipped:
10:08 AM Changeset in webkit [248946] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GStreamer] Clang warns about mismatched type tag in declarations for ImageOrientation
https://bugs.webkit.org/show_bug.cgi?id=200982

Reviewed by Carlos Alberto Lopez Perez.

No new tests needed.

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.h: Change

type tag in the forward declaration to "struct", hence matching the
actual type definition.

10:05 AM Changeset in webkit [248945] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

ASSERTION FAILED: !s_isInvalidatingStyleWithRuleSets in com.apple.WebCore: WebCore::DocumentRuleSets::collectFeatures const
https://bugs.webkit.org/show_bug.cgi?id=200919
<rdar://problem/53413013>

Reviewed by Zalan Bujtas.

Bots show that in some timing-dependent cases we may end up constructing a style resolver in the middle the class change invalidation.

This happens flakily on Pad bots in

media/track/track-node-add-remove.html
media/W3C/video/events/event_loadstart_manual.html
media/W3C/video/readyState/readyState_initial.html

and also reproes locally with lots of runs over these tests.

  • style/StyleInvalidationFunctions.h:

(WebCore::Style::traverseRuleFeatures):

Ensure that for elements in shadow tree the host resolver is also always constructed before starting rule-based invalidation.

9:52 AM Changeset in webkit [248944] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION: naver.com - Multiple taps are required to open email
https://bugs.webkit.org/show_bug.cgi?id=200979
<rdar://problem/54295239>

Patch by Antoine Quint <Antoine Quint> on 2019-08-21
Reviewed by Dean Jackson.

The "click" events on subjects in the message list are prevented by preventDefault() being called from a "mouseup" event listener.
This shouldn't actually happen, but due to how simulated mouse events are implemented, there is no current distinction between
"touchend" and "mouseup" events. It is safe however to opt mail.naver.com out of simulated mouse events altogether.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

9:50 AM Changeset in webkit [248943] by Devin Rousso
  • 23 edits in trunk

Web Inspector: Page: re-add enable/disable after r248454
https://bugs.webkit.org/show_bug.cgi?id=200947

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

We shouldn't design the agent system with only Web Inspector in mind. Other clients may want
to have different functionality, not being told about frames creation/updates/destruction.
In these cases, we should have graceful error message failures for other agents that rely on
the Page agent.

  • inspector/protocol/Page.json:

Source/WebCore:

We shouldn't design the agent system with only Web Inspector in mind. Other clients may want
to have different functionality, not being told about frames creation/updates/destruction.
In these cases, we should have graceful error message failures for other agents that rely on
the Page agent.

  • inspector/agents/InspectorPageAgent.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
(WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorPageAgent::enable): Added.
(WebCore::InspectorPageAgent::disable): Added.

  • inspector/agents/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
(WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createStyleSheet):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):
(WebCore::InspectorDOMAgent::highlightFrame):
(WebCore::InspectorDOMAgent::buildObjectForNode):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::setFrameIdentifier):

  • inspector/agents/page/PageNetworkAgent.cpp:

(WebCore::PageNetworkAgent::loaderIdentifier):
(WebCore::PageNetworkAgent::frameIdentifier):
(WebCore::PageNetworkAgent::scriptExecutionContext):

  • inspector/agents/page/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):

Source/WebInspectorUI:

We shouldn't design the agent system with only Web Inspector in mind. Other clients may want
to have different functionality, not being told about frames creation/updates/destruction.
In these cases, we should have graceful error message failures for other agents that rely on
the Page agent.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.initializeTarget):

LayoutTests:

  • http/tests/inspector/page/loading-iframe-document-node.html:
  • inspector/css/getMatchedStylesForNode.html:
  • inspector/css/getMatchedStylesForNode-expected.txt:
  • inspector/page/archive.html:
  • inspector/page/frameScheduledNavigation.html:
  • inspector/page/frameScheduledNavigation-async-delegates.html:
  • inspector/page/frameStartedLoading.html:
  • inspector/page/media-query-list-listener-exception.html:
  • inspector/timeline/line-column.html:
8:15 AM Changeset in webkit [248942] by commit-queue@webkit.org
  • 6 edits
    5 adds in trunk

Verify Prefetch and credential behavior
https://bugs.webkit.org/show_bug.cgi?id=200000

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-21
Reviewed by Youenn Fablet.

Source/WebKit:

Cancel cross-origin prefetches for Vary: Cookie.

Test: http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):

  • NetworkProcess/cache/PrefetchCache.cpp:

(WebKit::PrefetchCache::take):

LayoutTests:

Add a test to verify that navigating to a prefetched main resource
that sets Vary: Cookie does send cookies.

  • http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie-expected.txt: Added.
  • http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html: Added.
  • http/wpt/prefetch/resources/main-resource-cross-origin-set-cookie.py: Added.

(main):

  • http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py: Added.

(main):

  • http/wpt/prefetch/resources/navigate-cross-origin-vary-cookie.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
7:39 AM Changeset in webkit [248941] by Pablo Saavedra
  • 4 edits in trunk/Source/WebKit

[WPE] Build failure after r248846 ([WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part)
https://bugs.webkit.org/show_bug.cgi?id=200973

WPE fails to build with -DENABLE_WPE_QT_API=ON after changes done by r248846 in:

Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp
Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.cpp

; to forces FastMalloc use.

Related to:

https://bugs.webkit.org/show_bug.cgi?id=200611
https://bugs.webkit.org/show_bug.cgi?id=200620

This patch puts WPEQt... classes into FastMalloc in the same way it
was done by many others in r248603.

Reviewed by Philippe Normand.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(WPEQtView::runJavaScript):

  • UIProcess/API/wpe/qt/WPEQtViewBackend.h:
  • UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h:
3:30 AM Changeset in webkit [248940] by Devin Rousso
  • 8 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Sources: increase the filter bar's width when it's focused if a resource type filter is active
https://bugs.webkit.org/show_bug.cgi?id=200940

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/FilterBar.js:

(WI.FilterBar.prototype._handleFilterChanged):
(WI.FilterBar.prototype.get indicatingProgress): Deleted.
(WI.FilterBar.prototype.set indicatingProgress): Deleted.
(WI.FilterBar.prototype.get indicatingActive): Deleted.
(WI.FilterBar.prototype.set indicatingActive): Deleted.
If escape is pressed when the <input> is empty, unfocus (blur) the <input>.
Drive-by: remove unused/unnecessary functions.

  • UserInterface/Views/FilterBar.css:

(.filter-bar > input[type="search"]):
(:matches(.filter-bar, .search-bar) > input[type="search"]): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"]:matches(:focus, :not(:placeholder-shown))): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"]::-webkit-search-decoration): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"]::-webkit-search-results-button): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"]::placeholder): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"]:matches(:not(:focus), :placeholder-shown)::-webkit-search-cancel-button): Added.
(:matches(.filter-bar, .search-bar) > .navigation-bar + input[type="search"]): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"]:focus): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"] + :empty): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"]:focus ~ *): Added.
(:matches(.filter-bar, .search-bar) > input[type="search"] + .navigation-bar > .item.scope-bar:last-child): Added.
(.filter-bar > input[type="search"] + .navigation-bar > .item.scope-bar:last-child): Deleted.
(.filter-bar > .navigation-bar + input[type="search"]): Deleted.
(.filter-bar > input[type="search"]::placeholder): Deleted.
(.filter-bar > input[type="search"]:focus): Deleted.
(.filter-bar > input[type="search"]::-webkit-search-decoration): Deleted.
(.filter-bar.active > input[type="search"]::-webkit-search-decoration): Deleted.
(.filter-bar.indicating-progress > input[type="search"]::-webkit-search-decoration): Deleted.
(.filter-bar > input[type="search"] + .navigation-bar:empty): Deleted.
When the <input> is :focus, hide the following WI.NavigationBar (if it's being used) so
that there's more room to show the filter text.
Drive-by: fix background, border, and text color styling when :focus.

  • UserInterface/Views/SearchBar.css:

(.search-bar > input[type="search"]):
(.search-bar > input[type="search"]::placeholder): Deleted.
(.search-bar > input[type="search"]:focus): Deleted.
(.search-bar > input[type="search"]:not(:placeholder-shown)): Deleted.
(.search-bar > input[type="search"]:placeholder-shown::-webkit-search-cancel-button): Deleted.
(@media (prefers-color-scheme: dark)): Deleted.
(:matches(.search-bar, .filter-bar) > input[type="search"],): Deleted.
(:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder): Deleted.
(:matches(.search-bar, .filter-bar) > input[type="search"]:focus): Deleted.

  • UserInterface/Views/SearchSidebarPanel.css:

(.sidebar > .panel.navigation.search > .search-bar):
(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
(.sidebar > .panel.navigation.search > .search-bar > .search-settings): Added.
(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]::-webkit-search-results-button): Deleted.

  • UserInterface/Views/Toolbar.css:

(.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container): Deleted.
Move shared styles to FilterBar.css as WI.FilterBar are more common.

  • UserInterface/Views/Variables.css:

(:root):
(@media (prefers-color-scheme: dark) :root):
Expose some CSS variables in light mode that were previously only defined in dark mode.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._updateURLFilterActiveIndicator): Deleted.

  • UserInterface/Images/FilterFieldActiveGlyph.svg: Removed.
3:17 AM Changeset in webkit [248939] by Joseph Pecoraro
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unnecessary properties on SVGs
https://bugs.webkit.org/show_bug.cgi?id=200968

Reviewed by Devin Rousso.

  • UserInterface/Images/EventPause.svg:
  • UserInterface/Images/EventPlay.svg:
  • UserInterface/Images/EventProcessing.svg:
  • UserInterface/Images/EventStop.svg:
  • UserInterface/Images/MediaInstrument.svg:

Aug 20, 2019:

11:30 PM Changeset in webkit [248938] by Justin Michaud
  • 8 edits
    12 adds in trunk

Identify memcpy loops in b3
https://bugs.webkit.org/show_bug.cgi?id=200181

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/memcpy-loop.js: Added.

(doTest):
(let.arr1):

  • microbenchmarks/memcpy-typed-loop-large.js: Added.

(doTest):
(let.arr1.new.Int32Array.1000000.let.arr2.new.Int32Array.1000000):
(arr2):

  • microbenchmarks/memcpy-typed-loop-small.js: Added.

(doTest):
(16.let.arr1.new.Int32Array.size.let.arr2.new.Int32Array.size):
(16.arr2):

  • microbenchmarks/memcpy-typed-loop-speculative.js: Added.

(doTest):
(let.arr1.new.Int32Array.10.let.arr2.new.Int32Array.10):
(arr2):

  • microbenchmarks/memcpy-wasm-large.js: Added.

(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):

  • microbenchmarks/memcpy-wasm-medium.js: Added.

(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):

  • microbenchmarks/memcpy-wasm-small.js: Added.

(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):

  • microbenchmarks/memcpy-wasm.js: Added.

(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):

  • stress/memcpy-typed-loops.js: Added.

(noLoop):
(invalidStart):
(const.size.10.let.arr1.new.Int32Array.size.let.arr2.new.Int32Array.size):
(arr2):

  • wasm/function-tests/memcpy-wasm-loop.js: Added.

(0.GetLocal.3.I32Const.1.I32Add.SetLocal.3.Br.1.End.End.End.WebAssembly):
(string_appeared_here):

Source/JavaScriptCore:

Add a new pass in B3 to identify one type of forward byte copy loop and replace it with a call to a custom version of memcpy
that will not cause GC tearing and have the correct behaviour when overlapping regions are passed in.

Microbenchmarks show memcpy-typed-loop-large is about 6x faster, and everything else is neutral. The optimization is disabled
on arm for now, until we add a memcpy implementation for it.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • b3/B3ReduceLoopStrength.cpp: Added.

(JSC::B3::fastForwardCopy32):
(JSC::B3::ReduceLoopStrength::AddrInfo::appendAddr):
(JSC::B3::ReduceLoopStrength::ReduceLoopStrength):
(JSC::B3::ReduceLoopStrength::reduceByteCopyLoopsToMemcpy):
(JSC::B3::ReduceLoopStrength::hoistValue):
(JSC::B3::ReduceLoopStrength::run):
(JSC::B3::reduceLoopStrength):

  • b3/B3ReduceLoopStrength.h: Added.
  • b3/testb3.h:
  • b3/testb3_1.cpp:

(run):

  • b3/testb3_8.cpp:

(testFastForwardCopy32):
(testByteCopyLoop):
(testByteCopyLoopStartIsLoopDependent):
(testByteCopyLoopBoundIsLoopDependent):
(addCopyTests):

11:00 PM Changeset in webkit [248937] by bshafiei@apple.com
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r248928. rdar://problem/54543351

[iOS] REGRESSION (248501): gmail.com images are still not shown on some versions of iPhone iOS13
https://bugs.webkit.org/show_bug.cgi?id=200948

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-20
Reviewed by Tim Horton.

Apply the gmail.com quirk for all iPhone iOS versions till the gmail.com
bug is fixed.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformUserAgent const):

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

11:00 PM Changeset in webkit [248936] by bshafiei@apple.com
  • 3 edits
    4 adds in branches/safari-608-branch

Cherry-pick r248909. rdar://problem/54543354

Clicking the search icon on ae.com hangs the web content process
https://bugs.webkit.org/show_bug.cgi?id=200889
<rdar://problem/54359330>

Reviewed by Ryosuke Niwa.

Source/WebCore:

The hang occurs under FrameSelection::selectionAtSentenceStart, while computing an EditorState to send to the UI
process. This act of determining whether the given positon is at the start of sentence entails moving backwards
from the start of the current visible selection until the start of a paragraph or sentence is found, using
VisiblePosition::previous to iterate backwards through VisiblePositions.

However, on this website, VisiblePosition::previous ends up just returning the current position, and we loop
infinitely as a result because we never actually move backwards. This happens because VisiblePosition::previous
first uses previousVisuallyDistinctCandidate to find a candidate Position before the current position, but when
the position is canonicalized to create a VisiblePosition, it is moved back to its original Position as the deep
equivalent.

In the attached test case (which is representative of the relevant part of the DOM on ae.com), we try to find
the previous VisiblePosition from (#c, 0). The previous visually distinct candidate we initially find is
(#b, 0), since:

  1. The enclosing renderer is a RenderBlock with a non-zero height.
  2. The enclosing renderer has no rendered children.
  3. The position is at the first editing position in the node (i.e. the span element).

However, when canonicalizing the position, we find that neither the upstream nor the downstream position is a
candidate because both the upstream and downstream nodes end up well outside of the span (the upstream node ends
up being at the start of the body element, and the downstream position ends up right before the start of #c's
container). The downstream position is at the end of a text node with a leading newline, it's not a candidate
because its last caret offset is less than the length of the text node.

As a result, even though the given position (#b, 0) is a candidate itself, its downstream and upstream positions
are not. Thus, VisiblePosition::canonicalPosition expands the scope of its candidate positions to the next
closest candidate positions; the next candidate position is (#c, 0). Both of these candidates are outside of the
containing block, so we (somewhat arbitrarily) break the tie by choosing the next visible position, bringing us
back to (#c, 0).

There are several ways to fix this, one of which involves fixing the downstream/upstream positions of (#b, 0) so
that they no longer jump out of the containing block of #b and cause (#b, 0) to be an invalid visible position
despite being a candidate position. This can be achieved by adjusting the heuristic in
endsOfNodeAreVisuallyDistinctPositions (used when moving upstream or downstream). Currently, this helper
function returns false for #b because they contain a single (non-rendered) whitespace character. Removing this
extraneous whitespace character actually causes the problem to stop reproducing, since #b and #c no longer
contain any child nodes. This is important because the heuristic in Position::downstream attempts to keep the
downstream position within the confines of the enclosing visual boundary, which (currently) ends up being the
entire body element because endsOfNodeAreVisuallyDistinctPositions returns false for #b.

To avoid this scenario, we teach endsOfNodeAreVisuallyDistinctPositions to treat inline-block containers that
are empty (that is, contain no rendered content) but may have children for editing in the same way as inline-
block containers that don't have any children; in both scenarios, they may contain a candidate position, so we
should treat the ends of the container node as being visually distinct.

Doing so causes the downstream position of (#b, 0) to be kept within the immediate containing span element,
which then allows (#b, 0) to be a canonical VisiblePosition.

Tests: fast/events/focus-anchor-with-tabindex-hang.html

editing/selection/modify-backward-inline-block-containers.html

  • editing/VisiblePosition.cpp: (WebCore::VisiblePosition::previous const):

LayoutTests:

  • editing/selection/modify-backward-inline-block-containers-expected.txt: Added.
  • editing/selection/modify-backward-inline-block-containers.html: Added.

Add a layout test to ensure that the selection may be moved through empty inline-block containers that span the
width of the page.

  • fast/events/focus-anchor-with-tabindex-hang-expected.txt: Added.
  • fast/events/focus-anchor-with-tabindex-hang.html: Added.

Add a layout test to ensure that clicking an empty span under a focusable anchor element moves focus to the
anchor element instead of hanging the web content process or hitting a debug assertion.

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

10:59 PM Changeset in webkit [248935] by bshafiei@apple.com
  • 8 edits in branches/safari-608-branch/Source

Cherry-pick r248902. rdar://problem/54543355

Unsafe usage of CookieStorageObserver from a background thread
https://bugs.webkit.org/show_bug.cgi?id=200920

Reviewed by Alex Christensen.

Source/WebCore:

Unsafe usage of CookieStorageObserver from a background thread. CookieStorageObserver gets
constructed / destructed on the main thread. However, CookieStorageObserver::cookiesDidChange()
gets called on a background thread and tries to ref |this|. Even though CookieStorageObserver
is ThreadSafeRefCounted, this is still unsafe because the CookieStorageObserver destructor may
already be running on the main thread when CookieStorageObserver::cookiesDidChange() gets called
on the background thread.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/CookieStorageObserver.h:
  • platform/network/cocoa/CookieStorageObserver.mm: (WebCore::CookieStorageObserver::CookieStorageObserver): (WebCore::CookieStorageObserver::cookiesDidChange): (WebCore::CookieStorageObserver::create): Deleted.
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::NetworkStorageSession::cookieStorageObserver const):

Source/WebKit:

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm: (API::HTTPCookieStore::startObservingChangesToDefaultUIProcessCookieStore):

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

10:59 PM Changeset in webkit [248934] by bshafiei@apple.com
  • 3 edits in branches/safari-608-branch/Source/WebInspectorUI

Cherry-pick r247867. rdar://problem/54543378

Web Inspector: AXI: Audit: Typo of "some" as "somee"
https://bugs.webkit.org/show_bug.cgi?id=200166

Patch by Greg Doolittle <gr3g@apple.com> on 2019-07-26
Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/AuditManager.js: (WI.AuditManager.prototype._addDefaultTests): (WI.AuditManager):

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

10:25 PM Changeset in webkit [248933] by Devin Rousso
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, speculative build fix for High Sierra after r248925

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::HeapHolderFinder::dump):

6:41 PM Changeset in webkit [248932] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

nextElementWithGreaterTabIndex should use shadowAdjustedTabIndex
https://bugs.webkit.org/show_bug.cgi?id=200943

Reviewed by Wenson Hsieh.

Use shadowAdjustedTabIndex instead of tabIndexForElement in nextElementWithGreaterTabIndex.

Because nextElementWithGreaterTabIndex is only called to find an element with a tab index
set to a greater value than the argument tabIndex, which is always a positive integer,
whether we call shadowAdjustedTabIndex or tabIndexForElement has no effect on an element
with a shadow root or on a slot element. Furthermore, none of the elements with
an isKeyboardFocusable override can have a author defined shadow root attached either.

As a result, this refactoring will have no observable behavioral change.

No new tests since there should be no observable behavior change.

  • page/FocusController.cpp:

(WebCore::tabIndexForElement): Merged into shadowAdjustedTabIndex.
(WebCore::shadowAdjustedTabIndex):
(WebCore::nextElementWithGreaterTabIndex):

6:39 PM Changeset in webkit [248931] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove MathMLElement::defaultTabIndex()
https://bugs.webkit.org/show_bug.cgi?id=200944

Reviewed by Frédéric Wang.

Removed MathMLElement::defaultTabIndex since it doesn't have any observable effect since
MathMLElement doesn't expose tabIndex IDL attribute, and sequential (tab key) focus navigation
checks MathMLElement::isKeyboardFocusable, which doesn't rely on defaultTabIndex, anyway.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::defaultTabIndex const): Deleted.

  • mathml/MathMLElement.h:
6:36 PM Changeset in webkit [248930] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Make it easier to pass pointers to WTFCrashWithInfo.
https://bugs.webkit.org/show_bug.cgi?id=200960

Reviewed by Saam Barati and Yusuke Suzuki.

Now, we don't have to explicitly cast them to uint64_ts first. The template
wrappers will take care of it for us.

  • wtf/Assertions.h:

(wtfCrashArg):
(WTFCrashWithInfo):
(WTF::isIntegralOrPointerType):
(WTF::isIntegralType): Deleted.

6:13 PM Changeset in webkit [248929] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Remove superfluous size argument to allocateCell() for fixed size objects.
https://bugs.webkit.org/show_bug.cgi?id=200958

Reviewed by Yusuke Suzuki.

The size is already automatically computed by the allocateCell() template's default
arguments. Removing these superfluous arguments will make it easier for us to
grep for cases where we do allocate variable size cells (for later analysis work).

  • jsc.cpp:

(JSC::Masquerader::create):
(JSCMemoryFootprint::create):

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVMCallFrame::create):
(JSC::Element::create):
(JSC::Root::create):
(JSC::SimpleObject::create):
(JSC::ImpureGetter::create):
(JSC::CustomGetter::create):
(JSC::DOMJITNode::create):
(JSC::DOMJITGetter::create):
(JSC::DOMJITGetterComplex::create):
(JSC::DOMJITFunctionObject::create):
(JSC::DOMJITCheckSubClassObject::create):
(JSC::DOMJITGetterBaseJSObject::create):
(JSC::JSTestCustomGetterSetter::create):
(JSC::WasmStreamingParser::create):

5:54 PM Changeset in webkit [248928] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS] REGRESSION (248501): gmail.com images are still not shown on some versions of iPhone iOS13
https://bugs.webkit.org/show_bug.cgi?id=200948

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-20
Reviewed by Tim Horton.

Apply the gmail.com quirk for all iPhone iOS versions till the gmail.com
bug is fixed.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformUserAgent const):

5:39 PM Changeset in webkit [248927] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSBigInt::m_length should be immutable.
https://bugs.webkit.org/show_bug.cgi?id=200956

Reviewed by Yusuke Suzuki.

This is because the JSBigInt cell size is allocated with that length. Changing
the length after construction does not change the size of the cell, and hence,
makes no sense.

This patch removes the setLength() method, and decorates the m_length field with
const to enforce that it is immutable after construction.

  • runtime/JSBigInt.h:
5:26 PM Changeset in webkit [248926] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[results.webkit.org Webkit.css] Add right sidebar
https://bugs.webkit.org/show_bug.cgi?id=200946

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(@media screen and (min-width: 600px) and (orientation: landscape)):
(.main.left):
(@media screen and (min-width: 768px) and (orientation: landscape)):
(.sidebar.right):

5:24 PM Changeset in webkit [248925] by Devin Rousso
  • 165 edits
    1 copy
    2 adds in trunk

Web Inspector: Implement queryHolders Command Line API
https://bugs.webkit.org/show_bug.cgi?id=200458

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Call queryHolders(object) from the Console to return an array of objects that strongly
reference the given object. This could be very useful for finding JavaScript "leaks".

  • inspector/InjectedScriptSource.js:

(queryHolders): Added.

  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::HeapHolderFinder::HeapHolderFinder): Added.
(Inspector::HeapHolderFinder::holders): Added.
(Inspector::HeapHolderFinder::analyzeEdge): Added.
(Inspector::HeapHolderFinder::analyzePropertyNameEdge): Added.
(Inspector::HeapHolderFinder::analyzeVariableNameEdge): Added.
(Inspector::HeapHolderFinder::analyzeIndexEdge): Added.
(Inspector::HeapHolderFinder::analyzeNode): Added.
(Inspector::HeapHolderFinder::setOpaqueRootReachabilityReasonForCell): Added.
(Inspector::HeapHolderFinder::setWrappedObjectForCell): Added.
(Inspector::HeapHolderFinder::setLabelForCell): Added.
(Inspector::HeapHolderFinder::dump): Added.
(Inspector::JSInjectedScriptHost::queryHolders): Added.

  • inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::jsInjectedScriptHostPrototypeFunctionQueryHolders): Added.

  • heap/HeapAnalyzer.h: Added.

Create an abstract base class for analyzing the Heap during a GC. Rather than create an
entire HeapSnapshot for queryHolders, the HeapHolderFinder can just walk the Heap and
only save the information it needs to determine the holders of the given object.

  • heap/Heap.h:
  • heap/Heap.cpp:

(JSC::Heap::isAnalyzingHeap const): Added.
(JSC::GatherExtraHeapData::GatherExtraHeapData): Added.
(JSC::GatherExtraHeapData::operator() const): Added.
(JSC::Heap::gatherExtraHeapData): Added.
(JSC::Heap::didFinishCollection): Added.
(JSC::Heap::isHeapSnapshotting const): Deleted.
(JSC::GatherHeapSnapshotData::GatherHeapSnapshotData): Deleted.
(JSC::GatherHeapSnapshotData::operator() const): Deleted.
(JSC::Heap::gatherExtraHeapSnapshotData): Deleted.

  • heap/SlotVisitor.h:

(JSC::SlotVisitor::isAnalyzingHeap const): Added.
(JSC::SlotVisitor::heapAnalyzer const): Added.
(JSC::SlotVisitor::isBuildingHeapSnapshot const): Deleted.
(JSC::SlotVisitor::heapSnapshotBuilder const): Deleted.

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::didStartMarking):
(JSC::SlotVisitor::reset):
(JSC::SlotVisitor::appendSlow):
(JSC::SlotVisitor::visitChildren):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::appendUnbarriered):

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::specializedVisit):

  • runtime/Structure.cpp:

(JSC::Structure::visitChildren):
Rename HeapAnalyzer functions to be less specific to building a HeapSnapshot.

  • heap/HeapProfiler.h:

(JSC::HeapProfiler::activeHeapAnalyzer const): Added.
(JSC::HeapProfiler::activeSnapshotBuilder const): Deleted.

  • heap/HeapProfiler.cpp:

(JSC::HeapProfiler::setActiveHeapAnalyzer): Added.
(JSC::HeapProfiler::setActiveSnapshotBuilder): Deleted.

  • heap/HeapSnapshotBuilder.h:
  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::HeapSnapshotBuilder):
(JSC::HeapSnapshotBuilder::buildSnapshot):
(JSC::HeapSnapshotBuilder::analyzeNode): Added.
(JSC::HeapSnapshotBuilder::analyzeEdge): Added.
(JSC::HeapSnapshotBuilder::analyzePropertyNameEdge): Added.
(JSC::HeapSnapshotBuilder::analyzeVariableNameEdge): Added.
(JSC::HeapSnapshotBuilder::analyzeIndexEdge): Added.
(JSC::HeapSnapshotBuilder::appendNode): Deleted.
(JSC::HeapSnapshotBuilder::appendEdge): Deleted.
(JSC::HeapSnapshotBuilder::appendPropertyNameEdge): Deleted.
(JSC::HeapSnapshotBuilder::appendVariableNameEdge): Deleted.
(JSC::HeapSnapshotBuilder::appendIndexEdge): Deleted.

  • inspector/InjectedScriptManager.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:
  • runtime/ClassInfo.h:
  • runtime/JSCell.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::analyzeHeap): Added.
(JSC::JSCell::heapSnapshot): Deleted.

  • runtime/JSLexicalEnvironment.h:
  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::analyzeHeap): Added.
(JSC::JSLexicalEnvironment::heapSnapshot): Deleted.

  • runtime/JSObject.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::analyzeHeap): Added.
(JSC::JSObject::heapSnapshot): Deleted.

  • runtime/JSSegmentedVariableObject.h:
  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::analyzeHeap): Added.
(JSC::JSSegmentedVariableObject::heapSnapshot): Deleted.
Rename heapSnapshot to analyzeHeap.

Source/WebCore:

Call queryHolders(object) from the Console to return an array of objects that strongly
reference the given object. This could be very useful for finding JavaScript "leaks".

Test: inspector/console/queryHolders.html

  • inspector/CommandLineAPIModuleSource.js:

(CommandLineAPIImpl.prototype.queryHolders): Added.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/js/DOMGCOutputConstraint.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::analyzeHeap): Added.
(WebCore::JSDOMWindow::heapSnapshot): Deleted.

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::analyzeHeap): Added.
(WebCore::JSDocument::heapSnapshot): Deleted.

  • bindings/scripts/test/JS/*:

Rename heapSnapshot to analyzeHeap to match JavaScriptCore changes.

Source/WebInspectorUI:

Call queryHolders(object) from the Console to return an array of objects that strongly
reference the given object. This could be very useful for finding JavaScript "leaks".

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

LayoutTests:

  • inspector/console/queryHolders.html: Added.
  • inspector/console/queryHolders-expected.txt: Added.
  • http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
5:10 PM Changeset in webkit [248924] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

Revert the unintended test change in r248914.

  • web-platform-tests/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html:
4:47 PM Changeset in webkit [248923] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Address a few Esprima issues preventing pretty printing of resources
https://bugs.webkit.org/show_bug.cgi?id=200935

Reviewed by Timothy Hatcher.

Address a few Esprima issues:

Issue #1991 - Failure to parse template literal with destructuring assignment expression
https://github.com/jquery/esprima/issues/1991

Issue #1920 - Invalid Left Hand Side in for-in
https://github.com/jquery/esprima/issues/1920

  • UserInterface/External/Esprima/esprima.js:
4:44 PM Changeset in webkit [248922] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Update CodeMirror to support numeric separators in JavaScript numbers
https://bugs.webkit.org/show_bug.cgi?id=200942

Cherry-pick a few CodeMirror changes:

[javascript mode] Support numeric separators
https://github.com/codemirror/CodeMirror/commit/beab8ed123683416bfec934df73d13401ec086b5#diff-9812850bb71d31e8dd60b476abb2bae8

[javascript mode] fix tokenizing of underscore properties
https://github.com/codemirror/CodeMirror/commit/463ea2c34ab442c0cae1d9732305219ca9b04dfe#diff-9812850bb71d31e8dd60b476abb2bae8

Reviewed by Timothy Hatcher.

  • UserInterface/External/CodeMirror/javascript.js:
4:13 PM Changeset in webkit [248921] by Adrian Perez de Castro
  • 6 edits
    1 add in releases/WebKitGTK/webkit-2.24

Merged r248410 - Do not allow navigations of frames about to get replaced by the result of evaluating javascript: URLs
<rdar://problem/53788893> and https://bugs.webkit.org/show_bug.cgi?id=198786

Reviewed by Geoff Garen.

Source/WebCore:

Covered by API Test

Add a "willReplaceWithResultOfExecutingJavascriptURL" flag which is respected inside FrameLoader::isNavigationAllowed

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL):

  • bindings/js/ScriptController.h:

(WebCore::ScriptController::willReplaceWithResultOfExecutingJavascriptURL const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::isNavigationAllowed const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/JavascriptURLNavigation.mm: Added.
4:11 PM Changeset in webkit [248920] by sbarati@apple.com
  • 3 edits
    2 adds in trunk

[WHLSL] We need to null check when emitting native code for operator&.<field-name>
https://bugs.webkit.org/show_bug.cgi?id=200846

Reviewed by Myles C. Maxfield.

Source/WebCore:

Test: webgpu/whlsl/structure-field-access-on-null.html

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::inlineNativeFunction):

LayoutTests:

  • webgpu/whlsl/structure-field-access-on-null-expected.txt: Added.
  • webgpu/whlsl/structure-field-access-on-null.html: Added.
3:35 PM Changeset in webkit [248919] by Justin Michaud
  • 2 edits in trunk/Source/JavaScriptCore

[WASM-References] Enable by default
https://bugs.webkit.org/show_bug.cgi?id=200931

Reviewed by Saam Barati.

  • runtime/Options.h:
3:18 PM Changeset in webkit [248918] by Chris Dumez
  • 5 edits in trunk/Source

WebSQLiteDatabaseTracker does not ensure it is still alive after dispatching to the main thread
https://bugs.webkit.org/show_bug.cgi?id=200925

Reviewed by Geoffrey Garen.

WebSQLiteDatabaseTracker does not ensure it is still alive after dispatching to the main thread,
which is not safe. Use WeakPtr to address the issue.

  • Shared/WebSQLiteDatabaseTracker.cpp:

(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction):
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction):

  • Shared/WebSQLiteDatabaseTracker.h:
2:33 PM Changeset in webkit [248917] by russell_e@apple.com
  • 4 edits in trunk/LayoutTests

Updating Expectations for Multiple Newly Passing Tests.

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
2:11 PM Changeset in webkit [248916] by Devin Rousso
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: move the resource type scope bar to be next to the filter
https://bugs.webkit.org/show_bug.cgi?id=200891

Reviewed by Joseph Pecoraro.

It's odd to have UI for controlling the active filters in two different places. Move the
resource type WI.ScopeBar to the filter bar area, and "promote" the resource grouping mode
items from a context menu to an always visible WI.ScopeBar in the space left by the
resource type WI.ScopeBar (switching between grouping modes quickly is a useful workflow).

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.hasCustomFilters):
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeScopeBarSelectionChanged): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged):
(WI.SourcesNavigationSidebarPanel.prototype._populateResourceGroupingModeContextMenu.addOption): Deleted.
(WI.SourcesNavigationSidebarPanel.prototype._populateResourceGroupingModeContextMenu): Deleted.

  • UserInterface/Views/SourcesNavigationSidebarPanel.css:

(.sidebar > .panel.navigation.sources > .filter-bar .sources-resource-type-scope-bar.default-item-selected:not(:hover)): Added.
(.sidebar > .panel.navigation.sources > .filter-bar .sources-resource-type-scope-bar.default-item-selected:hover): Added.

  • UserInterface/Views/FilterBar.js:

(WI.FilterBar.prototype.addFilterNavigationItem): Added.
(WI.FilterBar.prototype.addFilterBarButton):

  • UserInterface/Views/FilterBar.css:

(.filter-bar > .navigation-bar > .item):
(.filter-bar > .navigation-bar > .item.button): Added.
(.filter-bar > .navigation-bar > .item.scope-bar): Added.
(.filter-bar > input[type="search"] + .navigation-bar > .item.scope-bar:last-child): Added.
Provide a way to add arbitrary WI.NavigationItem to the contained WI.NavigationBar.
Slightly adjust the spacing of the items (depending on their type) in the WI.NavigationBar
so they are all centered.

  • UserInterface/Views/ScopeBar.css:

(.scope-bar):
(.scope-bar > li):
(.scope-bar > li::after):
(.scope-bar > li:not(.selected):hover): Added.
(body[dir=ltr] .scope-bar > li.multiple > select):
(body[dir=rtl] .scope-bar > li.multiple > select):
(.scope-bar > li:not(.selected):hover::after): Added.
Introduce CSS variables for margin, padding, and opacity that callers can override to
customize the appearance of the WI.ScopeBar.

  • Localizations/en.lproj/localizedStrings.js:
1:40 PM Changeset in webkit [248915] by Justin Fan
  • 2 edits in trunk/Source/WebCore

Unreviewed comment follow-up for https://bugs.webkit.org/show_bug.cgi?id=200752.

  • html/canvas/GPUBasedCanvasRenderingContext.h:
12:59 PM Changeset in webkit [248914] by rniwa@webkit.org
  • 17 edits in trunk

The default tab index of output and fieldset should be -1
https://bugs.webkit.org/show_bug.cgi?id=200834

Reviewed by Alex Christensen.

Source/WebCore:

This patch updates the default tab index of output and fieldset to -1 to match the behavior of
Chrome and Firefox as well as the latest HTML specification:
https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute

To do that, this patch replaces HTMLFormControlElement::defaultTabIndex with defaultTabIndex
implementation in each one of its concrete subclass such as HTMLButtonElement to mirror
the language of the specification as follows:

HTMLFormControlElement

HTMLButtonElement -> 0
HTMLFieldSetElement -> -1
HTMLFormControlElementWithState

HTMLKeygenElement -> 0 - Not specified anywhere but preserving the existing behavior.
HTMLSelectElement -> 0
HTMLTextFormControlElement

HTMLInputElement -> 0
HTMLTextAreaElement -> 0

HTMLOutputElement -> -1

Even though Element::shouldBeIgnoredInSequentialFocusNavigation() checks the value of
defaultTabIndex, this patch does not affect the actual sequential (tab) focus navigation:
Beacuse HTMLOutputElement and HTMLFieldSetElement have supportsFocus overrides to call
HTMLElement::supportsFocus instead of HTMLFormControlElement::supportsFocus, these two
elements are focusable only when tabindex is set or it's a root content editable element.
But all root editable elements are focusable anyway and the default tab index does not
matter when tabindex is set.

Test: fast/dom/tabindex-defaults.html

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultTabIndex const): Added.

  • html/HTMLButtonElement.h:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::defaultTabIndex const): Deleted.

  • html/HTMLFormControlElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::defaultTabIndex const): Added.

  • html/HTMLKeygenElement.h:
  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::defaultTabIndex const): Added.

  • html/HTMLKeygenElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::defaultTabIndex const): Added.

  • html/HTMLSelectElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::defaultTabIndex const): Added.

  • html/HTMLTextAreaElement.h:

LayoutTests:

Added test cases for output, fieldset, and keygen.

  • fast/dom/tabindex-defaults-expected.txt:
  • fast/dom/tabindex-defaults.html:
12:45 PM Changeset in webkit [248913] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed. Followup to r248903. It's not valid to remove
hasOverflowed() checks from appendCharacters.

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendCharacters):

12:17 PM Changeset in webkit [248912] by Joseph Pecoraro
  • 4 edits
    1 copy
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Sources: Give Origins their own icon in the Sources sidebar
https://bugs.webkit.org/show_bug.cgi?id=200683
<rdar://problem/54269044>

Reviewed by Devin Rousso.

  • UserInterface/Images/Origin.svg: Added.
  • UserInterface/Main.html:

New resources.

  • UserInterface/Views/FolderIcon.css:

(.origin-icon .icon):
Light and Dark appearances for Origin icons.

(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/OriginTreeElement.js:

(WI.OriginTreeElement):
Very much like a folder with different classes.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements):
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged):
Use OriginTreeElement in a few places.

11:58 AM Changeset in webkit [248911] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[ContentChangeObserver] isConsideredClickable should be able to process elements with no renderers
https://bugs.webkit.org/show_bug.cgi?id=200926
<rdar://problem/54519579>

Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes the crash when the visible->hidden change triggers an isConsideredClickable() call with a 'display: none' element.

Test: fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden-crash.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::isConsideredClickable):

LayoutTests:

  • fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden-crash-expected.txt: Added.
  • fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden-crash.html: Added.
11:55 AM Changeset in webkit [248910] by Jonathan Bedard
  • 6 edits
    2 adds in trunk/Tools

results.webkit.org: Add ToolTips
https://bugs.webkit.org/show_bug.cgi?id=200801

Rubber-stamped by Aakash Jain.

When dots or scale labels are hovered over, we should display a tool tip with additional information about
The specific element.

  • resultsdbpy/resultsdbpy/view/static/css/tooltip.css: Added.

(.tooltip): Add class for ToolTip text box.
(.tooltip-arrow-up): Add class for ToolTip arrow pointing up.
(.tooltip-arrow-down): Add class for ToolTip arrow pointing down.

  • resultsdbpy/resultsdbpy/view/static/js/commit.js:

(_CommitBank.prototype.commitsDuringUuid): Return a list of commits which were the trunk of their respective
repositories at a given time.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(xAxisFromScale): Add callbacks triggered when the mouse enters or leaves elements in the scale canvas.
(TimelineFromEndpoint.render): Add callbacks triggered when the mouse enters or leaves dot elements.

  • resultsdbpy/resultsdbpy/view/static/js/tooltip.js: Added.

(isPointInElement): Given an element and a point, return true if that point is within the bounds of the element.
(_ToolTip):
(_ToolTip.prototype.set): Set the content and location of the ToolTip.
(_ToolTip.prototype.toString): Return the html needed to render the ToolTip.
(_ToolTip.prototype.unset): Clear and hide the ToolTip.
(_ToolTip.prototype.isIn): Check if a given point is contained within the ToolTip.

  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

(Timeline.CanvasSeriesComponent): Convert onHover events to onEnter/onLeave events. Add toolTips points to both
dot and scale elements.

  • resultsdbpy/resultsdbpy/view/templates/search.html: Add ToolTip.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Ditto.
11:46 AM Changeset in webkit [248909] by Wenson Hsieh
  • 3 edits
    4 adds in trunk

Clicking the search icon on ae.com hangs the web content process
https://bugs.webkit.org/show_bug.cgi?id=200889
<rdar://problem/54359330>

Reviewed by Ryosuke Niwa.

Source/WebCore:

The hang occurs under FrameSelection::selectionAtSentenceStart, while computing an EditorState to send to the UI
process. This act of determining whether the given positon is at the start of sentence entails moving backwards
from the start of the current visible selection until the start of a paragraph or sentence is found, using
VisiblePosition::previous to iterate backwards through VisiblePositions.

However, on this website, VisiblePosition::previous ends up just returning the current position, and we loop
infinitely as a result because we never actually move backwards. This happens because VisiblePosition::previous
first uses previousVisuallyDistinctCandidate to find a candidate Position before the current position, but when
the position is canonicalized to create a VisiblePosition, it is moved back to its original Position as the deep
equivalent.

In the attached test case (which is representative of the relevant part of the DOM on ae.com), we try to find
the previous VisiblePosition from (#c, 0). The previous visually distinct candidate we initially find is
(#b, 0), since:

  1. The enclosing renderer is a RenderBlock with a non-zero height.
  2. The enclosing renderer has no rendered children.
  3. The position is at the first editing position in the node (i.e. the span element).

However, when canonicalizing the position, we find that neither the upstream nor the downstream position is a
candidate because both the upstream and downstream nodes end up well outside of the span (the upstream node ends
up being at the start of the body element, and the downstream position ends up right before the start of #c's
container). The downstream position is at the end of a text node with a leading newline, it's not a candidate
because its last caret offset is less than the length of the text node.

As a result, even though the given position (#b, 0) is a candidate itself, its downstream and upstream positions
are not. Thus, VisiblePosition::canonicalPosition expands the scope of its candidate positions to the next
closest candidate positions; the next candidate position is (#c, 0). Both of these candidates are outside of the
containing block, so we (somewhat arbitrarily) break the tie by choosing the next visible position, bringing us
back to (#c, 0).

There are several ways to fix this, one of which involves fixing the downstream/upstream positions of (#b, 0) so
that they no longer jump out of the containing block of #b and cause (#b, 0) to be an invalid visible position
despite being a candidate position. This can be achieved by adjusting the heuristic in
endsOfNodeAreVisuallyDistinctPositions (used when moving upstream or downstream). Currently, this helper
function returns false for #b because they contain a single (non-rendered) whitespace character. Removing this
extraneous whitespace character actually causes the problem to stop reproducing, since #b and #c no longer
contain any child nodes. This is important because the heuristic in Position::downstream attempts to keep the
downstream position within the confines of the enclosing visual boundary, which (currently) ends up being the
entire body element because endsOfNodeAreVisuallyDistinctPositions returns false for #b.

To avoid this scenario, we teach endsOfNodeAreVisuallyDistinctPositions to treat inline-block containers that
are empty (that is, contain no rendered content) but may have children for editing in the same way as inline-
block containers that don't have any children; in both scenarios, they may contain a candidate position, so we
should treat the ends of the container node as being visually distinct.

Doing so causes the downstream position of (#b, 0) to be kept within the immediate containing span element,
which then allows (#b, 0) to be a canonical VisiblePosition.

Tests: fast/events/focus-anchor-with-tabindex-hang.html

editing/selection/modify-backward-inline-block-containers.html

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::previous const):

LayoutTests:

  • editing/selection/modify-backward-inline-block-containers-expected.txt: Added.
  • editing/selection/modify-backward-inline-block-containers.html: Added.

Add a layout test to ensure that the selection may be moved through empty inline-block containers that span the
width of the page.

  • fast/events/focus-anchor-with-tabindex-hang-expected.txt: Added.
  • fast/events/focus-anchor-with-tabindex-hang.html: Added.

Add a layout test to ensure that clicking an empty span under a focusable anchor element moves focus to the
anchor element instead of hanging the web content process or hitting a debug assertion.

10:54 AM Changeset in webkit [248908] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Web Inspector: Support for JavaScript BigInt
https://bugs.webkit.org/show_bug.cgi?id=180731

Unreviewed test gardening.

  • inspector/timeline/line-column-expected.txt: Rebaseline test.
10:50 AM Changeset in webkit [248907] by Brent Fulgham
  • 16 edits in trunk/Source

[FTW] Fix scrolling in modern WebKit views
https://bugs.webkit.org/show_bug.cgi?id=200923

Reviewed by Don Olmstead.

The initial implementation of scrolling in Direct2D had errors that
caused hilarious rendering glitches. This patch corrects the logic
so that page scroll is correct.
Source/WebCore:

  • platform/graphics/win/BackingStoreBackendDirect2D.h:
  • platform/graphics/win/BackingStoreBackendDirect2DImpl.cpp:

(WebCore::BackingStoreBackendDirect2DImpl::scroll):
(WebCore::BackingStoreBackendDirect2DImpl::bitmapBrush):

  • platform/graphics/win/BackingStoreBackendDirect2DImpl.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawNativeImage):

  • platform/graphics/win/Direct2DUtilities.cpp:

(WebCore::Direct2D::copyRectFromOneSurfaceToAnother):
(WebCore::Direct2D::writeImageToDiskAsPNG): Added diagnostic utility to
dump textures to disk for review.

  • platform/graphics/win/Direct2DUtilities.h:
  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoderDirect2D::systemImagingFactory): Switch to more
recent factory with additional features.

  • platform/graphics/win/ImageDecoderDirect2D.h:

Source/WebKit:

This patch also fixes a bug that would trigger when resizing windows.

  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::paint):

  • UIProcess/BackingStore.h:

(WebKit::BackingStore::renderTarget): Deleted.

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:

(WebKit::DrawingAreaProxyCoordinatedGraphics::sizeDidChange):
(WebKit::DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange):

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h:
  • UIProcess/win/BackingStoreDirect2D.cpp:

(WebKit::BackingStore::paint):
(WebKit::BackingStore::incorporateUpdate):
(WebKit::BackingStore::scroll):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::paint):
(WebKit::WebView::onSizeEvent):

10:37 AM Changeset in webkit [248906] by ysuzuki@apple.com
  • 8 edits
    1 add in trunk

[JSC] Array.prototype.toString should not get "join" function each time
https://bugs.webkit.org/show_bug.cgi?id=200905

Reviewed by Mark Lam.

JSTests:

  • stress/array-prototype-join-change.js: Added.

(shouldBe):
(array2.join):
(DerivedArray):
(DerivedArray.prototype.join):
(array3.proto.join):
(Array.prototype.join):

Source/JavaScriptCore:

We avoid looking up join every time Array#toString is called. This patch implements the most profitable and easy
case first as we are doing optimization for Array#slice: non-modified original Array. Configuring watchpoint for
Array.prototype.join change and use this information and structure information to determine whether join lookup
in Array.prototype.toString is unnecessary. This improves JetStream2/3d-raytrace-SP score by 1.6%

ToT: 363.56
Patched: 369.26

This patch also renames InlineWatchpointSet fields from Watchpoint to WatchpointSet since they are not Watchpoint.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::isWatchingArrayIteratorProtocolWatchpoint):
(JSC::DFG::Graph::isWatchingNumberToStringWatchpoint):

  • runtime/ArrayPrototype.cpp:

(JSC::speciesWatchpointIsValid):
(JSC::canUseDefaultArrayJoinForToString):
(JSC::arrayProtoFuncToString):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::arrayIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::mapIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::setIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::stringIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::mapSetWatchpointSet):
(JSC::JSGlobalObject::setAddWatchpointSet):
(JSC::JSGlobalObject::arraySpeciesWatchpointSet):
(JSC::JSGlobalObject::arrayJoinWatchpointSet):
(JSC::JSGlobalObject::numberToStringWatchpointSet):
(JSC::JSGlobalObject::arrayIteratorProtocolWatchpoint): Deleted.
(JSC::JSGlobalObject::mapIteratorProtocolWatchpoint): Deleted.
(JSC::JSGlobalObject::setIteratorProtocolWatchpoint): Deleted.
(JSC::JSGlobalObject::stringIteratorProtocolWatchpoint): Deleted.
(JSC::JSGlobalObject::mapSetWatchpoint): Deleted.
(JSC::JSGlobalObject::setAddWatchpoint): Deleted.
(JSC::JSGlobalObject::arraySpeciesWatchpoint): Deleted.
(JSC::JSGlobalObject::numberToStringWatchpoint): Deleted.

  • runtime/JSGlobalObjectInlines.h:

(JSC::JSGlobalObject::isArrayPrototypeIteratorProtocolFastAndNonObservable):
(JSC::JSGlobalObject::isMapPrototypeIteratorProtocolFastAndNonObservable):
(JSC::JSGlobalObject::isSetPrototypeIteratorProtocolFastAndNonObservable):
(JSC::JSGlobalObject::isStringPrototypeIteratorProtocolFastAndNonObservable):
(JSC::JSGlobalObject::isMapPrototypeSetFastAndNonObservable):
(JSC::JSGlobalObject::isSetPrototypeAddFastAndNonObservable):

10:35 AM Changeset in webkit [248905] by Justin Michaud
  • 5 edits in trunk

Fix InBounds speculation of typed array PutByVal and add extra step to integer range optimization to search for equality relationships on the RHS value
https://bugs.webkit.org/show_bug.cgi?id=200782

Reviewed by Saam Barati.

JSTests:

Skip long memcpy test on debug, and try to fix flakiness for recompilation count tests by disabling cjit.

  • microbenchmarks/memcpy-typed-loop.js:
  • stress/int8-repeat-in-then-out-of-bounds.js:

Tools:

  • Scripts/run-jsc-stress-tests:
10:19 AM Changeset in webkit [248904] by sbarati@apple.com
  • 3 edits in trunk/Source/WebCore

[WHLSL] Only take the pointer of a variable or global variable reference if it is used
https://bugs.webkit.org/show_bug.cgi?id=200908

Reviewed by Dean Jackson.

Previously, we would always emit Metal code to produce an lvalue pointer
even when it wasn't used. This patch adds a mechanism to lazily generate
such pointers when they're actually needed, since we often don't use them.
This is a 7% Metal compile time speedup on compute_boids with a p value of
0.0001.

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::appendRightValueWithNullability):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::appendLeftValue):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::takeLastLeftValue):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):

  • Modules/webgpu/WHLSL/Metal/WHLSLMangledNames.h:

(WebCore::WHLSL::Metal::MangledVariableName::operator bool const):

10:14 AM Changeset in webkit [248903] by Darin Adler
  • 5 edits in trunk

Variadic StringBuilder::append does not handle upconverting from 8-bit to 16-bit correctly
https://bugs.webkit.org/show_bug.cgi?id=200921

Reviewed by Saam Barati.

Source/WTF:

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendUninitialized8): Renamed from
appendUninitializedWithoutOverflowCheckForLChar and moved the length overflow
check in here to cut down on unnecessary inlining and code size.
(WTF::StringBuilder::appendUninitialized16): Renamed from
appendUninitializedWithoutOverflowCheckForUChar, moved the length overflow check
in here, and moved the necessary upconversion code from the const UChar* overload of
the appendCharacters function.
(WTF::StringBuilder::appendCharacters): Removed unneeded "length has already overflowed"
check at the start of the function since the code in the function already handles that
case correctly. Refactored the const UChar* overload to use the new appendCharacters16
function so it can share more code with StringBuilder::appendFromAdapters.

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::appendFromAdapters): Updated the function names for the
two appendUninitialized functions, which now do a bit more than before. Removed the
overflow check since the appendUninitialized8/16 functions now handle that; better to
not make the inlined code larger to handle a failure case.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

Changed tests to use EXPECT macros instead of ASSERT macros since we don't
need to abort after the first failure. Added three new tests to the VariadicAppend
test to cover various cases of upconverting from 8-bit to 16-bit strings.

9:53 AM Changeset in webkit [248902] by Chris Dumez
  • 8 edits in trunk/Source

Unsafe usage of CookieStorageObserver from a background thread
https://bugs.webkit.org/show_bug.cgi?id=200920

Reviewed by Alex Christensen.

Source/WebCore:

Unsafe usage of CookieStorageObserver from a background thread. CookieStorageObserver gets
constructed / destructed on the main thread. However, CookieStorageObserver::cookiesDidChange()
gets called on a background thread and tries to ref |this|. Even though CookieStorageObserver
is ThreadSafeRefCounted, this is still unsafe because the CookieStorageObserver destructor may
already be running on the main thread when CookieStorageObserver::cookiesDidChange() gets called
on the background thread.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/CookieStorageObserver.h:
  • platform/network/cocoa/CookieStorageObserver.mm:

(WebCore::CookieStorageObserver::CookieStorageObserver):
(WebCore::CookieStorageObserver::cookiesDidChange):
(WebCore::CookieStorageObserver::create): Deleted.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::cookieStorageObserver const):

Source/WebKit:

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm:

(API::HTTPCookieStore::startObservingChangesToDefaultUIProcessCookieStore):

9:34 AM Changeset in webkit [248901] by Chris Dumez
  • 21 edits
    1 copy in trunk/Source

Use a strongly typed identifier for StorageNamespace's identifier
https://bugs.webkit.org/show_bug.cgi?id=200895

Reviewed by Alex Christensen and Youenn Fablet.

Source/WebCore:

  • storage/StorageNamespace.h:

Source/WebKit:

Use a strongly typed identifier for StorageNamespace's identifier instead of uint64_t, to
avoid type confusion.

  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::LocalStorageNamespace):

  • NetworkProcess/WebStorage/LocalStorageNamespace.h:
  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::createLocalStorageArea):
(WebKit::StorageManager::createTransientLocalStorageArea):
(WebKit::StorageManager::createSessionStorageArea):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateSessionStorageNamespace):

  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
(WebKit::StorageManagerSet::cloneSessionStorageNamespace):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • NetworkProcess/WebStorage/StorageManagerSet.messages.in:
  • Scripts/webkit/messages.py:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setPrivateBrowsingEnabled):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::sessionStorageNamespaceIdentifier const):

  • WebProcess/WebPage/WebPageGroupProxy.h:

(WebKit::WebPageGroupProxy::localStorageNamespaceIdentifier const):

  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/WebStorage/StorageNamespaceIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.h.
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::sessionStoragePageID const):
(WebKit::StorageNamespaceImpl::pageGroupID const):

  • WebProcess/WebStorage/StorageNamespaceImpl.h:

(WebKit::StorageNamespaceImpl::storageNamespaceID const):

  • WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:

(WebKit::WebStorageNamespaceProvider::getOrCreate):
(WebKit::WebStorageNamespaceProvider::WebStorageNamespaceProvider):
(WebKit::WebStorageNamespaceProvider::~WebStorageNamespaceProvider):
(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):

  • WebProcess/WebStorage/WebStorageNamespaceProvider.h:
9:10 AM Changeset in webkit [248900] by dino@apple.com
  • 5 edits in trunk

REGRESSION: Open in New Tab is missing from context menu
https://bugs.webkit.org/show_bug.cgi?id=200909
<rdar://problem/54476169>

Reviewed by Simon Fraser.

Source/WebKit:

Don't assume the new API if webView:contextMenuWillPresentForElement:
is implemented.

  • UIProcess/ios/WKContentViewInteraction.mm:

(needsDeprecatedPreviewAPI):

Tools:

Add a new test that runs through the legacy context menu
flow, and verifies that it will be called if there aren't
appropriate delegates for the new API.

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(contextMenuWebViewDriver):
(-[TestContextMenuUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(TEST):
(-[LegacyPreviewViewController previewActionItems]):
(-[LegacyContextMenuUIDelegate webView:shouldPreviewElement:]):
(-[LegacyContextMenuUIDelegate webView:previewingViewControllerForElement:defaultActions:]):
(-[LegacyContextMenuUIDelegate webView:contextMenuWillPresentForElement:]):
(-[LegacyContextMenuUIDelegate _webView:contextMenuDidEndForElement:]):

  • TestWebKitAPI/cocoa/TestContextMenuDriver.h:
6:26 AM Changeset in webkit [248899] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Make IDB quota check lambdas take a weak of UniqueIDBDatabaseTransaction instead of a ref
https://bugs.webkit.org/show_bug.cgi?id=196696

Reviewed by Alex Christensen.

Refing the transaction in the lambdas extend their lifetime.
Taking a weak pointer of them is better as this will not extend their lifetime.
In particular, if the database is deleted, the corresponding transactions might be deleted.
This makes quota checks less intrusive in IDB lifetime management.
Covered by existing tests.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
3:41 AM Changeset in webkit [248898] by Joseph Pecoraro
  • 32 edits
    1 add in trunk

Web Inspector: Support for JavaScript BigInt
https://bugs.webkit.org/show_bug.cgi?id=180731
<rdar://problem/36298748>

Source/JavaScriptCore:

Reviewed by Devin Rousso.

  • inspector/InjectedScriptSource.js:

(toStringDescription):
(isSymbol):
(isBigInt):
(let.InjectedScript.prototype._fallbackWrapper):
(let.RemoteObject):
(let.RemoteObject.subtype):
(let.RemoteObject.describe):
(let.RemoteObject.prototype._appendPropertyPreviews):
(let.RemoteObject.set _isPreviewableObjectInternal):
(let.RemoteObject.prototype._isPreviewableObject.set add):

  • inspector/protocol/Runtime.json:

New RemoteObject type and preview support.

  • runtime/RuntimeType.cpp:

(JSC::runtimeTypeForValue):
(JSC::runtimeTypeAsString):

  • runtime/RuntimeType.h:
  • runtime/TypeSet.cpp:

(JSC::TypeSet::displayName const):
(JSC::TypeSet::inspectorTypeSet const):
New type for the type profiler.

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::json):

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::getPreview):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::toString):
(JSC::JSBigInt::tryGetString):
(JSC::JSBigInt::toStringBasePowerOfTwo):
(JSC::JSBigInt::toStringGeneric):

  • runtime/JSBigInt.h:

BigInts are not tied to a GlobalObject, so provide a way to get a
String for HeapSnapshot previews that are not tied to an ExecState.

Source/WebInspectorUI:

Reviewed by Devin Rousso.

  • UserInterface/External/CodeMirror/javascript.js:

(expressionAllowed):
Cherry-pick BigInt JavaScript mode support from CodeMirror:
https://github.com/codemirror/CodeMirror/pull/5411

  • UserInterface/Images/TypeBigInt.svg: Added.
  • UserInterface/Views/Variables.css:

(:root):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/CodeMirrorAdditions.js:
  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

(.cm-s-default .cm-number.cm-bigint,):

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property.bigint > .icon):

  • UserInterface/Views/HeapSnapshotInstancesContentView.css:

(.heap-snapshot .icon.bigint):
Style BigInt similiar but different from numbers but with
a [B] icon instead of [N].

  • UserInterface/Views/FormattedValue.css:

(.formatted-bigint):

  • UserInterface/Views/FormattedValue.js:

(WI.FormattedValue.hasSimpleDisplay):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate):
(WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
Simple value formatting for the new type.

  • UserInterface/Models/TypeSet.js:

(WI.TypeSet):
(WI.TypeSet.prototype.get primitiveTypeNames):

  • UserInterface/Views/TypeTokenView.css:

(.type-token-bigint):

  • UserInterface/Views/TypeTokenView.js:

(WI.TypeTokenView.prototype._displayTypeName):
(WI.TypeTokenView):
New type handling for the Type profiler.

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject):
(WI.RemoteObject.createBigIntFromDescriptionString):

  • UserInterface/Views/HeapSnapshotClusterContentView.js:

(WI.HeapSnapshotClusterContentView.iconStyleClassNameForClassName):

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WI.HeapSnapshotInstanceDataGridNode.prototype._populatePreview):
BigInt values are not tied to a GlobalObject, so do some special casing
in the Heap output (like Strings) so we get a preview.

Source/WebKit:

Reviewed by Devin Rousso.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::WebInspectorUI):
Enable BigInt in the Web Inspector process. It only makes use of
globalThis.BigInt(...) to hold the value.

LayoutTests:

Reviewed by Devin Rousso.

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:
  • inspector/model/resources/remote-object-utilities.js:

Include simple tests for a BigInt value and preview.

2:48 AM Changeset in webkit [248897] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Remove DeferredPromise::sessionID()
https://bugs.webkit.org/show_bug.cgi?id=200616

Reviewed by Alex Christensen.

Calling sessionID() on DeferredPromise is valid if the DeferredPromise is not suspended.
Since this might not always be true in call sites, add a resolve promise that is passed a function that returns
the value to resolve.
This function is taking a ScriptExecutionContext from which the session ID can be retrieved.
This is safe since the function will only be called if the DeferredPromise is not suspended.
Update call sites accordingly.
No change of behavior.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::resolveWithTypeAndData):
(WebCore::FetchBodyConsumer::resolve):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::blob):

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::DeferredPromise::resolveCallbackValueWithNewlyCreated):
(WebCore::DeferredPromise::sessionID const): Deleted.

2:39 AM Changeset in webkit [248896] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

PendingActivationMediaStream does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=200879

Reviewed by Alex Christensen.

No observable change of behavior.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::mediaStreamDidFail):
No need to asynchronously remove the observer since MediaStreamPrivate handles that properply now.

  • Modules/mediastream/UserMediaRequest.h:
12:04 AM Changeset in webkit [248895] by Devin Rousso
  • 5 edits in trunk

Web Inspector: Use URL constructor to better handle all kinds of URLs
https://bugs.webkit.org/show_bug.cgi?id=165155

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Base/URLUtilities.js:

(parseURL):

LayoutTests:

  • inspector/unit-tests/url-utilities.html:
  • inspector/unit-tests/url-utilities-expected.txt:

Aug 19, 2019:

11:58 PM Changeset in webkit [248894] by Devin Rousso
  • 22 edits
    3 adds in trunk

Web Inspector: Debugger: add a global breakpoint for pausing in the next microtask
https://bugs.webkit.org/show_bug.cgi?id=200652

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Debugger.json:

Add setPauseOnMicrotasks command.

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::disable):
(Inspector::InspectorDebuggerAgent::setPauseOnMicrotasks): Added.
(Inspector::InspectorDebuggerAgent::willRunMicrotask): Added.
(Inspector::InspectorDebuggerAgent::didRunMicrotask): Added.

  • debugger/Debugger.h:

(JSC::Debugger::willRunMicrotask): Added.
(JSC::Debugger::didRunMicrotask): Added.

  • inspector/ScriptDebugListener.h:
  • inspector/ScriptDebugServer.h:
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::sourceParsed):
(Inspector::ScriptDebugServer::willRunMicrotask): Added.
(Inspector::ScriptDebugServer::didRunMicrotask): Added.
(Inspector::ScriptDebugServer::canDispatchFunctionToListeners const): ADded.
(Inspector::ScriptDebugServer::dispatchFunctionToListeners): ADded.
(Inspector::ScriptDebugServer::handlePause):
(Inspector::ScriptDebugServer::dispatchDidPause): Deleted.
(Inspector::ScriptDebugServer::dispatchBreakpointActionLog): Deleted.
(Inspector::ScriptDebugServer::dispatchBreakpointActionSound): Deleted.
(Inspector::ScriptDebugServer::dispatchBreakpointActionProbe): Deleted.
(Inspector::ScriptDebugServer::dispatchDidContinue): Deleted.
(Inspector::ScriptDebugServer::dispatchDidParseSource): Deleted.
(Inspector::ScriptDebugServer::dispatchFailedToParseSource): Deleted.
Unify the various dispatch* functions to use lambdas so state management is centralized.

  • runtime/JSMicrotask.cpp:

(JSC::JSMicrotask::run):

  • inspector/agents/JSGlobalObjectDebuggerAgent.h:

Source/WebCore:

Test: inspector/debugger/setPauseOnMicrotasks.html

  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/worker/WorkerDebuggerAgent.h:
  • inspector/agents/InspectorTimelineAgent.h:

(WebCore::InspectorTimelineAgent::willRunMicrotask): Added.
(WebCore::InspectorTimelineAgent::didRunMicrotask): Added.

Source/WebInspectorUI:

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager):
(WI.DebuggerManager.prototype.initializeTarget):
(WI.DebuggerManager.prototype.get allMicrotasksBreakpoint): ADded.
(WI.DebuggerManager.prototype.isBreakpointSpecial):
(WI.DebuggerManager.prototype._pauseReasonFromPayload):
(WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
(WI.DebuggerSidebarPanel.prototype._addBreakpoint):
(WI.DebuggerSidebarPanel.prototype._addTreeElement):
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.DebuggerSidebarPanel.prototype._populateCreateBreakpointContextMenu):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement):
(WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint):
(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu):

  • UserInterface/Views/BreakpointTreeElement.css:

(.breakpoint-microtask-icon .icon): Added.

  • UserInterface/Images/Microtask.svg: Added.
  • UserInterface/Base/Setting.js:
  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/debugger/setPauseOnMicrotasks.html: Added.
  • inspector/debugger/setPauseOnMicrotasks-expected.txt: Added.
11:09 PM Changeset in webkit [248893] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r248682): Elements: Computed: go-to arrows in the Variables section are misaligned
https://bugs.webkit.org/show_bug.cgi?id=200841

Reviewed by Joseph Pecoraro.

The Variables section uses a different CSS class since it's identifier changed in r248682.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables)): Added.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property): Added.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property .go-to-arrow): Added.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property:not(:hover) .go-to-arrow): Added.
(.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property .go-to-arrow): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property:hover .go-to-arrow): Deleted.

10:47 PM Changeset in webkit [248892] by weinig@apple.com
  • 9 edits in trunk/Source

[WHLSL] Make generated Metal code should be indented properly to ease reading while debugging
https://bugs.webkit.org/show_bug.cgi?id=200870

Reviewed by Saam Barati.

Source/WebCore:

Adds indentation of generated Metal code using the new WTF::Indentation and WTF::IndentationScope
classes. This makes reading the generated Metal code much easier while debugging it, and does not
seem to introduce any performance regression (I measured no difference on compute_boids.html test).

  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp:

(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitUnpackResourcesAndNamedBuiltIns):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitPack):

  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitLoop):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::inlineNativeFunction):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):

Source/WTF:

Adds simple Indentation class to allow programatic indenting compatible with StringTypeAdapter
aware functions/class (e.g. makeString and StringBuilder). Templatized on the number of spaces
to indent.

Also adds IndentationScope, which uses RAII to increment/decrement the indentation value.

  • wtf/text/StringConcatenate.h:

(WTF::Indentation::operator++):
(WTF::Indentation::operator--):
(WTF::IndentationScope::IndentationScope):
(WTF::IndentationScope::~IndentationScope):

10:19 PM Changeset in webkit [248891] by Devin Rousso
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Debugger: pause on assertion failures breakpoint doesn't work when inspecting a JSContext
https://bugs.webkit.org/show_bug.cgi?id=200874

Reviewed by Joseph Pecoraro.

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):

9:22 PM Changeset in webkit [248890] by Devin Rousso
  • 8 edits in trunk

Web Inspector: have more aggressive checks for dataURLs provided to console.screenshot
https://bugs.webkit.org/show_bug.cgi?id=200747

Reviewed by Joseph Pecoraro.

Source/WebCore:

Always send any /data:*+/ strings to the frontend and have it render there. If that doesn't
work, have the frontend "spoof" an error message look and feel.

Test: inspector/console/console-screenshot.html

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

Source/WebInspectorUI:

Always send any /data:*+/ strings to the frontend and have it render there. If that doesn't
work, have the frontend "spoof" an error message look and feel.

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._appendMessageTextAndArguments):

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/console/console-screenshot.html:
  • inspector/console/console-screenshot-expected.txt:
9:10 PM Changeset in webkit [248889] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: Network headers values should be preserved
https://bugs.webkit.org/show_bug.cgi?id=200873

Reviewed by Joseph Pecoraro.

Replace spans with bdi elements, which have unicode-bidi: isolate User Agent style.
This works well with both LTR and RTL values.

  • UserInterface/Views/ResourceDetailsSection.js:

(WI.ResourceDetailsSection.prototype.appendKeyValuePair):
Drive-by: remove unnecessary if/else statement and use append instead.

8:33 PM Changeset in webkit [248888] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[CMake] WebKit2.dll can't link because of missing PAL's import symbols for WinCairo port
https://bugs.webkit.org/show_bug.cgi?id=200910

Unreviewed build fix for Windows port.

  • CMakeLists.txt: Added -DSTATICALLY_LINKED_WITH_PAL=1 if PAL_LIBRARY_TYPE is STATIC.
8:25 PM Changeset in webkit [248887] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix for WinCairo port.

The base class of NetworkDataTask has been changed in r248874.

  • NetworkProcess/curl/NetworkDataTaskCurl.h:

(ref):
(deref):
Call 'ref' and 'deref' of NetworkDataTask instead of RefCounted<NetworkDataTask>.

7:16 PM Changeset in webkit [248886] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Source/WebCore:
[Cocoa] Fix misspelling of -preventsDisplaySleepForVideoPlayback
https://bugs.webkit.org/show_bug.cgi?id=200774
<rdar://problem/54321071>

Reviewed by Eric Carlson.

Only declare the API on platforms where that API is undefined, so as
to catch this kind of misspelling at compile time.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):

Source/WebCore/PAL:
[Cocoa] Adopt -preventDisplaySleepForVideoPlayback
https://bugs.webkit.org/show_bug.cgi?id=200774
<rdar://problem/54321071>

Reviewed by Eric Carlson.

  • pal/spi/mac/AVFoundationSPI.h:
6:57 PM Changeset in webkit [248885] by Fujii Hironori
  • 4 edits in trunk/Source/WebKitLegacy/win

[WinCairo][WK1] A browser window starts as an inactive window because AcceleratedCompositingContext::acceleratedCompositingAvailable creates temporary window
https://bugs.webkit.org/show_bug.cgi?id=200493

Reviewed by Ross Kirsling.

Reverted r179962.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::acceleratedCompositingAvailable): Deleted.

  • WebCoreSupport/AcceleratedCompositingContext.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

6:42 PM Changeset in webkit [248884] by Alan Coon
  • 7 edits in tags/Safari-609.1.2.2/Source

Versioning.

6:39 PM Changeset in webkit [248883] by Alan Coon
  • 1 copy in tags/Safari-609.1.2.2

New tag.

6:22 PM Changeset in webkit [248882] by Alan Coon
  • 2 edits in tags/Safari-609.1.2.1/Source/WebKit

Cherry-pick r248881. rdar://problem/54484875

Unreviewed build fix for security entitlements.

Bug 200242 (r248164) changed the way that entitlements were generated
and applied during the build. In that refactoring, the codesign
parameter "-o library" was dropped. This change adds it back.

  • Configurations/BaseXPCService.xcconfig:

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

6:08 PM Changeset in webkit [248881] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix for security entitlements.

Bug 200242 (r248164) changed the way that entitlements were generated
and applied during the build. In that refactoring, the codesign
parameter "-o library" was dropped. This change adds it back.

  • Configurations/BaseXPCService.xcconfig:
5:56 PM Changeset in webkit [248880] by commit-queue@webkit.org
  • 5 edits in trunk

Proxy constructor should throw if handler is revoked Proxy
https://bugs.webkit.org/show_bug.cgi?id=198755

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-08-19
Reviewed by Saam Barati.

JSTests:

  • stress/proxy-revoke.js: Adjust error message.
  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

Reword error message and check if handler is revoked Proxy.
(step 4 of https://tc39.es/ecma262/#sec-proxycreate)

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::finishCreation): Add isRevoked check.

5:37 PM Changeset in webkit [248879] by Justin Fan
  • 8 edits
    1 copy in trunk/Source/WebCore

WebGPU layers don't show up sometimes
https://bugs.webkit.org/show_bug.cgi?id=200752

Reviewed by Dean Jackson.

Ensure HTML canvas is properly notified of WebGPU updates. Fixes alpha WebGPU MotionMark benchmark no-show issue.

Normal WebGPU behavior unaffected and covered by existing tests.

  • Modules/webgpu/GPUCanvasContext.cpp:

(WebCore::GPUCanvasContext::configureSwapChain):
(WebCore::GPUCanvasContext::reshape):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::inlineNativeFunction):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/GPUBasedCanvasRenderingContext.cpp: Added.

(WebCore::GPUBasedCanvasRenderingContext::GPUBasedCanvasRenderingContext):
(WebCore::GPUBasedCanvasRenderingContext::htmlCanvas const):
(WebCore::GPUBasedCanvasRenderingContext::notifyCanvasContentChanged):

  • html/canvas/GPUBasedCanvasRenderingContext.h:

(WebCore::GPUBasedCanvasRenderingContext::GPUBasedCanvasRenderingContext): Deleted.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::reshape):
(WebCore::WebGLRenderingContextBase::htmlCanvas): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::contentChanged):

5:21 PM Changeset in webkit [248878] by ysuzuki@apple.com
  • 35 edits
    6 copies
    10 adds in trunk

[JSC] OSR entry to Wasm OMG
https://bugs.webkit.org/show_bug.cgi?id=200362

Reviewed by Michael Saboff.

JSTests:

  • wasm/stress/osr-entry-basic.js: Added.

(instance.exports.loop):

  • wasm/stress/osr-entry-many-locals-f32.js: Added.
  • wasm/stress/osr-entry-many-locals-f64.js: Added.
  • wasm/stress/osr-entry-many-locals-i32.js: Added.
  • wasm/stress/osr-entry-many-locals-i64.js: Added.
  • wasm/stress/osr-entry-many-stacks-f32.js: Added.
  • wasm/stress/osr-entry-many-stacks-f64.js: Added.
  • wasm/stress/osr-entry-many-stacks-i32.js: Added.
  • wasm/stress/osr-entry-many-stacks-i64.js: Added.

Source/JavaScriptCore:

This patch implements Wasm OSR entry mechanism from BBQ tier to OMG tier.
We found that one of JetStream2 test heavily relies on OSR entry feature. gcc-loops-wasm consumes
most of time in BBQ tier since one of the function takes significantly long time. And since we did
not have OSR entry feature, we cannot use OMG function until that BBQ function finishes.

To implement Wasm OSR feature, we first capture all locals and stacks in the patchpoint to generate
the stackmap. Once the threshold is crossed, the patchpoint calls MacroAssembler::probe feature to
capture whole register context, and C++ runtime function reads stackmap and Probe::Context to perform
OSR entry. This patch intentionally makes OSR entry written in C++ runtime side as much as possible
to make it easily reusable for the other tiers. For example, we are planning to introduce Wasm interpreter,
and it can easily use this tier-up function. Because of this simplicity, this generic implementation can
cover both BBQ Air and BBQ B3 tier-up features. So, in the feature, it is possible that we revive BBQ B3,
and construct the wasm pipeline like, interpreter->BBQ B3->OMG B3.

To generate OMG code for OSR entry, we add a new mode OMGForOSREntry, which mimics the FTLForOSREntry.
In FTLForOSREntry, we cut unrelated blocks including the usual entry point in DFG tier and later convert
graph to SSA. This is possible because DFG is not SSA. On the other hand, B3 is SSA and we cannot take the
same thing without a hack.

This patch introduce a hack: making all wasm locals and stack values B3::Variable for OMGForOSREntry mode.
Then, we can cut blocks easily and we can generate the B3 graph without doing reachability analysis from the
OSR entry point. B3 will remove unreachable blocks later.

Tier-up function mimics DFG->FTL OSR entry heuristics and threshold as much as possible. And this patch adjusts
the tier-up count threshold to make it close to DFG->FTL ones. Wasm tier-up is now using ExecutionCounter, which
is inherited from Wasm::TierUpCount. Since wasm can execute concurrently, the tier-up counter can be racily updated.
But this is OK in practice. Even if we see some more tier-up function calls or tier-up function calls are delayed,
the critical part is guarded by a lock in tier-up function.

In iMac Pro, it shows ~4x runtime improvement for gcc-loops-wasm. On iOS device (iPhone XR), we saw ~2x improvement.

ToT:

HashSet-wasm:Score: 24.6pt stdev=4.6%

:Time:Geometric: 204ms stdev=4.4%
Runtime:Time: 689ms stdev=1.0%
Startup:Time: 60.3ms stdev=8.4%

gcc-loops-wasm:Score: 8.41pt stdev=6.7%

:Time:Geometric: 597ms stdev=6.5%
Runtime:Time: 8.509s stdev=0.7%
Startup:Time: 42ms stdev=12.4%

quicksort-wasm:Score: 347pt stdev=20.9%

:Time:Geometric: 15ms stdev=18.6%
Runtime:Time: 28.2ms stdev=7.9%
Startup:Time: 8.2ms stdev=35.0%

richards-wasm:Score: 77.6pt stdev=4.5%

:Time:Geometric: 64.6ms stdev=4.4%
Runtime:Time: 544ms stdev=3.3%
Startup:Time: 7.67ms stdev=6.7%

tsf-wasm:Score: 47.9pt stdev=4.5%

:Time:Geometric: 104ms stdev=4.8%
Runtime:Time: 259ms stdev=4.4%
Startup:Time: 42.2ms stdev=8.5%

Patched:

HashSet-wasm:Score: 24.1pt stdev=4.1%

:Time:Geometric: 208ms stdev=4.1%
Runtime:Time: 684ms stdev=1.1%
Startup:Time: 63.2ms stdev=8.1%

gcc-loops-wasm:Score: 15.7pt stdev=5.1%

:Time:Geometric: 319ms stdev=5.3%
Runtime:Time: 2.491s stdev=0.7%
Startup:Time: 41ms stdev=11.0%

quicksort-wasm:Score: 353pt stdev=13.7%

:Time:Geometric: 14ms stdev=12.7%
Runtime:Time: 26.2ms stdev=2.9%
Startup:Time: 8.0ms stdev=23.7%

richards-wasm:Score: 77.4pt stdev=5.3%

:Time:Geometric: 64.7ms stdev=5.3%
Runtime:Time: 536ms stdev=1.5%
Startup:Time: 7.83ms stdev=9.6%

tsf-wasm:Score: 47.3pt stdev=5.7%

:Time:Geometric: 106ms stdev=6.1%
Runtime:Time: 250ms stdev=3.5%
Startup:Time: 45ms stdev=13.8%

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchAdd32):

  • b3/B3ValueRep.h:
  • bytecode/CodeBlock.h:
  • bytecode/ExecutionCounter.cpp:

(JSC::applyMemoryUsageHeuristics):
(JSC::ExecutionCounter<countingVariant>::setThreshold):

  • bytecode/ExecutionCounter.h:

(JSC::ExecutionCounter::clippedThreshold):

  • dfg/DFGJITCode.h:
  • dfg/DFGOperations.cpp:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::prologueStackPointerDelta):

  • runtime/Options.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::createStack):
(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::outerLoopIndex const):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):
(JSC::Wasm::AirIRGenerator::addElse):
(JSC::Wasm::AirIRGenerator::addBranch):
(JSC::Wasm::AirIRGenerator::addSwitch):
(JSC::Wasm::AirIRGenerator::endBlock):
(JSC::Wasm::AirIRGenerator::addEndToUnreachable):
(JSC::Wasm::AirIRGenerator::unifyValuesWithBlock):
(JSC::Wasm::AirIRGenerator::dump):
(JSC::Wasm::AirIRGenerator::emitTierUpCheck): Deleted.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::Stack::Stack):
(JSC::Wasm::B3IRGenerator::Stack::append):
(JSC::Wasm::B3IRGenerator::Stack::takeLast):
(JSC::Wasm::B3IRGenerator::Stack::last):
(JSC::Wasm::B3IRGenerator::Stack::size const):
(JSC::Wasm::B3IRGenerator::Stack::isEmpty const):
(JSC::Wasm::B3IRGenerator::Stack::convertToExpressionList):
(JSC::Wasm::B3IRGenerator::Stack::at const):
(JSC::Wasm::B3IRGenerator::Stack::variableAt const):
(JSC::Wasm::B3IRGenerator::Stack::shrink):
(JSC::Wasm::B3IRGenerator::Stack::swap):
(JSC::Wasm::B3IRGenerator::Stack::dump const):
(JSC::Wasm::B3IRGenerator::createStack):
(JSC::Wasm::B3IRGenerator::outerLoopIndex const):
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::addElse):
(JSC::Wasm::B3IRGenerator::addBranch):
(JSC::Wasm::B3IRGenerator::addSwitch):
(JSC::Wasm::B3IRGenerator::endBlock):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):
(JSC::Wasm::B3IRGenerator::unifyValuesWithBlock):
(JSC::Wasm::B3IRGenerator::dump):
(JSC::Wasm::parseAndCompile):
(JSC::Wasm::B3IRGenerator::emitTierUpCheck): Deleted.
(JSC::Wasm::dumpExpressionStack): Deleted.

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::compileFunctions):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmBBQPlanInlines.h:

(JSC::Wasm::BBQPlan::initializeCallees):

  • wasm/WasmCallee.h:
  • wasm/WasmCodeBlock.cpp:

(JSC::Wasm::CodeBlock::CodeBlock):

  • wasm/WasmCodeBlock.h:

(JSC::Wasm::CodeBlock::wasmBBQCalleeFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::entrypointLoadLocationFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::tierUpCount): Deleted.

  • wasm/WasmCompilationMode.cpp:

(JSC::Wasm::makeString):

  • wasm/WasmCompilationMode.h:
  • wasm/WasmContext.cpp: Copied from Source/JavaScriptCore/wasm/WasmCompilationMode.cpp.

(JSC::Wasm::Context::scratchBufferForSize):

  • wasm/WasmContext.h:
  • wasm/WasmContextInlines.h:

(JSC::Wasm::Context::tryLoadInstanceFromTLS):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::FunctionParser):
(JSC::Wasm::FunctionParser<Context>::parseBody):
(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmOMGForOSREntryPlan.cpp: Copied from Source/JavaScriptCore/wasm/WasmOMGPlan.cpp.

(JSC::Wasm::OMGForOSREntryPlan::OMGForOSREntryPlan):
(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGForOSREntryPlan.h: Copied from Source/JavaScriptCore/wasm/WasmOMGPlan.h.
  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):
(JSC::Wasm::OMGPlan::runForIndex): Deleted.

  • wasm/WasmOMGPlan.h:
  • wasm/WasmOSREntryData.h: Copied from Source/JavaScriptCore/wasm/WasmContext.h.

(JSC::Wasm::OSREntryValue::OSREntryValue):
(JSC::Wasm::OSREntryValue::type const):
(JSC::Wasm::OSREntryData::OSREntryData):
(JSC::Wasm::OSREntryData::functionIndex const):
(JSC::Wasm::OSREntryData::loopIndex const):
(JSC::Wasm::OSREntryData::values):

  • wasm/WasmOperations.cpp: Added.

(JSC::Wasm::shouldTriggerOMGCompile):
(JSC::Wasm::triggerOMGReplacementCompile):
(JSC::Wasm::doOSREntry):
(JSC::Wasm::triggerOSREntryNow):
(JSC::Wasm::triggerTierUpNow):

  • wasm/WasmOperations.h: Copied from Source/JavaScriptCore/wasm/WasmCompilationMode.h.
  • wasm/WasmThunks.cpp:

(JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):
(JSC::Wasm::triggerOMGTierUpThunkGenerator): Deleted.

  • wasm/WasmThunks.h:
  • wasm/WasmTierUpCount.cpp: Copied from Source/JavaScriptCore/wasm/WasmCompilationMode.cpp.

(JSC::Wasm::TierUpCount::TierUpCount):
(JSC::Wasm::TierUpCount::addOSREntryData):

  • wasm/WasmTierUpCount.h:

(JSC::Wasm::TierUpCount::loopIncrement):
(JSC::Wasm::TierUpCount::functionEntryIncrement):
(JSC::Wasm::TierUpCount::osrEntryTriggers):
(JSC::Wasm::TierUpCount::outerLoops):
(JSC::Wasm::TierUpCount::getLock):
(JSC::Wasm::TierUpCount::optimizeAfterWarmUp):
(JSC::Wasm::TierUpCount::checkIfOptimizationThresholdReached):
(JSC::Wasm::TierUpCount::dontOptimizeAnytimeSoon):
(JSC::Wasm::TierUpCount::optimizeNextInvocation):
(JSC::Wasm::TierUpCount::optimizeSoon):
(JSC::Wasm::TierUpCount::setOptimizationThresholdBasedOnCompilationResult):
(JSC::Wasm::TierUpCount::TierUpCount): Deleted.
(JSC::Wasm::TierUpCount::loopDecrement): Deleted.
(JSC::Wasm::TierUpCount::functionEntryDecrement): Deleted.
(JSC::Wasm::TierUpCount::shouldStartTierUp): Deleted.
(JSC::Wasm::TierUpCount::count): Deleted.

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::createStack):
(JSC::Wasm::Validate::addLoop):
(JSC::Wasm::Validate::addElse):
(JSC::Wasm::Validate::checkBranchTarget):
(JSC::Wasm::Validate::addBranch):
(JSC::Wasm::Validate::addSwitch):
(JSC::Wasm::Validate::endBlock):
(JSC::Wasm::Validate::unify):
(JSC::Wasm::dumpExpressionStack):
(JSC::Wasm::Validate::dump):

Tools:

  • Scripts/run-jsc-stress-tests:
5:15 PM Changeset in webkit [248877] by Ryan Haddad
  • 2 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r248875. rdar://problem/52961406

rdar://52961406 (scrollingcoordinator/ios/scroll-position-after-reattach.html is a flaky image failure on iOS)

Unreviewed Test Gardening.

  • platform/ios/TestExpectations: Updated test expectations to [ Pass Failure ]

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

4:27 PM Changeset in webkit [248876] by commit-queue@webkit.org
  • 7 edits in trunk

Date.prototype.toJSON throws if toISOString returns an object
https://bugs.webkit.org/show_bug.cgi?id=198495

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-08-19
Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml: Mark 6 test cases as passing.

Source/JavaScriptCore:

Don't throw TypeError if result of toISOString call is not a primitive.
(step 4 of https://tc39.es/ecma262/#sec-date.prototype.tojson)

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToJSON): Remove isObject check.

LayoutTests:

TypeError shouldn't be thrown if result of toISOString call is an object.
(step 4 of https://tc39.es/ecma262/#sec-date.prototype.tojson)

  • js/dom/JSON-stringify-expected.txt:
  • js/resources/JSON-stringify.js:
4:06 PM Changeset in webkit [248875] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

rdar://52961406 (scrollingcoordinator/ios/scroll-position-after-reattach.html is a flaky image failure on iOS)

Unreviewed Test Gardening.

  • platform/ios/TestExpectations: Updated test expectations to [ Pass Failure ]
3:50 PM Changeset in webkit [248874] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

NetworkDataTask is being ref'd / deref'd from several threads and is not ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200897

Reviewed by Geoffrey Garen.

NetworkDataTask subclasses RefCounted and is ref'd / deref'd on the main thread. However, there
is code in NetworkDataTaskCocoa::resume() that was ref'ing / deref'ing it on a background thread,
which is unsafe. To address the issue, Have NetworkDataTask subclass ThreadSafeRefCounted, and
make sure it always gets destroyed on the main thread.

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::resume):
Avoid some unnecessary refcounting churn.

3:21 PM Changeset in webkit [248873] by Devin Rousso
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Debugger: pressing delete when the all/uncaught exceptions breakpoint is selected should select the next tree element
https://bugs.webkit.org/show_bug.cgi?id=200876

Reviewed by Joseph Pecoraro.

Removing the return true; from the various WI.TreeElement breakpoint classes allows the
owner WI.TreeOutline to also handle the delete event. In the Debugger/Sources navigation
sidebar, the owner WI.TreeOutline checks to see if the currently selected WI.TreeElement
is one of the "top" items ("All Exceptions", "Uncaught Exceptions", "Assertion Failures")
and if so, select the next tree element (if able) instead of the previous one.

This is a preferred experience because the "top" items can only be disabled, not deleted, so
trying to delete them wouldn't actually change the selection. They should only ever be
selected if there's nothing else that can be selected.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
(WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement.checkIfSelectionAdjustmentNeeded): Added.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.checkIfSelectionAdjustmentNeeded): Added.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMNodeTreeElement.js:

(WI.DOMNodeTreeElement.prototype.ondelete):

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/URLBreakpointTreeElement.js:

(WI.URLBreakpointTreeElement.prototype.ondelete):

3:16 PM Changeset in webkit [248872] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

[JSC] DFG DataView get/set optimization should take care of the case little-endian flag is JSEmpty
https://bugs.webkit.org/show_bug.cgi?id=200899
<rdar://problem/54073341>

Reviewed by Mark Lam.

JSTests:

  • stress/data-view-get-dfg-should-handle-empty-constant.js: Added.

(i.new.Promise):

  • stress/data-view-set-dfg-should-handle-empty-constant.js: Added.

(i.new.Promise):

Source/JavaScriptCore:

DFGByteCodeParser attempt to get constant flag for isLittleEndian for DataView get/set.
When getting a constant in DFG, we first need to check whether it is JSEmpty. But we are missing
this check for DataView get/set optimization.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

3:11 PM Changeset in webkit [248871] by Alan Coon
  • 7 edits in tags/Safari-609.1.2.1/Source

Versioning.

3:02 PM Changeset in webkit [248870] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Tools

Unreviewed build fix for missing WebCore library when linking TestNetscapePlugIn

Using LDFLAGS='-Wl,--no-undefined' would cause TestNetscapePlugIn to
fail linking as it uses WTF::Sleep() but the WTF library is not
directly listed for linking. While the library would be linked
indirectly, passing --no-undefined to the linker disallows that, so
it is needed to list it explicitly for it to succeed.

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Add dependency on

the WTF library.

3:02 PM Changeset in webkit [248869] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

3:00 PM Changeset in webkit [248868] by Alan Coon
  • 1 copy in tags/Safari-608.2.6

Tag Safari-608.2.6.

2:58 PM Changeset in webkit [248867] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WTF

Cherry-pick r248852. rdar://problem/54454547

Unreviewed build fix for macOS 10.14 after r248832.

  • wtf/Platform.h:

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

2:34 PM Changeset in webkit [248866] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

JSC tool targets should unlock the keychain before codesigning
https://bugs.webkit.org/show_bug.cgi?id=200733
<rdar://problem/54223095>

Reviewed by Alexey Proskuryakov.

In r245564, we started codesigning JSC tool targets to run the datavault tests
in testapi, but we should unlock the keychain first so that it doesn't require
the password during builds.

2:25 PM Changeset in webkit [248865] by Alan Coon
  • 1 copy in tags/Safari-609.1.2.1

New tag.

2:23 PM Changeset in webkit [248864] by Ryan Haddad
  • 2 edits
    1 copy in branches/safari-608-branch/LayoutTests

Cherry-pick r248863. rdar://problem/54481698

rdar://54481698 (Layout Test platform/ios/ios/fast/text/opticalFont.html is Failing)

Unreviewed Test Gardening.

  • platform/ios-12/platform/ios/ios/fast/text/opticalFont-expected.txt: Copied from LayoutTests/platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt.
  • platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt: Rebaseline.

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

2:18 PM Changeset in webkit [248863] by russell_e@apple.com
  • 2 edits
    1 copy in trunk/LayoutTests

rdar://54481698 (Layout Test platform/ios/ios/fast/text/opticalFont.html is Failing)

Unreviewed Test Gardening.

  • platform/ios-12/platform/ios/ios/fast/text/opticalFont-expected.txt: Copied from LayoutTests/platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt.
  • platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt: Rebaseline.
1:56 PM Changeset in webkit [248862] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit

Move call to initializeMainThread introduced in r248549 to after WebKit.framework has been loaded
https://bugs.webkit.org/show_bug.cgi?id=200896
<rdar://problem/54479065>

Reviewed by Chris Dumez.

In XPCServiceMain we haven't been told which WebKit.framework to load yet, so when using staged frameworks it
causes problems if we call a function from a WebKit framework. We need to wait until after initializerFunctionPtr is called.

  • NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • PluginProcess/EntryPoint/Cocoa/XPCService/PluginServiceEntryPoint.mm:

(PluginServiceInitializer):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentServiceEntryPoint.mm:

(WebContentServiceInitializer):

1:12 PM Changeset in webkit [248861] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, build fix for PLATFORM_DRIVEN_TEXT_CHECKING
https://bugs.webkit.org/show_bug.cgi?id=200620

It is enabled if PLATFORM(MACCATALYST) is true.

  • UIProcess/Cocoa/TextCheckingController.h:
12:37 PM Changeset in webkit [248860] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger: don't show the All Requests breakpoint by default
https://bugs.webkit.org/show_bug.cgi?id=200892

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Setting.js:
11:09 AM Changeset in webkit [248859] by zhifei_fang@apple.com
  • 3 edits in trunk/Tools

[results.webkit.org Timeline] Disable back gesture
https://bugs.webkit.org/show_bug.cgi?id=200839

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/js/Utils.js:
  • resultsdbpy/resultsdbpy/view/templates/base.html:
10:51 AM Changeset in webkit [248858] by Jonathan Bedard
  • 2 edits in trunk/Tools

results-webkit.org: Add timeout to Redis locks
https://bugs.webkit.org/show_bug.cgi?id=200890

Reviewed by Aakash Jain.

  • resultsdbpy/resultsdbpy/model/upload_context.py:

(UploadContext._find_job_with_attempts): Add timeout to Redis lock.

10:39 AM Changeset in webkit [248857] by msaboff@apple.com
  • 4 edits
    1 add in trunk

Webkit jsc Crash in RegExp::matchInline (this=<optimized out>
https://bugs.webkit.org/show_bug.cgi?id=197090

Reviewed by Yusuke Suzuki.

JSTests:

New test.

  • stress/regexp-nonconsuming-counted-parens.js: Added.

Source/JavaScriptCore:

Turned the debug JIT assert into falling back to the interpreter. In release builds, that is effectively what we do
after exhausting the loop try count. No sense of looping until we exceed the count, as we can exit immediately.

  • assembler/AbortReason.h:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generate):

10:12 AM Changeset in webkit [248856] by sihui_liu@apple.com
  • 42 edits in trunk

Remove IDB-specific quota
https://bugs.webkit.org/show_bug.cgi?id=196545
<rdar://problem/54201783>

Reviewed by Youenn Fablet.

PerformanceTests:

  • IndexedDB/large-binary-keys.html:
  • IndexedDB/large-string-keys.html:

Source/WebCore:

Re-land r248526 with fix for performance tests.

No change of behavior as IDB specific quota is no longer used.
Instead a global quota is used. This quota currently handles IDB and Cache API.

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::setPerOriginQuota): Deleted.

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::perOriginQuota const): Deleted.

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::quotaForOrigin const): Deleted.
(WebCore::IDBServer::SQLiteIDBBackingStore::maximumSize const): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::setQuota): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createIDBServer):
(WebKit::NetworkProcess::addIndexedDatabaseSession):
(WebKit::NetworkProcess::setIDBPerOriginQuota): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetIDBPerOriginQuota): Deleted.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setIDBPerOriginQuota): Deleted.

  • UIProcess/WebProcessPool.h:

Source/WebKitLegacy:

  • Storage/WebDatabaseProvider.cpp:

(WebDatabaseProvider::setIDBPerOriginQuota): Deleted.

  • Storage/WebDatabaseProvider.h:

Source/WebKitLegacy/mac:

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager setIDBPerOriginQuota:]): Deleted.

  • Storage/WebDatabaseManagerPrivate.h:

Source/WebKitLegacy/win:

  • Interfaces/IWebDatabaseManager.idl:
  • WebDatabaseManager.cpp:

(WebDatabaseManager::setIDBPerOriginQuota): Deleted.

  • WebDatabaseManager.h:

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):
(setIDBPerOriginQuotaCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setIDBPerOriginQuota): Deleted.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::setIDBPerOriginQuota): Deleted.

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

(WTR::TestRunner::setIDBPerOriginQuota): Deleted.

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

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::setIDBPerOriginQuota): Deleted.

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

9:55 AM Changeset in webkit [248855] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[Pointer Events] Removing the capture element prevents future pointer events from being dispatched on macOS
https://bugs.webkit.org/show_bug.cgi?id=200887
<rdar://problem/54104147>

Patch by Antoine Quint <Antoine Quint> on 2019-08-19
Reviewed by Dean Jackson.

Source/WebCore:

Test: pointerevents/mouse/pointer-capture-element-removal.html

While we should only dispatch a lostpointercapture event to a connected element, clearing the capture element set on the frame's EventHandler
should always happen, regardless of the connected status of the previous capture element, since otherwise all future mouse and pointer events
would be targeted at the now-disconnected, former capture element.

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::processPendingPointerCapture):

LayoutTests:

  • pointerevents/mouse/pointer-capture-element-removal-expected.txt: Added.
  • pointerevents/mouse/pointer-capture-element-removal.html: Added.
9:10 AM Changeset in webkit [248854] by youenn@apple.com
  • 29 edits in trunk/Source

Remove SessionID::emptySessionID()
https://bugs.webkit.org/show_bug.cgi?id=200811

Reviewed by Alex Christensen.

Source/WebCore:

No change of behavior, update SessionID call sites.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • dom/Document.cpp:

(WebCore::Document::sessionID const):
(WebCore::Document::privateBrowsingStateDidChange):

  • workers/service/ServiceWorkerProvider.cpp:

(WebCore::ServiceWorkerProvider::registerServiceWorkerClients):

Source/WebCore/PAL:

Remove SessionID::emptySessionID and make it closer to a regular ObjectIdentifier.

  • pal/SessionID.cpp:
  • pal/SessionID.h:

(PAL::SessionID::SessionID):
(PAL::SessionID::isValid const):
(PAL::SessionID::isEphemeral const):
(PAL::SessionID::isHashTableDeletedValue const):
(PAL::SessionID::toUInt64 const):
(PAL::SessionID::operator== const):
(PAL::SessionID::operator!= const):
(PAL::SessionID::isolatedCopy const):
(PAL::SessionID::operator bool const):
(PAL::SessionID::isValidSessionIDValue):
(PAL::SessionID::encode const):
(PAL::SessionID::decode):
(WTF::SessionIDHash::hash):
(WTF::HashTraits<PAL::SessionID>::emptyValue):
(WTF::HashTraits<PAL::SessionID>::constructDeletedValue):
(WTF::HashTraits<PAL::SessionID>::isDeletedValue):

Source/WebKit:

Update SessionID call sites to use toUInt64.
Remove debug asserts to isValid since construction of invalid session IDs can only happen in very specific cases
typically for HashMaps.

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::storageSession):
(WebKit::NetworkConnectionToWebProcess::logUserInteraction):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::networkSession const):
(WebKit::NetworkProcess::networkSessionByConnection const):
(WebKit::NetworkProcess::setSession):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::existingSWOriginStoreForSession const):
(WebKit::NetworkProcess::webProcessWasDisconnected):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::maybeRegisterWithSessionIDMap):
(WebKit::WebsiteDataStore::existingNonDefaultDataStoreForSessionID):

  • WebProcess/Cache/WebCacheStorageProvider.cpp:

(WebKit::WebCacheStorageProvider::createCacheStorageConnection):

  • WebProcess/Cache/WebCacheStorageProvider.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::initializeConnectionIfNeeded):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):

Source/WebKitLegacy:

  • Storage/WebDatabaseProvider.cpp:

(WebDatabaseProvider::idbConnectionToServerForSession):

  • Storage/WebDatabaseProvider.h:
8:46 AM Changeset in webkit [248853] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Stop MediaDevices timer when stopping MediaDevices
https://bugs.webkit.org/show_bug.cgi?id=200880

Reviewed by Eric Carlson.

No change of behavior.
Stop timer when stopping MediaDevices and check for MediaDevices being stopped before scheduling the timer.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::stop):
Remove document/controller check since at that point,
the document should not be null and the controller should be there.
(WebCore::MediaDevices::scheduledEventTimerFired):
(WebCore::MediaDevices::listenForDeviceChanges):

8:46 AM Changeset in webkit [248852] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed build fix for macOS 10.14 after r248832.

  • wtf/Platform.h:
2:41 AM Changeset in webkit [248851] by ysuzuki@apple.com
  • 5 edits in trunk/Source

Unreviewed, speculative build fix for GTK and WinCairo
https://bugs.webkit.org/show_bug.cgi?id=200620

Source/WebCore:

It seems that these files have different flags that is not tested in EWS.

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h:

Source/WebKit:

  • UIProcess/socket/RemoteInspectorProtocolHandler.cpp:
2:11 AM Changeset in webkit [248850] by ysuzuki@apple.com
  • 9 edits in trunk/Source

[WTF] Add makeUnique<T>, which ensures T is fast-allocated, actual static_assert part
https://bugs.webkit.org/show_bug.cgi?id=200620

Reviewed by Geoff Garen.

Source/bmalloc:

Expose T::webkitFastMalloced type to perform static_assert in makeUnique.

  • bmalloc/IsoHeap.h:
  • bmalloc/IsoHeapInlines.h:

Source/WebCore:

  • platform/network/curl/CookieJarCurl.h:

Source/WTF:

This is the last part of the split patch from https://bugs.webkit.org/show_bug.cgi?id=200620.
Expose T::webkitFastMalloced type to perform static_assert in makeUnique.
makeUnique and makeUniqueRef start performing static_assert check to ensure that the type T is FastMalloced / IsoHeaped.

  • wtf/FastMalloc.h:
  • wtf/StdLibExtras.h:

(WTF::makeUnique):

  • wtf/UniqueRef.h:

(WTF::makeUniqueRef):

1:25 AM Changeset in webkit [248849] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, build fix in WinCairo and GTK ports
https://bugs.webkit.org/show_bug.cgi?id=200767

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::enumerateMediaDevicesForFrame):

1:08 AM Changeset in webkit [248848] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

[WTF] Style checker should tell errors when it finds std::make_unique
https://bugs.webkit.org/show_bug.cgi?id=200878

Reviewed by Ross Kirsling.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_wtf_make_unique):
(check_style):
(CppChecker):

12:40 AM Changeset in webkit [248847] by youenn@apple.com
  • 29 edits
    4 deletes in trunk

enumerateDevices should return the same JS objects if called twice
https://bugs.webkit.org/show_bug.cgi?id=200767

Reviewed by Eric Carlson.

Source/WebCore:

Make MediaDevices store the last list of enumerated MediaDeviceInfo objects.
Reuse them for the next enumerateDevices call if needed.
In case of a device change event, make sure the next enumerateDevices call will fetch the new list of devices.
When constructing the new list of devices, reuse any preexisting device in the old list as specified by
https://w3c.github.io/mediacapture-main/#dom-mediadevices-enumeratedevices.

Update enumerateDevices to use a completion handler.
Remove MediaDevicesRequest and MediaDevicesEnumerationRequest.
Covered by updated test and existing tests.

  • Modules/mediastream/MediaDeviceInfo.cpp:

(WebCore::MediaDeviceInfo::MediaDeviceInfo):
(WebCore::MediaDeviceInfo::create):

  • Modules/mediastream/MediaDeviceInfo.h:
  • Modules/mediastream/MediaDeviceInfo.idl:
  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::MediaDevices):
(WebCore::MediaDevices::stop):
(WebCore::MediaDevices::refreshDevices):
(WebCore::MediaDevices::enumerateDevices):
(WebCore::MediaDevices::scheduledEventTimerFired):
(WebCore::MediaDevices::listenForDeviceChanges):
(WebCore::MediaDevices::addEventListener):

  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/MediaDevices.idl:
  • Modules/mediastream/MediaDevicesEnumerationRequest.cpp: Removed.
  • Modules/mediastream/MediaDevicesEnumerationRequest.h: Removed.
  • Modules/mediastream/MediaDevicesRequest.cpp: Removed.
  • Modules/mediastream/MediaDevicesRequest.h: Removed.
  • Modules/mediastream/RTCRtpSender.cpp:
  • Modules/mediastream/UserMediaClient.h:
  • Modules/mediastream/UserMediaController.cpp:

(WebCore::isAllowedToUse):
(WebCore::UserMediaController::canCallGetUserMedia const):

  • Modules/mediastream/UserMediaController.h:

(WebCore::UserMediaController::enumerateMediaDevices):

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

Source/WebKit:

Update code as enumerate device request is now gone.
Make use of async IPC to simplify code since we are now passing a completion handler directly.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):

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

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebUserMediaClient.cpp:

(WebKit::WebUserMediaClient::enumerateMediaDevices):

  • WebProcess/WebCoreSupport/WebUserMediaClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

LayoutTests:

  • fast/mediastream/device-change-event-2.html:

Aug 18, 2019:

11:59 PM Changeset in webkit [248846] by ysuzuki@apple.com
  • 1024 edits in trunk

[WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part
https://bugs.webkit.org/show_bug.cgi?id=200620

Source/JavaScriptCore:

Reviewed by Geoff Garen.

  • API/JSCallbackObject.h:

(JSC::JSCallbackObjectData::setPrivateProperty):

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::JSCallbackObject):

  • API/JSClassRef.cpp:

(OpaqueJSClassContextData::OpaqueJSClassContextData):
(OpaqueJSClass::contextData):

  • API/JSMarkingConstraintPrivate.cpp:

(JSContextGroupAddMarkingConstraint):

  • API/JSWrapperMap.mm:

(-[JSWrapperMap initWithGlobalContextRef:]):

  • API/ObjCCallbackFunction.mm:

(ArgumentTypeDelegate::typeInteger):
(ArgumentTypeDelegate::typeDouble):
(ArgumentTypeDelegate::typeBool):
(ArgumentTypeDelegate::typeId):
(ArgumentTypeDelegate::typeOfClass):
(ArgumentTypeDelegate::typeStruct):
(ResultTypeDelegate::typeInteger):
(ResultTypeDelegate::typeDouble):
(ResultTypeDelegate::typeBool):
(ResultTypeDelegate::typeVoid):
(ResultTypeDelegate::typeId):
(ResultTypeDelegate::typeOfClass):
(ResultTypeDelegate::typeBlock):
(ResultTypeDelegate::typeStruct):
(objCCallbackFunctionForInvocation):

  • API/glib/JSCContext.cpp:

(jscContextSetVirtualMachine):

  • API/glib/JSCWrapperMap.cpp:

(JSC::WrapperMap::WrapperMap):

  • assembler/ProbeStack.cpp:

(JSC::Probe::Stack::ensurePageFor):

  • b3/B3LowerToAir.cpp:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::Procedure):
(JSC::B3::Procedure::dominators):
(JSC::B3::Procedure::naturalLoops):
(JSC::B3::Procedure::backwardsCFG):
(JSC::B3::Procedure::backwardsDominators):
(JSC::B3::Procedure::addDataSection):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::cCallSpecial):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):

  • b3/air/testair.cpp:
  • b3/testb3.h:

(compileProc):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/AccessCaseSnippetParams.cpp:
  • bytecode/BytecodeBasicBlock.cpp:

(JSC::BytecodeBasicBlock::computeImpl):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::setFrameShuffleData):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::ensureJITDataSlow):
(JSC::CodeBlock::setCalleeSaveRegisters):
(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffsetSlow):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::createRareDataIfNecessary):

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::ExitProfile::add):

  • bytecode/DeferredCompilationCallback.cpp:

(JSC::DeferredCompilationCallback::ensureDeferredSourceDump):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::operator=):

  • bytecode/LazyOperandValueProfile.cpp:

(JSC::CompressedLazyOperandValueProfileHolder::add):

  • bytecode/PolyProtoAccessChain.h:

(JSC::PolyProtoAccessChain::clone):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/PutByIdVariant.cpp:

(JSC::PutByIdVariant::operator=):

  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::addCallLinkStatus):
(JSC::RecordedStatuses::addGetByIdStatus):
(JSC::RecordedStatuses::addPutByIdStatus):
(JSC::RecordedStatuses::addInByIdStatus):

  • bytecode/StructureStubClearingWatchpoint.cpp:

(JSC::WatchpointsOnStructureStubInfo::ensureReferenceAndAddWatchpoint):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::addAccessCase):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::livenessAnalysisSlow):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::createRareDataIfNecessary):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::ensureRareDataSlow):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::generate):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::AbstractInterpreter):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::livenessFor):
(JSC::DFG::Graph::killsFor):
(JSC::DFG::Graph::ensureCPSCFG):
(JSC::DFG::Graph::ensureCPSDominators):
(JSC::DFG::Graph::ensureSSADominators):
(JSC::DFG::Graph::ensureCPSNaturalLoops):
(JSC::DFG::Graph::ensureSSANaturalLoops):
(JSC::DFG::Graph::ensureBackwardsCFG):
(JSC::DFG::Graph::ensureBackwardsDominators):
(JSC::DFG::Graph::ensureControlEquivalenceAnalysis):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::addressOfDoubleConstant):

  • dfg/DFGLivenessAnalysisPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::slowPathCall):
(JSC::DFG::slowPathMove):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::emitStructureCheck):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::createNewThread):

  • disassembler/Disassembler.cpp:

(JSC::disassembleAsynchronously):

  • ftl/FTLAbstractHeap.cpp:

(JSC::FTL::IndexedAbstractHeap::atSlow):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLFail.cpp:

(JSC::FTL::fail):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lazySlowPath):

  • ftl/FTLState.cpp:

(JSC::FTL::State::State):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::allocatorForSlow):

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::protectedObjectTypeCounts):
(JSC::Heap::objectTypeCounts):
(JSC::Heap::addCoreConstraints):

  • heap/HeapInlines.h:
  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::buildSnapshot):

  • heap/IsoCellSet.cpp:

(JSC::IsoCellSet::addSlow):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):

  • heap/MarkingConstraintSet.cpp:

(JSC::MarkingConstraintSet::add):

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::warnUnimplemented):

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
(Inspector::JSGlobalObjectInspectorController::ensureInspectorAgent):
(Inspector::JSGlobalObjectInspectorController::ensureDebuggerAgent):
(Inspector::JSGlobalObjectInspectorController::createLazyAgents):

  • inspector/agents/InspectorAgent.cpp:

(Inspector::InspectorAgent::InspectorAgent):

  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::InspectorConsoleAgent):
(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::logTiming):
(Inspector::InspectorConsoleAgent::stopTiming):
(Inspector::InspectorConsoleAgent::count):
(Inspector::InspectorConsoleAgent::countReset):

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::InspectorDebuggerAgent):

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::InspectorHeapAgent):

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::InspectorScriptProfilerAgent):

  • inspector/agents/InspectorTargetAgent.cpp:

(Inspector::InspectorTargetAgent::InspectorTargetAgent):

  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:

(Inspector::JSGlobalObjectDebuggerAgent::breakpointActionLog):

  • inspector/agents/JSGlobalObjectRuntimeAgent.cpp:

(Inspector::JSGlobalObjectRuntimeAgent::JSGlobalObjectRuntimeAgent):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:

(Inspector::RemoteInspectorSocketEndpoint::createClient):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.h:
  • inspector/scripts/codegen/objc_generator_templates.py:
  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/generic/expected/domain-availability.json-result:
  • inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/generic/expected/enum-values.json-result:
  • inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):
(JSC::JIT::link):

  • jit/JITThunks.cpp:

(JSC::JITThunks::JITThunks):

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jsc.cpp:

(runJSC):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):

  • parser/Parser.h:

(JSC::Scope::pushLabel):
(JSC::Parser<LexerType>::parse):

  • parser/ParserArena.h:

(JSC::ParserArena::identifierArena):

  • profiler/ProfilerCompilation.cpp:

(JSC::Profiler::Compilation::executionCounterFor):

  • runtime/Error.cpp:

(JSC::getStackTrace):

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::ensureRareDataSlow):

  • runtime/FunctionRareData.h:

(JSC::FunctionRareData::createAllocationProfileClearingWatchpoint):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::createRareDataIfNeeded):

  • runtime/JSRunLoopTimer.cpp:

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::registerVM):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::addDeletedOffset):

  • runtime/PropertyTable.cpp:

(JSC::PropertyTable::PropertyTable):

  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):

  • runtime/RegExp.h:
  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::ensureTemplateObjectMapImpl):

  • runtime/Structure.cpp:

(JSC::Structure::ensurePropertyReplacementWatchpointSet):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::setObjectToStringValue):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::localToEntry):
(JSC::SymbolTable::cloneScopePart):
(JSC::SymbolTable::prepareForTypeProfiling):
(JSC::SymbolTable::setRareDataCodeBlock):

  • runtime/TypeSet.cpp:

(JSC::StructureShape::propertyHash):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::ensureHeapProfiler):
(JSC::VM::enableTypeProfiler):
(JSC::VM::enableControlFlowProfiler):
(JSC::VM::queueMicrotask):
(JSC::VM::ensureShadowChicken):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::emitCheck):
(JSC::Wasm::parseAndCompileAir):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::Worklist):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
(JSC::Yarr::ByteCompiler::regexBegin):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::compile):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::CharacterClassConstructor::charClass):
(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::resetForReparsing):
(JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin):
(JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin):
(JSC::Yarr::YarrPatternConstructor::copyDisjunction):
(JSC::Yarr::anycharCreate):

  • yarr/YarrPattern.h:

(JSC::Yarr::PatternDisjunction::addNewAlternative):

  • yarr/create_regex_tables:
  • yarr/generateYarrUnicodePropertyTables.py:

Source/WebCore:

Reviewed by Geoff Garen.

  • Modules/applicationmanifest/ApplicationManifestParser.cpp:

(WebCore::ApplicationManifestParser::logDeveloperWarning):

  • Modules/beacon/NavigatorBeacon.cpp:

(WebCore::NavigatorBeacon::from):

  • Modules/cache/DOMWindowCaches.cpp:

(WebCore::DOMWindowCaches::from):

  • Modules/cache/WorkerGlobalScopeCaches.cpp:

(WebCore::WorkerGlobalScopeCaches::from):

  • Modules/credentialmanagement/NavigatorCredentials.cpp:

(WebCore::NavigatorCredentials::from):

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::InitDataRegistry::extractPsshBoxesFromCenc):

  • Modules/encryptedmedia/legacy/LegacyCDM.cpp:

(WebCore::LegacyCDM::create):

  • Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp:

(WebCore::LegacyCDMPrivateClearKey::createSession):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::loadBlob):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch):
(WebCore::FetchResponse::BodyLoader::start):

  • Modules/gamepad/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::from):

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::provideGeolocationTo):

  • Modules/geolocation/NavigatorGeolocation.cpp:

(WebCore::NavigatorGeolocation::from):

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::from):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::index):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::createIndex):

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::from):

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer):

  • Modules/indexeddb/client/TransactionOperation.cpp:

(WebCore::IDBClient::TransactionOperation::TransactionOperation):

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getOrCreateUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::ensureQuotaUser):

  • Modules/indexeddb/server/IndexValueStore.cpp:

(WebCore::IDBServer::IndexValueStore::addRecord):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::create):
(WebCore::IDBServer::MemoryBackingStoreTransaction::MemoryBackingStoreTransaction):
(WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::create):
(WebCore::IDBServer::MemoryIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::MemoryIDBBackingStore::setDatabaseInfo):

  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::putIndexKey):
(WebCore::IDBServer::MemoryIndex::maybeOpenCursor):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::addRecord):
(WebCore::IDBServer::MemoryObjectStore::maybeOpenCursor):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatement):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::maybeCreate):
(WebCore::IDBServer::SQLiteIDBCursor::maybeCreateBackingStoreCursor):
(WebCore::IDBServer::SQLiteIDBCursor::createSQLiteStatement):
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):

  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::begin):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):

  • Modules/indexeddb/shared/IDBRequestData.cpp:

(WebCore::IDBRequestData::IDBRequestData):
(WebCore::IDBRequestData::isolatedCopy):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::decode):

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::IDBResultData):
(WebCore::IDBResultData::isolatedCopy):
(WebCore::IDBResultData::openDatabaseSuccess):
(WebCore::IDBResultData::openDatabaseUpgradeNeeded):
(WebCore::IDBResultData::deleteDatabaseSuccess):
(WebCore::IDBResultData::putOrAddSuccess):
(WebCore::IDBResultData::getRecordSuccess):
(WebCore::IDBResultData::getAllRecordsSuccess):
(WebCore::IDBResultData::openCursorSuccess):
(WebCore::IDBResultData::iterateCursorSuccess):

  • Modules/indexeddb/shared/IDBResultData.h:

(WebCore::IDBResultData::decode):

  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::versionChange):
(WebCore::IDBTransactionInfo::IDBTransactionInfo):
(WebCore::IDBTransactionInfo::isolatedCopy):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::decode):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::quotaManager):

  • Modules/mediacapabilities/NavigatorMediaCapabilities.cpp:

(WebCore::NavigatorMediaCapabilities::from):

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::mockPicker):
(WebCore::WebMediaSessionManager::addPlaybackTargetPickerClient):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::buffered const):
(WebCore::MediaSource::setLiveSeekableRange):

  • Modules/mediastream/NavigatorMediaDevices.cpp:

(WebCore::NavigatorMediaDevices::from):

  • Modules/mediastream/UserMediaController.cpp:

(WebCore::provideUserMediaTo):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::channelEvent):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::collectTransceivers):
(WebCore::LibWebRTCMediaEndpoint::newTransceiver):
(WebCore::LibWebRTCMediaEndpoint::createTransceiverBackends):
(WebCore::LibWebRTCMediaEndpoint::transceiverBackendFromSender):
(WebCore::LibWebRTCMediaEndpoint::createDataChannel):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::createLibWebRTCPeerConnectionBackend):
(WebCore::LibWebRTCPeerConnectionBackend::videoReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::audioReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::createDTMFBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:

(WebCore::LibWebRTCRtpTransceiverBackend::createReceiverBackend):
(WebCore::LibWebRTCRtpTransceiverBackend::createSenderBackend):

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):

  • Modules/notifications/NotificationController.cpp:

(WebCore::provideNotification):

  • Modules/quota/DOMWindowQuota.cpp:

(WebCore::DOMWindowQuota::from):

  • Modules/quota/NavigatorStorageQuota.cpp:

(WebCore::NavigatorStorageQuota::from):

  • Modules/quota/WorkerNavigatorStorageQuota.cpp:

(WebCore::WorkerNavigatorStorageQuota::from):

  • Modules/speech/DOMWindowSpeechSynthesis.cpp:

(WebCore::DOMWindowSpeechSynthesis::from):

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::ensurePlatformSpeechSynthesizer):

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::decodeAsync):

  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):

  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::decodeAudioData):

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::createKernel):
(WebCore::BiquadProcessor::getFrequencyResponse):

  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::ChannelMergerNode):

  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::ChannelSplitterNode):

  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):
(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):

  • Modules/webaudio/DelayProcessor.cpp:

(WebCore::DelayProcessor::createKernel):

  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
(WebCore::DynamicsCompressorNode::initialize):

  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::GainNode):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
(WebCore::MediaStreamAudioSourceNode::setFormat):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::OscillatorNode):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::createBandLimitedTables):

  • Modules/webaudio/RealtimeAnalyser.cpp:

(WebCore::RealtimeAnalyser::RealtimeAnalyser):
(WebCore::RealtimeAnalyser::setFftSize):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::ScriptProcessorNode):

  • Modules/webaudio/WaveShaperDSPKernel.cpp:

(WebCore::WaveShaperDSPKernel::lazyInitializeOversampling):

  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::WaveShaperNode):

  • Modules/webaudio/WaveShaperProcessor.cpp:

(WebCore::WaveShaperProcessor::createKernel):

  • Modules/webauthn/fido/FidoHidMessage.cpp:

(fido::FidoHidMessage::FidoHidMessage):

  • Modules/webauthn/fido/FidoHidPacket.cpp:

(fido::FidoHidInitPacket::createFromSerializedData):
(fido::FidoHidContinuationPacket::createFromSerializedData):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::close):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::tableNames):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::DatabaseThread):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::recordCreatingDatabase):
(WebCore::DatabaseTracker::recordDeletingDatabase):

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::executeSql):
(WebCore::SQLTransaction::openTransactionAndPreflight):

  • Modules/webdriver/NavigatorWebDriver.cpp:

(WebCore::NavigatorWebDriver::from):

  • Modules/webgpu/NavigatorGPU.cpp:

(WebCore::NavigatorGPU::from):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::createEntryPointScaffolding):
(WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::createEntryPointScaffolding):

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::TypeNamer::createNameNode):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::Checker::assignConcreteType):
(WebCore::WHLSL::Checker::assignType):
(WebCore::WHLSL::Checker::forwardType):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parseSemantic):

  • Modules/webgpu/WorkerNavigatorGPU.cpp:

(WebCore::WorkerNavigatorGPU::from):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpgradeURL):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):
(WebCore::WebSocketChannel::enqueueTextFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::enqueueBlobFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):

  • Modules/websockets/WebSocketDeflateFramer.cpp:

(WebCore::WebSocketDeflateFramer::createExtensionProcessor):
(WebCore::WebSocketDeflateFramer::enableDeflate):
(WebCore::WebSocketDeflateFramer::deflate):
(WebCore::WebSocketDeflateFramer::inflate):

  • Modules/websockets/WebSocketDeflater.cpp:

(WebCore::WebSocketDeflater::WebSocketDeflater):
(WebCore::WebSocketInflater::WebSocketInflater):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):

  • Modules/webvr/NavigatorWebVR.cpp:

(WebCore::NavigatorWebVR::from):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::updateFinishedState):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::queueTaskToEventLoop):

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::jsEventTargetCast):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::transferArrayBuffers):
(WebCore::SerializedScriptValue::create):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::decode):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::initNormalWorld):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):

  • bridge/c/c_class.cpp:

(JSC::Bindings::CClass::methodNamed const):
(JSC::Bindings::CClass::fieldNamed const):

  • bridge/objc/objc_class.mm:

(JSC::Bindings::ObjcClass::methodNamed const):
(JSC::Bindings::ObjcClass::fieldNamed const):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::callObjCFallbackObject):

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::CombinedURLFilters::CombinedURLFilters):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):

  • crypto/SubtleCrypto.cpp:

(WebCore::normalizeCryptoAlgorithmParameters):
(WebCore::crossThreadCopyImportParams):

  • css/CSSCalculationValue.cpp:

(WebCore::determineCategory):

  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):

  • css/CSSGroupingRule.cpp:

(WebCore::CSSGroupingRule::cssRules const):

  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::saveCachedImageForSize):

  • css/CSSKeyframesRule.cpp:

(WebCore::CSSKeyframesRule::cssRules):

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::cssRules):

  • css/DOMCSSPaintWorklet.cpp:

(WebCore::DOMCSSPaintWorklet::from):

  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::from):

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::DocumentRuleSets):
(WebCore::DocumentRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::DocumentRuleSets::initializeUserStyle):
(WebCore::makeRuleSet):
(WebCore::DocumentRuleSets::resetAuthorStyle):
(WebCore::ensureInvalidationRuleSets):

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot):

  • css/FontFace.cpp:

(WebCore::populateFontFaceWithArrayBuffer):

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::wrapForDeprecatedCSSOM):

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::collectFeatures):
(WebCore::RuleFeatureSet::add):

  • css/RuleSet.cpp:

(WebCore::RuleSet::addToRuleSet):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertTo100PercentMinusLength):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue):
(WebCore::StyleBuilderCustom::applyInheritTextShadow):
(WebCore::StyleBuilderCustom::applyInheritBoxShadow):
(WebCore::StyleBuilderCustom::applyValueContent):

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::ensureCSSStyleDeclaration):
(WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::cascadedPropertiesForRollback):

  • css/makeprop.pl:

(generateFillLayerPropertyInheritValueSetter):
(generateFillLayerPropertyValueSetter):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::CSSParserImpl):
(WebCore::CSSParserImpl::parsePageSelector):
(WebCore::CSSParserImpl::consumeMediaRule):
(WebCore::CSSParserImpl::consumeSupportsRule):
(WebCore::CSSParserImpl::consumeKeyframesRule):

  • css/parser/CSSParserSelector.cpp:

(WebCore::CSSParserSelector::parsePagePseudoSelector):
(WebCore::CSSParserSelector::parsePseudoElementSelector):
(WebCore::CSSParserSelector::parsePseudoClassSelector):
(WebCore::CSSParserSelector::CSSParserSelector):
(WebCore::CSSParserSelector::adoptSelectorVector):
(WebCore::CSSParserSelector::prependTagSelector):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBasicShapePath):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::ensureBackupQueue):

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::items):
(WebCore::DataTransfer::createForInputEvent):
(WebCore::DataTransfer::createForDragStartEvent):
(WebCore::DataTransfer::setDragImage):

  • dom/DeviceOrientationController.cpp:

(WebCore::provideDeviceOrientationTo):

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::buildAccessKeyCache):
(WebCore::Document::implementation):
(WebCore::Document::formController):
(WebCore::Document::updateTextRenderer):
(WebCore::Document::userAgentShadowTreeStyleResolver):
(WebCore::Document::axObjectCache const):
(WebCore::Document::setParsing):
(WebCore::Document::accessSVGExtensions):
(WebCore::Document::initSecurityContext):
(WebCore::Document::textAutoSizing):
(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didAddTouchEventHandler):
(WebCore::Document::didLogMessage):
(WebCore::Document::registerCSSProperty):
(WebCore::Document::deviceOrientationAndMotionAccessController):
(WebCore::Document::contentChangeObserver):
(WebCore::Document::domTimerHoldingTank):

  • dom/Document.h:

(WebCore::Document::createParserYieldToken):

  • dom/DocumentEventQueue.cpp:

(WebCore::DocumentEventQueue::DocumentEventQueue):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addMarker):

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::from):
(WebCore::DocumentStorageAccess::requestStorageAccess):
(WebCore::DocumentStorageAccess::enableTemporaryTimeUserGesture):

  • dom/Element.cpp:

(WebCore::Element::attributes const):
(WebCore::Element::setIsDefinedCustomElement):
(WebCore::Element::enqueueToUpgrade):
(WebCore::Element::classList):
(WebCore::Element::dataset):
(WebCore::Element::ensureIntersectionObserverData):
(WebCore::Element::ensureResizeObserverData):

  • dom/EventListenerMap.cpp:

(WebCore::EventListenerMap::add):

  • dom/EventNames.h:
  • dom/EventPath.cpp:

(WebCore::EventPath::buildPath):
(WebCore::EventPath::EventPath):

  • dom/IdTargetObserverRegistry.cpp:

(WebCore::IdTargetObserverRegistry::addObserver):

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):

  • dom/MutationObserver.cpp:

(WebCore::queueMutationObserverCompoundMicrotask):

  • dom/MutationObserverInterestGroup.cpp:

(WebCore::MutationObserverInterestGroup::createIfNeeded):

  • dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):

  • dom/Node.cpp:

(WebCore::Node::materializeRareData):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::registerMutationObserver):

  • dom/NodeRareData.h:

(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroups::addButton):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection):
(WebCore::ScriptExecutionContext::ensureRejectedPromiseTrackerSlow):

  • dom/SelectorQuery.cpp:
  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::moveShadowRootToNewDocument):
(WebCore::ShadowRoot::addSlotElementByName):

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::assignToSlot):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::addElementById):
(WebCore::TreeScope::addElementByName):
(WebCore::TreeScope::addImageMap):
(WebCore::TreeScope::addImageElementByUsemap):
(WebCore::TreeScope::labelElementForId):

  • editing/Editor.cpp:

(WebCore::createDataTransferForClipboardEvent):
(WebCore::Editor::Editor):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::ensureReplacementFragment):

  • editing/SelectionRectGatherer.cpp:

(WebCore::SelectionRectGatherer::clearAndCreateNotifier):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::HTMLConverter):
(HTMLConverterCaches::computedStylePropertyForElement):

  • editing/markup.cpp:

(WebCore::createPageForSanitizingWebContent):

  • fileapi/AsyncFileStream.cpp:

(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::AsyncFileStream):

  • fileapi/FileReader.cpp:

(WebCore::FileReader::readInternal):

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • history/CachedPage.cpp:

(WebCore::CachedPage::CachedPage):

  • history/PageCache.cpp:

(WebCore::PageCache::addIfCacheable):

  • html/FileInputType.cpp:

(WebCore::FileInputType::requestIcon):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):

  • html/FormController.cpp:

(WebCore::SavedFormState::deserialize):
(WebCore::FormController::createSavedFormStateMap):
(WebCore::FormController::takeStateForFormElement):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::relList const):

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::mapMouseEvent):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::setImageBuffer const):

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::updateNamedElementCache const):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::create):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::updateVisibleValidationMessage):

  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::updateNamedElementCache const):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::addToPastNamesMap):

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::sandbox):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::ensureImageLoader):
(WebCore::HTMLInputElement::resetListAttributeTargetObserver):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::sizes):
(WebCore::HTMLLinkElement::relList):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::finishInitialization):
(WebCore::HTMLMediaElement::seekWithTolerance):

  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::htmlFor):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::updateAfterStyleResolution):

  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::create):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::didAttachRenderers):
(WebCore::HTMLVideoElement::parseAttribute):

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::create):

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::setMessage):
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
(WebCore::ValidationMessage::requestToHideMessage):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::DisplayListDrawingContext::DisplayListDrawingContext):
(WebCore::CanvasRenderingContext2DBase::drawingContext const):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::printToConsole):

  • html/parser/CSSPreloadScanner.cpp:

(WebCore::CSSPreloadScanner::emitRule):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::insertHTMLElementOrFindCustomElementInterface):

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::insert):

  • html/parser/HTMLElementStack.cpp:

(WebCore::HTMLElementStack::insertAbove):
(WebCore::HTMLElementStack::pushCommon):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):

  • html/parser/HTMLToken.h:

(WebCore::HTMLToken::beginDOCTYPE):

  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::filterToken):
(WebCore::XSSAuditor::decodedHTTPBodySuffixTree):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerTextElement::resolveCustomStyle):

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::parser):

  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::parser):

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::loadTimerFired):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::clearAllWrappers):

  • inspector/DOMEditor.cpp:

(WebCore::DOMEditor::insertBefore):
(WebCore::DOMEditor::removeChild):
(WebCore::DOMEditor::setAttribute):
(WebCore::DOMEditor::removeAttribute):
(WebCore::DOMEditor::setOuterHTML):
(WebCore::DOMEditor::insertAdjacentHTML):
(WebCore::DOMEditor::replaceWholeText):
(WebCore::DOMEditor::replaceChild):
(WebCore::DOMEditor::setNodeValue):

  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::createDigest):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::createLazyAgents):
(WebCore::InspectorController::ensureInspectorAgent):
(WebCore::InspectorController::ensureDOMAgent):
(WebCore::InspectorController::ensurePageAgent):

  • inspector/InspectorHistory.cpp:

(WebCore::InspectorHistory::markUndoableState):

  • inspector/InspectorStyleSheet.cpp:

(ParsedStyleSheet::setSourceData):
(WebCore::InspectorStyleSheet::ensureSourceData):

  • inspector/NetworkResourcesData.cpp:

(WebCore::NetworkResourcesData::resourceCreated):

  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::connectFrontend):
(WebCore::WorkerInspectorController::createLazyAgents):

  • inspector/agents/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):

  • inspector/agents/InspectorCPUProfilerAgent.cpp:

(WebCore::InspectorCPUProfilerAgent::InspectorCPUProfilerAgent):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::setStyleSheetText):
(WebCore::InspectorCSSAgent::setStyleText):
(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::recordCanvasAction):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
(WebCore::InspectorDOMAgent::highlightRect):
(WebCore::InspectorDOMAgent::highlightQuad):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
(WebCore::InspectorDOMAgent::highlightFrame):
(WebCore::InspectorDOMAgent::setInspectedNode):
(WebCore::InspectorDOMAgent::didInvalidateStyleAttr):

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):

  • inspector/agents/InspectorDatabaseAgent.cpp:

(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):

  • inspector/agents/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):

  • inspector/agents/InspectorMemoryAgent.cpp:

(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::InspectorNetworkAgent):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::InspectorPageAgent):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):

  • inspector/agents/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::InspectorWorkerAgent):

  • inspector/agents/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::didReceiveResponse):
(WebCore::WebConsoleAgent::didFailLoading):

  • inspector/agents/WebHeapAgent.cpp:

(WebCore::WebHeapAgent::WebHeapAgent):

  • inspector/agents/page/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::PageRuntimeAgent):

  • inspector/agents/worker/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::breakpointActionLog):

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::displayBoxForLayoutBox const):
(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded):
(WebCore::Layout::LayoutState::createFormattingContext):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectInlineContent const):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::split const):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box):
(WebCore::Layout::Box::ensureRareData):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::TreeBuilder::createTableStructure):
(WebCore::Layout::printLayoutTreeForLiveDocuments):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::appendCell):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::create):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::validatePreflightResponse):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::loadApplicationManifest):
(WebCore::DocumentLoader::addAllArchiveResources):
(WebCore::DocumentLoader::addArchiveResource):
(WebCore::DocumentLoader::loadMainResource):
(WebCore::DocumentLoader::didGetLoadDecisionForIcon):

  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::initForSynthesizedDocument):
(WebCore::FrameLoader::detachChildren):

  • loader/LinkLoader.cpp:

(WebCore::createLinkPreloadResourceClient):

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleRedirect):
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::scheduleFormSubmission):
(WebCore::NavigationScheduler::scheduleRefresh):
(WebCore::NavigationScheduler::scheduleHistoryNavigation):
(WebCore::NavigationScheduler::schedulePageBlock):

  • loader/ProgressTracker.cpp:

(WebCore::ProgressTracker::incrementProgress):

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::checkForHeadCharset):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::setBodyDataFrom):
(WebCore::CachedImage::createImage):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::redirectReceived):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::addClientToSet):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::preload):
(WebCore::CachedResourceLoader::clearPreloads):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::ensureSessionResourceMap):
(WebCore::MemoryCache::addImageToCache):
(WebCore::MemoryCache::lruListFor):

  • loader/ios/PreviewLoader.mm:

(-[WebPreviewLoader initWithResourceLoader:resourceResponse:]):
(-[WebPreviewLoader connection:didFailWithError:]):
(WebCore::PreviewLoader::create):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::maybeCreateContextMenu):

  • page/DebugPageOverlays.cpp:

(WebCore::MouseWheelRegionOverlay::updateRegion):

  • page/EventHandler.cpp:

(WebCore::EventHandler::EventHandler):

  • page/FrameView.cpp:

(WebCore::FrameView::addEmbeddedObjectToUpdate):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::addViewportConstrainedObject):
(WebCore::FrameView::addScrollableArea):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::pushLayoutState):
(WebCore::FrameViewLayoutContext::pushLayoutStateForPaginationIfNeeded):

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::serviceWorker):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::initGroup):
(WebCore::Page::setResourceUsageOverlayVisible):

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::addMessage):
(WebCore::PageConsoleClient::messageWithTypeAndLevel):
(WebCore::PageConsoleClient::screenshot):

  • page/PageGroup.cpp:

(WebCore::PageGroup::captionPreferences):

  • page/Performance.cpp:

(WebCore::Performance::mark):
(WebCore::Performance::clearMarks):
(WebCore::Performance::measure):
(WebCore::Performance::clearMeasures):

  • page/PrintContext.cpp:

(WebCore::PrintContext::outputLinkedDestinations):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::startTimer):

  • page/RenderingUpdateScheduler.h:

(WebCore::RenderingUpdateScheduler::create):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):

  • page/SettingsBase.cpp:

(WebCore::SettingsBase::SettingsBase):

  • page/UserContentController.cpp:

(WebCore::UserContentController::addUserScript):
(WebCore::UserContentController::addUserStyleSheet):

  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::create):

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationController::CSSAnimationController):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
(WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::updateSourceSelf):

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::create):
(WebCore::ContentSecurityPolicyDirectiveList::setCSPDirective):

  • page/linux/ResourceUsageOverlayLinux.cpp:

(WebCore::ResourceUsageOverlay::platformInitialize):

  • page/mac/PageMac.mm:

(WebCore::Page::addSchedulePair):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):

  • page/scrolling/ScrollingMomentumCalculator.cpp:

(WebCore::ScrollingMomentumCalculator::create):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::appendChild):
(WebCore::ScrollingStateNode::insertChild):

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::commit):

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::appendChild):

  • page/scrolling/mac/ScrollingMomentumCalculatorMac.mm:

(WebCore::ScrollingMomentumCalculator::create):

  • platform/Length.cpp:

(WebCore::convertTo100PercentMinusLength):
(WebCore::blendMixedTypes):

  • platform/RemoteCommandListener.cpp:

(WebCore::RemoteCommandListener::create):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::create):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollAnimator const):
(WebCore::ScrollableArea::ensureSnapOffsetsInfo):

  • platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::ThreadGlobalData):

  • platform/audio/AudioBus.cpp:

(WebCore::AudioBus::AudioBus):
(WebCore::AudioBus::copyWithGainFrom):

  • platform/audio/AudioChannel.h:
  • platform/audio/AudioResampler.cpp:

(WebCore::AudioResampler::AudioResampler):
(WebCore::AudioResampler::configureChannels):

  • platform/audio/DynamicsCompressor.cpp:

(WebCore::DynamicsCompressor::setNumberOfChannels):

  • platform/audio/DynamicsCompressorKernel.cpp:

(WebCore::DynamicsCompressorKernel::setNumberOfChannels):

  • platform/audio/FFTFrame.cpp:

(WebCore::FFTFrame::createInterpolatedFrame):

  • platform/audio/HRTFDatabaseLoader.cpp:

(WebCore::HRTFDatabaseLoader::load):

  • platform/audio/HRTFElevation.cpp:

(WebCore::HRTFElevation::createForSubject):
(WebCore::HRTFElevation::createByInterpolatingSlices):

  • platform/audio/HRTFKernel.cpp:

(WebCore::HRTFKernel::HRTFKernel):
(WebCore::HRTFKernel::createImpulseResponse):

  • platform/audio/MultiChannelResampler.cpp:

(WebCore::MultiChannelResampler::MultiChannelResampler):

  • platform/audio/Panner.cpp:

(WebCore::Panner::create):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::create):

  • platform/audio/Reverb.cpp:

(WebCore::Reverb::initialize):

  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::ReverbConvolver):

  • platform/audio/ReverbConvolverStage.cpp:

(WebCore::ReverbConvolverStage::ReverbConvolverStage):

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestination::create):

  • platform/audio/ios/AudioDestinationIOS.cpp:

(WebCore::AudioDestination::create):

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::AudioSession):

  • platform/audio/mac/AudioDestinationMac.cpp:

(WebCore::AudioDestination::create):

  • platform/audio/mac/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::setInputFormat):
(WebCore::AudioSampleDataSource::setOutputFormat):

  • platform/audio/mac/AudioSessionMac.cpp:

(WebCore::AudioSession::AudioSession):

  • platform/cf/KeyedDecoderCF.cpp:

(WebCore::KeyedDecoder::decoder):

  • platform/cf/KeyedEncoderCF.cpp:

(WebCore::KeyedEncoder::encoder):

  • platform/cf/MainThreadSharedTimerCF.cpp:

(WebCore::setupPowerObserver):

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::create):

  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::ParentalControlsContentFilter::create):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::updateScrollSnapPoints):

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMFactoryClearKey::createCDM):

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):

  • platform/gamepad/mac/HIDGamepadProvider.cpp:

(WebCore::HIDGamepadProvider::deviceAdded):

  • platform/generic/KeyedDecoderGeneric.cpp:

(WebCore::KeyedDecoderGeneric::Dictionary::add):
(WebCore::KeyedDecoder::decoder):
(WebCore::KeyedDecoderGeneric::KeyedDecoderGeneric):

  • platform/generic/KeyedEncoderGeneric.cpp:

(WebCore::KeyedEncoder::encoder):

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimator::create):
(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation):

  • platform/glib/KeyedDecoderGlib.cpp:

(WebCore::KeyedDecoder::decoder):

  • platform/glib/KeyedEncoderGlib.cpp:

(WebCore::KeyedEncoder::encoder):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::startTimer):
(WebCore::BitmapImage::decode):

  • platform/graphics/ComplexTextController.cpp:

(WebCore::TextLayout::TextLayout):

  • platform/graphics/Font.cpp:

(WebCore::Font::ensureDerivedFontData const):

  • platform/graphics/Font.h:

(WebCore::Font::boundsForGlyph const):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::getCachedFontPlatformData):

  • platform/graphics/FontCascade.cpp:

(WebCore::retrieveOrAddCachedFonts):
(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::GlyphPageCacheEntry::setGlyphDataForCharacter):

  • platform/graphics/GlyphMetricsMap.h:

(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::setTransform):
(WebCore::GraphicsLayer::setChildrenTransform):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::startAnimationAsynchronously):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::MediaPlayer):
(WebCore::MediaPlayer::loadWithNextMediaEngine):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::seekable const):

  • platform/graphics/PathUtilities.cpp:

(WebCore::FloatPointGraph::findOrCreateNode):

  • platform/graphics/Region.cpp:

(WebCore::Region::setShape):

  • platform/graphics/Region.h:

(WebCore::Region::copyShape const):
(WebCore::Region::decode):

  • platform/graphics/TextTrackRepresentation.cpp:

(WebCore::TextTrackRepresentation::create):

  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::getExtensions):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::prepare):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMFactoryFairPlayStreaming::createCDM):

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::createSession):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::buffered const):

  • platform/graphics/avfoundation/WebMediaSessionManagerMac.cpp:

(WebCore::WebMediaSessionManagerMac::platformPicker):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):
(WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):
(WebCore::AVFWrapper::notificationCallback):
(WebCore::AVFWrapper::legibleOutputCallback):
(WebCore::AVFWrapper::resourceLoaderShouldWaitForLoadingOfRequestedResource):
(WebCore::AVFWrapper::platformLayer):

  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:

(WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
(WebCore::AudioTrackPrivateAVFObjC::setPlayerItemTrack):
(WebCore::AudioTrackPrivateAVFObjC::setAssetTrack):
(WebCore::AudioTrackPrivateAVFObjC::setMediaSelectionOption):

  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:

(WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::setAssetTrack):

  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::readTrackMetadata):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateRotationSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::seekable const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::buffered const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:

(WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
(WebCore::VideoTrackPrivateAVFObjC::setPlayerItemTrack):
(WebCore::VideoTrackPrivateAVFObjC::setAssetTrack):
(WebCore::VideoTrackPrivateAVFObjC::setMediaSelectonOption):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:

(WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::setAssetTrack):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::ensureLayerAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::TileController):
(WebCore::TileController::setContentsScale):
(WebCore::TileController::adjustTileCoverageRectForScrolling):
(WebCore::TileController::tiledScrollingIndicatorLayer):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::commonInit):
(WebCore::PlatformCALayerCocoa::setShapeRoundedRect):

  • platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:

(-[WebTiledBackingLayer createTileController:]):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::PlatformCALayerWin):

  • platform/graphics/ca/win/WebTiledBackingLayerWin.cpp:

(WebTiledBackingLayerWin::createTileController):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::createFactory):
(WebCore::m_private):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::swapBuffersIfNeeded):
(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::createFontPlatformData):

  • platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:

(WebCore::FontFamilySpecificationCoreText::fontRanges const):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensureGraphicsContext):

  • platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:

(TextTrackRepresentation::create):

  • platform/graphics/cv/TextureCacheCV.mm:

(WebCore::TextureCacheCV::create):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::ReferenceFilterOperation::loadExternalDocumentIfNeeded):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::createFontPlatformData):

  • platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::createFontCustomPlatformData):

  • platform/graphics/gpu/Texture.cpp:

(WebCore::Texture::create):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::ensureAudioSourceProvider):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateGStreamerBase::pushNextHolePunchBuffer):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamerMSE::buffered const):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:

(WebCore::MediaPlayerPrivateHolePunch::pushNextHolePunchBuffer):
(WebCore::MediaPlayerPrivateHolePunch::registerMediaEngine):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
  • platform/graphics/iso/ISOProtectionSchemeInfoBox.cpp:

(WebCore::ISOProtectionSchemeInfoBox::parse):

  • platform/graphics/iso/ISOSchemeInformationBox.cpp:

(WebCore::ISOSchemeInformationBox::parse):

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

  • platform/graphics/nicosia/NicosiaSceneIntegration.cpp:

(Nicosia::SceneIntegration::createUpdateScope):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::createCommand):

  • platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp:

(Nicosia::PaintingContextCairo::ForPainting::ForPainting):
(Nicosia::PaintingContextCairo::ForRecording::ForRecording):

  • platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.cpp:

(Nicosia::BackingStoreTextureMapperImpl::createFactory):

  • platform/graphics/nicosia/texmap/NicosiaCompositionLayerTextureMapperImpl.cpp:

(Nicosia::CompositionLayerTextureMapperImpl::createFactory):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:

(Nicosia::ContentLayerTextureMapperImpl::createFactory):

  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:

(Nicosia::GC3DLayer::swapBuffersIfNeeded):

  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp:

(Nicosia::ImageBackingTextureMapperImpl::createFactory):

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::getExtensions):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::mappedSymbolName):

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::getExtensions):
(WebCore::GraphicsContext3D::GraphicsContext3D):

  • platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::getExtensions):

  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:

(WebCore::TextureMapperGC3DPlatformLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::TextureMapperGL):
(WebCore::TextureMapper::platformCreateAccelerated):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::clone):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):

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

(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::createTiles):

  • platform/graphics/transforms/TransformState.cpp:

(WebCore::TransformState::operator=):
(WebCore::TransformState::applyTransform):
(WebCore::TransformState::setLastPlanarSecondaryQuad):

  • platform/graphics/transforms/TransformState.h:

(WebCore::TransformState::setSecondaryQuad):

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::createFontPlatformData):

  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::createFontCustomPlatformData):

  • platform/graphics/win/FullScreenController.cpp:

(WebCore::FullScreenController::FullScreenController):
(WebCore::FullScreenController::enterFullScreen):

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContext::platformInit):

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::platformInit):

  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::createFactory):
(WebCore::m_private):

  • platform/graphics/win/GraphicsContextWin.cpp:

(WebCore::GraphicsContext::createWindowsBitmap):

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaFoundation::buffered const):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::CustomVideoPresenter):

  • platform/graphics/win/WKCAImageQueue.cpp:

(WebCore::WKCAImageQueue::WKCAImageQueue):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForGlobalSelection):
(WebCore::Pasteboard::createForDragAndDrop):

  • platform/gtk/PasteboardHelper.cpp:

(WebCore::PasteboardHelper::writeClipboardContents):

  • platform/gtk/RenderThemeGadget.cpp:

(WebCore::RenderThemeGadget::create):

  • platform/gtk/RenderThemeWidget.cpp:

(WebCore::RenderThemeWidget::getOrCreate):
(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):
(WebCore::RenderThemeComboBox::RenderThemeComboBox):

  • platform/image-decoders/bmp/BMPImageDecoder.cpp:

(WebCore::BMPImageDecoder::decodeHelper):

  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::decode):

  • platform/image-decoders/gif/GIFImageReader.cpp:

(GIFFrameContext::decode):
(GIFImageReader::addFrameIfNecessary):

  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::decodeAtIndex):

  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::JPEGImageDecoder::decode):

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageDecoder::decode):

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::LegacyTileCache):
(WebCore::LegacyTileCache::commitScaleChange):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::createForCopyAndPaste):

  • platform/ios/QuickLook.mm:

(WebCore::registerQLPreviewConverterIfNeeded):

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListener::create):

  • platform/ios/ScrollAnimatorIOS.mm:

(WebCore::ScrollAnimator::create):

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):

  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListener::create):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimator::create):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::create):

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:

(WebCore::m_capturer):
(WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebCore::webkit_media_stream_src_init):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource):
(WebCore::m_capturer):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::BasicPacketSocketFactory::BasicPacketSocketFactory):
(WebCore::initializePeerConnectionFactoryAndThreads):
(WebCore::LibWebRTCProvider::createPeerConnection):
(WebCore::LibWebRTCProvider::certificateGenerator):

  • platform/mediastream/libwebrtc/LibWebRTCProviderGStreamer.cpp:

(WebCore::LibWebRTCProviderGStreamer::createDecoderFactory):
(WebCore::LibWebRTCProviderGStreamer::createEncoderFactory):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):

  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSourceMac::reconfigure):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV):
(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):

  • platform/mock/RTCNotifiersMock.cpp:

(WebCore::RemoteDataChannelNotifier::fire):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::registerMediaEngine):
(WebCore::MockMediaPlayerMediaSource::buffered const):

  • platform/network/BlobResourceHandle.cpp:
  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::createDecodeTask):

  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::ResourceHandle):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask _restart]):

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::createPrepareStatement):

  • platform/network/curl/CurlCacheManager.cpp:

(WebCore::CurlCacheManager::loadIndex):
(WebCore::CurlCacheManager::didReceiveResponse):

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlContext::CurlContext):
(WebCore::CurlHandle::willSetupSslCtx):

  • platform/network/curl/CurlFormDataStream.cpp:

(WebCore::CurlFormDataStream::getPostData):

  • platform/network/curl/CurlMultipartHandle.cpp:

(WebCore::CurlMultipartHandle::createIfNeeded):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::runOnMainThread):
(WebCore::CurlRequest::setupTransfer):

  • platform/network/curl/CurlRequestScheduler.cpp:

(WebCore::CurlRequestScheduler::workerThread):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::delegate):

  • platform/network/curl/SocketStreamHandleImplCurl.cpp:

(WebCore::SocketStreamHandleImpl::callOnWorkerThread):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate callFunctionOnMainThread:]):

  • platform/network/soup/DNSResolveQueueSoup.cpp:

(WebCore::DNSResolveQueueSoup::resolve):

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::getCredentialFromPersistentStorage):

  • platform/text/BidiResolver.h:

(WebCore::DerivedClass>::appendRunInternal):

  • platform/text/LocaleICU.cpp:

(WebCore::Locale::create):
(WebCore::LocaleICU::createLabelVector):
(WebCore::createFallbackMonthLabels):
(WebCore::createFallbackAMPMLabels):

  • platform/text/LocaleNone.cpp:

(WebCore::Locale::create):

  • platform/text/TextCodecICU.cpp:

(WebCore::TextCodecICU::registerCodecs):

  • platform/text/TextCodecLatin1.cpp:

(WebCore::TextCodecLatin1::registerCodecs):

  • platform/text/TextCodecReplacement.cpp:

(WebCore::TextCodecReplacement::registerCodecs):

  • platform/text/TextCodecUTF16.cpp:

(WebCore::TextCodecUTF16::registerCodecs):

  • platform/text/TextCodecUTF8.cpp:

(WebCore::TextCodecUTF8::registerCodecs):

  • platform/text/TextCodecUserDefined.cpp:

(WebCore::TextCodecUserDefined::registerCodecs):

  • platform/text/mac/LocaleMac.mm:

(WebCore::Locale::create):

  • platform/text/win/LocaleWin.cpp:

(WebCore::Locale::create):

  • platform/text/win/TextCodecWin.cpp:

(WebCore::newTextCodecWin):

  • platform/vr/openvr/VRPlatformManagerOpenVR.cpp:

(WebCore::VRPlatformManagerOpenVR::create):
(WebCore::VRPlatformManagerOpenVR::getVRDisplays):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):

  • platform/win/SearchPopupMenuDB.cpp:

(WebCore::SearchPopupMenuDB::createPreparedStatement):

  • platform/win/WCDataObject.cpp:

(WebCore::WCDataObject::SetData):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::buildReferenceFilter):

  • rendering/ComplexLineLayout.cpp:

(WebCore::createRun):
(WebCore::ComplexLineLayout::createRootInlineBox):
(WebCore::ComplexLineLayout::handleTrailingSpaces):
(WebCore::ComplexLineLayout::linkToEndLineIfNeeded):

  • rendering/FloatingObjects.cpp:

(WebCore::FloatingObject::create):
(WebCore::FloatingObject::copyToNewContainer const):
(WebCore::FloatingObject::cloneForNewParent const):
(WebCore::FloatingObjects::computePlacedFloatsTree):

  • rendering/Grid.cpp:

(WebCore::GridIterator::nextEmptyGridArea):

  • rendering/GridBaselineAlignment.cpp:

(WebCore::GridBaselineAlignment::updateBaselineAlignmentContext):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::computeFlexFactorUnitSize const):
(WebCore::GridTrackSizingAlgorithm::setup):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::listBasedTestResult const):
(WebCore::HitTestResult::mutableListBasedTestResult):

  • rendering/InlineIterator.h:

(WebCore::addPlaceholderRunForIsolatedInline):

  • rendering/LayerOverlapMap.cpp:

(WebCore::LayerOverlapMap::pushCompositingContainer):

  • rendering/RenderBlock.cpp:

(WebCore::insertIntoTrackedRendererMaps):
(WebCore::PositionedDescendantsMap::addDescendant):
(WebCore::RenderBlock::beginUpdateScrollInfoAfterLayoutTransaction):
(WebCore::ensureBlockRareData):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::layoutLineGridBox):
(WebCore::RenderBlockFlow::createFloatingObjects):
(WebCore::RenderBlockFlow::ensureLineBoxes):
(WebCore::RenderBlockFlow::materializeRareBlockFlowData):

  • rendering/RenderBox.cpp:

(WebCore::controlStatesForRenderer):
(WebCore::RenderBox::createInlineBox):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::ensureContinuationChainNode):

  • rendering/RenderCounter.cpp:

(WebCore::makeCounterNode):

  • rendering/RenderFragmentContainer.cpp:

(WebCore::RenderFragmentContainer::setRenderBoxFragmentInfo):

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::containingFragmentMap):

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::push):
(WebCore::RenderGeometryMap::pushView):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat const):
(WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::RenderImage):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::createInlineFlowBox):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateNormalFlowList):
(WebCore::RenderLayer::collectLayers):
(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::updateClipRects):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAncestorClippingStack):
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh):
(WebCore::LegacyWebKitScrollingLayerCoordinator::registerAllViewportConstrainedLayers):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::createLayer):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::createInlineBox):

  • rendering/RenderMultiColumnFlow.cpp:

(WebCore::RenderMultiColumnFlow::RenderMultiColumnFlow):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::ensureRareData):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::styleDidChange):

  • rendering/RenderText.cpp:

(WebCore::RenderText::createTextBox):
(WebCore::RenderText::momentarilyRevealLastTypedCharacter):

  • rendering/RenderView.cpp:

(WebCore::RenderView::repaintViewRectangle const):
(WebCore::RenderView::compositor):
(WebCore::RenderView::imageQualityController):
(WebCore::RenderView::RepaintRegionAccumulator::RepaintRegionAccumulator):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::placeEllipsis):

  • rendering/RootInlineBox.h:

(WebCore::RootInlineBox::appendFloat):

  • rendering/SelectionRangeData.cpp:

(WebCore::collect):
(WebCore::SelectionRangeData::collectBounds const):
(WebCore::SelectionRangeData::apply):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::Layout::runResolver const):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::generateLineBoxTree):

  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizing::addTextNode):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::skipLeadingWhitespace):

  • rendering/shapes/RasterShape.cpp:

(WebCore::RasterShapeIntervals::computeShapeMarginIntervals const):

  • rendering/shapes/Shape.cpp:

(WebCore::createInsetShape):
(WebCore::createCircleShape):
(WebCore::createEllipseShape):
(WebCore::createPolygonShape):
(WebCore::Shape::createShape):
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createBoxShape):

  • rendering/shapes/ShapeOutsideInfo.h:
  • rendering/style/BasicShapes.cpp:

(WebCore::BasicShapePath::blend const):

  • rendering/style/ContentData.h:
  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::clonePtr):
(WebCore::RenderStyle::addCachedPseudoStyle):
(WebCore::RenderStyle::addCustomPaintWatchProperty):
(WebCore::RenderStyle::setContent):
(WebCore::RenderStyle::accessCounterDirectives):
(WebCore::RenderStyle::ensureAnimations):
(WebCore::RenderStyle::ensureTransitions):

  • rendering/style/SVGRenderStyleDefs.cpp:

(WebCore::StyleShadowSVGData::StyleShadowSVGData):

  • rendering/style/ShadowData.cpp:

(WebCore::ShadowData::ShadowData):

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::RenderSVGImage):

  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::createInlineFlowBox):

  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::createTextBox):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives const):
(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::RenderSVGResourceGradient::applyResource):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::updateShapeFromElement):

  • rendering/svg/SVGResources.cpp:

(WebCore::SVGResources::setClipper):
(WebCore::SVGResources::setFilter):
(WebCore::SVGResources::setMarkerStart):
(WebCore::SVGResources::setMarkerMid):
(WebCore::SVGResources::setMarkerEnd):
(WebCore::SVGResources::setMasker):
(WebCore::SVGResources::setFill):
(WebCore::SVGResources::setStroke):

  • rendering/svg/SVGResourcesCache.cpp:

(WebCore::SVGResourcesCache::addResourcesFromRenderer):

  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::RenderTreeBuilder):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::RenderTreeUpdater):

  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::Invalidator):

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::activeStyleSheetsContains const):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolve):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::SVGDocumentExtensions):
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::addElementReferencingTarget):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::ensureSVGRareData):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::supplementalTransform):

  • svg/SVGPathByteStream.h:

(WebCore::SVGPathByteStream::copy const):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::schedule):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

  • svg/properties/SVGAnimatedDecoratedProperty.h:

(WebCore::SVGAnimatedDecoratedProperty::create):

  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
  • svg/properties/SVGDecoratedEnumeration.h:

(WebCore::SVGDecoratedEnumeration::create):

  • svg/properties/SVGPrimitivePropertyAnimator.h:

(WebCore::SVGPrimitivePropertyAnimator::create):

  • svg/properties/SVGValuePropertyAnimatorImpl.h:
  • svg/properties/SVGValuePropertyListAnimatorImpl.h:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::from):

  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::InspectorStubFrontend):
(WebCore::Internals::Internals):
(WebCore::Internals::enableMockSpeechSynthesizer):
(WebCore::Internals::openDummyInspectorFrontend):
(WebCore::Internals::setPrinting):
(WebCore::Internals::initializeMockCDM):
(WebCore::Internals::queueMicroTask):

  • testing/LegacyMockCDM.cpp:

(WebCore::LegacyMockCDM::createSession):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::createCDM):

  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::create):

  • testing/MockGamepadProvider.cpp:

(WebCore::MockGamepadProvider::setMockGamepadDetails):

  • workers/WorkerConsoleClient.cpp:

(WebCore::WorkerConsoleClient::messageWithTypeAndLevel):

  • workers/WorkerEventQueue.cpp:

(WebCore::WorkerEventQueue::enqueueEvent):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::addMessage):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):

  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::WorkerRunLoop):
(WebCore::WorkerRunLoop::postTaskAndTerminate):
(WebCore::WorkerRunLoop::postTaskForMode):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::createResourceRequest):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ready):
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::terminateWorker):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::createBlobLoader):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::scheduleJob):
(WebCore::SWServer::unregisterServiceWorkerClient):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::runRegisterJob):

  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

  • worklets/WorkletConsoleClient.cpp:

(WebCore::WorkletConsoleClient::messageWithTypeAndLevel):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):
(WebCore::WorkletGlobalScope::addConsoleMessage):

  • worklets/WorkletScriptController.cpp:

(WebCore::WorkletScriptController::initScriptWithSubclass):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::upload):

  • xml/XPathFunctions.cpp:
  • xml/XPathPredicate.cpp:

(WebCore::XPath::evaluatePredicate):

  • xml/XSLStyleSheetLibxslt.cpp:

(WebCore::XSLStyleSheet::loadChildSheet):

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::handleError):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::PendingCallbacks::appendStartElementNSCallback):
(WebCore::PendingCallbacks::appendEndElementNSCallback):
(WebCore::PendingCallbacks::appendCharactersCallback):
(WebCore::PendingCallbacks::appendProcessingInstructionCallback):
(WebCore::PendingCallbacks::appendCDATABlockCallback):
(WebCore::PendingCallbacks::appendCommentCallback):
(WebCore::PendingCallbacks::appendInternalSubsetCallback):
(WebCore::PendingCallbacks::appendErrorCallback):
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::doEnd):

Source/WebCore/PAL:

Reviewed by Geoffrey Garen.

  • pal/crypto/openssl/CryptoDigestOpenSSL.cpp:

(PAL::CryptoDigestContextImpl::create):

  • pal/system/ClockGeneric.cpp:

(PAL::Clock::create):

  • pal/system/mac/ClockCM.mm:

(Clock::create):

Source/WebDriver:

Reviewed by Geoffrey Garen.

  • WebDriverService.cpp:

(WebDriver::WebDriverService::connectToBrowser):

  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::launchBrowser):
(WebDriver::SessionHost::sendMessageToBackend):

Source/WebKit:

Reviewed by Geoffrey Garen.

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):

  • NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp:
  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):
(WebKit::DownloadManager::convertNetworkLoadToDownload):
(WebKit::DownloadManager::resumeDownload):

  • NetworkProcess/Downloads/DownloadMap.cpp:

(WebKit::DownloadMap::add):

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::PendingDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):

  • NetworkProcess/NetworkContentRuleListManager.cpp:

(WebKit::NetworkContentRuleListManager::addContentRuleLists):

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::NetworkDataTaskBlob):
(WebKit::NetworkDataTaskBlob::download):

  • NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:

(WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveResponse):

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
(WebKit::NetworkLoadChecker::contentSecurityPolicy):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::switchToNewTestingSession):
(WebKit::NetworkProcess::ensureSession):
(WebKit::NetworkProcess::swServerForSession):
(WebKit::NetworkProcess::initializeQuotaUsers):
(WebKit::NetworkProcess::storageQuotaManager):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::addSupplement):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):
(WebKit::NetworkResourceLoader::startNetworkLoad):

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::create):

  • NetworkProcess/PreconnectTask.cpp:
  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::scheduleDatabaseUpdate):

  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::getOrCreateStorageArea):

  • NetworkProcess/WebStorage/SessionStorageNamespace.cpp:

(WebKit::SessionStorageNamespace::getOrCreateStorageArea):

  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::clone const):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateSessionStorageNamespace):

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::add):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:

(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::Cache):
(WebKit::NetworkCache::Cache::makeEntry):
(WebKit::NetworkCache::Cache::makeRedirectEntry):
(WebKit::NetworkCache::Cache::update):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::decodeStorageRecord):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresourceLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::satisfyPendingRequests):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::readRecord):
(WebKit::NetworkCache::retrieveFromMemory):
(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::traverse):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourcesEntry::decodeStorageRecord):

  • NetworkProcess/cache/PrefetchCache.cpp:

(WebKit::PrefetchCache::store):
(WebKit::PrefetchCache::storeRedirect):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformCreateDefaultStorageSession const):
(WebKit::NetworkProcess::networkHTTPSUpgradeChecker):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::NetworkSessionCocoa::create):
(WebKit::NetworkSessionCocoa::createWebSocketTask):

  • NetworkProcess/curl/NetworkProcessCurl.cpp:

(WebKit::NetworkProcess::platformCreateDefaultStorageSession const):

  • NetworkProcess/curl/NetworkSessionCurl.h:
  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:

(WebKit::NetworkConnectionToWebProcess::paymentCoordinator):
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorAuthorizationPresenter):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::download):

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformCreateDefaultStorageSession const):

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):
(WebKit::NetworkSessionSoup::createWebSocketTask):

  • NetworkProcess/soup/NetworkSessionSoup.h:
  • NetworkProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamReadAsync):

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::registerMDNSName):

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkRTCMonitor::startUpdating):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::wrapNewTCPConnection):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::enableIncomingMessagesThrottling):
(IPC::Connection::dispatchSyncMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):

  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::unwrapForTesting):

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageAsync):

  • Platform/IPC/MessageSender.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
(IPC::Connection::open):
(IPC::createMessageDecoder):
(IPC::Connection::receiveSourceEventHandler):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):
(IPC::Connection::sendOutputMessage):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::readEventHandler):

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createForPort):
(WebKit::LayerHostingContext::createForExternalHostingProcess):
(WebKit::LayerHostingContext::createForExternalPluginHostingProcess):

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::createPluginInternal):

  • Shared/API/APIURL.h:

(API::URL::create):
(API::URL::parseURLIfNecessary const):

  • Shared/API/Cocoa/RemoteObjectInvocation.mm:

(WebKit::RemoteObjectInvocation::decode):

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _initWithWebPage:]):
(-[_WKRemoteObjectRegistry _initWithWebPageProxy:]):
(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):

  • Shared/API/glib/WebKitContextMenuItem.cpp:

(webkitContextMenuItemCreate):
(webkit_context_menu_item_new):
(webkit_context_menu_item_new_from_gaction):
(webkit_context_menu_item_new_from_stock_action):
(webkit_context_menu_item_new_from_stock_action_with_label):
(webkit_context_menu_item_new_with_submenu):
(webkit_context_menu_item_new_separator):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::Handle::decode):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::texmapLayer):
(WebKit::CoordinatedGraphicsScene::ensureRootLayer):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor):

  • Shared/Plugins/NPRemoteObjectMap.cpp:

(WebKit::NPRemoteObjectMap::registerNPObject):

  • Shared/Plugins/Netscape/NetscapePluginModule.cpp:

(WebKit::NetscapePluginModule::tryLoad):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTransaction::decode):

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(WebKit::RemoteScrollingCoordinatorTransaction::decode):

  • Shared/cairo/ShareableBitmapCairo.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::registerObserver):

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetInjectedBundleClient):
(WKContextSetHistoryClient):
(WKContextSetDownloadClient):

  • UIProcess/API/C/WKGeolocationManager.cpp:

(WKGeolocationManagerSetProvider):

  • UIProcess/API/C/WKNotificationManager.cpp:

(WKNotificationManagerSetProvider):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageContextMenuClient):
(WKPageSetPageDiagnosticLoggingClient):
(WKPageSetPageFindClient):
(WKPageSetPageFindMatchesClient):
(WKPageSetPageFormClient):
(WKPageSetPageLoaderClient):
(WKPageSetPagePolicyClient):
(WKPageSetPageUIClient):
(WKPageSetPageStateClient):

  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(-[WKObservablePageState initWithPage:]):

  • UIProcess/API/C/wpe/WKView.cpp:

(WKViewSetViewClient):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController _initWithPageRef:]):

  • UIProcess/API/Cocoa/WKHTTPCookieStore.mm:

(-[WKHTTPCookieStore addObserver:]):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setDownloadDelegate:]):
(-[WKProcessPool _setAutomationDelegate:]):

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController addScriptMessageHandler:name:]):
(-[WKUserContentController _addScriptMessageHandler:name:userContentWorld:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
(-[WKWebView _setInputDelegate:]):

  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession setDelegate:]):

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController init]):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::readySQLiteStatement):

  • UIProcess/API/glib/WebKitAutomationSession.cpp:

(webkitAutomationSessionConstructed):

  • UIProcess/API/glib/WebKitContextMenuClient.cpp:

(attachContextMenuClientToView):

  • UIProcess/API/glib/WebKitCustomProtocolManagerClient.cpp:

(attachCustomProtocolManagerClientToContext):

  • UIProcess/API/glib/WebKitDownloadClient.cpp:

(attachDownloadClientToContext):

  • UIProcess/API/glib/WebKitFaviconDatabase.cpp:

(webkitFaviconDatabaseOpen):

  • UIProcess/API/glib/WebKitFindController.cpp:

(webkitFindControllerConstructed):

  • UIProcess/API/glib/WebKitFormClient.cpp:

(attachFormClientToView):

  • UIProcess/API/glib/WebKitGeolocationManager.cpp:

(webkitGeolocationManagerCreate):

  • UIProcess/API/glib/WebKitIconLoadingClient.cpp:

(attachIconLoadingClientToView):

  • UIProcess/API/glib/WebKitInjectedBundleClient.cpp:

(attachInjectedBundleClientToContext):

  • UIProcess/API/glib/WebKitNotificationProvider.cpp:

(WebKitNotificationProvider::WebKitNotificationProvider):

  • UIProcess/API/glib/WebKitUIClient.cpp:

(attachUIClientToView):

  • UIProcess/API/glib/WebKitUserContentManager.cpp:

(webkit_user_content_manager_register_script_message_handler):
(webkit_user_content_manager_register_script_message_handler_in_world):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkit_web_context_set_automation_allowed):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::createDrawingAreaProxy):

  • UIProcess/API/gtk/WebKitEmojiChooser.cpp:

(webkitEmojiChooserSetupEmojiSections):

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::handleRequest):

  • UIProcess/API/gtk/WebKitWebInspector.cpp:

(webkitWebInspectorCreate):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseConstructed):
(webkitWebViewBaseGestureController):
(webkitWebViewBaseDragAndDropHandler):
(webkitWebViewBaseDidRelaunchWebProcess):

  • UIProcess/API/mac/WKView.mm:

(-[WKView maybeInstallIconLoadingClient]):
(-[WKView initWithFrame:processPool:configuration:]):

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::createDrawingAreaProxy):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::View):
(WKWPE::View::setClient):

  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(WPEQtView::notifyLoadChangedCallback):
(WPEQtView::notifyLoadFailedCallback):
(WPEQtView::runJavaScript):

  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::create):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::WebAutomationSession):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::send):

  • UIProcess/Cocoa/IconLoadingDelegate.mm:

(WebKit::IconLoadingDelegate::createIconLoadingClient):

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::createContextMenuClient):
(WebKit::UIDelegate::createUIClient):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::startDisplayLink):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::createDrawingAreaProxy):
(WebKit::WebViewImpl::setTextIndicator):
(WebKit::WebViewImpl::ensureGestureController):

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:

(WebKit::DrawingAreaProxyCoordinatedGraphics::incorporateUpdate):
(WebKit::DrawingAreaProxyCoordinatedGraphics::dispatchAfterEnsuringDrawing):

  • UIProcess/DeviceIdHashSaltStorage.cpp:

(WebKit::DeviceIdHashSaltStorage::getDataFromDecoder const):
(WebKit::DeviceIdHashSaltStorage::completeDeviceIdHashSaltForOriginCall):

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::createDownloadProxy):

  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::setInitialConnectedGamepads):
(WebKit::UIGamepadProvider::platformGamepadConnected):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::createDownloadProxy):
(WebKit::NetworkProcessProxy::takeUploadAssertion):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::WebNotificationManagerProxy):
(WebKit::WebNotificationManagerProxy::setProvider):

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::pluginRequiresGtk2):

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::didConnectToProcess):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::initializeDebugIndicator):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:

(WebKit::RemoteLayerTreeNode::createWithPlainLayer):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::ScrollingTreeFrameScrollingNodeRemoteMac):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::ScrollingTreeOverflowScrollingNodeRemoteMac):

  • UIProcess/WebAuthentication/Cocoa/HidService.mm:

(WebKit::HidService::deviceAdded):

  • UIProcess/WebGeolocationManagerProxy.cpp:

(WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
(WebKit::WebGeolocationManagerProxy::setProvider):

  • UIProcess/WebMediaSessionFocusManager.cpp:

(WebKit::WebMediaSessionFocusManager::setFocusedMediaElement):

  • UIProcess/WebPageInspectorController.cpp:

(WebKit::WebPageInspectorController::WebPageInspectorController):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::setFormClient):
(WebKit::WebPageProxy::setUIClient):
(WebKit::WebPageProxy::setIconLoadingClient):
(WebKit::WebPageProxy::setFindClient):
(WebKit::WebPageProxy::setFindMatchesClient):
(WebKit::WebPageProxy::setContextMenuClient):
(WebKit::WebPageProxy::setInjectedBundleClient):
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::setDrawingArea):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::processNextQueuedWheelEvent):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::setFullscreenClient):
(WebKit::WebPageProxy::userMediaPermissionRequestManager):
(WebKit::WebPageProxy::setScrollPerformanceDataCollectionEnabled):
(WebKit::WebPageProxy::speechSynthesisData):

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::addProcessIfPossible):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::setInjectedBundleClient):
(WebKit::WebProcessPool::setHistoryClient):
(WebKit::WebProcessPool::setDownloadClient):
(WebKit::WebProcessPool::setAutomationClient):
(WebKit::WebProcessPool::setLegacyCustomProtocolManagerClient):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::didCollectPrewarmInformation):
(WebKit::WebProcessPool::setWebProcessHasUploads):
(WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia):

  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::createBackend):

  • UIProcess/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::inspect):

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::checkRequirements):

  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::dragDataSelection):

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::initializeEGL):

  • UIProcess/ios/EditableImageController.mm:

(WebKit::EditableImageController::ensureEditableImage):

  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView didMoveToWindow]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
(-[WKContentView _createDrawingAreaProxy:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::elementDidFocus):
(WebKit::WebPageProxy::paymentCoordinatorAuthorizationPresenter):

  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::PageClientImpl):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController initWithWindow:webView:page:]):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]):

  • UIProcess/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::inspect):

  • UIProcess/socket/RemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::platformStartTask):

  • UIProcess/win/BackingStoreDirect2D.cpp:

(WebKit::BackingStore::createBackend):

  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::createDrawingAreaProxy):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::WebView):

  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::setInitialGamepads):
(WebKit::WebGamepadProvider::gamepadConnected):

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetClient):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageSetContextMenuClient):
(WKBundlePageSetEditorClient):
(WKBundlePageSetFormClient):
(WKBundlePageSetPageLoaderClient):
(WKBundlePageSetResourceLoadClient):
(WKBundlePageSetUIClient):

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(WKBundlePageOverlayCreate):

  • WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:

(WKBundlePageBannerCreateBannerWithCALayer):

  • WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp:

(WebKit::getOrCreateDOMObjectCacheFrameObserver):
(WebKit::DOMObjectCache::put):

  • WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.cpp:

(WebKit::WebKitExtensionManager::initialize):

  • WebProcess/InjectedBundle/API/glib/WebKitWebEditor.cpp:

(webkitWebEditorCreate):

  • WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp:

(webkitWebExtensionCreate):

  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkitFrameGetOrCreate):
(webkitWebPageCreate):

  • WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:

(-[WKDOMTextIterator initWithRange:]):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]):
(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::InjectedBundle):
(WebKit::InjectedBundle::setClient):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::PendingMessage::PendingMessage):
(WebKit::WebSocketChannel::send):

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):
(WebKit::LibWebRTCProvider::createSocketFactory):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):
(WebKit::LibWebRTCSocketFactory::createAsyncResolver):

  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::PluginDestructionProtector::PluginDestructionProtector):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::scheduleTimer):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:

(WebKit::NetscapePluginStream::deliverData):

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePluginX11::create):

  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::initialize):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::createWebEvent const):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createColorChooser):
(WebKit::WebChromeClient::createDataListSuggestionPicker):

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::showPaintRect):

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:

(WebKit::WebPasteboardOverrides::addOverride):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::create):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::ensureBackingStore):
(WebKit::PlatformCALayerRemote::setTransform):
(WebKit::PlatformCALayerRemote::setSublayerTransform):
(WebKit::PlatformCALayerRemote::setFilters):
(WebKit::PlatformCALayerRemote::setShapeRoundedRect):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp:

(WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createSubframe):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):
(WebKit::WebPage::setInjectedBundleContextMenuClient):
(WebKit::WebPage::setInjectedBundleEditorClient):
(WebKit::WebPage::setInjectedBundleFormClient):
(WebKit::WebPage::setInjectedBundlePageLoaderClient):
(WebKit::WebPage::setInjectedBundleResourceLoadClient):
(WebKit::WebPage::setInjectedBundleUIClient):
(WebKit::WebPage::close):
(WebKit::WebPage::beginPrinting):

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

(WebKit::WebPrintOperationGtk::print):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindController::updateFindIndicator):

  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:

(WebKit::DisplayRefreshMonitorMac::requestRefreshCallback):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::ensureAutomationSessionProxy):
(WebKit::WebProcess::libWebRTCNetwork):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::addSupplement):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::Source):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::processTaskStateDidChange):
(WebKit::WebProcess::updateCPUMonitorState):

Source/WebKitLegacy:

Reviewed by Geoffrey Garen.

  • Storage/StorageSyncManager.cpp:

(WebCore::StorageSyncManager::StorageSyncManager):

  • Storage/StorageThread.cpp:

(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::StorageTracker):

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::defaultStorageSession):
(NetworkStorageSessionMap::switchToNewTestingSession):
(NetworkStorageSessionMap::ensureSession):

Source/WebKitLegacy/cf:

Reviewed by Geoffrey Garen.

  • WebCoreSupport/WebInspectorClientCF.cpp:

(WebInspectorClient::createFrontendSettings):

Source/WebKitLegacy/ios:

Reviewed by Geoffrey Garen.

  • WebCoreSupport/WebFixedPositionContent.mm:

(-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]):

Source/WebKitLegacy/mac:

Reviewed by Geoffrey Garen.

  • History/WebHistory.mm:

(-[WebHistoryPrivate init]):

  • History/WebHistoryItem.mm:

(-[WebHistoryItem initFromDictionaryRepresentation:]):

  • Plugins/Hosted/NetscapePluginHostProxy.mm:

(WKPCGetScriptableNPObjectReply):
(WKPCBooleanReply):
(WKPCBooleanAndDataReply):
(WKPCInstantiatePluginReply):

  • Plugins/Hosted/ProxyInstance.mm:

(WebKit::ProxyInstance::methodNamed):
(WebKit::ProxyInstance::fieldNamed):

  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(-[WebHostedNetscapePluginView createPlugin]):

  • Plugins/WebNetscapePluginEventHandler.mm:

(WebNetscapePluginEventHandler::create):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]):

  • Storage/WebDatabaseManagerClient.mm:

(DidModifyOriginData::dispatchToMainThread):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(addRedirectURL):
(WebFrameLoaderClient::savePlatformDataToCachedFrame):

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorClient::openLocalFrontend):

  • WebView/WebDeviceOrientationProviderMock.mm:
  • WebView/WebFrame.mm:

(-[WebFrame _attachScriptDebugger]):

  • WebView/WebMediaPlaybackTargetPicker.mm:

(WebMediaPlaybackTargetPicker::create):

  • WebView/WebTextIterator.mm:

(-[WebTextIterator initWithRange:]):

  • WebView/WebView.mm:

(-[WebView _injectOutlookQuirksScript]):
(-[WebView _commonInitializationWithFrameName:groupName:]):
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]):
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]):
(-[WebView _selectionServiceController]):
(-[WebView _setTextIndicator:withLifetime:]):

  • WebView/WebViewData.mm:

(WebViewLayerFlushScheduler::WebViewLayerFlushScheduler):
(-[WebViewPrivate init]):

Source/WebKitLegacy/win:

Reviewed by Geoffrey Garen.

  • FullscreenVideoController.cpp:

(FullscreenVideoController::FullscreenVideoController):

  • Plugins/PluginStream.cpp:

(WebCore::PluginStream::didReceiveData):

  • Plugins/PluginView.cpp:

(WebCore::PluginView::load):

  • Plugins/PluginViewWin.cpp:

(WebCore::PluginView::wndProc):

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::WebChromeClient):

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::WebFrameLoaderClient):
(WebFrameLoaderClient::savePlatformDataToCachedFrame):

  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorClient::openLocalFrontend):
(WebInspectorClient::highlight):

  • WebElementPropertyBag.cpp:

(WebElementPropertyBag::WebElementPropertyBag):

  • WebHistoryItem.cpp:

(WebHistoryItem::initFromDictionaryRepresentation):

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:

(WKQCA::CAD3DRenderer::createD3DPostProcessingContext):

  • WebNotificationCenter.cpp:

(WebNotificationCenter::WebNotificationCenter):

  • WebView.cpp:

(WebView::handleMouseEvent):
(WebView::registerEmbeddedViewMIMEType):
(WebView::enterVideoFullscreenForVideoElement):
(WebView::addUserScriptToGroup):
(WebView::addUserStyleSheetToGroup):
(WebView::setAcceleratedCompositing):

Source/WTF:

Reviewed by Geoff Garen.

This patch is second part of bug 200620 patch. I split I split it into three pieces to make roll-out easy.
his part, we convert std::make_unique to WTF::makeUnique or WTF::makeUniqueWithoutFastMallocCheck.
In the third patch, we will add a static_assert to makeUnique, which ensures the given class T is FastMalloced or IsoHeaped.

This patch adds WTF::makeUnique<T> and WTF::makeUniqueWithoutFastMallocCheck<T> as drop-in replacement for std::make_unique<T>.
WTF::makeUnique<T> has one additional static_assert check which ensures T FastMalloc / IsoHeap annotated. If it is not, the
compile error happens.

In this patch, I tried using this everywhere in WebKit as much as possible. And we found that surprisingly many classes are missing
FastMalloc annotation and allocated from system-malloc. Using WTF::makeUnique enforces classes / structs to use FastMalloc.

WTF::makeUniqueWithoutFastMallocCheck is offered for the corner cases. This is identical to std::make_unique. We use this for classes
that are offered by non-WebKit code base, like, zlib. This clear name can make us easily find this allocation is intentionally done
by system-malloc.

We do not take the following direction, WTF::makeUnique automatically allocates FastMalloc even if FastMalloc annotation is not attached.
Since default deleter is performing delete and this is not what we want for FastMalloced ones, we need to return
std::unique_ptr<T, FastFreeDeleter> for T if T does not have FastMalloc-annotation. Automatically doing this sounds a bit dangerous.

auto pointer = WTF::makeUnique<T>();
Super dangerous, but sometimes it is required...
auto* rawPointer = pointer.release();
Passing rawPointer to somewhere, and
delete rawPointer;

The above one becomes invalid because pointer may start requiring non delete destroying function.
In the above case, the correct way becomes the following.

rawPointer->~T();
fastFree(rawPointer);

This looks non-intuitive. And having two ways to destroying objects (delete or the above one) can be error-prone.
If we have WTF_MAKE_FAST_ALLOCATED for T, we do not need to care about this. "new" and "delete" operators are defined, and C++ way works.
The simple invariant, "makeUnique just does new internally. And delete operator does delete. default deleter is just doing delete", is kept.

While we need to annotate many classes with WTF_MAKE_FAST_ALLOCATED, it is one time cost when we add a class.
And, by introducing WTF::makeUnique<>, we no longer forget adding this.

makeUnique(...)
static_assert(T is FastMalloced or IsoHeaped);
return make_unique<T>(...)

  • benchmarks/LockFairnessTest.cpp:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/ConcurrentVector.h:
  • wtf/CrossThreadTaskHandler.cpp:

(WTF::CrossThreadTaskHandler::taskRunLoop):

  • wtf/FilePrintStream.cpp:

(WTF::FilePrintStream::open):

  • wtf/Function.h:

(WTF::Function<Out):

  • wtf/HashTable.h:

(WTF::KeyTraits>::HashTable):

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::setShouldUsePeriodicMemoryMonitor):

  • wtf/StdLibExtras.h:

(WTF::makeUnique):
(WTF::makeUniqueWithoutFastMallocCheck):

  • wtf/StreamBuffer.h:

(WTF::StreamBuffer::append):

  • wtf/UniqueRef.h:

(WTF::makeUniqueRefWithoutFastMallocCheck):
(WTF::makeUniqueRef):

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::dispatchAfter):

  • wtf/text/StringView.cpp:

(WTF::StringView::GraphemeClusters::Iterator::Iterator):

Tools:

Reviewed by Geoffrey Garen.

  • DumpRenderTree/TestRunner.cpp:

(addURLToRedirectCallback):
(setWillSendRequestClearHeaderCallback):
(TestRunner::setAccummulateLogsForChannel):
(TestRunner::runUIScript):
(TestRunner::setOpenPanelFiles):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpFramesAsText):

  • DumpRenderTree/mac/EventSendingController.mm:

(eventPressedMouseButtonsSwizzlerForViewAndEvent):

  • DumpRenderTree/win/DRTDataObject.cpp:

(DRTDataObject::SetData):

  • DumpRenderTree/win/FrameLoadDelegate.cpp:

(FrameLoadDelegate::FrameLoadDelegate):

  • DumpRenderTree/win/UIDelegate.cpp:

(DRTUndoManager::DRTUndoManager):
(UIDelegate::UIDelegate):
(UIDelegate::resetUndoManager):

  • TestWebKitAPI/JavaScriptTest.cpp:

(TestWebKitAPI::runJSTest):

  • TestWebKitAPI/PlatformUtilities.cpp:

(TestWebKitAPI::Util::toSTD):

  • TestWebKitAPI/Tests/WTF/Expected.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::testMovingUsingEnsure):
(TestWebKitAPI::testMovingUsingAdd):

  • TestWebKitAPI/Tests/WTF/HashSet.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/ListHashSet.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::runLockTest):

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
  • TestWebKitAPI/Tests/WTF/RefCounter.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Variant.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp:

(TestWebKitAPI::CARingBufferTest::SetUp):

  • TestWebKitAPI/Tests/WebCore/CalculationValue.cpp:

(TestWebKitAPI::createTestValue):

  • TestWebKitAPI/Tests/WebCore/FidoHidMessageTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp:
  • TestWebKitAPI/Tests/WebKit/CloseFromWithinCreatePage.cpp:

(TestWebKitAPI::createNewPage):

  • TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:

(TestWebKitAPI::createNewPage):

  • TestWebKitAPI/Tests/WebKit/TextFieldDidBeginAndEndEditing.cpp:
  • TestWebKitAPI/Tests/WebKit/UserMessage.cpp:

(TestWebKitAPI::WebKit2UserMessageRoundTripTest::SetUp):

  • TestWebKitAPI/Tests/WebKit/WillLoad.cpp:

(TestWebKitAPI::WebKit2WillLoadTest::SetUp):

  • TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle_Bundle.mm:

(TestWebKitAPI::ForceLightAppearanceInBundleTest::didReceiveMessage):

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(serverCallback):
(testWebViewAuthenticationProxyHTTPS):

  • TestWebKitAPI/Tests/WebKitGtk/DOMDOMWindowTest.cpp:

(WebKitDOMDOMWindowTest::create):

  • TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:

(TestWebKitAPI::Util::toSTD):

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(applyWorkaroundToAllowWritingAttributedStringsToItemProviders):
(-[TestWKWebView initWithFrame:configuration:addToWindow:]):

  • TestWebKitAPI/mac/TestFontOptions.mm:

(-[TestFontOptions initWithFontOptions:]):

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::callAfterScrollingCompletes):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didCreatePage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setOpenPanelFiles):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • WebKitTestRunner/StringFunctions.h:

(WTR::toSTD):
(WTR::toWTFString):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::TestController::generatePageConfiguration):
(WTR::TestController::resetStateToConsistentValues):
(WTR::createTestURL):
(WTR::TestController::runTest):
(WTR::TestController::platformCreateWebView):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::runUISideScript):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):
(WTR::TestController::setDefaultCalendarType):

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::getGDKKeySymForKeyRef):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::setKeyboardInputModeIdentifier):

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wpeKeySymForKeyRef):

11:05 PM Changeset in webkit [248845] by bshafiei@apple.com
  • 8 edits in branches/safari-608-branch/Source

Cherry-pick r248832. rdar://problem/54454547

[Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=200543
<rdar://problem/49394015>
Source/WebKit:

Reviewed by Brent Fulgham.

Adopt SPI to issue a process-specific sandbox extension for local file read, passing it the process
identifier of the WebContent process.

  • Shared/Cocoa/SandboxExtensionCocoa.mm: (WebKit::SandboxExtensionImpl::sandboxExtensionForType): (WebKit::SandboxExtension::createHandleForReadByPid):
  • Shared/SandboxExtension.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): (WebKit::WebPageProxy::loadFile):

Source/WTF:

Reviewed by Brent Fulgham.

Add new SPI.

  • wtf/Platform.h:
  • wtf/spi/darwin/SandboxSPI.h:

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

11:03 PM Changeset in webkit [248844] by bshafiei@apple.com
  • 8 edits
    2 adds in branches/safari-608-branch

Cherry-pick r248823. rdar://problem/54454713

Source/WebKit:
Use bundlePath SPI in AccessibilitySupport for WebProcessLoader
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

  • Platform/spi/ios/AccessibilitySupportSPI.h:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::accessibilityWebProcessLoaderBundlePath): (WebKit::registerWithAccessibility):

Source/WTF:
Added HAVE_ACCESSIBILITY_BUNDLES_PATH
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

  • wtf/Platform.h:

Tools:
Tested that accessibility WebProcessLoader bundle is loaded for the correct path.
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

Added AccessibilityTestPlugin on the web process to report whether a bundle is loaded and its path, so that it can be tested on WKContentView.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestPlugin.mm: Added. (-[AccessibilityTestPlugin webProcessPlugIn:didCreateBrowserContextController:]): (-[AccessibilityTestPlugin checkAccessibilityWebProcessLoaderBundleIsLoaded:]):
  • TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestSupportProtocol.h: Added.
  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm: (TestWebKitAPI::TEST):

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

11:03 PM Changeset in webkit [248843] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r248819. rdar://problem/54455005

Content in <iframe> should override "touch-action" set in embedding document
https://bugs.webkit.org/show_bug.cgi?id=200204
<rdar://problem/54355249>

Reviewed by Antoine Quint.

Source/WebKit:

Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::touchActionsForPoint):

If the topmost layer hit is a WKChildScrollView we know its content layer didn't have an event region.
This means we should return the default value 'auto'.

LayoutTests:

  • pointerevents/ios/touch-action-none-with-frame-inside-expected.txt: Added.
  • pointerevents/ios/touch-action-none-with-frame-inside.html: Added.

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

11:03 PM Changeset in webkit [248842] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-608-branch

Cherry-pick r248815. rdar://problem/54454993

[macOS] Emoji with variation selectors are rendered in text style, not emoji style
https://bugs.webkit.org/show_bug.cgi?id=200830
<rdar://problem/53076002>

Reviewed by Simon Fraser.

Source/WebCore:

When mapping characters to glyphs, Core Text is giving us the deleted glyph ID, which is unexpected.
We were treating it as a valid glyph ID, but it rather should be treated as an invalid glyph ID.

Test: fast/text/emoji-variation-selector.html

  • platform/graphics/mac/GlyphPageMac.cpp: (WebCore::GlyphPage::fill):

LayoutTests:

  • fast/text/emoji-variation-selector-expected-mismatch.html: Added.
  • fast/text/emoji-variation-selector.html: Added.
  • platform/win/TestExpectations: Mark as failing on Windows, because it doesn't support variation selectors.

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

11:03 PM Changeset in webkit [248841] by bshafiei@apple.com
  • 3 edits
    1 add in branches/safari-608-branch

Cherry-pick r248800. rdar://problem/54454996

CodeBlock destructor should clear all of its watchpoints.
https://bugs.webkit.org/show_bug.cgi?id=200792
<rdar://problem/53947800>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/codeblock-should-clear-watchpoints-on-destruction.js: Added.

Source/JavaScriptCore:

We need to clear the watchpoints explicitly (just like we do in CodeBlock::jettison())
because the JITCode may outlive the CodeBlock for a while. For example, the JITCode
is ref'd in Interpreter::execute(JSC::CallFrameClosure&) like so:

JSValue result = closure.functionExecutable->generatedJITCodeForCall()->execute(&vm, closure.protoCallFrame);

The call to generatedJITCodeForCall() returns a Ref<JITCode> with the underlying
JITCode ref'd. Hence, while the interpreter frame is still on the stack, the
executing JITCode instance will have a non-zero refCount, and be kept alive even
though its CodeBlock may have already been destructed.

Note: the Interpreter execute() methods aren't the only ones who would ref the JITCode:
ExecutableBase also holds a RefPtr<JITCode> m_jitCodeForCall and RefPtr<JITCode>
m_jitCodeForConstruct. But a CodeBlock will be uninstalled before it gets destructed.
Hence, the uninstallation will deref the JITCode before we get to the CodeBlock
destructor. That said, we should be aware that a JITCode's refCount is not always
1 after the JIT installs it into the CodeBlock, and it should not be assumed to be so.

For this patch, I also audited all Watchpoint subclasses to ensure that we are
clearing all the relevant watchpoints in the CodeBlock destructor. Here is the
list of audited Watchpoints:

CodeBlockJettisoningWatchpoint
AdaptiveStructureWatchpoint
AdaptiveInferredPropertyValueWatchpoint

  • these are held in the DFG::CommonData, and is tied to JITCode's life cycle.
  • they need to be cleared eagerly in CodeBlock's destructor.

LLIntPrototypeLoadAdaptiveStructureWatchpoint

  • stored in m_llintGetByIdWatchpointMap in the CodeBlock.
  • this will be automatically cleared on CodeBlock destruction.

The following does not reference CodeBlock:

FunctionRareData::AllocationProfileClearingWatchpoint

  • stored in FunctionRareData and will be cleared automatically on FunctionRareData destruction.
  • only references the owner FunctionRareData.

ObjectToStringAdaptiveStructureWatchpoint
ObjectToStringAdaptiveInferredPropertyValueWatchpoint

  • stored in StructureRareData and will be cleared automatically on StructureRareData destruction.

ObjectPropertyChangeAdaptiveWatchpoint

  • stored in JSGlobalObject, and will be cleared automatically on JSGlobalObject destruction.
  • only references the owner JSGlobalObject.

StructureStubClearingWatchpoint

  • stored in WatchpointsOnStructureStubInfo and will be cleared automatically on WatchpointsOnStructureStubInfo destruction.

PropertyWatchpoint
StructureWatchpoint

  • embedded in AdaptiveInferredPropertyValueWatchpointBase, which is extended as AdaptiveInferredPropertyValueWatchpoint, ObjectPropertyChangeAdaptiveWatchpoint, and ObjectToStringAdaptiveInferredPropertyValueWatchpoint.
  • life cycle is handled by those 3 subclasses.
  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::~CodeBlock):

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

11:03 PM Changeset in webkit [248840] by bshafiei@apple.com
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r248791. rdar://problem/54455008

Long pressing images with transparent backgrounds in dark mode causes a black background to appear around the image content
https://bugs.webkit.org/show_bug.cgi?id=200827
<rdar://53933379>

Reviewed by Tim Horton.

Set a clear color when there is no provided background.

  • UIProcess/ios/WKContentViewInteraction.mm: (createTargetedPreview):

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

11:03 PM Changeset in webkit [248839] by bshafiei@apple.com
  • 4 edits
    1 add in branches/safari-608-branch

Cherry-pick r248776. rdar://problem/54455007

REGRESSION (r248436): WKWebView doesn’t respect isOpaque setting in NIB.
https://bugs.webkit.org/show_bug.cgi?id=200802
rdar://problem/54357818

Reviewed by Tim Horton.

Source/WebKit:

Tests: WKWebView.IsOpaqueDefault, WKWebView.SetOpaqueYes, WKWebView.SetOpaqueNo, WKWebView.IsOpaqueYesSubclassOverridden,
WKWebView.IsOpaqueNoSubclassOverridden, WKWebView.IsOpaqueYesDecodedFromArchive, WKWebView.IsOpaqueNoDecodedFromArchive,
WKWebView.IsOpaqueDrawsBackgroundYesConfiguration, WKWebView.IsOpaqueDrawsBackgroundNoConfiguration.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]): Call _setOpaqueInternal:NO instead of self.opaque = NO. (-[WKWebView _setOpaqueInternal:]): Added. Moved code from setOpaque:. (-[WKWebView setOpaque:]): Call _setOpaqueInternal:.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added WKWebViewOpaque.mm.
  • TestWebKitAPI/Tests/ios/WKWebViewOpaque.mm: Added. (-[OpaqueTestWKWebView isOpaque]): Added. (-[NonOpaqueTestWKWebView isOpaque]): Added. (isOpaque): Added. (TEST): Added WKWebView.IsOpaqueDefault, WKWebView.SetOpaqueYes, WKWebView.SetOpaqueNo, WKWebView.IsOpaqueYesSubclassOverridden, WKWebView.IsOpaqueNoSubclassOverridden, WKWebView.IsOpaqueYesDecodedFromArchive, WKWebView.IsOpaqueNoDecodedFromArchive, WKWebView.IsOpaqueDrawsBackgroundYesConfiguration, WKWebView.IsOpaqueDrawsBackgroundNoConfiguration.

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

11:03 PM Changeset in webkit [248838] by bshafiei@apple.com
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r248747. rdar://problem/54365278

[Cocoa] Adopt -preventDisplaySleepForVideoPlayback
https://bugs.webkit.org/show_bug.cgi?id=200774

Reviewed by Eric Carlson.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):

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

11:03 PM Changeset in webkit [248837] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-608-branch

Cherry-pick r248733. rdar://problem/54454989

Occasional hang under -[UIKeyboardTaskQueue lockWhenReadyForMainThread] when long-pressing non-editable text
https://bugs.webkit.org/show_bug.cgi?id=200731
<rdar://problem/54315371>

Reviewed by Tim Horton.

Source/WebKit:

When handling a single tap in non-editable content, keyboards logic in UIKit may attempt to wait for all
pending tasks in UIKeyboardTaskQueue to finish executing (e.g. by calling -waitUntilAllTasksAreFinished]). If
the task queue has a pending task at this moment - for example, a text selection update that is waiting for a
response from the web process - this will result in a permanent deadlock, since the main thread will be blocked,
and therefore cannot receive any IPC communication from the web process.

One way to trigger this is to activate both the loupe gesture and non-editable text tap gesture simultaneously,
by tapping in a non-editable part of the web page, while an ongoing loupe gesture is driving selection updates
(see the layout test for more details).

To avoid getting into this scenario, prevent the text tap gesture recognizer from firing in a few edge cases
that could lead to hangs under keyboard code in UIKit. See comments below.

Test: editing/selection/ios/tap-during-loupe-gesture.html

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

Don't allow the text tap gesture recognizer to fire if the user is actively modifying the text selection using
the loupe gesture, or if there's other pending selection change updates that are pending responses from the web
content process.

(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):

Increment and decrement _suppressNonEditableSingleTapTextInteractionCount while handling these selection
updates.

LayoutTests:

Add a layout test to verify that tapping the page while handling a text loupe gesture doesn't cause the UI
process to hang indefinitely.

  • editing/selection/ios/tap-during-loupe-gesture-expected.txt: Added.
  • editing/selection/ios/tap-during-loupe-gesture.html: Added.

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

11:03 PM Changeset in webkit [248836] by bshafiei@apple.com
  • 4 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r248696. rdar://problem/54333944

REGRESSION(r245320): Web Automation: Perform Actions hangs when pointerdown happens near top of page
https://bugs.webkit.org/show_bug.cgi?id=200728
<rdar://problem/54260518>

Reviewed by Devin Rousso.

In the last major refactoring for this code, it seems that the argument to
platformSimulateMouseInteraction was not unified to use viewport coordinates
in all code paths. This patch fixes both callers to *not* add in topContentInset,
and instead this is added back in when doing platform-specific event simulation.

This has no effect on iOS since it's guarded by ENABLE(WEBDRIVER_MOUSE_INTERACTIONS),
which is only built on macOS.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::performMouseInteraction):
  • UIProcess/Automation/mac/WebAutomationSessionMac.mm: (WebKit::WebAutomationSession::platformSimulateMouseInteraction):

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

11:03 PM Changeset in webkit [248835] by bshafiei@apple.com
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r248028. rdar://problem/54454990

ASSERTion failure under takeSnapshot after r247846

  • page/TextIndicator.cpp: (WebCore::takeSnapshots): We now sometimes inflate the scale factor; allow this.

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

3:16 PM Changeset in webkit [248834] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][TFC] Compute column min/max widths and table width.
https://bugs.webkit.org/show_bug.cgi?id=200757
<rdar://problem/54333148>

Reviewed by Antti Koivisto.

For each column, determine a maximum and minimum column width from the cells that span only that column.
The minimum is that required by the cell with the largest minimum cell width (or the column 'width', whichever is larger).
The maximum is that required by the cell with the largest maximum cell width (or the column 'width', whichever is larger).

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns const):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::appendCell):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::columns):
(WebCore::Layout::TableGrid::rows):

1:27 PM Changeset in webkit [248833] by Ross Kirsling
  • 11 edits in trunk

[JSC] Correct a->an in error messages and API docblocks
https://bugs.webkit.org/show_bug.cgi?id=200833

Reviewed by Don Olmstead.

JSTests:

  • ChakraCore/test/UnitTestFramework/UnitTestFramework.js:

(assert.assert.return.throws):

  • stress/promise-finally-should-accept-non-promise-objects.js:
  • wasm/js-api/table.js:

(assert.throws):

Source/JavaScriptCore:

  • API/JSObjectRef.h:
  • builtins/PromiseConstructor.js:

(race):
(reject):
(resolve):

  • builtins/PromisePrototype.js:

(finally):

  • jsc.cpp:

(functionAsyncTestStart):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseIfStatement):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseResizableLimits):

12:38 PM Changeset in webkit [248832] by pvollan@apple.com
  • 8 edits in trunk/Source

[Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=200543
<rdar://problem/49394015>
Source/WebKit:

Reviewed by Brent Fulgham.

Adopt SPI to issue a process-specific sandbox extension for local file read, passing it the process
identifier of the WebContent process.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtension::createHandleForReadByPid):

  • Shared/SandboxExtension.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadFile):

Source/WTF:

Reviewed by Brent Fulgham.

Add new SPI.

  • wtf/Platform.h:
  • wtf/spi/darwin/SandboxSPI.h:
8:12 AM Changeset in webkit [248831] by Darin Adler
  • 21 edits in trunk/Source

Tidy up checks to see if a character is in the Latin-1 range by using isLatin1 consistently
https://bugs.webkit.org/show_bug.cgi?id=200861

Reviewed by Ross Kirsling.

Source/JavaScriptCore:

  • parser/Lexer.cpp:

(JSC::Lexer<T>::record8): Use isLatin1.
(JSC::assertCharIsIn8BitRange): Deleted. Can just assert isLatin1 directly.
(JSC::Lexer<T>::append8): Assert isLatin1 directly.
(JSC::characterRequiresParseStringSlowCase): Use isLatin1.

  • parser/Lexer.h:

(JSC::Lexer<UChar>::isWhiteSpace): Ditto.

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::Lexer::lex): Ditto.
(JSC::isSafeStringCharacter): Ditto.

  • runtime/Identifier.cpp:

(JSC::Identifier::add8): Ditto.

  • runtime/LiteralParser.cpp:

(JSC::isSafeStringCharacter): Ditto.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncRepeatCharacter): Ditto.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce): Ditto.
(JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy): Ditto.
(JSC::Yarr::YarrGenerator::backtrackPatternCharacterNonGreedy): Ditto.

Source/WebCore:

  • css/makeSelectorPseudoClassAndCompatibilityElementMap.py: Use isLatin1.
  • css/makeSelectorPseudoElementsMap.py: Ditto.
  • editing/TextIterator.cpp:

(WebCore::isNonLatin1Separator): Ditto.
(WebCore::isSeparator): Ditto.

  • platform/network/HTTPParsers.cpp:

(WebCore::isValidReasonPhrase): Ditto.
(WebCore::isValidHTTPHeaderValue): Ditto.
(WebCore::isValidAcceptHeaderValue): Ditto.

  • platform/text/TextCodecLatin1.cpp:

(WebCore::TextCodecLatin1::decode): Ditto.

  • platform/text/TextCodecUTF8.cpp:

(WebCore::TextCodecUTF8::handlePartialSequence): Ditto.
(WebCore::TextCodecUTF8::decode): Ditto.

Source/WebKitLegacy/mac:

  • Misc/WebKitNSStringExtras.mm:

(canUseFastRenderer): Use isLatin1.

Source/WTF:

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendCharacters): Use isLatin1 and also call append rather than
calling appendCharacters, since it's the same thing, inlined, and removes the need for
a local variable. Also tweaked the idiom of the code using memcpy.
(WTF::StringBuilder::canShrink const): Reworded a comment.

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::append): Use isLatin1.

  • wtf/text/StringCommon.h:

(WTF::isLatin1): Moved this function template here so it can be used here.
(WTF::find): Use isLatin1.

  • wtf/text/StringImpl.h:

(WTF::isLatin1): Deleted. Moved to StringCommon.h.
(WTF::reverseFind): Use isLatin1.
(WTF::isSpaceOrNewline): Ditto.

7:07 AM Changeset in webkit [248830] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in Document::deliverResizeObservations
https://bugs.webkit.org/show_bug.cgi?id=200635

Patch by Cathie Chen <cathiechen> on 2019-08-18
Reviewed by Simon Fraser.

Source/WebCore:

Document::deliverResizeObservations will crash if m_resizeObservers in Document
is modified in JS callbacks when we are traversing observers in m_resizeObservers.
This patch copy m_resizeObservers to a new vector, and check null for observers.

Test: resize-observer/delete-observers-in-callbacks.html

  • dom/Document.cpp:

(WebCore::Document::deliverResizeObservations):

LayoutTests:

Test deleting the next/previous sibling of observer list in callbacks, and the order of notifications.

  • resize-observer/delete-observers-in-callbacks-expected.txt: Added.
  • resize-observer/delete-observers-in-callbacks.html: Added.

Aug 17, 2019:

10:54 PM Changeset in webkit [248829] by Ross Kirsling
  • 20 edits
    1 add in trunk

[ESNext] Implement optional chaining
https://bugs.webkit.org/show_bug.cgi?id=200199

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/nullish-coalescing.js:
  • stress/optional-chaining.js: Added.
  • stress/tail-call-recognize.js:

Source/JavaScriptCore:

Implement the optional chaining proposal, which has now reached Stage 3 at TC39.

This introduces a ?. operator which:

  • guards member access when the LHS is nullish, i.e. null?.foo and null?.['foo'] are undefined
  • guards function calls when the LHS is nullish, i.e. null?.() is undefined
  • short-circuits over a whole access/call chain, i.e. null?.a['b'](c++) is undefined and does not increment c

This feature can be naively viewed as a ternary in disguise, i.e. a?.b is like a == null ? undefined : a.b.
However, since we must be sure not to double-evaluate the LHS, it's actually rather akin to a try block --
namely, we have the bytecode generator keep an early-out label for use throughout the access and call chain.

(Also note that document.all behaves as an object, so "nullish" means *strictly* equal to null or undefined.)

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::pushOptionalChainTarget): Added.
(JSC::BytecodeGenerator::popOptionalChainTarget): Added.
(JSC::BytecodeGenerator::emitOptionalCheck): Added.

  • bytecompiler/BytecodeGenerator.h:

Implement early-out logic.

  • bytecompiler/NodesCodegen.cpp:

(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode): Refactor so we can emitOptionalCheck in a single location.
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode): Refactor so we can emitOptionalCheck in a single location.
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::DeleteBracketNode::emitBytecode):
(JSC::DeleteDotNode::emitBytecode):
(JSC::CoalesceNode::emitBytecode): Clean up.
(JSC::OptionalChainNode::emitBytecode): Added.
Implement ?. node and emit checks where needed.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:

Have OpIsUndefinedOrNull support constant registers.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createOptionalChain): Added.
(JSC::ASTBuilder::makeDeleteNode):
(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

  • parser/NodeConstructors.h:

(JSC::OptionalChainNode::OptionalChainNode): Added.

  • parser/Nodes.h:

(JSC::ExpressionNode::isOptionalChain const): Added.
(JSC::ExpressionNode::isOptionalChainBase const): Added.
(JSC::ExpressionNode::setIsOptionalChainBase): Added.

  • parser/ParserTokens.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::makeFunctionCallNode):
(JSC::SyntaxChecker::createOptionalChain): Added.
Introduce new token and AST node, as well as an ExpressionNode field to mark LHSes with.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseMemberExpression):
Parse optional chains by wrapping the access/call parse loop.

  • runtime/ExceptionHelpers.cpp:

(JSC::functionCallBase):
Ensure that TypeError messages don't include the '?.'.

  • runtime/Options.h:

Update feature flag, as ?. and ?? are a double feature of "nullish-aware" operators.

Tools:

  • Scripts/run-jsc-stress-tests:
10:35 PM Changeset in webkit [248828] by timothy_horton@apple.com
  • 4 edits in trunk

Layout tests that call resizeTo() crash when run on iOS with IOSurface support enabled
https://bugs.webkit.org/show_bug.cgi?id=200866
<rdar://problem/50254021>

Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::convertToDeviceSpace):
(WebKit::PageClientImpl::convertToUserSpace):
Implement convertTo{Device,User}Space in PageClientImplIOS.
We don't actually do any conversion. For our purposes, the window is
"device" space, and we never allow iOS WebKit clients to resize the window...
except for in tests! So just pass the rects straight through, instead of
returning an empty rect.

Tools:

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage):
Replace some logging with release assertions that we are snapshotting a reasonable
view and get a reasonable snapshot back. Failing to snapshot is a big deal, and
"silently" failing with just a log that will be ignored is not helpful.

9:33 PM Changeset in webkit [248827] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

[WTF] ThreadGroupRemove test is flaky
https://bugs.webkit.org/show_bug.cgi?id=200763

Reviewed by Mark Lam.

ThreadGroup.ThreadGroupRemove test is flaky since its threadRunning modification and check in Thread are racy.
It can lead to infinite wait on waitForCompletion. We should do more idiomatic to avoid race: When notifying condition
variables, we should first take a lock, modify the condition shared and notify the condition change while taking a lock,
and releasing the lock after that.

  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:

(TestWebKitAPI::TEST):

7:20 PM Changeset in webkit [248826] by Ross Kirsling
  • 4 edits
    1 add in trunk

[ESNext] Support hashbang.
https://bugs.webkit.org/show_bug.cgi?id=200865

Reviewed by Mark Lam.

JSTests:

  • stress/hashbang.js: Added.
  • test262/expectations.yaml: Mark 6 cases as passing.

Source/JavaScriptCore:

Hashbang (a.k.a. shebang) support is at Stage 3 in TC39:
https://github.com/tc39/proposal-hashbang

This allows #! to be treated like //, but only at the very start of the source text.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::Lexer):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

6:50 PM Changeset in webkit [248825] by ysuzuki@apple.com
  • 3 edits
    4 adds in trunk

[JSC] DFG ToNumber should support Boolean in fixup
https://bugs.webkit.org/show_bug.cgi?id=200864

Reviewed by Mark Lam.

JSTests:

  • microbenchmarks/to-number-boolean.js: Added.

(test):

  • stress/to-number-boolean-int32.js: Added.

(shouldBe):
(test):
(check):

  • stress/to-number-boolean.js: Added.

(shouldBe):
(test):
(check):

  • stress/to-number-int32.js: Added.

(shouldBe):
(test):
(check):

Source/JavaScriptCore:

ToNumber should speculate on Boolean, or BooleanOrInt32 in fixup phase to optimize it.

ToT Patched

to-number-boolean 897.6430+-26.8843 87.4802+-5.2831 definitely 10.2611x faster

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupToNumber):

6:47 PM Changeset in webkit [248824] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] WebAssembly BBQ should switch compile mode for size of modules
https://bugs.webkit.org/show_bug.cgi?id=200807

Reviewed by Mark Lam.

Some webpages use very large Wasm module, and it exhausts all executable memory in ARM64 devices since the size of executable memory region is 128MB.
The long term solution should be introducing Wasm interpreter. But as a short term solution, we introduce heuristics switching back to BBQ B3 at
the sacrifice of start-up time, since BBQ Air bloats such lengthy code, and thereby consumes a large amount of executable memory.

Currently, I picked 10MB since the reported website is using 11MB wasm module.

  • runtime/Options.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::parseAndCompileAir):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::compileFunctions):

  • wasm/WasmModuleInformation.h:
  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseCode):

  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::parseCodeSectionSize):

12:13 PM Changeset in webkit [248823] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Source/WebKit:
Use bundlePath SPI in AccessibilitySupport for WebProcessLoader
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

  • Platform/spi/ios/AccessibilitySupportSPI.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::accessibilityWebProcessLoaderBundlePath):
(WebKit::registerWithAccessibility):

Source/WTF:
Added HAVE_ACCESSIBILITY_BUNDLES_PATH
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

  • wtf/Platform.h:

Tools:
Tested that accessibility WebProcessLoader bundle is loaded for the correct path.
https://bugs.webkit.org/show_bug.cgi?id=200367

Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.

Added AccessibilityTestPlugin on the web process to report whether a bundle is loaded and its path, so that it can be tested on WKContentView.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestPlugin.mm: Added.

(-[AccessibilityTestPlugin webProcessPlugIn:didCreateBrowserContextController:]):
(-[AccessibilityTestPlugin checkAccessibilityWebProcessLoaderBundleIsLoaded:]):

  • TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestSupportProtocol.h: Added.
  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:

(TestWebKitAPI::TEST):

11:49 AM Changeset in webkit [248822] by weinig@apple.com
  • 16 edits in trunk

Rename StringBuilder::flexibleAppend(...) to StringBuilder::append(...)
https://bugs.webkit.org/show_bug.cgi?id=200756

Reviewed by Darin Adler.

Source/WebCore:

Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).

  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp:

(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitBuiltInsSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledInputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledOutputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitUnpackResourcesAndNamedBuiltIns):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitSignature):

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::declareFunction):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitLoop):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitConstantExpressionString):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::inlineNativeFunction):

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Types::appendNameTo):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo):

  • testing/Internals.cpp:

(WebCore::Internals::ongoingLoadsDescriptions const):

Source/WebKit:

Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::dumpHistoryItem):
We have to explicitly access the underlying String of the URL rather than
relying on the implicit conversion since it is now ambiguous which append(...)
overload should be used.

Source/WTF:

Now that there are no remaining multi-parameter or behavior changing overloads
of StringBuilder::append(...), we can rename StringBuilder::flexibleAppend(...)
to StringBuilder::append(...).

This change leaves the existing single parameter overloads StringBuilder::append(...)
for now, and since they have specify specific types, they will continue to be prefered
in overload resolution. Once we have concluded the variadic StringBuilder::append(...)
can provide the same performance as the single parameter variant, we can remove the
single parameter variant.

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::pathByAppendingComponents):

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::appendFromAdapters):
(WTF::StringBuilder::append):
(WTF::StringBuilder::flexibleAppendFromAdapters): Deleted.
(WTF::StringBuilder::flexibleAppend): Deleted.
Update for rename from StringBuilder::flexibleAppend(...) to StringBuilder::append(...).

Tools:

Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

11:12 AM Changeset in webkit [248821] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Web Inspector: make the initial height bigger when attached
https://bugs.webkit.org/show_bug.cgi?id=200855

Reviewed by Joseph Pecoraro.

  • Shared/WebPreferences.yaml:

Increase the default attached height from 300px to 500px, which is close to the same
amount of area given a 15" MacBook Pro's aspect ratio (default attached width is 750px).

8:27 AM Changeset in webkit [248820] by Simon Fraser
  • 7 edits
    3 adds in trunk

[iOS WK2] Scroll indicators disappear sometimes
https://bugs.webkit.org/show_bug.cgi?id=200791

Reviewed by Tim Horton.
Source/WebKit:

_web_setSubviews: replaces all of the views subviews with the supplied array, but this blows
away views not managed by WebKit, including UIScrollViews scroll indicators. Fix by having
WebKit-managed views implement the WKWebKitControlled protocol, and only removing views
implementing that protocol.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(-[UIView _web_setSubviews:]):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:

Tools:

Tests that test that scroll indicators survive subview replacement, and that
a custom view also survives subview replacement.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/OverflowScrollViewTests.mm: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView performAfterLoading:]):
(-[UIView wkFirstSubviewWithClass:]):
(-[UIView wkFirstSubviewWithBoundsSize:]):

  • TestWebKitAPI/ios/composited.html: Added.
  • TestWebKitAPI/ios/overflow-scroll.html: Added.
1:50 AM Changeset in webkit [248819] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Content in <iframe> should override "touch-action" set in embedding document
https://bugs.webkit.org/show_bug.cgi?id=200204
<rdar://problem/54355249>

Reviewed by Antoine Quint.

Source/WebKit:

Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::touchActionsForPoint):

If the topmost layer hit is a WKChildScrollView we know its content layer didn't have an event region.
This means we should return the default value 'auto'.

LayoutTests:

  • pointerevents/ios/touch-action-none-with-frame-inside-expected.txt: Added.
  • pointerevents/ios/touch-action-none-with-frame-inside.html: Added.
1:11 AM Changeset in webkit [248818] by Devin Rousso
  • 14 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Sources: gear icons moves to 2nd line when sidebar is narrow
https://bugs.webkit.org/show_bug.cgi?id=198017

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar):
(WI.NavigationBar.prototype.layout):
(WI.NavigationBar.prototype.layout.forceItemHidden): Added.
(WI.NavigationBar.prototype.layout.isDivider): Added.
(WI.NavigationBar.prototype.layout.calculateVisibleItemWidth): Added.
(WI.NavigationBar.prototype.needsLayout): Deleted.
(WI.NavigationBar.prototype.sizeDidChange): Deleted.
(WI.NavigationBar.prototype._updateContent): Deleted.
(WI.NavigationBar.prototype._updateContent.forceItemHidden): Deleted.
(WI.NavigationBar.prototype._updateContent.isDivider): Deleted.
(WI.NavigationBar.prototype._updateContent.calculateVisibleItemWidth): Deleted.
Reset the cached _minimumWidth whenever updating in layout().

  • UserInterface/Views/NavigationItem.js:

(WI.NavigationItem.prototype.get width):
(WI.NavigationItem.prototype.update): Added.
(WI.NavigationItem.prototype.updateLayout): Deleted.
(WI.NavigationItem.prototype.get totalMargin): Added.

  • UserInterface/Views/ButtonNavigationItem.js:

(WI.ButtonNavigationItem.prototype.get totalMargin): Added.

  • UserInterface/Views/ButtonNavigationItem.css:
  • UserInterface/Views/TextNavigationItem.js:

(WI.TextNavigationItem.prototype.get totalMargin): Added.

  • UserInterface/Views/TextNavigationItem.css:

Element.prototype.getBoundingClientRect doesn't include the margin box of an element.
Rather than create a CSS variable and parse a computed style, save the total margin amount
to a getter that can then be added when computing the minimum width.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar):
(WI.Sidebar.prototype._recalculateWidth):

  • UserInterface/Views/FlexibleSpaceNavigationItem.js:

(WI.FlexibleSpaceNavigationItem.prototype.update): Added.
(WI.FlexibleSpaceNavigationItem.prototype.updateLayout): Deleted.

  • UserInterface/Views/GroupNavigationItem.js:

(WI.GroupNavigationItem.prototype.update): Added.
(WI.GroupNavigationItem.prototype.updateLayout): Deleted.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WI.HierarchicalPathNavigationItem.prototype.update): Added.
(WI.HierarchicalPathNavigationItem.prototype.updateLayout): Deleted.

  • UserInterface/Views/RadioButtonNavigationItem.js:

(WI.RadioButtonNavigationItem.prototype.update): Added.
(WI.RadioButtonNavigationItem.prototype.updateLayout): Deleted.
Rename updateLayout to update so it doesn't clash with WI.View naming.

  • UserInterface/Views/SidebarNavigationBar.js: Removed.
  • UserInterface/Main.html:
  • UserInterface/Views/NavigationBar.css:

(.navigation-bar .item): Added.
(.navigation-bar .item, .sidebar-navigation-bar > .holder .item): Deleted.
(.sidebar-navigation-bar): Deleted.
(.sidebar-navigation-bar .holder): Deleted.
Remove unnecessary class.

Note: See TracTimeline for information about the timeline view.