Timeline



Mar 7, 2018:

11:14 PM Changeset in webkit [229398] by timothy_horton@apple.com
  • 11 edits in trunk

Sort and separate FeatureDefines.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=183427

Reviewed by Dan Bernstein.

  • Configurations/FeatureDefines.xcconfig:

Sort and split FeatureDefines into paragraphs
(to make it easier to sort later).

10:44 PM Changeset in webkit [229397] by Yusuke Suzuki
  • 5 edits in trunk/Source/WTF

[WTF] Set canInitializeWithMemset = true if T is an integral type
https://bugs.webkit.org/show_bug.cgi?id=183357

Reviewed by Darin Adler.

This patch set canInitializeWithMemset = true if T is an integral type.
This can offer a chance to use memset if we use UniqueArray<T> where T is
an integral type. We also rename VectorTypeOperations::initialize to
VectorTypeOperations::initializeIfNonPOD, VectorTypeOperations::forceInitialize
to VectorTypeOperations::initialize respectively.

  • wtf/RefCountedArray.h:

(WTF::RefCountedArray::RefCountedArray):

  • wtf/UniqueArray.h:
  • wtf/Vector.h:

(WTF::VectorTypeOperations::initializeIfNonPOD):
(WTF::VectorTypeOperations::initialize):
(WTF::Vector::Vector):
(WTF::Malloc>::resize):
(WTF::Malloc>::grow):
(WTF::VectorTypeOperations::forceInitialize): Deleted.

  • wtf/VectorTraits.h:
10:37 PM Changeset in webkit [229396] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r218089): [GTK] webkit_web_view_get_inspector() needs to be called, otherwise inspector does not close
https://bugs.webkit.org/show_bug.cgi?id=181126

Reviewed by Carlos Alberto Lopez Perez.

Fix the condition to decide whether to detach the inspector view ourselves.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformDetach): Remove the inspector view from its parent if we don't have a client
or the client didn't detach it.

10:34 PM Changeset in webkit [229395] by Carlos Garcia Campos
  • 17 edits in trunk

[GTK][WPE] Leak checker is not working in WebKitGLib web process tests
https://bugs.webkit.org/show_bug.cgi?id=183404

Reviewed by Michael Catanzaro.

Source/WebKit:

Add private helper for testing to do a garbage collection when the page is closing.

  • WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp:

(webkitWebExtensionSetGarbageCollectOnPageDestroy):

  • WebProcess/InjectedBundle/API/glib/WebKitWebExtensionPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h: Fix annotation of

webkit_dom_client_rect_list_item(), it should be transfer full.

Tools:

This might have regressed when we started to use the JSC garbage collector timers. The thing is that we expect
that the WebProcessTester object that we expose to JavaScript is released when the web frame is destroyed, but
that's no longer the case. On window object cleared a GC is scheduled, but JSC timers do the actual garbage
collection later. In the case of tests that never happens because the web process finishes quickly after the
test. We need to force a garbage collection at some point when the web page is destroyed. We can't use the
WebKitWebPage destroy signal, since we are also checking that WebKitWebPage isn't leaked. The
API::InjectedBundle::Client::willDestroyPage() always happen when the page is closed, even if WebKitWebPage is
still alive, so we can force the GC at that point. The only problem is that the frame is detached right after
that point, so we can't check WebKitFrame leaks. The only frame in the tests is the main one, so we can assume
that if WebKitWebPage is released, the frame is too.

  • TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:

(WebKitFrameTest::testMainFrame): Stop checking we don't leak WebKitFrame.
(WebKitFrameTest::testURI): Ditto.
(WebKitFrameTest::testJavaScriptContext): Ditto.

  • TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp:

(testWebKitFrameMainFrame): Use new WebViewTest::runWebProcessTest() API.
(testWebKitFrameURI): Ditto.
(testWebKitFrameJavaScriptContext): Ditto.
(webkitFrameTestRun): Deleted.

  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:

(runTest): We no longer need the special case for dom-cache test.
(windowObjectClearedCallback): Only expose test runner object to JavaScript when loading tests.
(webkit_web_extension_initialize): Call webkitWebExtensionSetGarbageCollectOnPageDestroy() to ensure a garbage
collection is performed when the page is closing.

  • TestWebKitAPI/Tests/WebKitGtk/DOMClientRectTest.cpp:

(WebKitDOMClientRectTest::testDivClientRectsPositionAndLength): Fix memory leak,
webkit_dom_client_rect_list_item() returns a full reference.

  • TestWebKitAPI/Tests/WebKitGtk/TestAutocleanups.cpp:

(testWebProcessAutocleanups):Use new WebViewTest::runWebProcessTest() API.

  • TestWebKitAPI/Tests/WebKitGtk/TestDOMClientRect.cpp:

(testWebKitDOMClientRectDivBoundingClientRectPosition): Use new WebViewTest::runWebProcessTest() API.
(testWebKitDOMClientRectDivClientRectsPositionAndLength): Use new WebViewTest::runWebProcessTest() API.
(prepareDOMForClientRectPositionTests): Deleted.

  • TestWebKitAPI/Tests/WebKitGtk/TestDOMNode.cpp:

(testWebKitDOMNodeHierarchyNavigation): Use new WebViewTest::runWebProcessTest() API.
(testWebKitDOMNodeInsertion): Ditto.
(testWebKitDOMNodeTagNamesNodeList): Ditto.
(testWebKitDOMNodeTagNamesHTMLCollection): Ditto.
(testWebKitDOMObjectCache): We no longer need to run the test several times, since runWebProcessTest() loads
about blank after every test.
(prepareDOMForTagNamesTests): Deleted.

  • TestWebKitAPI/Tests/WebKitGtk/TestDOMNodeFilter.cpp:

(testWebKitDOMNodeFilterTreeWalker): Use new WebViewTest::runWebProcessTest() API.
(testWebKitDOMNodeFilterNodeIterator): Ditto.
(runTest): Deleted.

  • TestWebKitAPI/Tests/WebKitGtk/TestDOMXPathNSResolver.cpp:

(testWebKitDOMXPathNSResolverNative): Use new WebViewTest::runWebProcessTest() API.
(testWebKitDOMXPathNSResolverCustom): Ditto.

  • TestWebKitAPI/Tests/WebKitGtk/TestEditor.cpp:

(testWebKitWebEditorSelectionChanged): Use new WebViewTest::runWebProcessTest() API.

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::runWebProcessTest): It now receives the contents, so it automatically loads the view using
"webprocess://test" as base URI, used to detect tests in the web process. It also loads about:blank after every
test to ensure that window object is cleared.

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
8:18 PM Changeset in webkit [229394] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix 32-bit build.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):

7:51 PM Changeset in webkit [229393] by Alan Bujtas
  • 3 edits
    4 adds in trunk

Invalid innerTextRenderer in RenderTextControlSingleLine::styleDidChange()
https://bugs.webkit.org/show_bug.cgi?id=183385
<rdar://problem/38085397>

Reviewed by Antti Koivisto.

Source/WebCore:

When HTMLInputElement::updateType() is called with a dirty value, we eagerly change the m_inputType first
and then we take care of the dirty value by calling setAttributeWithoutSynchronization().
With a DOMSubtreeModified event listener attached, setAttributeWithoutSynchronization() can end up running some
layout code (offsetHeight) with a renderer - m_inputType mismatch.

This patch ensures that we don't change the m_inputType until after we finished setting the new value.

Test: fast/DOM/HTMLInputElement/input-value-and-type-change-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):

LayoutTests:

  • fast/DOM/HTMLInputElement/input-value-and-type-change-crash-expected.txt: Added.
  • fast/DOM/HTMLInputElement/input-value-and-type-change-crash.html: Added.
7:31 PM Changeset in webkit [229392] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Get rid of custom bindings for History's replaceState() / pushState()
https://bugs.webkit.org/show_bug.cgi?id=183372

Reviewed by Youenn Fablet.

Get rid of custom bindings for History's replaceState() / pushState() by
moving the cached state from the wrapper to the History implementation
object.

No new tests, no web-facing behavior change.

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::state const):
(WebCore::JSHistory::visitAdditionalChildren):

  • page/History.cpp:

(WebCore::History::cachedState):
(WebCore::History::stateObjectAdded):

  • page/History.h:

(WebCore::History::pushState):
(WebCore::History::replaceState):

  • page/History.idl:
6:26 PM Changeset in webkit [229391] by keith_miller@apple.com
  • 48 edits
    1 add in trunk/Source

Meta-program setupArguments and callOperation
https://bugs.webkit.org/show_bug.cgi?id=183263

Rubber-stamped by Filip Pizlo.

Source/JavaScriptCore:

This patch removes all the custom overrides of callOperation and setupArguments
throughout the JITs. In their place there is a new setupArguments that marshalls
the arguments into place based on the type of the operation's function pointer.
There were a couple of design choices in the implementation of setupArguments:

1) We assume that no TrustedImm floating point values are passed.
2) If ExecState* is the first argument the callFrameRegister should be marshalled implicitly.
3) Types should not be implicitly converted (with the exception of DFG::RegisteredStructure -> Structure*)

The new callOperation/setupArguments do their best to make sure
it's hard to call a function with the wrong parameters. They will
only try to pattern match if the types match up with the next
passed argument. Additionally, the base case should static_assert
of the number of inferred arguments does not match the arity of
the operation's function pointer.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):
(JSC::AbstractMacroAssembler::TrustedImmPtr::asPtr):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::poke):
(JSC::MacroAssembler::move):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::swap):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::storeDouble):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::loadDouble):
(JSC::MacroAssemblerX86Common::swap):
(JSC::MacroAssemblerX86Common::move):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/AccessCaseSnippetParams.cpp:

(JSC::SlowPathCallGeneratorWithArguments::generateImpl):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::emitExplicitExceptionHandler):

  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
  • dfg/DFGNode.h:
  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::emitRestoreArguments):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::osrWriteBarrier):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSlowPathGenerator.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithDoubleUnaryOp):
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::SpeculativeJIT::compileArithRounding):
(JSC::DFG::SpeculativeJIT::compileArithSqrt):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::TrustedImmPtr::TrustedImmPtr):
(JSC::DFG::SpeculativeJIT::TrustedImmPtr::operator MacroAssembler::TrustedImm const):
(JSC::DFG::SpeculativeJIT::initConstantInfo):
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::callOperationWithCallFrameRollbackOnException):
(JSC::DFG::SpeculativeJIT::callCustomGetter): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::ensureShadowChickenPacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgument):
(JSC::CCallHelpers::setupStubArgs):
(JSC::CCallHelpers::ArgCollection::ArgCollection):
(JSC::CCallHelpers::ArgCollection::pushRegArg):
(JSC::CCallHelpers::ArgCollection::addGPRArg):
(JSC::CCallHelpers::ArgCollection::addStackArg):
(JSC::CCallHelpers::ArgCollection::addPoke):
(JSC::CCallHelpers::ArgCollection::argCount):
(JSC::CCallHelpers::clampArrayToSize):
(JSC::CCallHelpers::pokeForArgument):
(JSC::CCallHelpers::marshallArgumentRegister):
(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::std::is_integral<CURRENT_ARGUMENT_TYPE>::value):
(JSC::CCallHelpers::std::is_pointer<CURRENT_ARGUMENT_TYPE>::value):
(JSC::CCallHelpers::setupArguments):
(JSC::CCallHelpers::prepareForTailCallSlow):
(JSC::CCallHelpers::setupArgumentsWithExecState): Deleted.
(JSC::CCallHelpers::resetCallArguments): Deleted.
(JSC::CCallHelpers::addCallArgument): Deleted.
(JSC::CCallHelpers::setupArgumentsExecState): Deleted.
(JSC::CCallHelpers::setupTwoStubArgsGPR): Deleted.
(JSC::CCallHelpers::setupThreeStubArgsGPR): Deleted.
(JSC::CCallHelpers::setupFourStubArgsGPR): Deleted.
(JSC::CCallHelpers::setupFiveStubArgsGPR): Deleted.
(JSC::CCallHelpers::setupTwoStubArgsFPR): Deleted.
(JSC::CCallHelpers::setupStubArguments): Deleted.
(JSC::CCallHelpers::setupArgumentsWithExecStateForCallWithSlowPathReturnType): Deleted.
(JSC::CCallHelpers::setupStubArguments134): Deleted.
(JSC::CCallHelpers::setupStubArgsGPR): Deleted.

  • jit/FPRInfo.h:

(JSC::toInfoFromReg):

  • jit/GPRInfo.h:

(JSC::JSValueRegs::JSValueRegs):
(JSC::toInfoFromReg):

  • jit/JIT.h:

(JSC::JIT::callOperation):
(JSC::JIT::callOperationWithProfile):
(JSC::JIT::callOperationWithResult):
(JSC::JIT::callOperationNoExceptionCheck):
(JSC::JIT::callOperationWithCallFrameRollbackOnException):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_compareAndJumpSlow):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileSetupVarargsFrame):

  • jit/JITInlines.h:

(JSC::JIT::callOperation): Deleted.
(JSC::JIT::callOperationNoExceptionCheck): Deleted.
(JSC::JIT::callOperationWithCallFrameRollbackOnException): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_new_array_with_size):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emit_op_set_function_name):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_switch_char):
(JSC::JIT::emit_op_switch_string):
(JSC::JIT::emitSlow_op_has_indexed_property):

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

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_from_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_by_index):
(JSC::JIT::emit_op_put_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emit_op_put_getter_by_val):
(JSC::JIT::emit_op_put_setter_by_val):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emitSlow_op_get_from_scope):

  • jit/RegisterSet.h:

(JSC::RegisterSet::RegisterSet):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::slowPathFor):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionBreakpoint):

  • runtime/JSCJSValue.h:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

Source/WTF:

Add a new function traits struct that provides interesting
information about the provided function pointer. Right now it only
provides information for function pointers, in theory we could
also get it to work for other types.

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

(WTF::WordType>::Bitmap):

  • wtf/CMakeLists.txt:
  • wtf/FunctionTraits.h: Added.

(WTF::slotsForCCallArgument):
(WTF::computeCCallSlots):
(WTF::FunctionTraits<Result):

6:06 PM Changeset in webkit [229390] by youenn@apple.com
  • 29 edits in trunk

Match unsupported plugins based on domains and not origin
https://bugs.webkit.org/show_bug.cgi?id=183384

Reviewed by Chris Dumez.

Source/WebCore:

Move from an origin-keyed map to a vector of plugins.
We iterate through the vector and a match happens if the page host name ends with the provided matching domain.
This allows supporting rules for *.mydomain.com by passing 'mydomain.com'.
Covered by existing tests.
We are not testing subdomains like www.localhost since there is no support in our CI but this is tested through Unit tests.

  • loader/EmptyClients.cpp:
  • platform/URL.cpp:

(WebCore::URL::isMatchingDomain const):

  • platform/URL.h:
  • plugins/PluginData.h:

(WebCore::isSupportedPlugin):
(WebCore::SupportedPluginName::decode):
(WebCore::SupportedPluginName::encode const):

  • plugins/PluginInfoProvider.h:

Source/WebKit:

Moved from a HashMap of plugins to a Vector of plugins since we cannot match exactly based on the origin.

  • Scripts/webkit/messages.py:
  • UIProcess/API/C/WKContext.cpp:

(WKContextAddSupportedPlugin):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _addSupportedPlugin:named:withMimeTypes:withExtensions:]):

  • UIProcess/Plugins/PluginInfoStore.cpp:

(WebKit::PluginInfoStore::isSupportedPlugin):
(WebKit::PluginInfoStore::supportedPluginNames):
(WebKit::PluginInfoStore::addSupportedPlugin):

  • UIProcess/Plugins/PluginInfoStore.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::addSupportedPlugin):

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

(WebKit::WebProcessProxy::getPlugins):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):

  • WebProcess/Plugins/WebPluginInfoProvider.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPluginInfoProvider.h:
  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

Tools:

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPluginSupportedMode): Update to whitelist
localhost and not http://localhost:8080

5:33 PM Changeset in webkit [229389] by youenn@apple.com
  • 1 edit
    102 deletes in trunk/Source/ThirdParty/libwebrtc

Update to libwebrtc revision 4e70a72571dd26b85c2385e9c618e343428df5d3
https://bugs.webkit.org/show_bug.cgi?id=180843

Unreviewed.
Removed empty unused files.

5:26 PM Changeset in webkit [229388] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.8

Tag Safari-606.1.8.

5:15 PM Changeset in webkit [229387] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WTF

Shuffle around some feature flags for minimal simulator mode
https://bugs.webkit.org/show_bug.cgi?id=183419
<rdar://problem/37694987>

Reviewed by Beth Dakin.

  • wtf/FeatureDefines.h:
  • wtf/Platform.h:
4:39 PM Changeset in webkit [229386] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (r229093): Media playback on Facebook and Hulu require mDNSResponder access
https://bugs.webkit.org/show_bug.cgi?id=183421
<rdar://problem/38191574>

Reviewed by Dean Jackson.

CoreMedia fails to properly play back media on Facebook and Hulu if access to the
mDNSResponder is blocked by the sandbox. This Bug unblocks that access while we
investigate the underlying issue.

  • WebProcess/com.apple.WebProcess.sb.in:
4:32 PM Changeset in webkit [229385] by youenn@apple.com
  • 1 edit
    375 deletes in trunk/Source/ThirdParty/libwebrtc

Update to libwebrtc revision 4e70a72571dd26b85c2385e9c618e343428df5d3
https://bugs.webkit.org/show_bug.cgi?id=180843

Unreviewed.
Removed folder as it is now unused and is confusing mac internal bots.

  • Source/webrtc/base: Removed.
4:24 PM Changeset in webkit [229384] by dino@apple.com
  • 2 edits in trunk/Source/WebKit/UIProcess

Better build fix for watchOS and tvOS.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/SystemPreviewController.cpp:
4:23 PM Changeset in webkit [229383] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Update TestExpectations for media/modern-media-controls/fullscreen-support/fullscreen-support-press.html.
https://bugs.webkit.org/show_bug.cgi?id=173946

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
4:18 PM Changeset in webkit [229382] by dino@apple.com
  • 3 edits in trunk/Source/WebKit

Try to fix build for watchOS and tvOS.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/SystemPreviewController.cpp:
4:16 PM Changeset in webkit [229381] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Allow apple_additions() to define additional ports
https://bugs.webkit.org/show_bug.cgi?id=183412
<rdar://problem/38232353>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/factory.py:

(PortFactory.get): Allow apple_additions to define port classes to be used
in run-webkit-tests.

4:13 PM Changeset in webkit [229380] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Remove obsolete function from MockAppleAdditions
https://bugs.webkit.org/show_bug.cgi?id=183415
<rdar://problem/38236407>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/port_testcase.py:

(bind_mock_apple_additions.MockAppleAdditions):
(bind_mock_apple_additions.MockAppleAdditions.ios_os_name): Deleted.
(bind_mock_apple_additions.MockAppleAdditions.mac_os_name): Deleted.

4:07 PM Changeset in webkit [229379] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: --dedicated-simulators does not boot the correct number of simulators
https://bugs.webkit.org/show_bug.cgi?id=183409
<rdar://problem/38224631>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort.default_child_processes): When not using dedicated simulators,
we should use the number of booted simulators as our default child processes.

3:22 PM Changeset in webkit [229378] by youenn@apple.com
  • 4558 edits
    114 copies
    2193 adds
    2 deletes in trunk/Source

fix-180843

3:09 PM Changeset in webkit [229377] by webkit@devinrousso.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas tab: ensure that the Recording TreeOutline has a specified height for virtualization
https://bugs.webkit.org/show_bug.cgi?id=183015

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel):

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas > .content):
(.sidebar > .panel.navigation.canvas > .content > .navigation-bar):
(.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content):
(.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
(.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar): Deleted.
(.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas): Deleted.

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype._detach):

2:37 PM Changeset in webkit [229376] by dino@apple.com
  • 5 edits
    3 adds in trunk/Source/WebKit

Add SystemPreviewController for showing system-level views of special file types
https://bugs.webkit.org/show_bug.cgi?id=183413
<rdar://problem/37800834>

Reviewed by Tim Horton.

Add a new controller class that hangs off WebPageProxy, with the goal
of providing system-level viewing of some some file types. Specifically
those that can't be shown by WebKit.

This is the initial implementation which is quite simple. The controller
can be queried about whether it supports a MIME type, then it can be
asked to show a URL.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Added.

(-[_WKPreviewControllerDataSource initWithURL:]):
(-[_WKPreviewControllerDataSource numberOfPreviewItemsInPreviewController:]):
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(WebKit::SystemPreviewController::canPreview const):
(WebKit::SystemPreviewController::showPreview):

  • UIProcess/SystemPreviewController.cpp: Added.

(WebKit::SystemPreviewController::SystemPreviewController):
(WebKit::SystemPreviewController::canPreview const):
(WebKit::SystemPreviewController::showPreview):

  • UIProcess/SystemPreviewController.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_configurationPreferenceValues):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::systemPreviewController):

  • WebKit.xcodeproj/project.pbxproj:
2:09 PM Changeset in webkit [229375] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

replaceState cause back/forward malfunction on html page with <base href="/"> tag
https://bugs.webkit.org/show_bug.cgi?id=182678
<rdar://problem/37517821>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-03-07
Reviewed by Chris Dumez.

Source/WebCore:

replaceState should not change URL when the URL argument is NULL, but should change URL when the URL argument is an empty string.

Test: http/tests/history/replacestate-no-url.html

  • page/History.cpp:

(WebCore::History::urlForState):

LayoutTests:

  • http/tests/history/replacestate-no-url-expected.txt: Added.
  • http/tests/history/replacestate-no-url.html: Added.

Add layout test coverage.

  • fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange-expected.txt:

Rebaseline a layout test as empty string for URL is handled differently.

2:00 PM Changeset in webkit [229374] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 51

Added a tag for Safari Technology Preview release 51.

1:10 PM Changeset in webkit [229373] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Rename ProtoCallFrame::arityMissMatch to hasArityMismatch.
https://bugs.webkit.org/show_bug.cgi?id=183414
<rdar://problem/38231678>

Reviewed by Michael Saboff.

  • interpreter/ProtoCallFrame.cpp:

(JSC::ProtoCallFrame::init):

  • interpreter/ProtoCallFrame.h:
12:29 PM Changeset in webkit [229372] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Don't invalidate descendants for sibling combinators unless needed
https://bugs.webkit.org/show_bug.cgi?id=183410
<rdar://problem/38227297>

Reviewed by Zalan Bujtas.

If we know the matched sibling combinator doesn't affect descendants we shouldn't invalidate them.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively const):

Use different bit for the descendant case.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentMatchesTheRightmostElement):

Remove unneeded context assert.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

Use different bit for the descendant case.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorCheckerExcludingPseudoElements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):

  • dom/Element.cpp:

(WebCore::invalidateForSiblingCombinators):

Invalidate the target sibling or all descendants based on the bits.

  • dom/Element.h:

(WebCore::Element::descendantsAffectedByPreviousSibling const):
(WebCore::Element::setDescendantsAffectedByPreviousSibling const):

  • dom/Node.h:
  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

  • style/StyleRelations.h:

