Timeline



Aug 20, 2018:

11:59 PM WebKitGTK/2.20.x edited by zandobersek@gmail.com
(diff)
11:05 PM Changeset in webkit [235106] by sbarati@apple.com
  • 31 edits
    7 adds in trunk

Inline DataView accesses into DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=188573
<rdar://problem/43286746>

Reviewed by Michael Saboff.

JSTests:

  • microbenchmarks/data-view-accesses-2.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
(test):

  • microbenchmarks/data-view-accesses.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):

  • stress/dataview-jit-bounds-checks.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):

  • stress/dataview-jit-get.js: Added.

(assert):
(test1.bigEndian):
(test1.littleEndian):
(test1.biEndian):
(test1):
(test2.bigEndian):
(test2.littleEndian):
(test2.biEndian):
(test2):
(test3.bigEndian):
(test3.littleEndian):
(test3.biEndian):
(test3):
(test4.bigEndian):
(test4.littleEndian):
(test4.biEndian):
(test4):
(test5.bigEndian):
(test5.littleEndian):
(test5.biEndian):
(test5):
(test6.bigEndian):
(test6.littleEndian):
(test6.biEndian):
(test6):
(test7.load):
(test7):
(test8.load):
(test8):

  • stress/dataview-jit-neuter.js: Added.

(assert):
(test.load):
(test):
(test2.load):
(test2):

  • stress/dataview-jit-set.js: Added.

(assert):
(isLittleEndian):
(readByte):
(readHex):
(test.storeLittleEndian):
(test.storeBigEndian):
(test.store):
(test):
(test2.storeLittleEndian):
(test2.storeBigEndian):
(test2.store):
(test2):
(test3.storeLittleEndian):
(test3.storeBigEndian):
(test3.store):
(test3):
(test4.storeLittleEndian):
(test4.storeBigEndian):
(test4.store):
(test4):
(test5.storeLittleEndian):
(test5.storeBigEndian):
(test5.store):
(test5):
(test6.storeLittleEndian):
(test6.storeBigEndian):
(test6.store):
(test6):
(test7.store):
(test7):
(test8.store):
(test8):

  • stress/dataview-jit-unaligned-accesses.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):

Source/JavaScriptCore:

This patch teaches the DFG/FTL to inline DataView accesses. The approach is
straight forward. We inline the various get*/set* operations as intrinsics.

This patch takes the most obvious approach for now. We OSR exit when:

  • An isLittleEndian argument is provided, and is not a boolean.
  • The index isn't an integer.
  • The |this| isn't a DataView.
  • We do an OOB access (or see a neutered array)

To implement this change in a performant way, this patch teaches the macro
assembler how to emit byte swap operations. The semantics of the added functions
are byteSwap + zero extend. This means for the 16bit byte swaps, we need
to actually emit zero extend instructions. For the 32/64bit byte swaps,
the instructions already have these semantics.

This patch is just a lightweight initial implementation. There are some easy
extensions we can do in future changes:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::byteSwap16):
(JSC::MacroAssemblerARM64::byteSwap32):
(JSC::MacroAssemblerARM64::byteSwap64):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::byteSwap32):
(JSC::MacroAssemblerX86Common::byteSwap16):
(JSC::MacroAssemblerX86Common::byteSwap64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::bswapl_r):
(JSC::X86Assembler::bswapq_r):
(JSC::X86Assembler::shiftInstruction16):
(JSC::X86Assembler::rolw_i8r):
(JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM):

  • assembler/testmasm.cpp:

(JSC::testByteSwap):
(JSC::run):

  • bytecode/DataFormat.h:
  • bytecode/SpeculatedType.cpp:

(JSC::dumpSpeculation):
(JSC::speculationFromClassInfo):
(JSC::speculationFromJSType):
(JSC::speculationFromString):

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::dataViewData):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateDataViewObject):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::byteSwap32):
(JSC::FTL::DFG::LowerDFGToB3::byteSwap64):
(JSC::FTL::DFG::LowerDFGToB3::emitCodeBasedOnEndiannessBranch):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewGet):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewSet):
(JSC::FTL::DFG::LowerDFGToB3::lowDataViewObject):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateDataViewObject):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/JSDataViewPrototype.cpp:

Source/WTF:

  • wtf/TriState.h:
9:44 PM Changeset in webkit [235105] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

Unreviewed WinCairo port test gardening

  • platform/wincairo/TestExpectations: Marked some http tests flaky.
9:28 PM Abandoned documents edited by Simon Fraser
(diff)
8:29 PM Changeset in webkit [235104] by yusukesuzuki@slowstart.org
  • 5 edits
    2 adds in trunk

[YARR] Extend size of fixed characters bulk matching in 64bit platform
https://bugs.webkit.org/show_bug.cgi?id=181989

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2018-08-20
Reviewed by Michael Saboff.

JSTests:

  • stress/characters-regexp-ignore-case.js: Added.

(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):

  • stress/characters-regexp.js: Added.

(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):

Source/JavaScriptCore:

This patch extends bulk matching style for fixed-sized characters.
In 64bit environment, the GPR can hold up to 8 characters. This change
reduces the code size since we can fuse multiple mov operations into one.

  • assembler/LinkBuffer.h:
  • runtime/Options.h:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce):
(JSC::Yarr::YarrGenerator::compile):

7:15 PM Changeset in webkit [235103] by Devin Rousso
  • 19 edits
    2 adds in trunk

Web Inspector: allow breakpoints to be set for specific event listeners
https://bugs.webkit.org/show_bug.cgi?id=183138

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Add setBreakpointForEventListener and removeBreakpointForEventListener, each of which
takes an eventListenerId and toggles whether that specific usage of that event listener
should have a breakpoint and pause before running.

Source/WebCore:

Test: inspector/dom/breakpoint-for-event-listener.html

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

(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::setEventListenerDisabled):
(WebCore::InspectorDOMAgent::setBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::removeBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::willRemoveEventListener):
(WebCore::InspectorDOMAgent::isEventListenerDisabled):
(WebCore::InspectorDOMAgent::hasBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::idForEventListener): Added.
Rework the event listener data structure to be based on ID instead of EventListener, since
it is possible to have the same EventListener be used for multiple events.

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

(WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent): Added.
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
For DOM events, also check to see if there is a matching event listener specific breakpoint
set via the DOMAgent, and break on it if one is found.

  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::willHandleEventImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
Split off pauseOnNativeEventIfNeeded to only handle non-DOM events, since all DOM events
would already only go through willHandleEvent.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/EventBreakpoint.js:

(WI.EventBreakpoint):
(WI.EventBreakpoint.fromPayload): Added.
(WI.EventBreakpoint.prototype.get eventListener): Added.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager):

  • UserInterface/Controllers/DOMTreeManager.js:

(WI.DOMTreeManager):
(WI.DOMTreeManager.prototype.get eventBreakpoints): Added.
(WI.DOMTreeManager.prototype._setDocument):
(WI.DOMTreeManager.prototype.setEventListenerDisabled):
(WI.DOMTreeManager.prototype.setBreakpointForEventListener): Added.
(WI.DOMTreeManager.prototype.removeBreakpointForEventListener): Added.
(WI.DOMTreeManager.prototype.breakpointForEventListenerId): Added.

  • UserInterface/Controllers/EventBreakpointTreeController.js:

(WI.EventBreakpointTreeController):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):

  • UserInterface/Views/EventListenerSectionGroup.js:

(WI.EventListenerSectionGroup):
(WI.EventListenerSectionGroup.prototype._createDisabledToggleRow):
(WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Added.

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):

LayoutTests:

  • inspector/dom/breakpoint-for-event-listener-expected.txt: Added.
  • inspector/dom/breakpoint-for-event-listener.html: Added.
6:13 PM Changeset in webkit [235102] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix the LLInt so that btjs shows vmEntryToJavaScript instead of llintPCRangeStart for the entry frame.
https://bugs.webkit.org/show_bug.cgi?id=188769

Reviewed by Michael Saboff.

  • llint/LowLevelInterpreter.asm:
  • Just put an unused instruction between llintPCRangeStart and vmEntryToJavaScript so that libunwind doesn't get confused by the 2 labels pointing to the same code address.
5:50 PM Changeset in webkit [235101] by Michael Catanzaro
  • 36 edits in trunk/Source/WebKit

Use unified build for NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=185011

Reviewed by Alex Christensen.

  • NetworkProcess/Cookies/WebCookieManager.cpp:
  • NetworkProcess/Downloads/Download.cpp:
  • NetworkProcess/Downloads/DownloadManager.cpp:
  • NetworkProcess/Downloads/PendingDownload.cpp:
  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkContentRuleListManager.cpp:
  • NetworkProcess/NetworkDataTask.cpp:
  • NetworkProcess/NetworkDataTaskBlob.cpp:
  • NetworkProcess/NetworkLoadChecker.cpp:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/NetworkSession.cpp:
  • NetworkProcess/NetworkSocketStream.cpp:
  • NetworkProcess/PingLoad.cpp:
  • NetworkProcess/cache/CacheStorageEngine.cpp:
  • NetworkProcess/cache/CacheStorageEngineCache.cpp:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:
  • NetworkProcess/cache/CacheStorageEngineConnection.cpp:
  • NetworkProcess/cache/NetworkCache.cpp:
  • NetworkProcess/capture/NetworkCaptureEvent.cpp:
  • NetworkProcess/capture/NetworkCaptureManager.cpp:
  • NetworkProcess/capture/NetworkCaptureRecorder.cpp:
  • NetworkProcess/capture/NetworkCaptureReplayer.cpp:
  • NetworkProcess/capture/NetworkDataTaskReplay.cpp:
  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::platformCancelNetworkLoad):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:didBecomeInvalidWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