Add DescendantsAffectedByPreviousSibling bit. AffectedByPreviousSibling is now just about the target element.

10:53 AM Changeset in webkit [229371] by Chris Dumez
  • 2 edits
    3 adds
    4 deletes in trunk/LayoutTests

http/tests/misc/location-replace-crossdomain.html is failing with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183408

Reviewed by Alex Christensen.

The test was trying to navigate a cross-origin iframe via location.replace() and checking
that the load succeeded in a setTimeout(1). There is no guarantee that the frame has loaded
by that point. We would normally rely on the 'load' event but it is not feasible here since
the iframe is cross-origin. Instead, I opted to have the iframe to a page that posts a
message to its parent window to indicate that the load has succeeded.

  • http/tests/misc/location-replace-crossdomain-async-delegates-expected.txt: Added.
  • http/tests/misc/location-replace-crossdomain-async-delegates.html: Added.
  • http/tests/misc/location-replace-crossdomain-expected.txt: Added.
  • http/tests/misc/location-replace-crossdomain.html:
  • platform/gtk/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.
  • platform/ios/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.
  • platform/mac/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.
  • platform/win/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.
10:41 AM Changeset in webkit [229370] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Fix incorrect test expectations for http/wpt/resource-timing/rt-initiatorType-media.html.

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:38 AM Changeset in webkit [229369] by Chris Dumez
  • 3 edits
    2 adds in trunk/LayoutTests

http/tests/dom/window-open-about-webkit-org-and-access-document.html is failing with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183394

Reviewed by Alex Christensen.

http/tests/dom/window-open-about-webkit-org-and-access-document.html is failing with async policy delegates.
The issue is that the test calls window.open() with a cross-origin URL and then right away tries to access
newWindow.document, expecting it to throw. However, there is no guarantee that the cross origin URL has
started loading at this point. In particular, when the navigation policy decision is made asynchronously,
the URL is initially "about:blank" and it is OK to access the newWindow's document at this point.

We would normally rely on the window's load event before doing the check. However, this would not work
here since the window is cross origin. As a result, I am using a setInterval() in order to wait for the
cross-origin URL to load and for newWindow.document to start throwing.

  • http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates-expected.txt: Added.
  • http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates.html: Added.
  • http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt:
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html:
10:27 AM Changeset in webkit [229368] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

checkForSiblingStyleChanges should use internal versions of the invalidation functions
https://bugs.webkit.org/show_bug.cgi?id=183405
<rdar://problem/38218310>

Reviewed by Zalan Bujtas.

Non-internal invalidateStyleForElement/Subtree() implement sibling combinator invalidation. Checking this
is only needed if the element in question changed somehow. In checkForSiblingStyleChanges we know that
another element changed and we really just want to invalidate.

  • css/SelectorChecker.cpp:

(WebCore::isFirstOfType):
(WebCore::SelectorChecker::checkOne const):

Also make :first-of-type use ChildrenAffectedByForwardPositionalRules for invalidation similar to :last-of-type
for more correct invalidation.

  • dom/Element.cpp:

(WebCore::checkForSiblingStyleChanges):

10:21 AM Changeset in webkit [229367] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Simplify the variants of FunctionPtr constructors.
https://bugs.webkit.org/show_bug.cgi?id=183399
<rdar://problem/38212980>

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerCodeRef.h:

(JSC::FunctionPtr::FunctionPtr):

10:14 AM Changeset in webkit [229366] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

MarkedArgumentsBuffer should allocate from the JSValue Gigacage
https://bugs.webkit.org/show_bug.cgi?id=183377

Reviewed by Michael Saboff.

That prevents it from being used to pivot UAF on malloc memory into corruption in the JS heap.

  • runtime/ArgList.cpp:

(JSC::MarkedArgumentBuffer::expandCapacity):

10:09 AM Changeset in webkit [229365] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Disable test stress/var-injection-cache-invalidation.js on systems with limited memory
https://bugs.webkit.org/show_bug.cgi?id=183334

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-03-07
Reviewed by Žan Doberšek.

  • stress/var-injection-cache-invalidation.js:
10:04 AM Changeset in webkit [229364] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Add support for ARM64E.
https://bugs.webkit.org/show_bug.cgi?id=183398
<rdar://problem/38212621>

Reviewed by Michael Saboff.

  • assembler/MacroAssembler.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/backends.rb:
9:44 AM Changeset in webkit [229363] by Yusuke Suzuki
  • 8 edits in trunk

HTML pattern attribute should set u flag for regular expressions
https://bugs.webkit.org/show_bug.cgi?id=151598

Reviewed by Chris Dumez.

Source/JavaScriptCore:

Add UnicodeMode for JSC::Yarr::RegularExpression.

  • yarr/RegularExpression.cpp:

(JSC::Yarr::RegularExpression::Private::create):
(JSC::Yarr::RegularExpression::Private::Private):
(JSC::Yarr::RegularExpression::Private::compile):
(JSC::Yarr::RegularExpression::RegularExpression):

  • yarr/RegularExpression.h:

Source/WebCore:

This patch attaches "u" flag to the RegExp compiled for HTML "pattern" attribute[1].

[1]: https://html.spec.whatwg.org/multipage/forms.html#the-pattern-attribute

  • html/BaseTextInputType.cpp:

(WebCore::BaseTextInputType::patternMismatch const):

LayoutTests:

  • fast/forms/ValidityState-patternMismatch-expected.txt:
  • fast/forms/ValidityState-patternMismatch.html:
9:18 AM Changeset in webkit [229362] by Yusuke Suzuki
  • 33 edits in trunk/Source/JavaScriptCore

[JSC] Add more JSType based fast path for jsDynamicCast
https://bugs.webkit.org/show_bug.cgi?id=183403

Reviewed by Mark Lam.

We add more JSType based fast path for jsDynamicCast. Basically, we add miscellaneous JSTypes which
are used for jsDynamicCast in JSC, arguments types, and scope types.

We also add ClassInfo to JSScope and JSSegmentedVariableObject since they are used with jsDynamicCast.

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/ClonedArguments.h:

(JSC::ClonedArguments::specialsMaterialized const): Deleted.

  • runtime/DirectArguments.h:

(JSC::DirectArguments::subspaceFor): Deleted.
(JSC::DirectArguments::internalLength const): Deleted.
(JSC::DirectArguments::length const): Deleted.
(JSC::DirectArguments::isMappedArgument const): Deleted.
(JSC::DirectArguments::isMappedArgumentInDFG const): Deleted.
(JSC::DirectArguments::getIndexQuickly const): Deleted.
(JSC::DirectArguments::setIndexQuickly): Deleted.
(JSC::DirectArguments::callee): Deleted.
(JSC::DirectArguments::argument): Deleted.
(JSC::DirectArguments::overrodeThings const): Deleted.
(JSC::DirectArguments::initModifiedArgumentsDescriptorIfNecessary): Deleted.
(JSC::DirectArguments::setModifiedArgumentDescriptor): Deleted.
(JSC::DirectArguments::isModifiedArgumentDescriptor): Deleted.
(JSC::DirectArguments::offsetOfCallee): Deleted.
(JSC::DirectArguments::offsetOfLength): Deleted.
(JSC::DirectArguments::offsetOfMinCapacity): Deleted.
(JSC::DirectArguments::offsetOfMappedArguments): Deleted.
(JSC::DirectArguments::offsetOfModifiedArgumentsDescriptor): Deleted.
(JSC::DirectArguments::storageOffset): Deleted.
(JSC::DirectArguments::offsetOfSlot): Deleted.
(JSC::DirectArguments::allocationSize): Deleted.
(JSC::DirectArguments::storage): Deleted.

  • runtime/JSCast.h:
  • runtime/JSGlobalLexicalEnvironment.h:

(JSC::JSGlobalLexicalEnvironment::create): Deleted.
(JSC::JSGlobalLexicalEnvironment::isEmpty const): Deleted.
(JSC::JSGlobalLexicalEnvironment::createStructure): Deleted.
(JSC::JSGlobalLexicalEnvironment::JSGlobalLexicalEnvironment): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::finishCreation):

  • runtime/JSMap.h:

(JSC::isJSMap): Deleted.

  • runtime/JSModuleEnvironment.h:

(JSC::JSModuleEnvironment::create): Deleted.
(JSC::JSModuleEnvironment::createStructure): Deleted.
(JSC::JSModuleEnvironment::offsetOfModuleRecord): Deleted.
(JSC::JSModuleEnvironment::allocationSize): Deleted.
(JSC::JSModuleEnvironment::moduleRecord): Deleted.
(JSC::JSModuleEnvironment::moduleRecordSlot): Deleted.

  • runtime/JSObject.cpp:

(JSC::canDoFastPutDirectIndex):
(JSC::JSObject::defineOwnIndexedProperty):
(JSC::JSObject::putDirectIndexSlowOrBeyondVectorLength):

  • runtime/JSObject.h:

(JSC::JSFinalObject::allocationSize): Deleted.
(JSC::JSFinalObject::typeInfo): Deleted.
(JSC::JSFinalObject::defaultInlineCapacity): Deleted.
(JSC::JSFinalObject::maxInlineCapacity): Deleted.
(JSC::JSFinalObject::createStructure): Deleted.
(JSC::JSFinalObject::finishCreation): Deleted.
(JSC::JSFinalObject::JSFinalObject): Deleted.
(JSC::isJSFinalObject): Deleted.

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

(JSC::isJSSet): Deleted.

  • runtime/JSType.h:
  • runtime/JSWeakMap.h:

(JSC::isJSWeakMap): Deleted.

  • runtime/JSWeakSet.h:

(JSC::isJSWeakSet): Deleted.

  • runtime/JSWithScope.h:

(JSC::JSWithScope::object): Deleted.

  • runtime/MapConstructor.cpp:

(JSC::constructMap):
(JSC::mapPrivateFuncMapBucketHead):

  • runtime/MapPrototype.cpp:

(JSC::getMap):

  • runtime/NumberObject.cpp:

(JSC::NumberObject::finishCreation):

  • runtime/NumberPrototype.cpp:

(JSC::toThisNumber):
(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):
(JSC::numberProtoFuncToLocaleString):
(JSC::numberProtoFuncValueOf):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::finishCreation):

  • runtime/ScopedArguments.h:

(JSC::ScopedArguments::subspaceFor): Deleted.
(JSC::ScopedArguments::internalLength const): Deleted.
(JSC::ScopedArguments::length const): Deleted.
(JSC::ScopedArguments::isMappedArgument const): Deleted.
(JSC::ScopedArguments::isMappedArgumentInDFG const): Deleted.
(JSC::ScopedArguments::getIndexQuickly const): Deleted.
(JSC::ScopedArguments::setIndexQuickly): Deleted.
(JSC::ScopedArguments::callee): Deleted.
(JSC::ScopedArguments::overrodeThings const): Deleted.
(JSC::ScopedArguments::initModifiedArgumentsDescriptorIfNecessary): Deleted.
(JSC::ScopedArguments::setModifiedArgumentDescriptor): Deleted.
(JSC::ScopedArguments::isModifiedArgumentDescriptor): Deleted.
(JSC::ScopedArguments::offsetOfOverrodeThings): Deleted.
(JSC::ScopedArguments::offsetOfTotalLength): Deleted.
(JSC::ScopedArguments::offsetOfTable): Deleted.
(JSC::ScopedArguments::offsetOfScope): Deleted.
(JSC::ScopedArguments::overflowStorageOffset): Deleted.
(JSC::ScopedArguments::allocationSize): Deleted.
(JSC::ScopedArguments::overflowStorage const): Deleted.

  • runtime/SetConstructor.cpp:

(JSC::constructSet):
(JSC::setPrivateFuncSetBucketHead):

  • runtime/SetPrototype.cpp:

(JSC::getSet):

  • runtime/StrictEvalActivation.h:

(JSC::StrictEvalActivation::create): Deleted.
(JSC::StrictEvalActivation::createStructure): Deleted.

  • runtime/WeakMapPrototype.cpp:

(JSC::getWeakMap):

  • runtime/WeakSetPrototype.cpp:

(JSC::getWeakSet):

9:11 AM Changeset in webkit [229361] by fred.wang@free.fr
  • 6 edits
    2 adds in trunk

Relayout frames after AsyncFrameScrolling or FrameFlattening option is changed
https://bugs.webkit.org/show_bug.cgi?id=183081

Patch by Frederic Wang <fwang@igalia.com> on 2018-03-07
Reviewed by Antonio Gomes.

Source/WebCore:

The frames may be resized when the FrameFlattening option is modified and hence this patch
forces a relayout. It also does that when AsyncFrameScrolling is modified too, since that
may imply changes in frame flattening after bug 173704. Forcing a relayout will also be
enough to trigger other updates for async frame scrolling in the future (see bug 149264 and
bug 171667).

Test: platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic.html

  • page/Settings.yaml: Call setNeedsRelayoutAllFrames when one of the AsyncFrameScrolling or

FrameFlattening options is changed.

  • page/SettingsBase.cpp: Include RenderWidget to make call on frame->ownerRenderer().

(WebCore::SettingsBase::setNeedsRelayoutAllFrames): Make layout and preferred widths dirty
on all frames in the page and schedule a relayout.

  • page/SettingsBase.h: Declare setNeedsRelayoutAllFrames().

LayoutTests:

Add a test to check whether an iframe changes its flattening status after one of the option
AsyncFrameScrolling/FrameFlattening is enabled/disabled.

  • platform/ios-simulator/TestExpectations: Remove failure for scrolling-in-object.html.
  • platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic-expected.txt: Added.
  • platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic.html: Added.
8:19 AM Changeset in webkit [229360] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/wpt/resource-timing/rt-initiatorType-media.html as a flaky crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179297

Unreviewed test gardening.

  • platform/win/TestExpectations:
7:21 AM Changeset in webkit [229359] by commit-queue@webkit.org
  • 18 edits
    6 copies
    3 moves
    1 add in trunk

Make NetworkRTCResolver port agnostic
https://bugs.webkit.org/show_bug.cgi?id=178855

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-03-07
Reviewed by Youenn Fablet.

Source/WebCore:

Add new API in the DNSResolveQueue allowing to revolve hostnames and get the result. Add platform
specific code for soup platform and refactor the other platforms. Added new API to the DNS API header
and move the general code to the DNS.cpp file, that way we can reuse that code in all the platforms
and leave the ResolveQueue class of the platforms in a file.

No new tests because this is a refactor.

  • PlatformAppleWin.cmake: Move the DNSCFNet class to DNSResolveQueueCFNet.
  • PlatformMac.cmake: Ditto.
  • Sources.txt: Add the DNS.cpp for compilation.
  • SourcesCocoa.txt: Move the DNSCFNet class to DNSResolveQueueCFNet.
  • WebCore.xcodeproj/project.pbxproj: Move the DNSCFNet class to DNSResolveQueueCFNet, add the DNS.cpp

for compilation. Add the new DNSResolveQueueCFNet class.

  • platform/Curl.cmake: Move the DNSCFNet class to DNSResolveQueueCurl.
  • platform/network/DNS.cpp: Add this file with the default implementation of the DNS functions for

all the platforms.
(WebCore::prefetchDNS): Copied from every platform implementation.
(WebCore::resolveDNS): Add the function, resolves a hostname, receives the identifier of the operation
and the completion handler.
(WebCore::stopResolveDNS): Add the function, stops a resolution operation, receives the identifier
of the operation.

  • platform/network/DNS.h: Add the new APIs resolveDNS and stopResolveDNS with the classes used for the

implementation.
(WebCore::IPAddress::IPAddress): Add this class used to send the resolved address information, it does
not depend on libwebrtc rtc classes.
(WebCore::IPAddress::get): Get a reference to the struct sockaddr_in in the IPAddress class.
(WebCore::DNSCompletionHandler): Add this CompletionHandler type to be used when resolving the DNS
address.

  • platform/network/DNSResolveQueue.cpp: Add the DNSResolveQueue platform instantiation in the singleton.

(WebCore::DNSResolveQueue::singleton): Use DNSResolveQueue platform classes when creating the singleton..
(WebCore::DNSResolveQueue::resolve): Add this method to get the address of a hostname, it sends the
identifier and the completion handler to use when returning the result.
(WebCore::DNSResolveQueue::stopResolve): Add this method to stop the resolve operation when required.

  • platform/network/DNSResolveQueue.h: Add the new methods and make the class abstract, so that every

platform can implement the functions.

  • platform/network/cf/DNSResolveQueueCFNet.cpp: Renamed from Source/WebCore/platform/network/cf/DNSCFNet.cpp.

Add the methods to the new class DNSResolveQueueCFNet, move the prefetchDNS to the DNS.cpp general
implementation.

  • platform/network/cf/DNSResolveQueueCFNet.h: Add the new class inheriting from the DNSResolveQueue. Add the

new methods, we have to implement these methods and move the NetworkRTCResolver for COCOA code here.
(WebCore::DNSResolveQueueCF::resolve): Dummy method, not implemented.
(WebCore::DNSResolveQueueCF::stopResolve): Ditto.

  • platform/network/curl/DNSResolveQueueCurl.cpp: Renamed from Source/WebCore/platform/network/curl/DNSCurl.cpp.
  • platform/network/curl/DNSResolveQueueCurl.h: Add the new class inheriting from the DNSResolveQueue.

(WebCore::DNSResolveQueueCurl::resolve): Ditto.
(WebCore::DNSResolveQueueCurl::stopResolve): Ditto.

  • platform/network/soup/DNSResolveQueueSoup.h: New class inheriting from the DNSResolveQueue class, adding

a HasMap with the active operations, it allows stopping them.

  • platform/network/soup/DNSResolveQueueSoup.cpp: Renamed from Source/WebCore/platform/network/curl/DNSSoup.cpp.

(WebCore::resolvedWithObserverCallback): Called when the result address from the soup platform is ready,
sends the address to the completion handler.
(WebCore::DNSResolveQueueSoup::resolve): Launch the resolve operation with the soup library.
(WebCore::DNSResolveQueueSoup::stopResolve): Stop the resolve operation on process with a GCancellable.

Source/WebKit:

Create a specific Cocoa class to isolate the generic code in the base class, make the base implementation port
agnostic and dependent on DNS API in the platform directory which encapsulates the platform specific details.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: Create an alias class name defined per platform to instantiate the resolver.

(WebKit::NetworkRTCProvider::createResolver): Used the alias class name and receive a new IPAddress class that is not
dependent on rtc libwebrtc library.

  • NetworkProcess/webrtc/NetworkRTCResolver.cpp: Remove the platform specific code. Use the DNS API to implement the

platform specific code in the default start and stop methods. Add the identifier of the resolve operation to the class.
(WebKit::NetworkRTCResolver::NetworkRTCResolver): Add the identifier in the initialization.
(WebKit::NetworkRTCResolver::~NetworkRTCResolver): Remove the platform specific code.
(WebKit::NetworkRTCResolver::completed): Ditto.
(WebKit::NetworkRTCResolver::start): Add a new implementation using the DNS API.
(WebKit::NetworkRTCResolver::stop): Ditto

  • NetworkProcess/webrtc/NetworkRTCResolver.h: Remove the platform specific code and use the DNSResolveQueue for a general

solution to implement the platform specific code. Avoid using the IPAddress class that depends on libwertc classes to make
it more general regarding DNS name resolution.
(WebKit::NetworkRTCResolver::start): Make this class virtual.
(WebKit::NetworkRTCResolver::stop): Ditto.

  • NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp: Copied Cocoa code from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.cpp.

Now this class overrides the start and stop methods that use DNS, cocoa implementation should use the DNS methods in the future and
remove this class, making sure all the platform specific class is in the platform directory.

  • NetworkProcess/webrtc/NetworkRTCResolverCocoa.h: Copied Cocoa code from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h.
  • PlatformGTK.cmake: Add NetworkRTCResolver compilation for GTK.
  • WebKit.xcodeproj/project.pbxproj: Add the NetworkRTCResolverCocoa class to the compilation.

Tools:

Added new unit tests for he resolve and stopResolve functions. We need to compile them for the
other platforms when the APIs are supported.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebCore/DNS.cpp:
3:59 AM Changeset in webkit [229358] by Ms2ger@igalia.com
  • 6 edits
    6 adds in trunk

[WPE] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=183402

Unreviewed test gardening.

WebDriverTests:

LayoutTests:

  • platform/gtk/TestExpectations: skip some more appcache-sw tests.
  • platform/wpe/TestExpectations:
    • Mark http/tests/appcache/different-https-origin-resource-main.html as passing after r228892.
    • Mark fast/canvas/canvas-createPattern-video-modify.html as passing after r228221.
    • Mark storage/indexeddb/modern/index-3-private.html as passing since r228560.
    • Skip some more appcache - service worker tests.
    • Mark some svg/animations tests as flaky (as they already are on GTK).
    • Mark imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html as passing after r228983.
    • Mark http/tests/appcache/fail-on-update-2.html as flaky.
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added baseline.
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added baseline.
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added baseline.
  • platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt: rebaseline.
3:32 AM Changeset in webkit [229357] by Ms2ger@igalia.com
  • 2 edits in trunk/WebDriverTests

Mark get_element_property.py::test_element as passing.
https://bugs.webkit.org/show_bug.cgi?id=180414

Unreviewed test gardening.

It has been passing since the test was updated to expect the correct value
in r229166.

3:21 AM WebKitGTK/Gardening/Calendar edited by Ms2ger@igalia.com
(diff)
1:38 AM Changeset in webkit [229356] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] offlineasm: fix indentation in armOpcodeReversedOperands
https://bugs.webkit.org/show_bug.cgi?id=183400

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-03-07
Reviewed by Mark Lam.

  • offlineasm/arm.rb:
1:17 AM Changeset in webkit [229355] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] fast/animation/request-animation-frame-during-modal.html sometimes crashing

Unreviewed gardening

  • platform/gtk/TestExpectations:

Mar 6, 2018:

10:44 PM Changeset in webkit [229354] by mark.lam@apple.com
  • 20 edits
    1 add in trunk/Source

Prepare LLInt code to support pointer profiling.
https://bugs.webkit.org/show_bug.cgi?id=183387
<rdar://problem/38199678>

Reviewed by JF Bastien.

Source/JavaScriptCore:

  1. Introduced PtrTag enums for supporting pointer profiling later.
  1. Also introduced tagging, untagging, retagging, and tag removal placeholder template functions for the same purpose.
  1. Prepare the offlineasm for supporting pointer profiling later.
  1. Tagged some pointers in LLInt asm code. Currently, these should have no effect on behavior.
  1. Removed returnToThrowForThrownException() because it is not used anywhere.
  1. Added the offlineasm folder to JavaScriptCore Xcode project so that it's easier to view and edit these files in Xcode.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/LLIntCallLinkInfo.h:

(JSC::LLIntCallLinkInfo::unlink):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:
  • llint/LLIntExceptions.cpp:

(JSC::LLInt::returnToThrowForThrownException): Deleted.

  • llint/LLIntExceptions.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntPCRanges.h:

(JSC::LLInt::isLLIntPC):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/ast.rb:
  • offlineasm/instructions.rb:
  • offlineasm/risc.rb:
  • runtime/PtrTag.h: Added.

(JSC::uniquePtrTagID):
(JSC::ptrTag):
(JSC::tagCodePtr):
(JSC::untagCodePtr):
(JSC::retagCodePtr):
(JSC::removeCodePtrTag):

Source/WTF:

  • wtf/Platform.h:
9:17 PM Changeset in webkit [229353] by BJ Burg
  • 2 edits in trunk/Source/WebCore

[Cocoa] Stop copying ForwardingHeaders directory that no longer exists
https://bugs.webkit.org/show_bug.cgi?id=183396

Reviewed by Dan Bernstein.

  • WebCore.xcodeproj/project.pbxproj:

Rename the phase to "Copy ICU Headers". ForwardingHeaders are no longer a thing.

7:06 PM Changeset in webkit [229352] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html and related tests on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183393

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:08 PM Changeset in webkit [229351] by Ross Kirsling
  • 1 edit
    5861 adds in trunk/LayoutTests

[WinCairo] Unreviewed. Add platform-specific expectations.

Individual filenames are omitted for brevity.

  • platform/wincairo/accessibility/: Added.
  • platform/wincairo/animations/: Added.
  • platform/wincairo/css1/: Added.
  • platform/wincairo/css2.1/: Added.
  • platform/wincairo/css3/: Added.
  • platform/wincairo/editing/: Added.
  • platform/wincairo/fast/: Added.
  • platform/wincairo/fonts/: Added.
  • platform/wincairo/ietestcenter/: Added.
  • platform/wincairo/js/: Added.
  • platform/wincairo/mathml/: Added.
  • platform/wincairo/media/: Added.
  • platform/wincairo/plugins/: Added.
  • platform/wincairo/printing/: Added.
  • platform/wincairo/scrollbars/: Added.
  • platform/wincairo/svg/: Added.
  • platform/wincairo/tables/: Added.
  • platform/wincairo/transforms/: Added.
  • platform/wincairo/transitions/: Added.
6:05 PM Changeset in webkit [229350] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

5:15 PM Changeset in webkit [229349] by commit-queue@webkit.org
  • 10 edits
    3 adds in trunk

didReceiveServerRedirectForProvisionalNavigation is not called in case of document redirection with service worker registration change
https://bugs.webkit.org/show_bug.cgi?id=183299
<rdar://problem/37547029>

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-06
Reviewed by Alex Christensen.

Source/WebCore:

In case of redirection with service worker registration change, we cancel the load and create a new one.
This prevent ResourceLoader::willSendRequestInternal to call the didReceiveServerRedirectForProvisionalNavigation
callback. We thus explictly call this callback after restarting the load with the new service worker step.
We only call this callback if the main resource is there as we do not want to call it if it was blocked by content extension.

Test: http/wpt/service-workers/navigation-redirect-main-frame.https.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::restartLoadingDueToServiceWorkerRegistrationChange):

Tools:

Add support for checking whether this callback is called.
Used in the added layout test.

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

(WTR::TestRunner::didReceiveServerRedirectForProvisionalNavigation const):
(WTR::TestRunner::clearDidReceiveServerRedirectForProvisionalNavigation):

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

(WTR::TestController::createOtherPage):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::didReceiveServerRedirectForProvisionalNavigation):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::didReceiveServerRedirectForProvisionalNavigation const):
(WTR::TestController::clearDidReceiveServerRedirectForProvisionalNavigation):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/wpt/service-workers/navigation-redirect-main-frame-worker.js: Added.
  • http/wpt/service-workers/navigation-redirect-main-frame.https-expected.txt: Added.
  • http/wpt/service-workers/navigation-redirect-main-frame.https.html: Added.
5:02 PM Changeset in webkit [229348] by Chris Dumez
  • 2 edits in trunk/LayoutTests

http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=183390

Unreviewed, temporarily mark the test as flaky while I investigate.

  • platform/mac-wk1/TestExpectations:
4:32 PM Changeset in webkit [229347] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[Curl] Remove unnecessary copied ResourceRequest member variable.
https://bugs.webkit.org/show_bug.cgi?id=183010

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-03-06
Reviewed by Youenn Fablet.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

  • platform/network/curl/CurlRequest.h:

(WebCore::CurlRequest::resourceRequest const):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::addCacheValidationHeaders):
(WebCore::ResourceHandle::createCurlRequest):
(WebCore::ResourceHandle::restartRequestWithCredential):
(WebCore::ResourceHandle::continueAfterWillSendRequest):

3:26 PM Changeset in webkit [229346] by pvollan@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

Unreviewed, fixed incorrect name of test expectation file.

  • platform/win/fast/text/combining-enclosing-keycap-expected.txt: Copied from LayoutTests/platform/win/fast/text/combining-enclosing-keycap.txt.
  • platform/win/fast/text/combining-enclosing-keycap.txt: Removed.
3:19 PM Changeset in webkit [229345] by Kocsen Chung
  • 3 edits in tags/Safari-606.1.7/Source/WebKit

Revert r229093. rdar://problem/38197270

2:49 PM Changeset in webkit [229344] by n_wang@apple.com
  • 5 edits in trunk

AX: Flaky test after r229310
https://bugs.webkit.org/show_bug.cgi?id=183376
<rdar://problem/38188685>

Reviewed by Chris Fleizach.

Source/WebCore:

The test that forces the context menu to show sometimes locks up
the test runner. Also, we missed a case where calling AXShowMenu
action on a combobox is not dispatching the accessibility event.

Using the combobox example to test the event dispatching in order to
avoid the test hang.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

LayoutTests:

  • accessibility/mac/AOM-events-all-expected.txt:
  • accessibility/mac/AOM-events-all.html:
2:49 PM Changeset in webkit [229343] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

NetworkDataTask should enable logging for automation clients
https://bugs.webkit.org/show_bug.cgi?id=183378
<rdar://problem/38189556>

Reviewed by Brian Burg.

The NetworkDataTaskCocoa class was only logging if the SessionID object allowed logging.
It should also be considering whether the current session is working on behalf of an
automation client. If so, it should allow logging.

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

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::isAlwaysOnLoggingAllowed const):

2:41 PM Changeset in webkit [229342] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • UIProcess/ios/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _EVOrganizationName]):

2:01 PM Changeset in webkit [229341] by Chris Dumez
  • 20 edits
    2 copies
    4 adds in trunk

fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183345

Reviewed by Alex Christensen.

Source/WebCore:

FrameLoader::loadURL() was calling loadWithNavigationAction() and then resetting the
m_quickRedirectComing flag right after. This works if the navigation policy decision
triggered by loadWithNavigationAction() is made synchronously. However, when it is
made asynchronously, the flag gets reset too early, before the policy decision
handler has been called. This is an issue because the policy decision handler
relies on the m_quickRedirectComing flag.

Similarly, FrameLoader::loadFrameRequest() was calling loadPostRequest() / loadURL()
and then focusing a frame right after. This does not work as intended when the navigation
policy decision is made asynchronously.

To address the issue, we now pass a completion handler that gets called when the operation
has actually completion, after the policy decision has been made. This maintains the
behavior in place with synchronous policy delegates.

Test: fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

Tools:

Add layout test infrastructure so a test can know when didCancelClientRedirectForFrame has
been called. The tests used to rely on a 0-timer but this does not work when the client
responds to the navigation policy asynchronously.

  • DumpRenderTree/TestRunner.cpp:

(getDidCancelClientRedirect):
(TestRunner::staticValues):

  • DumpRenderTree/TestRunner.h:

(TestRunner::didCancelClientRedirect const):
(TestRunner::setDidCancelClientRedirect):

  • DumpRenderTree/mac/FrameLoadDelegate.mm:

(-[FrameLoadDelegate webView:didCancelClientRedirectForFrame:]):

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

(WTR::InjectedBundlePage::didCancelClientRedirectForFrame):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::didCancelClientRedirect const):
(WTR::TestRunner::setDidCancelClientRedirect):

LayoutTests:

  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates-expected.txt: Added.
  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates.html: Added.

Add layout test coverage.

  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html:
  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt:
  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html:
  • fast/loader/window-open-to-invalid-url-disallowed-expected.txt:
  • fast/loader/window-open-to-invalid-url-disallowed.html:
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates-expected.txt: Added.
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt:
  • platform/mac-wk1/fast/loader/window-open-to-invalid-url-disallowed-expected.txt:

Update tests that were relying on a 0-timer to make sure that didCancelClientRedirectForFrame was
called to rely on our new test infrastructure instead. This is needed so that these tests keep passing
once we make policy delegates asynchronous by default. Without this, the didCancelClientRedirectForFrame lines
would be missing in the tests' output.

1:27 PM Changeset in webkit [229340] by commit-queue@webkit.org
  • 9 edits
    3 adds in trunk/Source/WebCore

[Web Animations] Add a new CSSTransition subclass of WebAnimation
https://bugs.webkit.org/show_bug.cgi?id=183373
<rdar://problem/38181985>

Patch by Antoine Quint <Antoine Quint> on 2018-03-06
Reviewed by Dean Jackson.

Adding a new CSSAnimation subclass which we will create in a later patch while resolving styles
upon identifying that a new CSS Animation has been added to an element.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSTransition.cpp: Added.

(WebCore::CSSTransition::create):
(WebCore::CSSTransition::CSSTransition):

  • animation/CSSTransition.h: Added.
  • animation/CSSTransition.idl: Added.
  • animation/KeyframeEffect.cpp:
  • animation/WebAnimation.h:

(WebCore::WebAnimation::isCSSTransition const):

  • bindings/js/JSWebAnimationCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/WebCoreBuiltinNames.h:
1:00 PM Changeset in webkit [229339] by Kocsen Chung
  • 7 edits in branches/safari-605.1.33.2-branch/Source

Versioning.

12:53 PM Changeset in webkit [229338] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

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

Broke some Apple internal code (Requested by ap on #webkit).

Reverted changeset:

"Remove unused crash hook functionality"
https://bugs.webkit.org/show_bug.cgi?id=183369
https://trac.webkit.org/changeset/229330

12:47 PM Changeset in webkit [229337] by Kocsen Chung
  • 1 copy in branches/safari-605.1.33.2-branch

New branch.

12:20 PM Changeset in webkit [229336] by Megan Gardner
  • 4 edits
    2 adds in trunk/Source/WebCore

Ensure system appearance is default for web content
https://bugs.webkit.org/show_bug.cgi?id=183354
<rdar://problem/36975571>
<rdar://problem/38162381>

Make sure the the system appearance for web content is default, and
consolidate that code to a single class.

Reviewed by Tim Horton.

Not currently testable, will add tests in a future patch.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/LocalDefaultSystemAppearance.h: Added.
  • platform/mac/LocalDefaultSystemAppearance.mm: Added.

(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
(WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):

  • platform/mac/ThemeMac.mm:

(-[WebCoreThemeView init]):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):

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

Service worker test gardening
https://bugs.webkit.org/show_bug.cgi?id=183264
<rdar://problem/38048743>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-06

11:50 AM Changeset in webkit [229334] by commit-queue@webkit.org
  • 10 edits in trunk/Source

[Web Animations] Add a new runtime flag to control whether CSS Animations and CSS Transitions should run using the Web Animations timeline
https://bugs.webkit.org/show_bug.cgi?id=183370
<rdar://problem/38180729>

Patch by Antoine Quint <Antoine Quint> on 2018-03-06
Reviewed by Dean Jackson.

Before we start creating WebAnimation objects to perform CSS Animations and CSS Transitions, which will replace the existing codepath
involving CSSAnimationController and CompositeAnimation, we need a runtime flag that will allow all the new code to be turned off by
default while we bring this feature up.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):
(WebCore::RuntimeEnabledFeatures::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled const):

Source/WebKit:

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

(WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):
(WKPreferencesGetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]):
(-[WKPreferences _cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):

  • WebProcess/InjectedBundle/InjectedBundle.h:
11:46 AM Changeset in webkit [229333] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Make more use of USE(OPENGL_ES) and replace typedefs with C++11 using statements
in TextureCacheCV.h

Rubber-stamped by Tim Horton.

  • platform/graphics/cv/TextureCacheCV.h:
11:41 AM Changeset in webkit [229332] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Cache hasComplexSelectorsForStyleAttribute bit
https://bugs.webkit.org/show_bug.cgi?id=183363

Reviewed by Andreas Kling.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::collectFeatures const):
(WebCore::DocumentRuleSets::hasComplexSelectorsForStyleAttribute const):

Cache the bit to avoid hash lookups.

  • css/DocumentRuleSets.h:
  • dom/StyledElement.cpp:

(WebCore::StyledElement::invalidateStyleAttribute):
(WebCore::shouldSynchronizeStyleAttributeImmediatelyForInvalidation): Deleted.

Move code to DocumentRuleSets.

11:14 AM Changeset in webkit [229331] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Assembler warnings: "use of r13 is deprecated"
https://bugs.webkit.org/show_bug.cgi?id=183286

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-03-06
Reviewed by Mark Lam.

Usage of sp/r13 as operand Rm is deprecated on ARM. offlineasm
sometimes generates assembly code that triggers this warning. Prevent
this by simply switching operands.

  • offlineasm/arm.rb:
11:10 AM Changeset in webkit [229330] by Michael Catanzaro
  • 3 edits in trunk/Source/WTF

Remove unused crash hook functionality
https://bugs.webkit.org/show_bug.cgi?id=183369

Reviewed by Alexey Proskuryakov.

WTFSetCrashHook and WTFInstallReportBacktraceOnCrashHook are not used on any platforms and
can be removed.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
10:48 AM Changeset in webkit [229329] by Kocsen Chung
  • 2 edits in tags/Safari-606.1.7/Source/JavaScriptCore

Cherry-pick r229293. rdar://problem/38179753

10:35 AM Changeset in webkit [229328] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Change the type of SVGToOTFFontConverter::m_weight to be not a char
https://bugs.webkit.org/show_bug.cgi?id=183339

Reviewed by Alex Christensen.

No new tests because there is no behavior change.

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

10:34 AM Changeset in webkit [229327] by graouts@webkit.org
  • 10 edits
    3 copies in trunk/Source/WebCore

[Web Animations] Add a new CSSAnimation subclass of WebAnimation
https://bugs.webkit.org/show_bug.cgi?id=183371
<rdar://problem/38181724>

Reviewed by Dean Jackson.

Adding a new CSSAnimation subclass which we will create in a later patch while resolving styles
upon identifying that a new CSS Animation has been added to an element.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSAnimation.cpp: Added.

(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):

  • animation/CSSAnimation.h: Added.
  • animation/CSSAnimation.idl: Added.
  • animation/KeyframeEffectReadOnly.cpp
  • animation/WebAnimation.h:

(WebCore::WebAnimation::isCSSAnimation const):

  • animation/WebAnimation.idl:
  • bindings/js/JSWebAnimationCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/WebCoreBuiltinNames.h:
10:02 AM Changeset in webkit [229326] by Claudio Saavedra
  • 1 edit
    1 add in trunk/LayoutTests

[GTK] Add new baseline after r229177

Unreviewed gardening.

This baseline is needed because our mimetype database recognizes
the type of the file in the test and therefore the extension gets
added to the downloaded file.

  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt: Added.
9:38 AM Changeset in webkit [229325] by zandobersek@gmail.com
  • 3 edits in trunk/Tools

REGRESSION(r229309): s_exceptionInstructions allocation change causing crashes in LLInt on WPE
https://bugs.webkit.org/show_bug.cgi?id=183366

Reviewed by Michael Catanzaro.

Have the TestRunnerInjectedBundle CMake library link against libraries
in the WebKitTestRunnerInjectedBundle_LIBRARIES list, and not the
WebKitTestRunner_LIBRARIES list, which is used for the WebKitTestRunner
executable. This allows narrowing down the libraries to only those that
are necessary for the injected bundle shared object.

The GTK+ port already has this list specified, adding one for the WPE
port.

  • WebKitTestRunner/CMakeLists.txt:

Link the TestRunnerInjectedBundle library against the libraries in the
WebKitTestRunnerInjectedBundle_LIBRARIES list.

  • WebKitTestRunner/PlatformWPE.cmake:

Specify the WebKitTestRunnerInjectedBundle_LIBRARIES list, including the
basic system dependencies, WebCoreTestSupport and WebKit. This follows
the GTK+ port.

9:38 AM Changeset in webkit [229324] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix incorrect assertion after r229309
https://bugs.webkit.org/show_bug.cgi?id=182975

  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::TypeProfilerLog):

9:10 AM Changeset in webkit [229323] by Ms2ger@igalia.com
  • 3 edits in trunk/Source/WebCore

Explicitly qualify some method calls on this in lambdas in Service Worker code.
https://bugs.webkit.org/show_bug.cgi?id=183367

Reviewed by Chris Dumez.

No new tests -- no change in behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::matchAll):

8:35 AM Changeset in webkit [229322] by pvollan@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed, add baseline for fast/text/combining-enclosing-keycap.html.

  • platform/win/fast/text/combining-enclosing-keycap.txt: Added.
5:47 AM Changeset in webkit [229321] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] Mark a few Wayland tests as failing

Unreviewed gardening

  • platform/gtk-wayland/TestExpectations:
5:30 AM Changeset in webkit [229320] by Ms2ger@igalia.com
  • 2 edits in trunk/Source/WebKit

[GLib] Implement WebsiteDataStore::defaultServiceWorkerRegistrationDirectory().
https://bugs.webkit.org/show_bug.cgi?id=183364

Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:

(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): implement.

4:17 AM Changeset in webkit [229319] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Addressing further review feedback for patch landed in r229315.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::commitSceneState): There's no need for
explicit calls of the clear() method on both containers in the CommitScope
objects, the destructors invoked for these objects from the CommitScope
destructor will have the same effect.

4:12 AM Changeset in webkit [229318] by zandobersek@gmail.com
  • 20 edits in trunk/Source

[CoordGraphics] Remove unused scrolling-related code in TextureMapperLayer, CoordinatedGraphics stack
https://bugs.webkit.org/show_bug.cgi?id=183340

Reviewed by Michael Catanzaro.

Source/WebCore:

TextureMapperLayer::scrollBy() method is completely unused and can be
removed. This opens the gates on removing majority of scrolling-related
code in TextureMapperLayer, CoordinatedGraphicsLayer and
CoordinatedGraphicsScene classes, along with smaller bits in other
closely-associated classes.

We're able to remove two virtual method overrides in the
ScrollingCoordinatorCoordinatedGraphics class.

TextureMapperLayer can drop the ScrollingClient member variable, along
with multiple others. Various unused methods in that class are removed
as well.

CoordinatedGraphicsLayer and GraphicsLayerTextureMapper can both remove
the custom scrolling state tracking.

No new tests -- no change in behavior.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea): Deleted.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset): Deleted.
(WebCore::GraphicsLayerTextureMapper::setIsScrollable): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::hitTest): Deleted.
(WebCore::TextureMapperLayer::scrollableLayerHitTestCondition): Deleted.
(WebCore::TextureMapperLayer::findScrollableContentsLayerAt): Deleted.
(WebCore::TextureMapperLayer::mapScrollOffset): Deleted.
(WebCore::TextureMapperLayer::commitScrollOffset): Deleted.
(WebCore::TextureMapperLayer::scrollBy): Deleted.
(WebCore::TextureMapperLayer::didCommitScrollOffset): Deleted.

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

(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::resetLayerState):
(WebCore::CoordinatedGraphicsLayer::setScrollableArea): Deleted.
(WebCore::CoordinatedGraphicsLayer::commitScrollOffset): Deleted.

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

Source/WebKit:

With most of the scrolling-related code in TextureMapperLayer on the
chopping block, we can now drop the ScrollingClient inheritance and the
commitScrollOffset() virtual method implementation. This enables
removing the whole commitScrollOffset() call chain that ran from
CoordinatedGraphicsScene through CoordinatedLayerTreeHost and
CompositingCoordinator to the affected CoordinatedGraphicsLayer object.

The CoordinatedGraphicsScene::findScrollableContentsLayerAt() method is
also unused and can be deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):
(WebKit::CoordinatedGraphicsScene::createLayer):
(WebKit::CoordinatedGraphicsScene::commitScrollOffset): Deleted.
(WebKit::CoordinatedGraphicsScene::findScrollableContentsLayerAt): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::commitScrollOffset): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::commitScrollOffset): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::commitScrollOffset): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
3:51 AM Changeset in webkit [229317] by zandobersek@gmail.com
  • 8 edits in trunk/Source

[CoordGraphics] Apply TextureMapperLayer animations with a single MonotonicTime value
https://bugs.webkit.org/show_bug.cgi?id=183360

Reviewed by Sergio Villar Senin.

Source/WebCore:

When animations are being applied on the TextureMapperLayer tree, the
monotonic time value is retrieved repeatedly in TextureMapperAnimation
class. Instead of spawning repeated syscalls that are required to obtain
the time value, TextureMapperLayer::applyAnimationsRecursively() now
accepts a MonotonicTime value that should be used for all animation
updates.

No new tests -- no change in behavior.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/TextureMapperAnimation.cpp:

(WebCore::TextureMapperAnimation::apply):
(WebCore::TextureMapperAnimation::computeTotalRunningTime):
(WebCore::TextureMapperAnimations::apply):

  • platform/graphics/texmap/TextureMapperAnimation.h:

(WebCore::TextureMapperAnimation::keyframes const):
(WebCore::TextureMapperAnimation::animation const):
(WebCore::TextureMapperAnimation::boxSize const): Deleted.
(WebCore::TextureMapperAnimation::listsMatch const): Deleted.
(WebCore::TextureMapperAnimation::startTime const): Deleted.
(WebCore::TextureMapperAnimation::pauseTime const): Deleted.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::applyAnimationsRecursively):
(WebCore::TextureMapperLayer::syncAnimations):

  • platform/graphics/texmap/TextureMapperLayer.h:

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
Pass the monotic time value, as returned by MonotonicTime::now(), to the
TextureMapperLayer::applyAnimationsRecursively() call.

3:35 AM Changeset in webkit [229316] by zandobersek@gmail.com
  • 6 edits in trunk/Source

[CoordGraphics] Clean up CoordinatedImageBacking
https://bugs.webkit.org/show_bug.cgi?id=183332

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Clean up the CoordinatedImageBacking class. Prefer reference values in
class functions, methods and member variables, where possible. Move
member variables into a more sensible order. Initialize a few member
variables at the place of declaration.

Drop releaseSurfaceIfNeeded() and updateVisibilityIfNeeded() methods,
integrating them into the update() method, which was the only place
where they were called from.

We don't have to keep a reference to the buffer object, since we're
not using it internally after it's been passed to the client's
updateImageBacking() implementation.

No new tests -- no change in behavior.

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

(WebCore::CoordinatedGraphicsLayer::syncImageBacking):
(WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded):

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:

(WebCore::CoordinatedImageBacking::getCoordinatedImageBackingID):
(WebCore::CoordinatedImageBacking::CoordinatedImageBacking):
(WebCore::CoordinatedImageBacking::addHost):
(WebCore::CoordinatedImageBacking::removeHost):
(WebCore::CoordinatedImageBacking::update):
(WebCore::CoordinatedImageBacking::clearContentsTimerFired):
(WebCore::CoordinatedImageBacking::create): Deleted.
(WebCore::CoordinatedImageBacking::markDirty): Deleted.
(WebCore::CoordinatedImageBacking::releaseSurfaceIfNeeded): Deleted.
(WebCore::CoordinatedImageBacking::updateVisibilityIfNeeded): Deleted.

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

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::createImageBackingIfNeeded):
Adjust call to CoordinatedImageBacking::getCoordinatedImageBackingID().

3:34 AM Changeset in webkit [229315] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit

CoordinatedGraphicsScene: properly limit data specific to state commit operation
https://bugs.webkit.org/show_bug.cgi?id=183326

Reviewed by Sergio Villar Senin.

In the process of state commit in CoordinatedGraphicsScene, the released
image backings and backing stores with pending updates are stored in
Vector and HashSet objects, respectively. Instead of these two objects
being member variables on the CoordinatedGraphicsScene class, keep them
in the CommitScope structure that's limited to the operations done in
the commitSceneState() method.

The two member variables are dropped, and the CommitScope object is
passed by reference to any helper method that needs to append either
kind of object to the respective container. At the end of the state
commit, backing stores with pending updates have those updates applied,
and the two containers are cleared out as the CommitScope object is
destroyed.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):
(WebKit::CoordinatedGraphicsScene::prepareContentBackingStore):
(WebKit::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
(WebKit::CoordinatedGraphicsScene::removeTilesIfNeeded):
(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebKit::CoordinatedGraphicsScene::syncImageBackings):
(WebKit::CoordinatedGraphicsScene::updateImageBacking):
(WebKit::CoordinatedGraphicsScene::clearImageBackingContents):
(WebKit::CoordinatedGraphicsScene::removeImageBacking):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::removeReleasedImageBackingsIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::commitPendingBackingStoreOperations): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
3:31 AM Changeset in webkit [229314] by commit-queue@webkit.org
  • 9 edits in trunk

[ARM] Disable tests that run out of memory
https://bugs.webkit.org/show_bug.cgi?id=182699

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-03-06
Reviewed by Žan Doberšek.

JSTests:

Skip tests that run of of memory. Do not run
modules/module-jit-reachability.js without LLInt to prevent
running out of executable memory.

  • modules.yaml:
  • modules/module-jit-reachability.js:
  • stress/has-own-property-name-cache-string-keys.js:
  • stress/has-own-property-name-cache-symbol-keys.js:

Tools:

Add run mode to allow running modules.yaml-tests without
disabling LLInt for specific tests.

  • Scripts/run-jsc-stress-tests:

LayoutTests:

Do not run test with LLInt disabled on Linux.

  • js/script-tests/dfg-osr-entry-hoisted-clobbered-structure-check.js:
3:23 AM Changeset in webkit [229313] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

GraphicsLayerTextureMapper: remove the setAnimations() method
https://bugs.webkit.org/show_bug.cgi?id=183358

Reviewed by Carlos Garcia Campos.

Remove the GraphicsLayerTextureMapper::setAnimations() method. This was
not called from anywhere, and is not the way animations are generated
for a given GraphicsLayer object (that would be addAnimation() method).

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::setAnimations): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
12:22 AM Changeset in webkit [229312] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.19.92

WebKitGTK+ 2.19.92

12:21 AM Changeset in webkit [229311] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.92 release.

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.19.92.
12:18 AM Changeset in webkit [229310] by n_wang@apple.com
  • 14 edits
    2 adds in trunk

AX: AOM: More accessibility events support
https://bugs.webkit.org/show_bug.cgi?id=183023
<rdar://problem/37764380>

Reviewed by Chris Fleizach.

Source/WebCore:

Accessibility events.
Spec: https://wicg.github.io/aom/spec/phase2.html

This change adds support for these new events:

accessiblecontextmenu
accessibledecrement
accessibledismiss
accessiblefocus
accessibleincrement
accessiblescrollintoview
accessibleselect

Note: The show context menu action is only supported on macOS now.
The dismiss action is not implemented for all the platforms yet.

Test: accessibility/mac/AOM-events-all.html

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::setSelected):

  • accessibility/AccessibilityMediaObject.cpp:

(WebCore::AccessibilityMediaObject::increment):
(WebCore::AccessibilityMediaObject::decrement):

  • accessibility/AccessibilityMenuListOption.cpp:

(WebCore::AccessibilityMenuListOption::setSelected):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::dispatchAccessibilityEvent const):
(WebCore::AccessibilityObject::dispatchAccessibilityEventWithType const):
(WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent const):
(WebCore::AccessibilityObject::scrollToMakeVisible const):
(WebCore::AccessibilityObject::dispatchAccessibilityEvent): Deleted.
(WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent): Deleted.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setFocused):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

  • dom/Element.idl:
  • dom/EventNames.h:

LayoutTests:

  • accessibility/mac/AOM-events-all-expected.txt: Added.
  • accessibility/mac/AOM-events-all.html: Added.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Mar 5, 2018:

11:25 PM Changeset in webkit [229309] by Yusuke Suzuki
  • 78 edits
    1 copy
    1 add in trunk

Fix std::make_unique / new[] using system malloc
https://bugs.webkit.org/show_bug.cgi?id=182975

Reviewed by JF Bastien.

Source/JavaScriptCore:

Use Vector, FAST_ALLOCATED, or UniqueArray instead.

  • API/JSStringRefCF.cpp:

(JSStringCreateWithCFString):

  • bytecode/BytecodeKills.h:
  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::BytecodeLivenessAnalysis::computeKills):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::dumpDisassembly):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):

  • jit/PolymorphicCallStubRoutine.h:
  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jsc.cpp:

(currentWorkingDirectory):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:
  • runtime/ArgList.h:
  • runtime/StructureChain.h:
  • runtime/StructureIDTable.cpp:

(JSC::StructureIDTable::StructureIDTable):
(JSC::StructureIDTable::resize):

  • runtime/StructureIDTable.h:
  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::TypeProfilerLog):
(JSC::TypeProfilerLog::initializeLog): Deleted.

  • runtime/TypeProfilerLog.h:

(JSC::TypeProfilerLog::TypeProfilerLog): Deleted.

  • runtime/VM.cpp:

(JSC::VM::~VM):
(JSC::VM::acquireRegExpPatternContexBuffer):

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

(runFromFiles):

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::HeapVerifier):

  • tools/HeapVerifier.h:

Source/WebCore:

Use Vector, FAST_ALLOCATED, or UniqueArray instead.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • css/StyleRule.h:
  • cssjit/CompiledSelector.h:
  • html/HTMLFrameSetElement.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::LRUImageBufferCache):
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::bubbleToFront):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/Length.cpp:

(WebCore::newCoordsArray):
(WebCore::newLengthArray):
(): Deleted.

  • platform/Length.h:
  • platform/audio/DynamicsCompressor.cpp:

(WebCore::DynamicsCompressor::setNumberOfChannels):

  • platform/audio/DynamicsCompressor.h:
  • platform/audio/FFTFrame.h:
  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::FFTFrame):

  • platform/graphics/FormatConverter.h:

(WebCore::FormatConverter::FormatConverter):

  • platform/graphics/GraphicsContext3D.cpp:

(WebCore::GraphicsContext3D::texImage2DResourceSafe):

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::getDirtyRects):

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::flipImageSurfaceVertically):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

  • platform/graphics/gpu/Texture.cpp:

(WebCore::Texture::updateSubRect):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::getActiveAttribImpl):
(WebCore::GraphicsContext3D::getActiveUniformImpl):
(WebCore::GraphicsContext3D::getProgramInfoLog):
(WebCore::GraphicsContext3D::getShaderInfoLog):

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::getShaderLog):
(WebCore::getProgramLog):

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::putData):

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageReader::PNGImageReader):
(WebCore::PNGImageReader::close):
(WebCore::PNGImageReader::interlaceBuffer const):
(WebCore::PNGImageReader::createInterlaceBuffer):

  • platform/image-decoders/webp/WEBPImageDecoder.cpp:

(WebCore::WEBPImageDecoder::decodeFrame):

  • platform/network/curl/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::SocketData::SocketData):

  • platform/network/curl/SocketStreamHandleImplCurl.cpp:

(WebCore::createCopy):
(WebCore::SocketStreamHandleImpl::readData):
(): Deleted.

  • platform/network/soup/SocketStreamHandleImpl.h:
  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::SocketStreamHandleImpl::connected):

  • platform/win/LoggingWin.cpp:

(WebCore::logLevelString):

Source/WebCore/PAL:

Use Vector instead.

  • pal/win/LoggingWin.cpp:

(PAL::logLevelString):

Source/WebKit:

Use Vector instead.

  • NetworkProcess/win/SystemProxyWin.cpp:

(WindowsSystemProxy::getSystemHttpProxy):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):
(IPC::Connection::sendOutputMessage):

  • Platform/win/LoggingWin.cpp:

(WebKit::logLevelString):

  • Shared/SandboxExtension.h:
  • Shared/mac/SandboxExtensionMac.mm:

(WebKit::SandboxExtension::HandleArray::allocate):
(WebKit::SandboxExtension::HandleArray::operator[]):
(WebKit::SandboxExtension::HandleArray::operator[] const):
(WebKit::SandboxExtension::HandleArray::size const):
(WebKit::SandboxExtension::HandleArray::encode const):

Source/WebKitLegacy/win:

Use Vector instead.

  • MarshallingHelpers.cpp:

(MarshallingHelpers::safeArrayToStringArray):
(MarshallingHelpers::safeArrayToIntArray):

  • Plugins/PluginPackageWin.cpp:

(WebCore::PluginPackage::fetchInfo):

  • WebPreferences.cpp:

(WebPreferences::copyWebKitPreferencesToCFPreferences):

  • WebView.cpp:

(WebView::onMenuCommand):

Source/WTF:

If we use make_unique<char[]>(num) or new char[num], allocation is
done by the system malloc instead of bmalloc. This patch fixes this issue
by following three changes.

  1. Introduce UniqueArray<T>. It allocates memory from FastMalloc. While C++

array with new need to hold the size to call destructor correctly, our
UniqueArray only supports type T which does not have a non trivial destructor.
It reduces the allocation size since we do not need to track the size of the
array compared to standard new T[]. This is basically usable if we want to
have raw array which pointer won't be changed even if the container is moved.
In addition, we also extend UniqueArray<T> for types which have non trivial
destructors.

  1. Use Vector<T> instead.
  1. Annotate allocated types with MAKE_FAST_ALLOCATED. Since it introduces

new[] and delete[] operators, make_unique<T[]>(num) will allocate memory
from FastMalloc.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Assertions.cpp:
  • wtf/CMakeLists.txt:
  • wtf/FastMalloc.h:

(WTF::FastFree::operator() const):
(WTF::FastFree<T::operator() const):

  • wtf/MallocPtr.h:

(WTF::MallocPtr::operator bool const):

  • wtf/StackShot.h:

(WTF::StackShot::StackShot):
(WTF::StackShot::operator=):

  • wtf/SystemFree.h:

(WTF::SystemFree<T::operator() const):

  • wtf/UniqueArray.h: Copied from Source/WebKit/Platform/win/LoggingWin.cpp.

(WTF::makeUniqueArray):

  • wtf/Vector.h:

(WTF::VectorTypeOperations::forceInitialize):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/UniqueArray.cpp: Copied from Source/WebKit/Platform/win/LoggingWin.cpp.

(TestWebKitAPI::NonTrivialDestructor::NonTrivialDestructor):
(TestWebKitAPI::NonTrivialDestructor::~NonTrivialDestructor):
(TestWebKitAPI::NonTrivialDestructor::setLog):
(TestWebKitAPI::TEST):

10:59 PM Changeset in webkit [229308] by yoav@yoav.ws
  • 5 edits
    4 adds in trunk

Support for preconnect Link headers
https://bugs.webkit.org/show_bug.cgi?id=181657

Reviewed by Darin Adler.

Source/WebCore:

Move the preconnect functionality into its own function, and
also call this function when Link headers are processed.

Test: http/tests/preconnect/link-header-rel-preconnect-http.php

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader): Call preconnectIfNeeded.
(WebCore::LinkLoader::preconnectIfNeeded): Preconnect to a host functionality moved here.
(WebCore::LinkLoader::loadLink): Call preconnectIfNeeded.

  • loader/LinkLoader.h:

LayoutTests:

Add test to see Link preconnect headers trigger a connection.

  • http/tests/preconnect/link-header-rel-preconnect-http-expected.txt: Added.
  • http/tests/preconnect/link-header-rel-preconnect-http.html: Added.
  • http/tests/preconnect/resources/header-preconnect.php: Added.
  • platform/win/TestExpectations: Skipped the preconnect test directory, rather than the individual files in it.
9:59 PM Changeset in webkit [229307] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

Add ChildrenAffectedByForwardPositionalRules bit for nth-child pseudo class marking
https://bugs.webkit.org/show_bug.cgi?id=183341
<rdar://problem/38151470>

Reviewed by Zalan Bujtas.

Use it instead of AffectsNextSibling/AffectedByPreviousSibling bits, similar to ChildrenAffectedByBackwardPositionalRules bit.
This is more efficient and requires way less marking.

  • css/SelectorChecker.cpp:

(WebCore::countElementsBefore):
(WebCore::countElementsOfTypeBefore):
(WebCore::SelectorChecker::checkOne const):

Mark with ChildrenAffectedByForwardPositionalRules.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChildOf):

Mark with ChildrenAffectedByForwardPositionalRules.

  • dom/Element.cpp:

(WebCore::checkForSiblingStyleChanges):

Invalidate siblings after added/removed element.

(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
(WebCore::Element::hasFlagsSetDuringStylingOfChildren const):
(WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules const):

Add the new marking bit.

  • dom/Element.h:

(WebCore::Element::childrenAffectedByForwardPositionalRules const):
(WebCore::Element::attributeWithoutSynchronization const):

Remove assert so we can use this to get the current unresolved lazy value of style attrbute.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::childrenAffectedByForwardPositionalRules const):
(WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules):
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::resetStyleRelations):

Add the new marking bit.

  • dom/StyledElement.cpp:

(WebCore::StyledElement::invalidateStyleAttribute):

In special case where we have attribute selectors for style attribute, synchronize the attribute immediately so we get invalidation right.
Tested by fast/css/style-attribute-invalidation-propagates-to-counted-siblings.html

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

Commit the new bit.

  • style/StyleRelations.h:
8:38 PM Changeset in webkit [229306] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html as slow.
https://bugs.webkit.org/show_bug.cgi?id=180982

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:22 PM Changeset in webkit [229305] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix, remove unused variables.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeSpeakAs):
(WebCore::consumeHangingPunctuation):

7:13 PM Changeset in webkit [229304] by Chris Dumez
  • 4 edits
    2 adds in trunk

fast/loader/onload-policy-ignore-for-frame.html is timing out with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183337

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure we call checkCompleted() before calling checkLoadComplete() in
FrameLoader::continueLoadAfterNavigationPolicy() when the client tells us
to ignore the navigation, so that we properly recognize that the load is
done. This matches what is already done in FrameLoader::receivedMainResourceError().

Test: fast/loader/onload-policy-ignore-for-frame-async-delegates.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

LayoutTests:

Add layout test coverage.

  • fast/loader/onload-policy-ignore-for-frame-async-delegates-expected.txt: Added.
  • fast/loader/onload-policy-ignore-for-frame-async-delegates.html: Added.
7:06 PM Changeset in webkit [229303] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Allow user-installed fonts to be disabled
https://bugs.webkit.org/show_bug.cgi?id=183349

Rubber stamped by Brent Fulgham.

Tests: fast/text/user-installed-font.html

fast/text/user-installed-fonts/disable.html
fast/text/user-installed-fonts/shadow-disable.html
fast/text/user-installed-fonts/shadow-family-disable.html
fast/text/user-installed-fonts/shadow-family.html
fast/text/user-installed-fonts/shadow-postscript-disable.html
fast/text/user-installed-fonts/shadow-postscript-family-disable.html
fast/text/user-installed-fonts/shadow-postscript-family.html
fast/text/user-installed-fonts/shadow-postscript.html
fast/text/user-installed-fonts/shadow.html
fast/text/user-installed-fonts/system-ui.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:
7:03 PM Changeset in webkit [229302] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

JITThunk functions should only be called when the JIT is enabled.
https://bugs.webkit.org/show_bug.cgi?id=183351
<rdar://problem/38160091>

Reviewed by Keith Miller.

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::getCTIInternalFunctionTrampolineFor):

6:34 PM Changeset in webkit [229301] by msaboff@apple.com
  • 2 edits in trunk/Source/WTF

Start using MAP_JIT for macOS
https://bugs.webkit.org/show_bug.cgi?id=183353

Reviewed by Filip Pizlo.

Unify setting this flag for both iOS and macOS.

  • wtf/OSAllocatorPosix.cpp:

(WTF::OSAllocator::reserveAndCommit):

6:15 PM Changeset in webkit [229300] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

DumpRenderTree build fix

Unreviewed.

  • DumpRenderTree/mac/LayoutTestHelper.m:
6:13 PM Changeset in webkit [229299] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Silence OpenGL and OpenGL ES deprecation warnings in newer SDKs
https://bugs.webkit.org/show_bug.cgi?id=183350

Unreviewed.

  • Configurations/WebCore.xcconfig:
5:53 PM Changeset in webkit [229298] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.7

Tag Safari-606.1.7.

5:36 PM Changeset in webkit [229297] by aestes@apple.com
  • 20 edits
    14 adds in trunk

[Mac] Teach WebCore::Pasteboard about file promise drags
https://bugs.webkit.org/show_bug.cgi?id=183314
<rdar://problem/38105493>

Reviewed by Darin Adler.

Source/WebCore:

While WebKit does support receiving file promise drags (since r210360), WebCore::Pasteboard
has not been instructed on how to read their file paths. When the various pasteboard readers
ask for file paths after a file promise drop, they receive an empty vector. This impacts
various features, most notably the DataTransfer API.

Pasteboard actually cannot learn about promised file paths from the pasteboard itself, as
the pasteboard only contains the dragged files' UTIs. Promised file paths aren't known until
the WebKits call -[NSFilePromiseReceiver receivePromisedFilesAtDestination:...], at which
point the file paths are passed to WebCore as part of WebCore::DragData.

When we construct new Pasteboards for drag and drop, we need to store any promised file
paths from the DragData. Then, when the various pasteboard readers ask for file paths and
NSFilesPromisePboardType is on the pasteboard, we can return these promised file paths.

Tests: editing/pasteboard/data-transfer-items-drag-drop-file-promise.html

editing/pasteboard/data-transfer-items-drop-file-promise.html
editing/pasteboard/datatransfer-items-drop-plaintext-file-promise.html
editing/pasteboard/datatransfer-types-dropping-text-file-promise.html
editing/pasteboard/drag-file-promises-to-editable-element-as-URLs.html
editing/pasteboard/drag-file-promises-to-editable-element-as-attachment.html
editing/pasteboard/file-input-files-access-promise.html

  • platform/FileSystem.h:
  • platform/Pasteboard.h:

(WebCore::Pasteboard::Pasteboard):

  • platform/mac/DragDataMac.mm:

(WebCore::DragData::containsPromise const):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::toString):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::readFilePaths):
(WebCore::absoluteURLsFromPasteboardFilenames): Deleted.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::numberOfFiles const):

Source/WebKit:

Added a FIXME comment.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::performDragOperation):

Source/WebKitLegacy/mac:

Added a FIXME comment.

  • WebView/WebView.mm:

(-[WebView performDragOperation:]):

Tools:

  • DumpRenderTree/DumpRenderTreeFileDraggingSource.h:
  • DumpRenderTree/DumpRenderTreeFileDraggingSource.m:

(-[DumpRenderTreeFileDraggingSource initWithPromisedFileURLs:]):
(-[DumpRenderTreeFileDraggingSource dealloc]):

Taught DumpRenderTreeFileDraggingSource to store the promised file URLs.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

Called +[DumpRenderTreeDraggingInfo clearAllFilePromiseReceivers] after running a test.

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

(-[DumpRenderTreeFilePromiseReceiver initWithPromisedUTIs:]):
(-[DumpRenderTreeFilePromiseReceiver fileTypes]):
(-[DumpRenderTreeFilePromiseReceiver fileNames]):
(-[DumpRenderTreeFilePromiseReceiver dealloc]):
(copyFile):
(-[DumpRenderTreeFilePromiseReceiver receivePromisedFilesAtDestination:options:operationQueue:reader:]):

We can't instantiate real NSFilePromiseReceivers in DumpRenderTree. They rely on the
pasteboard server to generate unique file URLs, which is incompatible with our swizzled
NSPasteboard.

Instead, create a subclass of NSFilePromiseReceiver that implements its own promise resolution.
-receivePromisedFilesAtDestination:... asks its DumpRenderTreeFileDraggingSource for the
array of file URLs, then copies each to the destination directory on the specified operation
queue. It emulates how NSPasteboard tries to find a unique destination name by appending
numbers to the file name.

All receivers are collected in a global array that is cleared when each test finishes.
DumpRenderTreeFilePromiseReceiver will delete the files it copied in -dealloc.

(+[DumpRenderTreeDraggingInfo clearAllFilePromiseReceivers]):
(-[DumpRenderTreeDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):

If NSFilesPromisePboardType is on the pasteboard and classArray contains
NSFilePromiseReceiver, construct a DumpRenderTreeFilePromiseReceiver, add it to the array of
all file promise receivers, then wrap it in an NSDraggingItem and call block.

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController isSelectorExcludedFromWebScript:]):
(+[EventSendingController webScriptNameForSelector:]):
(-[EventSendingController beginDragWithFilePromises:]):

Implement eventSender.beginDragWithFilePromises() by placing file UTIs on the pasteboard
with type NSFilesPromisePboardType, creating a DumpRenderTreeFileDraggingSource with the
file URLs, and creating a new DumpRenderTreeDraggingInfo and passing it to
-[WebView draggingEntered:].

LayoutTests:

Added versions of file dragging tests in editing/pasteboard/ that use
beginDragWithFilePromises() instead of beginDragWithFiles().

  • TestExpectations: Skipped the new tests.
  • editing/pasteboard/data-transfer-items-drag-drop-file-promise-expected.txt: Added.
  • editing/pasteboard/data-transfer-items-drag-drop-file-promise.html: Added.
  • editing/pasteboard/data-transfer-items-drop-file-promise-expected.txt: Added.
  • editing/pasteboard/data-transfer-items-drop-file-promise.html: Added.
  • editing/pasteboard/datatransfer-items-drop-plaintext-file-promise-expected.txt: Added.
  • editing/pasteboard/datatransfer-items-drop-plaintext-file-promise.html: Added.
  • editing/pasteboard/datatransfer-types-dropping-text-file-promise-expected.txt: Added.
  • editing/pasteboard/datatransfer-types-dropping-text-file-promise.html: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-URLs-expected.txt: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-URLs.html: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-attachment-expected.txt: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-attachment.html: Added.
  • editing/pasteboard/file-input-files-access-promise-expected.txt: Added.
  • editing/pasteboard/file-input-files-access-promise.html: Added.
  • platform/mac-wk1/TestExpectations: Un-skipped the new tests.
  • platform/win/TestExpectations: Skipped the new tests.