Fix the build with unified sources.

  • Sources.txt: Un-@no-unify NetworkProcess/*.
  • SourcesCocoa.txt: Un-@no-unify NetworkProcess/*.
4:29 PM Changeset in webkit [235100] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.10.3

Tag Safari-606.1.36.10.3.

4:10 PM Changeset in webkit [235099] by Jonathan Bedard
  • 3 edits
    1 add in trunk/Tools

WebKitTestRunner: Add watchOS entitlements
https://bugs.webkit.org/show_bug.cgi?id=188758

Reviewed by Tim Horton.

watchOS needs an additional entitlement to open up a socket for on-device testing.

  • WebKitTestRunner/Configurations/WebKitTestRunnerApp-watchOS.entitlements: Added.
  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
3:59 PM Changeset in webkit [235098] by Michael Catanzaro
  • 11 edits in trunk/Source

[CMake] Sync unified build with Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=188732

Reviewed by Tim Horton.

Source/WebCore:

For iOS, disambiguate between ::WebEvent declared in PlatformKeyboardEvent.h and
WebCore::WebEvent declared in WebEvent.h. It's expected that we'll have to deal with random
issues like this when modifying unrelated source files in higher-level projects, since any
change to the sources list changes which files get bundled together, and headers from
lower-level projects that were not included before may now be included together.

  • platform/PlatformKeyboardEvent.h:

(WebCore::PlatformKeyboardEvent::event const):

Source/WebKit:

Sync unified build with Cocoa ports. This enables unified build for WebKit/Platform and
WebKit/Shared.

Lots of files need to be moved around since the existing Sources.txt was not copied from
CMakeLists.txt. This replaces the Sources.txt with the sources list from CMakeList.txt.
Files that are not built for Cocoa are moved to SourcesGTK.txt, SourcesWPE.txt, and
PlatformWin.cmake. Files that are built only on Cocoa are moved to SourcesCocoa.txt. There's
plenty of room to determine if many of these files really need to be platform-specific in
the future, but let's not change that now.

Unfortunately, several files under Shared and PluginProcess need to be un-unified to be
usable for GTK's WebKitPluginProcess2. I've never managed to understand why, but it won't
link otherwise. Fortunately, this only affects a few files (listed in
PluginProcessGTK2_SOURCES), only a couple dozen of which are cross-platform.

  • CMakeLists.txt:
  • PlatformWin.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
3:57 PM Changeset in webkit [235097] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.10-branch/Source

Versioning.

3:52 PM Changeset in webkit [235096] by commit-queue@webkit.org
  • 51 edits
    3 copies
    6 moves
    6 adds
    10 deletes in trunk/Tools

[WHLSL] Remove generics from the interpreter
https://bugs.webkit.org/show_bug.cgi?id=187988

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-20
Reviewed by Myles C. Maxfield.

This patch completely removes generic and protocol support from WHLSL
whilst adding back any features that were originally implemented with
generics.

Many of the changes in this patch just remove occurrences of type
arguments and type parameters --- although there are some cases where
they have been deliberately left in --- as well as removing tests only
relevant to those features. These changes are not listed below.

  • WebGPUShadingLanguageRI/All.js: Add/remove JS dependencies
  • WebGPUShadingLanguageRI/AutoWrapper.js:

(AutoWrapper.prototype.visitConstexprTypeParameter): Deleted.

  • WebGPUShadingLanguageRI/BuiltinVectorCasts.js: Added. The built-in

vectors have many constructors for different scalar and vector types.
These were originally implemented with generics.

  • WebGPUShadingLanguageRI/BuiltinVectorEqualityOperator.js: Adds the

equality operator for built-in vectors, again this was removed with
generics.

  • WebGPUShadingLanguageRI/BuiltinVectorGetter.js: Added, as above.

Built-in vectors only support the getter and setter, and not the ander.

  • WebGPUShadingLanguageRI/BuiltinVectorIndexGetter.js: Added.
  • WebGPUShadingLanguageRI/BuiltinVectorIndexSetter.js: Added.
  • WebGPUShadingLanguageRI/BuiltinVectorSetter.js: Added.
  • WebGPUShadingLanguageRI/CallExpression.js: Adds support for

instantiating functions which cannot be discovered earlier in
preparation because their types are absent (specifically support for the
operator &[] for array references and the length operator for array
references). Previously support for these was implemented with generics.
(CallExpression.resolve):
(CallExpression.prototype.resolve):
(CallExpression.prototype._resolveByInstantiation):
(CallExpression.prototype._resolveToOperatorAnderIndexer):
(CallExpression.prototype._resolveToOperatorLength):
(CallExpression.prototype.resolveToOverload):
(CallExpression.prototype.becomeCast):
(CallExpression.prototype.toString):
(CallExpression):

  • WebGPUShadingLanguageRI/CallExpressionTypeArgumentResolver.js: Added.

We support syntax like vector<int, 2>(a, b) for constructing vectors;
this new preparation step resolves them to specific constructors.

  • WebGPUShadingLanguageRI/CallFunction.js:
  • WebGPUShadingLanguageRI/Checker.js:
  • WebGPUShadingLanguageRI/ConstexprFolder.js:
  • WebGPUShadingLanguageRI/CreateLiteralType.js:
  • WebGPUShadingLanguageRI/ExpressionFinder.js:
  • WebGPUShadingLanguageRI/FlattenProtocolExtends.js: Removed.
  • WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
  • WebGPUShadingLanguageRI/Func.js:
  • WebGPUShadingLanguageRI/FuncDef.js:
  • WebGPUShadingLanguageRI/FuncInstantiator.js: Deleted.
  • WebGPUShadingLanguageRI/InferTypesForCall.js: Removed usage of type arguments.
  • WebGPUShadingLanguageRI/Inline.js: Remove use of FuncInstantiator.
  • WebGPUShadingLanguageRI/Inliner.js: Ditto.
  • WebGPUShadingLanguageRI/Intrinsics.js:
  • WebGPUShadingLanguageRI/Lexer.js:
  • WebGPUShadingLanguageRI/LiteralTypeChecker.js:
  • WebGPUShadingLanguageRI/NameContext.js:

(NameContext.prototype.add):
(NameContext.prototype.get let):
(NameContext.underlyingThings.prototype.else):
(NameContext.prototype.resolveFuncOverload):

  • WebGPUShadingLanguageRI/NameFinder.js:
  • WebGPUShadingLanguageRI/NameResolver.js:

(NameResolver.prototype.visitFunc):
(NameResolver.prototype.visitFuncDef):
(NameResolver.prototype.visitTypeDef):
(NameResolver.prototype.visitStructType):
(NameResolver.prototype.visitTypeRef):
(NameResolver.prototype.visitCallExpression):
(NameResolver.prototype.visitVectorType):
(NameResolver):
(NameResolver.prototype._visitTypeParametersAndBuildNameContext): Deleted.
(NameResolver.prototype.visitProtocolDecl): Deleted.

  • WebGPUShadingLanguageRI/NativeFunc.js:

(NativeFunc):

  • WebGPUShadingLanguageRI/NativeFuncInstance.js: Deleted.
  • WebGPUShadingLanguageRI/NativeType.js:

(NativeType):
(NativeType.prototype.get name):
(NativeType.prototype.toString):
(NativeType.prototype.get typeParameters): Deleted.
(NativeType.prototype.instantiate): Deleted.

  • WebGPUShadingLanguageRI/Node.js:

(Node.prototype.commit):
(Node):
(Node.prototype.substitute): Deleted.
(Node.prototype.substituteToUnification): Deleted.

  • WebGPUShadingLanguageRI/OperatorAnderIndex.js: Added, previously

implemented with generics.

  • WebGPUShadingLanguageRI/OperatorArrayRefLength.js: Ditto.
  • WebGPUShadingLanguageRI/OperatorBool.js: Ditto.
  • WebGPUShadingLanguageRI/Parse.js: Removed everything related to

generics and protocols.

  • WebGPUShadingLanguageRI/Prepare.js: Added new stages.
  • WebGPUShadingLanguageRI/Program.js:

(Program):
(Program.prototype.get types):
(Program.prototype.add):
(Program.prototype.get protocols): Deleted.

  • WebGPUShadingLanguageRI/ProtocolDecl.js: Removed.
  • WebGPUShadingLanguageRI/ProtocolRef.js: Removed.
  • WebGPUShadingLanguageRI/RecursiveTypeChecker.js:
  • WebGPUShadingLanguageRI/ResolveCallExpressionsWithTypeArguments.js: Added.
  • WebGPUShadingLanguageRI/ResolveNames.js:
  • WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
  • WebGPUShadingLanguageRI/ResolveTypeDefs.js:

(resolveTypeDefsInProtocols): Deleted.

  • WebGPUShadingLanguageRI/Rewriter.js: Changes for new classes.
  • WebGPUShadingLanguageRI/SPIRV.html:
  • WebGPUShadingLanguageRI/SPIRVCodegen.js:
  • WebGPUShadingLanguageRI/StandardLibrary.js: Replace old generic features.
  • WebGPUShadingLanguageRI/StatementCloner.js: Changes for new classes.

(StructLayoutBuilder):

  • WebGPUShadingLanguageRI/StructType.js:
  • WebGPUShadingLanguageRI/SwizzleOp.js:

(SwizzleOp):
(SwizzleOp.prototype.get baseTypeName):
(SwizzleOp.prototype.toString):
(SwizzleOp.functions.):
(SwizzleOp.functions):
(SwizzleOp.prototype.instantiateImplementation):
(SwizzleOp.allSwizzleOperators.): Deleted.
(SwizzleOp.allSwizzleOperators): Deleted.

  • WebGPUShadingLanguageRI/SynthesizeArrayOperatorLength.js: Added,

previously implemented with generics.

  • WebGPUShadingLanguageRI/SynthesizeCopyConstructorOperator.js: Ditto.
  • WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js: Ditto.
  • WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Ditto.
  • WebGPUShadingLanguageRI/SynthesizeOperatorBool.js: Ditto.
  • WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:

(synthesizeStructAccessors.setupImplementationData):
(synthesizeStructAccessors.createFieldType):
(synthesizeStructAccessors.createTypeRef):
(synthesizeStructAccessors.setupAnder):
(synthesizeStructAccessors):
(synthesizeStructAccessors.createTypeParameters): Deleted.
(synthesizeStructAccessors.): Deleted.

  • WebGPUShadingLanguageRI/Test.html:
  • WebGPUShadingLanguageRI/Test.js: Removed redundant tests and added new

tests for changed language features.

  • WebGPUShadingLanguageRI/Type.js:
  • WebGPUShadingLanguageRI/TypeDef.js:
  • WebGPUShadingLanguageRI/TypeDefResolver.js:
  • WebGPUShadingLanguageRI/TypeParameterRewriter.js: Removed.
  • WebGPUShadingLanguageRI/TypeRef.js:
  • WebGPUShadingLanguageRI/TypeVariable.js: Removed.
  • WebGPUShadingLanguageRI/UnificationContext.js:
  • WebGPUShadingLanguageRI/VectorType.js: Added.
  • WebGPUShadingLanguageRI/Visitor.js: Changes for new classes.
  • WebGPUShadingLanguageRI/WSL.md: Removed description of

generics/protocols.

  • WebGPUShadingLanguageRI/WrapChecker.js:

(WrapChecker):
(WrapChecker.visitConstexprTypeParameter): Deleted.
(WrapChecker.prototype.visitFuncParameter): Deleted.
(WrapChecker.prototype.visitTypeVariable): Deleted.

  • WebGPUShadingLanguageRI/index.html:
2:31 PM Changeset in webkit [235095] by Devin Rousso
  • 13 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: Canvas tab: allow recording processing to be stopped midway
https://bugs.webkit.org/show_bug.cgi?id=185152

Reviewed by Joseph Pecoraro.

Previously, WI.Recording used a WI.YieldableTask to process every action in such a way
as to not block the UI. The downside to this approach was that it used a message view to
indicate the progress of this process, and prevented the user from viewing the WI.Recording
until that process was completed.

This patch changes WI.Recording to instead use async/await and fire events whenever a
WI.RecordingAction (and WI.RecordingFrame) finished processing, allowing it to be added
to the recording WI.TreeOutline and selected by the user. Additionally, a pause/resume
button is added to the WI.CanvasSidebarPanel so the user has greater control over what
how much of the WI.Recording they want to process.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Utilities.js:

(Promise.delay)
Utility function for promisifying setTimeout.

  • UserInterface/Models/Recording.js:

(WI.Recording):
(WI.Recording.prototype.get processing): Added.
(WI.Recording.prototype.get ready): Added.
(WI.Recording.prototype.startProcessing): Added.
(WI.Recording.prototype.stopProcessing): Added.
(WI.Recording.prototype.async._process): Added.
(WI.Recording.prototype.process): Deleted.
(WI.Recording.prototype.async.yieldableTaskWillProcessItem): Deleted.
(WI.Recording.prototype.async.yieldableTaskDidFinish): Deleted.

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction):
(WI.RecordingAction.prototype.get ready): Added.
(WI.RecordingAction.prototype.async.swizzle):
(WI.RecordingAction.prototype.apply):

  • UserInterface/Models/RecordingInitialStateAction.js:

(WI.RecordingInitialStateAction):

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel):
(WI.CanvasSidebarPanel.prototype.set recording):
(WI.CanvasSidebarPanel.prototype.set action):
(WI.CanvasSidebarPanel.prototype._recordingAdded):
(WI.CanvasSidebarPanel.prototype._recordingRemoved):
(WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
(WI.CanvasSidebarPanel.prototype._recordingChanged):
(WI.CanvasSidebarPanel.prototype._recordingChanged.createPauseButton): Added.
(WI.CanvasSidebarPanel.prototype._recordingChanged.createResumeButton): Added.
(WI.CanvasSidebarPanel.prototype._createRecordingFrameTreeElement): Added.
(WI.CanvasSidebarPanel.prototype._createRecordingActionTreeElement): Added.
(WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction): Added.
(WI.CanvasSidebarPanel.prototype._handleRecordingStartProcessingFrame): Added.

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress): Added.
(.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Added.
(.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle::before): Added.
(.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options): Added.
(.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options > .indeterminate-progress-spinner): Added.
(.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner): Deleted.

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView):
(WI.RecordingContentView.prototype.updateActionIndex):
(WI.RecordingContentView.prototype.initialLayout):
(WI.RecordingContentView.prototype._updateCanvasPath):
(WI.RecordingContentView.prototype._handleRecordingProcessedAction): Added.
(WI.RecordingContentView.prototype._updateProcessProgress): Deleted.
(WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Deleted.
(WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Deleted.

  • UserInterface/Views/RecordingContentView.css:

(.content-view:not(.tab).recording > header > .slider-container > .slider-value): Added.

  • UserInterface/Views/FolderTreeElement.js:

(WI.FolderTreeElement):

  • UserInterface/Views/GeneralTreeElement.js:

(WI.GeneralTreeElement.prototype.get statusElement): Added.
(WI.GeneralTreeElement.prototype._updateTitleElements):

  • UserInterface/Views/RecordingContentView.js:

(WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
(WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
Drive-by: WI.Collection doesn't have a values() accessor for the underlying Set.

  • UserInterface/Views/RecordingNavigationSidebarPanel.css: Removed.
  • UserInterface/Views/RecordingNavigationSidebarPanel.js: Removed.

These files are no longer used since they were "merged" into WI.CanvasSidebarPanel.

2:09 PM Changeset in webkit [235094] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Enable ios media tests that were blocked on user gesture.
https://bugs.webkit.org/show_bug.cgi?id=188753

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-08-20
Reviewed by Jer Noble.

Enable tests that now work on ios because there is now a way to simulate user gesture.

  • platform/ios/TestExpectations:
1:30 PM Changeset in webkit [235093] by webkit@devinrousso.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas tab: create icons for recordings/shaders in the preview tile
https://bugs.webkit.org/show_bug.cgi?id=183650

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView):
(WI.CanvasContentView.prototype.initialLayout):
(WI.CanvasContentView.prototype.attached):
(WI.CanvasContentView.prototype._recordingStopped):
(WI.CanvasContentView.prototype._shaderProgramAdded):
(WI.CanvasContentView.prototype._shaderProgramRemoved):
(WI.CanvasContentView.prototype._updateViewRelatedItems):
(WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
(WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
(WI.CanvasContentView.prototype._addRecording): Deleted.
(WI.CanvasContentView.prototype._handleRecordingSelectElementChange): Deleted.

  • UserInterface/Views/CanvasOverviewContentView.css:

(.content-view.canvas-overview .content-view.canvas > footer > .view-related-items):
(.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > :matches(.view-shader, .view-recording)):
(.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > img + img):
(.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-shader):
(.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-recording):
(.content-view.canvas-overview .content-view.canvas > footer > .recordings): Deleted.
(.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted.
(.content-view.canvas-overview .content-view.canvas > footer > .recordings > select): Deleted.
(.content-view.canvas-overview .content-view.canvas > footer .recordings > select:focus): Deleted.
Create two image buttons in the bottom left corner of each canvas tile that appear when the
canvas has associated shaders and/or recordings. Clicking each image button will function
similar to path components, in that if there is only one shader/recording, it is immediately
selected, whereas if there are multiple a dropdown is shown.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
(WI.CanvasSidebarPanel.prototype._recordingChanged):
Drive-by: ensure that the selected recording action is properly updated when first loading a
recording and when scrubbing through one.

1:04 PM Changeset in webkit [235092] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r223192): Remove invalid path for Modules/geolocation/ios folder

  • WebCore.xcodeproj/project.pbxproj: Remove invalid path

setting for WebCore/Modules/geolocation/ios folder. This was
found while working on a script for Bug 188754: Tool to fix
folders that should map to directories in Xcode project files.

12:51 PM Changeset in webkit [235091] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r235015): Xcode changes mainGroup name when updating WebCore project file

  • WebCore.xcodeproj/project.pbxproj:
  • Change name to "WebCore" within the group used by mainGroup so Xcode won't keep changing its value back to "WebKit".
12:29 PM Changeset in webkit [235090] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests

Update webkit-webgl-test-harness.js to provide more info on failing and partially passing tests
https://bugs.webkit.org/show_bug.cgi?id=188628

Patch by Justin Fan <Justin Fan> on 2018-08-20
Reviewed by Alexey Proskuryakov.

Slightly augment the test-harness for the WebGL 2 conformance suite; failing test results now report
failure messagees and the number of individual reported failures and passes from the wrapped Khronos test.
Allow us to track when incremental conformance improvements or regressions occur within the breadth of a
single conformance test.

  • webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
  • webgl/2.0.0/resources/webkit-webgl-test-harness.js:

(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):

12:22 PM Changeset in webkit [235089] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Added Thomas Denney to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=188525

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-20
Reviewed by Myles C. Maxfield.

  • Scripts/webkitpy/common/config/contributors.json:
12:15 PM Changeset in webkit [235088] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Fix the iOSMac build with unified sources

  • Shared/mac/ArgumentCodersMac.mm:
  • Shared/mac/ChildProcessMac.mm:
  • Shared/mac/NativeWebKeyboardEventMac.mm:
11:38 AM Changeset in webkit [235087] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

UIWebView crashes while attempting to play youtube video on phone
https://bugs.webkit.org/show_bug.cgi?id=188351
rdar://problem/42489664

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-08-20
Reviewed by David Kilzer.

Test will be incorporated with fix for 188749, which will test both fixes.

VideoFullscreenControllerContext must remove unretained reference to it from m_playbackModel during cleanup.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::didCleanupFullscreen):

11:10 AM Changeset in webkit [235086] by eric.carlson@apple.com
  • 40 edits in trunk

[MediaStream] Move capture device monitoring to WebKit
https://bugs.webkit.org/show_bug.cgi?id=188521
<rdar://problem/43251787>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, updated fast/mediastream/device-change-event-2.html for the changes.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::MediaDevices): Device change listener is added in addEventListener.
(WebCore::MediaDevices::stop): Device change listener is on the user media controller.
(WebCore::MediaDevices::addEventListener): Add the device change listener only once the first
event handler is added.

  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/UserMediaClient.h:
  • Modules/mediastream/UserMediaController.h:

(WebCore::UserMediaController::addDeviceChangeObserver): Pass through to the client.
(WebCore::UserMediaController::removeDeviceChangeObserver): Ditto.

  • platform/mediastream/CaptureDeviceManager.cpp:

(CaptureDeviceManager::deviceChanged): Notify RealtimeMediaSourceCenter.
(nextObserverToken): Deleted.
(CaptureDeviceManager::addCaptureDeviceChangedObserver): Deleted.
(CaptureDeviceManager::removeCaptureDeviceChangedObserver): Deleted.

  • platform/mediastream/CaptureDeviceManager.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::setDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::captureDevicesChanged):
(WebCore::observerMap): Deleted.
(WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver): Deleted.
(WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver): Deleted.

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): Call base class.

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::deviceConnected): Ditto.
(WebCore::AVCaptureDeviceManager::deviceDisconnected): Ditto.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:

(WebCore::deviceHasInputStreams): Drive-by fix, check the number of buffers to see if the
device has input streams.
(WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices): Use new bool parameter
added to refreshAudioCaptureDevices so we won't trigger a device change event on the first scan.
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): Add param.
(WebCore::CoreAudioCaptureDeviceManager::devicesChanged): Use new param.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::setDevices): Don't need to call captureDevicesChanged,
it is done in the UI process.
(WebCore::MockRealtimeMediaSourceCenter::addDevice): Ditto.
(WebCore::MockRealtimeMediaSourceCenter::removeDevice): Ditto.

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setPageIsFocusedAndActive): New, used by updated test.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): Notify as appropriate.
(WebKit::UserMediaPermissionRequestManagerProxy::viewIsBecomingVisible): Change name from
viewIsBecomingVisible. Call captureDevicesChanged if a change happened when not visible.
(WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired): Clear m_pendingDeviceChangeEvent.
(WebKit::UserMediaPermissionRequestManagerProxy::processPregrantedRequests): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::UserMediaProcessManager): Initialize timer.
(WebKit::UserMediaProcessManager::captureDevicesChanged): New, notify each manager.
(WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices): Cache the device list and
register device change listener the first time it is called.

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

(WebKit::WebPageProxy::viewIsBecomingVisible):
(WebKit::WebPageProxy::beginMonitoringCaptureDevices):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::addDeviceChangeObserver): Add listener, tell page
to start monitoring device changes.
(WebKit::UserMediaPermissionRequestManager::removeDeviceChangeObserver): Remove listener.
(WebKit::UserMediaPermissionRequestManager::captureDevicesChanged): Call listeners.

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebUserMediaClient.cpp:

(WebKit::WebUserMediaClient::addDeviceChangeObserver):
(WebKit::WebUserMediaClient::removeDeviceChangeObserver):

  • WebProcess/WebCoreSupport/WebUserMediaClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::captureDevicesChanged):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::addMockMediaDevice):
(WebKit::WebProcess::clearMockMediaDevices):
(WebKit::WebProcess::removeMockMediaDevice):
(WebKit::WebProcess::resetMockMediaDevices):
(WebKit::WebProcess::captureDevicesChanged):

  • WebProcess/WebProcess.h:

LayoutTests:

  • fast/mediastream/device-change-event-2-expected.txt: Updated.
  • fast/mediastream/device-change-event-2.html: Updated.
10:41 AM Changeset in webkit [235085] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.10.2

Tag Safari-606.1.36.10.2.

10:39 AM Changeset in webkit [235084] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.10-branch/Source

Versioning.

10:39 AM Changeset in webkit [235083] by Kocsen Chung
  • 1 delete in tags/Safari-606.1.36.10.2

Delete tag

10:30 AM Changeset in webkit [235082] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.10.2

Tag Safari-606.1.36.10.2.

10:25 AM Changeset in webkit [235081] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-606.1.36.10-branch

Cherry-pick r235007. rdar://problem/43445973

intersectionOfPastValuesAtHead must filter values after they've observed an invalidation point
https://bugs.webkit.org/show_bug.cgi?id=188707
<rdar://problem/43015442>

Reviewed by Mark Lam.

JSTests:

  • stress/cfa-expected-values-must-set-clobbered-to-false.js: Added. (foo): (let.comp.valueOf): (result):

Source/JavaScriptCore:

We use the values in intersectionOfPastValuesAtHead to verify that it is safe to
OSR enter at the head of a block. We verify it's safe to OSR enter by checking
that each incoming value is compatible with its corresponding AbstractValue.

The bug is that we were sometimes filtering the intersectionOfPastValuesAtHead
with abstract values that were clobbererd. This meant that the value we're
verifying with at OSR entry effectively has an infinite structure set because
it's clobbered. So, imagine we have code like this:
`
---> We OSR enter here, and we're clobbered here
InvalidationPoint
GetByOffset(@base)
`

The abstract value for @base inside intersectionOfPastValuesAtHead has a
clobberred structure set, so we'd allow an incoming object with any
structure. However, this is wrong because the invalidation point is no
longer fulfilling its promise that it filters the structure that @base has.

We fix this by filtering the AbstractValues in intersectionOfPastValuesAtHead
as if the incoming value may be live past an InvalidationPoint.
This places a stricter requirement that to safely OSR enter at any basic
block, all incoming values must be compatible as if they lived past
the execution of an invalidation point.

  • dfg/DFGCFAPhase.cpp: (JSC::DFG::CFAPhase::run):

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

9:49 AM Changeset in webkit [235080] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Sort inspector GResource manifest to ensure reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=188738

Patch by Bernhard M. Wiedemann <bwiedemann@suse.de> on 2018-08-20
Reviewed by Michael Catanzaro.

  • glib/generate-inspector-gresource-manifest.py:

(get_filenames): sort list of input files

9:43 AM Changeset in webkit [235079] by Wenson Hsieh
  • 2 edits in trunk/Tools

[iOS] Paste is missing from callout bar when pasteboard only contains custom data
https://bugs.webkit.org/show_bug.cgi?id=184271
<rdar://problem/39256708>

Reviewed by Andy Estes.

This API test is failing when run against older macOS builds, where custom pasteboard
data is not enabled by default.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:

(TestWebKitAPI::TEST):

7:08 AM Changeset in webkit [235078] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235036 - Unreviewed. Fix GTK/WPE cookie API tests after r234396.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::displayNameForCookieHostName): Bring back the check to handle localhost as an
special case for non cocoa ports.

7:08 AM Changeset in webkit [235077] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Merge r235026 - [SOUP] Check length before calling soup_message_body_append_buffer.
https://bugs.webkit.org/show_bug.cgi?id=176803

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The function has a precondition that the buffer is non-empty.

Test: http/tests/local/blob/send-hybrid-blob-using-open-panel.html

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::appendEncodedBlobItemToSoupMessageBody):
(WebCore::ResourceRequest::updateSoupMessageBody const):

LayoutTests:

  • platform/gtk/TestExpectations: Enable test.
7:08 AM Changeset in webkit [235076] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.22

Merge r235025 - Relax Request constructor around referrers
https://bugs.webkit.org/show_bug.cgi?id=168649

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-20
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/policies/referrer-origin-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:

Source/WebCore:

Implement remaining part of fetch change
https://github.com/whatwg/fetch/pull/377, i.e.
if "parsedReferrer’s origin is not same origin with origin",
then set request’s referrer to "client", instead of
throwing an exception [1].

WebKit's new behavior matches that of Chrome and Firefox.

Testing is covered by existing wpt tests.

[1] Step 15.3.3 of https://fetch.spec.whatwg.org/#main-fetch

  • Modules/fetch/FetchRequest.cpp:

(WebCore::computeReferrer):

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
7:08 AM Changeset in webkit [235075] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.22

Merge r235024 - [GLIB] Add API to throw exceptions using printf formatted strings
https://bugs.webkit.org/show_bug.cgi?id=188698

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Add jsc_context_throw_printf() and jsc_context_throw_with_name_printf(). Also add new public constructors of
JSCException using printf formatted string.

  • API/glib/JSCContext.cpp:

(jsc_context_throw_printf):
(jsc_context_throw_with_name_printf):

  • API/glib/JSCContext.h:
  • API/glib/JSCException.cpp:

(jsc_exception_new_printf):
(jsc_exception_new_vprintf):
(jsc_exception_new_with_name_printf):
(jsc_exception_new_with_name_vprintf):

  • API/glib/JSCException.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add cases to test the new API.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(createFormattedError):
(createCustomFormattedError):
(testJSCExceptions):

7:08 AM Changeset in webkit [235074] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.22

Merge r235023 - [GLIB] Complete the JSCException API
https://bugs.webkit.org/show_bug.cgi?id=188695

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Add more API to JSCException:

  • New function to get the column number
  • New function get exception as string (toString())
  • Add the possibility to create exceptions with a custom error name.
  • New function to get the exception error name
  • New function to get the exception backtrace.
  • New convenience function to report a exception by returning a formatted string with all the exception details, to be shown as a user error message.
  • API/glib/JSCContext.cpp:

(jsc_context_throw_with_name):

  • API/glib/JSCContext.h:
  • API/glib/JSCException.cpp:

(jscExceptionEnsureProperties):
(jsc_exception_new):
(jsc_exception_new_with_name):
(jsc_exception_get_name):
(jsc_exception_get_column_number):
(jsc_exception_get_back_trace_string):
(jsc_exception_to_string):
(jsc_exception_report):

  • API/glib/JSCException.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add cases to test the new API.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(testJSCCheckSyntax):
(createCustomError):
(testJSCExceptions):

7:08 AM Changeset in webkit [235073] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235021 - Unreviewed, rolling out r234852.
https://bugs.webkit.org/show_bug.cgi?id=188736

Workaround is not correct (Requested by yusukesuzuki on

Reverted changeset:

"[JSC] Should not rotate constant with 64"
https://bugs.webkit.org/show_bug.cgi?id=188556
https://trac.webkit.org/changeset/234852

7:07 AM Changeset in webkit [235072] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235020 - Shrink size of WebCore::Event further by reordering members
https://bugs.webkit.org/show_bug.cgi?id=188734

Reviewed by Daniel Bates.

Since WebCore::Event is ref-counted class, it has 4bytes m_refCount at the head of the class.
So placing 4bytes just after that before placing 8bytes aligned member (like pointers in 64bit
platforms) can save the size of WebCore::Event further.
This patch reorders members of WebCore::Event to shrink the size from 80bytes to 72bytes.

No behavior change.

  • dom/Event.cpp:

(WebCore::Event::Event):

  • dom/Event.h:
7:07 AM Changeset in webkit [235071] by Carlos Garcia Campos
  • 9 edits
    1 add in releases/WebKitGTK/webkit-2.22/Source

Merge r235018 - [WTF] Add WTF::unalignedLoad and WTF::unalignedStore
https://bugs.webkit.org/show_bug.cgi?id=188716

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use WTF::unalignedLoad and WTF::unalignedStore to avoid undefined behavior.
The compiler can emit appropriate mov operations in x86 even if we use these
helper functions.

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerBuffer::LocalWriter::putIntegralUnchecked):
(JSC::AssemblerBuffer::putIntegral):
(JSC::AssemblerBuffer::putIntegralUnchecked):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::readCallTarget):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::linkJump):
(JSC::X86Assembler::readPointer):
(JSC::X86Assembler::replaceWithHlt):
(JSC::X86Assembler::replaceWithJump):
(JSC::X86Assembler::setPointer):
(JSC::X86Assembler::setInt32):
(JSC::X86Assembler::setInt8):

  • interpreter/InterpreterInlines.h:

(JSC::Interpreter::getOpcodeID): Embedded opcode may be misaligned. Actually UBSan detects misaligned accesses here.

Source/WTF:

While some CPUs allow unaligned accesses to memory, doing it in C++ with reinterpret_cast<> is
undefined behavior. This patch adds WTF::{unalignedLoad,unalignedStore} helper functions, which
can load from and store to the pointer in an unaligned manner.
Actual implementation uses memcpy. This can be optimized to direct unaligned access operations
in supported CPUs like x86. Even though a CPU does not support unaligned accesses, memcpy is still
safe and the compiler emits appropriate code.

We name these functions unalignedLoad and unalignedStore instead of loadUnaligned and storeUnaligned
in order to align them to atomicLoad and atomicStore.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/UnalignedAccess.h: Added.

(WTF::unalignedLoad):
(WTF::unalignedStore):

  • wtf/text/StringCommon.h:

(WTF::equal):
(WTF::loadUnaligned): Deleted.

7:07 AM Changeset in webkit [235070] by Carlos Garcia Campos
  • 37 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235014 - [IntersectionObserver] Fire an initial dummy notification
https://bugs.webkit.org/show_bug.cgi?id=188670

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Rebaseline tests now that an initial notification is fired.

  • web-platform-tests/intersection-observer/bounding-box-expected.txt:
  • web-platform-tests/intersection-observer/client-rect-expected.txt:
  • web-platform-tests/intersection-observer/containing-block-expected.txt:
  • web-platform-tests/intersection-observer/cross-origin-iframe-expected.txt:
  • web-platform-tests/intersection-observer/disconnect-expected.txt:
  • web-platform-tests/intersection-observer/display-none-expected.txt:
  • web-platform-tests/intersection-observer/edge-inclusive-intersection-expected.txt:
  • web-platform-tests/intersection-observer/iframe-no-root-expected.txt:
  • web-platform-tests/intersection-observer/inline-client-rect-expected.txt:
  • web-platform-tests/intersection-observer/isIntersecting-change-events-expected.txt:
  • web-platform-tests/intersection-observer/multiple-targets-expected.txt:
  • web-platform-tests/intersection-observer/multiple-thresholds-expected.txt:
  • web-platform-tests/intersection-observer/observer-without-js-reference-expected.txt:
  • web-platform-tests/intersection-observer/remove-element-expected.txt:
  • web-platform-tests/intersection-observer/root-margin-expected.txt:
  • web-platform-tests/intersection-observer/same-document-no-root-expected.txt:
  • web-platform-tests/intersection-observer/same-document-root-expected.txt:
  • web-platform-tests/intersection-observer/same-document-zero-size-target-expected.txt:
  • web-platform-tests/intersection-observer/shadow-content-expected.txt:
  • web-platform-tests/intersection-observer/text-target-expected.txt:
  • web-platform-tests/intersection-observer/timestamp-expected.txt:
  • web-platform-tests/intersection-observer/unclipped-root-expected.txt:
  • web-platform-tests/intersection-observer/zero-area-element-hidden-expected.txt:
  • web-platform-tests/intersection-observer/zero-area-element-visible-expected.txt:

Source/WebCore:

Add logic to track ongoing intersection observations. Create an IntersectionObserverRegistration
and fire a single dummy notification for each one.

Test: intersection-observer/root-element-moved.html
Also tested by existing tests in imported/w3c/web-platform-tests/intersection-observer.

  • dom/Document.cpp:

(WebCore::Document::~Document):
(WebCore::Document::addIntersectionObserver):
(WebCore::Document::removeIntersectionObserver):
(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::notifyIntersectionObserversTimerFired):

  • dom/Document.h:

(WebCore::Document::numberOfIntersectionObservers const):

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument):
(WebCore::Element::disconnectFromIntersectionObservers):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::~IntersectionObserver):
(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::unobserve):
(WebCore::IntersectionObserver::disconnect):
(WebCore::IntersectionObserver::takeRecords):
(WebCore::IntersectionObserver::targetDestroyed):
(WebCore::IntersectionObserver::removeTargetRegistration):
(WebCore::IntersectionObserver::removeAllTargets):
(WebCore::IntersectionObserver::rootDestroyed):
(WebCore::IntersectionObserver::appendQueuedEntry):
(WebCore::IntersectionObserver::notify):

  • page/IntersectionObserver.h:

(WebCore::IntersectionObserver::trackingDocument):
(WebCore::IntersectionObserver:: const):
(WebCore::IntersectionObserver::hasObservationTargets const):

  • page/IntersectionObserver.idl:
  • testing/Internals.cpp:

(WebCore::Internals::numberOfIntersectionObservers const):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • intersection-observer/root-element-deleted.html: Add additional assertions.
  • intersection-observer/root-element-moved-expected.txt: Added.
  • intersection-observer/root-element-moved.html: Added.
7:07 AM Changeset in webkit [235069] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22

Merge r235010 - Adjust CMAKE_MODULE_LINKER_FLAGS for asan
https://bugs.webkit.org/show_bug.cgi?id=188699

Reviewed by Konstantin Tokarev.

  • Source/cmake/WebKitCompilerFlags.cmake:
7:07 AM Changeset in webkit [235068] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235009 - Pack booleans in Event into a bitfield
https://bugs.webkit.org/show_bug.cgi?id=188713

Reviewed by Daniel Bates.

Use bitfields for booleans in Event class.

  • dom/Event.cpp:

(WebCore::Event::Event):

  • dom/Event.h:

(WebCore::Event::IsComposed): Added.
(WebCore::Event): Packed booleans into a bitfield.

7:07 AM Changeset in webkit [235067] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235007 - intersectionOfPastValuesAtHead must filter values after they've observed an invalidation point
https://bugs.webkit.org/show_bug.cgi?id=188707
<rdar://problem/43015442>

Reviewed by Mark Lam.

JSTests:

  • stress/cfa-expected-values-must-set-clobbered-to-false.js: Added.

(foo):
(let.comp.valueOf):
(result):

Source/JavaScriptCore:

We use the values in intersectionOfPastValuesAtHead to verify that it is safe to
OSR enter at the head of a block. We verify it's safe to OSR enter by checking
that each incoming value is compatible with its corresponding AbstractValue.

The bug is that we were sometimes filtering the intersectionOfPastValuesAtHead
with abstract values that were clobbererd. This meant that the value we're
verifying with at OSR entry effectively has an infinite structure set because
it's clobbered. So, imagine we have code like this:
`
---> We OSR enter here, and we're clobbered here
InvalidationPoint
GetByOffset(@base)
`

The abstract value for @base inside intersectionOfPastValuesAtHead has a
clobberred structure set, so we'd allow an incoming object with any
structure. However, this is wrong because the invalidation point is no
longer fulfilling its promise that it filters the structure that @base has.

We fix this by filtering the AbstractValues in intersectionOfPastValuesAtHead
as if the incoming value may be live past an InvalidationPoint.
This places a stricter requirement that to safely OSR enter at any basic
block, all incoming values must be compatible as if they lived past
the execution of an invalidation point.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):

7:06 AM Changeset in webkit [235066] by Carlos Garcia Campos
  • 17 edits
    2 adds in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235006 - Start bringing up Unified Sources in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=188703

Reviewed by Simon Fraser.

  • Configurations/BaseTarget.xcconfig:

Add SRCROOT to the include path, so unified sources can find the source files.

  • Shared/APIWebArchive.mm:

(API::releaseWebArchiveData):
(API::WebArchive::data):
(API::releaseCFData): Deleted.

  • Shared/APIWebArchiveResource.mm:

(API::releaseWebArchiveResourceData):
(API::WebArchiveResource::data):
(API::releaseCFData): Deleted.
Disambiguate two static methods by renaming them.

  • Shared/cf/ArgumentCodersCF.cpp:

Leave a comment about the bizarreness of this file.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::decode):

  • Shared/WebPlatformTouchPoint.cpp:
  • Shared/WebPopupItem.cpp:

(WebKit::WebPopupItem::WebPopupItem):
(WebKit::WebPopupItem::decode):

  • Shared/WebPreferencesStore.cpp:
  • Shared/WebRenderLayer.cpp:

(WebKit::WebRenderLayer::create):
(WebKit::WebRenderLayer::createArrayFromLayerList):
(WebKit::WebRenderLayer::WebRenderLayer):

  • Shared/gtk/WebEventFactory.cpp:
  • Shared/mac/WebCoreArgumentCodersMac.mm:
  • Shared/mac/WebEventFactory.mm:

(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebWheelEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):

  • Shared/mac/WebMemorySampler.mac.mm:

(WebKit::WebMemorySampler::sampleWebKit const):

  • UIProcess/API/APIAutomationSessionClient.h:

(API::AutomationSessionClient::sessionIdentifier const):
(API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::setNeedsDisplay):
(WebKit::RemoteLayerBackingStore::backingStoreSize const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::drawInContext):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::setRootLayerID):
(WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs):
(WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description const):

  • Shared/WebPlatformTouchPoint.cpp:

(WebKit::WebPlatformTouchPoint::WebPlatformTouchPoint):
Get rid of lots of using namespace.

  • Sources.txt: Added.
  • SourcesCocoa.txt: Added.
  • WebKit.xcodeproj/project.pbxproj:

Set up unified sources.
Right now, we only unify Platform/ and Shared/[API].

6:31 AM Changeset in webkit [235065] by Claudio Saavedra
  • 3 edits in trunk/Tools

Add WPE Debug configuration to the flakiness dashboard
https://bugs.webkit.org/show_bug.cgi?id=188743

Reviewed by Michael Catanzaro.

  • TestResultServer/static-dashboards/builders.jsonp:
  • TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:
5:54 AM Changeset in webkit [235064] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235002 - Clean up CSSSelectorList after r234825
https://bugs.webkit.org/show_bug.cgi?id=188566

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-17
Reviewed by Megan Gardner.

This is responding to Darin's feedback in https://bugs.webkit.org/show_bug.cgi?id=188539

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::operator=): Deleted.

  • css/CSSSelectorList.h:

(WebCore::CSSSelectorList::CSSSelectorList):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):

5:54 AM Changeset in webkit [235063] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235000 - Remove Adobe SSO exception now that StorageAccess API is available
https://bugs.webkit.org/show_bug.cgi?id=188710
<rdar://problem/35056707>

Reviewed by Alex Christensen.

Remove custom quirk now that proper API exists to allow the same functions.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logSubresourceLoading): Remove unneeded quirk.
(WebCore::resourceNeedsSSOQuirk): Deleted.

5:54 AM Changeset in webkit [235062] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234999 - Replace canBubble and cancelable booleans in Event by enum classes
https://bugs.webkit.org/show_bug.cgi?id=188692
<rdar://problem/43411944>

Rubber-stamped by Alex Christensen.

Make these enum classes uint8_t.

  • dom/Event.h:
5:54 AM Changeset in webkit [235061] by Carlos Garcia Campos
  • 165 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r234995 - Replace canBubble and cancelable booleans in Event by enum classes
https://bugs.webkit.org/show_bug.cgi?id=188692

Reviewed by Alex Christensen.

Source/WebCore:

Replaced booleans indicating whether an event can bubble and an event is cancelable
by two enum classes: CanBubble and IsCancelable.

No new tests since there should be no behavioral changes.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:

(WebCore::WebKitPlaybackTargetAvailabilityEvent::WebKitPlaybackTargetAvailabilityEvent):

  • Modules/applepay/ApplePayPaymentAuthorizedEvent.cpp:

(WebCore::ApplePayPaymentAuthorizedEvent::ApplePayPaymentAuthorizedEvent):

  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.cpp:

(WebCore::ApplePayPaymentMethodSelectedEvent::ApplePayPaymentMethodSelectedEvent):

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::didCancelPaymentSession):

  • Modules/applepay/ApplePayShippingContactSelectedEvent.cpp:

(WebCore::ApplePayShippingContactSelectedEvent::ApplePayShippingContactSelectedEvent):

  • Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:

(WebCore::ApplePayShippingMethodSelectedEvent::ApplePayShippingMethodSelectedEvent):

  • Modules/applepay/ApplePayValidateMerchantEvent.cpp:

(WebCore::ApplePayValidateMerchantEvent::ApplePayValidateMerchantEvent):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.cpp:

(WebCore::WebKitMediaKeyMessageEvent::WebKitMediaKeyMessageEvent):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.cpp:

(WebCore::WebKitMediaKeyNeededEvent::WebKitMediaKeyNeededEvent):

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::addKeyTimerFired):
(WebCore::WebKitMediaKeySession::sendError):

  • Modules/gamepad/GamepadEvent.cpp:

(WebCore::GamepadEvent::GamepadEvent):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::connectionToServerLost):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::onSuccess):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):

  • Modules/indexeddb/IDBRequestCompletionEvent.cpp:

(WebCore::IDBRequestCompletionEvent::IDBRequestCompletionEvent):

  • Modules/indexeddb/IDBRequestCompletionEvent.h:

(WebCore::IDBRequestCompletionEvent::create):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::fireOnComplete):
(WebCore::IDBTransaction::fireOnAbort):

  • Modules/indexeddb/IDBVersionChangeEvent.cpp:

(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::skipToNextTrack):
(WebCore::MediaSession::skipToPreviousTrack):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::scheduleEvent):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::scheduleEvent):

  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::scheduleEvent):

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::scheduledEventTimerFired):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):

  • Modules/mediastream/MediaStreamEvent.cpp:

(WebCore::MediaStreamEvent::create):
(WebCore::MediaStreamEvent::MediaStreamEvent):

  • Modules/mediastream/MediaStreamEvent.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::trackMutedChanged):

  • Modules/mediastream/MediaStreamTrackEvent.cpp:

(WebCore::MediaStreamTrackEvent::create):
(WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):

  • Modules/mediastream/MediaStreamTrackEvent.h:
  • Modules/mediastream/OverconstrainedErrorEvent.h:

(WebCore::OverconstrainedErrorEvent::create):
(WebCore::OverconstrainedErrorEvent::OverconstrainedErrorEvent):

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::fireICECandidateEvent):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):
(WebCore::PeerConnectionBackend::updateSignalingState):

  • Modules/mediastream/RTCDTMFToneChangeEvent.cpp:

(WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::didChangeReadyState):
(WebCore::RTCDataChannel::didDetectError):
(WebCore::RTCDataChannel::bufferedAmountIsDecreasing):

  • Modules/mediastream/RTCDataChannelEvent.cpp:

(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):

  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):
(WebCore::RTCPeerConnection::updateConnectionState):
(WebCore::RTCPeerConnection::scheduleNegotiationNeededEvent):

  • Modules/mediastream/RTCPeerConnectionIceEvent.cpp:

(WebCore::RTCPeerConnectionIceEvent::create):
(WebCore::RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent):

  • Modules/mediastream/RTCPeerConnectionIceEvent.h:
  • Modules/mediastream/RTCTrackEvent.cpp:

(WebCore::RTCTrackEvent::create):
(WebCore::RTCTrackEvent::RTCTrackEvent):

  • Modules/mediastream/RTCTrackEvent.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::addDataChannel):

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::dispatchShowEvent):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):
(WebCore::Notification::dispatchErrorEvent):

  • Modules/paymentrequest/MerchantValidationEvent.cpp:

(WebCore::MerchantValidationEvent::MerchantValidationEvent):

  • Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:

(WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent):

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::postEvent):

  • Modules/speech/SpeechSynthesisEvent.cpp:

(WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::setState):

  • Modules/webaudio/AudioProcessingEvent.cpp:

(WebCore::AudioProcessingEvent::AudioProcessingEvent):

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/OfflineAudioCompletionEvent.cpp:

(WebCore::OfflineAudioCompletionEvent::OfflineAudioCompletionEvent):

  • Modules/websockets/CloseEvent.h:

(WebCore::CloseEvent::CloseEvent):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::dispatchOrQueueErrorEvent):

  • Modules/webvr/VRDisplayEvent.cpp:

(WebCore::VRDisplayEvent::VRDisplayEvent):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::dispatchAccessibilityEventWithType const):

  • accessibility/AccessibleSetValueEvent.cpp:

(WebCore::AccessibleSetValueEvent::AccessibleSetValueEvent):

  • animation/AnimationPlaybackEvent.cpp:

(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::abort):

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):

  • dom/BeforeLoadEvent.h:
  • dom/BeforeTextInsertedEvent.cpp:

(WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent):

  • dom/BeforeUnloadEvent.cpp:

(WebCore::BeforeUnloadEvent::BeforeUnloadEvent):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::dispatchModifiedEvent):

  • dom/CompositionEvent.cpp:

(WebCore::CompositionEvent::CompositionEvent):

  • dom/ContainerNode.cpp:

(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):

  • dom/DeviceMotionEvent.cpp:

(WebCore::DeviceMotionEvent::DeviceMotionEvent):

  • dom/DeviceOrientationEvent.cpp:

(WebCore::DeviceOrientationEvent::DeviceOrientationEvent):

  • dom/Document.cpp:

(WebCore::Document::setReadyState):
(WebCore::Document::visibilityStateChanged):
(WebCore::Document::finishedParsing):
(WebCore::Document::dispatchFullScreenChangeOrErrorEvent):
(WebCore::Document::orientationChanged):

  • dom/DocumentEventQueue.cpp:

(WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
(WebCore::DocumentEventQueue::enqueueScrollEvent):
(WebCore::DocumentEventQueue::enqueueResizeEvent):

  • dom/DocumentEventQueue.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):
(WebCore::Element::dispatchFocusEvent):
(WebCore::Element::dispatchBlurEvent):
(WebCore::Element::dispatchWebKitImageReadyEventForTesting):

  • dom/ErrorEvent.cpp:

(WebCore::ErrorEvent::ErrorEvent):

  • dom/Event.cpp:

(WebCore::Event::Event):
(WebCore::Event::create):

  • dom/Event.h:
  • dom/FocusEvent.cpp:

(WebCore::FocusEvent::FocusEvent):

  • dom/FocusEvent.h:
  • dom/HashChangeEvent.h:
  • dom/InputEvent.cpp:

(WebCore::InputEvent::create):
(WebCore::InputEvent::InputEvent):

  • dom/InputEvent.h:
  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):

  • dom/MouseEvent.h:
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent):

  • dom/MouseRelatedEvent.h:
  • dom/MutationEvent.cpp:

(WebCore::MutationEvent::MutationEvent):

  • dom/MutationEvent.h:
  • dom/Node.cpp:

(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):
(WebCore::Node::dispatchInputEvent):

  • dom/OverflowEvent.cpp:

(WebCore::OverflowEvent::OverflowEvent):

  • dom/PageTransitionEvent.cpp:

(WebCore::PageTransitionEvent::PageTransitionEvent):

  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::PopStateEvent):

  • dom/ProgressEvent.cpp:

(WebCore::ProgressEvent::ProgressEvent):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::dispatchErrorEvent):

  • dom/SecurityPolicyViolationEvent.h:
  • dom/SimulatedClick.cpp:
  • dom/TextEvent.cpp:

(WebCore::TextEvent::TextEvent):

  • dom/TransitionEvent.cpp:

(WebCore::TransitionEvent::TransitionEvent):

  • dom/UIEvent.cpp:

(WebCore::UIEvent::UIEvent):

  • dom/UIEvent.h:

(WebCore::UIEvent::create):

  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::UIEventWithKeyState):

  • dom/WebKitAnimationEvent.cpp:

(WebCore::WebKitAnimationEvent::WebKitAnimationEvent):

  • dom/WebKitTransitionEvent.cpp:

(WebCore::WebKitTransitionEvent::WebKitTransitionEvent):

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):

  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchBeforeInputEvents):
(WebCore::Editor::willApplyEditing const):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::dispatchSelectStart):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::dispatchPendingEvent):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::dispatchChangeEvent):
(WebCore::HTMLFormControlElement::checkValidity):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::prepareForSubmission):
(WebCore::HTMLFormElement::reset):

  • html/HTMLImageLoader.cpp:

(WebCore::HTMLImageLoader::dispatchLoadEvent):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::onSearch):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::dispatchPendingEvent):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleEvent):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::layoutSizeChanged):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::checkSnapshotStatus):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::dispatchLoadEvent):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::dispatchSlotChangeEvent):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::errorEventTimerFired):

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::dispatchPendingEvent):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::selectionChanged):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::didCompleteLoad):

  • html/MediaController.cpp:

(WebCore::MediaController::scheduleEvent):

  • html/canvas/WebGLContextEvent.cpp:

(WebCore::WebGLContextEvent::WebGLContextEvent):

  • html/canvas/WebGLContextEvent.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent):

  • html/parser/HTMLScriptRunner.cpp:

(WebCore::createScriptLoadEvent):

  • html/track/TrackEvent.cpp:

(WebCore::TrackEvent::TrackEvent):

  • html/track/TrackEvent.h:
  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::scheduleTrackEvent):
(WebCore::TrackListBase::scheduleChangeEvent):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchUnloadEvents):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::dispatchPendingErrorEvent):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::createApplicationCacheEvent):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::languagesChanged):
(WebCore::DOMWindow::dispatchLoadEvent):

  • page/EventHandler.cpp:

(WebCore::dispatchSelectStart):
(WebCore::EventHandler::dispatchDragEvent):

  • page/EventSource.cpp:

(WebCore::EventSource::scheduleReconnect):
(WebCore::EventSource::didReceiveResponse):
(WebCore::EventSource::abortConnectionAttempt):

  • page/FocusController.cpp:

(WebCore::dispatchEventsOnWindowAndFocusedElement):
(WebCore::FocusController::setFocusedFrame):

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

  • page/Page.cpp:

(WebCore::networkStateChanged):

  • page/Performance.cpp:

(WebCore::Performance::resourceTimingBufferFullTimerFired):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::enqueueEvent):

  • page/VisualViewport.cpp:

(WebCore::VisualViewport::enqueueResizeEvent):
(WebCore::VisualViewport::enqueueScrollEvent):

  • storage/StorageEvent.cpp:

(WebCore::StorageEvent::StorageEvent):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::sendSVGLoadEventIfPossible):

  • svg/SVGImageLoader.cpp:

(WebCore::SVGImageLoader::dispatchLoadEvent):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::notifyFinished):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::dispatchPendingEvent):

  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):

  • workers/service/ExtendableEvent.cpp:

(WebCore::ExtendableEvent::ExtendableEvent):

  • workers/service/ExtendableEvent.h:
  • workers/service/ExtendableMessageEvent.cpp:

(WebCore::ExtendableMessageEvent::ExtendableMessageEvent):

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::scheduleTaskToUpdateState):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::scheduleTaskToFireControllerChangeEvent):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::scheduleTaskToFireUpdateFoundEvent):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::callReadyStateChangeListener):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKitLegacy/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

  • WebView/WebView.mm:

(-[WebView _dispatchUnloadEvent]):

5:53 AM Changeset in webkit [235060] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r234990 - Simplify server trust authentication flow
https://bugs.webkit.org/show_bug.cgi?id=188684

Reviewed by Youenn Fablet.

We unnecessarily had the allowsSpecificHTTPSCertificateForHost check at two different abstraction levels.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::allowsSpecificHTTPSCertificateForHost): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

5:53 AM Changeset in webkit [235059] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r234989 - Fix API tests after r234985
https://bugs.webkit.org/show_bug.cgi?id=188679

  • UIProcess/API/C/WKPage.cpp:

(encodingOf):
(dataFrom):
The encoding of null strings had changed, which is no big deal because there's no data in that encoding,
but switching it back fixes the tests.

5:53 AM Changeset in webkit [235058] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r234985 - Replace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML
https://bugs.webkit.org/show_bug.cgi?id=188679

Reviewed by Carlos Garcia Campos.

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • UIProcess/API/C/WKPage.cpp:

(encodingOf):
(dataFrom):
(loadString):
(WKPageLoadAlternateHTMLString):
(WKPageLoadAlternateHTMLStringWithUserData):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadAlternateHTMLString): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadAlternateHTMLString):

5:52 AM Changeset in webkit [235057] by Carlos Garcia Campos
  • 14 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r234984 - [JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg
https://bugs.webkit.org/show_bug.cgi?id=188589

Patch by Yusuke Suzuki <yusukesuzuki@slowstart.org> and Fujii Hironori <Fujii Hironori> on 2018-08-17
Reviewed by Mark Lam.
And reviewed by Yusuke Suzuki for Hironori's change.

Source/JavaScriptCore:

Since GPRReg(RegisterID) and FPRReg(FPRegisterID) do not include -1 in their enum values,
UBSan dumps bunch of warnings "runtime error: load of value 4294967295, which is not a valid value for type 'RegisterID'".

  • We add InvalidGPRReg and InvalidFPRReg to enum values of GPRReg and FPRReg to suppress the above warnings.
  • We make GPRReg and FPRReg int8_t enums.
  • We replace #define InvalidGPRReg ((JSC::GPRReg)-1) to static constexpr GPRReg InvalidGPRReg { GPRReg::InvalidGPRReg };.
  • We add operator+/- definition for RegisterIDs as a MSVC workaround. MSVC fails to resolve operator+ and operator- if enum : int8_t is used instead of enum.
  • assembler/ARM64Assembler.h:
  • assembler/ARMAssembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/MIPSAssembler.h:
  • assembler/MacroAssembler.h:
  • assembler/X86Assembler.h:
  • jit/CCallHelpers.h:

(JSC::CCallHelpers::clampArrayToSize):

  • jit/FPRInfo.h:
  • jit/GPRInfo.h:

(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::tagGPR const):
(JSC::JSValueRegs::payloadGPR const):
(JSC::JSValueSource::JSValueSource):
(JSC::JSValueSource::unboxedCell):
(JSC::JSValueSource::operator bool const):
(JSC::JSValueSource::base const):
(JSC::JSValueSource::tagGPR const):
(JSC::JSValueSource::payloadGPR const):
(JSC::JSValueSource::hasKnownTag const):

Source/WebCore:

  • cssjit/FunctionCall.h:

(WebCore::FunctionCall::FunctionCall):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):

  • html/HTMLKeygenElement.cpp:

Remove using namespace WebCore not to introduce operator+/- which makes the resolution of operator+/- for RegisterID ambiguous.

5:52 AM Changeset in webkit [235056] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234983 - [GStreamer] reduce position queries frequency
https://bugs.webkit.org/show_bug.cgi?id=188645

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

There is no need to perform dozens of position queries per second.
One every 300ms is enough.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
5:52 AM Changeset in webkit [235055] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234982 - [SOUP] Handle OAuth authentication after r234912
https://bugs.webkit.org/show_bug.cgi?id=188651

Reviewed by Carlos Garcia Campos.

Update this switch to consider the new OAuth enum value added in r234912. I suppose OAuth is
used for HTTP Auth now. It will be a one-time compatibility break as passwords previously
stored with type "Unknown" will no longer be accessible.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::authTypeFromProtectionSpaceAuthenticationScheme):

5:52 AM Changeset in webkit [235054] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WTF

Merge r234980 - WTF's internal std::optional implementation should release assert on all bad accesses
<https://webkit.org/b/187669>

Reviewed by Ryosuke Niwa.

  • wtf/Assertions.h:

(RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT): Add macro definitions.

  • wtf/Optional.h:

(std::optional::operator -> const):
(std::optional::operator ->):
(std::optional::operator * const):
(std::optional::operator *):
(std::optional::value const):
(std::optional::value):
(std::optional<T::operator-> const):
(std::optional<T::operator* const):
(std::optional<T::value const):

  • Change ASSERT_UNDER_CONSTEXPR_CONTEXT() macros to RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT() macros.
5:52 AM Changeset in webkit [235053] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234979 - [GTK] Never return an uninitialized ImageGStreamer object.
https://bugs.webkit.org/show_bug.cgi?id=188305

Reviewed by Philippe Normand.

The single caller was already checking for a null return value, so
make that check actually do something. Also remove the null-check on
the return value of image(), which asserted that it would never return
null.

Test: fast/canvas/canvas-createPattern-video-loading.html

  • platform/graphics/gstreamer/ImageGStreamer.h:

(WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
(WebCore::ImageGStreamer::image): Return a reference.
(WebCore::ImageGStreamer::rect): Always assert that m_image is present.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.

5:52 AM Changeset in webkit [235052] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234978 - [GStreamer] Enable fpsdisplaysink only when MEDIA_STATISTICS is enabled
https://bugs.webkit.org/show_bug.cgi?id=188648

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

The fpsdisplaysink is useful only when MEDIA_STATISTICS is turned on.
The text overlay is now enabled when GST_DEBUG tracing is enabled for the player.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):

5:52 AM Changeset in webkit [235051] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234977 - [GStreamer][MSE] Disable last-sample support in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=188649

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::AppendPipeline::AppendPipeline): This property isn't
used by the append pipeline. So as a micro-optimization, it is now
disabled.

4:47 AM Changeset in webkit [235050] by commit-queue@webkit.org
  • 10 edits in trunk

Throw an exception if window.open() gets passed a URL that cannot be parsed
https://bugs.webkit.org/show_bug.cgi?id=171656

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-20
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/url/failure-expected.txt:

Source/WebCore:

Throw a SyntaxError exception when an invalid url gets passed into window.open().

Tests: imported/w3c/web-platform-tests/url/failure.html

fast/dom/Window/open-invalid-url.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • testing/Internals.cpp:

(WebCore::Internals::openDummyInspectorFrontend):

LayoutTests:

  • fast/dom/Window/open-invalid-url-expected.txt:
  • fast/dom/Window/open-invalid-url.html:
4:12 AM Changeset in webkit [235049] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r234975 - [JSC] alignas for RegisterState should respect alignof(RegisterState) too
https://bugs.webkit.org/show_bug.cgi?id=188686

Reviewed by Saam Barati.

RegisterState would have larger alignment than alignof(void*). We use the larger alignment value
for alignof for RegisterState.

  • heap/RegisterState.h:
4:12 AM Changeset in webkit [235048] by Carlos Garcia Campos
  • 11 edits
    11 adds in releases/WebKitGTK/webkit-2.22

Merge r234974 - Web Inspector: support breakpoints for arbitrary event names
https://bugs.webkit.org/show_bug.cgi?id=183118

Reviewed by Joseph Pecoraro.

Source/WebCore:

Tests: inspector/dom-debugger/event-breakpoints.html

inspector/dom-debugger/event-breakpoints-with-navigation.html

  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):

Source/WebInspectorUI:

Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
specifically setEventBreakpoint and removeEventBreakpoint, that will pause execution if
any DOM event is fired that matches any previously registered breakpoints.

Event breakpoints are distinguished by name, and they currently apply globally, meaning
that only one breakpoint per event name can be registered.

Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
now all it contains is a basic text input for the event name. Similarly, a new TreeElement
subclass, EventBreakpointTreeElement, is used when showing the list of event listener
breakpoints, but all it shows now is the event name.

The majority of the logic in this patch was derived from XHR breakpoints.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Images/EventBreakpoint.svg: Added.
  • UserInterface/Models/EventBreakpoint.js: Added.

(WI.EventBreakpoint):
(WI.EventBreakpoint.prototype.get eventName):
(WI.EventBreakpoint.prototype.get disabled):
(WI.EventBreakpoint.prototype.set disabled):
(WI.EventBreakpoint.prototype.get serializableInfo):
(WI.EventBreakpoint.prototype.saveIdentityToCookie):

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
(WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype._pauseReasonFromPayload):

  • UserInterface/Controllers/EventBreakpointTreeController.js: Added.

(WI.EventBreakpointTreeController):
(WI.EventBreakpointTreeController.prototype.revealAndSelect):
(WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
(WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
(WI.EventBreakpointTreeController.prototype._addTreeElement):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
(WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):

  • UserInterface/Views/EventBreakpointTreeElement.js: Added.

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.onattach):
(WI.EventBreakpointTreeElement.prototype.ondetach):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.onenter):
(WI.EventBreakpointTreeElement.prototype.onspace):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
(WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
(WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
(WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
(WI.EventBreakpointTreeElement.prototype._updateStatus):

  • UserInterface/Views/EventBreakpointTreeElement.css: Added.

(.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):

  • UserInterface/Views/EventBreakpointPopover.js: Added.

(WI.EventBreakpointPopover):
(WI.EventBreakpointPopover.prototype.get result):
(WI.EventBreakpointPopover.prototype.get value):
(WI.EventBreakpointPopover.prototype.show):
(WI.EventBreakpointPopover.prototype._presentOverTargetElement):

  • UserInterface/Views/EventBreakpointPopover.css: Added.

(.popover .event-listener-breakpoint-content):
(.popover .event-listener-breakpoint-content > input):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):

LayoutTests:

  • inspector/dom-debugger/event-breakpoints-expected.txt: Added.
  • inspector/dom-debugger/event-breakpoints.html: Added.
  • inspector/dom-debugger/event-breakpoints-with-navigation-expected.txt: Added.
  • inspector/dom-debugger/event-breakpoints-with-navigation.html: Added.
4:12 AM Changeset in webkit [235047] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r234970 - Remove unused parentProcessName from NetworkProcessCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=188618

Reviewed by Alex Christensen.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

4:11 AM Changeset in webkit [235046] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234967 - Remove unused allowScriptsToCloseWindows setting
https://bugs.webkit.org/show_bug.cgi?id=188602

Reviewed by Simon Fraser.

No change in behaviour. It was always false.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::close):

  • page/Settings.yaml:
4:11 AM Changeset in webkit [235045] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebInspectorUI

Merge r234963 - Web Inspector: Show Initiator information in Network Table
https://bugs.webkit.org/show_bug.cgi?id=188590
<rdar://problem/43305488>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-16
Reviewed by Matt Baker.

  • UserInterface/Views/NetworkResourceDetailView.js:

(WI.NetworkResourceDetailView):
(WI.NetworkResourceDetailView.prototype.shown):
(WI.NetworkResourceDetailView.prototype.willShowWithCookie):
(WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
When a ResourceDetailView gets shown, it may also want to show its initial content view
with a cookie as the cookie may contain position highlight information.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype._showResourceDetailView):
(WI.NetworkTableContentView.prototype.showRepresentedObject):
When showing a represented object, pass the cookie information on to the detail
view's so that it may include the cookie when showing the final content view.

(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._populateInitiatorCell):
(WI.NetworkTableContentView.prototype.initialLayout):
New initiator column contains a source code link to the call site.

(WI.NetworkTableContentView.prototype._generateSortComparator):
(WI.NetworkTableContentView.prototype._entryForResource):
Entry data for the initiator is a display string that can be sorted easily.

4:11 AM Changeset in webkit [235044] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Merge r234957 - Custom element constructor doesn't use HTMLElement in new.target's realm
https://bugs.webkit.org/show_bug.cgi?id=188634

Reviewed by Keith Miller.

LayoutTests/imported/w3c:

Rebaselined the test now that all relevant test cases pass. All remaining test failures are
for customized builtin, which we do not and shall not implement.

  • web-platform-tests/custom-elements/htmlconstructor/newtarget-expected.txt:

Source/WebCore:

Fixed the bug that HTMLElement's constructor was constructing an element of its own realm
instead of the realm of new.target. This results in the JS wrapper created for the element
belonging to the global object of the HTMLElement constructor which was invoked instead of
the global object of new.target as specified in:
https://html.spec.whatwg.org/multipage/dom.html#html-element-constructors

In particular, step 9.2. specifies that we "perform element.SetPrototypeOf?(prototype)."
where prototype is the result of Get(NewTarget, "prototype") in step 7.

WebKit's new behavior matches that of Chrome and Firefox.

Test: imported/w3c/web-platform-tests/custom-elements/htmlconstructor/newtarget.html

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

4:11 AM Changeset in webkit [235043] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r234954 - Consolidate data/string API loading paths
https://bugs.webkit.org/show_bug.cgi?id=188417

Reviewed by Michael Catanzaro.

loadHTMLString and loadData are basically duplicate code.
loadPlainTextString was also basically the same except it didn't set up a navigation, which
was almost certainly a bug, but nobody uses it in all of Apple and Debian. We should probably deprecate
and remove it, but for now I make it use the same data loading path.

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadData):
(WKPageLoadDataWithUserData):
(loadString):
(WKPageLoadHTMLString):
(WKPageLoadHTMLStringWithUserData):
(WKPageLoadPlainTextString):
(WKPageLoadPlainTextStringWithUserData):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_load_html):
(webkit_web_view_load_plain_text):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString): Deleted.
(WebKit::WebPageProxy::loadPlainTextString): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):
(WebKit::WebPage::loadString): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:11 AM Changeset in webkit [235042] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r234953 - Custom element doesn't invalidate its style when :defined rule starts to apply
https://bugs.webkit.org/show_bug.cgi?id=188637

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the test now that all relevant test cases pass. The only remaining test failures
are for customized builtins which we do not and shall not implement.

  • web-platform-tests/custom-elements/pseudo-class-defined-expected.txt:

Source/WebCore:

Fixed the bug by invalidating the subtree when a custom element gets defined.

Test: fast/custom-elements/defined-update-style.html

  • dom/Element.cpp:

(WebCore::Element::setIsDefinedCustomElement):

LayoutTests:

Added a regression test.

  • fast/custom-elements/defined-update-style-expected.html: Added.
  • fast/custom-elements/defined-update-style.html: Added.
4:11 AM Changeset in webkit [235041] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r234945 - LayoutTest inspector/worker/debugger-pause.html sometimes times out
https://bugs.webkit.org/show_bug.cgi?id=188580

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-16
Reviewed by Matt Baker.

Source/WebInspectorUI:

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.get mainResource):
(WI.Target.prototype.set mainResource):
Dispatch an event when the Main Resource is set.

LayoutTests:

  • inspector/worker/debugger-pause.html:
  • inspector/worker/resources/worker-utilities.js: Added.

(TestPage.registerInitializer.window.awaitTargetMainResource):
(TestPage.registerInitializer):
Use a more deterministic wait for the main resource.

4:11 AM Changeset in webkit [235040] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r234944 - Perform a microtask checkpoint before creating a custom element
https://bugs.webkit.org/show_bug.cgi?id=188189
<rdar://problem/42843022>

Reviewed by Geoffrey Garen.

Source/WebCore:

Fixed the bug that the HTML parser was not performing a microtask checkpoint prior to synchronously constructing
a custom element in the concept to create an element for a token:
https://html.spec.whatwg.org/multipage/parsing.html#creating-and-inserting-nodes:perform-a-microtask-checkpoint

Also added a microtask checkpoint before dispatching DOMContentLoaded to work around webkit.org/b/82931 since
scheduling a task to fire a DOMContentLoaded event in Document::finishedParsing as the HTML5 spec mandates
is a long standing bug with a lot of implications, which is completely outside the scope of this bug fix:
https://html.spec.whatwg.org/multipage/parsing.html#stop-parsing

Test: fast/custom-elements/perform-microtask-checkpoint-before-construction.html

  • dom/Document.cpp:

(WebCore::Document::finishedParsing): Perform a microtask checkpoint before dispatching DOMContentLoaded here as
a workaround for webkit.org/b/82931.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder): Perform a microtask checkpoint here to fix the bug.

LayoutTests:

Added a W3C style testharness.js test for perfoming microtask checkpoint before constructing
a custom element synchronously.

  • fast/custom-elements/perform-microtask-checkpoint-before-construction-expected.txt: Added.
  • fast/custom-elements/perform-microtask-checkpoint-before-construction.html: Added.
  • fast/dom/MutationObserver/parser-mutations.html: Fixed the test per new behavior in Document::finishParsing.

Because iframe loads synchronously and fires DOMContentLoaded, mutation records are now delivered twice after
iframe element is encountered in this test and before script element executes. Concatenate the mutation records
arrays to account for this behavioral change. New WebKit behavior matches that of Chrome; namely this test
fails both on Chrome Canary 70 and trunk WebKit with this patch without this fix.

4:10 AM Changeset in webkit [235039] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.22

Merge r234943 - Re-introduce assertion removed in r234890
https://bugs.webkit.org/show_bug.cgi?id=188611

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-16
Reviewed by Geoffrey Garen.

Source/WebCore:

The assertion was failing because Vector<String>::operator== was using memcmp,
which failed to consider different instances of equal Strings equal. Added an
API test and this assertion, which now succeeds.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

Source/WTF:

  • wtf/text/WTFString.h:

Tools:

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

4:10 AM Changeset in webkit [235038] by Carlos Garcia Campos
  • 28 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r234941 - Stop using canAuthenticateAgainstProtectionSpace in modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=188639

Reviewed by Youenn Fablet.

canAuthenticateAgainstProtectionSpace is an unnecessary step in the authentication process.
It is leftover from when it was necessary when we used NSURLConnection, which is only used in WebKitLegacy now.
Now it's just an extra IPC roundtrip asking if we should use NSURLSessionAuthChallengeRejectProtectionSpace
or if we are going to ask the API client. We can move this step into the C API for compatibility
with the 1 client that still uses it (not for long, see rdar://problem/43358403) and simplify and optimize
authentication.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::completeAuthenticationChallenge): Deleted.
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::cancelDownload):
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): Deleted.
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):
(WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpace): Deleted.

  • UIProcess/WebPageProxy.h:
4:10 AM Changeset in webkit [235037] by Carlos Garcia Campos
  • 2 edits
    2 adds in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234932 - [Nicosia] Add Nicosia::ImageBackingTextureMapperImpl
https://bugs.webkit.org/show_bug.cgi?id=188550

Reviewed by Carlos Garcia Campos.

Add the Nicosia::ImageBackingTextureMapperImpl class, the
TextureMapper-specific implementation that will extend the ImageBacking
class.

This class will be used to contain and manage updates for layers that
are backed by image objects. The CoordinatedGraphicsLayer instance will
use the LayerState object to track the currently-presented image objects
and to store the latest update of these objects. The Update struct
contains information about the current visibility of the image in the
layer tree as well as the Nicosia::Buffer object containing the painted
image data that's to be presented on the screen.

During the layer flush the flushUpdate() method will move the current
update data into the pending position, from which this data will be
gathered by the composition component through the takeUpdate() method
and used to update the CoordinatedBackingStore object that's kept in
the CompositionState object on this impl class.

This will be deployed for use in the CoordinatedGraphicsLayer at a later
stage as it requires a larger rework in both CoordinatedGraphicsLayer as
well as the CoordinatedGraphicsScene classes.

The implementation itself differs from the current image backing support
in CoordinatedGraphicsLayer and CompositingCoordinator by abandoning the
idea of sharing single image backings between layers that might be
backed by identical Image objects. We thus end up trading any memory
consumption benefit in these scenarios for a much simplified
implementation. Overall this area needs more research both in figuring
out whether there's worthy improvements in grouping image backings, as
well as investigating whether it's possible to avoid additional image
rasterization by just leveraging direct pixel data via the
NativeImagePtr object.

  • platform/TextureMapper.cmake:
  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp: Added.

(Nicosia::ImageBackingTextureMapperImpl::createFactory):
(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):
(Nicosia::ImageBackingTextureMapperImpl::takeUpdate):

  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h: Added.
3:37 AM Changeset in webkit [235036] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix GTK/WPE cookie API tests after r234396.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::displayNameForCookieHostName): Bring back the check to handle localhost as an
special case for non cocoa ports.

2:33 AM Changeset in webkit [235035] by Carlos Garcia Campos
  • 2 edits
    368 adds in releases/WebKitGTK/webkit-2.22/LayoutTests

Merge r234931 - Unreviewed WPE gardening. Enable a few subdirectories under fast/ and
provide platform-specific baselines as well as failure expectations
where required.

  • platform/wpe/TestExpectations:
  • platform/wpe/fast/box-shadow: Added 10 baselines.
  • platform/wpe/fast/box-sizing: Added 4 baselines.
  • platform/wpe/fast/clip: Added 23 baselines.
  • platform/wpe/fast/compact: Added 3 baselines.
  • platform/wpe/fast/css-generated-content: Added 43 baselines.
  • platform/wpe/fast/doctypes: Added 4 baselines.
  • platform/wpe/fast/flexbox: Added 26 baselines.
  • platform/wpe/fast/inline: Added 32 baselines.
  • platform/wpe/fast/inline-block: Added 9 baselines.
  • platform/wpe/fast/invalid: Added 29 baselines.
  • platform/wpe/fast/line-grid: Added 8 baselines.
  • platform/wpe/fast/lists: Added 27 baselines.
  • platform/wpe/fast/loader: Added 1 baseline.
  • platform/wpe/fast/preloader: Added 2 baselines.
  • platform/wpe/fast/replaced: Added 57 baselines.
  • platform/wpe/fast/ruby: Added 26 baselines.
  • platform/wpe/fast/writing-mode: Added 37 baselines.
2:31 AM Changeset in webkit [235034] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234927 - [lFC][Floating] Add estimated margin top computation.
https://bugs.webkit.org/show_bug.cgi?id=188619

Reviewed by Antti Koivisto.

In order to figure out whether a box should avoid a float, we need to know the final positions of both (ignore relative positioning for now).
In block formatting context the final position for a normal flow box includes

  1. the static position and
  2. the corresponding (non)collapsed margins.

Now the vertical margins are computed when all the descendants are finalized, because the margin values might be depending on the height of the box
(and the height might be based on the content).
So when we get to the point where we intersect the box with the float to decide if the box needs to move, we don't yet have the final vertical position.

The idea here is that as long as we don't cross the block formatting context boundary, we should be able to pre-compute the final top margin.
(if this holds true for all the cases, the estimated prefix could be removed and just use marginTop() instead.)

Covered by existing block-only tests.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTop const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginTop):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::setHasValidTop):
(WebCore::Display::Box::setHasValidLeft):
(WebCore::Display::Box::top const):
(WebCore::Display::Box::left const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setEstimatedMarginTop):
(WebCore::Display::Box::estimatedMarginTop const):

2:31 AM Changeset in webkit [235033] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore/platform/gtk/po

Merge r234926 - [l10n] Updated Polish translation of WebKitGTK+ for 2.22
https://bugs.webkit.org/show_bug.cgi?id=188652

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2018-08-16
Rubber-stamped by Michael Catanzaro.

  • pl.po:
2:31 AM Changeset in webkit [235032] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234925 - [LFC][BFC] Display::Box interface should reflect that padding is optional.
https://bugs.webkit.org/show_bug.cgi?id=188630

Reviewed by Antti Koivisto.

Certain type of boxes can't have paddings (see Layout::Box::isPaddingApplicable).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeBorderAndPadding const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::width const):
(WebCore::Display::Box::height const):
(WebCore::Display::Box::contentBoxTop const):
(WebCore::Display::Box::contentBoxLeft const):
(WebCore::Display::Box::setPadding):
(WebCore::Display::Box::paddingTop const):
(WebCore::Display::Box::paddingLeft const):
(WebCore::Display::Box::paddingBottom const):
(WebCore::Display::Box::paddingRight const):

2:30 AM Changeset in webkit [235031] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234924 - [LFC] Add showLayoutTree() that does not require LayoutContext.
https://bugs.webkit.org/show_bug.cgi?id=188631

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):

  • layout/layouttree/LayoutBox.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputLayoutTree):
(WebCore::Layout::showLayoutTree):
(WebCore::Layout::TreeBuilder::showLayoutTree): Deleted.

  • layout/layouttree/LayoutTreeBuilder.h:
2:30 AM Changeset in webkit [235030] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234923 - [LFC] Tree builder should construct block and inline containers based on the display type.
https://bugs.webkit.org/show_bug.cgi?id=188632

Reviewed by Antti Koivisto.

Inline elements can also construct RenderBlock renderers (inline-bloc etc), so use the display type instead when deciding what type of container to construct.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):

2:30 AM Changeset in webkit [235029] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r234922 - [LFC] Bail out of subtree verification when trees are out of sync.
https://bugs.webkit.org/show_bug.cgi?id=188633

Reviewed by Antti Koivisto.

There's no point of trying to match geometry when subtrees are out of sync.
They get out of sync when the render tree has unsupported boxes (see LayoutTreeBuilder).

  • layout/Verification.cpp:

(WebCore::Layout::verifyAndOutputSubtree):

2:30 AM Changeset in webkit [235028] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r234921 - Unreviewed, WPE build fix after r234920.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewInWindow):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::setViewState):

  • UIProcess/API/wpe/WPEView.h:
2:30 AM Changeset in webkit [235027] by Carlos Garcia Campos
  • 44 edits in releases/WebKitGTK/webkit-2.22

Merge r234920 - Use OptionSet for ActivityState::Flags
https://bugs.webkit.org/show_bug.cgi?id=188554

Reviewed by Brent Fulgham.

Source/WebCore:

More typesafe flags.

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::activityStateDidChange):

  • Modules/geolocation/GeolocationController.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::activityStateDidChange):

  • html/canvas/WebGLRenderingContextBase.h:
  • page/ActivityState.cpp:

(WebCore::operator<<):
(WebCore::activityStateFlagsToString): Deleted.

  • page/ActivityState.h:

(WebCore::ActivityState::allFlags):

  • page/ActivityStateChangeObserver.h:
  • page/FocusController.cpp:

(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActivityState):
(WebCore::FocusController::setActive):

  • page/FocusController.h:

(WebCore::FocusController::isActive const):
(WebCore::FocusController::isFocused const):
(WebCore::FocusController::contentIsVisible const):

  • page/Page.cpp:

(WebCore::pageInitialActivityState):
(WebCore::Page::Page):
(WebCore::Page::setIsInWindow):
(WebCore::Page::updateTimerThrottlingState):
(WebCore::Page::setActivityState):
(WebCore::Page::isVisibleAndActive const):
(WebCore::Page::isWindowActive const):
(WebCore::Page::setIsVisible):

  • page/Page.h:

(WebCore::Page::activityState const):
(WebCore::Page::isVisible const):
(WebCore::Page::isInWindow const):

  • page/PerformanceMonitor.cpp:

(WebCore::activityStateForCPUSampling):
(WebCore::PerformanceMonitor::activityStateChanged):

  • page/PerformanceMonitor.h:
  • platform/text/cocoa: Added.

Source/WebKit:

  • Shared/WebPageCreationParameters.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::viewDidMoveToWindow):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::isPlayingMediaDidChange):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isInWindow const):
(WebKit::WebPageProxy::isViewVisible const):
(WebKit::WebPageProxy::isViewFocused const):
(WebKit::WebPageProxy::isViewWindowActive const):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::activityStateDidChange):

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::activityStateDidChange):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateThrottleState):
(WebKit::WebPage::updateIsInWindow):
(WebKit::WebPage::visibilityDidChange):
(WebKit::WebPage::setActivityState):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::isVisible const):
(WebKit::WebPage::isVisibleOrOccluded const):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::pageActivityStateDidChange):

  • WebProcess/WebProcess.h:

Source/WTF:

  • wtf/OptionSet.h:

(WTF::OptionSet::operator):

Add xor operator, useful for finding changes between sets.

Tools:

  • TestWebKitAPI/Tests/WTF/OptionSet.cpp:

(TestWebKitAPI::TEST):

2:29 AM Changeset in webkit [235026] by Ms2ger@igalia.com
  • 4 edits in trunk

[SOUP] Check length before calling soup_message_body_append_buffer.
https://bugs.webkit.org/show_bug.cgi?id=176803

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The function has a precondition that the buffer is non-empty.

Test: http/tests/local/blob/send-hybrid-blob-using-open-panel.html

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::appendEncodedBlobItemToSoupMessageBody):
(WebCore::ResourceRequest::updateSoupMessageBody const):

LayoutTests:

  • platform/gtk/TestExpectations: Enable test.
1:42 AM Changeset in webkit [235025] by commit-queue@webkit.org
  • 9 edits in trunk

Relax Request constructor around referrers
https://bugs.webkit.org/show_bug.cgi?id=168649

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-20
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/policies/referrer-origin-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:

Source/WebCore:

Implement remaining part of fetch change
https://github.com/whatwg/fetch/pull/377, i.e.
if "parsedReferrer’s origin is not same origin with origin",
then set request’s referrer to "client", instead of
throwing an exception [1].

WebKit's new behavior matches that of Chrome and Firefox.

Testing is covered by existing wpt tests.

[1] Step 15.3.3 of https://fetch.spec.whatwg.org/#main-fetch

  • Modules/fetch/FetchRequest.cpp:

(WebCore::computeReferrer):

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
12:00 AM Changeset in webkit [235024] by Carlos Garcia Campos
  • 8 edits in trunk

[GLIB] Add API to throw exceptions using printf formatted strings
https://bugs.webkit.org/show_bug.cgi?id=188698

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Add jsc_context_throw_printf() and jsc_context_throw_with_name_printf(). Also add new public constructors of
JSCException using printf formatted string.

  • API/glib/JSCContext.cpp:

(jsc_context_throw_printf):
(jsc_context_throw_with_name_printf):

  • API/glib/JSCContext.h:
  • API/glib/JSCException.cpp:

(jsc_exception_new_printf):
(jsc_exception_new_vprintf):
(jsc_exception_new_with_name_printf):
(jsc_exception_new_with_name_vprintf):

  • API/glib/JSCException.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add cases to test the new API.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(createFormattedError):
(createCustomFormattedError):
(testJSCExceptions):

Aug 19, 2018:

11:57 PM Changeset in webkit [235023] by Carlos Garcia Campos
  • 8 edits in trunk

[GLIB] Complete the JSCException API
https://bugs.webkit.org/show_bug.cgi?id=188695

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Add more API to JSCException:

  • New function to get the column number
  • New function get exception as string (toString())
  • Add the possibility to create exceptions with a custom error name.
  • New function to get the exception error name
  • New function to get the exception backtrace.
  • New convenience function to report a exception by returning a formatted string with all the exception details, to be shown as a user error message.
  • API/glib/JSCContext.cpp:

(jsc_context_throw_with_name):

  • API/glib/JSCContext.h:
  • API/glib/JSCException.cpp:

(jscExceptionEnsureProperties):
(jsc_exception_new):
(jsc_exception_new_with_name):
(jsc_exception_get_name):
(jsc_exception_get_column_number):
(jsc_exception_get_back_trace_string):
(jsc_exception_to_string):
(jsc_exception_report):

  • API/glib/JSCException.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add cases to test the new API.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(testJSCCheckSyntax):
(createCustomError):
(testJSCExceptions):

5:53 PM Changeset in webkit [235022] by Darin Adler
  • 29 edits in trunk/Source/WebKit

[Cocoa] Update uses of wrapper template functions in WebKit for clarity, simplicity, better ARC readiness
https://bugs.webkit.org/show_bug.cgi?id=188735

Reviewed by Dan Bernstein.

Because of argument-dependent lookup, there should never be a reason to call
the wrapper function as WebKit::wrapper or API::wrapper unless there is a need
to resolve a name conflict, so removed the explicit namespacing.

  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageLoadURLRequestReturningNavigation): Removed explicit null check and
leakRef/autorelease pair, both done by the wrapper template function now.

  • UIProcess/API/Cocoa/WKBackForwardList.mm:

(toWKBackForwardListItem): Deleted.
(-[WKBackForwardList currentItem]): Use wrapper instead of toWKBackForwardListItem.
(-[WKBackForwardList backItem]): Ditto.
(-[WKBackForwardList forwardItem]): Ditto.
(-[WKBackForwardList itemAtIndex:]): Ditto.
(-[WKBackForwardList backList]): Removed leakRef/autorelease pair.
(-[WKBackForwardList forwardList]): Ditto.

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(+[WKContentRuleListStore defaultStore]): Removed explicit WebKit namespace.
(+[WKContentRuleListStore storeWithURL:]): Fixed a storage leak by removing leakRef,
which was not balanced. This is not a copy or create function, so it should not
return an object that requires a release to balance it.
(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:releasesArgument:]):
Removed explicit WebKit namespace and unneeded get().
(-[WKContentRuleListStore lookUpContentRuleListForIdentifier:completionHandler:]):
Removed explicit WebKit namespace.
(+[WKContentRuleListStore defaultStoreWithLegacyFilename]): Ditto.
(+[WKContentRuleListStore storeWithURLAndLegacyFilename:]): Fixed storage leak,
as above in storeWithURL.

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo _handle]): Removed explicit WebKit namespace.

  • UIProcess/API/Cocoa/WKHTTPCookieStore.mm:

(WKHTTPCookieStoreObserver::cookiesDidChange): Ditto.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction sourceFrame]): Removed explicit null check, now done by
the wrapper template function.
(-[WKNavigationAction targetFrame]): Ditto.
(-[WKNavigationAction _userInitiatedAction]): Ditto.
(-[WKNavigationAction _mainFrameNavigation]): Ditto.

  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm:

(-[WKOpenPanelParameters _acceptedMIMETypes]): Removed leakRef/autorelease pair,
now done by the wrapper template function.
(-[WKOpenPanelParameters _acceptedFileExtensions]): Ditto.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences copyWithZone:]): Use retain instead of leakRef; slightly clearer
for when we convert to ARC.
(+[WKPreferences _experimentalFeatures]): Removed leakRef/autorelease pair,
now done by the wrapper template function.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _configuration]): Fixed a storage leak by removing leakRef,
which was not balanced. This is not a copy or create function, so it should not
return an object that requires a release to balance it.

  • UIProcess/API/Cocoa/WKURLSchemeTaskInternal.h:

Replaced inline wrapper function with WrapperTraits structure template specialization.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _userContentWorld]): Removed explicit API namespace.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadRequest:]): Removed explicit null check and
leakRef/autorelease pair, both done by the wrapper template function now.
(-[WKWebView loadFileURL:allowingReadAccessToURL:]): Ditto.
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]): Ditto.
(-[WKWebView goToBackForwardListItem:]): Ditto.
(-[WKWebView goBack]): Ditto.
(-[WKWebView goForward]): Ditto.
(-[WKWebView reload]): Ditto.
(-[WKWebView reloadFromOrigin]): Ditto.
(-[WKWebView _didInsertAttachment:withSource:]): Removed leakRef/autorelease pairs,
now done by the wrapper template function.
(-[WKWebView _didRemoveAttachment:]): Ditto.
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]): Removed
explicit null check and leakRef/autorelease pair, both done by the wrapper template
function now.
(-[WKWebView _loadRequest:shouldOpenExternalURLs:]): Ditto.
(-[WKWebView _reloadWithoutContentBlockers]): Ditto.
(-[WKWebView _reloadExpiredOnly]): Ditto.
(-[WKWebView _sessionStateData]): Removed explicit leakRef/autorelease pair, done
by the wrapper template function now. Also, the old version explicitly dereferenced
and would not work when the result of encodeLegacySessionState was null. Decided
not to add a call to releaseNonNull to preserve that possibly-incorrect optimization,
instead allowing the wrapper function to generate code to handle the null case.
(-[WKWebView _sessionState]): Use the Objective-C autorelease instead of adoptNS
and RetainPtr's autorelease.
(-[WKWebView _sessionStateWithFilter:]): Ditto.
(-[WKWebView _restoreSessionState:andNavigate:]): Removed explicit null check and
leakRef/autorelease pair, both done by the wrapper template function now.
(-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]):
Removed explicit leakRef/autorelease pair, done by the wrapper template function now.
(-[WKWebView _diagnosticLoggingDelegate]): Replaced a leakRef/autorelease pair with
use of RetainPtr's autorelease.
(-[WKWebView _findDelegate]): Ditto.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _applicationManifest]): Removed explicit null check,
done by the wrapper template function now.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore defaultDataStore]): Removed explicit WebKit namespace
and unneeded call to get().
(+[WKWebsiteDataStore nonPersistentDataStore]): Removed explicit WebKit namespace
and leakRef/autorelease pair, done by the wrapper template function now.
(-[WKWebsiteDataStore httpCookieStore]): Removed explicit WebKit namespace.

  • UIProcess/API/Cocoa/_WKApplicationManifest.mm:

(+[_WKApplicationManifest applicationManifestFromJSON:manifestURL:documentURL:]):
Removed explicit leakRef/autorelease pair, done by the wrapper template function now.

  • UIProcess/API/Cocoa/_WKGeolocationPosition.mm:

(WebKit::wrapper): Ditto.

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration copyWithZone:]): Use retain instead of leakRef;
slightly clearer for when we convert to ARC.

  • UIProcess/API/Cocoa/_WKUserContentWorld.mm:

(+[_WKUserContentWorld worldWithName:]): Removed explicit leakRef/autorelease pair,
done by the wrapper template function now.

  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm:

(-[_WKWebsitePolicies websiteDataStore]): Removed explicit null check, done by
the wrapper template function now.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didChangeBackForwardList): Removed
explicit null check, done by the wrapper template function now.
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Ditto.
(WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation): Ditto.
(WebKit::NavigationState::NavigationClient::didReceiveServerRedirectForProvisionalNavigation): Ditto.
(WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError): Ditto.
(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError): Ditto.
(WebKit::NavigationState::NavigationClient::didCommitNavigation): Ditto.
(WebKit::NavigationState::NavigationClient::didFinishDocumentLoad): Ditto.
(WebKit::NavigationState::NavigationClient::didFinishNavigation): Ditto.
(WebKit::NavigationState::NavigationClient::didFailNavigationWithError): Ditto.
(WebKit::NavigationState::NavigationClient::didSameDocumentNavigation): Ditto.

  • UIProcess/Cocoa/SessionStateCoding.mm:

(WebKit::encodeSessionState): Removed explicit leakRef/autorelease pair, done
by the wrapper template function now. Also, the old version explicitly dereferenced
and would not work when the result of encodeLegacySessionState was null. Decided
not to add a call to releaseNonNull to preserve that possibly-incorrect optimization,
instead allowing the wrapper function to generate code to handle the null case.

  • UIProcess/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController configuration]): Removed explicit WebKit namespace.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]): Removed explicit null check,
done by the wrapper template function now.
(-[WKWebProcessPlugInFrame hitTest:]): Removed explicit leakRef/autorelease pair, done
by the wrapper template function now. Also, the old version explicitly dereferenced
and would not work when the result of hitTest was null. Decided not to add a call to
releaseNonNull to preserve that possibly-incorrect optimization, instead allowing the
wrapper function to generate code to handle the null case.
(-[WKWebProcessPlugInFrame childFrames]): Removed explicit leakRef/autorelease pair,
done by the wrapper template function now.
(-[WKWebProcessPlugInFrame handle]): Ditto.
(-[WKWebProcessPlugInFrame _parentFrame]): Removed explicit null check, done by the
wrapper template function now.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:

(-[WKWebProcessPlugInHitTestResult nodeHandle]): Removed explicit null check and
leakRef/autorelease pair, both done by the wrapper template function now.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(+[WKWebProcessPlugInNodeHandle nodeHandleWithJSValue:inContext:]): Ditto.
(-[WKWebProcessPlugInNodeHandle htmlIFrameElementContentFrame]): Ditto.
(-[WKWebProcessPlugInNodeHandle HTMLTableCellElementCellAbove]): Ditto.
(-[WKWebProcessPlugInNodeHandle frame]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:

(+[WKWebProcessPlugInRangeHandle rangeHandleWithJSValue:inContext:]): Ditto.
(-[WKWebProcessPlugInRangeHandle frame]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:

(+[WKWebProcessPlugInScriptWorld world]): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController mainFrame]): Ditto.
(+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]): Ditto.

5:24 PM Changeset in webkit [235021] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r234852.
https://bugs.webkit.org/show_bug.cgi?id=188736

Workaround is not correct (Requested by yusukesuzuki on
#webkit).

Reverted changeset:

"[JSC] Should not rotate constant with 64"
https://bugs.webkit.org/show_bug.cgi?id=188556
https://trac.webkit.org/changeset/234852

4:59 PM Changeset in webkit [235020] by yusukesuzuki@slowstart.org
  • 3 edits in trunk/Source/WebCore

Shrink size of WebCore::Event further by reordering members
https://bugs.webkit.org/show_bug.cgi?id=188734

Reviewed by Daniel Bates.

Since WebCore::Event is ref-counted class, it has 4bytes m_refCount at the head of the class.
So placing 4bytes just after that before placing 8bytes aligned member (like pointers in 64bit
platforms) can save the size of WebCore::Event further.
This patch reorders members of WebCore::Event to shrink the size from 80bytes to 72bytes.

No behavior change.

  • dom/Event.cpp:

(WebCore::Event::Event):

  • dom/Event.h:
3:54 PM Changeset in webkit [235019] by Darin Adler
  • 54 edits in trunk/Source/WebKit

[Cocoa] Consolidate inline "wrapper" functions in WebKit API into function templates and WrapperTraits
https://bugs.webkit.org/show_bug.cgi?id=188733

Reviewed by Sam Weinig.

Replaced all the different functions named "wrapper" that were all boilerplate doing Objective-C
casts with WrapperTraits specializations. The only thing about this that was at all tricky was
the loose mixing of the WebKit namespace, the API namespace, and the global namespace. My choice
for this first step was to put WrapperTraits into the WebKit namespace and to put the wrapper
function into both the WebKit and API namespaces with "using". This turned out pretty clean: did
not have to touch any of the code calling wrapper just to make things work, although we can now
clean up by changing call sites to get rid of unnecessary explicit use of leakRef and autorelease.
Doing this will make ARC conversion practical and easy, which is the motivation behind pursuing
this set of changes.

  • Shared/Cocoa/WKObject.h: Tweaked style of the ObjectStorage structure template,

using a class name instead of "T". Added WrapperTraits structure template, checkedObjCCast
function template, and multiple wrapper functions templates that take a variety of pointer,
reference, smart pointer, and smart reference types, and return the wrapper for each one,
handling object lifetime appropriately.

  • Shared/API/Cocoa/_WKFrameHandleInternal.h:
  • Shared/API/Cocoa/_WKHitTestResultInternal.h:
  • Shared/Cocoa/WKNSArray.h:
  • Shared/Cocoa/WKNSData.h:
  • Shared/Cocoa/WKNSDictionary.h:
  • Shared/Cocoa/WKNSError.h:
  • Shared/Cocoa/WKNSNumber.h:
  • Shared/Cocoa/WKNSString.h:
  • Shared/Cocoa/WKNSURL.h:
  • Shared/Cocoa/WKNSURLRequest.h:
  • UIProcess/API/Cocoa/WKBackForwardListInternal.h:
  • UIProcess/API/Cocoa/WKBackForwardListItemInternal.h:
  • UIProcess/API/Cocoa/WKBrowsingContextGroupInternal.h:
  • UIProcess/API/Cocoa/WKConnectionInternal.h:
  • UIProcess/API/Cocoa/WKContentRuleListInternal.h:
  • UIProcess/API/Cocoa/WKContentRuleListStoreInternal.h:
  • UIProcess/API/Cocoa/WKFrameInfoInternal.h:
  • UIProcess/API/Cocoa/WKHTTPCookieStoreInternal.h:
  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.h:
  • UIProcess/API/Cocoa/WKNavigationActionInternal.h:
  • UIProcess/API/Cocoa/WKNavigationDataInternal.h:
  • UIProcess/API/Cocoa/WKNavigationInternal.h:
  • UIProcess/API/Cocoa/WKNavigationResponseInternal.h:
  • UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:
  • UIProcess/API/Cocoa/WKPreferencesInternal.h:
  • UIProcess/API/Cocoa/WKProcessPoolInternal.h:
  • UIProcess/API/Cocoa/WKSecurityOriginInternal.h:
  • UIProcess/API/Cocoa/WKUserContentControllerInternal.h:
  • UIProcess/API/Cocoa/WKUserScriptInternal.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h:
  • UIProcess/API/Cocoa/WKWindowFeaturesInternal.h:
  • UIProcess/API/Cocoa/_WKApplicationManifestInternal.h:
  • UIProcess/API/Cocoa/_WKAttachmentInternal.h:
  • UIProcess/API/Cocoa/_WKAutomationSessionInternal.h:
  • UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h:
  • UIProcess/API/Cocoa/_WKGeolocationPositionInternal.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h:
  • UIProcess/API/Cocoa/_WKUserContentWorldInternal.h:
  • UIProcess/API/Cocoa/_WKUserInitiatedActionInternal.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h:
  • UIProcess/API/Cocoa/_WKVisitedLinkStoreInternal.h:
  • UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h:
  • UIProcess/Cocoa/DownloadClient.mm:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrameInternal.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResultInternal.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandleInternal.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroupInternal.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandleInternal.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorldInternal.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h:

Replaced inline wrapper functions with WrapperTraits structure template
specializations. This is always in the WebKit namespace, unlike the functions,
which were in a mix of namespaces. Also deleted some unneeded "#pragma once".

3:50 PM Changeset in webkit [235018] by yusukesuzuki@slowstart.org
  • 9 edits
    1 add in trunk/Source

[WTF] Add WTF::unalignedLoad and WTF::unalignedStore
https://bugs.webkit.org/show_bug.cgi?id=188716

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use WTF::unalignedLoad and WTF::unalignedStore to avoid undefined behavior.
The compiler can emit appropriate mov operations in x86 even if we use these
helper functions.

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerBuffer::LocalWriter::putIntegralUnchecked):
(JSC::AssemblerBuffer::putIntegral):
(JSC::AssemblerBuffer::putIntegralUnchecked):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::readCallTarget):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::linkJump):
(JSC::X86Assembler::readPointer):
(JSC::X86Assembler::replaceWithHlt):
(JSC::X86Assembler::replaceWithJump):
(JSC::X86Assembler::setPointer):
(JSC::X86Assembler::setInt32):
(JSC::X86Assembler::setInt8):

  • interpreter/InterpreterInlines.h:

(JSC::Interpreter::getOpcodeID): Embedded opcode may be misaligned. Actually UBSan detects misaligned accesses here.

Source/WTF:

While some CPUs allow unaligned accesses to memory, doing it in C++ with reinterpret_cast<> is
undefined behavior. This patch adds WTF::{unalignedLoad,unalignedStore} helper functions, which
can load from and store to the pointer in an unaligned manner.
Actual implementation uses memcpy. This can be optimized to direct unaligned access operations
in supported CPUs like x86. Even though a CPU does not support unaligned accesses, memcpy is still
safe and the compiler emits appropriate code.

We name these functions unalignedLoad and unalignedStore instead of loadUnaligned and storeUnaligned
in order to align them to atomicLoad and atomicStore.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/UnalignedAccess.h: Added.

(WTF::unalignedLoad):
(WTF::unalignedStore):

  • wtf/text/StringCommon.h:

(WTF::equal):
(WTF::loadUnaligned): Deleted.

3:46 PM Changeset in webkit [235017] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.1.7

Tag Safari-606.1.36.1.7.

8:16 AM Changeset in webkit [235016] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r234396): Leak of CFURLRef in WebKit::NetworkProcess::deleteHSTSCacheForHostNames()
<https://webkit.org/b/188725>

Reviewed by Dan Bernstein.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::deleteHSTSCacheForHostNames): Use
adoptCF() to prevent a leak.

Aug 18, 2018:

8:28 PM Changeset in webkit [235015] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Let Xcode have its way with the WebCore project

  • WebCore.xcodeproj/project.pbxproj:
  • Let Xcode sort recently added resources by unique ID.
  • Manually change the mainGroup name from "WebKit" to "WebCore". There's no need to do this other than to make the inside of the proverbial cabinet match the outside. It's been this way since the project file was committed in r9857.
4:45 PM Changeset in webkit [235014] by ajuma@chromium.org
  • 37 edits
    2 adds in trunk

[IntersectionObserver] Fire an initial dummy notification
https://bugs.webkit.org/show_bug.cgi?id=188670

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Rebaseline tests now that an initial notification is fired.

  • web-platform-tests/intersection-observer/bounding-box-expected.txt:
  • web-platform-tests/intersection-observer/client-rect-expected.txt:
  • web-platform-tests/intersection-observer/containing-block-expected.txt:
  • web-platform-tests/intersection-observer/cross-origin-iframe-expected.txt:
  • web-platform-tests/intersection-observer/disconnect-expected.txt:
  • web-platform-tests/intersection-observer/display-none-expected.txt:
  • web-platform-tests/intersection-observer/edge-inclusive-intersection-expected.txt:
  • web-platform-tests/intersection-observer/iframe-no-root-expected.txt:
  • web-platform-tests/intersection-observer/inline-client-rect-expected.txt:
  • web-platform-tests/intersection-observer/isIntersecting-change-events-expected.txt:
  • web-platform-tests/intersection-observer/multiple-targets-expected.txt:
  • web-platform-tests/intersection-observer/multiple-thresholds-expected.txt:
  • web-platform-tests/intersection-observer/observer-without-js-reference-expected.txt:
  • web-platform-tests/intersection-observer/remove-element-expected.txt:
  • web-platform-tests/intersection-observer/root-margin-expected.txt:
  • web-platform-tests/intersection-observer/same-document-no-root-expected.txt:
  • web-platform-tests/intersection-observer/same-document-root-expected.txt:
  • web-platform-tests/intersection-observer/same-document-zero-size-target-expected.txt:
  • web-platform-tests/intersection-observer/shadow-content-expected.txt:
  • web-platform-tests/intersection-observer/text-target-expected.txt:
  • web-platform-tests/intersection-observer/timestamp-expected.txt:
  • web-platform-tests/intersection-observer/unclipped-root-expected.txt:
  • web-platform-tests/intersection-observer/zero-area-element-hidden-expected.txt:
  • web-platform-tests/intersection-observer/zero-area-element-visible-expected.txt:

Source/WebCore:

Add logic to track ongoing intersection observations. Create an IntersectionObserverRegistration
and fire a single dummy notification for each one.

Test: intersection-observer/root-element-moved.html
Also tested by existing tests in imported/w3c/web-platform-tests/intersection-observer.

  • dom/Document.cpp:

(WebCore::Document::~Document):
(WebCore::Document::addIntersectionObserver):
(WebCore::Document::removeIntersectionObserver):
(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::notifyIntersectionObserversTimerFired):

  • dom/Document.h:

(WebCore::Document::numberOfIntersectionObservers const):

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument):
(WebCore::Element::disconnectFromIntersectionObservers):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::~IntersectionObserver):
(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::unobserve):
(WebCore::IntersectionObserver::disconnect):
(WebCore::IntersectionObserver::takeRecords):
(WebCore::IntersectionObserver::targetDestroyed):
(WebCore::IntersectionObserver::removeTargetRegistration):
(WebCore::IntersectionObserver::removeAllTargets):
(WebCore::IntersectionObserver::rootDestroyed):
(WebCore::IntersectionObserver::appendQueuedEntry):
(WebCore::IntersectionObserver::notify):

  • page/IntersectionObserver.h:

(WebCore::IntersectionObserver::trackingDocument):
(WebCore::IntersectionObserver:: const):
(WebCore::IntersectionObserver::hasObservationTargets const):

  • page/IntersectionObserver.idl:
  • testing/Internals.cpp:

(WebCore::Internals::numberOfIntersectionObservers const):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • intersection-observer/root-element-deleted.html: Add additional assertions.
  • intersection-observer/root-element-moved-expected.txt: Added.
  • intersection-observer/root-element-moved.html: Added.
4:32 PM Changeset in webkit [235013] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[watchOS] NetworkProximityManager should use WTF_MAKE_FAST_ALLOCATED
https://bugs.webkit.org/show_bug.cgi?id=188723

Reviewed by Sam Weinig.

  • NetworkProcess/watchos/NetworkProximityManager.h:
4:20 PM Changeset in webkit [235012] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[watchOS] Add more assertions to NetworkProximityAssertion
https://bugs.webkit.org/show_bug.cgi?id=188721

Reviewed by Wenson Hsieh.

  • NetworkProcess/watchos/NetworkProximityAssertion.mm:

(WebKit::NetworkProximityAssertion::hold):
(WebKit::NetworkProximityAssertion::release):
(WebKit::NetworkProximityAssertion::releaseTimerFired):

3:59 PM Changeset in webkit [235011] by Wenson Hsieh
  • 12 edits in trunk

[iOS] Paste is missing from callout bar when pasteboard only contains custom data
https://bugs.webkit.org/show_bug.cgi?id=184271
<rdar://problem/39256708>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Export a couple of WebCore functions for use in WebKit.

  • dom/Document.h:
  • platform/Pasteboard.h:

Source/WebKit:

Currently, the "paste:" selector action cannot be performed during editing if the pasteboard only contains
custom pasteboard data. This is because logic in -[WKContentView canPerformActionForWebView:withSender:] only
checks against a list of pasteboard types which does not include the type identifier for custom pasteboard data.
To fix this, we allow pasting only in the case where none of the other type identifiers exist in the pasteboard,
as long as the custom pasteboard data type identifier is present, and the custom pasteboard data's origin
matches the origin of the focused frame's document.

Test: PasteMixedContent.CopyAndPasteWithCustomPasteboardDataOnly

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:

Add a originIdentifierForPasteboard field, and add support for encoding it when propagating EditorState via IPC.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):

If none of the conventional pasteboard type identifiers for rich or plain text editing are present, check to see
if we have custom pasteboard data; if so, only allow pasting if the custom pasteboard data's origin matches that
of the focused frame's document origin.

Additionally refactor a bit of logic by pulling out _page->editorState() into a separate local variable, used
throughout the rest of the method.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const):

Send the focused frame's document origin to the UI process via EditorState.

Tools:

Add a new API test to verify that on both iOS and macOS, copied custom pasteboard data can only be pasted in a
matching origin. Additionally verify that on iOS, the web view is capable of performing the "paste:" selector.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:

(TestWebKitAPI::TEST):
(imagePath): Deleted.
(writeTypesAndDataToPasteboard): Deleted.
(setUpWebView): Deleted.
(markupString): Deleted.

Make this test file no longer exclusive to macOS.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView synchronouslyLoadHTMLString:baseURL:]):

Tweak this helper to also take in a baseURL. Defaults to using the TestWebKitAPI bundle resource URL.

(-[TestWKWebView synchronouslyLoadHTMLString:]):

1:09 PM Abandoned documents edited by Simon Fraser
(diff)
1:07 PM Abandoned documents edited by Simon Fraser
(diff)
1:04 PM Abandoned documents edited by Simon Fraser
(diff)
8:00 AM Changeset in webkit [235010] by Michael Catanzaro
  • 2 edits in trunk

Adjust CMAKE_MODULE_LINKER_FLAGS for asan
https://bugs.webkit.org/show_bug.cgi?id=188699

Reviewed by Konstantin Tokarev.

  • Source/cmake/WebKitCompilerFlags.cmake:

Aug 17, 2018:

11:47 PM Changeset in webkit [235009] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Pack booleans in Event into a bitfield
https://bugs.webkit.org/show_bug.cgi?id=188713

Reviewed by Daniel Bates.

Use bitfields for booleans in Event class.

  • dom/Event.cpp:

(WebCore::Event::Event):

  • dom/Event.h:

(WebCore::Event::IsComposed): Added.
(WebCore::Event): Packed booleans into a bitfield.

9:03 PM Changeset in webkit [235008] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-606.1.36.1-branch

Cherry-pick r235007. rdar://problem/43445973

intersectionOfPastValuesAtHead must filter values after they've observed an invalidation point
https://bugs.webkit.org/show_bug.cgi?id=188707
<rdar://problem/43015442>

Reviewed by Mark Lam.

JSTests:

  • stress/cfa-expected-values-must-set-clobbered-to-false.js: Added. (foo): (let.comp.valueOf): (result):

Source/JavaScriptCore:

We use the values in intersectionOfPastValuesAtHead to verify that it is safe to
OSR enter at the head of a block. We verify it's safe to OSR enter by checking
that each incoming value is compatible with its corresponding AbstractValue.

The bug is that we were sometimes filtering the intersectionOfPastValuesAtHead
with abstract values that were clobbererd. This meant that the value we're
verifying with at OSR entry effectively has an infinite structure set because
it's clobbered. So, imagine we have code like this:
`
---> We OSR enter here, and we're clobbered here
InvalidationPoint
GetByOffset(@base)
`

The abstract value for @base inside intersectionOfPastValuesAtHead has a
clobberred structure set, so we'd allow an incoming object with any
structure. However, this is wrong because the invalidation point is no
longer fulfilling its promise that it filters the structure that @base has.

We fix this by filtering the AbstractValues in intersectionOfPastValuesAtHead
as if the incoming value may be live past an InvalidationPoint.
This places a stricter requirement that to safely OSR enter at any basic
block, all incoming values must be compatible as if they lived past
the execution of an invalidation point.

  • dfg/DFGCFAPhase.cpp: (JSC::DFG::CFAPhase::run):

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

7:05 PM Changeset in webkit [235007] by sbarati@apple.com
  • 3 edits
    1 add in trunk

intersectionOfPastValuesAtHead must filter values after they've observed an invalidation point
https://bugs.webkit.org/show_bug.cgi?id=188707
<rdar://problem/43015442>

Reviewed by Mark Lam.

JSTests:

  • stress/cfa-expected-values-must-set-clobbered-to-false.js: Added.

(foo):
(let.comp.valueOf):
(result):

Source/JavaScriptCore:

We use the values in intersectionOfPastValuesAtHead to verify that it is safe to
OSR enter at the head of a block. We verify it's safe to OSR enter by checking
that each incoming value is compatible with its corresponding AbstractValue.

The bug is that we were sometimes filtering the intersectionOfPastValuesAtHead
with abstract values that were clobbererd. This meant that the value we're
verifying with at OSR entry effectively has an infinite structure set because
it's clobbered. So, imagine we have code like this:
`
---> We OSR enter here, and we're clobbered here
InvalidationPoint
GetByOffset(@base)
`

The abstract value for @base inside intersectionOfPastValuesAtHead has a
clobberred structure set, so we'd allow an incoming object with any
structure. However, this is wrong because the invalidation point is no
longer fulfilling its promise that it filters the structure that @base has.

We fix this by filtering the AbstractValues in intersectionOfPastValuesAtHead
as if the incoming value may be live past an InvalidationPoint.
This places a stricter requirement that to safely OSR enter at any basic
block, all incoming values must be compatible as if they lived past
the execution of an invalidation point.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):

6:31 PM Changeset in webkit [235006] by timothy_horton@apple.com
  • 18 edits
    2 adds in trunk/Source/WebKit

Start bringing up Unified Sources in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=188703

Reviewed by Simon Fraser.

  • Configurations/BaseTarget.xcconfig:

Add SRCROOT to the include path, so unified sources can find the source files.

  • Shared/APIWebArchive.mm:

(API::releaseWebArchiveData):
(API::WebArchive::data):
(API::releaseCFData): Deleted.

  • Shared/APIWebArchiveResource.mm:

(API::releaseWebArchiveResourceData):
(API::WebArchiveResource::data):
(API::releaseCFData): Deleted.
Disambiguate two static methods by renaming them.

  • Shared/cf/ArgumentCodersCF.cpp:

Leave a comment about the bizarreness of this file.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::decode):

  • Shared/WebPlatformTouchPoint.cpp:
  • Shared/WebPopupItem.cpp:

(WebKit::WebPopupItem::WebPopupItem):
(WebKit::WebPopupItem::decode):

  • Shared/WebPreferencesStore.cpp:
  • Shared/WebRenderLayer.cpp:

(WebKit::WebRenderLayer::create):
(WebKit::WebRenderLayer::createArrayFromLayerList):
(WebKit::WebRenderLayer::WebRenderLayer):

  • Shared/gtk/WebEventFactory.cpp:
  • Shared/mac/WebCoreArgumentCodersMac.mm:
  • Shared/mac/WebEventFactory.mm:

(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebWheelEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):

  • Shared/mac/WebMemorySampler.mac.mm:

(WebKit::WebMemorySampler::sampleWebKit const):

  • UIProcess/API/APIAutomationSessionClient.h:

(API::AutomationSessionClient::sessionIdentifier const):
(API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::setNeedsDisplay):
(WebKit::RemoteLayerBackingStore::backingStoreSize const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::drawInContext):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::setRootLayerID):
(WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs):
(WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description const):

  • Shared/WebPlatformTouchPoint.cpp:

(WebKit::WebPlatformTouchPoint::WebPlatformTouchPoint):
Get rid of lots of using namespace.

  • Sources.txt: Added.
  • SourcesCocoa.txt: Added.
  • WebKit.xcodeproj/project.pbxproj:

Set up unified sources.
Right now, we only unify Platform/ and Shared/[API].

6:06 PM Changeset in webkit [235005] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.1-branch/Source

Versioning.

5:43 PM Changeset in webkit [235004] by Aditya Keerthi
  • 14 edits in trunk/Source

[Datalist][iOS] Display suggestions for input[type=color]
https://bugs.webkit.org/show_bug.cgi?id=188669

Reviewed by Tim Horton.

Source/WebCore:

Expose suggestedColors() in HTMLInputElement in order to allow the UIProcess to
access the list of suggested colors from a <datalist> element.

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::suggestedColors const):

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

(WebCore::HTMLInputElement::suggestedColors const):

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

(WebCore::InputType::suggestedColors const):

  • html/InputType.h:
  • platform/ColorChooserClient.h:

Source/WebKit:

An input[type=color] element that has an associated datalist element should
display the color values provided on iOS. Similar to macOS, we now support 1-12
suggested colors, that will be displayed at the top of the color picker.

Also ensured that we get rounded corners on both sides of a color swatch if it is
the only one in its row.

  • Shared/AssistedNodeInformation.cpp: Added suggestedColors field.

(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):

  • Shared/AssistedNodeInformation.h:
  • UIProcess/ios/forms/WKFormColorPicker.mm:

(+[WKColorPicker defaultTopColorMatrix]):
(-[WKColorPicker initWithView:]): Use the list of suggestedColors if it exists.
(-[WKColorPicker drawSelectionIndicatorForColorButton:]):

  • WebProcess/WebCoreSupport/WebColorChooser.cpp:

(WebKit::WebColorChooser::WebColorChooser):
(WebKit::WebColorChooser::reattachColorChooser):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

5:25 PM Changeset in webkit [235003] by wilander@apple.com
  • 2 edits
    4 adds in trunk/LayoutTests

Resource Load Statistics: Add layout test for web workers importing cross-site scripts
https://bugs.webkit.org/show_bug.cgi?id=188706
<rdar://problem/43437050>

Reviewed by Alex Christensen.

  • http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-expected.txt: Added.
  • http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.html: Added.
  • http/tests/resourceLoadStatistics/resources/iframe-report-back-loaded.html:

Fixed typo in URL.

  • http/tests/resourceLoadStatistics/resources/script-revealing-cookies.php: Added.
  • http/tests/resourceLoadStatistics/resources/worker-importing-localhost-script.js: Added.
5:20 PM Changeset in webkit [235002] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Clean up CSSSelectorList after r234825
https://bugs.webkit.org/show_bug.cgi?id=188566

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-17
Reviewed by Megan Gardner.

This is responding to Darin's feedback in https://bugs.webkit.org/show_bug.cgi?id=188539

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::operator=): Deleted.

  • css/CSSSelectorList.h:

(WebCore::CSSSelectorList::CSSSelectorList):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):

5:11 PM Changeset in webkit [235001] by Ryan Haddad
  • 4 edits in trunk/Source/WebKit

Unreviewed, rolling out r234991.

Caused an assertion failure on the bots.

Reverted changeset:

"Pass webPageID and webFrameID to NetworkLoad for speculative
loads"
https://bugs.webkit.org/show_bug.cgi?id=188682
https://trac.webkit.org/changeset/234991

5:09 PM Changeset in webkit [235000] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Remove Adobe SSO exception now that StorageAccess API is available
https://bugs.webkit.org/show_bug.cgi?id=188710
<rdar://problem/35056707>

Reviewed by Alex Christensen.

Remove custom quirk now that proper API exists to allow the same functions.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logSubresourceLoading): Remove unneeded quirk.
(WebCore::resourceNeedsSSOQuirk): Deleted.

5:00 PM Changeset in webkit [234999] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Replace canBubble and cancelable booleans in Event by enum classes
https://bugs.webkit.org/show_bug.cgi?id=188692
<rdar://problem/43411944>

Rubber-stamped by Alex Christensen.

Make these enum classes uint8_t.

  • dom/Event.h:
4:24 PM Changeset in webkit [234998] by achristensen@apple.com
  • 27 edits
    1 add in trunk/Source

Add some plumbing for safe browsing
https://bugs.webkit.org/show_bug.cgi?id=188709

Reviewed by Tim Horton.

Source/WebCore:

No change in behavior. Just passing around unused booleans.
We will need this for a way to load a page even though safe browsing says it's unsafe.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setShouldSkipSafeBrowsingCheck):
(WebCore::FrameLoadRequest::shouldSkipSafeBrowsingCheck):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadWithNavigationAction):

  • loader/FrameLoaderClient.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/PolicyChecker.h:
  • loader/ShouldSkipSafeBrowsingCheck.h: Added.

Source/WebKit:

Also adding a URL to SafeBrowsingResult because we'll need it.
Also adding a bool to LoadParameters because we will need to do special things
when loading the safe browsing warning, like adding a way to skip the safe browsing check.

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • UIProcess/Cocoa/SafeBrowsingResultCocoa.mm:

(WebKit::SafeBrowsingResult::SafeBrowsingResult):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::beginSafeBrowsingCheck):

  • UIProcess/SafeBrowsingResult.h:

(WebKit::SafeBrowsingResult::url const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebCoreSupport/WebFrameLoaderClient.h:
2:59 PM Abandoned documents edited by Simon Fraser
(diff)
2:52 PM Abandoned documents created by Simon Fraser
2:43 PM Changeset in webkit [234997] by Jonathan Bedard
  • 5 edits in trunk/Tools

Add back --wtf-only to run-api-tests
https://bugs.webkit.org/show_bug.cgi?id=187893
<rdar://problem/42483983>

Reviewed by Aakash Jain.

When doing WTF development, it is not necessary to build or run all of the API
tests. Generally, if a user has specified a specific binary (or binaries) that
they are interested in testing, it is not necessary to check all API test binaries.

  • Scripts/webkitpy/api_tests/manager.py:

(Manager._collect_tests): Only use the binaries matching the program arguments
when collecting tests.
(Manager._binaries_for_arguments): Generate a list of binaries which match the
program arguments.
(Manager.run): Pass a list binaries to check.

  • Scripts/webkitpy/api_tests/run_api_tests.py:

(parse_args):

  • Scripts/webkitpy/port/base.py:

(Port.check_api_test_build): If the caller specifies which API test binaries it
requires, only check the ones specified.
(Port.path_to_api_test_binaries): Allow the caller to only build the WTF API tests.
(Port._build_api_tests): Allow the caller to only build the WTF API tests.

  • Scripts/webkitpy/port/win.py:

(WinPort.path_to_api_test_binaries):

2:43 PM WikiStart edited by Simon Fraser
(diff)
2:28 PM Changeset in webkit [234996] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Marked inspector/dom-debugger/event-breakpoint-with-navigation.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=188708

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:24 PM Changeset in webkit [234995] by rniwa@webkit.org
  • 165 edits in trunk/Source

Replace canBubble and cancelable booleans in Event by enum classes
https://bugs.webkit.org/show_bug.cgi?id=188692

Reviewed by Alex Christensen.

Source/WebCore:

Replaced booleans indicating whether an event can bubble and an event is cancelable
by two enum classes: CanBubble and IsCancelable.

No new tests since there should be no behavioral changes.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:

(WebCore::WebKitPlaybackTargetAvailabilityEvent::WebKitPlaybackTargetAvailabilityEvent):

  • Modules/applepay/ApplePayPaymentAuthorizedEvent.cpp:

(WebCore::ApplePayPaymentAuthorizedEvent::ApplePayPaymentAuthorizedEvent):

  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.cpp:

(WebCore::ApplePayPaymentMethodSelectedEvent::ApplePayPaymentMethodSelectedEvent):

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::didCancelPaymentSession):

  • Modules/applepay/ApplePayShippingContactSelectedEvent.cpp:

(WebCore::ApplePayShippingContactSelectedEvent::ApplePayShippingContactSelectedEvent):

  • Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:

(WebCore::ApplePayShippingMethodSelectedEvent::ApplePayShippingMethodSelectedEvent):

  • Modules/applepay/ApplePayValidateMerchantEvent.cpp:

(WebCore::ApplePayValidateMerchantEvent::ApplePayValidateMerchantEvent):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.cpp:

(WebCore::WebKitMediaKeyMessageEvent::WebKitMediaKeyMessageEvent):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.cpp:

(WebCore::WebKitMediaKeyNeededEvent::WebKitMediaKeyNeededEvent):

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::addKeyTimerFired):
(WebCore::WebKitMediaKeySession::sendError):

  • Modules/gamepad/GamepadEvent.cpp:

(WebCore::GamepadEvent::GamepadEvent):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::connectionToServerLost):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::onSuccess):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):

  • Modules/indexeddb/IDBRequestCompletionEvent.cpp:

(WebCore::IDBRequestCompletionEvent::IDBRequestCompletionEvent):

  • Modules/indexeddb/IDBRequestCompletionEvent.h:

(WebCore::IDBRequestCompletionEvent::create):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::fireOnComplete):
(WebCore::IDBTransaction::fireOnAbort):

  • Modules/indexeddb/IDBVersionChangeEvent.cpp:

(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::skipToNextTrack):
(WebCore::MediaSession::skipToPreviousTrack):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::scheduleEvent):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::scheduleEvent):

  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::scheduleEvent):

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::scheduledEventTimerFired):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):

  • Modules/mediastream/MediaStreamEvent.cpp:

(WebCore::MediaStreamEvent::create):
(WebCore::MediaStreamEvent::MediaStreamEvent):

  • Modules/mediastream/MediaStreamEvent.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::trackMutedChanged):

  • Modules/mediastream/MediaStreamTrackEvent.cpp:

(WebCore::MediaStreamTrackEvent::create):
(WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):

  • Modules/mediastream/MediaStreamTrackEvent.h:
  • Modules/mediastream/OverconstrainedErrorEvent.h:

(WebCore::OverconstrainedErrorEvent::create):
(WebCore::OverconstrainedErrorEvent::OverconstrainedErrorEvent):

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::fireICECandidateEvent):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):
(WebCore::PeerConnectionBackend::updateSignalingState):

  • Modules/mediastream/RTCDTMFToneChangeEvent.cpp:

(WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::didChangeReadyState):
(WebCore::RTCDataChannel::didDetectError):
(WebCore::RTCDataChannel::bufferedAmountIsDecreasing):

  • Modules/mediastream/RTCDataChannelEvent.cpp:

(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):

  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):
(WebCore::RTCPeerConnection::updateConnectionState):
(WebCore::RTCPeerConnection::scheduleNegotiationNeededEvent):

  • Modules/mediastream/RTCPeerConnectionIceEvent.cpp:

(WebCore::RTCPeerConnectionIceEvent::create):
(WebCore::RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent):

  • Modules/mediastream/RTCPeerConnectionIceEvent.h:
  • Modules/mediastream/RTCTrackEvent.cpp:

(WebCore::RTCTrackEvent::create):
(WebCore::RTCTrackEvent::RTCTrackEvent):

  • Modules/mediastream/RTCTrackEvent.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::addDataChannel):

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::dispatchShowEvent):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):
(WebCore::Notification::dispatchErrorEvent):

  • Modules/paymentrequest/MerchantValidationEvent.cpp:

(WebCore::MerchantValidationEvent::MerchantValidationEvent):

  • Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:

(WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent):

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::postEvent):

  • Modules/speech/SpeechSynthesisEvent.cpp:

(WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::setState):

  • Modules/webaudio/AudioProcessingEvent.cpp:

(WebCore::AudioProcessingEvent::AudioProcessingEvent):

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/OfflineAudioCompletionEvent.cpp:

(WebCore::OfflineAudioCompletionEvent::OfflineAudioCompletionEvent):

  • Modules/websockets/CloseEvent.h:

(WebCore::CloseEvent::CloseEvent):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::dispatchOrQueueErrorEvent):

  • Modules/webvr/VRDisplayEvent.cpp:

(WebCore::VRDisplayEvent::VRDisplayEvent):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::dispatchAccessibilityEventWithType const):

  • accessibility/AccessibleSetValueEvent.cpp:

(WebCore::AccessibleSetValueEvent::AccessibleSetValueEvent):

  • animation/AnimationPlaybackEvent.cpp:

(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::abort):

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):

  • dom/BeforeLoadEvent.h:
  • dom/BeforeTextInsertedEvent.cpp:

(WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent):

  • dom/BeforeUnloadEvent.cpp:

(WebCore::BeforeUnloadEvent::BeforeUnloadEvent):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::dispatchModifiedEvent):

  • dom/CompositionEvent.cpp:

(WebCore::CompositionEvent::CompositionEvent):

  • dom/ContainerNode.cpp:

(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):

  • dom/DeviceMotionEvent.cpp:

(WebCore::DeviceMotionEvent::DeviceMotionEvent):

  • dom/DeviceOrientationEvent.cpp:

(WebCore::DeviceOrientationEvent::DeviceOrientationEvent):

  • dom/Document.cpp:

(WebCore::Document::setReadyState):
(WebCore::Document::visibilityStateChanged):
(WebCore::Document::finishedParsing):
(WebCore::Document::dispatchFullScreenChangeOrErrorEvent):
(WebCore::Document::orientationChanged):

  • dom/DocumentEventQueue.cpp:

(WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
(WebCore::DocumentEventQueue::enqueueScrollEvent):
(WebCore::DocumentEventQueue::enqueueResizeEvent):

  • dom/DocumentEventQueue.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):
(WebCore::Element::dispatchFocusEvent):
(WebCore::Element::dispatchBlurEvent):
(WebCore::Element::dispatchWebKitImageReadyEventForTesting):

  • dom/ErrorEvent.cpp:

(WebCore::ErrorEvent::ErrorEvent):

  • dom/Event.cpp:

(WebCore::Event::Event):
(WebCore::Event::create):

  • dom/Event.h:
  • dom/FocusEvent.cpp:

(WebCore::FocusEvent::FocusEvent):

  • dom/FocusEvent.h:
  • dom/HashChangeEvent.h:
  • dom/InputEvent.cpp:

(WebCore::InputEvent::create):
(WebCore::InputEvent::InputEvent):

  • dom/InputEvent.h:
  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):

  • dom/MouseEvent.h:
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent):

  • dom/MouseRelatedEvent.h:
  • dom/MutationEvent.cpp:

(WebCore::MutationEvent::MutationEvent):

  • dom/MutationEvent.h:
  • dom/Node.cpp:

(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):
(WebCore::Node::dispatchInputEvent):

  • dom/OverflowEvent.cpp:

(WebCore::OverflowEvent::OverflowEvent):

  • dom/PageTransitionEvent.cpp:

(WebCore::PageTransitionEvent::PageTransitionEvent):

  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::PopStateEvent):

  • dom/ProgressEvent.cpp:

(WebCore::ProgressEvent::ProgressEvent):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::dispatchErrorEvent):

  • dom/SecurityPolicyViolationEvent.h:
  • dom/SimulatedClick.cpp:
  • dom/TextEvent.cpp:

(WebCore::TextEvent::TextEvent):

  • dom/TransitionEvent.cpp:

(WebCore::TransitionEvent::TransitionEvent):

  • dom/UIEvent.cpp:

(WebCore::UIEvent::UIEvent):

  • dom/UIEvent.h:

(WebCore::UIEvent::create):

  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::UIEventWithKeyState):

  • dom/WebKitAnimationEvent.cpp:

(WebCore::WebKitAnimationEvent::WebKitAnimationEvent):

  • dom/WebKitTransitionEvent.cpp:

(WebCore::WebKitTransitionEvent::WebKitTransitionEvent):

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):

  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchBeforeInputEvents):
(WebCore::Editor::willApplyEditing const):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::dispatchSelectStart):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::dispatchPendingEvent):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::dispatchChangeEvent):
(WebCore::HTMLFormControlElement::checkValidity):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::prepareForSubmission):
(WebCore::HTMLFormElement::reset):

  • html/HTMLImageLoader.cpp:

(WebCore::HTMLImageLoader::dispatchLoadEvent):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::onSearch):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::dispatchPendingEvent):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleEvent):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::layoutSizeChanged):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::checkSnapshotStatus):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::dispatchLoadEvent):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::dispatchSlotChangeEvent):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::errorEventTimerFired):

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::dispatchPendingEvent):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::selectionChanged):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::didCompleteLoad):

  • html/MediaController.cpp:

(WebCore::MediaController::scheduleEvent):

  • html/canvas/WebGLContextEvent.cpp:

(WebCore::WebGLContextEvent::WebGLContextEvent):

  • html/canvas/WebGLContextEvent.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent):

  • html/parser/HTMLScriptRunner.cpp:

(WebCore::createScriptLoadEvent):

  • html/track/TrackEvent.cpp:

(WebCore::TrackEvent::TrackEvent):

  • html/track/TrackEvent.h:
  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::scheduleTrackEvent):
(WebCore::TrackListBase::scheduleChangeEvent):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchUnloadEvents):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::dispatchPendingErrorEvent):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::createApplicationCacheEvent):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::languagesChanged):
(WebCore::DOMWindow::dispatchLoadEvent):

  • page/EventHandler.cpp:

(WebCore::dispatchSelectStart):
(WebCore::EventHandler::dispatchDragEvent):

  • page/EventSource.cpp:

(WebCore::EventSource::scheduleReconnect):
(WebCore::EventSource::didReceiveResponse):
(WebCore::EventSource::abortConnectionAttempt):

  • page/FocusController.cpp:

(WebCore::dispatchEventsOnWindowAndFocusedElement):
(WebCore::FocusController::setFocusedFrame):

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

  • page/Page.cpp:

(WebCore::networkStateChanged):

  • page/Performance.cpp:

(WebCore::Performance::resourceTimingBufferFullTimerFired):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::enqueueEvent):

  • page/VisualViewport.cpp:

(WebCore::VisualViewport::enqueueResizeEvent):
(WebCore::VisualViewport::enqueueScrollEvent):

  • storage/StorageEvent.cpp:

(WebCore::StorageEvent::StorageEvent):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::sendSVGLoadEventIfPossible):

  • svg/SVGImageLoader.cpp:

(WebCore::SVGImageLoader::dispatchLoadEvent):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::notifyFinished):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::dispatchPendingEvent):

  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):

  • workers/service/ExtendableEvent.cpp:

(WebCore::ExtendableEvent::ExtendableEvent):

  • workers/service/ExtendableEvent.h:
  • workers/service/ExtendableMessageEvent.cpp:

(WebCore::ExtendableMessageEvent::ExtendableMessageEvent):

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::scheduleTaskToUpdateState):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::scheduleTaskToFireControllerChangeEvent):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::scheduleTaskToFireUpdateFoundEvent):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::callReadyStateChangeListener):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKitLegacy/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

  • WebView/WebView.mm:

(-[WebView _dispatchUnloadEvent]):

1:27 PM Changeset in webkit [234994] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[Xcode] Fix up file reference paths in Source/WebKit/NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=188700

Rubber-stamped by Dan Bernstein.

  • WebKit.xcodeproj/project.pbxproj:
11:56 AM Changeset in webkit [234993] by Simon Fraser
  • 3 edits in trunk/LayoutTests

Modernize results.html
https://bugs.webkit.org/show_bug.cgi?id=188690

Reviewed by Alexey Proskuryakov.

results.html, which is used to show layout test results, had some very old-school
HTML string building to create the tables of test results, making it hard to hack on.

Modernize it, using ES6 classes for the major actors, and using DOM API to build most
of the content.

The page is functionally the same (other than the addition of a missing 'History" column header).

  • fast/harness/results-expected.txt:
  • fast/harness/results.html:
11:55 AM Changeset in webkit [234992] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.10.1

Tag Safari-606.1.36.10.1.

11:11 AM Changeset in webkit [234991] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

Pass webPageID and webFrameID to NetworkLoad for speculative loads
https://bugs.webkit.org/show_bug.cgi?id=188682

Reviewed by Youenn Fablet.

This also removes an authentication shortcut I introduced in r234941

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

11:10 AM Changeset in webkit [234990] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit

Simplify server trust authentication flow
https://bugs.webkit.org/show_bug.cgi?id=188684

Reviewed by Youenn Fablet.

We unnecessarily had the allowsSpecificHTTPSCertificateForHost check at two different abstraction levels.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::allowsSpecificHTTPSCertificateForHost): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

11:09 AM Changeset in webkit [234989] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix API tests after r234985
https://bugs.webkit.org/show_bug.cgi?id=188679

  • UIProcess/API/C/WKPage.cpp:

(encodingOf):
(dataFrom):
The encoding of null strings had changed, which is no big deal because there's no data in that encoding,
but switching it back fixes the tests.

10:56 AM Changeset in webkit [234988] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.10-branch/Source

Versioning.

10:46 AM Changeset in webkit [234987] by Kocsen Chung
  • 1 copy in branches/safari-606.1.36.10-branch

New branch.

10:27 AM Changeset in webkit [234986] by jer.noble@apple.com
  • 2 edits in trunk/Tools

REGRESSION (234743) Timeouts in TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAudio and TestWebKitAPI.PreferredAudioBufferSize.WebAudio
https://bugs.webkit.org/show_bug.cgi?id=188470
<rdar://problem/43144969>

Reviewed by Alex Christensen.

On a loaded server, the WebContent process may send the "playing" message before the
UIProcess has a chance to register a listener for that message. Restructure the tests
so that the listener is registered before the page is loaded.

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:

(PreferredAudioBufferSize::runPlayingTestWithPageNamed):
(TEST_F):

9:41 AM Changeset in webkit [234985] by achristensen@apple.com
  • 12 edits in trunk/Source/WebKit

Replace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML
https://bugs.webkit.org/show_bug.cgi?id=188679

Reviewed by Carlos Garcia Campos.

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • UIProcess/API/C/WKPage.cpp:

(encodingOf):
(dataFrom):
(loadString):
(WKPageLoadAlternateHTMLString):
(WKPageLoadAlternateHTMLStringWithUserData):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadAlternateHTMLString): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadAlternateHTMLString):

8:26 AM Changeset in webkit [234984] by yusukesuzuki@slowstart.org
  • 14 edits in trunk/Source

[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg
https://bugs.webkit.org/show_bug.cgi?id=188589

Patch by Yusuke Suzuki <yusukesuzuki@slowstart.org> and Fujii Hironori <Fujii Hironori> on 2018-08-17
Reviewed by Mark Lam.
And reviewed by Yusuke Suzuki for Hironori's change.

Source/JavaScriptCore:

Since GPRReg(RegisterID) and FPRReg(FPRegisterID) do not include -1 in their enum values,
UBSan dumps bunch of warnings "runtime error: load of value 4294967295, which is not a valid value for type 'RegisterID'".

  • We add InvalidGPRReg and InvalidFPRReg to enum values of GPRReg and FPRReg to suppress the above warnings.
  • We make GPRReg and FPRReg int8_t enums.
  • We replace #define InvalidGPRReg ((JSC::GPRReg)-1) to static constexpr GPRReg InvalidGPRReg { GPRReg::InvalidGPRReg };.
  • We add operator+/- definition for RegisterIDs as a MSVC workaround. MSVC fails to resolve operator+ and operator- if enum : int8_t is used instead of enum.
  • assembler/ARM64Assembler.h:
  • assembler/ARMAssembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/MIPSAssembler.h:
  • assembler/MacroAssembler.h:
  • assembler/X86Assembler.h:
  • jit/CCallHelpers.h:

(JSC::CCallHelpers::clampArrayToSize):

  • jit/FPRInfo.h:
  • jit/GPRInfo.h:

(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::tagGPR const):
(JSC::JSValueRegs::payloadGPR const):
(JSC::JSValueSource::JSValueSource):
(JSC::JSValueSource::unboxedCell):
(JSC::JSValueSource::operator bool const):
(JSC::JSValueSource::base const):
(JSC::JSValueSource::tagGPR const):
(JSC::JSValueSource::payloadGPR const):
(JSC::JSValueSource::hasKnownTag const):

Source/WebCore:

  • cssjit/FunctionCall.h:

(WebCore::FunctionCall::FunctionCall):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):

  • html/HTMLKeygenElement.cpp:

Remove using namespace WebCore not to introduce operator+/- which makes the resolution of operator+/- for RegisterID ambiguous.

7:07 AM Changeset in webkit [234983] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] reduce position queries frequency
https://bugs.webkit.org/show_bug.cgi?id=188645

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

There is no need to perform dozens of position queries per second.
One every 300ms is enough.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
6:19 AM Changeset in webkit [234982] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[SOUP] Handle OAuth authentication after r234912
https://bugs.webkit.org/show_bug.cgi?id=188651

Reviewed by Carlos Garcia Campos.

Update this switch to consider the new OAuth enum value added in r234912. I suppose OAuth is
used for HTTP Auth now. It will be a one-time compatibility break as passwords previously
stored with type "Unknown" will no longer be accessible.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::authTypeFromProtectionSpaceAuthenticationScheme):

6:15 AM Changeset in webkit [234981] by Michael Catanzaro
  • 9 edits in trunk/Source/WebKit

Unreviewed, rolling out r234259.

Caused excessive CPU usage

Reverted changeset:

"[GTK][WPE] Improve the way request displayRefresh
notifications"
https://bugs.webkit.org/show_bug.cgi?id=188005
https://trac.webkit.org/changeset/234259

6:04 AM Changeset in webkit [234980] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WTF

WTF's internal std::optional implementation should release assert on all bad accesses
<https://webkit.org/b/187669>

Reviewed by Ryosuke Niwa.

  • wtf/Assertions.h:

(RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT): Add macro definitions.

  • wtf/Optional.h:

(std::optional::operator -> const):
(std::optional::operator ->):
(std::optional::operator * const):
(std::optional::operator *):
(std::optional::value const):
(std::optional::value):
(std::optional<T::operator-> const):
(std::optional<T::operator* const):
(std::optional<T::value const):

  • Change ASSERT_UNDER_CONSTEXPR_CONTEXT() macros to RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT() macros.
2:59 AM Changeset in webkit [234979] by Ms2ger@igalia.com
  • 3 edits in trunk/Source/WebCore

[GTK] Never return an uninitialized ImageGStreamer object.
https://bugs.webkit.org/show_bug.cgi?id=188305

Reviewed by Philippe Normand.

The single caller was already checking for a null return value, so
make that check actually do something. Also remove the null-check on
the return value of image(), which asserted that it would never return
null.

Test: fast/canvas/canvas-createPattern-video-loading.html

  • platform/graphics/gstreamer/ImageGStreamer.h:

(WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
(WebCore::ImageGStreamer::image): Return a reference.
(WebCore::ImageGStreamer::rect): Always assert that m_image is present.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.

1:54 AM Changeset in webkit [234978] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Enable fpsdisplaysink only when MEDIA_STATISTICS is enabled
https://bugs.webkit.org/show_bug.cgi?id=188648

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

The fpsdisplaysink is useful only when MEDIA_STATISTICS is turned on.
The text overlay is now enabled when GST_DEBUG tracing is enabled for the player.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):

1:52 AM Changeset in webkit [234977] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer][MSE] Disable last-sample support in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=188649

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::AppendPipeline::AppendPipeline): This property isn't
used by the append pipeline. So as a micro-optimization, it is now
disabled.

Aug 16, 2018:

9:58 PM Changeset in webkit [234976] by Wenson Hsieh
  • 8 edits
    1 copy
    2 adds in trunk/Tools

[macOS] [WK2] Add infrastructure to test receiving file promises on drop
https://bugs.webkit.org/show_bug.cgi?id=188583

Reviewed by Andy Estes.

Enable testing file promise drop handling on the WebKit2 port of macOS by introducing a subclass of
NSFilePromiseReceiver and implementing -enumerateDraggingItemsWithOptions:forView:… on TestDraggingInfo (the
concrete NSDraggingInfo implementation used by DragAndDropSimulator) using the mock file receiver. Also
introduces 3 new macOS tests. See below for more details.

A large portion of this logic is ported over from DumpRenderTree testing infrastructure added in r229297. In a
future patch, we should introduce a way to write code common to both API tests, WebKitTestRunner and
DumpRenderTree, and make this code shared among all three testing harnesses.

Tests: DragAndDropTests.DragImageElementIntoFileUpload

DragAndDropTests.DragPromisedImageFileIntoFileUpload
DragAndDropTests.DragImageFileIntoFileUpload

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

(TEST):

Drive-by fix: Replace NSMakePoint with CGPointMake.

  • TestWebKitAPI/Tests/WebKitCocoa/image-and-file-upload.html:

Add a new test page consisting of an image and a "file upload" area that updates exercises DataTransfer API to
load the dropped image.

  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:

(waitForConditionWithLogging):

Add a helper function to wait for a condition to evaluate to true. To make failures more informative,
additionally add a mechanism to log a warning message after a given timeout, if the condition has yet to be met.

(TEST):

Add new tests to exercise a few cases of file upload in WebKit, including: (1) dragging from an image element,
(2) dragging files written to the pasteboard as promises, and (3) files written to the pasteboard as file URLs.

  • TestWebKitAPI/cocoa/DragAndDropSimulator.h:

Surface the new functionality provided by the file promise receiver mock via two new methods on
DragAndDropSimulator to (1) write files as file promises to the pasteboard, and (2) write files as file paths
directly to the pasteboard.

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
(-[DragAndDropSimulator externalPromisedFiles]):
(getFilePathsAndTypeIdentifiers):
(-[DragAndDropSimulator writePromisedFiles:]):
(-[DragAndDropSimulator writeFiles:]):

  • TestWebKitAPI/mac/TestDraggingInfo.h:
  • TestWebKitAPI/mac/TestDraggingInfo.mm:

(-[TestDraggingInfo initWithDragAndDropSimulator:]):
(-[TestDraggingInfo filePromiseReceivers]):
(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):

Implement this by invoking the given block with a TestFilePromiseReceiver. While all other classes are
unhandled by this testing code, WebKit only calls into this with [NSFilePromiseReceiver class], this is
currently sufficient for testing purposes.

  • TestWebKitAPI/mac/TestFilePromiseReceiver.h: Copied from Tools/TestWebKitAPI/mac/TestDraggingInfo.h.
  • TestWebKitAPI/mac/TestFilePromiseReceiver.mm: Added.

(-[TestFilePromiseReceiver initWithPromisedTypeIdentifiers:dragAndDropSimulator:]):
(-[TestFilePromiseReceiver fileTypes]):
(-[TestFilePromiseReceiver fileNames]):
(-[TestFilePromiseReceiver dealloc]):
(-[TestFilePromiseReceiver draggingSource]):
(-[TestFilePromiseReceiver setDraggingSource:]):
(fileNameWithNumericSuffix):
(copyFile):

Add a helper to copy a file into a destination directory. Used to implement the main functionality of our
NSFilePromiseReceiver subclass, which copies the files specified by test code into the directory determined by
WebKit.

(-[TestFilePromiseReceiver receivePromisedFilesAtDestination:options:operationQueue:reader:]):

8:06 PM Changeset in webkit [234975] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] alignas for RegisterState should respect alignof(RegisterState) too
https://bugs.webkit.org/show_bug.cgi?id=188686

Reviewed by Saam Barati.

RegisterState would have larger alignment than alignof(void*). We use the larger alignment value
for alignof for RegisterState.

  • heap/RegisterState.h:
7:37 PM Changeset in webkit [234974] by Devin Rousso
  • 11 edits
    11 adds in trunk

Web Inspector: support breakpoints for arbitrary event names
https://bugs.webkit.org/show_bug.cgi?id=183118

Reviewed by Joseph Pecoraro.

Source/WebCore:

Tests: inspector/dom-debugger/event-breakpoints.html

inspector/dom-debugger/event-breakpoints-with-navigation.html

  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):

Source/WebInspectorUI:

Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
specifically setEventBreakpoint and removeEventBreakpoint, that will pause execution if
any DOM event is fired that matches any previously registered breakpoints.

Event breakpoints are distinguished by name, and they currently apply globally, meaning
that only one breakpoint per event name can be registered.

Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
now all it contains is a basic text input for the event name. Similarly, a new TreeElement
subclass, EventBreakpointTreeElement, is used when showing the list of event listener
breakpoints, but all it shows now is the event name.

The majority of the logic in this patch was derived from XHR breakpoints.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Images/EventBreakpoint.svg: Added.
  • UserInterface/Models/EventBreakpoint.js: Added.

(WI.EventBreakpoint):
(WI.EventBreakpoint.prototype.get eventName):
(WI.EventBreakpoint.prototype.get disabled):
(WI.EventBreakpoint.prototype.set disabled):
(WI.EventBreakpoint.prototype.get serializableInfo):
(WI.EventBreakpoint.prototype.saveIdentityToCookie):

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
(WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype._pauseReasonFromPayload):

  • UserInterface/Controllers/EventBreakpointTreeController.js: Added.

(WI.EventBreakpointTreeController):
(WI.EventBreakpointTreeController.prototype.revealAndSelect):
(WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
(WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
(WI.EventBreakpointTreeController.prototype._addTreeElement):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
(WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):

  • UserInterface/Views/EventBreakpointTreeElement.js: Added.

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.onattach):
(WI.EventBreakpointTreeElement.prototype.ondetach):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.onenter):
(WI.EventBreakpointTreeElement.prototype.onspace):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
(WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
(WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
(WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
(WI.EventBreakpointTreeElement.prototype._updateStatus):

  • UserInterface/Views/EventBreakpointTreeElement.css: Added.

(.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):

  • UserInterface/Views/EventBreakpointPopover.js: Added.

(WI.EventBreakpointPopover):
(WI.EventBreakpointPopover.prototype.get result):
(WI.EventBreakpointPopover.prototype.get value):
(WI.EventBreakpointPopover.prototype.show):
(WI.EventBreakpointPopover.prototype._presentOverTargetElement):

  • UserInterface/Views/EventBreakpointPopover.css: Added.

(.popover .event-listener-breakpoint-content):
(.popover .event-listener-breakpoint-content > input):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):

LayoutTests:

  • inspector/dom-debugger/event-breakpoints-expected.txt: Added.
  • inspector/dom-debugger/event-breakpoints.html: Added.
  • inspector/dom-debugger/event-breakpoints-with-navigation-expected.txt: Added.
  • inspector/dom-debugger/event-breakpoints-with-navigation.html: Added.
5:50 PM Changeset in webkit [234973] by Basuke Suzuki
  • 4 edits in trunk

[Curl] Bug fix on deleting cookies when Max-Age is set to zero.
https://bugs.webkit.org/show_bug.cgi?id=188617

Reviewed by Alex Christensen.

Source/WebCore:

Delete cookie if Max-Age is set to zero in Set-Cookie. Original implementation was
compared using "less than", but it must be "less than or equal" to zero.

Tests: http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::setCookie):

LayoutTests:

  • platform/wincairo/TestExpectations:
    • http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html [ Pass ]
4:55 PM Changeset in webkit [234972] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Source/WebKit

Unreviewed, rolling out r234958.
https://bugs.webkit.org/show_bug.cgi?id=188683

Breaking builds due to copy failure (Requested by brichards on
#webkit).

Reverted changeset:

"Add script to generate WebContent service resource files"
https://bugs.webkit.org/show_bug.cgi?id=188601
https://trac.webkit.org/changeset/234958

4:50 PM Changeset in webkit [234971] by Basuke Suzuki
  • 4 edits in trunk

[Curl] Implement deleteAllCookies()
https://bugs.webkit.org/show_bug.cgi?id=188612

Reviewed by Alex Christensen.

Source/WebCore:

deleteAllCookies() was not implemented. Connect the interface to the implementation.

Tests: http/tests/cookies/simple-cookies-expired.html

http/tests/cookies/simple-cookies-max-age.html

  • platform/network/curl/CookieJarCurlDatabase.cpp:

(WebCore::CookieJarCurlDatabase::deleteAllCookies const):

LayoutTests:

  • platform/wincairo/TestExpectations:
    • http/tests/cookies/simple-cookies-expired.html [ Pass ]
    • http/tests/cookies/simple-cookies-max-age.html [ Pass ]
4:31 PM Changeset in webkit [234970] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

Remove unused parentProcessName from NetworkProcessCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=188618

Reviewed by Alex Christensen.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

4:30 PM Changeset in webkit [234969] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

REGRESSION(r234930): Don't embed a #if in an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=188680

Reviewed by Tim Horton.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):
Simplify the ASSERT -- it seems we just want to know that DragSourceActionSelection and exactly one other DragSourceAction is set.

4:20 PM Changeset in webkit [234968] by aestes@apple.com
  • 20 edits
    5 adds
    2 deletes in trunk/Source

[watchOS] Upstream Proximity Networking (nee Wi-Fi Assertions)
https://bugs.webkit.org/show_bug.cgi?id=188664

Reviewed by Tim Horton.

Source/WebKit:

Proximity Networking provides two features for speeding up page loads on watchOS:

  1. Binding requests to the Apple Watch's Wi-Fi interface even when the iPhone is in proximity.
  2. When Wi-Fi isn't available, preemptively upgrading the Bluetooth link to its fastest data

rate prior to starting page loads.

  • Configurations/WebKit.xcconfig:

Added LDFLAGS for Proximity Networking.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::proximityManager):

  • NetworkProcess/NetworkProcess.h:

Added NetworkProximityManager as a supplement.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:

Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING).

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:

Renamed m_wiFiAssertionHolder to m_proximityAssertionToken and changed its type from an
optional WiFiAssertionHolder to an optional NetworkProximityAssertion::Token.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::platformPrepareToSuspend):
(WebKit::NetworkProcess::platformProcessDidResume):
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground):
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground):

Changed to use NetworkProximityManager.

  • NetworkProcess/cocoa/WiFiAssertionHolder.h: Removed.
  • NetworkProcess/cocoa/WiFiAssertionHolder.mm: Removed.
  • NetworkProcess/watchos/NetworkProximityAssertion.h: Added.

(WebKit::NetworkProximityAssertion::Token::Token):
(WebKit::NetworkProximityAssertion::Token::~Token):

Added. NetworkDataTasks hold these tokens to keep Bluetooth or Wi-Fi assertions active
during loading. When the last token is destroyed, its associated assertion will be
deactivated.

  • NetworkProcess/watchos/NetworkProximityAssertion.mm: Added.

(WebKit::NetworkProximityAssertion::NetworkProximityAssertion):
(WebKit::NetworkProximityAssertion::hold):
(WebKit::NetworkProximityAssertion::release):
(WebKit::NetworkProximityAssertion::resume):
(WebKit::NetworkProximityAssertion::suspend):
(WebKit::NetworkProximityAssertion::suspendNow):
(WebKit::NetworkProximityAssertion::releaseTimerFired):
(WebKit::NetworkProximityAssertion::suspendAfterBackgroundingTimerFired):

Added. NetworkProximityAssertion is the base class for Bluetooth and Wi-Fi assertions. It
manages the logic for holding and releasing assertions as well as responding to network
process backgrounding and suspension.

(WebKit::BluetoothProximityAssertion::BluetoothProximityAssertion):
(WebKit::BluetoothProximityAssertion::suspend):
(WebKit::BluetoothProximityAssertion::holdNow):
(WebKit::BluetoothProximityAssertion::releaseNow):

Added. Holds a Bluetooth assertion by calling -[IDSService setLinkPreferences:].

(WebKit::WiFiProximityAssertion::WiFiProximityAssertion):
(WebKit::WiFiProximityAssertion::holdNow):
(WebKit::WiFiProximityAssertion::releaseNow):

Added. Holds a Wi-Fi assertion by using WiFiManagerClient.

  • NetworkProcess/watchos/NetworkProximityManager.h: Added.
  • NetworkProcess/watchos/NetworkProximityManager.mm: Added.

(-[WKProximityServiceDelegate setClient:]):
(-[WKProximityServiceDelegate service:devicesChanged:]):
(-[WKProximityServiceDelegate service:nearbyDevicesChanged:]):
(WebKit::NetworkProximityManager::NetworkProximityManager):
(WebKit::NetworkProximityManager::~NetworkProximityManager):
(WebKit::NetworkProximityManager::supplementName):
(WebKit::bindRequestToWiFi):
(WebKit::NetworkProximityManager::applyProperties):
(WebKit::NetworkProximityManager::resume):
(WebKit::NetworkProximityManager::suspend):
(WebKit::NetworkProximityManager::recommendation const):
(WebKit::NetworkProximityManager::processRecommendations):
(WebKit::toProcessID):
(WebKit::NetworkProximityManager::resumeRecommendations):
(WebKit::NetworkProximityManager::suspendRecommendations):
(WebKit::NetworkProximityManager::updateCompanionProximity):
(WebKit::NetworkProximityManager::updateRecommendation):
(WebKit::NetworkProximityManager::initialize):
(WebKit::NetworkProximityManager::devicesChanged):

Added. NetworkProximityManager is a network process supplement that can bind
NetworkDataTasks to Wi-Fi, associate assertions with NetworkDataTasks, check for companion
proximity, ask for proximity network recommendations, and respond to network process
backgrounding and suspending.

  • Platform/Logging.h:

Renamed the WiFiAssertions log channel to ProximityNetworking.

  • Platform/spi/ios/MobileWiFiSPI.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING).

  • WebKit.xcodeproj/project.pbxproj:
  • config.h:

Removed unused definition of HAVE_MOBILE_WIFI.

Source/WTF:

  • wtf/FeatureDefines.h: Defined ENABLE_PROXIMITY_NETWORKING to 1 on watchOS.
4:05 PM Changeset in webkit [234967] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Remove unused allowScriptsToCloseWindows setting
https://bugs.webkit.org/show_bug.cgi?id=188602

Reviewed by Simon Fraser.

No change in behaviour. It was always false.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::close):

  • page/Settings.yaml:
4:03 PM Changeset in webkit [234966] by achristensen@apple.com
  • 2 edits in trunk/Tools

Add entitlement to MiniBrowser to allow it to communicate with com.apple.Safari.SafeBrowsing.Service
https://bugs.webkit.org/show_bug.cgi?id=188677

Reviewed by Tim Horton.

  • MiniBrowser/MiniBrowser.entitlements:

SSBLookupContext lookUpURL:completionHandler: fails to communicate with its service without this entitlement
on released operating systems. See <rdar://problem/42749777>

4:01 PM Changeset in webkit [234965] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Remove unused and deprecated _WKProcessPoolConfiguration.allowsCellularAccess
https://bugs.webkit.org/show_bug.cgi?id=188681

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration allowsCellularAccess]): Deleted.
(-[_WKProcessPoolConfiguration setAllowsCellularAccess:]): Deleted.

4:00 PM Changeset in webkit [234964] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit

Deprecate SPI that is or ought to be unused
https://bugs.webkit.org/show_bug.cgi?id=188616

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu):

3:49 PM Changeset in webkit [234963] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Show Initiator information in Network Table
https://bugs.webkit.org/show_bug.cgi?id=188590
<rdar://problem/43305488>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-16
Reviewed by Matt Baker.

  • UserInterface/Views/NetworkResourceDetailView.js:

(WI.NetworkResourceDetailView):
(WI.NetworkResourceDetailView.prototype.shown):
(WI.NetworkResourceDetailView.prototype.willShowWithCookie):
(WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
When a ResourceDetailView gets shown, it may also want to show its initial content view
with a cookie as the cookie may contain position highlight information.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype._showResourceDetailView):
(WI.NetworkTableContentView.prototype.showRepresentedObject):
When showing a represented object, pass the cookie information on to the detail
view's so that it may include the cookie when showing the final content view.

(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._populateInitiatorCell):
(WI.NetworkTableContentView.prototype.initialLayout):
New initiator column contains a source code link to the call site.

(WI.NetworkTableContentView.prototype._generateSortComparator):
(WI.NetworkTableContentView.prototype._entryForResource):
Entry data for the initiator is a display string that can be sorted easily.

3:37 PM Changeset in webkit [234962] by jer.noble@apple.com
  • 3 edits in trunk/Tools

Add option to run-api-tests to force running of DISABLED tests.
https://bugs.webkit.org/show_bug.cgi?id=188674

Reviewed by Joseph Pecoraro.

  • Scripts/webkitpy/api_tests/run_api_tests.py:

(parse_args):

  • Scripts/webkitpy/api_tests/runner.py:

(Runner.command_for_port):
(_Worker._run_single_test):

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

[ews-build] Separate queues for Builders and Testers - macOS High Sierra
https://bugs.webkit.org/show_bug.cgi?id=188540

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/config.json: Splitted few macOS queues into builders and testers.
3:10 PM Changeset in webkit [234960] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Add temporary SPI WKContextHandlesSafeBrowsing
https://bugs.webkit.org/show_bug.cgi?id=188676

Reviewed by Joseph Pecoraro.

WebKit showing the safe browsing warning doesn't play well with Safari showing the safe browsing warning.
I plan to adopt this SPI in Safari to disable Safari's safe browsing check if it's true.
Then when I implement safe browsing in WebKit, I can switch this value to true in the same change and
not have a broken Safari.

  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextHandlesSafeBrowsing):

3:08 PM Changeset in webkit [234959] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.1.6

Tag Safari-606.1.36.1.6.

2:59 PM Changeset in webkit [234958] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/WebKit

Add script to generate WebContent service resource files
https://bugs.webkit.org/show_bug.cgi?id=188601

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-16
Reviewed by Dan Bernstein.

Added new build phase to WebContent service to copy resource files to WebKit.framework/PrivateHeaders/CustomWebContentResource.
These resources are intended to be used by a client to create a custom WebContent service.

  • Scripts/copy-webcontent-resources-to-private-headers.sh: Added.
  • WebKit.xcodeproj/project.pbxproj:
2:18 PM Changeset in webkit [234957] by rniwa@webkit.org
  • 4 edits in trunk

Custom element constructor doesn't use HTMLElement in new.target's realm
https://bugs.webkit.org/show_bug.cgi?id=188634

Reviewed by Keith Miller.

LayoutTests/imported/w3c:

Rebaselined the test now that all relevant test cases pass. All remaining test failures are
for customized builtin, which we do not and shall not implement.

  • web-platform-tests/custom-elements/htmlconstructor/newtarget-expected.txt:

Source/WebCore:

Fixed the bug that HTMLElement's constructor was constructing an element of its own realm
instead of the realm of new.target. This results in the JS wrapper created for the element
belonging to the global object of the HTMLElement constructor which was invoked instead of
the global object of new.target as specified in:
https://html.spec.whatwg.org/multipage/dom.html#html-element-constructors

In particular, step 9.2. specifies that we "perform element.SetPrototypeOf?(prototype)."
where prototype is the result of Get(NewTarget, "prototype") in step 7.

WebKit's new behavior matches that of Chrome and Firefox.

Test: imported/w3c/web-platform-tests/custom-elements/htmlconstructor/newtarget.html

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

2:10 PM Changeset in webkit [234956] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the watchOS build after r188464.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::setColor):

2:09 PM Changeset in webkit [234955] by Basuke Suzuki
  • 3 edits
    3 copies
    1 add in trunk/LayoutTests

[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188675

Unreviewed test gardening.

Fix expectations to match after r234892 landed.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/http/tests/xmlhttprequest/methods-async-expected.txt: Added
  • platform/wincairo/http/tests/xmlhttprequest/methods-expected.txt:
  • platform/wincairo/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Added
  • platform/wincairo/http/tests/xmlhttprequest/workers/methods-expected.txt: Added
1:52 PM Changeset in webkit [234954] by achristensen@apple.com
  • 10 edits in trunk/Source/WebKit

Consolidate data/string API loading paths
https://bugs.webkit.org/show_bug.cgi?id=188417

Reviewed by Michael Catanzaro.

loadHTMLString and loadData are basically duplicate code.
loadPlainTextString was also basically the same except it didn't set up a navigation, which
was almost certainly a bug, but nobody uses it in all of Apple and Debian. We should probably deprecate
and remove it, but for now I make it use the same data loading path.

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadData):
(WKPageLoadDataWithUserData):
(loadString):
(WKPageLoadHTMLString):
(WKPageLoadHTMLStringWithUserData):
(WKPageLoadPlainTextString):
(WKPageLoadPlainTextStringWithUserData):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_load_html):
(webkit_web_view_load_plain_text):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString): Deleted.
(WebKit::WebPageProxy::loadPlainTextString): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):
(WebKit::WebPage::loadString): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
1:50 PM Changeset in webkit [234953] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

Custom element doesn't invalidate its style when :defined rule starts to apply
https://bugs.webkit.org/show_bug.cgi?id=188637

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the test now that all relevant test cases pass. The only remaining test failures
are for customized builtins which we do not and shall not implement.

  • web-platform-tests/custom-elements/pseudo-class-defined-expected.txt:

Source/WebCore:

Fixed the bug by invalidating the subtree when a custom element gets defined.

Test: fast/custom-elements/defined-update-style.html

  • dom/Element.cpp:

(WebCore::Element::setIsDefinedCustomElement):

LayoutTests:

Added a regression test.

  • fast/custom-elements/defined-update-style-expected.html: Added.
  • fast/custom-elements/defined-update-style.html: Added.
1:41 PM Changeset in webkit [234952] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Add build steps ArchiveTestResults, UploadTestResults and ExtractTestResults
https://bugs.webkit.org/show_bug.cgi?id=188666

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/steps.py:

(ArchiveTestResults): Build step to Archive the test results.
(UploadTestResults): Build step to upload the archive.
(ExtractTestResults): Build step to unzip the archive on server and generate a link.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.

(ExpectMasterShellCommand): Copied from other similar internal code.

1:40 PM Changeset in webkit [234951] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Separate queues for Builders and Testers - macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=188516

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/config.json: Splitted macOS Sierra Release queues into builders and testers.
  • BuildSlaveSupport/ews-build/factories.py: Used appropriate base classes for builders and testers.
1:15 PM Changeset in webkit [234950] by Basuke Suzuki
  • 2 edits in trunk/LayoutTests

[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188668

Unreviewed test gardening.

After r234863 landed, the information in the LayoutTests/tests-options.json is effective on WinCairo tests.
Remove [ Slow ] keywords. Also maintain xmlhttprequest results.

  • platform/wincairo/TestExpectations:
12:50 PM Changeset in webkit [234949] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Change the input camera in the sources & outputs example on Safari (11) with M.Way camera
https://bugs.webkit.org/show_bug.cgi?id=187756
<rdar://problem/42332178>

Reviewed by Eric Carlson.

Covered by manual testing.

640x480x30fps is added as ideal constraints to getUserMedia if none other is added to provide consistent behavior.
Some cameras do not support 30fps as they have discrete frame rate ranges.
Before the patch, we were rejecting getUserMedia promise if the 'ideal' frameRate was not supported.
After the patch, we do not check whether frame rate is supported if it is not mandatory.
At capture time, we will still try to apply frame rate change and if not supported, the frame rate will not be set to 30 fps.

While we could surface discrete width/height/frame rate ranges, it seems best to fix the issue this way.
In the future, we might implement video interpolation for width/height/framerate at WebCore level.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::supportsSizeAndFrameRate):
(WebCore::RealtimeMediaSource::supportsConstraint const):
(WebCore::RealtimeMediaSource::supportsConstraints):

12:38 PM Changeset in webkit [234948] by Basuke Suzuki
  • 2 edits in trunk/Tools

[Win][DumpRenderTree] Remove error message for duplicated tests.
https://bugs.webkit.org/show_bug.cgi?id=188662

Reviewed by Per Arne Vollan.

This was added to track down an issue where the same tests appeared
to be run multiple times. This turned out to not be the case.
See https://bugs.webkit.org/show_bug.cgi?id=166760 .

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest):

12:02 PM Changeset in webkit [234947] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test editing/pasteboard/drag-and-drop-color-input-events.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=188667

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:49 AM Changeset in webkit [234946] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit

Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188665

Reviewed by Joseph Pecoraro.

APPLICATION_MANIFEST is enabled on all Cocoa platforms, so I removed some guards, too!

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::applicationManifest const):

  • UIProcess/API/APIPageConfiguration.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applicationManifest]):
(-[WKWebViewConfiguration _setApplicationManifest:]):
(-[WKWebViewConfiguration _setCPULimit:]):
(-[WKWebViewConfiguration _cpuLimit]):

11:41 AM Changeset in webkit [234945] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

LayoutTest inspector/worker/debugger-pause.html sometimes times out
https://bugs.webkit.org/show_bug.cgi?id=188580

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-16
Reviewed by Matt Baker.

Source/WebInspectorUI:

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.get mainResource):
(WI.Target.prototype.set mainResource):
Dispatch an event when the Main Resource is set.

LayoutTests:

  • inspector/worker/debugger-pause.html:
  • inspector/worker/resources/worker-utilities.js: Added.

(TestPage.registerInitializer.window.awaitTargetMainResource):
(TestPage.registerInitializer):
Use a more deterministic wait for the main resource.

11:25 AM Changeset in webkit [234944] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

Perform a microtask checkpoint before creating a custom element
https://bugs.webkit.org/show_bug.cgi?id=188189
<rdar://problem/42843022>

Reviewed by Geoffrey Garen.

Source/WebCore:

Fixed the bug that the HTML parser was not performing a microtask checkpoint prior to synchronously constructing
a custom element in the concept to create an element for a token:
https://html.spec.whatwg.org/multipage/parsing.html#creating-and-inserting-nodes:perform-a-microtask-checkpoint

Also added a microtask checkpoint before dispatching DOMContentLoaded to work around webkit.org/b/82931 since
scheduling a task to fire a DOMContentLoaded event in Document::finishedParsing as the HTML5 spec mandates
is a long standing bug with a lot of implications, which is completely outside the scope of this bug fix:
https://html.spec.whatwg.org/multipage/parsing.html#stop-parsing

Test: fast/custom-elements/perform-microtask-checkpoint-before-construction.html

  • dom/Document.cpp:

(WebCore::Document::finishedParsing): Perform a microtask checkpoint before dispatching DOMContentLoaded here as
a workaround for webkit.org/b/82931.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder): Perform a microtask checkpoint here to fix the bug.

LayoutTests:

Added a W3C style testharness.js test for perfoming microtask checkpoint before constructing
a custom element synchronously.

  • fast/custom-elements/perform-microtask-checkpoint-before-construction-expected.txt: Added.
  • fast/custom-elements/perform-microtask-checkpoint-before-construction.html: Added.
  • fast/dom/MutationObserver/parser-mutations.html: Fixed the test per new behavior in Document::finishParsing.

Because iframe loads synchronously and fires DOMContentLoaded, mutation records are now delivered twice after
iframe element is encountered in this test and before script element executes. Concatenate the mutation records
arrays to account for this behavioral change. New WebKit behavior matches that of Chrome; namely this test
fails both on Chrome Canary 70 and trunk WebKit with this patch without this fix.

11:21 AM Changeset in webkit [234943] by commit-queue@webkit.org
  • 6 edits in trunk

Re-introduce assertion removed in r234890
https://bugs.webkit.org/show_bug.cgi?id=188611

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-16
Reviewed by Geoffrey Garen.

Source/WebCore:

The assertion was failing because Vector<String>::operator== was using memcmp,
which failed to consider different instances of equal Strings equal. Added an
API test and this assertion, which now succeeds.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

Source/WTF:

  • wtf/text/WTFString.h:

Tools:

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

11:19 AM Changeset in webkit [234942] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188663

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _drawsBackground]):
(-[WKWebViewConfiguration _setDrawsBackground:]):
(-[WKWebViewConfiguration _waitsForPaintAfterViewDidMoveToWindow]):
(-[WKWebViewConfiguration _setWaitsForPaintAfterViewDidMoveToWindow:]):
(-[WKWebViewConfiguration _isControlledByAutomation]):
(-[WKWebViewConfiguration _setControlledByAutomation:]):

10:59 AM Changeset in webkit [234941] by achristensen@apple.com
  • 28 edits in trunk/Source/WebKit

Stop using canAuthenticateAgainstProtectionSpace in modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=188639

Reviewed by Youenn Fablet.

canAuthenticateAgainstProtectionSpace is an unnecessary step in the authentication process.
It is leftover from when it was necessary when we used NSURLConnection, which is only used in WebKitLegacy now.
Now it's just an extra IPC roundtrip asking if we should use NSURLSessionAuthChallengeRejectProtectionSpace
or if we are going to ask the API client. We can move this step into the C API for compatibility
with the 1 client that still uses it (not for long, see rdar://problem/43358403) and simplify and optimize
authentication.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::completeAuthenticationChallenge): Deleted.
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::cancelDownload):
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): Deleted.
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::canAuthenticateAgainstProtectionSpaceAsync): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):
(WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpace): Deleted.

  • UIProcess/WebPageProxy.h:
10:57 AM Changeset in webkit [234940] by jer.noble@apple.com
  • 27 edits
    10 adds in trunk

Add Experimental Feature support for SourceBuffer.changeType()
https://bugs.webkit.org/show_bug.cgi?id=188626
LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

  • resources/import-expectations.json:
  • web-platform-tests/media-source/mediasource-changetype-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-changetype-play.html: Added.
  • web-platform-tests/media-source/mediasource-changetype-util.js: Added.

(findSupportedChangeTypeTestTypes):
(appendBuffer):
(trimBuffered):
(trimDuration):
(runChangeTypeTest):
(mediaSourceChangeTypeTest):

  • web-platform-tests/media-source/mediasource-changetype.html: Added.
  • web-platform-tests/media-source/mp3/sound_5.mp3: Added.
  • web-platform-tests/media-source/mp3/w3c-import.log: Added.
  • web-platform-tests/media-source/w3c-import.log:
  • web-platform-tests/media-source/webm/test-vp9.webm: Added.
  • web-platform-tests/media-source/webm/w3c-import.log:

Source/WebCore:

Reviewed by Eric Carlson.

Tests: imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html

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

The WICG is incubating a new proposal to allow clients to switch between streams
with different codecs within the same SourceBuffer. The proposal is being tracked
by <https://github.com/w3c/media-source/issues/155> and the proposed spec change
is available at <https://rawgit.com/wicg/media-source/codec-switching/index.html>.

Drive-by fix: One of the wpt tests uses a .mp3 file to test SourceBuffer switching.
The AVStreamDataParser does not necessarily emit every frame appended, and after a
new init segment is appended, it's possible that frames from the previous media
segment will be emitted. This causes an error condition to occur, due to an added
check in the spec for a new flag. When the SourceBuffer asks its private implementation
to reset the parser state, since there's no API on AVStreamDataParser to actually
reset the parser state, just set a flag to drop all emitted buffers until the next
initialization segment is parsed.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::contentTypeShouldGenerateTimestamps):
(WebCore::MediaSource::setDurationInternal):
(WebCore::MediaSource::addSourceBuffer):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::changeType):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::validateInitializationSegment):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediasource/SourceBuffer.idl:
  • page/Settings.yaml:
  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::canSwitchToType):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
(WebCore::SourceBufferPrivateAVFObjC::resetParserState):
(WebCore::SourceBufferPrivateAVFObjC::canSwitchToType):

Source/WebKit:

Reviewed by Eric Carlson.

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

(WKPreferencesSetSourceBufferChangeTypeEnabled):
(WKPreferencesGetSourceBufferChangeTypeEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

<rdar://problem/43356021>

Reviewed by Eric Carlson.

Add a new WebPreference property mapping to the WebCore SourceBufferChangeTypeEnabled setting.

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

(+[WebPreferences initialize]):
(-[WebPreferences sourceBufferChangeTypeEnabled]):
(-[WebPreferences setSourceBufferChangeTypeEnabled:]):

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

(-[WebView _preferencesChanged:]):

Tools:

<rdar://problem/43356021>

Reviewed by Eric Carlson.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Reviewed by Eric Carlson.

  • platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Added.
10:53 AM Changeset in webkit [234939] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188661

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]):
(-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]):
(-[WKWebViewConfiguration _initialCapitalizationEnabled]):
(-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):
(-[WKWebViewConfiguration _overrideContentSecurityPolicy]):
(-[WKWebViewConfiguration _setOverrideContentSecurityPolicy:]):

10:40 AM Changeset in webkit [234938] by chris.reid@sony.com
  • 3 edits in trunk/Source/WebCore

[Curl] Not all Cookie database files are deleted on corruption
https://bugs.webkit.org/show_bug.cgi?id=185873

Reviewed by Fujii Hironori.

No new tests.

Delete the cookie database file and the corruption flag file when corruption is detected.
Adding a quick integrity check in case it can catch anything when opening the database.
Removing PRAGMA temp_store = MEMORY and PRAGMA journal_mode = WAL as they are set in SQLiteDatabase::open.

  • platform/network/curl/CookieJarDB.cpp:
10:29 AM Changeset in webkit [234937] by Kocsen Chung
  • 2 edits in branches/safari-606.1.36.1-branch/Source/WebKit

Cherry-pick r234908. rdar://problem/43385542

[WinCairo] Unreviewed build fix after r234896.

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp: (WebKit::NetworkDataTaskCurl::tryHttpAuthentication):

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

10:29 AM Changeset in webkit [234936] by Kocsen Chung
  • 19 edits in branches/safari-606.1.36.1-branch/Source/WebKit

Cherry-pick r234896. rdar://problem/43385542

NetworkCORSPreflightChecker should proceed in case of ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested even though the WebKit app is not implementing the didReceiveAuthenticationChallenge/didReceiveAuthenticationChallengeInFrame callback
https://bugs.webkit.org/show_bug.cgi?id=188592
<rdar://problem/43210331>

Reviewed by Youenn Fablet.

Do a canAuthenticateAgainstProtectionSpace check in NetworkCORSPreflightChecker like we do in NetworkLoad.
Use CompletionHandlers to make the now 3 different canAuthenticateAgainstProtectionSpace checks look the same from the NetworkProcess.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveChallenge):
  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): (WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): (WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace): Deleted.
  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::didReceiveChallenge):
  • NetworkProcess/PingLoad.h:
  • NetworkProcess/PreconnectTask.cpp: (WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): (WebKit::PreconnectTask::continueCanAuthenticateAgainstProtectionSpace): Deleted.
  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::didReceiveChallenge):

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

10:29 AM Changeset in webkit [234935] by Kocsen Chung
  • 2 edits in branches/safari-606.1.36.1-branch/Source/WebCore

Cherry-pick r234890. rdar://problem/43385599

Remove failing assertion introduced in r234873
https://bugs.webkit.org/show_bug.cgi?id=188581

  • contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): The assertion is correct but failing because VectorTraits<String> is incorrect. I'll re-add it and fix VectorTraits<String> in a separate patch.

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

10:29 AM Changeset in webkit [234934] by Kocsen Chung
  • 15 edits in branches/safari-606.1.36.1-branch

Cherry-pick r234873. rdar://problem/43385599

isValidCSSSelector is unsafe to be called from a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=188581
<rdar://problem/40517358>

Reviewed by Sam Weinig.

Source/WebCore:

Parsing and determining whether the css selectors are valid is fast enough to do before
hopping to the background thread for the slow NFA/DFA operations and writing to disk.
Doing it on the main thread avoids the thread safety issues in the CSSParser's use of strings.

  • contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList):
  • contentextensions/ContentExtensionCompiler.h:
  • contentextensions/ContentExtensionParser.cpp: (WebCore::ContentExtensions::isValidCSSSelector): (WebCore::ContentExtensions::loadEncodedRules): (WebCore::ContentExtensions::parseRuleList):
  • contentextensions/ContentExtensionParser.h:
  • contentextensions/ContentExtensionRule.cpp: (WebCore::ContentExtensions::Trigger::isolatedCopy const): (WebCore::ContentExtensions::Action::isolatedCopy const):
  • contentextensions/ContentExtensionRule.h: (WebCore::ContentExtensions::Trigger::isEmpty const): (WebCore::ContentExtensions::Trigger::operator== const): (WebCore::ContentExtensions::Action::Action): (WebCore::ContentExtensions::ContentExtensionRule::isolatedCopy const): (WebCore::ContentExtensions::ContentExtensionRule::operator== const): (WebCore::ContentExtensions::vectorIsolatedCopy):

Source/WebKit:

  • UIProcess/API/APIContentRuleListStore.cpp: (API::compiledToFile): (API::ContentRuleListStore::lookupContentRuleList): (API::ContentRuleListStore::getAvailableContentRuleListIdentifiers): (API::ContentRuleListStore::compileContentRuleList): (API::ContentRuleListStore::removeContentRuleList): (API::ContentRuleListStore::getContentRuleListSource):
  • UIProcess/API/APIContentRuleListStore.h:
  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

Source/WTF:

  • wtf/Vector.h: (WTF::minCapacity>::isolatedCopy):

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::InMemoryCompiledContentExtension::create): (TestWebKitAPI::checkCompilerError):

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

10:24 AM Changeset in webkit [234933] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[win-ews] No such file or directory: u'/cygdrive/C/cygwin/home/buildbot/WebKit/WebKitBuild/Release/bin32/layout-test-results/pywebsocket.ws.log-out.txt'
https://bugs.webkit.org/show_bug.cgi?id=188640

Unreviewed test gardening.

For now, skip websocket tests on Windows. Currently, run-webkit-tests is failing to start the websocket server because
port 8880 is already in use. Port 8880 is being used because the python websocket server process from the previous run
did not shutdown properly. We still need to understand why this is happening, but disable websocket tests now in order
for tests to run again.

  • platform/win/TestExpectations:
9:57 AM Changeset in webkit [234932] by zandobersek@gmail.com
  • 2 edits
    2 adds in trunk/Source/WebCore

[Nicosia] Add Nicosia::ImageBackingTextureMapperImpl
https://bugs.webkit.org/show_bug.cgi?id=188550

Reviewed by Carlos Garcia Campos.

Add the Nicosia::ImageBackingTextureMapperImpl class, the
TextureMapper-specific implementation that will extend the ImageBacking
class.

This class will be used to contain and manage updates for layers that
are backed by image objects. The CoordinatedGraphicsLayer instance will
use the LayerState object to track the currently-presented image objects
and to store the latest update of these objects. The Update struct
contains information about the current visibility of the image in the
layer tree as well as the Nicosia::Buffer object containing the painted
image data that's to be presented on the screen.

During the layer flush the flushUpdate() method will move the current
update data into the pending position, from which this data will be
gathered by the composition component through the takeUpdate() method
and used to update the CoordinatedBackingStore object that's kept in
the CompositionState object on this impl class.

This will be deployed for use in the CoordinatedGraphicsLayer at a later
stage as it requires a larger rework in both CoordinatedGraphicsLayer as
well as the CoordinatedGraphicsScene classes.

The implementation itself differs from the current image backing support
in CoordinatedGraphicsLayer and CompositingCoordinator by abandoning the
idea of sharing single image backings between layers that might be
backed by identical Image objects. We thus end up trading any memory
consumption benefit in these scenarios for a much simplified
implementation. Overall this area needs more research both in figuring
out whether there's worthy improvements in grouping image backings, as
well as investigating whether it's possible to avoid additional image
rasterization by just leveraging direct pixel data via the
NativeImagePtr object.

  • platform/TextureMapper.cmake:
  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp: Added.

(Nicosia::ImageBackingTextureMapperImpl::createFactory):
(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):
(Nicosia::ImageBackingTextureMapperImpl::takeUpdate):

  • platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h: Added.
9:49 AM Changeset in webkit [234931] by zandobersek@gmail.com
  • 2 edits
    368 adds in trunk/LayoutTests

Unreviewed WPE gardening. Enable a few subdirectories under fast/ and
provide platform-specific baselines as well as failure expectations
where required.

  • platform/wpe/TestExpectations:
  • platform/wpe/fast/box-shadow: Added 10 baselines.
  • platform/wpe/fast/box-sizing: Added 4 baselines.
  • platform/wpe/fast/clip: Added 23 baselines.
  • platform/wpe/fast/compact: Added 3 baselines.
  • platform/wpe/fast/css-generated-content: Added 43 baselines.
  • platform/wpe/fast/doctypes: Added 4 baselines.
  • platform/wpe/fast/flexbox: Added 26 baselines.
  • platform/wpe/fast/inline: Added 32 baselines.
  • platform/wpe/fast/inline-block: Added 9 baselines.
  • platform/wpe/fast/invalid: Added 29 baselines.
  • platform/wpe/fast/line-grid: Added 8 baselines.
  • platform/wpe/fast/lists: Added 27 baselines.
  • platform/wpe/fast/loader: Added 1 baseline.
  • platform/wpe/fast/preloader: Added 2 baselines.
  • platform/wpe/fast/replaced: Added 57 baselines.
  • platform/wpe/fast/ruby: Added 26 baselines.
  • platform/wpe/fast/writing-mode: Added 37 baselines.
9:44 AM Changeset in webkit [234930] by Aditya Keerthi
  • 47 edits
    5 adds in trunk

Support drag-and-drop for input[type=color]
https://bugs.webkit.org/show_bug.cgi?id=188464

Reviewed by Wenson Hsieh.

Source/WebCore:

input[type=color] should support native drag and drop on both macOS and iOS.

Added methods to Pasteboard and PlatformPasteboard to enable colors to be read
from and written to the pasteboard. On macOS, colors are managed through the
NSColorPboardType, whereas on iOS, colors are managed through the
'com.apple.uikit.color' identifier.

DragSourceActionColor was added to the list of DragSourceActions to identify
when a color input is being dragged.

Tests: editing/pasteboard/drag-and-drop-color-input-events.html

editing/pasteboard/drag-and-drop-color-input.html

  • page/DragActions.h:
  • page/DragController.cpp:

(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::isEnabledColorInput):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::draggableElement const):
(WebCore::DragController::startDrag):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dragHysteresisExceeded const):
(WebCore::EventHandler::handleDrag):

  • page/EventHandler.h:
  • page/mac/DragControllerMac.mm:

(WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod const):

  • platform/DragData.h:
  • platform/DragImage.cpp:

(WebCore::DragImage::operator=):

  • platform/DragImage.h: Added the visiblePath property to DragImage, in order for

us to be able to clip images in the UITargetedDragPreview on iOS.

  • platform/DragItem.h:

(WebCore::DragItem::encode const):
(WebCore::DragItem::decode):

  • platform/Pasteboard.h:
  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/gtk/DragImageGtk.cpp:

(WebCore::createDragImageForColor):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::write):

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageForColor):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::write):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::color):
(WebCore::PlatformPasteboard::setColor):

  • platform/mac/DragDataMac.mm:

(WebCore::colorPasteboardType):
(WebCore::DragData::containsCompatibleContent const):

  • platform/mac/DragImageMac.mm:

(WebCore::createDragImageForColor): Draw a rounded rectangle with a fill color
matching the value of the dragged color input. The rendered image is designed to
mimic the preview shown when dragging an NSColorWell.

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::setColor):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::write):

  • platform/wpe/PasteboardWPE.cpp:

(WebCore::Pasteboard::write):

Source/WebKit:

On iOS, the drag preview for the color input is a rounded rectangle. In order to
ensure that the corners appear transparent, the visiblePath property of the
UIDragPreviewParameters was set to match the preview's shape. This also required
the creation of an additional ArgumentCoder for Path.

When beginning the drag session, the preview should appear centered about the
color input. This is managed in createTargetedDragPreview. However, once the
preview is dragged, the preview should be at the center of the touch location.
Consequently, DragSourceActionColor was added to the list of sources that could
update the drag preview after lifting.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Path>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::setPasteboardColor):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/ios/DragDropInteractionState.h:
  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::createTargetedDragPreview):
(WebKit::shouldUseDragImageToCreatePreviewForDragSource):
(WebKit::shouldUseVisiblePathToCreatePreviewForDragSource):
(WebKit::canUpdatePreviewForActiveDragSource):
(WebKit::DragDropInteractionState::previewForDragItem const):
(WebKit::DragDropInteractionState::stageDragItem):
(WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources):

  • UIProcess/ios/forms/WKFormColorPicker.mm:

(-[WKColorPicker initWithView:]):

  • UIProcess/mac/WebColorPickerMac.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setColor):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::setColor):

Tools:

Added five cross-platform API tests, to verify that dragging and dropping with
color inputs changes the value of the drop target if and only if both inputs are
enabled. Also tests that the change and input events are fired when changing the
value of a color input through drag and drop.

Additionally, added a macOS-specific test to verify that dropping an item with
NSColorPboardType changes the value of the color input.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/color-drop.html: Added.
  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:

(TestWebKitAPI::TEST):

LayoutTests:

Added tests to verify that dragging from one color input to another behaves as
expected in WK1. The tests consider disabled and read-only inputs in addition to
default color inputs. The WK2 implementation is tested through API tests.

  • editing/pasteboard/drag-and-drop-color-input-events-expected.txt: Added.
  • editing/pasteboard/drag-and-drop-color-input-events.html: Added.
  • editing/pasteboard/drag-and-drop-color-input-expected.txt: Added.
  • editing/pasteboard/drag-and-drop-color-input.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
8:53 AM Changeset in webkit [234929] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Assert that calling CGSSetDenyWindowServerConnections(true) succeeds
https://bugs.webkit.org/show_bug.cgi?id=188615

Reviewed by Brent Fulgham.

If the call to CGSSetDenyWindowServerConnections(true) fails, it means there are open WindowServer connections
at this point, and future WindowServer connections will not be denied. We should assert that this call succeeds.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

8:50 AM Changeset in webkit [234928] by Simon Fraser
  • 2 edits
    1 add in trunk/LayoutTests

Add fake layout test results JSON to exercise the functionality in results.html
https://bugs.webkit.org/show_bug.cgi?id=188636

Reviewed by Alexey Proskuryakov.

The results for results.html are mostly blank because the page runs without any JSON
data, so there's no testing of the functionality of the page. Add some fake JSON
data which supplies most of the different types of test result, so we're testing
at least some of the results.html script.

  • fast/harness/full_results.json: Added.
  • fast/harness/results-expected.txt:
8:43 AM Changeset in webkit [234927] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[lFC][Floating] Add estimated margin top computation.
https://bugs.webkit.org/show_bug.cgi?id=188619

Reviewed by Antti Koivisto.

In order to figure out whether a box should avoid a float, we need to know the final positions of both (ignore relative positioning for now).
In block formatting context the final position for a normal flow box includes

  1. the static position and
  2. the corresponding (non)collapsed margins.

Now the vertical margins are computed when all the descendants are finalized, because the margin values might be depending on the height of the box
(and the height might be based on the content).
So when we get to the point where we intersect the box with the float to decide if the box needs to move, we don't yet have the final vertical position.

The idea here is that as long as we don't cross the block formatting context boundary, we should be able to pre-compute the final top margin.
(if this holds true for all the cases, the estimated prefix could be removed and just use marginTop() instead.)

Covered by existing block-only tests.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTop const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginTop):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::setHasValidTop):
(WebCore::Display::Box::setHasValidLeft):
(WebCore::Display::Box::top const):
(WebCore::Display::Box::left const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setEstimatedMarginTop):
(WebCore::Display::Box::estimatedMarginTop const):

8:36 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
8:35 AM Changeset in webkit [234926] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] Updated Polish translation of WebKitGTK+ for 2.22
https://bugs.webkit.org/show_bug.cgi?id=188652

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2018-08-16
Rubber-stamped by Michael Catanzaro.

  • pl.po:
7:40 AM Changeset in webkit [234925] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][BFC] Display::Box interface should reflect that padding is optional.
https://bugs.webkit.org/show_bug.cgi?id=188630

Reviewed by Antti Koivisto.

Certain type of boxes can't have paddings (see Layout::Box::isPaddingApplicable).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeBorderAndPadding const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::width const):
(WebCore::Display::Box::height const):
(WebCore::Display::Box::contentBoxTop const):
(WebCore::Display::Box::contentBoxLeft const):
(WebCore::Display::Box::setPadding):
(WebCore::Display::Box::paddingTop const):
(WebCore::Display::Box::paddingLeft const):
(WebCore::Display::Box::paddingBottom const):
(WebCore::Display::Box::paddingRight const):

7:35 AM Changeset in webkit [234924] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Add showLayoutTree() that does not require LayoutContext.
https://bugs.webkit.org/show_bug.cgi?id=188631

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):

  • layout/layouttree/LayoutBox.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputLayoutTree):
(WebCore::Layout::showLayoutTree):
(WebCore::Layout::TreeBuilder::showLayoutTree): Deleted.

  • layout/layouttree/LayoutTreeBuilder.h:
7:32 AM Changeset in webkit [234923] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Tree builder should construct block and inline containers based on the display type.
https://bugs.webkit.org/show_bug.cgi?id=188632

Reviewed by Antti Koivisto.

Inline elements can also construct RenderBlock renderers (inline-bloc etc), so use the display type instead when deciding what type of container to construct.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):

7:28 AM Changeset in webkit [234922] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Bail out of subtree verification when trees are out of sync.
https://bugs.webkit.org/show_bug.cgi?id=188633

Reviewed by Antti Koivisto.

There's no point of trying to match geometry when subtrees are out of sync.
They get out of sync when the render tree has unsupported boxes (see LayoutTreeBuilder).

  • layout/Verification.cpp:

(WebCore::Layout::verifyAndOutputSubtree):

7:23 AM Changeset in webkit [234921] by Philippe Normand
  • 4 edits in trunk/Source/WebKit

Unreviewed, WPE build fix after r234920.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewInWindow):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::setViewState):

  • UIProcess/API/wpe/WPEView.h:
5:49 AM Changeset in webkit [234920] by Antti Koivisto
  • 44 edits in trunk

Use OptionSet for ActivityState::Flags
https://bugs.webkit.org/show_bug.cgi?id=188554

Reviewed by Brent Fulgham.

Source/WebCore:

More typesafe flags.

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::activityStateDidChange):

  • Modules/geolocation/GeolocationController.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::activityStateDidChange):

  • html/canvas/WebGLRenderingContextBase.h:
  • page/ActivityState.cpp:

(WebCore::operator<<):
(WebCore::activityStateFlagsToString): Deleted.

  • page/ActivityState.h:

(WebCore::ActivityState::allFlags):

  • page/ActivityStateChangeObserver.h:
  • page/FocusController.cpp:

(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActivityState):
(WebCore::FocusController::setActive):

  • page/FocusController.h:

(WebCore::FocusController::isActive const):
(WebCore::FocusController::isFocused const):
(WebCore::FocusController::contentIsVisible const):

  • page/Page.cpp:

(WebCore::pageInitialActivityState):
(WebCore::Page::Page):
(WebCore::Page::setIsInWindow):
(WebCore::Page::updateTimerThrottlingState):
(WebCore::Page::setActivityState):
(WebCore::Page::isVisibleAndActive const):
(WebCore::Page::isWindowActive const):
(WebCore::Page::setIsVisible):

  • page/Page.h:

(WebCore::Page::activityState const):
(WebCore::Page::isVisible const):
(WebCore::Page::isInWindow const):

  • page/PerformanceMonitor.cpp:

(WebCore::activityStateForCPUSampling):
(WebCore::PerformanceMonitor::activityStateChanged):

  • page/PerformanceMonitor.h:
  • platform/text/cocoa: Added.

Source/WebKit:

  • Shared/WebPageCreationParameters.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::viewDidMoveToWindow):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::isPlayingMediaDidChange):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isInWindow const):
(WebKit::WebPageProxy::isViewVisible const):
(WebKit::WebPageProxy::isViewFocused const):
(WebKit::WebPageProxy::isViewWindowActive const):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::activityStateDidChange):

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::activityStateDidChange):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateThrottleState):
(WebKit::WebPage::updateIsInWindow):
(WebKit::WebPage::visibilityDidChange):
(WebKit::WebPage::setActivityState):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::isVisible const):
(WebKit::WebPage::isVisibleOrOccluded const):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::pageActivityStateDidChange):

  • WebProcess/WebProcess.h:

Source/WTF:

  • wtf/OptionSet.h:

(WTF::OptionSet::operator):

Add xor operator, useful for finding changes between sets.

Tools:

  • TestWebKitAPI/Tests/WTF/OptionSet.cpp:

(TestWebKitAPI::TEST):

4:48 AM Changeset in webkit [234919] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.21.91

WebKitGTK+ 2.21.91

4:47 AM Changeset in webkit [234918] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.91 release.

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.21.91.
3:44 AM WebKitGTK/2.22.x created by Carlos Garcia Campos
2:54 AM Changeset in webkit [234917] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.22

Branch WebKitGTK+ for 2.22

2:41 AM Changeset in webkit [234916] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

[YARR] Align allocation size in BumpPointerAllocator with sizeof(void*)
https://bugs.webkit.org/show_bug.cgi?id=188571

Reviewed by Saam Barati.

UBSan finds YarrInterpreter performs misaligned accesses. This is because YarrInterpreter
allocates DisjunctionContext and ParenthesesDisjunctionContext from BumpPointerAllocator
without considering alignment of them. This patch adds DisjunctionContext::allocationSize
and ParenthesesDisjunctionContext::allocationSize to calculate allocation sizes for them.
The size is always rounded to sizeof(void*) so that these classes are always allocated
with sizeof(void*) alignment. We also ensure the alignments of both classes are less
than or equal to sizeof(void*) by static_assert.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::DisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::allocDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
(JSC::Yarr::Interpreter::Interpreter):
(JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext): Deleted.

1:15 AM Changeset in webkit [234915] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] MiniBrowser: web view doesn't get the focus when new window is created
https://bugs.webkit.org/show_bug.cgi?id=188546

Reviewed by Michael Catanzaro.

Tools:

When a new window is created, the first widget of the windo is getting the focus, the toolbar in this case. We
always want the WebView to grab the focus. In case of new empty tab, we want to the URL bar to be focused
instead. This was causing failures in WebDriver tests that create a popup window with an input element that is
filled with send keys command. The input element is marked as focused in the DOM, but the actual focused widget
is the toolbar, so key events are sent to the toolbar instead of the web view.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewCreate):
(newTabCallback):
(openPrivateWindow):
(browser_window_get_or_create_web_view_for_automation):

WebDriverTests:

Remove expectations of the tests that pass now.

1:14 AM Changeset in webkit [234914] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall attrs too.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pytest):

12:41 AM Changeset in webkit [234913] by tpopela@redhat.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: Coverity scan issues
https://bugs.webkit.org/show_bug.cgi?id=186763

Reviewed by Saam Barati.

  • bmalloc/DebugHeap.h: Initialize the m_pageSize variable.
  • bmalloc/IsoTLS.cpp:

(bmalloc::IsoTLS::ensureEntries): Check the return value of
pthread_key_create return().

  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSize): Correctly check the return value of sysconf().

Note: See TracTimeline for information about the timeline view.