5:30 PM Changeset in webkit [229296] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[webkitpy] Bugzilla class should use NetworkTransaction for network operations
https://bugs.webkit.org/show_bug.cgi?id=183222

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(Bugzilla.open_url): Method which uses NetworkTransaction for opening url.
(Bugzilla.fetch_user): Used self.open_url instead of directly calling browser.open().
(Bugzilla.add_user_to_groups): Ditto.
(Bugzilla._fetch_bug_page): Ditto.
(Bugzilla.fetch_attachment_contents): Ditto.
(Bugzilla.get_bug_id_for_attachment_id): Ditto.
(Bugzilla.authenticate): Ditto.
(Bugzilla.add_attachment_to_bug): Ditto.
(Bugzilla.add_patch_to_bug): Ditto.
(Bugzilla.create_bug): Ditto.
(Bugzilla.clear_attachment_flags): Ditto.
(Bugzilla.set_flag_on_attachment): Ditto.
(Bugzilla.obsolete_attachment): Ditto.
(Bugzilla.add_cc_to_bug): Ditto.
(Bugzilla.post_comment_to_bug): Ditto.
(Bugzilla.close_bug_as_fixed): Ditto.
(Bugzilla.reassign_bug): Ditto.
(Bugzilla.reopen_bug): Ditto.
(Bugzilla._fetch_bug_page_by_url): Deleted, not required anymore.

  • Scripts/webkitpy/common/net/networktransaction.py:

(NetworkTransaction.run): Added a FIXME.

4:24 PM Changeset in webkit [229295] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Fix the build

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate): Removed unused variables.

3:19 PM Changeset in webkit [229294] by jeffm@apple.com
  • 3 edits in trunk/Source/WebKit

Expose still more WKPreferences SPI to match C SPI
https://bugs.webkit.org/show_bug.cgi?id=183045

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setAllowsInlineMediaPlayback:]):
(-[WKPreferences _allowsInlineMediaPlayback]):
(-[WKPreferences _setApplePayEnabled:]):
(-[WKPreferences _applePayEnabled]):
(-[WKPreferences _setDNSPrefetchingEnabled:]):
(-[WKPreferences _dnsPrefetchingEnabled]):
(-[WKPreferences _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
(-[WKPreferences _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKPreferences _setInvisibleMediaAutoplayNotPermitted:]):
(-[WKPreferences _invisibleMediaAutoplayNotPermitted]):
(-[WKPreferences _setLegacyEncryptedMediaAPIEnabled:]):
(-[WKPreferences _legacyEncryptedMediaAPIEnabled]):
(-[WKPreferences _setMainContentUserGestureOverrideEnabled:]):
(-[WKPreferences _mainContentUserGestureOverrideEnabled]):
(-[WKPreferences _setMediaStreamEnabled:]):
(-[WKPreferences _mediaStreamEnabled]):
(-[WKPreferences _setNeedsStorageAccessFromFileURLsQuirk:]):
(-[WKPreferences _needsStorageAccessFromFileURLsQuirk]):
(-[WKPreferences _setPDFPluginEnabled:]):
(-[WKPreferences _pdfPluginEnabled]):
(-[WKPreferences _setRequiresUserGestureForAudioPlayback:]):
(-[WKPreferences _requiresUserGestureForAudioPlayback]):
(-[WKPreferences _setRequiresUserGestureForVideoPlayback:]):
(-[WKPreferences _requiresUserGestureForVideoPlayback]):
(-[WKPreferences _setServiceControlsEnabled:]):
(-[WKPreferences _serviceControlsEnabled]):
(-[WKPreferences _setShowsToolTipOverTruncatedText:]):
(-[WKPreferences _showsToolTipOverTruncatedText]):
(-[WKPreferences _setTextAreasAreResizable:]):
(-[WKPreferences _textAreasAreResizable]):
(-[WKPreferences _setUseGiantTiles:]):
(-[WKPreferences _useGiantTiles]):
(-[WKPreferences _setWantsBalancedSetDefersLoadingBehavior:]):
(-[WKPreferences _wantsBalancedSetDefersLoadingBehavior]):
(-[WKPreferences _setWebAudioEnabled:]):
(-[WKPreferences _webAudioEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2:16 PM Changeset in webkit [229293] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: build fix.

Not reviewed.

  • interpreter/AbstractPC.h:

(JSC::AbstractPC::AbstractPC):

11:54 AM Changeset in webkit [229292] by Ryan Haddad
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed, add baseline for fast/text/combining-enclosing-keycap.html.

  • platform/ios/fast/text/combining-enclosing-keycap-expected.txt: Added.
  • platform/mac/fast/text/combining-enclosing-keycap-expected.txt: Added.
11:40 AM Changeset in webkit [229291] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

dump-class-layout mishandles duplicates base classes and miscomputes padding
https://bugs.webkit.org/show_bug.cgi?id=183311

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-03-05
Reviewed by Simon Fraser.

  • Scripts/dump-class-layout:

(verify_type):
(verify_type_recursive):
Keep a list of seen (offset, type) that we have output and don't re-output them.
The Python types list the base classes as members multiple times as you iterate
through the members, so just ignore them if we have seem them already at a
specific offset.

11:29 AM Changeset in webkit [229290] by clopez@igalia.com
  • 2 edits
    1 add in trunk/Tools

[GTK][Wayland] The GTK Wayland bot exits early because of assertions related with libsecret since r221925
https://bugs.webkit.org/show_bug.cgi?id=183330

Reviewed by Michael Catanzaro.

Add libsecret to the JHBuild and build it only when the system version is
less than 0.18.6 (unreleased as of writing this) in order to cherry pick
a fix for a bug that causes crashes with layout tests.

  • gtk/jhbuild.modules:
  • gtk/patches/libsecret-secret-methods-Don-t-unref-NULL-when-search-fails.patch: Added.
11:03 AM Changeset in webkit [229289] by Yusuke Suzuki
  • 4 edits in trunk/Source/WTF

Unreviewed, follow-up after r229209
https://bugs.webkit.org/show_bug.cgi?id=183312

Add RELEASE_ASSERT to ensure success.

  • wtf/cocoa/CPUTimeCocoa.mm:

(WTF::CPUTime::forCurrentThread):

  • wtf/unix/CPUTimeUnix.cpp:

(WTF::CPUTime::forCurrentThread):

  • wtf/win/CPUTimeWin.cpp:

(WTF::CPUTime::forCurrentThread):

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

Don't invalidate all children when doing insertion/deletion in presence of backward positional selectors
https://bugs.webkit.org/show_bug.cgi?id=183325
<rdar://problem/38134480>

Reviewed by Zalan Bujtas.

It is sufficient to invalidate siblings before the mutation point.

  • dom/Element.cpp:

(WebCore::checkForSiblingStyleChanges):

We already do sibling walk in the case of forwards positional rules and sibling combinators. The work
done here is insignifant compared to cost of overinvalidating.

10:31 AM Changeset in webkit [229287] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Use WTF::ArithmeticOperations for CLoop overflow operations
https://bugs.webkit.org/show_bug.cgi?id=183324

Reviewed by JF Bastien.

We have WTF::ArithmeticOperations which has operations with overflow checking.
This is suitable for CLoop's overflow checking operations. This patch emits
WTF::ArithmeticOperations for CLoop's overflow checking operations. And it is
lowered to optimized code using CPU's overflow flag.

  • offlineasm/cloop.rb:
10:15 AM Changeset in webkit [229286] by Chris Dumez
  • 4 edits
    23 adds in trunk

imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html times out with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183297

Patch by Ali Juma <ajuma@chromium.org> on 2018-03-05
Reviewed by Chris Dumez.

Source/WebCore:

When a FrameLoader's policy document loader is cleared after receiving a navigation policy decision
to not continue loading, we still need to trigger a check for load completion, since this loader or
an ancestor loader may have been in state isLoadingInAPISense only because of the existence of
the just-cleared policy document loader. Without triggering this check, these loaders may never
call WebFrameLoaderClient::dispatchDidFinishLoad.

Test: http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

LayoutTests:

Add layout test coverage. Copy expectations from the existing sync-policy version of the test.

  • http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html: Added.
  • http/wpt/html/semantics/text-level-semantics/the-a-element/resources/a-download-404.html: Added.
  • platform/ios-wk2/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • platform/mac-wk1/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • platform/win/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • platform/wpe/TestExpectations:
10:06 AM Changeset in webkit [229285] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Service worker test gardening
https://bugs.webkit.org/show_bug.cgi?id=183264
<rdar://problem/38048743>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-05

7:04 AM Changeset in webkit [229284] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] fast/events/blur-focus-window-should-blur-focus-element.html failing

Unreviewed gardening.

  • platform/gtk/TestExpectations: Move this test to the failing test section.
6:44 AM Changeset in webkit [229283] by Claudio Saavedra
  • 5 edits in trunk

[GTK] Implement WTR's PlatformWebView::setWindowIsKey()
https://bugs.webkit.org/show_bug.cgi?id=183143

Reviewed by Carlos Garcia Campos.

Tools:

Implement ::setWindowIsKey() by keeping a second window to be
presented when the webview's window is to lose its key status.

  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::~PlatformWebView):
(WTR::PlatformWebView::setWindowIsKey):

LayoutTests:

  • platform/gtk/TestExpectations: Unmark the passing tests
5:28 AM Changeset in webkit [229282] by don.olmstead@sony.com
  • 6 edits in trunk

[CMake] Split JSC header copying into public and private targets
https://bugs.webkit.org/show_bug.cgi?id=183251

Reviewed by Konstantin Tokarev.

.:

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/ThirdParty:

  • gtest/CMakeLists.txt:
5:20 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
5:19 AM Changeset in webkit [229281] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore/platform/gtk/po

Merge r229203 - [l10n] Updated Indonesian translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=183318

Patch by Andika Triwidada <atriwidada@gnome.org> on 2018-03-04
Rubber-stamped by Michael Catanzaro.

  • id.po:
5:18 AM Changeset in webkit [229280] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/LayoutTests

Merge r229171 - [GTK] Unreviewed gardening

  • platform/gtk/TestExpectations: Add

imported/w3c/web-platform-tests/css/css-ui/text-overflow-022.html,
which started failing in the bots.

5:18 AM Changeset in webkit [229279] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.20/WebDriverTests

Merge r229213 - Unreviewed. Update Selenium WebDriver imported tests.

  • imported/selenium/importer.json:
  • imported/selenium/py/selenium/init.py:
  • imported/selenium/py/selenium/common/exceptions.py:
  • imported/selenium/py/selenium/webdriver/init.py:
  • imported/selenium/py/selenium/webdriver/remote/webelement.py:
  • imported/selenium/py/selenium/webdriver/safari/webdriver.py:
  • imported/selenium/py/test/selenium/webdriver/common/select_class_tests.py:
5:18 AM Changeset in webkit [229278] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229212 - Automation: clicking on a disabled option element shouldn't produce an error
https://bugs.webkit.org/show_bug.cgi?id=183284

Reviewed by Brian Burg.

This was expected by selenium, but the WebDriver spec says we should simply do nothing in those cases.

14.1 Element Click.
https://w3c.github.io/webdriver/webdriver-spec.html#element-click

Fixes: imported/w3c/webdriver/tests/element_click/select.py::test_option_disabled

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::selectOptionElement):

5:18 AM Changeset in webkit [229277] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebDriver

Merge r229211 - WebDriver: Also ignore NoSuchwindow errors when waiting for navigation to complete
https://bugs.webkit.org/show_bug.cgi?id=183280

Reviewed by Brian Burg.

We currently ignore NoSuchFrame, but navigation or previous command might have closed the window too.

Fixes: imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testClickingOnAButtonThatClosesAnOpenWindowDoesNotCauseTheBrowserToHang

imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testCanCallGetWindowHandlesAfterClosingAWindow

  • Session.cpp:

(WebDriver::Session::waitForNavigationToComplete): Ignore NoSuchWindow errors.

5:18 AM Changeset in webkit [229276] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229210 - Automation: stale elements not detected when removed from the DOM
https://bugs.webkit.org/show_bug.cgi?id=183278

Reviewed by Brian Burg.

We detect stale elements when the page is reloaded because the maps are recreated, but if an element is removed
from the DOM for the same document we keep the nodes in the maps. We should clear stale elements before
accessing the maps.

Fixes: imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testExpectedConditionStalenessOf

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _clearStaleNodes()
(let.AutomationSessionProxy.prototype.nodeForIdentifier): Ditto.
(let.AutomationSessionProxy.prototype._clearStaleNodes): Check if cached nodes are still in document and remove them
from the maps if they aren't.

5:18 AM Changeset in webkit [229275] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/WebDriverTests

Merge r229167 - Unreviewed gardening. Skip new action tests added in r229166.

5:17 AM Changeset in webkit [229274] by Carlos Garcia Campos
  • 41 edits
    3 adds
    4 deletes in releases/WebKitGTK/webkit-2.20/WebDriverTests

Merge r229166 - Unreviewed. Update W3C WebDriver imported tests.

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/transport.py:
  • imported/w3c/tools/wptrunner/MANIFEST.in:
  • imported/w3c/tools/wptrunner/README.rst:
  • imported/w3c/tools/wptrunner/requirements.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/requirements_servo.txt:
  • imported/w3c/tools/wptrunner/setup.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome_android.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/edge.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/ie.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/opera.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/server-locations.txt: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/config.json: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/font.py:
  • imported/w3c/tools/wptrunner/wptrunner/hosts.py: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/browsers/init.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_hosts.py: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/webdriver/OWNERS:
  • imported/w3c/webdriver/tests/actions/mouse.py:
  • imported/w3c/webdriver/tests/actions/mouse_dblclick.py:
  • imported/w3c/webdriver/tests/actions/pointer_origin.py: Added.
  • imported/w3c/webdriver/tests/actions/support/mouse.py:
  • imported/w3c/webdriver/tests/element_click/bubbling.py:
  • imported/w3c/webdriver/tests/element_click/select.py:
  • imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
  • imported/w3c/webdriver/tests/element_send_keys/interactability.py:
  • imported/w3c/webdriver/tests/execute_script/cyclic.py:
  • imported/w3c/webdriver/tests/fullscreen_window.py:
  • imported/w3c/webdriver/tests/interface.html:
  • imported/w3c/webdriver/tests/state/get_element_property.py:
5:17 AM Changeset in webkit [229273] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r229165 - REGRESSION(r222843): [HarfBuzz] Combining enclosed keycap not correctly handled
https://bugs.webkit.org/show_bug.cgi?id=183246

Reviewed by Michael Catanzaro.

Source/WebCore:

We are not correctly handling the combining enclosed keycap since we switched to use
ComplexTextController. This is because fontForCombiningCharacterSequence() always returns the font of the first
character, without checking if that font can render the whole sequence or not. Before 222843, the shaper did
that check when creating the text runs. In this case the sequence was split and a different font was used for the
text and the mark. This patch makes fontForCombiningCharacterSequence() try to find a suitable font for the
whole sequence, first looking at the CSS fallbacks and finally at system ones. The result is much better than
the old one, because we use the same font for both the text and the mark. If there isn't any font to render the
mark, then we fallback to use the first character font, since we will end up rendering the missing glyph
character, it's better to use the same font than the first character one.

Test: fast/text/combining-enclosing-keycap.html

  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence const): Check if the first charatcer font can render
the whole sequence, trying with fallbacks otherwise.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::Font::canRenderCombiningCharacterSequence const): Check if the font face has glyphs for the whole
sequence not just the first character.

LayoutTests:

  • fast/text/combining-enclosing-keycap-expected.txt: Added.
  • platform/gtk/fast/text/combining-enclosing-keycap.html: Added.
  • platform/gtk/TestExpectations:
5:17 AM Changeset in webkit [229272] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.20

Merge r229164 - [FreeType] Remove FontPlatformData fallbacks
https://bugs.webkit.org/show_bug.cgi?id=183210

Reviewed by Michael Catanzaro.

Source/WebCore:

They are only used by FontCache::systemFallbackForCharacters() where a direct FcFontMatch provides the same
or better results.

  • platform/graphics/FontPlatformData.h: Remove fallbacks.
  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::systemFallbackForCharacters): Use FcFontMatch() only.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::fallbacks): Removed.

LayoutTests:

Rebaseline 3 tests that progressed.

  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
5:16 AM Changeset in webkit [229271] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r229162 - ASSERTION FAILED: matchContextualKeyword(m_vm->propertyNames->async)
https://bugs.webkit.org/show_bug.cgi?id=183173

Reviewed by Saam Barati.

JSTests:

  • stress/async-arrow-function-in-class-heritage.js: Added.

(testSyntax):
(testSyntaxError):
(SyntaxError):

Source/JavaScriptCore:

Classifier could propagate an error which does not occur at the first token
of the given expression. We should check whether the given token is "async"
instead of assertion.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

5:16 AM Changeset in webkit [229270] by Carlos Garcia Campos
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.20

We need to clear cached structures when having a bad time
https://bugs.webkit.org/show_bug.cgi?id=183256
<rdar://problem/36245022>

Reviewed by Mark Lam.

JSTests:

  • stress/having-a-bad-time-with-derived-arrays.js: Added.

(assert):
(defineSetter):
(iterate):
(doSlice):

Source/JavaScriptCore:

This patch makes both InternalFunctionAllocationProfile and the VM's
structure cache having-a-bad-time aware. For InternalFunctionAllocationProfile,
we clear them when they'd produce an object with a bad indexing type.
For the VM's Structure cache, we conservatively clear the entire cache
since it may be housing Structures with bad indexing types.

  • runtime/FunctionRareData.h:

(JSC::FunctionRareData::clearInternalFunctionAllocationProfile):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::haveABadTime):

  • runtime/StructureCache.h:

(JSC::StructureCache::clear):

5:16 AM Changeset in webkit [229269] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20

Merge r229155 - [CMake] configure failure for aarch64
https://bugs.webkit.org/show_bug.cgi?id=183268

Unreviewed build fix. This failure is caused by a simple typo.

  • Source/cmake/OptionsCommon.cmake:
5:16 AM Changeset in webkit [229268] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229137 - Remove RenderElement::s_noLongerAffectsParentBlock
https://bugs.webkit.org/show_bug.cgi?id=183196
<rdar://problem/38030797>

Reviewed by Antti Koivisto.

Remove the hack to track floating/out-of-flow changes between styleWillChange and styleDidChange.

Covered by existing tests.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::noLongerAffectsParentBlock const):
(WebCore::RenderElement::styleDidChange):

  • rendering/RenderElement.h:

(WebCore::RenderElement::noLongerAffectsParentBlock const): Deleted.

5:16 AM Changeset in webkit [229267] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229134 - Crash when updating cache entry after validation in apps that uses class A file protection
https://bugs.webkit.org/show_bug.cgi?id=183242
<rdar://problem/33289058>

Reviewed by Chris Dumez.

When validating a cache entry, we keep it alive until we get a network response. With 304 response
we then update the headers of this existing entry. This accesses the body data of the entry which
may be backed by a mapped file. If the app uses class A protection, user might have locked
the device and the entry might have become inaccessible, leading to a crash.

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::setNeedsValidation):

In case of class A protection, pull the data to a memory buffer immediately before starting a revalidation request.
This makes the window where the file could become inaccessible much shorter (since it no longer depends on network).

5:16 AM Changeset in webkit [229266] by Carlos Garcia Campos
  • 7 edits
    3 adds in releases/WebKitGTK/webkit-2.20

Merge r229133 - imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183225
<rdar://problem/38003828>

Reviewed by Alex Christensen.

Source/WebCore:

Bypass navigation policy check when loading about:blank. This does not seem necessary and it would not
be Web-compatible for such policy check to happen synchronously. This is because an iframe without src
or src="about:blank" should load synchronously as per HTML specification.

Test: http/wpt/html/browsers/windows/browsing-context.html

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

LayoutTests:

  • http/wpt/html/browsers/windows/browsing-context-expected.txt: Added.
  • http/wpt/html/browsers/windows/browsing-context.html: Added.

Add layout test coverage.

  • fast/loader/iframe-src-invalid-url-expected.txt:
  • fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt:
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt:
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt:

Rebaseline a few layout tests now that the log lines for the about:blank policy checks are
gone.

5:16 AM Changeset in webkit [229265] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229129 - Unreviewed, fix exception check for ExceptionScope
https://bugs.webkit.org/show_bug.cgi?id=183175

  • jsc.cpp:

(GlobalObject::moduleLoaderFetch):

5:16 AM Changeset in webkit [229264] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229128 - [FreeType] Color emojis in WebKitGTK+ for great justice
https://bugs.webkit.org/show_bug.cgi?id=183155

Reviewed by Michael Catanzaro.

Emojis are actually rendered if there's an emoji font installed in the system, but the size is so tiny that we
don't see them. This is because for some reason the matrix we are getting from fontconfig contains a scale,
which we don't expect. We only get the fontconfig matrix to apply rotations in case of oblique fonts, and then we
always apply the scale for the computed pixel font size. Ignoring the fontconfig matrix scale fixes the issue.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::fontWeightToFontconfigWeight): Moved here since it's now used by configurePatternForFontDescription().
(WebCore::configurePatternForFontDescription): Helper function to apply the same options for fallback pattern.
(WebCore::createFontConfigPatternForCharacters): Use configurePatternForFontDescription().
(WebCore::findBestFontGivenFallbacks): Adopt the returned reference.
(WebCore::FontCache::systemFallbackForCharacters): Clean it up.
(WebCore::FontCache::createFontPlatformData): Use configurePatternForFontDescription().

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::buildScaledFont): Ignore the scale returned by fontconfig matrix.

5:15 AM Changeset in webkit [229263] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229126 - REGRESSION(r221514): [GTK] UI process crash in WebKit::WaylandCompositor::Surface::flushPendingFrameCallbacks
https://bugs.webkit.org/show_bug.cgi?id=183091

Reviewed by Michael Catanzaro.

Invalidate the surface in the page map when the backing store is destroyed.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::willDestroySurface):

  • UIProcess/gtk/WaylandCompositor.h:
4:34 AM Changeset in webkit [229262] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229125 - [ARM] Fix compile error in debug builds by invoking unpoisoned().

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-02-28
Reviewed by Mark Lam.

  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): Fix compile error.
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress()): Ditto.
(JSC::MacroAssemblerCodePtr::dataLocation()): Ditto.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::dumpDisjunction): use %zu for printf'ing size_t.

4:34 AM Changeset in webkit [229261] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229109 - GC should sweep code block before deleting
https://bugs.webkit.org/show_bug.cgi?id=183229
<rdar://problem/32767615>

Reviewed by Saam Barati, Fil Pizlo.

Stub routines shouldn't get deleted before codeblocks have been
swept, otherwise there's a small race window where the codeblock
thinks it's still reachable.

  • heap/Heap.cpp:

(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepInFinalize):

4:34 AM Changeset in webkit [229260] by Carlos Garcia Campos
  • 4 edits
    8 adds in releases/WebKitGTK/webkit-2.20

Merge r229108 - html/browsers/browsing-the-web/navigating-across-documents/006.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183168
<rdar://problem/37951341>

Reviewed by Alex Christensen.

Source/WebCore:

The test has an anchor element with both a 'click' event handler which submits a form
and an href attribute. When clicking the link, as per specification, things happen in
this order:

  1. We fire the click event at the anchor, which will execute the event handler and submit the form. Submitting the form *schedules* a navigation to 'click.html'.
  2. We execute the anchor activation code which *navigates* to 'href.html'. The navigation to 'href' is supposed to cancel the pending navigation to 'click.html' and we should navigate to 'href.html', which is what the test asserts.

The issue for us is that we do not cancel pending navigations until after the navigation
policy decision is made, when the provisional loads actually starts, in FrameLoader::provisionalLoadStarted().
Because the policy decision for the navigation can now be made asynchronously, the NavigationScheduler
timer can now fire while the decision is made and we'll submit the form, thus navigating to
'click.html'.

To address the issue, we now cancel any pending navigations in FrameLoader::loadWithDocumentLoader(),
*before* doing the policy check for the navigation.

Test: http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadWithDocumentLoader):

LayoutTests:

Add layout test coverage.

  • TestExpectations:
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006-expected.txt: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006.html: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/click.html: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/href.html: Added.
4:34 AM Changeset in webkit [229259] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r229092 - JSC crash with import("")
https://bugs.webkit.org/show_bug.cgi?id=183175

Reviewed by Saam Barati.

JSTests:

  • stress/import-with-empty-string.js: Added.

Source/JavaScriptCore:

Add file existence and file type check for module loader implementation in jsc.cpp.
This is not safe for TOCTOU, but it is OK since this functionality is used for the
JSC shell (jsc.cpp): testing purpose.

  • jsc.cpp:

(fillBufferWithContentsOfFile):
(fetchModuleFromLocalFileSystem):

4:34 AM Changeset in webkit [229258] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229091 - Remove RenderElement::s_affectsParentBlock
https://bugs.webkit.org/show_bug.cgi?id=183187
<rdar://problem/37961079>

Reviewed by Antti Koivisto.

Remove the hack to track floating/out-of-flow changes between styleWillChange and styleDidChange.

Covered by existing tests.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::styleDidChange):

  • rendering/RenderElement.h:
4:26 AM Changeset in webkit [229257] by Yusuke Suzuki
  • 2 edits in trunk/Tools

Unreviewed, attempt to fix Apple port build

  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
4:21 AM Changeset in webkit [229256] by Yusuke Suzuki
  • 4 edits in trunk/Tools

Unreviewed, attempt to fix WPE build

  • WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:

(WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):

  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::windowSnapshotImage):

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformRunUntil):

3:55 AM Changeset in webkit [229255] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229090 - Filter attribute selectors with selector filter
https://bugs.webkit.org/show_bug.cgi?id=183200

Reviewed by Zalan Bujtas.

Currently selector filtering is done based on tags, classes and ids. We should include attributes too.

This patch adds filtering based on attribute name (but not content).

  • css/SelectorFilter.cpp:

(WebCore::isExcludedAttribute):

Ignore id, class and style attributes. First two are already handled and the last is common but is rarely
used in selectors.

(WebCore::collectElementIdentifierHashes):

Collect attributes.
Remove the unnecessary StyledElement casting.

(WebCore::collectSimpleSelectorHash):

Collect attribute selectors.

(WebCore::chooseSelectorHashesForFilter):

Pick attributes with high priority for the filter as it is likely a good signal.

3:55 AM Changeset in webkit [229254] by Carlos Garcia Campos
  • 24 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229087 - Replace TrustedImmPtr(0) with TrustedImmPtr(nullptr)
https://bugs.webkit.org/show_bug.cgi?id=183195

Reviewed by Mark Lam.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::patchableBranchPtr):
(JSC::MacroAssembler::patchableBranchPtrWithPatch):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branchPtrWithPatch):
(JSC::MacroAssemblerARM::storePtrWithPatch):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::tailRecursiveCall):
(JSC::MacroAssemblerARM64::branchPtrWithPatch):
(JSC::MacroAssemblerARM64::patchableBranchPtrWithPatch):
(JSC::MacroAssemblerARM64::storePtrWithPatch):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchPtrWithPatch):
(JSC::MacroAssemblerARMv7::patchableBranchPtr):
(JSC::MacroAssemblerARMv7::patchableBranchPtrWithPatch):
(JSC::MacroAssemblerARMv7::storePtrWithPatch):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchPtrWithPatch):
(JSC::MacroAssemblerMIPS::storePtrWithPatch):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::branchPtrWithPatch):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType):
(JSC::MacroAssemblerX86_64::call):
(JSC::MacroAssemblerX86_64::tailRecursiveCall):
(JSC::MacroAssemblerX86_64::makeTailRecursiveCall):
(JSC::MacroAssemblerX86_64::branchPtrWithPatch):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileMakeRope):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::TrustedImmPtr::TrustedImmPtr):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::debugCall):
(JSC::AssemblyHelpers::sanitizeStackInline):

  • jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • jit/ScratchRegisterAllocator.cpp:

(JSC::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBufferForCall):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::initParenContextFreeList):
(JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
(JSC::Yarr::YarrGenerator::generate):

3:55 AM Changeset in webkit [229253] by Carlos Garcia Campos
  • 7 edits
    2 moves
    1 add
    1 delete in releases/WebKitGTK/webkit-2.20

Merge r229079 - Standardize terminology for marked text
https://bugs.webkit.org/show_bug.cgi?id=180999

Reviewed by Zalan Bujtas.

The name MarkerSubrange is a misnomer for a data structure that associates a text subrange with a type
and optional document marker. In particular, a MarkerSubrange may not always correspond to a document
marker. For instance, selected text is represented using a MarkerSubrange that does not have a
corresponding document marker. Let's standardize on the phrase "marked text" as the canonical way to
describe these tagged text subranges.

Source/WebCore:

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

(WebCore::InlineTextBox::localSelectionRect const):
(WebCore::InlineTextBox::MarkedTextStyle::areBackgroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areForegroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual):
(WebCore::InlineTextBox::StyledMarkedText::StyledMarkedText):
(WebCore::createMarkedTextFromSelectionInBox):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintPlatformDocumentMarkers):
(WebCore::InlineTextBox::paintPlatformDocumentMarker):
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkedText const):
(WebCore::InlineTextBox::resolveStyleForMarkedText):
(WebCore::InlineTextBox::subdivideAndResolveStyle):
(WebCore::InlineTextBox::coalesceAdjacentMarkedTexts):
(WebCore::InlineTextBox::collectMarkedTextsForDraggedContent):
(WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers):
(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::MarkerSubrangeStyle::areBackgroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areForegroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areDecorationMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::StyledMarkerSubrange::StyledMarkerSubrange): Deleted.
(WebCore::createMarkerSubrangeFromSelectionInBox): Deleted.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkerSubrange const): Deleted.
(WebCore::InlineTextBox::resolveStyleForSubrange): Deleted.
(WebCore::InlineTextBox::coalesceAdjacentSubranges): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDraggedContent): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDocumentMarkers): Deleted.
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeBackground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeForeground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeDecoration): Deleted.

  • rendering/InlineTextBox.h:

(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.

  • rendering/MarkedText.cpp: Renamed from Source/WebCore/rendering/MarkerSubrange.cpp.

(WebCore::subdivide):

  • rendering/MarkedText.h: Renamed from Source/WebCore/rendering/MarkerSubrange.h.

(WebCore::MarkedText::MarkedText):
(WebCore::MarkedText::isEmpty const):
(WebCore::MarkedText::operator!= const):
(WebCore::MarkedText::operator== const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp: Added.

(WebCore::operator<<):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Removed.
3:54 AM Changeset in webkit [229252] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229061 - Potential privacy issue: DNS prefetching can be re-enabled
https://bugs.webkit.org/show_bug.cgi?id=182924

Patch by Milan Crha <mcrha@redhat.com> on 2018-02-27
Reviewed by Michael Catanzaro.

  • dom/Document.cpp:

(WebCore::Document::parseDNSPrefetchControlHeader):

3:54 AM Changeset in webkit [229251] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r229057 - Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071

JSTests:

  • stress/has-indexed-property-array-storage-ftl.js:
  • stress/has-indexed-property-slow-put-array-storage-ftl.js:

Tools:

  • Scripts/run-jsc-stress-tests:
3:35 AM Changeset in webkit [229250] by Carlos Garcia Campos
  • 35 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r229054 - Modernize FINALIZE_CODE and peer macros to use VA_ARGS arguments.
https://bugs.webkit.org/show_bug.cgi?id=183159
<rdar://problem/37930837>

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • assembler/LinkBuffer.h:
  • assembler/testmasm.cpp:

(JSC::compile):

  • b3/B3Compile.cpp:

(JSC::B3::compile):

  • b3/air/testair.cpp:
  • b3/testb3.cpp:

(JSC::B3::testEntrySwitchSimple):
(JSC::B3::testEntrySwitchNoEntrySwitch):
(JSC::B3::testEntrySwitchWithCommonPaths):
(JSC::B3::testEntrySwitchWithCommonPathsAndNonTrivialEntrypoint):
(JSC::B3::testEntrySwitchLoop):

  • bytecode/InlineAccess.cpp:

(JSC::linkCodeInline):
(JSC::InlineAccess::rewireStubAsJump):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileOSRExit):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitThunkGenerator):
(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeCommon):

  • ftl/FTLLazySlowPath.cpp:

(JSC::FTL::LazySlowPath::generate):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/ExecutableAllocator.cpp:
  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITMathIC.h:

(JSC::isProfileEmpty):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/JITStubRoutine.h:
  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmThunks.cpp:

(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):
(JSC::Wasm::triggerOMGTierUpThunkGenerator):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):

  • yarr/YarrJIT.cpp:

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

Source/WebCore:

No new tests needed because this is just a refactoring patch.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

3:22 AM Changeset in webkit [229249] by Carlos Garcia Campos
  • 10 edits
    3 adds in releases/WebKitGTK/webkit-2.20

Merge r229053 - [FTL] Support PutByVal(ArrayStorage/SlowPutArrayStorage)
https://bugs.webkit.org/show_bug.cgi?id=182965

Reviewed by Saam Barati.

JSTests:

  • stress/put-by-val-array-storage.js: Added.

(shouldBe):
(testArrayStorageInBounds):

  • stress/put-by-val-direct-out-of-bounds-setter.js: Added.

(shouldBe):
(testInt32.createBuiltin):
(set for):

  • stress/put-by-val-slow-put-array-storage.js: Added.

(shouldBe):
(testArrayStorageInBounds):

Source/JavaScriptCore:

This patch extends FTL coverage for PutByVal by adding ArrayStorage and SlwoPutArrayStorage support.
Basically large part of the patch is porting from DFG code. Since PutByVal already emits CheckInBounds
for InBounds case, we do not have OutOfBounds check for that case.
This is the last change for FTL to support all the types of DFG nodes except for CreateThis.

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

(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
For consistency, we use operationPutByValXXX and operationPutByValDirectXXX.
But except for SlowPutArrayStorage case, basically it is meaningless since
we do not have indexed accessors.

3:22 AM Changeset in webkit [229248] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r229036 - validateStackAccess should not validate if the offset is within the stack bounds
https://bugs.webkit.org/show_bug.cgi?id=183067
<rdar://problem/37749988>

Reviewed by Mark Lam.

JSTests:

  • stress/dont-validate-stack-offset-in-b3-because-it-might-be-guarded-by-control-flow.js: Added.

(assert):
(test.a):
(test.b):
(test):

Source/JavaScriptCore:

The validation rule was saying that any load from the stack must be
within the stack bounds of the frame. However, it's natural for a user
of B3 to emit code that may be outside of B3's stack bounds, but guard
such a load with a branch. The FTL does exactly this with GetMyArgumentByVal.
B3 is wrong to assert that this is a static property about all stack loads.

  • b3/B3Validate.cpp:
3:22 AM Changeset in webkit [229247] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r229028 - MessagePort is not always destroyed in the right thread
https://bugs.webkit.org/show_bug.cgi?id=183053

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-26
Reviewed by Chris Dumez.

Source/WebCore:

Make existingMessagePortForIdentifier take a lambda so that we hold the lock until there
is no longer a need to keep the MessagePort around.
This is very time sensitive and does not happen a lot when running WPT tests.

Update existing call sites to pass a lambda.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::existingMessagePortForIdentifier):

  • dom/MessagePort.h:
  • dom/messageports/MessagePortChannelProviderImpl.cpp:

(WebCore::MessagePortChannelProviderImpl::postMessageToRemote):
(WebCore::MessagePortChannelProviderImpl::checkProcessLocalPortForActivity):

Source/WebKit:

Update code to pass a lambda to MessagePort::existingMessagePortForIdentifier.

  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:

(WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::messagesAvailableForPort):

3:22 AM Changeset in webkit [229246] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229004 - Fix build error with !LOG_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=183049

Reviewed by Philippe Normand.

The following error message was being reported when doing a
release build with -DLOG_DISABLED=0:

../../Source/WebCore/dom/messageports/MessagePortChannel.cpp: In member function ‘void WebCore::MessagePortChannel::entanglePortWithProcess(const WebCore::MessagePortIdentifier&, WebCore::ProcessIdentifier)’:

3:22 AM Changeset in webkit [229245] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.20

Merge r229027 - Unreviewed, rolling out r226745.
https://bugs.webkit.org/show_bug.cgi?id=183132

This is breaking some websites (Requested by youenn on

Reverted changeset:

"Use no-cache fetch mode when loading main documents with
location.reload()"
https://bugs.webkit.org/show_bug.cgi?id=181285
https://trac.webkit.org/changeset/226745

3:21 AM Changeset in webkit [229244] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/JSTests

Merge r228986 - Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071

  • stress/has-indexed-property-array-storage-ftl.js:
  • stress/has-indexed-property-slow-put-array-storage-ftl.js:
3:21 AM Changeset in webkit [229243] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r228984 - [WK2] http/tests/navigation/new-window-redirect-history.html crashes
https://bugs.webkit.org/show_bug.cgi?id=127683

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-25
Reviewed by Dan Bernstein.

Tools:

m_previousTestBackForwardListItem was null for the new window.
m_previousTestBackForwardListItem is initialized only for the main
window in InjectedBundlePage::prepare.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dumpBackForwardList):
Do null-check of m_previousTestBackForwardListItem.

LayoutTests:

  • platform/ios-wk2/TestExpectations:

Unmarked http/tests/navigation/new-window-redirect-history.html.

  • platform/wk2/TestExpectations: Ditto.
3:12 AM Changeset in webkit [229242] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, fix MediaTime test
https://bugs.webkit.org/show_bug.cgi?id=183319

builtin_xxx_overflow writes overflowed data into ResultType value even if overflow happens.
This is different from the original CheckedArithmetic semantics.

  • wtf/CheckedArithmetic.h:
3:10 AM Changeset in webkit [229241] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.20/Tools

Merge r228983 - Various crashes in WebKitTestRunner, especially when system is under heavy load
https://bugs.webkit.org/show_bug.cgi?id=183109

Reviewed by Tim Horton.

WebKitTestRunner had many places where it sent messages to WebContent with a timeout,
but it didn't handle the timeout when it did occur. Nearly all of those would result
in logic errors and failing tests, and most would even result in stack corruption,
as the response handler modified local variables.

There is only one timeout scenario that we actually mean to handle in WKTR. That's
when a test freezes after it is done (e.g. an infinite loop in beforeunload) - we don't
want to blame the next test for freezing, so we silently relaunch WebContent.
Everything else is cargo cult code that never worked.

This patch addresses the crashes, and actually makes tests pass a lot more on an
overloaded system.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Moved m_doneResetting assignment
to where it's actually needed, for clarity.
(WTR::TestController::reattachPageToWebProcess): This function used to always hit
and ignore message timeout, as m_doneResetting is only updated by navigation callback
when the state is Resetting. This change makes it faster.
(WTR::TestController::platformResetStateToConsistentValues): Style fix.
(WTR::TestController::clearServiceWorkerRegistrations): Timing out here wasn't
handled in a meaningful manner, and would even corrupt the stack.
(WTR::TestController::clearDOMCache): Ditto.
(WTR::TestController::clearDOMCaches): Ditto.
(WTR::TestController::hasDOMCache): Ditto.
(WTR::TestController::domCacheSize): Ditto.
(WTR::TestController::isStatisticsPrevalentResource): Ditto.
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder): Ditto.
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo): Ditto.
(WTR::TestController::isStatisticsHasHadUserInteraction): Ditto.
(WTR::TestController::isStatisticsGrandfathered): Ditto.
(WTR::TestController::statisticsUpdateCookiePartitioning): Ditto.
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost): Ditto.
(WTR::TestController::statisticsClearInMemoryAndPersistentStore): Ditto.
(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours): Ditto.
(WTR::TestController::statisticsClearThroughWebsiteDataRemoval): Ditto.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::shortTimeout const): Made shortTimeout shorter (on a hunch).
(WTR::TestInvocation::invoke): Removed a timeout waiting for initial response. There
is never a logical reason for such a timeout, as we always have a new or responsive
WebContent process here.
(WTR::TestInvocation::dumpResults): Removed another timeout that we don't know how to
properly handle.
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle): Removed assignment to
m_errorMessage, which had no effect in this context.

  • WebKitTestRunner/TestInvocation.h: Removed no longer used code.
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues): Use a named constant for
no timeout.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformConfigureViewForTest): Removed a useless timeout.
Not sure if timing out here would corrupt the stack or not, but there is no reason
to impose arbitrary limits on individual steps of a test.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformConfigureViewForTest): Use a named constant for
no timeout.

3:10 AM Changeset in webkit [229240] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228975 - Null-dereference of the second argument resource of DocumentLoader::scheduleSubstituteResourceLoad
https://bugs.webkit.org/show_bug.cgi?id=182920

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-24
Reviewed by Darin Adler.

A test case
imported/w3c/web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.html
always crashes due to a null-dereference if compiled and optimized
by GCC 7.2. The second argument resource of
DocumentLoader::scheduleSubstituteResourceLoad can be null if the
resource can't be found in cache. I guess GCC optimizes inline
HashMap::add based on assuming the resource never becomes null
because its type is SubstituteResource&.

This changes introduces a new method
DocumentLoader::scheduleCannotShowURLError because it looks tricky
to pass a nullptr to the second argument of
scheduleSubstituteResourceLoad.

No new tests (Covered by existing tests).

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::scheduleCannotShowURLError): Added a new method.

  • loader/DocumentLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadResource):
Call scheduleCannotShowURLError if the resource not found in the appcache.

3:10 AM Changeset in webkit [229239] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228972 - Crash under SchemeRegistry::shouldTreatURLSchemeAsLocal(WTF::String const&)
https://bugs.webkit.org/show_bug.cgi?id=183066
<rdar://problem/37804111>

Reviewed by Ryosuke Niwa.

SecurityOrigin objects are constructed on various threads. However, someone added a
shouldTreatAsPotentiallyTrustworthy() call to the SecurityOrigin constructor which
was not thread safe. This is because this function relies on SchemeRegistry::shouldTreatURLSchemeAsSecure()
and SchemeRegistry::shouldTreatURLSchemeAsLocal() which were relying on global static HashMaps without
locks.

Update SecurityOrigin to initialize m_isPotentiallyTrustworthy lazily, to avoid paying
initialization cost in the constructor. This is only queries by SecurityContext::isSecureContext().

Make SchemeRegistry::shouldTreatURLSchemeAsLocal() and SchemeRegistry::shouldTreatURLSchemeAsSecure()
thread-safe, since they are needed to initialize SecurityOrigin::m_isPotentiallyTrustworthy from
various threads.

SchemeRegistry::shouldTreatURLSchemeAsSecure() is only called from SecurityOrigin (which requires
thread-safety), and getUserMedia() which is not hot code so the extra locking there should not
be an issue.

SchemeRegistry::shouldTreatURLSchemeAsLocal() is called from SecurityOrigin (which requires thread-
safety). It is also called from isQuickLookPreviewURL(), MHTMLArchive::create(), Page::userStyleSheetLocationChanged(),
isRemoteWebArchive() and HTMLPlugInImageElement. All these are not hot code so I do not think
we need a fast path.

  • page/SecurityOrigin.cpp:

(WebCore::isLoopbackIPAddress):
(WebCore::shouldTreatAsPotentiallyTrustworthy):
(WebCore::SecurityOrigin::isPotentiallyTrustworthy const):
(WebCore::SecurityOrigin::isLocalHostOrLoopbackIPAddress):

  • page/SecurityOrigin.h:
  • platform/SchemeRegistry.cpp:

(WebCore::localURLSchemesLock):
(WebCore::localURLSchemes):
(WebCore::secureSchemesLock):
(WebCore::secureSchemes):
(WebCore::SchemeRegistry::registerURLSchemeAsLocal):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::SchemeRegistry::registerURLSchemeAsSecure):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure):

  • platform/SchemeRegistry.h:
2:50 AM Changeset in webkit [229238] by Carlos Garcia Campos
  • 20 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r228968 - Make Number.isInteger an intrinsic
https://bugs.webkit.org/show_bug.cgi?id=183088

Reviewed by JF Bastien.

JSTests:

  • stress/number-is-integer-intrinsic.js: Added.

Source/JavaScriptCore:

When profiling the ML subtest in ARES, I noticed it was spending some
time in Number.isInteger. This patch makes that operation an intrinsic
in the DFG/FTL. It might be a speedup by 1% or so on that subtest, but
it's likely not an aggregate speedup on ARES. However, it is definitely
faster than calling into a builtin function, so we might as well have
it as an intrinsic.

  • 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/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberIsInteger):
(JSC::FTL::DFG::LowerDFGToB3::unboxDouble):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

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

(JSC::NumberConstructor::finishCreation):
(JSC::numberConstructorFuncIsInteger):

  • runtime/NumberConstructor.h:

(JSC::NumberConstructor::isIntegerImpl):

2:50 AM Changeset in webkit [229237] by Carlos Garcia Campos
  • 9 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r228966 - WebAssembly: cache memory address / size on instance
https://bugs.webkit.org/show_bug.cgi?id=177305

Reviewed by JF Bastien.

JSTests:

  • wasm/function-tests/memory-reuse.js: Added.

(createWasmInstance):
(doCheckTrap):
(doMemoryGrow):
(doCheck):
(checkWasmInstancesWithSharedMemory):

Source/JavaScriptCore:

Cache memory address/size in wasm:Instance to avoid load wasm:Memory
object during access to memory and memory size property in JiT

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::cachedMemorySize const):
(JSC::Wasm::Instance::createWeakPtr):
(JSC::Wasm::Instance::setMemory):
(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedMemorySize):
(JSC::Wasm::Instance::offsetOfCachedIndexingMask):
(JSC::Wasm::Instance::allocationSize):

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::registerInstance):

  • wasm/WasmMemory.h:

(JSC::Wasm::Memory::indexingMask):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::evaluate):

2:49 AM Changeset in webkit [229236] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228954 - [RenderTreeBuilder] Make RenderTreeBuilder::* classes WTF_MAKE_FAST_ALLOCATED
https://bugs.webkit.org/show_bug.cgi?id=183084
<rdar://problem/37828706>

Reviewed by Antti Koivisto.

  • rendering/updating/RenderTreeBuilderBlock.h:
  • rendering/updating/RenderTreeBuilderBlockFlow.h:
  • rendering/updating/RenderTreeBuilderContinuation.h:
  • rendering/updating/RenderTreeBuilderFirstLetter.h:
  • rendering/updating/RenderTreeBuilderFormControls.h:
  • rendering/updating/RenderTreeBuilderFullScreen.h:
  • rendering/updating/RenderTreeBuilderInline.h:
  • rendering/updating/RenderTreeBuilderList.h:
  • rendering/updating/RenderTreeBuilderMathML.h:
  • rendering/updating/RenderTreeBuilderMultiColumn.h:
  • rendering/updating/RenderTreeBuilderRuby.h:
  • rendering/updating/RenderTreeBuilderSVG.h:
  • rendering/updating/RenderTreeBuilderTable.h:
  • rendering/updating/RenderTreeUpdaterGeneratedContent.h:
2:49 AM Changeset in webkit [229235] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WTF

Merge r228953 - warning: unused variable 'InitialBufferSize' in Assertions.cpp
https://bugs.webkit.org/show_bug.cgi?id=183076

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-23
Reviewed by Yusuke Suzuki.

  • wtf/Assertions.cpp: Moved the definition of InitialBufferSize to inside #if.
2:49 AM Changeset in webkit [229234] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r228952 - ArgumentsEliminationPhase has a branch on GetByOffset that should be an assert
https://bugs.webkit.org/show_bug.cgi?id=182982

Reviewed by Yusuke Suzuki.

I don't know why this check was not always an assert. When we see
a GetByOffset on an eliminated allocation, that allocation *must*
be a PhantomClonedArguments. If it weren't, the GetByOffset would
have escaped it. Because this transformation happens by visiting
blocks in pre-order, and by visiting nodes in a block starting from
index zero to index block->size() - 1, we're guaranteed that eliminated
allocations get transformed before users of it, since we visit nodes
in dominator order.

  • dfg/DFGArgumentsEliminationPhase.cpp:
2:49 AM Changeset in webkit [229233] by Carlos Garcia Campos
  • 32 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r228950 - [JSC] Implement $vm.ftlTrue function for FTL testing
https://bugs.webkit.org/show_bug.cgi?id=183071

Reviewed by Mark Lam.

JSTests:

  • stress/dead-fiat-value-to-int52-then-exit-not-double.js:

(foo):

  • stress/dead-fiat-value-to-int52-then-exit-not-int52.js:

(foo):

  • stress/dead-fiat-value-to-int52.js:

(foo):

  • stress/dead-osr-entry-value.js:

(foo):

  • stress/fiat-value-to-int52-then-exit-not-double.js:

(foo):

  • stress/fiat-value-to-int52-then-exit-not-int52.js:

(foo):

  • stress/fiat-value-to-int52-then-fail-to-fold.js:

(foo):

  • stress/fiat-value-to-int52-then-fold.js:

(foo):

  • stress/fiat-value-to-int52.js:

(foo):

  • stress/fold-based-on-int32-proof-mul-branch.js:

(foo):

  • stress/fold-profiled-call-to-call.js:

(foo):

  • stress/fold-to-double-constant-then-exit.js:

(foo):

  • stress/fold-to-int52-constant-then-exit.js:

(foo):

  • stress/fold-to-primitive-in-cfa.js:

(foo):

  • stress/fold-to-primitive-to-identity-in-cfa.js:

(foo):

  • stress/has-indexed-property-array-storage-ftl.js: Added.

(shouldBe):
(test1):
(test2):

  • stress/has-indexed-property-slow-put-array-storage-ftl.js: Added.

(shouldBe):
(test1):
(test2):

  • stress/int52-ai-add-then-filter-int32.js:

(foo):

  • stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js:

(foo):

  • stress/int52-ai-mul-then-filter-int32.js:

(foo):

  • stress/int52-ai-neg-then-filter-int32.js:

(foo):

  • stress/int52-ai-sub-then-filter-int32.js:

(foo):

  • stress/licm-pre-header-cannot-exit-nested.js:

(foo):

  • stress/licm-pre-header-cannot-exit.js:

(foo):

  • stress/sparse-array-entry-update-144067.js:

(useMemoryToTriggerGCs):

  • stress/test-spec-misc.js:

(foo):

  • stress/tricky-array-bounds-checks.js:

(foo):

Source/JavaScriptCore:

Add $vm.ftlTrue, which becomes true if the caller is compiled in FTL.
This is useful for testing whether the caller function is compiled in FTL.

We also remove duplicate DFGTrue function in jsc.cpp. We have $vm.dfgTrue.

  • dfg/DFGByteCodeParser.cpp:

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

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionFalse1):
(functionFalse2): Deleted.

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • tools/JSDollarVM.cpp:

(JSC::functionFTLTrue):
(JSC::JSDollarVM::finishCreation):

2:49 AM Changeset in webkit [229232] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228949 - [RenderTreeBuilder] Move RenderFullScreen::createPlaceholder to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=183027
<rdar://problem/37773058>

Reviewed by Antti Koivisto.

No change in functionality.

  • dom/Document.cpp:

(WebCore::Document::setFullScreenRenderer):

  • dom/Document.h:
  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
(WebCore::RenderFullScreenPlaceholder::isRenderFullScreenPlaceholder const):
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(): Deleted.
(WebCore::RenderFullScreen::createPlaceholder): Deleted.

  • rendering/RenderFullScreen.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::createPlaceholderForFullScreen):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderFullScreen.cpp:

(WebCore::RenderTreeBuilder::FullScreen::createPlaceholder):

  • rendering/updating/RenderTreeBuilderFullScreen.h:
2:48 AM Changeset in webkit [229231] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228948 - [RenderTreeBuilder] Add WARN_UNUSED_RETURN to detach()
https://bugs.webkit.org/show_bug.cgi?id=183073
<rdar://problem/37814585>

Reviewed by Antti Koivisto.

So that we don't destroy a renderer accidentally.

  • rendering/updating/RenderTreeBuilderBlock.h:
  • rendering/updating/RenderTreeBuilderRuby.h:
  • rendering/updating/RenderTreeBuilderSVG.h:
2:13 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
2:10 AM Changeset in webkit [229230] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228945 - [GStreamer] HTTP totalBytes query returns 0 after seeking (sometimes)
https://bugs.webkit.org/show_bug.cgi?id=183002

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init): Initialize member variables. Also no need
to set the appsrc size at that point.
(webKitWebSrcStop): There is no need to reset the size when
seeking. Size should in most cases represent the Content-Length
response attribute, even when seeking.
(webKitWebSrcStart): No need to reset the size attribute.
(webKitWebSrcQueryWithParent): Let appsrc handle DURATION queries.
(CachedResourceStreamingClient::responseReceived): Emit duration notification one time only.

2:10 AM Changeset in webkit [229229] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228944 - [GStreamer] media/video-src-blob-using-open-panel.html crashes in Debug
https://bugs.webkit.org/show_bug.cgi?id=183005

Reviewed by Xabier Rodriguez-Calvar.

Test: media/video-src-blob-using-open-panel.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::convertToInternalProtocol): Also convert blob URIs
because they're handled by our httpsrc element.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcGetProtocols): Prefix blob URIs too, for consistency purpose.

2:09 AM Changeset in webkit [229228] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r228943 - [FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=182792

Reviewed by Mark Lam.

JSTests:

  • stress/has-indexed-property-array-storage.js: Added.

(shouldBe):
(test1):
(test2):

  • stress/has-indexed-property-slow-put-array-storage.js: Added.

(shouldBe):
(test1):
(test2):

Source/JavaScriptCore:

This patch adds HasIndexedProperty for ArrayStorage and SlowPutArrayStorage in FTL.
HasIndexedProperty with ArrayStorage frequently causes FTL compilation failures
in web-tooling-benchmarks.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):

2:07 AM Changeset in webkit [229227] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r228979 - Unreviewed GTK Debug build fix after r228942.

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::iconDatabaseSyncThread):
(WebKit::IconDatabase::syncThreadMainLoop):
(WebKit::IconDatabase::readFromDatabase):
(WebKit::IconDatabase::writeToDatabase):
(WebKit::IconDatabase::cleanupSyncThread):

2:06 AM Changeset in webkit [229226] by Carlos Garcia Campos
  • 76 edits in releases/WebKitGTK/webkit-2.20

Merge r228942 - Remove currentTime() / currentTimeMS()
https://bugs.webkit.org/show_bug.cgi?id=183052

Reviewed by Mark Lam.

Source/WebCore:

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::haveSuitableCachedPosition):

  • dom/DOMTimeStamp.h:

(WebCore::convertSecondsToDOMTimeStamp):

  • fileapi/File.cpp:

(WebCore::File::File):
(WebCore::File::lastModified const):

  • history/HistoryItem.cpp:

(WebCore::generateSequenceNumber):

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::defaultValueForStepUp const):

  • html/DateTimeInputType.cpp:

(WebCore::DateTimeInputType::defaultValueForStepUp const):

  • html/MonthInputType.cpp:

(WebCore::MonthInputType::defaultValueForStepUp const):

  • html/TimeInputType.cpp:

(WebCore::TimeInputType::defaultValueForStepUp const):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::willSendRequest):
(WebCore::InspectorNetworkAgent::willSendWebSocketHandshakeRequest):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FormSubmission.cpp:

(WebCore::generateFormDataIdentifier):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clientRedirected):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/NavigationScheduler.cpp:
  • page/History.cpp:

(WebCore::History::stateObjectAdded):

  • page/History.h:
  • page/PageOverlay.cpp:

(WebCore::PageOverlay::startFadeAnimation):
(WebCore::PageOverlay::fadeAnimationTimerFired):

  • page/PageOverlay.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/ios/LegacyTileLayerPool.h:
  • platform/ios/LegacyTileLayerPool.mm:

(WebCore::LegacyTileLayerPool::LegacyTileLayerPool):
(WebCore::LegacyTileLayerPool::addLayer):
(WebCore::LegacyTileLayerPool::decayedCapacity const):
(WebCore::LegacyTileLayerPool::prune):

  • platform/ios/SystemMemoryIOS.cpp:

(WebCore::systemMemoryLevel):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

Source/WebKit:

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:
  • PluginProcess/WebProcessConnection.cpp:
  • Shared/WebProcessCreationParameters.h:
  • Shared/linux/WebMemorySamplerLinux.cpp:

(WebKit::WebMemorySampler::sampleWebKit const):

  • Shared/mac/WebMemorySampler.mac.mm:

(WebKit::WebMemorySampler::sampleWebKit const):

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::setIconDataForIconURL):
(WebKit::IconDatabase::synchronousLoadDecisionForIconURL):
(WebKit::IconDatabase::performURLImport):

  • UIProcess/DrawingAreaProxyImpl.cpp:
  • UIProcess/Plugins/PlugInAutoStartProvider.cpp:

(WebKit::expirationTimeFromNow):
(WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy const):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
(WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):

  • UIProcess/Plugins/PlugInAutoStartProvider.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::startMemorySampler):
(WebKit::WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):

  • UIProcess/WebProcessPool.h:
  • WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:

(API::InjectedBundle::PageLoaderClient::willPerformClientRedirectForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::isPlugInAutoStartOriginHash):
(WebKit::WebProcess::plugInDidStartFromOrigin):
(WebKit::WebProcess::didAddPlugInAutoStartOriginHash):
(WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes):
(WebKit::WebProcess::resetPlugInAutoStartOriginHashes):
(WebKit::WebProcess::plugInDidReceiveUserInteraction):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:
  • WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchWillPerformClientRedirect):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchWillPerformClientRedirect):

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebDownload.h:
  • WebDownloadCFNet.cpp:

(WebDownload::didStart):
(WebDownload::didReceiveData):
(WebDownload::didFinish):

Source/WTF:

This patch removes WTF::currentTime() and WTF::currentTimeMS().
We have fancy WallTime APIs. It has strong types like WallTime and Seconds,
and this reduces the chance of bugs mixing doubles which represent milliseconds
and seconds.

  • wtf/Condition.h:
  • wtf/CurrentTime.cpp:

(WTF::currentTime):
(WTF::WallTime::now):

  • wtf/CurrentTime.h:

(WTF::currentTimeMS): Deleted.

  • wtf/DateMath.h:

(WTF::jsCurrentTime):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionallyImpl):

  • wtf/ThreadingPrimitives.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::ThreadCondition::timedWait):

  • wtf/ThreadingWin.cpp:

(WTF::ThreadCondition::timedWait):
(WTF::absoluteTimeToWaitTimeoutInterval):

  • wtf/WallTime.cpp:

(WTF::WallTime::now): Deleted.

  • wtf/WallTime.h:

Tools:

  • DumpRenderTree/TestRunner.cpp:

(preciseTimeCallback):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setMockGeolocationPosition):

  • TestWebKitAPI/Tests/WTF/Condition.cpp:
  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
  • WebKitTestRunner/GeolocationProviderMock.cpp:

(WTR::GeolocationProviderMock::setPosition):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::preciseTime):

1:46 AM Changeset in webkit [229225] by Carlos Garcia Campos
  • 36 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228938 - [RenderTreeBuilder] Rename insertChild() -> attach(), takeChild() -> detach() and removeAndDestroy() -> destroy()
https://bugs.webkit.org/show_bug.cgi?id=183061
<rdar://problem/37800269>

Reviewed by Ryosuke Niwa.

...and moveChildTo() -> move() (moveChildrenTo() -> moveChildren()),
removeFromParentAndDestroyCleaningUpAnonymousWrappers() -> destroyAndCleanUpAnonymousWrappers()

No change in functionality.

  • dom/Document.cpp:

(WebCore::Document::destroyRenderTree):
(WebCore::Document::setFullScreenRenderer):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::setText):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::didAttachChild):
(WebCore::RenderElement::didInsertChild): Deleted.

  • rendering/RenderElement.h:
  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
(WebCore::RenderFullScreen::createPlaceholder):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::didAttachChild):
(RenderMenuList::setText):
(RenderMenuList::didInsertChild): Deleted.

  • rendering/RenderMenuList.h:
  • rendering/RenderQuote.cpp:

(WebCore::RenderQuote::updateTextRenderer):

  • rendering/RenderTextFragment.cpp:

(WebCore::RenderTextFragment::setText):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroy):
(WebCore::RenderTreeBuilder::attach):
(WebCore::RenderTreeBuilder::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::detach):
(WebCore::RenderTreeBuilder::attachToRenderElement):
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):
(WebCore::RenderTreeBuilder::moveAllChildren):
(WebCore::RenderTreeBuilder::moveChildren):
(WebCore::RenderTreeBuilder::moveAllChildrenIncludingFloats):
(WebCore::RenderTreeBuilder::makeChildrenNonInline):
(WebCore::RenderTreeBuilder::splitAnonymousBoxesAroundChild):
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
(WebCore::RenderTreeBuilder::detachFromRenderGrid):
(WebCore::RenderTreeBuilder::detachFromRenderElement):
(WebCore::RenderTreeBuilder::attachToRenderGrid):
(WebCore::RenderTreeBuilder::removeAndDestroy): Deleted.
(WebCore::RenderTreeBuilder::insertChild): Deleted.
(WebCore::RenderTreeBuilder::insertChildIgnoringContinuation): Deleted.
(WebCore::RenderTreeBuilder::takeChild): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderElement): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderElementInternal): Deleted.
(WebCore::RenderTreeBuilder::moveChildTo): Deleted.
(WebCore::RenderTreeBuilder::moveAllChildrenTo): Deleted.
(WebCore::RenderTreeBuilder::moveChildrenTo): Deleted.
(WebCore::RenderTreeBuilder::moveAllChildrenIncludingFloatsTo): Deleted.
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderGrid): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderElement): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderGrid): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::attach):
(WebCore::RenderTreeBuilder::Block::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Block::removeLeftoverAnonymousBlock):
(WebCore::RenderTreeBuilder::Block::detach):
(WebCore::RenderTreeBuilder::Block::dropAnonymousBoxChild):
(WebCore::RenderTreeBuilder::Block::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Block::insertChildIgnoringContinuation): Deleted.
(WebCore::RenderTreeBuilder::Block::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderBlock.h:
  • rendering/updating/RenderTreeBuilderBlockFlow.cpp:

(WebCore::RenderTreeBuilder::BlockFlow::attach):
(WebCore::RenderTreeBuilder::BlockFlow::moveAllChildrenIncludingFloats):
(WebCore::RenderTreeBuilder::BlockFlow::insertChild): Deleted.
(WebCore::RenderTreeBuilder::BlockFlow::moveAllChildrenIncludingFloatsTo): Deleted.

  • rendering/updating/RenderTreeBuilderBlockFlow.h:
  • rendering/updating/RenderTreeBuilderContinuation.cpp:

(WebCore::RenderTreeBuilder::Continuation::cleanupOnDestroy):

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::cleanupOnDestroy):
(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

  • rendering/updating/RenderTreeBuilderFormControls.cpp:

(WebCore::RenderTreeBuilder::FormControls::attach):
(WebCore::RenderTreeBuilder::FormControls::detach):
(WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::FormControls::insertChild): Deleted.
(WebCore::RenderTreeBuilder::FormControls::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderFormControls.h:
  • rendering/updating/RenderTreeBuilderFullScreen.cpp:

(WebCore::RenderTreeBuilder::FullScreen::cleanupOnDestroy):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::attach):
(WebCore::RenderTreeBuilder::Inline::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Inline::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Inline::splitFlow):
(WebCore::RenderTreeBuilder::Inline::splitInlines):
(WebCore::RenderTreeBuilder::Inline::childBecameNonInline):
(WebCore::RenderTreeBuilder::Inline::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation): Deleted.

  • rendering/updating/RenderTreeBuilderInline.h:
  • rendering/updating/RenderTreeBuilderList.cpp:

(WebCore::RenderTreeBuilder::List::updateItemMarker):

  • rendering/updating/RenderTreeBuilderMathML.cpp:

(WebCore::RenderTreeBuilder::MathML::makeFences):
(WebCore::RenderTreeBuilder::MathML::attach):
(WebCore::RenderTreeBuilder::MathML::insertChild): Deleted.

  • rendering/updating/RenderTreeBuilderMathML.h:
  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):
(WebCore::RenderTreeBuilder::MultiColumn::handleSpannerRemoval):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::moveInlineChildren):
(WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):
(WebCore::RenderTreeBuilder::Ruby::attach):
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):
(WebCore::RenderTreeBuilder::Ruby::detach):
(WebCore::RenderTreeBuilder::Ruby::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Ruby::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderRuby.h:
  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):
(WebCore::RenderTreeBuilder::SVG::insertChild): Deleted.
(WebCore::RenderTreeBuilder::SVG::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderSVG.h:
  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::Table::attach):
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
(WebCore::RenderTreeBuilder::Table::insertChild): Deleted.

  • rendering/updating/RenderTreeBuilderTable.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::createTextRenderer):
(WebCore::RenderTreeUpdater::tearDownRenderers):
(WebCore::RenderTreeUpdater::tearDownTextRenderer):
(WebCore::RenderTreeUpdater::tearDownLeftoverPaginationRenderersIfNeeded):

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::createContentRenderers):

1:45 AM Changeset in webkit [229224] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228934 - ResourceRequestBase::isolatedCopy() fails to isolate copy the cachePartition
https://bugs.webkit.org/show_bug.cgi?id=183059
<rdar://problem/37800202>

Reviewed by Youenn Fablet.

Update ResourceRequestBase::setAsIsolatedCopy() to call isolatedCopy() on the cachePartition as well,
given that it is a String and it would not be safe to send it to another thread otherwise.

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy):

1:38 AM Changeset in webkit [229223] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r228932 - Refactor MacroAssembler code to improve reuse and extensibility.
https://bugs.webkit.org/show_bug.cgi?id=183054
<rdar://problem/37797337>

Reviewed by Saam Barati.

  • assembler/ARM64Assembler.h:
  • assembler/MacroAssembler.cpp:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::canCompact):
(JSC::MacroAssemblerARM64::computeJumpType):
(JSC::MacroAssemblerARM64::jumpSizeDelta):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load64WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::load32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store64WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::store32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::getEffectiveAddress):
(JSC::MacroAssemblerARM64::branchDoubleNonZero):
(JSC::MacroAssemblerARM64::branchDoubleZeroOrNaN):
(JSC::MacroAssemblerARM64::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::moveConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::moveDoubleConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::storeFloat):
(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::jump):
(JSC::MacroAssemblerARM64::tailRecursiveCall):
(JSC::MacroAssemblerARM64::setCarry):
(JSC::MacroAssemblerARM64::reemitInitialMoveWithPatch):
(JSC::MacroAssemblerARM64::isBreakpoint):
(JSC::MacroAssemblerARM64::invert):
(JSC::MacroAssemblerARM64::readCallTarget):
(JSC::MacroAssemblerARM64::replaceWithVMHalt):
(JSC::MacroAssemblerARM64::replaceWithJump):
(JSC::MacroAssemblerARM64::maxJumpReplacementSize):
(JSC::MacroAssemblerARM64::patchableJumpSize):
(JSC::MacroAssemblerARM64::repatchCall):
(JSC::MacroAssemblerARM64::makeBranch):
(JSC::MacroAssemblerARM64::makeCompareAndBranch):
(JSC::MacroAssemblerARM64::makeTestBitAndBranch):
(JSC::MacroAssemblerARM64::ARM64Condition):
(JSC::MacroAssemblerARM64::moveWithFixedWidth):
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):
(JSC::MacroAssemblerARM64::tryLoadWithOffset):
(JSC::MacroAssemblerARM64::tryLoadSignedWithOffset):
(JSC::MacroAssemblerARM64::tryStoreWithOffset):
(JSC::MacroAssemblerARM64::jumpAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::linkCall):

  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerMIPS.h:
  • assembler/MacroAssemblerX86Common.h:
  • assembler/ProbeStack.h:
  • Removed a forward declaration of an obsolete class.
1:27 AM Changeset in webkit [229222] by Carlos Garcia Campos
  • 26 edits in releases/WebKitGTK/webkit-2.20

Merge r228926 - Remove sleep(double) and sleepMS(double) interfaces
https://bugs.webkit.org/show_bug.cgi?id=183038

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • bytecode/SuperSampler.cpp:

(JSC::initializeSuperSampler):

Source/WebKit:

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::createPluginAsynchronously):

  • UIProcess/linux/MemoryPressureMonitor.cpp:

(WebKit::pollIntervalForUsedMemoryPercentage):
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor):

  • WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WTF:

This patch removes sleep(double) and sleepMS(double) interfaces.
We can just use sleep(Seconds) instead.

  • benchmarks/LockFairnessTest.cpp:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CurrentTime.cpp:

(WTF::sleep):

  • wtf/CurrentTime.h:

(WTF::sleepMS): Deleted.

  • wtf/DebugUtilities.h:
  • wtf/Seconds.cpp:

(WTF::sleep): Deleted.

  • wtf/Seconds.h:
  • wtf/StackShotProfiler.h:

Tools:

  • DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:

(PluginTest::indicateTestFailure):

  • DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp:

(EvaluteJSWithinNPP_New::NPP_New):

  • DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp:

(InvokeDestroysPluginWithinNPP_New::NPP_New):

  • DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp:
  • TestWebKitAPI/Tests/WTF/Signals.cpp:

(TEST):

  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:

(TestWebKitAPI::testThreadGroup):

  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp:

(TestWebKitAPI::Util::sleep):

1:27 AM Changeset in webkit [229221] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r228922 - Document.open() cancels existing provisional load but not navigation policy check
https://bugs.webkit.org/show_bug.cgi?id=183012
<rdar://problem/37755831>

Reviewed by Alex Christensen.

Source/WebCore:

Test: fast/dom/Document/open-with-pending-load-async-policy.html

  • dom/Document.cpp:

(WebCore::Document::open):
The existing code was calling FrameLoader::stopAllLoaders() when the loader's state
is FrameStateProvisional. The issue is that the FrameLoader's state only gets set
to FrameStateProvisional after the policy decision for the navigation is made.
This means that we fail to cancel a pending load if is still in the policy decision
stage, which can happen when the policy decision is made asynchronously. We now
also cancel such pending navigation policy checks as well.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):
Make sure the m_delegateIsDecidingNavigationPolicy flag gets reset inside the
lambda. Otherwise, it gets reset too early when the policy decision is made
asynchronously.

LayoutTests:

Add layout test coverage.

  • fast/dom/Document/open-with-pending-load-async-policy-expected.txt: Added.
  • fast/dom/Document/open-with-pending-load-async-policy.html: Added.
1:27 AM Changeset in webkit [229220] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228917 - including both gl3.h and gl2.h when USE_OPENGL_ES is enabled
https://bugs.webkit.org/show_bug.cgi?id=183008

Reviewed by Michael Catanzaro.

Don't include GLES3 headers as we stick to GLES2 API resources.

No new tests, no behavior change.

  • platform/graphics/GLContext.cpp:
1:27 AM Changeset in webkit [229219] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228914 - [RenderTreeBuilder] Move RenderObject::insertedInto() mutation logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=183022
<rdar://problem/37764326>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::insertedIntoTree):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChildToRenderElementInternal):
(WebCore::RenderTreeBuilder::moveChildrenTo):
(WebCore::RenderTreeBuilder::multiColumnDescendantInserted): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
1:03 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
1:03 AM Changeset in webkit [229218] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.20

Merge r228594 - Remove UTF-32 BOM parsing code
https://bugs.webkit.org/show_bug.cgi?id=182900
<rdar://problem/37238717>

Patch by Daniel Bates <dabates@apple.com> on 2018-02-16
Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

Update expected results now that all sub-tests pass.

  • web-platform-tests/encoding/unsupported-encodings-expected.txt:
  • web-platform-tests/encoding/utf-32-expected.txt:

Source/WebCore:

The UTF-32 encodings were removed from the text codec registry in r224747. So,
we no longer need code to encode or decode these variants.

  • dom/TextDecoder.cpp:

(WebCore::codeUnitByteSize):

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::checkForBOM):
(WebCore::TextResourceDecoder::checkForHeadCharset):

  • platform/text/TextEncoding.cpp:

(WebCore::TextEncoding::isNonByteBasedEncoding const):
(WebCore::UTF32BigEndianEncoding): Deleted.
(WebCore::UTF32LittleEndianEncoding): Deleted.

  • platform/text/TextEncoding.h:
1:03 AM Changeset in webkit [229217] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r228522 - [WPE] Unify build of platform-specific files in WebKit layer
https://bugs.webkit.org/show_bug.cgi?id=182696

Reviewed by Žan Doberšek.

This is easy, because all needed changes were made in the previously-landed patch.

  • CMakeLists.txt:
  • PlatformWPE.cmake:
1:03 AM Changeset in webkit [229216] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r228937 - Web Inspector: REGRESSION (r228349): ImageBitmap builtin is now runtime guarded
https://bugs.webkit.org/show_bug.cgi?id=183056
<rdar://problem/37799067>

Reviewed by Joseph Pecoraro.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::WebInspectorUI):

1:03 AM Changeset in webkit [229215] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228349 - ImageBitmapRenderingContext should be Runtime guarded
https://bugs.webkit.org/show_bug.cgi?id=182665
<rdar://problem/37411410>

Reviewed by Sam Weinig.

Add a flag to ensure the ImageBitmapRenderingContext interface is only
visible when the runtime feature is enabled.

  • bindings/js/WebCoreBuiltinNames.h:
  • html/canvas/ImageBitmapRenderingContext.idl:
1:03 AM Changeset in webkit [229214] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r228336 - Web Inspector: Object.shallowEqual always fails when comparing array property values
https://bugs.webkit.org/show_bug.cgi?id=182634
<rdar://problem/37374639>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Object.shallowEqual should use Array.shallowEqual when comparing property
values, since strictly comparing objects/arrays is only true if both
operands reference the same Object.

  • UserInterface/Base/Utilities.js:

(value):

LayoutTests:

  • inspector/unit-tests/object-utilities-expected.txt:
  • inspector/unit-tests/object-utilities.html:
12:45 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
12:40 AM Changeset in webkit [229213] by Carlos Garcia Campos
  • 8 edits in trunk/WebDriverTests

Unreviewed. Update Selenium WebDriver imported tests.

  • imported/selenium/importer.json:
  • imported/selenium/py/selenium/init.py:
  • imported/selenium/py/selenium/common/exceptions.py:
  • imported/selenium/py/selenium/webdriver/init.py:
  • imported/selenium/py/selenium/webdriver/remote/webelement.py:
  • imported/selenium/py/selenium/webdriver/safari/webdriver.py:
  • imported/selenium/py/test/selenium/webdriver/common/select_class_tests.py:
12:33 AM Changeset in webkit [229212] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Automation: clicking on a disabled option element shouldn't produce an error
https://bugs.webkit.org/show_bug.cgi?id=183284

Reviewed by Brian Burg.

This was expected by selenium, but the WebDriver spec says we should simply do nothing in those cases.

14.1 Element Click.
https://w3c.github.io/webdriver/webdriver-spec.html#element-click

Fixes: imported/w3c/webdriver/tests/element_click/select.py::test_option_disabled

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::selectOptionElement):

12:30 AM Changeset in webkit [229211] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: Also ignore NoSuchwindow errors when waiting for navigation to complete
https://bugs.webkit.org/show_bug.cgi?id=183280

Reviewed by Brian Burg.

We currently ignore NoSuchFrame, but navigation or previous command might have closed the window too.

Fixes: imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testClickingOnAButtonThatClosesAnOpenWindowDoesNotCauseTheBrowserToHang

imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testCanCallGetWindowHandlesAfterClosingAWindow

  • Session.cpp:

(WebDriver::Session::waitForNavigationToComplete): Ignore NoSuchWindow errors.

12:28 AM Changeset in webkit [229210] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Automation: stale elements not detected when removed from the DOM
https://bugs.webkit.org/show_bug.cgi?id=183278

Reviewed by Brian Burg.

We detect stale elements when the page is reloaded because the maps are recreated, but if an element is removed
from the DOM for the same document we keep the nodes in the maps. We should clear stale elements before
accessing the maps.

Fixes: imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testExpectedConditionStalenessOf

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _clearStaleNodes()
(let.AutomationSessionProxy.prototype.nodeForIdentifier): Ditto.
(let.AutomationSessionProxy.prototype._clearStaleNodes): Check if cached nodes are still in document and remove them
from the maps if they aren't.

Mar 4, 2018:

6:33 PM Changeset in webkit [229209] by Yusuke Suzuki
  • 187 edits
    1 delete in trunk

[WTF] Move currentCPUTime and sleep(Seconds) to CPUTime.h and Seconds.h respectively
https://bugs.webkit.org/show_bug.cgi?id=183312

Reviewed by Mark Lam.

Source/JavaScriptCore:

Remove wtf/CurrentTime.h include pragma.

  • API/tests/ExecutionTimeLimitTest.cpp:

(currentCPUTimeAsJSFunctionCallback):
(testExecutionTimeLimit):

  • bytecode/SuperSampler.cpp:
  • dfg/DFGPlan.cpp:
  • heap/BlockDirectory.cpp:
  • heap/Heap.cpp:
  • heap/IncrementalSweeper.cpp:
  • inspector/agents/InspectorConsoleAgent.cpp:
  • inspector/agents/InspectorRuntimeAgent.cpp:
  • profiler/ProfilerDatabase.cpp:
  • runtime/CodeCache.h:
  • runtime/JSDateMath.cpp:
  • runtime/TypeProfilerLog.cpp:
  • runtime/VM.cpp:
  • runtime/Watchdog.cpp:

(JSC::Watchdog::shouldTerminate):
(JSC::Watchdog::startTimer):

  • testRegExp.cpp:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:

Source/WebCore:

Remove wtf/CurrentTime.h include pragma.

  • Modules/geolocation/Geolocation.cpp:
  • Modules/mediasource/SourceBuffer.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
  • Modules/speech/SpeechSynthesis.cpp:
  • contentextensions/ContentExtensionCompiler.cpp:
  • contentextensions/ContentExtensionParser.cpp:
  • dom/Document.cpp:
  • dom/Element.cpp:
  • dom/Event.cpp:
  • dom/ScriptedAnimationController.cpp:
  • dom/SimulatedClick.cpp:
  • fileapi/File.cpp:
  • fileapi/FileReader.cpp:
  • history/CachedPage.cpp:
  • html/BaseDateAndTimeInputType.cpp:
  • html/DateTimeInputType.cpp:
  • html/HTMLMediaElement.cpp:
  • html/MediaController.cpp:
  • html/MediaElementSession.cpp:
  • html/MonthInputType.cpp:
  • html/TimeInputType.cpp:
  • html/parser/HTMLParserScheduler.h:
  • inspector/InspectorCanvas.cpp:
  • loader/FrameLoader.cpp:
  • loader/LoadTiming.cpp:
  • loader/NavigationScheduler.cpp:
  • loader/ProgressTracker.cpp:
  • loader/cache/CachedCSSStyleSheet.cpp:
  • loader/cache/CachedImage.cpp:
  • loader/cache/CachedResource.cpp:
  • loader/cache/MemoryCache.cpp:
  • page/DOMTimer.cpp:
  • page/DOMWindow.cpp:
  • page/DragController.cpp:
  • page/EventHandler.cpp:
  • page/FocusController.cpp:
  • page/FrameView.cpp:
  • page/Page.cpp:
  • page/Performance.cpp:
  • page/PerformanceTiming.cpp:
  • page/animation/AnimationBase.cpp:
  • page/animation/CSSAnimationController.cpp:
  • page/mac/WheelEventDeltaFilterMac.mm:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
  • platform/ScrollAnimationKinetic.cpp:
  • platform/ScrollAnimationSmooth.cpp:
  • platform/ThreadTimers.cpp:
  • platform/Timer.cpp:
  • platform/audio/mac/AudioSampleDataSource.mm:
  • platform/cocoa/ScrollController.mm:
  • platform/gamepad/cocoa/GameControllerGamepad.mm:
  • platform/gamepad/mac/HIDGamepad.cpp:
  • platform/graphics/BitmapImage.cpp:
  • platform/graphics/DisplayRefreshMonitorManager.cpp:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/LayerPool.cpp:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:
  • platform/graphics/ca/win/PlatformCALayerWin.cpp:
  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
  • platform/graphics/texmap/BitmapTexturePool.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
  • platform/graphics/texmap/TextureMapper.cpp:
  • platform/graphics/texmap/TextureMapperAnimation.cpp:
  • platform/graphics/texmap/TextureMapperFPSCounter.cpp:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:
  • platform/graphics/win/GraphicsLayerDirect2D.cpp:
  • platform/gtk/PlatformKeyboardEventGtk.cpp:
  • platform/gtk/ScrollAnimatorGtk.cpp:
  • platform/ios/LegacyTileCache.mm:
  • platform/ios/LegacyTileLayerPool.mm:
  • platform/ios/ScrollViewIOS.mm:
  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:
  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
  • platform/mock/MockRealtimeMediaSource.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:
  • platform/network/CacheValidation.cpp:
  • platform/network/DNSResolveQueue.cpp:
  • platform/network/ResourceResponseBase.cpp:
  • platform/network/curl/CurlCacheEntry.cpp:
  • platform/network/soup/ResourceHandleSoup.cpp:
  • platform/text/TextEncodingRegistry.cpp:
  • platform/text/win/LocaleWin.cpp:
  • platform/win/MainThreadSharedTimerWin.cpp:
  • platform/win/PlatformMouseEventWin.cpp:
  • rendering/RenderLayerCompositor.cpp:
  • rendering/RenderProgress.cpp:
  • svg/animation/SMILTimeContainer.cpp:
  • testing/MockGamepad.cpp:
  • workers/WorkerRunLoop.cpp:

Source/WebCore/PAL:

Remove wtf/CurrentTime.h include pragma.

  • pal/system/ClockGeneric.cpp:

Source/WebKit:

Remove wtf/CurrentTime.h include pragma.

  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/cache/CacheStorageEngineCache.cpp:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
  • Platform/IPC/Connection.cpp:
  • Platform/unix/SharedMemoryUnix.cpp:
  • PluginProcess/WebProcessConnection.cpp:
  • Shared/ios/NativeWebTouchEventIOS.mm:
  • UIProcess/DrawingAreaProxyImpl.cpp:
  • UIProcess/ios/WKContentView.mm:
  • UIProcess/linux/MemoryPressureMonitor.cpp:
  • WebProcess/Gamepad/WebGamepad.cpp:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:
  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
  • WebProcess/WebProcess.cpp:
  • WebProcess/cocoa/WebProcessCocoa.mm:
  • WebProcess/gtk/WebProcessMainGtk.cpp:
  • WebProcess/win/WebProcessMainWin.cpp:
  • WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WebKitLegacy/mac:

Remove wtf/CurrentTime.h include pragma.

  • WebView/WebFrame.mm:
  • WebView/WebPDFView.mm:

Source/WebKitLegacy/win:

Remove wtf/CurrentTime.h include pragma.

  • WebDownload.cpp:
  • WebDownloadCFNet.cpp:
  • WebDropSource.cpp:

Source/WTF:

  1. currentCPUTime to CPUTime.h. It is now defined as CPUTime::forCurrentThread.

We also removes fallback implementation for currentCPUTime since (1) that implementation
is wrong and (2) no environments we support needs this.

  1. sleep(Seconds) to Seconds.h. Since sleep(MonotonicTime) and sleep(WallTime) are defined

in MonotonicTime.h and WallTime.h, this code move is natural.

  1. Remove wtf/CurrentTime.h since nothing is defined now. But we keep CurrentTime.cpp to

consolidate various time-source implementations in one place.

  • WTF.xcodeproj/project.pbxproj:
  • benchmarks/ConditionSpeedTest.cpp:
  • benchmarks/LockFairnessTest.cpp:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CMakeLists.txt:
  • wtf/CPUTime.h:
  • wtf/CurrentTime.cpp:

(WTF::currentCPUTime): Deleted.
(WTF::sleep): Deleted.

  • wtf/CurrentTime.h: Removed.
  • wtf/DateMath.cpp:
  • wtf/DebugUtilities.h:
  • wtf/FastMalloc.cpp:
  • wtf/MainThread.cpp:
  • wtf/MonotonicTime.cpp:
  • wtf/ParkingLot.cpp:
  • wtf/Seconds.cpp:

(WTF::sleep):

  • wtf/Seconds.h:
  • wtf/StackShotProfiler.h:
  • wtf/Stopwatch.h:
  • wtf/ThreadingPthreads.cpp:
  • wtf/ThreadingWin.cpp:
  • wtf/cocoa/CPUTimeCocoa.mm:

(WTF::CPUTime::forCurrentThread):

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:
  • wtf/linux/MemoryPressureHandlerLinux.cpp:
  • wtf/unix/CPUTimeUnix.cpp:

(WTF::CPUTime::forCurrentThread):

  • wtf/win/CPUTimeWin.cpp:

(WTF::CPUTime::forCurrentThread):

  • wtf/win/RunLoopWin.cpp:

Tools:

Remove wtf/CurrentTime.h include pragma.

  • DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
  • DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp:
  • DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp:
  • DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp:
  • TestWebKitAPI/Tests/WTF/Condition.cpp:
  • TestWebKitAPI/Tests/WTF/Signals.cpp:
  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
  • TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:
6:15 PM Changeset in webkit [229208] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[WTF] Use builtin_xxx_overflow for CheckedArithmetic
https://bugs.webkit.org/show_bug.cgi?id=183319

Reviewed by Darin Adler.

GCC and Clang has the builtins for arithmetic operations with overflow flags.
CheckedArithmetic operations can be done with this builtins. Since the compiler
can use overflow flags, potentially this is more efficient. CheckedArithmetic
already has TestWebKitAPI tests and we ensured the tests pass.

  • wtf/CheckedArithmetic.h:
4:44 PM Changeset in webkit [229207] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html as failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183322

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:59 PM Changeset in webkit [229206] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Automation: script evaluations via WebDriver should have a user gesture indicator
https://bugs.webkit.org/show_bug.cgi?id=183230
<rdar://problem/37959739>

Reviewed by Andy Estes.

APIs that normally require a user gesture should just work when using via WebDriver.
To support cases where tests need to simulate user actions with JavaScript, use a
fake user gesture, similar to how -[WKWebView evaluateJavaScript:] forces a user
gesture when clients evaluate JavaScript in their web view.

No new tests, this is covered by W3C tests that use the Fullscreen API.
This API does nothing if there is no user gesture; with this patch, it just works.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):

12:03 PM Changeset in webkit [229205] by timothy_horton@apple.com
  • 13 edits in trunk

Make !ENABLE(DATA_DETECTION) iOS build actually succeed
https://bugs.webkit.org/show_bug.cgi?id=183283
<rdar://problem/38062148>

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
Guard some more code with ENABLE(DATA_DETECTION).

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
11:37 AM Changeset in webkit [229204] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

Building with ONLY_ACTIVE_ARCH=NO and ARCHS=x86_64 fails
https://bugs.webkit.org/show_bug.cgi?id=183320

Reviewed by Tim Horton.

  • Configurations/PluginService.32.xcconfig: If the Apple build tool specifies RC_ARCHS=x86_64, then let the service build for x86_64, but don’t install it.
8:57 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
8:56 AM Changeset in webkit [229203] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] Updated Indonesian translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=183318

Patch by Andika Triwidada <atriwidada@gnome.org> on 2018-03-04
Rubber-stamped by Michael Catanzaro.

  • id.po:
3:08 AM WebKitGTK/2.20.x edited by Philippe Normand
(diff)

Mar 3, 2018:

9:19 PM Changeset in webkit [229202] by commit-queue@webkit.org
  • 5 edits in trunk

Delete incorrect version of clampTo() function from SVGToOTFFontConversion.cpp
https://bugs.webkit.org/show_bug.cgi?id=183165

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-03-03
Reviewed by Darin Adler.

Source/WebCore:

Some of the calls in SVGToOTFFontConversion.cpp were directed to the function
in MathExtras.h while the rest were directed to this local static function.
There should not be two versions with the same name while they are supposed
to do the same thing. Besides, the local version does not work correctly
if the type of the argument's max limit is less the max limit of the returned
type, e.g. char -> uint16_t.

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::clampTo): Deleted.

LayoutTests:

Re-baseline the results of these two tests since the local version of
clampTo() was not returning the expected results always.

  • platform/ios/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
  • platform/ios/svg/text/text-altglyph-01-b-expected.txt:
3:27 PM Changeset in webkit [229201] by Brent Fulgham
  • 6 edits in trunk/Source/WebKit

Notify the NetworkProcess when a session is servicing an automation client
https://bugs.webkit.org/show_bug.cgi?id=183306
<rdar://problem/37835783>

Reviewed by Brian Burg.

Network loads servicing WebDriver are done through an ephemeral session. While this is great
for protecting a developer's machine from sharing state with test runs, it has the unintended
effect of blocking certain logging operations.

We do not log content in ephemeral sessions to protect user privacy. However, ephemeral sessions
generated by WebDriver should participate in logging so that proper testing (with logging) can
be done.

This patch signals the NetworkProcess when an ephemeral session (created for automation purposes)
is created, so that it can allow logging.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::destroySession): Remove controlled-by-automation entry.
(WebKit::NetworkProcess::sessionIsControlledByAutomation const): Added.
(WebKit::NetworkProcess::setSessionIsControlledByAutomation): Added.

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

(WebKit::NetworkResourceLoader::isAlwaysOnLoggingAllowed const): Checks if the relevant session
is servicing an automation client, and returns true if it is.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Signal the network process if this page is being created
for an automation client.

12:13 PM Changeset in webkit [229200] by Alan Bujtas
  • 10 edits in trunk

[RenderTreeBuilder] Move styleDidChange mutation logic to RenderTreeUpdater
https://bugs.webkit.org/show_bug.cgi?id=183273
<rdar://problem/38054892>

Reviewed by Antti Koivisto.

Source/WebCore:

Covered by existing tests.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::noLongerAffectsParentBlock const): Deleted.

  • rendering/RenderElement.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

LayoutTests:

This is just a different repaint order.

  • fast/repaint/absolute-position-change-containing-block-expected.txt:
11:02 AM Changeset in webkit [229199] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] POTFILES.in is out of date
https://bugs.webkit.org/show_bug.cgi?id=183313

Unreviewed, remove WebErrorsGLib.cpp after r229193

  • POTFILES.in:
2:18 AM Changeset in webkit [229198] by bshafiei@apple.com
  • 7 edits in tags/Safari-606.1.6.0.1/Source

Versioning.

1:43 AM Changeset in webkit [229197] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.6.0.1

Tag Safari-606.1.6.0.1.

12:57 AM Changeset in webkit [229196] by yoav@yoav.ws
  • 5 edits
    3 adds in trunk

Source/WebCore:
Link headers for subresources are not being processes
https://bugs.webkit.org/show_bug.cgi?id=181789

Reviewed by Youenn Fablet.

Triggers Link header processing when the Link headers arrive on a subresource.

Test: http/tests/preload/link-header-on-subresource.html

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader): Change the media check conditions.

  • loader/LinkLoader.h: Add a third state for media checks.
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse): Preload links from headers for subresources.

LayoutTests:
Link headers for subresources are not being processed
https://bugs.webkit.org/show_bug.cgi?id=181789

Reviewed by Youenn Fablet.

Adds tests to make sure Link headers on subresources are being processed.

  • http/tests/preload/link-header-on-subresource-expected.txt: Added.
  • http/tests/preload/link-header-on-subresource.html: Added.
  • http/tests/preload/resources/dummy-preloads-subresource.css.php: Added.
Note: See TracTimeline for information about the timeline view.