Timeline



Nov 7, 2017:

11:25 PM Changeset in webkit [224567] by Carlos Garcia Campos
  • 4 edits in trunk

REGRESSION(r224179): [GTK] Several WebViewEditor tests are failing since r224179
https://bugs.webkit.org/show_bug.cgi?id=179366

Reviewed by Michael Catanzaro.

Source/WebKit:

In r224179, webkit_web_view_can_execute_editing_command() was optimized to use the sync path for commands
supported by the WebViewEditorState, but the state requires a redraw to be up to date. We can't know if
WebViewEditorState is in sync, when webkit_web_view_can_execute_editing_command() is called, so we always need
to ask the web process.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_can_execute_editing_command):

Tools:

Use always a toplevel window for WebViewEditor tests instead of creating and destroying one only to flush editor
state.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
11:23 PM Changeset in webkit [224566] by Carlos Garcia Campos
  • 6 edits
    1 move
    2 adds
    1 delete in trunk

[GTK][WPE] Build inspector resources using copy-user-interface-resources.pl script
https://bugs.webkit.org/show_bug.cgi?id=179317

Reviewed by Michael Catanzaro.

Source/WebKit:

This is the script used by Apple and it has several advantages:

  • It allows to combine and minify most of the js and css files, which improves performance and binary size.
  • It removes the debug resources and assertions in production builds.
  • It allows to remove the test resources in production builds.

The patch also moves the common cmake code to generate the resources to a new file InspectorGResources.cmake included
by GTK+ and WPE platform cmake files.

  • InspectorGResources.cmake: Added.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:

Tools:

Move generate-inspector-gresource-manifest.py to glib dir to be shared by GTK+ and WPE ports and update it to
receive an input directory instead of a list of patterns.
File::Copy::Recursive is required by copy-user-interface-resources.pl, so make sure it's installed.

  • glib/generate-inspector-gresource-manifest.py: Renamed from Tools/gtk/generate-inspector-gresource-manifest.py.

(get_filenames):
(get_filenames.should_ignore_resource):

  • gtk/install-dependencies:
  • wpe/generate-inspector-gresource-manifest.py: Removed.
  • wpe/install-dependencies:
11:10 PM Changeset in webkit [224565] by mjs@apple.com
  • 6 edits in trunk/Source

Get rid of unsightly hex numbers from unified build object files
https://bugs.webkit.org/show_bug.cgi?id=179410

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj: Rename UnifiedSource*.mm to UnifiedSource*-mm.mm for more readable build output.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Rename UnifiedSource*.mm to UnifiedSource*-mm.mm for more readable build output.

Source/WTF:

  • Scripts/generate-unified-source-bundles.rb: For extensions other than "cpp", also include

the extension in the base name of the file, to avoid ugly Xcode-generated object file names.

10:29 PM Changeset in webkit [224564] by sbarati@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Only cage double butterfly accesses
https://bugs.webkit.org/show_bug.cgi?id=179202

Reviewed by Mark Lam.

This patch removes caging from all butterfly accesses except double loads/stores.
This is a performance vs security tradeoff. Double loads/stores are the only butterfly
loads/stores that can write arbitrary bit patterns, so we choose to keep them safe
by caging. The other load/stores we are no longer caging to get back performance on
various benchmarks.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):

  • dfg/DFGFixedButterflyAccessUncagingPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_put_to_scope):

  • llint/LowLevelInterpreter64.asm:
  • runtime/AuxiliaryBarrier.h:

(JSC::AuxiliaryBarrier::operator-> const):

  • runtime/Butterfly.h:

(JSC::Butterfly::caged):
(JSC::Butterfly::contiguousDouble):

  • runtime/JSArray.cpp:

(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):

  • runtime/JSArrayInlines.h:

(JSC::JSArray::pushInline):

  • runtime/JSObject.cpp:

(JSC::JSObject::heapSnapshot):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::reallocateAndShrinkButterfly):
(JSC::JSObject::allocateMoreOutOfLineStorage):

  • runtime/JSObject.h:

(JSC::JSObject::canGetIndexQuickly):
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::canSetIndexQuickly):
(JSC::JSObject::butterfly const):
(JSC::JSObject::butterfly):

9:41 PM Changeset in webkit [224563] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Remove RenderBlock::isAnonymousBlockContinuation()
https://bugs.webkit.org/show_bug.cgi?id=179403

Non-anonymous blocks don't have continuations so this is the same as simply calling continuation().

Some of these are also really isContinuation() tests. This ends up being the same as calling
continuation() as block continuations always have next continuation too. This patch uses
isContinuation() where appropriate.

Reviewed by Zalan Bujtas.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeForHitTest const):
(WebCore::RenderBlock::absoluteRects const):
(WebCore::RenderBlock::absoluteQuads const):
(WebCore::RenderBlock::rectWithOutlineForRepaint const):
(WebCore::RenderBlock::hoverAncestor const):
(WebCore::RenderBlock::outlineStyleForRepaint const):

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::isAnonymousBlockContinuation const): Deleted.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::propagateStyleToAnonymousChildren):

  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):

5:30 PM Changeset in webkit [224562] by fpizlo@apple.com
  • 3 edits in trunk/Source/WTF

Disable isoheaps on iOS

Reviewed by Ryosuke Niwa.

  • wtf/IsoMalloc.h:
5:02 PM Changeset in webkit [224561] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

There is no such thing as block element continuation
https://bugs.webkit.org/show_bug.cgi?id=179400

Reviewed by Zalan Bujtas.

There are no non-anonymous block continuations. This is dead code.

  • rendering/RenderBlock.cpp:

(WebCore::borderOrPaddingLogicalWidthChanged):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::blockElementContinuation const): Deleted.

This would always return null.

  • rendering/RenderBlock.h:
4:30 PM Changeset in webkit [224560] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

Fix webkitpy tests after rev 224549.

Unreviewed build fix.

  • Scripts/webkitpy/common/config/ports.py:

(WinCairoPort.run_webkit_tests_command):

  • Scripts/webkitpy/common/config/ports_unittest.py:

(DeprecatedPortTest.test_wincairo_port):

4:29 PM Changeset in webkit [224559] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LayoutState cleanup] Rename enable/disableLayoutState
https://bugs.webkit.org/show_bug.cgi?id=179399
<rdar://problem/35400245>

Reviewed by Antti Koivisto.

It only enables/disables paint offset caching.

No change in functionality.

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::pushLayoutState):
(WebCore::LayoutContext::checkLayoutState):

  • page/LayoutContext.h:

(WebCore::LayoutContext::isPaintOffsetCacheEnabled const):
(WebCore::LayoutContext::disablePaintOffsetCache):
(WebCore::LayoutContext::enablePaintOffsetCache):
(WebCore::LayoutContext::layoutStateEnabled const): Deleted.
(WebCore::LayoutContext::disableLayoutState): Deleted.
(WebCore::LayoutContext::enableLayoutState): Deleted.

  • rendering/LayoutState.cpp:

(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):
(WebCore::shouldDisablePaintOffsetCacheForSubtree):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::shouldDisableLayoutStateForSubtree): Deleted.

  • rendering/LayoutState.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::computeRectForRepaint const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint const):
(WebCore::RenderInline::computeRectForRepaint const):
(WebCore::RenderInline::mapLocalToContainer const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeRectForRepaint const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::layout):

4:01 PM Changeset in webkit [224558] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Add downcast support for FullscreenClient.
https://bugs.webkit.org/show_bug.cgi?id=178824

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-07
Reviewed by Simon Fraser.

Add SPECIALIZE_TYPE_TRAITS macros for API::FullscreenClient and WebKit::Fullscreen client so
downcasts can be done safely.

  • UIProcess/API/APIFullscreenClient.h:

(API::FullscreenClient::isType const):

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

(WKPageSetFullscreenDelegate):
(WKPageGetFullscreenDelegate):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):

  • UIProcess/Cocoa/FullscreenClient.h:

(isType):

  • UIProcess/Cocoa/FullscreenClient.mm:
3:53 PM Changeset in webkit [224557] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.0-branch/Source

Versioning.

3:50 PM Changeset in webkit [224556] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.0.3

Tag Safari-604.4.7.0.3.

3:31 PM Changeset in webkit [224555] by sbarati@apple.com
  • 2 edits in trunk/Source/bmalloc

We should PROT_NONE the Gigacage runway so OOB accesses crash
https://bugs.webkit.org/show_bug.cgi?id=179392

Reviewed by Mark Lam.

If we assume that an attacker will exploit JSC and cause OOB accesses,
we should make OOB accesses in the Gigacage runway crash.

  • bmalloc/Gigacage.cpp:

(Gigacage::ensureGigacage):

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

Update TestExpectations for slow WPT encoding LayoutTests.

Unreviewed test gardening.

Mark some of the tests as slow on Debug and skip those that time out even though they are already marked as slow.

3:06 PM Changeset in webkit [224553] by beidson@apple.com
  • 34 edits in trunk

Implement "UpdateWorkerState" and use it
https://bugs.webkit.org/show_bug.cgi?id=179318

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:

Source/WebCore:

No new tests (Existing tests and changes there-to).

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::allWorkers):
(WebCore::ServiceWorker::mutableAllWorkers):
(WebCore::ServiceWorker::ServiceWorker):
(WebCore::ServiceWorker::~ServiceWorker):
(WebCore::ServiceWorker::updateWorkerState):
(WebCore::ServiceWorker::setState): Deleted.

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::updateRegistrationState):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::~ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::updateStateFromServer):

  • workers/service/ServiceWorkerRegistrationData.cpp:

(WebCore::ServiceWorkerRegistrationData::isolatedCopy const):

  • workers/service/ServiceWorkerRegistrationData.h:

(WebCore::ServiceWorkerRegistrationData::encode const):
(WebCore::ServiceWorkerRegistrationData::decode):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::loggingString const):

  • workers/service/ServiceWorkerRegistrationKey.h:
  • workers/service/ServiceWorkerTypes.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::registerServiceWorkerThreadForInstall):
(WebCore::SWContextManager::registerServiceWorkerThreadForUpdate): Deleted.

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::updateRegistrationState):
(WebCore::SWClientConnection::updateWorkerState):

  • workers/service/server/SWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::updateWorker):

  • workers/service/server/SWServer.h:

(WebCore::SWServer::workerByID const):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::scriptContextStarted):
(WebCore::SWServerJobQueue::install):
(WebCore::SWServerJobQueue::tryClearRegistration):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::updateRegistrationState):
(WebCore::SWServerRegistration::updateWorkerState):
(WebCore::SWServerRegistration::data const):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::setActiveServiceWorkerIdentifier): Deleted.

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::state const):
(WebCore::SWServerWorker::setState):

Source/WebKit:

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebCoreArgumentCoders.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::updateWorkerStateInClient):
(WebKit::WebSWServerConnection::installServiceWorkerContext):
(WebKit::WebSWServerConnection::setContextConnection):
(WebKit::WebSWServerConnection::updateServiceWorkerContext): Deleted.

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):
(WebKit::WebSWContextManagerConnection::updateServiceWorker): Deleted.

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Source/WTF:

  • wtf/ObjectIdentifier.h:

(WTF::ObjectIdentifier::loggingString const):

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

Enable webkitpy EWS bubbles
https://bugs.webkit.org/show_bug.cgi?id=178539

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/config/queues.py: Added webkitpy EWS.
2:57 PM Changeset in webkit [224551] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Add platform argument for syncing script.
https://bugs.webkit.org/show_bug.cgi?id=179162

Reviewed by Ryosuke Niwa.

Syncing script should pass platform name to buildbot if platform argument is specified in configuration.

  • server-tests/tools-sync-buildbot-integration-tests.js:

(return.createTriggerable.configWithPlatformName.then): Added unit test for platform argument.

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer): Add '_platformPropertyName' property.
(BuildbotSyncer.prototype.scheduleRequest): Add '_platformPropertyName' to build property if specified.
(BuildbotSyncer._loadConfig): Read '_plaformPropertyName' from config.

2:52 PM Changeset in webkit [224550] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Introduce a default RegisterSet constructor so that we can use { } notation.
https://bugs.webkit.org/show_bug.cgi?id=179389

Reviewed by Saam Barati.

I also replaced uses of "RegisterSet()" with "{ }" where the use of "RegisterSet()"
does not add any code documentation value.

  • b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::setRegsInPriorityOrder):

  • b3/air/AirPrintSpecial.cpp:

(JSC::B3::Air::PrintSpecial::extraEarlyClobberedRegs):
(JSC::B3::Air::PrintSpecial::extraClobberedRegs):

  • b3/air/testair.cpp:
  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::preserveLiveRegistersToStackForCall):
(JSC::AccessGenerationState::restoreLiveRegistersFromStackForCall):

  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • jit/JITCode.cpp:

(JSC::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::reservedHardwareRegisters):
(JSC::RegisterSet::runtimeRegisters):
(JSC::RegisterSet::macroScratchRegisters):

  • jit/RegisterSet.h:

(JSC::RegisterSet::RegisterSet):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitTierUpCheck):

2:38 PM Changeset in webkit [224549] by don.olmstead@sony.com
  • 7 edits in trunk/Tools

Add a WinCairo EWS queue
https://bugs.webkit.org/show_bug.cgi?id=179390

Reviewed by Lucas Forschler.

  • QueueStatusServer/config/queues.py:
  • QueueStatusServer/model/queues.py:
  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/common/config/ports.py:
  • Scripts/webkitpy/common/config/ports_unittest.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:
2:33 PM Changeset in webkit [224548] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

fix check-webkit-style errors in webkitpy about not having two spaces before inline comment
https://bugs.webkit.org/show_bug.cgi?id=171506

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(SCMTest._shared_test_reverse_diff): Added two spaces before inline comment.
(test_create_patch_is_full_patch): Ditto.

  • Scripts/webkitpy/common/thread/messagepump.py:

(MessagePump): Ditto.

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd._prepare_config): Ditto.

  • Scripts/webkitpy/style/checker.py: Ditto.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(OrderOfIncludesTest.test_check_preprocessor_in_include_section): Ditto.

2:30 PM Changeset in webkit [224547] by aakash_jain@apple.com
  • 10 edits
    1 copy
    2 moves in trunk/Tools

Add support for webkitpy tests EWS
https://bugs.webkit.org/show_bug.cgi?id=178480

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/ews.json: Added webkitpy EWS.
  • Scripts/webkitpy/common/net/generictestresults.py: Renamed from Scripts/webkitpy/common/net/bindingstestresults.py.
  • Scripts/webkitpy/common/net/generictestresults_unittest.py: Renamed from Scripts/webkitpy/common/net/bindingstestresults_unittest.py.
  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchAnalysisTask._test_patch): Do not retry webkitpy test since they are not flaky.

  • Scripts/webkitpy/tool/bot/bindingstestresultsreader.py: Updated import for BindingsTestResult.
  • Scripts/webkitpy/tool/bot/retrylogic_unittest.py: Ditto.
  • Scripts/webkitpy/tool/bot/webkitpytestresultsreader.py: Copied from Scripts/webkitpy/tool/bot/bindingstestresultsreader.py.
  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:

(AbstractEarlyWarningSystem.begin_work_queue): Added webkitpy test result reader.

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: Updated unit-tests.
  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py: Run webkitpy EWS only for relevant changes.
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests.run): Run webkitpy tests when --group=webkitpy is passed.
(RunTests._run_webkitpy_tests): Method to invoke webkitpy tests.

  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(test_runtests_webkitpy): Added unit-test.

1:36 PM Changeset in webkit [224546] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

[LayoutState cleanup] Remove explicit LayoutStateMaintainer::pop calls.
https://bugs.webkit.org/show_bug.cgi?id=179380
<rdar://problem/35392161>

Reviewed by Antti Koivisto.

Besides the pagination related explicit pops (FIXME), all LayoutStateMaintainer pops are
now in LayoutStateMaintainer's d'tor.

Covered by existing tests.

  • rendering/LayoutState.cpp:

(WebCore::LayoutStateMaintainer::~LayoutStateMaintainer):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::simplifiedLayout):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layout):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::layout):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutBlock):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::layoutShadowControls):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::layout):

  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):

1:19 PM Changeset in webkit [224545] by msaboff@apple.com
  • 2 edits in trunk/Source/WTF

Add SPI function pointers qualifiers for CPU(ARM64E)
https://bugs.webkit.org/show_bug.cgi?id=179383

Reviewed by Mark Lam.

For ARM64E, use the appropriate SPI qualifiers for helper function pointers.

  • wtf/BlockPtr.h:

(WTF::BlockPtr<R):

12:52 PM Changeset in webkit [224544] by Ryan Haddad
  • 21 edits in trunk

Unreviewed, rolling out r224512 and r224521.
https://bugs.webkit.org/show_bug.cgi?id=179388

An API test added with this change is failing an assertion on
the bots. (Requested by ryanhaddad on #webkit).

Reverted changesets:

"[Attachment Support] Implement delegate hooks for attachment
element insertion and removal"
https://bugs.webkit.org/show_bug.cgi?id=179016
https://trac.webkit.org/changeset/224512

"Remove stray logging from a newly added API test"
https://trac.webkit.org/changeset/224521

Patch by Commit Queue <commit-queue@webkit.org> on 2017-11-07

12:17 PM Changeset in webkit [224543] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

<video> does not respect pointer-events
https://bugs.webkit.org/show_bug.cgi?id=179378
<rdar://problem/34687668>

Patch by Antoine Quint <Antoine Quint> on 2017-11-07
Reviewed by Simon Fraser.

Source/WebCore:

We now honor the "pointer-events" property value set on the <video> element by setting it to "inherit"
on the media controls shadow root container.

Test: media/modern-media-controls/css/pointer-events-none.html

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls-container):

LayoutTests:

Add a new test that checks that settings "pointer-events: none" on the <video> element
correctly reflects that same value on the media controls shadow root container.

  • media/modern-media-controls/css/pointer-events-none-expected.txt: Added.
  • media/modern-media-controls/css/pointer-events-none.html: Added.
  • platform/ios/TestExpectations:
12:11 PM Changeset in webkit [224542] by Chris Dumez
  • 30 edits
    3 adds in trunk

[Service Workers] Add support for "install" event
https://bugs.webkit.org/show_bug.cgi?id=179338

Reviewed by Youenn Fablet.

Source/WebCore:

Add support for "install" event as per:

For now, install always succeeds as our support for ExtendableEvent.waitUntil() is
still incomplete.

Test: http/tests/workers/service/basic-install-event.html

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::firePostInstallEvents):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::fireInstallEvent):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::fireInstallEvent):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::firePostInstallEvents):

  • workers/service/server/SWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::Connection::didFinishInstall):
(WebCore::SWServer::didFinishInstall):
(WebCore::SWServer::fireInstallEvent):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptContextStarted):
(WebCore::SWServerJobQueue::install):
(WebCore::SWServerJobQueue::didFinishInstall):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::firePostInstallEvents):

  • workers/service/server/SWServerRegistration.h:

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::firePostInstallEvents):
(WebKit::WebSWServerConnection::fireInstallEvent):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::didFinishServiceWorkerInstall):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::fireInstallEvent):
(WebKit::WebSWContextManagerConnection::didFinishInstall):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

LayoutTests:

Add layout test coverage.

  • http/tests/workers/service/basic-install-event-expected.txt: Added.
  • http/tests/workers/service/basic-install-event.html: Added.
  • http/tests/workers/service/resources/basic-install-event-worker.js: Added.
  • http/tests/workers/service/resources/sw-test-pre.js:

(waitForState):

12:02 PM Changeset in webkit [224541] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r224498.

The LayoutTest for this change is flaky and affecting EWS
results.

Reverted changeset:

"Add tests to ensure that <source> tags are only preloaded
when the type"
https://bugs.webkit.org/show_bug.cgi?id=179231
https://trac.webkit.org/changeset/224498

12:01 PM Changeset in webkit [224540] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Web Inspector: Add some fast returns in cases where we only call through to a NetworkAgent
https://bugs.webkit.org/show_bug.cgi?id=179359

Reviewed by Devin Rousso.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willSendRequest):
(WebCore::InspectorInstrumentation::willSendRequestOfType):
(WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
(WebCore::InspectorInstrumentation::didReceiveThreadableLoaderResponse):
(WebCore::InspectorInstrumentation::didReceiveData):
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
(WebCore::InspectorInstrumentation::willLoadXHRSynchronously):
(WebCore::InspectorInstrumentation::didLoadXHRSynchronously):
(WebCore::InspectorInstrumentation::scriptImported):
(WebCore::InspectorInstrumentation::didReceiveScriptResponse):
Fast return if no frontend in cases that only call into NetworkAgent
because the NetworkAgent is only available if there is a frontend.

11:33 AM Changeset in webkit [224539] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

AccessCase::generateImpl() should exclude the result register when restoring registers after a call.
https://bugs.webkit.org/show_bug.cgi?id=179355
<rdar://problem/35263053>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-179355.js: Added.

Source/JavaScriptCore:

In the Transition case in AccessCase::generateImpl(), we were restoring registers
using restoreLiveRegistersFromStackForCall() without excluding the scratchGPR
where we previously stashed the reallocated butterfly. If the generated code is
under heavy register pressure, scratchGPR could have been from the set of preserved
registers, and hence, would be restored by restoreLiveRegistersFromStackForCall().
As a result, the restoration would trash the butterfly result we stored there.
This patch fixes the issue by excluding the scratchGPR in the restoration.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

11:29 AM Changeset in webkit [224538] by Chris Dumez
  • 2 edits in trunk/LayoutTests

LayoutTest http/tests/security/cross-frame-access-put.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=179195

Reviewed by Ryosuke Niwa.

Fix flaky test by calling the testRunner functions as early as possible, not in
the onload event handler.

  • http/tests/security/cross-frame-access-put.html:
11:21 AM Changeset in webkit [224537] by fpizlo@apple.com
  • 238 edits
    49 adds in trunk/Source

bmalloc should support strictly type-segregated isolated heaps
https://bugs.webkit.org/show_bug.cgi?id=178108

Reviewed by Saam Barati, Simon Fraser, and Ryosuke Niwa.
Source/bmalloc:


This introduces a new allocation API in bmalloc called IsoHeap. An IsoHeap is templatized by
type and created in static storage. When unused, it takes only a few words. When you do use
it, each IsoHeap gets a bag of virtual pages unique to it. This prevents use-after-free bugs
in one IsoHeap from affecting any other memory. At worst, two pointers of the same type will
point to the same object even though they should not have.

IsoHeaps allocate using a first-fit discipline that combines ideas from bmalloc and Riptide
(the JSC GC):

Like Riptide, it uses a bump'n'pop allocator. What Riptide calls blocks, IsoHeaps calls
pages. Pages are collected into directories. Directories track pages using bitvectors, so
that it's easy to quickly find a completely free page or one that has at least one free
object. I think that the bump'n'pop allocator is as fast as the bmalloc Immix-style (page and
line) allocator, but is better at allocating in holes. It's guaranteed to follow a first-fit
discipline. However, the real reason why I wrote it that was is that this is what I'm more
familiar with. This is a part of the design I want to revisit (bug 179278).

Like bmalloc, it uses a deallocation log. This means that the internal IsoHeap data
structures can be locked with a coarse-grained lock, since the deallocator only grabs it when
flushing the log. Similarly, the allocator only grabs it when refilling the bump'n'pop
FreeList.

This adds a unit test for IsoHeaps. In this change, IsoHeaps are adopted only by WebCore's
RenderObject.

Note that despite the use of GC concepts, it's not a goal to make this code directly sharable
with GC. The GC will probably have to do isolated heaps its own way (likely a special
Subspace or something like that).

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Algorithm.h:

(bmalloc::findBitInWord):

  • bmalloc/AllIsoHeaps.cpp: Added.

(bmalloc::AllIsoHeaps::AllIsoHeaps):
(bmalloc::AllIsoHeaps::add):
(bmalloc::AllIsoHeaps::head):

  • bmalloc/AllIsoHeaps.h: Added.
  • bmalloc/AllIsoHeapsInlines.h: Added.

(bmalloc::AllIsoHeaps::forEach):

  • bmalloc/BMalloced.h: Added.
  • bmalloc/Bits.h: Added.

(bmalloc::bitsArrayLength):
(bmalloc::BitsWordView::BitsWordView):
(bmalloc::BitsWordView::numBits const):
(bmalloc::BitsWordView::word const):
(bmalloc::BitsWordOwner::BitsWordOwner):
(bmalloc::BitsWordOwner::view const):
(bmalloc::BitsWordOwner::operator=):
(bmalloc::BitsWordOwner::setAll):
(bmalloc::BitsWordOwner::clearAll):
(bmalloc::BitsWordOwner::set):
(bmalloc::BitsWordOwner::numBits const):
(bmalloc::BitsWordOwner::arrayLength const):
(bmalloc::BitsWordOwner::word const):
(bmalloc::BitsWordOwner::word):
(bmalloc::BitsWordOwner::words const):
(bmalloc::BitsWordOwner::words):
(bmalloc::BitsAndWords::BitsAndWords):
(bmalloc::BitsAndWords::view const):
(bmalloc::BitsAndWords::numBits const):
(bmalloc::BitsAndWords::word const):
(bmalloc::BitsOrWords::BitsOrWords):
(bmalloc::BitsOrWords::view const):
(bmalloc::BitsOrWords::numBits const):
(bmalloc::BitsOrWords::word const):
(bmalloc::BitsNotWords::BitsNotWords):
(bmalloc::BitsNotWords::view const):
(bmalloc::BitsNotWords::numBits const):
(bmalloc::BitsNotWords::word const):
(bmalloc::BitsImpl::BitsImpl):
(bmalloc::BitsImpl::numBits const):
(bmalloc::BitsImpl::size const):
(bmalloc::BitsImpl::arrayLength const):
(bmalloc::BitsImpl::operator== const):
(bmalloc::BitsImpl::operator!= const):
(bmalloc::BitsImpl::at const):
(bmalloc::BitsImpl::operator[] const):
(bmalloc::BitsImpl::isEmpty const):
(bmalloc::BitsImpl::operator& const):
(bmalloc::BitsImpl::operator| const):
(bmalloc::BitsImpl::operator~ const):
(bmalloc::BitsImpl::forEachSetBit const):
(bmalloc::BitsImpl::forEachClearBit const):
(bmalloc::BitsImpl::forEachBit const):
(bmalloc::BitsImpl::findBit const):
(bmalloc::BitsImpl::findSetBit const):
(bmalloc::BitsImpl::findClearBit const):
(bmalloc::BitsImpl::wordView const):
(bmalloc::BitsImpl::atImpl const):
(bmalloc::Bits::Bits):
(bmalloc::Bits::operator=):
(bmalloc::Bits::resize):
(bmalloc::Bits::setAll):
(bmalloc::Bits::clearAll):
(bmalloc::Bits::setAndCheck):
(bmalloc::Bits::operator|=):
(bmalloc::Bits::operator&=):
(bmalloc::Bits::at const):
(bmalloc::Bits::operator[] const):
(bmalloc::Bits::BitReference::BitReference):
(bmalloc::Bits::BitReference::operator bool const):
(bmalloc::Bits::BitReference::operator=):
(bmalloc::Bits::at):
(bmalloc::Bits::operator[]):

  • bmalloc/CryptoRandom.cpp: Replaced with Source/bmalloc/bmalloc/CryptoRandom.cpp.

(bmalloc::cryptoRandom):

  • bmalloc/CryptoRandom.h: Replaced with Source/bmalloc/bmalloc/CryptoRandom.h.
  • bmalloc/DeferredDecommit.h: Added.
  • bmalloc/DeferredDecommitInlines.h: Added.

(bmalloc::DeferredDecommit::DeferredDecommit):

  • bmalloc/DeferredTrigger.h: Added.

(bmalloc::DeferredTrigger::DeferredTrigger):

  • bmalloc/DeferredTriggerInlines.h: Added.

(bmalloc::DeferredTrigger<trigger>::didBecome):
(bmalloc::DeferredTrigger<trigger>::handleDeferral):

  • bmalloc/EligibilityResult.h: Added.

(bmalloc::EligibilityResult::EligibilityResult):

  • bmalloc/EligibilityResultInlines.h: Added.

(bmalloc::EligibilityResult<Config>::EligibilityResult):

  • bmalloc/FixedVector.h:
  • bmalloc/FreeList.cpp: Added.

(bmalloc::FreeList::FreeList):
(bmalloc::FreeList::~FreeList):
(bmalloc::FreeList::clear):
(bmalloc::FreeList::initializeList):
(bmalloc::FreeList::initializeBump):
(bmalloc::FreeList::contains const):

  • bmalloc/FreeList.h: Added.

(bmalloc::FreeCell::scramble):
(bmalloc::FreeCell::descramble):
(bmalloc::FreeCell::setNext):
(bmalloc::FreeCell::next const):
(bmalloc::FreeList::allocationWillFail const):
(bmalloc::FreeList::allocationWillSucceed const):
(bmalloc::FreeList::originalSize const):
(bmalloc::FreeList::head const):

  • bmalloc/FreeListInlines.h: Added.

(bmalloc::FreeList::allocate):
(bmalloc::FreeList::forEach const):

  • bmalloc/IsoAllocator.h: Added.
  • bmalloc/IsoAllocatorInlines.h: Added.

(bmalloc::IsoAllocator<Config>::IsoAllocator):
(bmalloc::IsoAllocator<Config>::~IsoAllocator):
(bmalloc::IsoAllocator<Config>::allocate):
(bmalloc::IsoAllocator<Config>::allocateSlow):
(bmalloc::IsoAllocator<Config>::scavenge):

  • bmalloc/IsoConfig.h: Added.
  • bmalloc/IsoDeallocator.h: Added.
  • bmalloc/IsoDeallocatorInlines.h: Added.

(bmalloc::IsoDeallocator<Config>::IsoDeallocator):
(bmalloc::IsoDeallocator<Config>::~IsoDeallocator):
(bmalloc::IsoDeallocator<Config>::deallocate):
(bmalloc::IsoDeallocator<Config>::scavenge):

  • bmalloc/IsoDirectory.h: Added.

(bmalloc::IsoDirectoryBaseBase::IsoDirectoryBaseBase):
(bmalloc::IsoDirectoryBaseBase::~IsoDirectoryBaseBase):
(bmalloc::IsoDirectoryBase::heap):

  • bmalloc/IsoDirectoryInlines.h: Added.

(bmalloc::IsoDirectoryBase<Config>::IsoDirectoryBase):
(bmalloc::passedNumPages>::IsoDirectory):
(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::didBecome):
(bmalloc::passedNumPages>::didDecommit):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::forEachCommittedPage):

  • bmalloc/IsoDirectoryPage.h: Added.

(bmalloc::IsoDirectoryPage::index const):

  • bmalloc/IsoDirectoryPageInlines.h: Added.

(bmalloc::IsoDirectoryPage<Config>::IsoDirectoryPage):
(bmalloc::IsoDirectoryPage<Config>::pageFor):

  • bmalloc/IsoHeap.h: Added.

(bmalloc::api::IsoHeap::allocatorOffset):
(bmalloc::api::IsoHeap::setAllocatorOffset):
(bmalloc::api::IsoHeap::deallocatorOffset):
(bmalloc::api::IsoHeap::setDeallocatorOffset):

  • bmalloc/IsoHeapImpl.cpp: Added.

(bmalloc::IsoHeapImplBase::IsoHeapImplBase):
(bmalloc::IsoHeapImplBase::~IsoHeapImplBase):
(bmalloc::IsoHeapImplBase::scavengeNow):
(bmalloc::IsoHeapImplBase::finishScavenging):

  • bmalloc/IsoHeapImpl.h: Added.
  • bmalloc/IsoHeapImplInlines.h: Added.

(bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):
(bmalloc::IsoHeapImpl<Config>::takeFirstEligible):
(bmalloc::IsoHeapImpl<Config>::didBecomeEligible):
(bmalloc::IsoHeapImpl<Config>::scavenge):
(bmalloc::IsoHeapImpl<Config>::allocatorOffset):
(bmalloc::IsoHeapImpl<Config>::deallocatorOffset):
(bmalloc::IsoHeapImpl<Config>::numLiveObjects):
(bmalloc::IsoHeapImpl<Config>::numCommittedPages):
(bmalloc::IsoHeapImpl<Config>::forEachDirectory):
(bmalloc::IsoHeapImpl<Config>::forEachCommittedPage):
(bmalloc::IsoHeapImpl<Config>::forEachLiveObject):

  • bmalloc/IsoHeapInlines.h: Added.

(bmalloc::api::IsoHeap<Type>::allocate):
(bmalloc::api::IsoHeap<Type>::tryAllocate):
(bmalloc::api::IsoHeap<Type>::deallocate):
(bmalloc::api::IsoHeap<Type>::scavenge):
(bmalloc::api::IsoHeap<Type>::isInitialized):
(bmalloc::api::IsoHeap<Type>::impl):

  • bmalloc/IsoPage.h: Added.

(bmalloc::IsoPage::index const):
(bmalloc::IsoPage::directory):
(bmalloc::IsoPage::isInUseForAllocation const):
(bmalloc::IsoPage::indexOfFirstObject):

  • bmalloc/IsoPageInlines.h: Added.

(bmalloc::IsoPage<Config>::tryCreate):
(bmalloc::IsoPage<Config>::IsoPage):
(bmalloc::IsoPage<Config>::free):
(bmalloc::IsoPage<Config>::startAllocating):
(bmalloc::IsoPage<Config>::stopAllocating):
(bmalloc::IsoPage<Config>::forEachLiveObject):

  • bmalloc/IsoPageTrigger.h: Added.
  • bmalloc/IsoTLS.cpp: Added.

(bmalloc::IsoTLS::scavenge):
(bmalloc::IsoTLS::IsoTLS):
(bmalloc::IsoTLS::ensureEntries):
(bmalloc::IsoTLS::destructor):
(bmalloc::IsoTLS::sizeForCapacity):
(bmalloc::IsoTLS::capacityForSize):
(bmalloc::IsoTLS::size):
(bmalloc::IsoTLS::forEachEntry):

  • bmalloc/IsoTLS.h: Added.
  • bmalloc/IsoTLSAllocatorEntry.h: Added.
  • bmalloc/IsoTLSAllocatorEntryInlines.h: Added.

(bmalloc::IsoTLSAllocatorEntry<Config>::IsoTLSAllocatorEntry):
(bmalloc::IsoTLSAllocatorEntry<Config>::~IsoTLSAllocatorEntry):
(bmalloc::IsoTLSAllocatorEntry<Config>::construct):

  • bmalloc/IsoTLSDeallocatorEntry.h: Added.
  • bmalloc/IsoTLSDeallocatorEntryInlines.h: Added.

(bmalloc::IsoTLSDeallocatorEntry<Config>::IsoTLSDeallocatorEntry):
(bmalloc::IsoTLSDeallocatorEntry<Config>::~IsoTLSDeallocatorEntry):
(bmalloc::IsoTLSDeallocatorEntry<Config>::construct):

  • bmalloc/IsoTLSEntry.cpp: Added.

(bmalloc::IsoTLSEntry::IsoTLSEntry):
(bmalloc::IsoTLSEntry::~IsoTLSEntry):

  • bmalloc/IsoTLSEntry.h: Added.

(bmalloc::IsoTLSEntry::offset const):
(bmalloc::IsoTLSEntry::alignment const):
(bmalloc::IsoTLSEntry::size const):
(bmalloc::IsoTLSEntry::extent const):

  • bmalloc/IsoTLSEntryInlines.h: Added.

(bmalloc::IsoTLSEntry::walkUpToInclusive):
(bmalloc::DefaultIsoTLSEntry<EntryType>::DefaultIsoTLSEntry):
(bmalloc::DefaultIsoTLSEntry<EntryType>::~DefaultIsoTLSEntry):
(bmalloc::DefaultIsoTLSEntry<EntryType>::move):
(bmalloc::DefaultIsoTLSEntry<EntryType>::destruct):
(bmalloc::DefaultIsoTLSEntry<EntryType>::scavenge):

  • bmalloc/IsoTLSInlines.h: Added.

(bmalloc::IsoTLS::allocate):
(bmalloc::IsoTLS::deallocate):
(bmalloc::IsoTLS::scavenge):
(bmalloc::IsoTLS::allocator):
(bmalloc::IsoTLS::deallocator):
(bmalloc::IsoTLS::get):
(bmalloc::IsoTLS::set):
(bmalloc::IsoTLS::ensureHeap):
(bmalloc::IsoTLS::ensureHeapAndEntries):

  • bmalloc/IsoTLSLayout.cpp: Added.

(bmalloc::IsoTLSLayout::IsoTLSLayout):
(bmalloc::IsoTLSLayout::add):

  • bmalloc/IsoTLSLayout.h: Added.

(bmalloc::IsoTLSLayout::head const):

  • bmalloc/PerHeapKind.h:
  • bmalloc/PerProcess.h:

(bmalloc::PerProcess<T>::getFastCase):

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::scavenge):

  • bmalloc/Scavenger.h:
  • bmalloc/bmalloc.h:

(bmalloc::api::scavengeThisThread):

  • test: Added.
  • test/testbmalloc.cpp: Added.

(hiddenTruthBecauseNoReturnIsStupid):
(usage):
(assertEmptyPointerSet):
(assertHasObjects):
(assertHasOnlyObjects):
(assertClean):
(testIsoSimple):
(testIsoSimpleScavengeBeforeDealloc):
(testIsoFlipFlopFragmentedPages):
(testIsoFlipFlopFragmentedPagesScavengeInMiddle):
(BisoMalloced::BisoMalloced):
(testBisoMalloced):
(BisoMallocedInline::BisoMallocedInline):
(testBisoMallocedInline):
(run):
(main):

Source/WebCore:

No new tests because no new change in behavior. Though, the bmalloc change has a unit test.

Adopting IsoHeap means dropping in macros in both the .h and .cpp file of each class that we
opt in. It's not pretty, but it helps ensure speedy allocation since it means that we never
have to do any kind of switch or dynamic lookup to find the right allocator for a type.

This change is perf-neutral on MotionMark, PLT3, and membuster.

  • Sources.txt:
  • html/shadow/SliderThumbElement.cpp:
  • html/shadow/SliderThumbElement.h:
  • html/shadow/mac/ImageControlsButtonElementMac.cpp:
  • html/shadow/mac/ImageControlsRootElementMac.cpp:
  • rendering/RenderAttachment.cpp:
  • rendering/RenderAttachment.h:
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderBlockFlow.h:
  • rendering/RenderBox.cpp:
  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:
  • rendering/RenderBoxModelObject.h:
  • rendering/RenderButton.cpp:
  • rendering/RenderButton.h:
  • rendering/RenderCombineText.cpp:
  • rendering/RenderCombineText.h:
  • rendering/RenderCounter.cpp:
  • rendering/RenderCounter.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:
  • rendering/RenderDeprecatedFlexibleBox.h:
  • rendering/RenderDetailsMarker.cpp:
  • rendering/RenderDetailsMarker.h:
  • rendering/RenderElement.cpp:
  • rendering/RenderElement.h:
  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderEmbeddedObject.h:
  • rendering/RenderFileUploadControl.cpp:
  • rendering/RenderFileUploadControl.h:
  • rendering/RenderFlexibleBox.cpp:
  • rendering/RenderFlexibleBox.h:
  • rendering/RenderFragmentContainer.cpp:
  • rendering/RenderFragmentContainer.h:
  • rendering/RenderFragmentContainerSet.cpp:
  • rendering/RenderFragmentContainerSet.h:
  • rendering/RenderFragmentedFlow.cpp:
  • rendering/RenderFragmentedFlow.h:
  • rendering/RenderFrameBase.cpp:
  • rendering/RenderFrameBase.h:
  • rendering/RenderFrameSet.cpp:
  • rendering/RenderFrameSet.h:
  • rendering/RenderFullScreen.cpp:
  • rendering/RenderFullScreen.h:
  • rendering/RenderGrid.cpp:
  • rendering/RenderGrid.h:
  • rendering/RenderHTMLCanvas.cpp:
  • rendering/RenderHTMLCanvas.h:
  • rendering/RenderImage.cpp:
  • rendering/RenderImage.h:
  • rendering/RenderImageResourceStyleImage.cpp:
  • rendering/RenderImageResourceStyleImage.h:
  • rendering/RenderInline.cpp:
  • rendering/RenderInline.h:
  • rendering/RenderLayerModelObject.cpp:
  • rendering/RenderLayerModelObject.h:
  • rendering/RenderLineBreak.cpp:
  • rendering/RenderLineBreak.h:
  • rendering/RenderListBox.cpp:
  • rendering/RenderListBox.h:
  • rendering/RenderListItem.cpp:
  • rendering/RenderListItem.h:
  • rendering/RenderListMarker.cpp:
  • rendering/RenderListMarker.h:
  • rendering/RenderMedia.cpp:
  • rendering/RenderMedia.h:
  • rendering/RenderMediaControlElements.cpp:
  • rendering/RenderMediaControlElements.h:
  • rendering/RenderMenuList.cpp:
  • rendering/RenderMenuList.h:
  • rendering/RenderMeter.cpp:
  • rendering/RenderMeter.h:
  • rendering/RenderMultiColumnFlow.cpp:
  • rendering/RenderMultiColumnFlow.h:
  • rendering/RenderMultiColumnSet.cpp:
  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderMultiColumnSpannerPlaceholder.cpp:
  • rendering/RenderMultiColumnSpannerPlaceholder.h:
  • rendering/RenderObject.cpp:
  • rendering/RenderObject.h:
  • rendering/RenderProgress.cpp:
  • rendering/RenderProgress.h:
  • rendering/RenderQuote.cpp:
  • rendering/RenderQuote.h:
  • rendering/RenderReplaced.cpp:
  • rendering/RenderReplaced.h:
  • rendering/RenderReplica.cpp:
  • rendering/RenderReplica.h:
  • rendering/RenderRuby.cpp:
  • rendering/RenderRuby.h:
  • rendering/RenderRubyBase.cpp:
  • rendering/RenderRubyBase.h:
  • rendering/RenderRubyRun.cpp:
  • rendering/RenderRubyRun.h:
  • rendering/RenderRubyText.cpp:
  • rendering/RenderRubyText.h:
  • rendering/RenderScrollbarPart.cpp:
  • rendering/RenderScrollbarPart.h:
  • rendering/RenderSearchField.cpp:
  • rendering/RenderSearchField.h:
  • rendering/RenderSlider.cpp:
  • rendering/RenderSlider.h:
  • rendering/RenderTable.cpp:
  • rendering/RenderTable.h:
  • rendering/RenderTableCaption.cpp:
  • rendering/RenderTableCaption.h:
  • rendering/RenderTableCell.cpp:
  • rendering/RenderTableCell.h:
  • rendering/RenderTableCol.cpp:
  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp:
  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.cpp:
  • rendering/RenderTableSection.h:
  • rendering/RenderText.cpp:
  • rendering/RenderText.h:
  • rendering/RenderTextControl.cpp:
  • rendering/RenderTextControl.h:
  • rendering/RenderTextControlMultiLine.cpp:
  • rendering/RenderTextControlMultiLine.h:
  • rendering/RenderTextControlSingleLine.cpp:
  • rendering/RenderTextControlSingleLine.h:
  • rendering/RenderTextFragment.cpp:
  • rendering/RenderTextFragment.h:
  • rendering/RenderVTTCue.cpp:
  • rendering/RenderVTTCue.h:
  • rendering/RenderVideo.cpp:
  • rendering/RenderVideo.h:
  • rendering/RenderView.cpp:
  • rendering/RenderView.h:
  • rendering/RenderWidget.cpp:
  • rendering/RenderWidget.h:
  • rendering/mathml/RenderMathMLBlock.cpp:
  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFenced.cpp:
  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/mathml/RenderMathMLFencedOperator.cpp:
  • rendering/mathml/RenderMathMLFencedOperator.h:
  • rendering/mathml/RenderMathMLFraction.cpp:
  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLMath.cpp:
  • rendering/mathml/RenderMathMLMath.h:
  • rendering/mathml/RenderMathMLMenclose.cpp:
  • rendering/mathml/RenderMathMLMenclose.h:
  • rendering/mathml/RenderMathMLOperator.cpp:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLPadded.cpp:
  • rendering/mathml/RenderMathMLPadded.h:
  • rendering/mathml/RenderMathMLRoot.cpp:
  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/mathml/RenderMathMLRow.cpp:
  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLScripts.cpp:
  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLSpace.cpp:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLToken.cpp:
  • rendering/mathml/RenderMathMLToken.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp:
  • rendering/mathml/RenderMathMLUnderOver.h:
  • rendering/svg/RenderSVGBlock.cpp:
  • rendering/svg/RenderSVGBlock.h:
  • rendering/svg/RenderSVGContainer.cpp:
  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGEllipse.cpp:
  • rendering/svg/RenderSVGEllipse.h:
  • rendering/svg/RenderSVGForeignObject.cpp:
  • rendering/svg/RenderSVGForeignObject.h:
  • rendering/svg/RenderSVGGradientStop.cpp:
  • rendering/svg/RenderSVGGradientStop.h:
  • rendering/svg/RenderSVGHiddenContainer.cpp:
  • rendering/svg/RenderSVGHiddenContainer.h:
  • rendering/svg/RenderSVGImage.cpp:
  • rendering/svg/RenderSVGImage.h:
  • rendering/svg/RenderSVGInline.cpp:
  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGInlineText.cpp:
  • rendering/svg/RenderSVGInlineText.h:
  • rendering/svg/RenderSVGModelObject.cpp:
  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGPath.cpp:
  • rendering/svg/RenderSVGPath.h:
  • rendering/svg/RenderSVGRect.cpp:
  • rendering/svg/RenderSVGRect.h:
  • rendering/svg/RenderSVGResourceClipper.cpp:
  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceContainer.cpp:
  • rendering/svg/RenderSVGResourceContainer.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:
  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
  • rendering/svg/RenderSVGResourceFilterPrimitive.h:
  • rendering/svg/RenderSVGResourceGradient.cpp:
  • rendering/svg/RenderSVGResourceGradient.h:
  • rendering/svg/RenderSVGResourceLinearGradient.cpp:
  • rendering/svg/RenderSVGResourceLinearGradient.h:
  • rendering/svg/RenderSVGResourceMarker.cpp:
  • rendering/svg/RenderSVGResourceMarker.h:
  • rendering/svg/RenderSVGResourceMasker.cpp:
  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.cpp:
  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/RenderSVGResourceRadialGradient.cpp:
  • rendering/svg/RenderSVGResourceRadialGradient.h:
  • rendering/svg/RenderSVGRoot.cpp:
  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGShape.cpp:
  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTSpan.cpp: Added.
  • rendering/svg/RenderSVGTSpan.h:
  • rendering/svg/RenderSVGText.cpp:
  • rendering/svg/RenderSVGText.h:
  • rendering/svg/RenderSVGTextPath.cpp:
  • rendering/svg/RenderSVGTextPath.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:
  • rendering/svg/RenderSVGTransformableContainer.h:
  • rendering/svg/RenderSVGViewportContainer.cpp:
  • rendering/svg/RenderSVGViewportContainer.h:

Source/WTF:


This just adds an easy way of using the bmalloc IsoHeap API in WebKit. If bmalloc is not
enabled, these macros will just make the object FastMalloced.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/FastTLS.h:
  • wtf/IsoMalloc.h: Added.
  • wtf/IsoMallocInlines.h: Added.
10:29 AM Changeset in webkit [224536] by mjs@apple.com
  • 21 edits
    288 adds in trunk/LayoutTests

Update WPT encoding test suite to the latest version.
https://bugs.webkit.org/show_bug.cgi?id=179312

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/resource-files.json: Mark HTML files that aren't tests

but which are not in resources/ directories.

The remaining changes are updates from upstream.

  • web-platform-tests/encoding/OWNERS:
  • web-platform-tests/encoding/api-invalid-label-expected.txt:
  • web-platform-tests/encoding/api-invalid-label.html:
  • web-platform-tests/encoding/api-replacement-encodings-expected.txt:
  • web-platform-tests/encoding/api-replacement-encodings.html:
  • web-platform-tests/encoding/eof-shift_jis-ref.html: Added.
  • web-platform-tests/encoding/eof-shift_jis.html: Added.
  • web-platform-tests/encoding/eof-utf-8-one-ref.html: Added.
  • web-platform-tests/encoding/eof-utf-8-one.html: Added.
  • web-platform-tests/encoding/eof-utf-8-three-ref.html: Added.
  • web-platform-tests/encoding/eof-utf-8-three.html: Added.
  • web-platform-tests/encoding/eof-utf-8-two-ref.html: Added.
  • web-platform-tests/encoding/eof-utf-8-two.html: Added.
  • web-platform-tests/encoding/idlharness.html:
  • web-platform-tests/encoding/iso-2022-jp-decoder-expected.txt:
  • web-platform-tests/encoding/iso-2022-jp-decoder.html:
  • web-platform-tests/encoding/legacy-mb-japanese: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/jis0208_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-csshiftjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-csshiftjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms932.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms932.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms_kanji.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms_kanji.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-shift-jis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-shift-jis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-windows-31j.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-windows-31j.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-x-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-x-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-cseuckr.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-cseuckr.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-csksc56011987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-csksc56011987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-iso-ir-149.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-iso-ir-149.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-korean.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-korean.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1989.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1989.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc_5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc_5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-windows-949.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-windows-949.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-big5-hkscs.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-big5-hkscs.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-cn-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-cn-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-csbig5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-csbig5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-x-x-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-x-x-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars_extra.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars_extra.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_index.js: Added.
  • web-platform-tests/encoding/reftest.list: Added.
  • web-platform-tests/encoding/replacement-encodings-expected.txt: Added.
  • web-platform-tests/encoding/replacement-encodings.html: Added.
  • web-platform-tests/encoding/resources/decoding-helpers.js: Added.
  • web-platform-tests/encoding/resources/encodings.js:
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.xml: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.xml: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.xml: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.xml: Added.
  • web-platform-tests/encoding/single-byte-decoder-expected.txt:
  • web-platform-tests/encoding/single-byte-decoder.html:
  • web-platform-tests/encoding/textdecoder-copy.any.js: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte-expected.txt:
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.html:
  • web-platform-tests/encoding/textdecoder-labels-expected.txt:
  • web-platform-tests/encoding/textdecoder-labels.html:
  • web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt:
  • web-platform-tests/encoding/textencoder-constructor-non-utf.html:
  • web-platform-tests/encoding/unsupported-encodings-expected.txt: Added.
  • web-platform-tests/encoding/unsupported-encodings.html: Added.
  • web-platform-tests/encoding/utf-32-expected.txt: Added.
  • web-platform-tests/encoding/utf-32.html: Added.

LayoutTests:

globally or on debug builds) based on what times out in EWS.

10:10 AM Changeset in webkit [224535] by Antti Koivisto
  • 6 edits
    3 adds in trunk

Dynamic media queries don't update in shadow tree stylesheets
https://bugs.webkit.org/show_bug.cgi?id=179324

Reviewed by Ryosuke Niwa.

Source/WebCore:

Viewport and accessibility queries should work dynamically also in shadow trees.

Test: fast/shadow-dom/media-query-in-shadow-style.html

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::updateStyleForLayout):

  • page/Page.cpp:

(WebCore::Page::accessibilitySettingsDidChange):

Evaluate media query list (JS API) unconditionally as it is independent from style queries.
Remove some logging.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::evaluateMediaQueriesForViewportChange):
(WebCore::Style::Scope::evaluateMediaQueriesForAccessibilitySettingsChange):

Factor into functions in style scope.

(WebCore::Style::Scope::evaluateMediaQueries):

Evaluate queries in all shadow trees too.

  • style/StyleScope.h:

LayoutTests:

  • fast/shadow-dom/media-query-in-shadow-style-expected.html: Added.
  • fast/shadow-dom/media-query-in-shadow-style.html: Added.
  • fast/shadow-dom/resources/media-query-in-shadow-style-frame.html: Added.
9:41 AM Changeset in webkit [224534] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebCore

Release-assert NoEventDispatchAssertion in canExecute, updateLayout, and updateStyle
https://bugs.webkit.org/show_bug.cgi?id=179281
<rdar://problem/35008993>

Reviewed by Antti Koivisto.

Surgically enable NoEventDispatchAssertion::InMainThread::isEventAllowed() in release builds to prevent
against insecure execution of author scripts.

No new tests since there should be no behavioral changes (other than preventing potential security bugs
from being exploited).

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::canExecuteScripts): Use the release assert here. This function is consulted
whenever author scripts are executed in event handler, script element, etc... in the main thread so
enabling the release assert here should basically prevent all unwanted script executions protected by
NoEventDispatchAssertion.

  • dom/ContainerNode.cpp:

(NoEventDispatchAssertion::s_count): Now always compiled.

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded): Use the release assert here. This assertion would prevent
unwanted style updating. This part of the change can be reverted if it turns out to be too crashy since
just updating the style would not directly introduce a security vulnerability.
(WebCore::Document::updateLayout): Ditto for updating the layout.

  • dom/NoEventDispatchAssertion.h:

(WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): Enabled this in release builds.
(WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): Ditto.
(WebCore::NoEventDispatchAssertion::isEventAllowedInMainThread): Ditto.
(WebCore::NoEventDispatchAssertion::InMainThread::InMainThread): Ditto.
(WebCore::NoEventDispatchAssertion::InMainThread::~InMainThread): Ditto.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventDispatchAllowedInSubtree): We still don't enable
this assertion because this check requires O(n) operation. Added a comment to that end.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventAllowed): Enabled this in release builds.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope): Ditto.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeClassicScript): Use the release assert here. This is the function used by
the HTML parser to run scripts via HTMLScriptRunner::executePendingScriptAndDispatchEvent. Having a release
assertion here should prevent the rest of the unwanted script executions in the HTML parser not caught by
canExecuteScripts.

8:28 AM Changeset in webkit [224533] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebCore

[WPE][GTK] Building with ENABLE_VIDEO=OFF fails to find AudioTrack.idl
https://bugs.webkit.org/show_bug.cgi?id=179372

Reviewed by Michael Catanzaro.

Arrange MSE extensions defined in {Audio,Text,Video}TrackMediaSource.idl to be
only used for building when both ENABLE_VIDEO_TRACK and ENABLE_MEDIA_SOURCE are
enabled.

No new tests needed.

  • CMakeLists.txt: Add conditional for ENABLE_MEDIA_SOURCE and move the addition

of the IDL files to the build there.

  • Sources.txt: Conversely, source unification should skip sources derived from

the IDL files when ENABLE_MEDIA_SOURCE disabled, so add guards as well.

8:25 AM Changeset in webkit [224532] by commit-queue@webkit.org
  • 11 edits in trunk

Support the case of fetch events that are not responded
https://bugs.webkit.org/show_bug.cgi?id=179336

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-07
Reviewed by Chris Dumez.

Source/WebCore:

Covered by updated test.

Implementing https://w3c.github.io/ServiceWorker/#on-fetch-request-algorithm step 19.
Making FetchEvent cancellable.

  • workers/service/FetchEvent.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/context/ServiceWorkerFetch.h:

Source/WebKit:

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didNotHandle):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:

LayoutTests:

  • http/tests/workers/service/basic-fetch.https-expected.txt:
  • http/tests/workers/service/resources/basic-fetch-worker.js:

(event.event.request.url.indexOf):

  • http/tests/workers/service/resources/basic-fetch.js:

(async.test):

6:59 AM Changeset in webkit [224531] by Michael Catanzaro
  • 2 edits in trunk

[WPE] Turn on ENABLE_MEDIA_SOURCE
https://bugs.webkit.org/show_bug.cgi?id=179093

Reviewed by Carlos Alberto Lopez Perez.

  • Source/cmake/OptionsWPE.cmake:
1:32 AM Changeset in webkit [224530] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Web Inspector: Create inspector agents lazily
https://bugs.webkit.org/show_bug.cgi?id=179360

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-07
Reviewed by Sam Weinig.

  • inspector/CommandLineAPIHost.h:

Modernize style.

  • inspector/InspectorController.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::pageAgentContext):
(WebCore::InspectorController::createLazyAgents):
(WebCore::InspectorController::connectFrontend):
Move many of the agent construction to happen lazily. These
agent's aren't needed until an inspector connects, so defer
creation until an inspector connects.

Nov 6, 2017:

8:09 PM Changeset in webkit [224529] by Alan Bujtas
  • 34 edits in trunk/Source/WebCore

[LayoutState cleanup] Move m_layoutState from RenderView to LayoutContext
https://bugs.webkit.org/show_bug.cgi?id=179282
<rdar://problem/35348653>

Reviewed by Antti Koivisto.

LayoutContext now owns the top level LayoutState object.
It makes RenderView behave like any other renderer by constructing a LayoutStateMaintainer on the stack.
This is mostly moving code from RenderView.h/.cpp to LayoutContext.h/.cpp and fixing the callsites.
(While view().frameView().layoutContext().layoutState() is a bit lengthy, it's
temporary only, since LayoutState is planned to be an argument of the layout() method.

Covered by existing test.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::layoutDelta const):
(WebCore::LayoutContext::addLayoutDelta):
(WebCore::LayoutContext::layoutDeltaMatches):
(WebCore::LayoutContext::pushLayoutState):
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded):
(WebCore::LayoutContext::popLayoutState):
(WebCore::LayoutContext::checkLayoutState):

  • page/LayoutContext.h:

(WebCore::LayoutContext::layoutState const):
(WebCore::LayoutContext::layoutStateEnabled const):
(WebCore::LayoutContext::disableLayoutState):
(WebCore::LayoutContext::enableLayoutState):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computeClipRect):
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer):

  • rendering/LayoutState.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::setLogicalLeftForChild):
(WebCore::RenderBlock::setLogicalTopForChild):
(WebCore::RenderBlock::layoutPositionedObject):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
(WebCore::RenderBlock::adjustLogicalLeftOffsetForLine const):
(WebCore::RenderBlock::adjustLogicalRightOffsetForLine const):
(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage const):
(WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::layoutBlockChildren):
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::collapseMarginsWithChildInfo):
(WebCore::RenderBlockFlow::estimateLogicalTopPosition):
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak):
(WebCore::RenderBlockFlow::hasNextPage const):
(WebCore::RenderBlockFlow::pageLogicalTopForOffset const):
(WebCore::RenderBlockFlow::pageLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::pageRemainingLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::positionNewFloats):
(WebCore::RenderBlockFlow::layoutSimpleLines):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::layoutRunsAndFloats):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::layoutLineBoxes):
(WebCore::RenderBlockFlow::determineStartPosition):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::outlineBoundsForRepaint const):
(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::clippedOverflowRectForRepaint const):
(WebCore::RenderBox::computeRectForRepaint const):
(WebCore::RenderBox::offsetFromLogicalTopOfFirstPage const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
(WebCore::layoutChildIfNeededApplyingDelta):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::takeChildInternal):

  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::repaintRectangleInFragments const):

  • rendering/RenderGrid.cpp:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint const):
(WebCore::RenderInline::computeRectForRepaint const):
(WebCore::RenderInline::mapLocalToContainer const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::layout):

  • rendering/RenderMediaControlElements.cpp:

(WebCore::RenderMediaVolumeSliderContainer::layout):
(WebCore::RenderMediaControlTimelineContainer::layout):
(WebCore::RenderTextTrackContainerElement::layout):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::repaintRectangle const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::clippedOverflowRectForRepaint const):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):
(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::clippedOverflowRectForRepaint const):
(WebCore::RenderTableCell::computeRectForRepaint const):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::setLogicalPositionForCell const):

  • rendering/RenderVTTCue.cpp:
  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):
(WebCore::RenderView::layoutContent): Deleted.
(WebCore::RenderView::checkLayoutState): Deleted.
(WebCore::RenderView::initializeLayoutState): Deleted.
(WebCore::RenderView::pushLayoutState): Deleted.
(WebCore::RenderView::pushLayoutStateForPaginationIfNeeded): Deleted.

  • rendering/RenderView.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::lineSnapAdjustment const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::layout):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • style/RenderTreeUpdaterFirstLetter.cpp:

(WebCore::RenderTreeUpdater::FirstLetter::update):

  • style/RenderTreeUpdaterListItem.cpp:

(WebCore::RenderTreeUpdater::ListItem::updateMarker):

7:25 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
7:22 PM Changeset in webkit [224528] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
6:28 PM Changeset in webkit [224527] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[CG] Adopt CGContextDrawPathDirect()
https://bugs.webkit.org/show_bug.cgi?id=179339
<rdar://problem/26283575>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-11-06
Reviewed by Simon Fraser.

Source/WebCore:

Adopt this function on macOS >= 10.12 and iOS >= 10.0. Instead of clearing
the current path and creating a new one by calling CGContextBeginPath()
and then adding a CGPath by calling CGContextAddPath() and then calling
one of the drawing path functions, we just call CGContextDrawPathDirect().

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath): Don't call CGContextBeginPath()
and CGContextAddPath() for the drawing CGContext in the case of gradient
shadow because we add the CGPath to the layerContext and at the end we
draw this CGLayer into the drawing context.

Source/WebCore/PAL:

Add CGContextDrawPathDirect() as a new CoreGraphics SPI.

  • pal/spi/cg/CoreGraphicsSPI.h:
5:27 PM Changeset in webkit [224526] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.0.2

Tag Safari-604.4.7.0.2.

5:26 PM Changeset in webkit [224525] by jmarcell@apple.com
  • 1 delete in tags/Safari-604.4.7.0.2

Deleting tag.

5:21 PM Changeset in webkit [224524] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.0-branch/Source

Versioning.

5:19 PM Changeset in webkit [224523] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: Display warnings
https://bugs.webkit.org/show_bug.cgi?id=179215

Reviewed by Brian Burg.

Display warning icons on the right of the property.

For now, the warning icons have only three title messages:

  • Invalid property name;
  • Invalid property value;
  • Duplicate property.
  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property):
(.spreadsheet-style-declaration-editor .property-toggle):
(.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .value):
(.spreadsheet-style-declaration-editor .property.has-warning):
(.spreadsheet-style-declaration-editor .property .warning):
Draw the warning arrow and icon using only one HTML element.
Don't set "top" property so the element remains vertically where it would be if it had "position: static".

(.spreadsheet-style-declaration-editor .property.has-warning .warning):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
(WI.SpreadsheetCSSStyleDeclarationEditor):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration :matches(.header, .header-media)):
(.spreadsheet-css-declaration .close-brace):
Make properties span the entire width of the styles sidebar. Unsupported properties have yellow
background. There should be no gaps between the property element and sidebar left and right edges.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty):
(WI.SpreadsheetStyleProperty.prototype.updateStatus):
(WI.SpreadsheetStyleProperty.prototype._update):
(WI.SpreadsheetStyleProperty.prototype.updateClassNames): Deleted.
Rename updateClassNames to updateStatus since it modifies title attribute of the warning element.

4:55 PM Changeset in webkit [224522] by achristensen@apple.com
  • 21 edits in trunk/Source

Make ResourceLoader::willSendRequestInternal asynchronous
https://bugs.webkit.org/show_bug.cgi?id=179251

Reviewed by Andy Estes.

Source/WebCore:

ResourceLoader::willSendRequestInternal is used for redirects, which need to be asynchronous, and for the initial request.
Making it asynchronous requires making load initialization asynchronous, too.

No change in behavior. This will allow us to make more things asynchronous.

  • loader/LoaderStrategy.h:
  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::create):
(WebCore::NetscapePlugInStreamLoader::init):
(WebCore::NetscapePlugInStreamLoader::willSendRequest):

  • loader/NetscapePlugInStreamLoader.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::init):
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::willSendRequestAsync):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::startLoading):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::create):
(WebCore::SubresourceLoader::startLoading):
(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/SubresourceLoader.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):
Calling autorelease from a non-main thread was causing crashes. This is because we need to set up an autorelease pool on that thread, which we have not done. See:
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html#//apple_ref/doc/uid/20000047-1041876
I replaced the calls to RetainPtr::autorelease with RetainPtr::get. This causes us to keep the NSURLRequest and NSURLResponse alive as long as the request is being
responded to in WebKitLegacy and in El Capitan. Given the number of ResourceRequest and ResourceResponse copies we store, this shouldn't be a problem memory-wise.
This will all go away once NSURLSession is used for loading in WebKitLegacy, and this is a large step towards that.

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad):

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::Stream::start):

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::loadResource):
(WebResourceLoadScheduler::schedulePluginStreamLoad):

  • WebCoreSupport/WebResourceLoadScheduler.h:

Source/WebKitLegacy/mac:

  • Plugins/Hosted/HostedNetscapePluginStream.mm:

(WebKit::HostedNetscapePluginStream::start):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::start):

4:55 PM Changeset in webkit [224521] by Wenson Hsieh
  • 2 edits in trunk/Tools

Remove stray logging from a newly added API test

This was only for debugging purposes, and should have been removed before landing.

Rubber-stamped by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

4:52 PM Changeset in webkit [224520] by Ross Kirsling
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Two little Layers tab fixes
https://bugs.webkit.org/show_bug.cgi?id=179273

Reviewed by Devin Rousso.

  • UserInterface/Views/LayerDetailsSidebarPanel.js:

(WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
Even when we suppress refire of the selected event, we still want a popover.

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView):
(WI.Layers3DContentView.prototype.shown):
(WI.Layers3DContentView.prototype.hidden):
(WI.Layers3DContentView.prototype.closed):
(WI.Layers3DContentView.prototype._layerTreeDidChange):
Opening WI directly to the Layers tab wasn't fetching layers right away. Let's fetch on every shown() and
prune the hacky logic we were previously using -- it's overkill anyway, now that we're tracking mutations.

4:49 PM Changeset in webkit [224519] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.10-branch/Source

Versioning.

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

Only build ImageDiff for mac
https://bugs.webkit.org/show_bug.cgi?id=179349
<rdar://problem/35376237>

Reviewed by Tim Horton.

  • ImageDiff/Makefile:
4:45 PM Changeset in webkit [224517] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the internal build after updating to a newer SDK

There shouldn't be any need to include and implement these method stubs anymore,
even when building against the shipping iOS 11 SDK.

  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[MockDropSession session]): Deleted.

4:42 PM Changeset in webkit [224516] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.1-branch/Source

Versioning.

3:38 PM Changeset in webkit [224515] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.10.3

Tag Safari-604.4.7.10.3.

3:35 PM Changeset in webkit [224514] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.1.3

Tag Safari-604.4.7.1.3.

2:18 PM Changeset in webkit [224513] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.10-branch/Source

Versioning.

1:46 PM Changeset in webkit [224512] by Wenson Hsieh
  • 21 edits in trunk

[Attachment Support] Implement delegate hooks for attachment element insertion and removal
https://bugs.webkit.org/show_bug.cgi?id=179016
<rdar://problem/35250890>

Reviewed by Tim Horton.

Source/WebCore:

Implements a mechanism for notifying WebKit2 clients when attachment elements are inserted into or removed from
the document. See per-change comments below for more details.

API tests: WKAttachmentTests.AttachmentElementInsertion

WKAttachmentTests.AttachmentUpdatesWhenInsertingAndDeletingNewline
WKAttachmentTests.AttachmentUpdatesWhenUndoingAndRedoing
WKAttachmentTests.AttachmentUpdatesWhenChangingFontStyles
WKAttachmentTests.AttachmentUpdatesWhenInsertingLists
WKAttachmentTests.AttachmentUpdatesWhenInsertingRichMarkup

  • editing/Editor.cpp:

(WebCore::Editor::respondToChangedSelection):
(WebCore::Editor::editorUIUpdateTimerFired):

Additionally notify the client of any attachment updates.

(WebCore::Editor::scheduleEditorUIUpdate):

Add a new helper that starts the editor UI update timer with 0 delay, and use it everywhere we schedule an
editor UI update.

(WebCore::Editor::didInsertAttachmentElement):
(WebCore::Editor::didRemoveAttachmentElement):

Maintain two sets of attachment element identifiers -- the first one tracking insertions, and the second one
tracking removals. When an attachment element is inserted, we first check to see if that attachment element has
just been removed; if so, we don't add it to the inserted identifiers set, but instead remove it from the set of
removed identifiers. We perform a similar check in the opposite case. This prevents us from notifying the client
of extraneous insertions and removals during certain editing commands which may reparent and move attachment
elements around. In both cases, we schedule an editor UI update afterwards, where we will notify the client of
attachment updates.

(WebCore::Editor::notifyClientOfAttachmentUpdates):
(WebCore::Editor::insertAttachmentFromFile):

  • editing/Editor.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::HTMLAttachmentElement):

Remove the version of HTMLAttachmentElement's constructor that takes a unique identifier.

(WebCore::HTMLAttachmentElement::insertedIntoAncestor):
(WebCore::HTMLAttachmentElement::removedFromAncestor):

Implement these hooks to observe insertion into and removal from the DOM. If the element was attached to or
removed from an ancestor that was connected to the document, call out to the document's frame's editor. This
"document-connected" rule prevents us from calling out to the client in cases where (for instance) we append an
attachment element to a newly created DocumentFragment in preparation for executing a ReplaceSelectionCommand.

(WebCore::HTMLAttachmentElement::uniqueIdentifier const):
(WebCore::HTMLAttachmentElement::setUniqueIdentifier):

Refactor unique identifier to refer to the new attachment identifier attribute instead of a member variable.

  • html/HTMLAttachmentElement.h:
  • html/HTMLAttributeNames.in:

Add a new attribute representing an attachment element's identifier. This enables us to keep track of particular
attachments as they are destroyed and recreated as different objects, as a result of some editing commands.

  • page/EditorClient.h:

(WebCore::EditorClient::didInsertAttachment):
(WebCore::EditorClient::didRemoveAttachment):

Add boilerplate editor client hooks for attachment insertion and removal.

Source/WebKit:

Adds boilerplate plumbing to WebEditorClient, WebPage, and the usual machinery in the UI process to notify
WebKit2 clients when attachment elements have been inserted or removed from the document. See the WebCore
ChangeLog for more details about the implementation, or the Tools ChangeLog for more information about new API
tests.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didInsertAttachment:]):
(-[WKWebView _didRemoveAttachment:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::didInsertAttachment):
(WebKit::PageClientImplCocoa::didRemoveAttachment):

  • UIProcess/PageClient.h:

(WebKit::PageClient::didInsertAttachment):
(WebKit::PageClient::didRemoveAttachment):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didInsertAttachment):
(WebKit::WebPageProxy::didRemoveAttachment):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::didInsertAttachment):
(WebKit::WebEditorClient::didRemoveAttachment):

  • WebProcess/WebCoreSupport/WebEditorClient.h:

Tools:

Introduces new API tests to check that various editing operations will or won't result in the new attachment
insertion and removal delegate hooks being fired. Additionally refactors an existing test to verify that
attachments insertion and removal is observable by the UI delegate.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(-[AttachmentUpdateObserver init]):
(-[AttachmentUpdateObserver inserted]):
(-[AttachmentUpdateObserver removed]):
(-[AttachmentUpdateObserver _webView:didInsertAttachment:]):
(-[AttachmentUpdateObserver _webView:didRemoveAttachment:]):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::ObserveAttachmentUpdatesForScope):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::~ObserveAttachmentUpdatesForScope):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::expectAttachmentUpdates):

Implement a testing mechanism to temporarily bind a UI delegate to a given WKWebView and listen for inserted or
removed attachments over the course of a particular scope. The API tests use this mechanism to check that the UI
delegate hooks added in this patch are invoked with the right attachments when performing edit commands.

(-[TestWKWebView _synchronouslyExecuteEditCommand:argument:]):
(-[TestWKWebView expectUpdatesAfterCommand:withArgument:expectedRemovals:expectedInsertions:]):
(TestWebKitAPI::TEST):

1:44 PM Changeset in webkit [224511] by Ryan Haddad
  • 34 edits in trunk/Source/WebCore

Unreviewed, rolling out r224494.

Introduced LayoutTest flakiness on WK1.

Reverted changeset:

"[LayoutState cleanup] Move m_layoutState from RenderView to
LayoutContext"
https://bugs.webkit.org/show_bug.cgi?id=179282
https://trac.webkit.org/changeset/224494

1:41 PM Changeset in webkit [224510] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

UIWebView is not rendering content that comes on screen during overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=179277
rdar://problem/34272949

Reviewed by Tim Horton

When page or overflow scrolling happens, we do a traversal of GraphicsLayers to determine
whether the exposed part of tiled layers changed in a way that requires a change in the tile
coverage. If so, we schedule a compositing layer flush.

There was no equivalent logic for computing whether the "backing store detached" state
of a layer changed (which we use to throw away backing store of layers outside the viewport),
so after scrolling an accelerated overflow:scroll which contained composited layers, we
would sometimes fail to recompute that we should re-create backing store for revealed
layers.

Fix by having GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush() determine
whether 'intersectsCoverageRect' changed, and if so trigger a flush. This requires
tracking CommitState for isViewportConstrained-ness, just like we do during commits.

Also clean up code related to computing the visible rect passed into visibleRectChangeRequiresFlush() and
flushCompositingState(); these diverged for no good reason. Also clean up the logging a little.

Not testable because UIWebView layout tests are unreliable.

  • page/ios/FrameIOS.mm:

(WebCore::Frame::viewportOffsetChanged):
(WebCore::Frame::overflowScrollPositionChangedForNode):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const):
(WebCore::GraphicsLayerCA::visibleRectChangeRequiresFlush const):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::visibleRectForLayerFlushing const):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didChangeVisibleRect):

  • rendering/RenderLayerCompositor.h:
1:35 PM Changeset in webkit [224509] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

iOS element fullscreen should use a UIGestureRecognizer to detect user interaction.
https://bugs.webkit.org/show_bug.cgi?id=179029
rdar://problem/35307882

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-06
Reviewed by Simon Fraser.

Replace _WKTapDelegatingView with a UILongPressGestureRecognizer. When set with a duration of 0, it effectively
recognizes UITouchBegin events.

  • UIProcess/ios/WKFullScreenWindowControllerIOS.mm:

(-[_WKFullScreenViewController loadView]):
(-[_WKFullScreenViewController gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[_WKTapDelegatingView setTarget:action:]): Deleted.
(-[_WKTapDelegatingView hitTest:withEvent:]): Deleted.

1:08 PM Changeset in webkit [224508] by Joseph Pecoraro
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: no way to navigate from Resource tree element to its entry in Network Tab
https://bugs.webkit.org/show_bug.cgi?id=179328
<rdar://problem/35367294>

Reviewed by Brian Burg.

  • Localizations/en.lproj/localizedStrings.js:

New reveal in network tab string.

  • UserInterface/Base/Main.js:

(WI.isShowingNetworkTab):
Utility to know if the network tab is showing.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):
(showResourceWithOptions):
(WI.appendContextMenuItemsForURL):
Generalize context menus for just a URL.

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Support more tab ignore options, this is starting to get icky. We may want to
move to just a preferredTab approach, since that is what some of these want.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._populateTagContextMenu):
Make use of new ContextMenu utility to add menu items for a URL.

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView.prototype.showRepresentedObject):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.showRepresentedObject):
Handle showing a Resource in the NetworkTab. We immediately show
the details view for it, otherwise we fallback to the list view.

12:32 PM Changeset in webkit [224507] by commit-queue@webkit.org
  • 5 edits in trunk

Uncaught Exception: TypeError: null is not an object (evaluating 'mimeType.endsWith')
https://bugs.webkit.org/show_bug.cgi?id=179325
<rdar://problem/35366896>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-06
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.fileExtensionForMIMEType):
(WI.shouldTreatMIMETypeAsText):
Handle null mime types.

LayoutTests:

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

Add tests for null cases.

12:22 PM Changeset in webkit [224506] by Chris Dumez
  • 14 edits in trunk/Source

[Service Workers] Add proper implementation for 'updatefound' event
https://bugs.webkit.org/show_bug.cgi?id=179302

Reviewed by Brady Eidson.

Source/WebCore:

Add proper implementation for 'updatefound' event instead of faking it.
The 'updatefound' event firing is now triggered from the StorageProcess,
during the install steps, instead of being fired on WebContent process
side in jobResolvedWithRegistration().

Specification:

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::scheduleJob):
(WebCore::ServiceWorkerContainer::fireUpdateFoundEvent):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobDidFinish):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::fireUpdateFoundEvent):

  • workers/service/server/SWClientConnection.h:
  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptContextStarted):
(WebCore::SWServerJobQueue::install):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::fireUpdateFoundEvent):

  • workers/service/server/SWServerRegistration.h:

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::fireUpdateFoundEvent):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
12:20 PM Changeset in webkit [224505] by commit-queue@webkit.org
  • 30 edits in trunk

Use enum classes within FileSystem
https://bugs.webkit.org/show_bug.cgi?id=175172

Patch by Christopher Reid <chris.reid@sony.com> on 2017-11-06
Reviewed by Myles C. Maxfield.

Source/WebCore:

No new tests, no change in behavior.

Using enum classes in filesystem to enforce stronger type safety.

  • Modules/webdatabase/OriginLock.cpp:
  • loader/appcache/ApplicationCacheStorage.cpp:
  • platform/FileHandle.h:
  • platform/FileStream.cpp:
  • platform/FileSystem.cpp:
  • platform/FileSystem.h:
  • platform/cocoa/FileMonitorCocoa.mm:
  • platform/glib/FileSystemGlib.cpp:
  • platform/network/curl/CurlCacheEntry.cpp:
  • platform/network/curl/CurlCacheManager.cpp:
  • platform/posix/FileSystemPOSIX.cpp:
  • platform/win/FileSystemWin.cpp:
  • rendering/RenderThemeWin.cpp:

Source/WebKit:

  • NetworkProcess/Downloads/BlobDownloadClient.cpp:
  • NetworkProcess/NetworkDataTaskBlob.cpp:
  • NetworkProcess/cache/NetworkCache.cpp:
  • NetworkProcess/capture/NetworkCaptureManager.cpp:
  • NetworkProcess/capture/NetworkCaptureRecorder.cpp:
  • Shared/WebMemorySampler.cpp:
  • UIProcess/API/APIContentRuleListStore.cpp:
  • UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:

Source/WebKitLegacy/win:

  • Plugins/PluginDatabase.cpp:

Source/WTF:

Adding a helper function for converting enum classes to their underlying type when necessary.

  • wtf/EnumTraits.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
  • TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
12:03 PM Changeset in webkit [224504] by jmarcell@apple.com
  • 2 edits in branches/safari-604.4.7.0-branch/Source/JavaScriptCore

Cherry-pick r224426. rdar://problem/35364681

11:50 AM Changeset in webkit [224503] by commit-queue@webkit.org
  • 12 edits
    1 delete in trunk/Source

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

It is breaking internal builds (Requested by youenn on
#webkit).

Reverted changeset:

"Use VCP H264 encoder for platforms supporting it"
https://bugs.webkit.org/show_bug.cgi?id=179076
https://trac.webkit.org/changeset/224497

11:46 AM Changeset in webkit [224502] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

ScriptExecutionContext::serviceWorkerContainer() should avoid constructing a Navigator object
https://bugs.webkit.org/show_bug.cgi?id=179322

Reviewed by Sam Weinig.

ScriptExecutionContext::serviceWorkerContainer() should avoid constructing a Navigator object
unnecessarily.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::serviceWorkerContainer):

  • page/DOMWindow.h:
11:29 AM Changeset in webkit [224501] by jmarcell@apple.com
  • 2 edits in branches/safari-604.4.7.10-branch/Source/JavaScriptCore

Cherry-pick r224426. rdar://problem/35364690

11:27 AM Changeset in webkit [224500] by jmarcell@apple.com
  • 2 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Cherry-pick r224426. rdar://problem/35364675

10:56 AM Changeset in webkit [224499] by Joseph Pecoraro
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Selecting a DOM Search Result in Search Tab unexpectedly changes Tabs
https://bugs.webkit.org/show_bug.cgi?id=179223
<rdar://problem/33949556>

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:

New string.

  • UserInterface/Views/SearchResultTreeElement.js:

(WI.SearchResultTreeElement.prototype.populateContextMenu):
Add a context menu for search results to jump to a different tab.
These behaviors match the double click behavior for search results.

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView.prototype.canShowRepresentedObject):
Always support showing a DOM Tree. Clients should be using
ignoreSearchTab if they don't want to jump here.

  • UserInterface/Views/DOMTreeDataGridNode.js:

(WI.DOMTreeDataGridNode.prototype._goToArrowWasClicked):

  • UserInterface/Views/LayerTreeDataGridNode.js:

(WI.LayerTreeDataGridNode.prototype._goToArrowWasClicked):
Use ignoreSearchTab just in case when showing a DOM Tree.

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.shown):
When showing, update our UI to reflect the values of the current content view, which
for a while may have been owned by another ContentBrowser.

(WI.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WI.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WI.ContentBrowser.prototype._contentViewNavigationItemsDidChange):
We can avoid work in a few places where we might not be the owning ContentBrowser
of a ContentView that is changing.

9:56 AM Changeset in webkit [224498] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Source/WebCore:
Added mime type check to the picture source preloader to avoid downloading incompatible resources.
https://bugs.webkit.org/show_bug.cgi?id=179231

Patch by Colin Bendell <colin> on 2017-11-06
Reviewed by Alex Christensen.

Test: http/tests/loading/preload-picture-type.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): include type match state when selecting candidate imgs
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): added type attribute evaluation and matching

LayoutTests:
Add tests to ensure that <source> tags are only preloaded when the type
attribute matches.
https://bugs.webkit.org/show_bug.cgi?id=179231

Patch by Colin Bendell <colin> on 2017-11-06
Reviewed by Alex Christensen.

  • http/tests/loading/preload-picture-type-expected.txt: Added.
  • http/tests/loading/preload-picture-type.html: Added.
9:48 AM Changeset in webkit [224497] by commit-queue@webkit.org
  • 12 edits
    1 copy
    2 adds in trunk/Source

Use VCP H264 encoder for platforms supporting it
https://bugs.webkit.org/show_bug.cgi?id=179076
rdar://problem/35180773

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-06
Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: Added.

(webrtc::H264VideoToolboxEncoderVCP::SetActive):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm.
  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:

(internal::CFStringToString):
(internal::SetVTSessionProperty):
(internal::CopyVideoFrameToPixelBuffer):
(internal::CreatePixelBuffer):
(internal::VTCompressionOutputCallback):
(internal::ExtractProfile):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h:
  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm:

(webrtc::VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory):
(webrtc::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Covered by existing test coverage.

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp:

(WebCore::VideoToolboxVideoEncoderFactory::setActive):
(WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
(WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder):

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h:
9:47 AM Changeset in webkit [224496] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

ServiceWorkerContainer should take a PendingActivity while a service worker job is pending
https://bugs.webkit.org/show_bug.cgi?id=179321

Reviewed by Youenn Fablet.

ServiceWorkerContainer should take a PendingActivity while a service worker job is pending.
ServiceWorkerContainer is an ActiveDOMObject and taking such pending activity makes sure
the object stays alive while a job is pending (and a promise is not resolved yet). It also
makes sure the document does not get suspended in the middle of a job.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::scheduleJob):
(WebCore::ServiceWorkerContainer::jobDidFinish):

9:45 AM Changeset in webkit [224495] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

@media rules ignored in user agent style sheet html.css
https://bugs.webkit.org/show_bug.cgi?id=169245
<rdar://problem/30885951>

Reviewed by Darin Adler.

To support accessibility features, allow non-trivial @media rules in user agent stylesheet.

This patch creates a special stylesheet consisting of rules with media queries seen on user agent stylesheets.
The queries on this sheet are evaluated with the document's media query evaluator.

No tests as I don't want to add things to UA style just for testing purposes. This will
gain coverage when the feature is used.

  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::addToDefaultStyle):

Add a helper.
Build a new stylesheet that consists of complex media rules seen in user agent sheets.

(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

  • css/CSSDefaultStyleSheets.h:
  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::userAgentMediaQueryStyle const):

Rule set constructed from media queries seen on UA sheet.

(WebCore::DocumentRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):

Evalute the media queries if needed.
Re-evaluate if the rule count of the media query stylesheet increases
(this could happen when additional UA style is added).

(WebCore::DocumentRuleSets::resetUserAgentMediaQueryStyle):
(WebCore::DocumentRuleSets::collectFeatures const):

Collect the features from userAgentMediaQueryStyle.

  • css/DocumentRuleSets.h:

(WebCore::DocumentRuleSets::setIsForShadowScope):

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ElementRuleCollector):
(WebCore::ElementRuleCollector::matchUARules):

Also match rules in userAgentMediaQueryStyle.

  • css/ElementRuleCollector.h:
  • css/InspectorCSSOMWrappers.cpp:

(WebCore::InspectorCSSOMWrappers::collectDocumentWrappers):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::resolver):

9:45 AM Changeset in webkit [224494] by Alan Bujtas
  • 34 edits in trunk/Source/WebCore

[LayoutState cleanup] Move m_layoutState from RenderView to LayoutContext
https://bugs.webkit.org/show_bug.cgi?id=179282
<rdar://problem/35348653>

Reviewed by Antti Koivisto.

LayoutContext now owns the top level LayoutState object.
It makes RenderView behave like any other renderer by constructing a LayoutStateMaintainer on the stack.
This is mostly moving code from RenderView.h/.cpp to LayoutContext.h/.cpp and fixing the callsites.
(While view().frameView().layoutContext().layoutState() is a bit lengthy, it's
temporary only, since LayoutState is planned to be an argument of the layout() method.

Covered by existing test.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::layoutDelta const):
(WebCore::LayoutContext::addLayoutDelta):
(WebCore::LayoutContext::layoutDeltaMatches):
(WebCore::LayoutContext::pushLayoutState):
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded):
(WebCore::LayoutContext::popLayoutState):
(WebCore::LayoutContext::checkLayoutState):

  • page/LayoutContext.h:

(WebCore::LayoutContext::layoutState const):
(WebCore::LayoutContext::layoutStateEnabled const):
(WebCore::LayoutContext::disableLayoutState):
(WebCore::LayoutContext::enableLayoutState):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computeClipRect):
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer):

  • rendering/LayoutState.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::setLogicalLeftForChild):
(WebCore::RenderBlock::setLogicalTopForChild):
(WebCore::RenderBlock::layoutPositionedObject):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
(WebCore::RenderBlock::adjustLogicalLeftOffsetForLine const):
(WebCore::RenderBlock::adjustLogicalRightOffsetForLine const):
(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage const):
(WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::layoutBlockChildren):
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::collapseMarginsWithChildInfo):
(WebCore::RenderBlockFlow::estimateLogicalTopPosition):
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak):
(WebCore::RenderBlockFlow::hasNextPage const):
(WebCore::RenderBlockFlow::pageLogicalTopForOffset const):
(WebCore::RenderBlockFlow::pageLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::pageRemainingLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::positionNewFloats):
(WebCore::RenderBlockFlow::layoutSimpleLines):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::layoutRunsAndFloats):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::layoutLineBoxes):
(WebCore::RenderBlockFlow::determineStartPosition):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::outlineBoundsForRepaint const):
(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::clippedOverflowRectForRepaint const):
(WebCore::RenderBox::computeRectForRepaint const):
(WebCore::RenderBox::offsetFromLogicalTopOfFirstPage const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
(WebCore::layoutChildIfNeededApplyingDelta):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::takeChildInternal):

  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::repaintRectangleInFragments const):

  • rendering/RenderGrid.cpp:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint const):
(WebCore::RenderInline::computeRectForRepaint const):
(WebCore::RenderInline::mapLocalToContainer const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::layout):

  • rendering/RenderMediaControlElements.cpp:

(WebCore::RenderMediaVolumeSliderContainer::layout):
(WebCore::RenderMediaControlTimelineContainer::layout):
(WebCore::RenderTextTrackContainerElement::layout):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::repaintRectangle const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::clippedOverflowRectForRepaint const):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):
(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::clippedOverflowRectForRepaint const):
(WebCore::RenderTableCell::computeRectForRepaint const):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::setLogicalPositionForCell const):

  • rendering/RenderVTTCue.cpp:
  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):
(WebCore::RenderView::layoutContent): Deleted.
(WebCore::RenderView::checkLayoutState): Deleted.
(WebCore::RenderView::initializeLayoutState): Deleted.
(WebCore::RenderView::pushLayoutState): Deleted.
(WebCore::RenderView::pushLayoutStateForPaginationIfNeeded): Deleted.

  • rendering/RenderView.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::lineSnapAdjustment const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::layout):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • style/RenderTreeUpdaterFirstLetter.cpp:

(WebCore::RenderTreeUpdater::FirstLetter::update):

  • style/RenderTreeUpdaterListItem.cpp:

(WebCore::RenderTreeUpdater::ListItem::updateMarker):

8:36 AM Changeset in webkit [224493] by Michael Catanzaro
  • 2 edits in trunk

Unreviewed, fix WPE build after r224492
https://bugs.webkit.org/show_bug.cgi?id=179009

  • Source/cmake/OptionsWPE.cmake:
8:27 AM Changeset in webkit [224492] by Michael Catanzaro
  • 2 edits in trunk

[WPE] Clean up OptionsWPE.cmake
https://bugs.webkit.org/show_bug.cgi?id=179009

Reviewed by Žan Doberšek.

  • Source/cmake/OptionsWPE.cmake:
6:55 AM Changeset in webkit [224491] by rmorisset@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

CodeBlock::usesOpcode() is dead code
https://bugs.webkit.org/show_bug.cgi?id=179316

Reviewed by Yusuke Suzuki.

Remove CodeBlock::usesOpcode which is dead code

  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:
6:43 AM Changeset in webkit [224490] by Michael Catanzaro
  • 5 edits in trunk

[WPE][GTK] Always use SET_AND_EXPOSE_TO_BUILD to set build variables
https://bugs.webkit.org/show_bug.cgi?id=179038

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WTF:

  • wtf/Platform.h:
6:43 AM Changeset in webkit [224489] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[WPE] Properly use SYSTEM_INCLUDE_DIRECTORIES for WebKit build target
https://bugs.webkit.org/show_bug.cgi?id=179097

Reviewed by Žan Doberšek.

  • PlatformWPE.cmake:
6:42 AM Changeset in webkit [224488] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE] -Wsign-compare warning in EventSenderProxyWPE.cpp
https://bugs.webkit.org/show_bug.cgi?id=179039

Reviewed by Žan Doberšek.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::releaseTouchPoint):

6:40 AM Changeset in webkit [224487] by Yusuke Suzuki
  • 114 edits
    8 adds in trunk

JIT call inline caches should cache calls to objects with getCallData/getConstructData traps
https://bugs.webkit.org/show_bug.cgi?id=144458

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/dfg-internal-function-call.js: Added.

(target):

  • microbenchmarks/dfg-internal-function-construct.js: Added.

(target):

  • microbenchmarks/dfg-internal-function-not-handled-call.js: Added.

(target):

  • microbenchmarks/dfg-internal-function-not-handled-construct.js: Added.

(target):

  • stress/dfg-internal-function-call.js: Added.

(shouldBe):
(target):

  • stress/dfg-internal-function-construct.js: Added.

(shouldBe):
(target):

  • stress/internal-function-call.js: Added.

(shouldBe):

  • stress/internal-function-construct.js: Added.

(shouldBe):

Source/JavaScriptCore:

Previously only JSFunction is handled by CallLinkInfo's caching mechanism. This means that
InternalFunction calls are not cached and they always go to the slow path. This is not good because

  1. We need to query getCallData/getConstructData every time in the slow path.
  2. CallLinkInfo tells nothing in the higher tier JITs.

This patch starts handling InternalFunction in CallLinkInfo's caching mechanism. We change InternalFunction
to hold pointers to the functions for call and construct. We have new stubs that can call/construct
InternalFunction. And we return this code pointer as a result of setup call to use CallLinkInfo mechanism.

This patch is critical to optimizing derived Array construction[1] since it starts using CallLinkInfo
for InternalFunction. Previously we did not record any information to CallLinkInfo. Except for the
case that DFGByteCodeParser figures out InternalFunction constant, we cannot attempt to emit DFG
nodes for these InternalFunctions since CallLinkInfo tells us nothing.

Attached microbenchmarks show performance improvement.

baseline patched

dfg-internal-function-construct 1.6439+-0.0826 1.2829+-0.0727 definitely 1.2813x faster
dfg-internal-function-not-handled-construct 2.1862+-0.1361 2.0696+-0.1201 might be 1.0564x faster
dfg-internal-function-not-handled-call 20.7592+-0.9085 19.7369+-0.7921 might be 1.0518x faster
dfg-internal-function-call 1.6856+-0.0967 1.2771+-0.0744 definitely 1.3198x faster

[1]: https://bugs.webkit.org/show_bug.cgi?id=178064

  • API/JSCallbackFunction.cpp:

(JSC::JSCallbackFunction::JSCallbackFunction):
(JSC::JSCallbackFunction::getCallData): Deleted.

  • API/JSCallbackFunction.h:

(JSC::JSCallbackFunction::createStructure):

  • API/ObjCCallbackFunction.h:

(JSC::ObjCCallbackFunction::createStructure):

  • API/ObjCCallbackFunction.mm:

(JSC::ObjCCallbackFunction::ObjCCallbackFunction):
(JSC::ObjCCallbackFunction::getCallData): Deleted.
(JSC::ObjCCallbackFunction::getConstructData): Deleted.

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::printCallOp):

  • bytecode/BytecodeList.json:
  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::setCallee):
(JSC::CallLinkInfo::callee):
(JSC::CallLinkInfo::setLastSeenCallee):
(JSC::CallLinkInfo::lastSeenCallee):
(JSC::CallLinkInfo::visitWeak):

  • bytecode/CallLinkInfo.h:
  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromCallLinkInfo):

  • bytecode/LLIntCallLinkInfo.h:
  • jit/JITOperations.cpp:
  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):

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

(JSC::linkFor):
(JSC::linkPolymorphicCall):

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

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::nativeCallGenerator):
(JSC::nativeTailCallGenerator):
(JSC::nativeTailCallWithoutSavedTagsGenerator):
(JSC::nativeConstructGenerator):
(JSC::internalFunctionCallGenerator):
(JSC::internalFunctionConstructGenerator):

  • jit/ThunkGenerators.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::ArrayConstructor):
(JSC::ArrayConstructor::getConstructData): Deleted.
(JSC::ArrayConstructor::getCallData): Deleted.

  • runtime/ArrayConstructor.h:

(JSC::ArrayConstructor::createStructure):

  • runtime/AsyncFunctionConstructor.cpp:

(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::finishCreation):
(JSC::AsyncFunctionConstructor::getCallData): Deleted.
(JSC::AsyncFunctionConstructor::getConstructData): Deleted.

  • runtime/AsyncFunctionConstructor.h:

(JSC::AsyncFunctionConstructor::createStructure):

  • runtime/AsyncGeneratorFunctionConstructor.cpp:

(JSC::AsyncGeneratorFunctionConstructor::AsyncGeneratorFunctionConstructor):
(JSC::AsyncGeneratorFunctionConstructor::finishCreation):
(JSC::AsyncGeneratorFunctionConstructor::getCallData): Deleted.
(JSC::AsyncGeneratorFunctionConstructor::getConstructData): Deleted.

  • runtime/AsyncGeneratorFunctionConstructor.h:

(JSC::AsyncGeneratorFunctionConstructor::createStructure):

  • runtime/BooleanConstructor.cpp:

(JSC::callBooleanConstructor):
(JSC::BooleanConstructor::BooleanConstructor):
(JSC::BooleanConstructor::finishCreation):
(JSC::BooleanConstructor::getConstructData): Deleted.
(JSC::BooleanConstructor::getCallData): Deleted.

  • runtime/BooleanConstructor.h:

(JSC::BooleanConstructor::createStructure):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::DateConstructor):
(JSC::DateConstructor::getConstructData): Deleted.
(JSC::DateConstructor::getCallData): Deleted.

  • runtime/DateConstructor.h:

(JSC::DateConstructor::createStructure):

  • runtime/Error.h:

(JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
(JSC::StrictModeTypeErrorFunction::createStructure):
(JSC::StrictModeTypeErrorFunction::getConstructData): Deleted.
(JSC::StrictModeTypeErrorFunction::getCallData): Deleted.

  • runtime/ErrorConstructor.cpp:

(JSC::ErrorConstructor::ErrorConstructor):
(JSC::ErrorConstructor::getConstructData): Deleted.
(JSC::ErrorConstructor::getCallData): Deleted.

  • runtime/ErrorConstructor.h:

(JSC::ErrorConstructor::createStructure):

  • runtime/FunctionConstructor.cpp:

(JSC::FunctionConstructor::FunctionConstructor):
(JSC::FunctionConstructor::finishCreation):
(JSC::FunctionConstructor::getConstructData): Deleted.
(JSC::FunctionConstructor::getCallData): Deleted.

  • runtime/FunctionConstructor.h:

(JSC::FunctionConstructor::createStructure):

  • runtime/FunctionPrototype.cpp:

(JSC::callFunctionPrototype):
(JSC::FunctionPrototype::FunctionPrototype):
(JSC::FunctionPrototype::getCallData): Deleted.

  • runtime/FunctionPrototype.h:

(JSC::FunctionPrototype::createStructure):

  • runtime/GeneratorFunctionConstructor.cpp:

(JSC::GeneratorFunctionConstructor::GeneratorFunctionConstructor):
(JSC::GeneratorFunctionConstructor::finishCreation):
(JSC::GeneratorFunctionConstructor::getCallData): Deleted.
(JSC::GeneratorFunctionConstructor::getConstructData): Deleted.

  • runtime/GeneratorFunctionConstructor.h:

(JSC::GeneratorFunctionConstructor::createStructure):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::InternalFunction):
(JSC::InternalFunction::finishCreation):
(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::getConstructData):

  • runtime/InternalFunction.h:

(JSC::InternalFunction::createStructure):
(JSC::InternalFunction::nativeFunctionFor):
(JSC::InternalFunction::offsetOfNativeFunctionFor):

  • runtime/IntlCollatorConstructor.cpp:

(JSC::IntlCollatorConstructor::createStructure):
(JSC::IntlCollatorConstructor::IntlCollatorConstructor):
(JSC::IntlCollatorConstructor::getConstructData): Deleted.
(JSC::IntlCollatorConstructor::getCallData): Deleted.

  • runtime/IntlCollatorConstructor.h:
  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::IntlDateTimeFormatConstructor::createStructure):
(JSC::IntlDateTimeFormatConstructor::IntlDateTimeFormatConstructor):
(JSC::IntlDateTimeFormatConstructor::getConstructData): Deleted.
(JSC::IntlDateTimeFormatConstructor::getCallData): Deleted.

  • runtime/IntlDateTimeFormatConstructor.h:
  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::IntlNumberFormatConstructor::createStructure):
(JSC::IntlNumberFormatConstructor::IntlNumberFormatConstructor):
(JSC::IntlNumberFormatConstructor::getConstructData): Deleted.
(JSC::IntlNumberFormatConstructor::getCallData): Deleted.

  • runtime/IntlNumberFormatConstructor.h:
  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSArrayBufferConstructor::JSArrayBufferConstructor):
(JSC::JSArrayBufferConstructor::createStructure):
(JSC::JSArrayBufferConstructor::getConstructData): Deleted.
(JSC::JSArrayBufferConstructor::getCallData): Deleted.

  • runtime/JSArrayBufferConstructor.h:
  • runtime/JSGenericTypedArrayViewConstructor.h:
  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::JSGenericTypedArrayViewConstructor):
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::createStructure):
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::getConstructData): Deleted.
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::getCallData): Deleted.

  • runtime/JSInternalPromiseConstructor.cpp:

(JSC::JSInternalPromiseConstructor::createStructure):
(JSC::JSInternalPromiseConstructor::JSInternalPromiseConstructor):
(JSC::JSInternalPromiseConstructor::getConstructData): Deleted.
(JSC::JSInternalPromiseConstructor::getCallData): Deleted.

  • runtime/JSInternalPromiseConstructor.h:
  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::createStructure):
(JSC::JSPromiseConstructor::JSPromiseConstructor):
(JSC::JSPromiseConstructor::getConstructData): Deleted.
(JSC::JSPromiseConstructor::getCallData): Deleted.

  • runtime/JSPromiseConstructor.h:
  • runtime/JSType.h:
  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::JSTypedArrayViewConstructor):
(JSC::JSTypedArrayViewConstructor::createStructure):
(JSC::JSTypedArrayViewConstructor::getConstructData): Deleted.
(JSC::JSTypedArrayViewConstructor::getCallData): Deleted.

  • runtime/JSTypedArrayViewConstructor.h:
  • runtime/MapConstructor.cpp:

(JSC::MapConstructor::MapConstructor):
(JSC::MapConstructor::getConstructData): Deleted.
(JSC::MapConstructor::getCallData): Deleted.

  • runtime/MapConstructor.h:

(JSC::MapConstructor::createStructure):
(JSC::MapConstructor::MapConstructor): Deleted.

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor::NativeErrorConstructor):
(JSC::NativeErrorConstructor::getConstructData): Deleted.
(JSC::NativeErrorConstructor::getCallData): Deleted.

  • runtime/NativeErrorConstructor.h:

(JSC::NativeErrorConstructor::createStructure):

  • runtime/NullGetterFunction.cpp:

(JSC::NullGetterFunction::NullGetterFunction):
(JSC::NullGetterFunction::getCallData): Deleted.
(JSC::NullGetterFunction::getConstructData): Deleted.

  • runtime/NullGetterFunction.h:

(JSC::NullGetterFunction::createStructure):
(JSC::NullGetterFunction::NullGetterFunction): Deleted.

  • runtime/NullSetterFunction.cpp:

(JSC::NullSetterFunction::NullSetterFunction):
(JSC::NullSetterFunction::getCallData): Deleted.
(JSC::NullSetterFunction::getConstructData): Deleted.

  • runtime/NullSetterFunction.h:

(JSC::NullSetterFunction::createStructure):
(JSC::NullSetterFunction::NullSetterFunction): Deleted.

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::NumberConstructor):
(JSC::constructNumberConstructor):
(JSC::constructWithNumberConstructor): Deleted.
(JSC::NumberConstructor::getConstructData): Deleted.
(JSC::NumberConstructor::getCallData): Deleted.

  • runtime/NumberConstructor.h:

(JSC::NumberConstructor::createStructure):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::ObjectConstructor):
(JSC::ObjectConstructor::getConstructData): Deleted.
(JSC::ObjectConstructor::getCallData): Deleted.

  • runtime/ObjectConstructor.h:

(JSC::ObjectConstructor::createStructure):

  • runtime/ProxyConstructor.cpp:

(JSC::ProxyConstructor::ProxyConstructor):
(JSC::ProxyConstructor::getConstructData): Deleted.
(JSC::ProxyConstructor::getCallData): Deleted.

  • runtime/ProxyConstructor.h:

(JSC::ProxyConstructor::createStructure):

  • runtime/ProxyRevoke.cpp:

(JSC::ProxyRevoke::ProxyRevoke):
(JSC::ProxyRevoke::getCallData): Deleted.

  • runtime/ProxyRevoke.h:

(JSC::ProxyRevoke::createStructure):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::RegExpConstructor):
(JSC::RegExpConstructor::getConstructData): Deleted.
(JSC::RegExpConstructor::getCallData): Deleted.

  • runtime/RegExpConstructor.h:

(JSC::RegExpConstructor::createStructure):

  • runtime/SetConstructor.cpp:

(JSC::SetConstructor::SetConstructor):
(JSC::SetConstructor::getConstructData): Deleted.
(JSC::SetConstructor::getCallData): Deleted.

  • runtime/SetConstructor.h:

(JSC::SetConstructor::createStructure):
(JSC::SetConstructor::SetConstructor): Deleted.

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::StringConstructor):
(JSC::StringConstructor::getConstructData): Deleted.
(JSC::StringConstructor::getCallData): Deleted.

  • runtime/StringConstructor.h:

(JSC::StringConstructor::createStructure):

  • runtime/SymbolConstructor.cpp:

(JSC::SymbolConstructor::SymbolConstructor):
(JSC::SymbolConstructor::getConstructData): Deleted.
(JSC::SymbolConstructor::getCallData): Deleted.

  • runtime/SymbolConstructor.h:

(JSC::SymbolConstructor::createStructure):

  • runtime/VM.cpp:

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

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

(JSC::WeakMapConstructor::WeakMapConstructor):
(JSC::WeakMapConstructor::getConstructData): Deleted.
(JSC::WeakMapConstructor::getCallData): Deleted.

  • runtime/WeakMapConstructor.h:

(JSC::WeakMapConstructor::createStructure):
(JSC::WeakMapConstructor::WeakMapConstructor): Deleted.

  • runtime/WeakSetConstructor.cpp:

(JSC::WeakSetConstructor::WeakSetConstructor):
(JSC::WeakSetConstructor::getConstructData): Deleted.
(JSC::WeakSetConstructor::getCallData): Deleted.

  • runtime/WeakSetConstructor.h:

(JSC::WeakSetConstructor::createStructure):
(JSC::WeakSetConstructor::WeakSetConstructor): Deleted.

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::createStructure):
(JSC::WebAssemblyCompileErrorConstructor::WebAssemblyCompileErrorConstructor):
(JSC::WebAssemblyCompileErrorConstructor::getConstructData): Deleted.
(JSC::WebAssemblyCompileErrorConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyCompileErrorConstructor.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::createStructure):
(JSC::WebAssemblyInstanceConstructor::WebAssemblyInstanceConstructor):
(JSC::WebAssemblyInstanceConstructor::getConstructData): Deleted.
(JSC::WebAssemblyInstanceConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyInstanceConstructor.h:
  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::WebAssemblyLinkErrorConstructor::createStructure):
(JSC::WebAssemblyLinkErrorConstructor::WebAssemblyLinkErrorConstructor):
(JSC::WebAssemblyLinkErrorConstructor::getConstructData): Deleted.
(JSC::WebAssemblyLinkErrorConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyLinkErrorConstructor.h:
  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::WebAssemblyMemoryConstructor::createStructure):
(JSC::WebAssemblyMemoryConstructor::WebAssemblyMemoryConstructor):
(JSC::WebAssemblyMemoryConstructor::getConstructData): Deleted.
(JSC::WebAssemblyMemoryConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyMemoryConstructor.h:
  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::createStructure):
(JSC::WebAssemblyModuleConstructor::WebAssemblyModuleConstructor):
(JSC::WebAssemblyModuleConstructor::getConstructData): Deleted.
(JSC::WebAssemblyModuleConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyModuleConstructor.h:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::createStructure):
(JSC::WebAssemblyRuntimeErrorConstructor::WebAssemblyRuntimeErrorConstructor):
(JSC::WebAssemblyRuntimeErrorConstructor::getConstructData): Deleted.
(JSC::WebAssemblyRuntimeErrorConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyRuntimeErrorConstructor.h:
  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::WebAssemblyTableConstructor::createStructure):
(JSC::WebAssemblyTableConstructor::WebAssemblyTableConstructor):
(JSC::WebAssemblyTableConstructor::getConstructData): Deleted.
(JSC::WebAssemblyTableConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyTableConstructor.h:

Source/WebCore:

  • bridge/runtime_method.cpp:

(JSC::RuntimeMethod::RuntimeMethod):
(JSC::RuntimeMethod::getCallData): Deleted.

  • bridge/runtime_method.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPMethod.cpp:

(WebKit::JSNPMethod::JSNPMethod):
(WebKit::JSNPMethod::getCallData): Deleted.

  • WebProcess/Plugins/Netscape/JSNPMethod.h:

(WebKit::JSNPMethod::createStructure):

4:58 AM Changeset in webkit [224486] by rmorisset@apple.com
  • 3 edits
    1 add in trunk

Add a third benchmark to TailBench
https://bugs.webkit.org/show_bug.cgi?id=178815

Reviewed by Saam Barati.

Add a new benchmark to TailBench: a BF interpreter written in a weird kinda functional style

PerformanceTests:

  • TailBench9000/bf-interpreter.js: Added.

(lookForMatchingBracket):
(evalRec):
(infiniteTape):
(evalShort):

Tools:

  • Scripts/run-jsc-benchmarks:
4:56 AM Changeset in webkit [224485] by rmorisset@apple.com
  • 2 edits in trunk/PerformanceTests

PerformanceTests/TailBench9000/merge-sort.js does not actually sort any of the large arrays it allocates
https://bugs.webkit.org/show_bug.cgi?id=178817

Reviewed by Saam Barati.

  • TailBench9000/merge-sort.js:

(TEST_mergeSort):

12:31 AM Changeset in webkit [224484] by mjs@apple.com
  • 5 edits in trunk

Canonical name of EUC-KR encoding should be EUC-KR, not windows-949
https://bugs.webkit.org/show_bug.cgi?id=179305

Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

  • web-platform-tests/encoding/textdecoder-labels-expected.txt: Updated expected results. The test already correctly covered this.
  • web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt: ditto

Source/WebCore:

Already covered by:
LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-labels.html
LayoutTests/imported/w3c/web-platform-tests/encoding/textencoder-constructor-non-utf-expected.html
LayoutTests/fast/encoding/charset-decode.html

  • platform/text/TextCodecICU.cpp: Change registration so the EUC-KR name

is canonical.
(WebCore::TextCodecICU::registerCodecs): However, we still want to use the windows-949
decoder. It's not exactly the same, but the spec calls for that.

12:05 AM Changeset in webkit [224483] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Cairo] CairoGlyphToPathTranslator::path() shouldn't fill out the glyph path
https://bugs.webkit.org/show_bug.cgi?id=179159

Reviewed by Michael Catanzaro.

In case of non-zero synthetic bold offset in CairoGlyphToPathTranslator::path(),
cairo_glyph_path() should be called just like in the generic case.
cairo_show_glyphs() performs the actual rasterization of the glyph, but we're
only interested in the generated path operations.

No new tests -- covered by existing tests.

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::CairoGlyphToPathTranslator::path):

Nov 5, 2017:

11:53 PM Changeset in webkit [224482] by mjs@apple.com
  • 1 edit in trunk/Source/WebCore/ChangeLog

Unreviewed. Remove stray conflict markers from ChangeLog.

11:04 PM Changeset in webkit [224481] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r221338): Web Inspector: NavigationBar incorrectly calculates minimumWidth
https://bugs.webkit.org/show_bug.cgi?id=179292

Reviewed by Devin Rousso.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype._calculateMinimumWidth):
totalItemWidth was the minimumWidth of the last item.

10:56 PM Changeset in webkit [224480] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.10-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35339831

10:47 PM Changeset in webkit [224479] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.0-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35296415

8:46 PM Changeset in webkit [224478] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35296413

8:10 PM Changeset in webkit [224477] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Revert r224473. rdar://problem/35296413

7:59 PM Changeset in webkit [224476] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Fix build after r224463
https://bugs.webkit.org/show_bug.cgi?id=179310

Unreviewed build fix.

No new tests (No behavior change).

Patch by Fujii Hironori <Fujii Hironori> on 2017-11-05

  • platform/graphics/win/GraphicsContextCairoWin.cpp: Include "GraphicsContextImpl.h".
7:47 PM Changeset in webkit [224475] by webkit@devinrousso.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas Tab: selecting Frame tree element should update preview/slider, does nothing
https://bugs.webkit.org/show_bug.cgi?id=179072
<rdar://problem/35278711>

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged):

  • UserInterface/Views/RecordingActionTreeElement.css:

(.item.action > .titles .parameter.swizzled):
(.tree-outline:not(:focus, .force-focus) .item.action:not(.initial-state, .parent, .invalid) > .icon): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .item.action > .titles .parameter.swizzled): Deleted.
Drive-by: remove extra :focus selectors to prevent icon flashing when the window is blurred.

6:17 PM Changeset in webkit [224474] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.1-branch/Source

Versioning.

6:17 PM Changeset in webkit [224473] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35296413

2:34 PM Changeset in webkit [224472] by graouts@webkit.org
  • 27 edits in trunk

[Web Animations] Schedule animations registered on the document timeline
https://bugs.webkit.org/show_bug.cgi?id=179236
<rdar://problem/35332669>

Reviewed by Dean Jackson.

Source/WebCore:

We now schedule animations contained in the document timeline using a three-step approach.

  1. Each time an object that is part of the timing model changes one of its timing properties, we call animationTimingModelDidChange() on the document timeline. This schedules performInvalidationTask() to be called when the current run loop completes, such that we invalidate the timing model just once per run loop.
  1. Once performInvalidationTask() is called, the timing model is invalidated in updateAnimationSchedule(). We iterate over the registered animations on the timineline and identify the shortest interval between the current time and the next moment one of the animations requires a tick to update its value. If we find a value below 15ms, we schedule animations to be resolved with scheduleAnimationResolution() right away. If the value is above 15ms, and not inifinity, we schedule a one-shot timer for that interval to call scheduleAnimationResolution().
  1. Once scheduleAnimationResolution() is called, we call scheduleAnimation() on the shared DisplayRefreshMonitorManager to be notified when the next display refresh occurs to actually resolve animations with resolveAnimations().

Note that, in this patch, resolveAnimations() does nothing, we will add support for interpolating values in
a future patch.

Another important thing to note is that every time the document timeline's current time is requested, we cache
it for the duration of the run loop such that the timing model always uses the same value during a given run loop.

Finally, to support tests where we check the state of the timing model by manually advancing time, we expose a
new pause() method on AnimationTimeline for tests to call to avoid the timeline to self-advance.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::addAnimation): Mark that the timing model changed as a result of adding an animation.
(WebCore::AnimationTimeline::removeAnimation): Mark that the timing model changed as a result of removing an animation.
(WebCore::AnimationTimeline::bindingsCurrentTime): Update the method signature to no longer be const and call into
currentTime() instead of reading directly from the m_currentTime member variable since a subclass, like DocumentTimeline,
may have a custom currentTime() implementation.
(WebCore::AnimationTimeline::setCurrentTime): Mark that the timing model changed as a result of the timeline current time
changing.
(WebCore::AnimationTimeline::bindingsCurrentTime const): Deleted.

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::currentTime): Change both methods signatures to no longer be const so that DocumentTimeline's
implementation of currentTime() may cache the current time in a member variable, enqueuing a callback when the run loop
completes for this member variable to be reset, and updating some states.
(WebCore::AnimationTimeline::pause): To be implemented by subclasses.
(WebCore::AnimationTimeline::animationTimingModelDidChange): Add a new virtual method to indicate that the timing model
needs invalidating.
(WebCore::AnimationTimeline::animations const): Add an accessor to allow animations to be accessed by a subclass.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::create):
(WebCore::DocumentTimeline::DocumentTimeline): Update the constructor signature to receive a Document and a PlatformDisplayID
since we need a reference to the Document to get at the nowTime() and a PlatformDisplayID to create the DisplayRefreshMonitor.
(WebCore::DocumentTimeline::~DocumentTimeline): Close the task queue when the timeline gets destroyed.
(WebCore::DocumentTimeline::currentTime): If we don't have a current cahed current time, compute one and schedule
the invalidation task if needed so that we may reset the cached value as the run loop completes.
(WebCore::DocumentTimeline::pause): Allows the timeline not to self-advance, for testing purposes only.
(WebCore::DocumentTimeline::animationTimingModelDidChange): If we haven't already done so, mark that we need to update our
animation schedule in the invalidation task and schedule that task if not scheduled yet.
(WebCore::DocumentTimeline::scheduleInvalidationTaskIfNeeded): Schedule the invalidation task to run as the run loop completes
if we haven't already done so.
(WebCore::DocumentTimeline::performInvalidationTask): Update the animation schedule if needed and reset the cached current
time value.
(WebCore::DocumentTimeline::updateAnimationSchedule): Iterate over registed animations and find the shortest interval until
one of them needs to update their animation. If the shortest interval is below 15ms, schedule the animation resolution right
away. If the shortest inverval is finite and above 15ms, then schedule a one-shot timer for that interval to perform the
animation resolution then.
(WebCore::DocumentTimeline::animationScheduleTimerFired): The one-shot timer to perform the animation resolution has fired,
we call scheduleAnimationResolution().
(WebCore::DocumentTimeline::scheduleAnimationResolution): We call scheduleAnimation() on the shared DisplayRefreshMonitorManager
so that we may resolve animations on the next display refresh, or start a timer if the DisplayRefreshMonitorManager is not available.
(WebCore::DocumentTimeline::displayRefreshFired): The display is about to refresh, we call resolveAnimations().
(WebCore::DocumentTimeline::animationResolutionTimerFired): The fallback animation resolution timer has fired, we call resolveAnimations().
(WebCore::DocumentTimeline::resolveAnimations): Currently do nothing, this is where we'll iterate over registered animations to
update them with the current time.
(WebCore::DocumentTimeline::windowScreenDidChange): Notify the shared DisplayRefreshMonitorManager that the PlatformDisplayID
changed.
(WebCore::DocumentTimeline::createDisplayRefreshMonitor const): Provide a DisplayRefreshMonitor as part of the
DisplayRefreshMonitorClient protocol.

  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::create): Remove extra white space.
(WebCore::WebAnimation::setStartTime): Mark that the timing model changed as a result of changing this animation's start time.
(WebCore::WebAnimation::timeToNextRequiredTick const): Compute the interval until the next time we need to resolve this animation.
If the provided current time is before this animation's start time, compute the delay until the start time. If the current time
is after the animation's start time but before the animation's end time, indicate that we want to resolve the animation again
right away and return 0ms. In any other case, return an infinite interval to indicate that we don't need to be refreshed after
the provided time.

  • animation/WebAnimation.h:
  • dom/Document.cpp:

(WebCore::Document::windowScreenDidChange): Notify the document timeline that the PlatformDisplayID changed.
(WebCore::Document::timeline): Provide the Document and the PlatformDisplayID to the DocumentTimeline.

  • testing/Internals.cpp:

(WebCore::Internals::pauseTimeline):

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

LayoutTests:

Adopt the new internals.pauseTimeline() method to ensure that the existing
tests do not have a self-advancing timeline since we're interested in checking
the timing model state based on manually setting the timeline current time.

Also update some WPT expectations with some progressions.

in the failure.

  • http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt:
  • http/wpt/web-animations/timing-model/animations/current-time-expected.txt:
  • http/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:
  • http/wpt/wk-web-animations/timing-model/animation-creation-basic.html:
  • http/wpt/wk-web-animations/timing-model/animation-current-time.html:
  • http/wpt/wk-web-animations/timing-model/animation-effect-timing.html:
  • http/wpt/wk-web-animations/timing-model/animation-effect.html:
  • http/wpt/wk-web-animations/timing-model/animation-interface-effect-property.html:
  • http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property.html:
  • http/wpt/wk-web-animations/timing-model/animation-playback-rate.html:
  • http/wpt/wk-web-animations/timing-model/document-timeline.html:
  • http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration.html:
  • http/wpt/wk-web-animations/timing-model/keyframe-effect.html:
  • http/wpt/wk-web-animations/timing-model/timeline-current-time.html:
2:17 PM Changeset in webkit [224471] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/tests/security/xss-DENIED-xsl-external-entity.xml as a flaky failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179301

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:32 PM Changeset in webkit [224470] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/html/menuitem-element.html as failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179299

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:18 PM Changeset in webkit [224469] by Chris Dumez
  • 23 edits in trunk

Implement ServiceWorkerRegistration.update()
https://bugs.webkit.org/show_bug.cgi?id=179270

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more are passing or at least failing later.

  • web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-with-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multiple-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multiple-update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:

I investigated this test and it is still failing later on because we clear registrations too
aggressively on the StorageProcess side we are supposed to make sure the registration does
not have a newestWorker before clearing it when a script fetch fails or a script syntax error
occurs. We properly have those if (!newestWorker) checks in the code but service workers
are not yet populated on the SWServerRegistration object so SWServerRegistration::getNewestWorker()
alwasy returns null.

Source/WebCore:

Implement ServiceWorkerRegistration.update():

We already had support for the Update algorithm in SWServerJobQueue but
this patch enhances our support a bit to get us closer to the specification:

No new tests, rebaselined existing tests.

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

  • workers/service/ServiceWorkerJobType.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::installing):
(WebCore::ServiceWorkerRegistration::waiting):
(WebCore::ServiceWorkerRegistration::active):
(WebCore::ServiceWorkerRegistration::setInstallingWorker):
(WebCore::ServiceWorkerRegistration::setWaitingWorker):
(WebCore::ServiceWorkerRegistration::setActiveWorker):
(WebCore::ServiceWorkerRegistration::getNewestWorker):
(WebCore::ServiceWorkerRegistration::update):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::scriptContextFailedToStart):
(WebCore::SWServerJobQueue::runNextJobSynchronously):
(WebCore::SWServerJobQueue::runUpdateJob):

11:20 AM Changeset in webkit [224468] by pvollan@apple.com
  • 2 edits in trunk/JSTests

[Win] Skip stress/regress-178385.js.
https://bugs.webkit.org/show_bug.cgi?id=179298

Unreviewed test gardening.

  • stress/regress-178385.js:
9:51 AM Changeset in webkit [224467] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/loader/empty-embed-src-attribute.html as a flaky crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179297

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:06 AM Changeset in webkit [224466] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/css/object-fit/object-fit-embed.html and related tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179296

Unreviewed test gardening.

  • platform/win/TestExpectations:

Nov 4, 2017:

10:40 PM Changeset in webkit [224465] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Move code that maps a CompositeOperator and BlendMode to a CGBlendMode into a helper function
https://bugs.webkit.org/show_bug.cgi?id=179290

Reviewed by Darin Adler.

Move the code, and use nested switch rather than conditionals.

  • platform/graphics/GraphicsTypes.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::compositeAndBlendToCGBlendMode):
(WebCore::GraphicsContext::setPlatformCompositeOperation):

5:54 PM Changeset in webkit [224464] by Chris Dumez
  • 9 edits in trunk

Index properties on cross origin Window objects should be enumerable
https://bugs.webkit.org/show_bug.cgi?id=179289

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Re-sync WPT test after:

Rebaseline a couple of WPT tests now that more checks are passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
  • web-platform-tests/html/browsers/the-window-object/window-indexed-properties-expected.txt:

Source/WebCore:

Index properties on cross origin Window objects should be enumerable:

All exposed properties used to be enumerable but we had to revert this in
r224287 because it was not Web-compatible. The HTML specification has now
been updated so that only index properties are enumerable cross origin.

No new tests, rebaselined existing tests.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::JSDOMWindow::getOwnPropertyNames):

LayoutTests:

Update / rebaseline existing test to match new expected behavior.

  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/resources/getOwnPropertyDescriptor.js:
4:43 PM Changeset in webkit [224463] by Simon Fraser
  • 14 edits
    2 adds in trunk/Source/WebCore

Add a GraphicsContextImpl and use it for DispayList::Recorder
https://bugs.webkit.org/show_bug.cgi?id=179286

Reviewed by Sam Weinig.

Start moving towards a model when GraphicsContext has a pointer to an implementation
("pimpl") by adding GraphicsContextImpl, and converting display list recording to
be an implementation of a GraphicsContextImpl.

No behavior change.

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

(WebCore::DisplayListDrawingContext::DisplayListDrawingContext):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::save):
(WebCore::GraphicsContext::restore):
(WebCore::GraphicsContext::setStrokeThickness):
(WebCore::GraphicsContext::setStrokeStyle):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::setLegacyShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::setShadowsIgnoreTransforms):
(WebCore::GraphicsContext::setShouldAntialias):
(WebCore::GraphicsContext::setShouldSmoothFonts):
(WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
(WebCore::GraphicsContext::setImageInterpolationQuality):
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillRule):
(WebCore::GraphicsContext::setFillGradient):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::drawGlyphs):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::setTextDrawingMode):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::setDrawLuminanceMask):
(WebCore::GraphicsContext::applyDeviceScaleFactor):
(WebCore::GraphicsContext::fillEllipse):
(WebCore::GraphicsContext::strokeEllipse):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::hasPlatformContext const):
(WebCore::GraphicsContext::paintingDisabled const):
(WebCore::GraphicsContext::setDisplayListRecorder): Deleted.
(WebCore::GraphicsContext::isRecording const): Deleted.

  • platform/graphics/GraphicsContextImpl.cpp: Added.

(WebCore::GraphicsContextImpl::GraphicsContextImpl):
(WebCore::GraphicsContextImpl::~GraphicsContextImpl):

  • platform/graphics/GraphicsContextImpl.h: Added.

(WebCore::GraphicsContextImpl::graphicsContext const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::getCTM const):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::clipBounds const):
(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality):
(WebCore::GraphicsContext::isAcceleratedContext const):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::clipBounds const):
(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::getCTM const):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::setIsCALayerContext):
(WebCore::GraphicsContext::isCALayerContext const):
(WebCore::GraphicsContext::setIsAcceleratedContext):
(WebCore::GraphicsContext::isAcceleratedContext const):
(WebCore::GraphicsContext::setPlatformTextDrawingMode):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::GraphicsContext::setPlatformShouldSmoothFonts):
(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
(WebCore::GraphicsContext::platformApplyDeviceScaleFactor):
(WebCore::GraphicsContext::platformFillEllipse):
(WebCore::GraphicsContext::platformStrokeEllipse):
(WebCore::GraphicsContext::setDestinationForRect):
(WebCore::GraphicsContext::addDestinationAtPoint):

  • platform/graphics/cocoa/GraphicsContextCocoa.mm:

(WebCore::GraphicsContext::drawFocusRing):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::updateItemExtent const):
(WebCore::DisplayList::Recorder::extentFromLocalBounds const):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::itemCount const):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint):

4:01 PM Changeset in webkit [224462] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

REGRESSION(r223718): Leaking WebProcessPool after reconfiguration
https://bugs.webkit.org/show_bug.cgi?id=179123
<rdar://problem/35294685>

Reviewed by Geoff Garen.

Make sure we destroy the ServiceWorker WebProcess once all other WebProcesses
go away at there is no use keeping it running at this point. Also, this prevents
leaking the WebProcessPool since the WebProcessProxy holds a strong reference
to the WebProcessPool.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::disconnectProcess):

3:02 PM Changeset in webkit [224461] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LayoutState cleanup] Move all LayoutState* classes to LayoutState.h/cpp
https://bugs.webkit.org/show_bug.cgi?id=179280
<rdar://problem/35348452>

Reviewed by Antti Koivisto.

No change in functionality.

  • page/LayoutContext.cpp:

(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer): Deleted.
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer): Deleted.
(WebCore::SubtreeLayoutStateMaintainer::shouldDisableLayoutStateForSubtree): Deleted.

  • rendering/LayoutState.cpp:

(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::~LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):
(WebCore::shouldDisableLayoutStateForSubtree):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer):

  • rendering/LayoutState.h:

(WebCore::LayoutStateMaintainer::didPush const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer): Deleted.
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer): Deleted.
(): Deleted.

  • rendering/RenderView.h:

(WebCore::LayoutStateMaintainer::LayoutStateMaintainer): Deleted.
(WebCore::LayoutStateMaintainer::~LayoutStateMaintainer): Deleted.
(WebCore::LayoutStateMaintainer::push): Deleted.
(WebCore::LayoutStateMaintainer::pop): Deleted.
(WebCore::LayoutStateMaintainer::didPush const): Deleted.
(WebCore::LayoutStateDisabler::LayoutStateDisabler): Deleted.
(WebCore::LayoutStateDisabler::~LayoutStateDisabler): Deleted.

2:41 PM Changeset in webkit [224460] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LayoutState cleanup] Move offset/cliprect/pagination code to dedicate methods
https://bugs.webkit.org/show_bug.cgi?id=179279
<rdar://problem/35348171>

Reviewed by Antti Koivisto.

This is in preparation for creating the initial LayoutSate through LayoutStateMaintainer.

Moving code around. No change in functionality.

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computeOffsets):
(WebCore::LayoutState::computeClipRect):
(WebCore::LayoutState::computePaginationInformation):

  • rendering/LayoutState.h:
2:19 PM Changeset in webkit [224459] by Darin Adler
  • 61 edits
    2 deletes in trunk/Source

Simplify event dispatch code and make it a bit more consistent
https://bugs.webkit.org/show_bug.cgi?id=178991

Reviewed by Chris Dumez.

Source/WebCore:

Straighten out event dispatch code in three ways:

1) Add an Event::resetAfterDispatch function, and use it instead of the multiple

separate functions that were used before to reset after dispatching. This fixed
an extremely minor bug where we would leave some kinds of state on some event
objects in unusual cases after dispatching the events.

2) Remove IDBEventDispatcher and make its callers use EventDispatcher instead.

This leaves us with one less event dispatch code path to maintain, more shared code.

3) Remove boolean return values from functions that take event objects and

dispatch the events. The return values are redundant with various things that
can be checked by looking at the event itself. The legacy return value indicates
whether the event has its "canceled flag" set, which means that the default
behavior should be prevented. If that is what we need to check, it's easier
to read the code and see that it's correct if it calls the named function
"defaultPrevented" directly. More importantly, callers can also call whatever
other function is appropriate to ask the specific relevant question to their needs.
The general rule is that default behavior that we want to allow even with an
untrusted event can be inside a default event handler function. Default behavior
that should only happen for the browser-generated event can and should be done
after dispatching the event, in the code that dispatches it; but that requires
explicitly checking "defaultPrevented".

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::dispatchEvent): Removed boolean return value.

  • Modules/indexeddb/IDBDatabase.h: Ditto.
  • Modules/indexeddb/IDBEventDispatcher.cpp: Removed.
  • Modules/indexeddb/IDBEventDispatcher.h: Removed.
  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::dispatchEvent): Removed boolean return value.
Added protection for "this" since the function accesses it after dispatching the event.

  • Modules/indexeddb/IDBOpenDBRequest.h: Ditto.
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent): Removed boolean return value. Instead of using
IDBEventDispatcher, use EventDispatcher's new function that takes an initializer_list
with a list of event targets. Added protection for "this" since the function accesses
it after dispatching the event.

  • Modules/indexeddb/IDBRequest.h: Ditto.
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::dispatchEvent): Ditto.

  • Modules/indexeddb/IDBTransaction.h: Ditto.
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::dispatchEvent): Removed boolean return value.

  • Modules/mediastream/RTCPeerConnection.h: Ditto.
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::shippingAddressChanged): Don't dispatch an event if
m_isUpdating is true; preserves behavior that was implemented in
PaymentRequest::dispatchEvent before. Since this is the source of the trusted
event, cleaner to implement the rule here instead of overriding dispatchEvent.
(WebCore::PaymentRequest::shippingOptionChanged): Ditto.
(WebCore::PaymentRequest::dispatchEvent): Deleted.

  • Modules/paymentrequest/PaymentRequest.h: Ditto.
  • Sources.txt: Removed IDBEventDispatcher.cpp.
  • WebCore.xcodeproj/project.pbxproj: Removed IDBEventDispatcher.h/cpp.
  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent): Updated to call defaultPrevented
directly instead of using the return value of dispatchEvent.
(WebCore::Element::dispatchWheelEvent): Ditto.
(WebCore::Element::dispatchKeyEvent): Ditto.
(WebCore::Element::dispatchFocusInEvent): Removed assertion, since the
underlying event dispatching takes care of it.
(WebCore::Element::dispatchFocusOutEvent): Ditto.
(WebCore::Element::dispatchFocusEvent): Call dispatchEvent instead of
calling EventDispatcher::dispatchEvent. There is no good reason to use
EventDispatcher directly.
(WebCore::Element::dispatchBlurEvent): Ditto.

  • dom/Event.cpp:

(WebCore::Event::eventInterface const): Deleted. Moved into header since this is
short and if called in a non-polymorphic context it's good to have it be inlined.
(WebCore::Event::isUIEvent const): Ditto.
(WebCore::Event::isMouseEvent const): Ditto.
(WebCore::Event::isFocusEvent const): Ditto.
(WebCore::Event::isKeyboardEvent const): Ditto.
(WebCore::Event::isInputEvent const): Ditto.
(WebCore::Event::isCompositionEvent const): Ditto.
(WebCore::Event::isTouchEvent const): Ditto.
(WebCore::Event::isClipboardEvent const): Ditto.
(WebCore::Event::isBeforeTextInsertedEvent const): Ditto.
(WebCore::Event::isBeforeUnloadEvent const): Ditto.
(WebCore::Event::isErrorEvent const): Ditto.
(WebCore::Event::isTextEvent const): Ditto.
(WebCore::Event::isWheelEvent const): Ditto.
(WebCore::Event::receivedTarget): Ditto.
(WebCore::Event::resetAfterDispatch): Added. Replaces functions like
clearEventPath and resetPropagationFlags, covering all the things we need to clear
after dispatching an event.

  • dom/Event.h: Removed some unneeded includes and forward declarations. Moved bodies

of multi-line inline member functions out of the class definition. Changed argument
type of setEventPhase and m_eventPhase to an enum rather than just an integer, since
only the getter is for use from the bindings. Removed clearEventPath, srcElement, and
resetPropagationFlags. Sorted the isXXX functions alphabetically and removed previous
attempts to make categories out of them. Marked the constructor explicit since it has
a single argument. Moved trivially short bodies into the class definition.

  • dom/Event.idl: Use ImplementedAs to implement srcElement so we don't need it in

the C++ code.

  • dom/EventContext.cpp:

(WebCore::EventContext::EventContext): Removed assertion since we now handle event
contexts without nodes so we can use this to dispatch events for IDB, for example.
(WebCore::EventContext::handleLocalEvents const): Add code to handle non-node event
targets by calling fireEventListeners directly.
(WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext): Take a reference
insetad of a pointer for the node.
(WebCore::TouchEventContext::TouchEventContext): Ditto.
(WebCore::TouchEventContext::handleLocalEvents const): Streamline a bit by improving
the checkReachability function to be easier to call. Also removed an unneeded assertion
just before calling downcast<>, the same assertion that downcast<> itself does.
(WebCore::TouchEventContext::checkReachability const): Chagned argument type to take
a Ref& so the caller doesn't have to call get() or ptr().

  • dom/EventContext.h: Removed unneeded FIXME and currentTargetSameAsTarget function.

Changed arguemnt types to use Node& instead of Node* as appropriate. Removed unused
functions from TouchEventContext, made more private, and changed data members to Ref
instead of RefPtr. Removed unused NotTouchList value from TouchListType enumeration.
Changed touchList function to return a reference instead of a pointer.

  • dom/EventDispatcher.cpp: Removed unneeded includes.

(WebCore::dispatchEventInDOM): Removed use of currentTargetSameAsTarget since it's
clearer if written out.
(WebCore::EventDispatcher::dispatchEvent): Changed no-event dispatch assertion to
use RELEASE_ASSERT_WITH_SECURITY_IMPLICATION since the style checker says so, but
it still doesn't assert anything in release builds because the check in
NoEventDispatchAssertion itself is debug-only. Moved the calls to EventPath's
setRelatedTarget and retargetTouchLists functions inside the EventPath constructor.
Removed the second no-event dispatch assertion because we only need one. Replaced
calls to clearEventPath, setCurrentTarget(nullptr), resetPropagationFlags,
and setEventPhase(NONE) and with a call to resetAfterDispatch. Moved the code that
temporarily sets the target to a different value when calling default event handlers
into the block that calls the default event handlers. Added a new overload that
takes an initializer list of event targets so we can dispatch events that are not
being sent to nodes.

  • dom/EventDispatcher.h: Fixed misleading copyright dates and names since this file

just contains a couple of function declarations. Added new overload of dispatchEvent.

  • dom/EventPath.cpp:

(WebCore::WindowEventContext::WindowEventContext): Take references instead of pointers.
(WebCore::EventPath::EventPath): Moved the bulk of construction into a new function
named buildPath, so it can still use "return" without skipping the additions here.
Added calls to setRelatedTarget and retargetTouchLists and now both can be private.
Also added a new overload that takes event targets that are not nodes.
(WebCore::EventPath::buildPath): Added. Contains what used to be in the constructor.
But use some references instead of pointers and refactor a bit using lambdas.
(WebCore::EventPath::retargetTouchList): Added. Makes the retargetTouchLists function
shorter and less repetetive.
(WebCore::EventPath::retargetTouchLists): Updated to call retargetTouchList.
(WebCore::EventPath::hasEventListeners const): Deleted. This was unused.

  • dom/EventPath.h: Added a constructor that takes an initializer list of event targets.

Made retargetTouchEvents and setRelatedTarget private and used them in the constructor
insead of expecting clients to call them. Removed unused hasEventListeners and
lastContextIfExists functions. Moved body of the eventTargetRespectingTargetRules
function out of the class definition.

  • dom/EventTarget.cpp:

(WebCore::EventTarget::dispatchEventForBindings): Updated so it does not expect
dispatchEvent to return a boolean. Instead call a function on the event after dispatching.
Decided to use legacyReturnValue instead of !defaultPrevented, because this is exactly
the return value that the returnValue property is referring to.
(WebCore::EventTarget::dispatchEvent): Removed return value. Replaced calls to
resetPropagationFlags and setEventPhase(NONE) with a call to resetAfterDispatch.
I noticed that there was a local boolean here named "defaultPrevented", which was
backwards; the value in that local was "default not prevented". Doesn't matter since
the boolean return value was removed.
(WebCore::EventTarget::fireEventListeners): Removed the boolean return value.

  • dom/EventTarget.h: Added initial values to members of ListenerOptions and

AddEventListenerOptions; maybe we can get rid of the constructors some day.
Removed booelan return values from dispatchEvent and fireEventListeners.

  • dom/KeyboardEvent.cpp: Removed unneeded include of EventDispatcher.h.
  • dom/Node.cpp:

(WebCore::Node::dispatchEvent): Got rid of boolean return value.
Removed special case code that sometimes called dispatchTouchEvent, since that
just turns around and calls EventDispatcher::dispatchEvent just like this function.
(WebCore::Node::dispatchDOMActivateEvent): Removed boolean return value, removed
integer detail argument and moved the logic to compute the value of the detail
peroprty and to call setDefaultHandled on the underlying click event in here.
This is a private helper function used only in one place.
(WebCore::Node::dispatchTouchEvent): Deleted.
(WebCore::Node::defaultEventHandler): Updated for change to dispatchDOMActivateEvent.

  • dom/Node.h: Updated for the above changes.
  • dom/RejectedPromiseTracker.cpp:

(WebCore::RejectedPromiseTracker::reportUnhandledRejections): Use defaultPrevented
directly instead of the return value from dispatchEvent.

  • dom/ScopedEventQueue.cpp:

(WebCore::ScopedEventQueue::enqueueEvent): Moved assertions here ...
(WebCore::ScopedEventQueue::dispatchEvent const): ... from here. Also changed this
to call Node::dispatchEvent instead of calling EventDispatcher::dispatchEvent directly.

  • dom/SimulatedClick.cpp:

(WebCore::simulateMouseEvent): Call Element::dispatchEvent instead of calling
EventDispatcher::dispatchEvent directly.

  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent): Use defaultPrevented directly instead of the
return value from dispatchEvent.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::selectAll): Ditto.
(WebCore::FrameSelection::dispatchSelectStart): Ditto.

  • html/CheckboxInputType.cpp:

(WebCore::CheckboxInputType::didDispatchClick): Take a reference instead of a pointer.

  • html/CheckboxInputType.h: Updated for above and to use final instead of override.
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::checkValidity): Use defaultPrevented directly instead
of the return value from dispatchEvent.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::prepareForSubmission): Use defaultPrevented directly instead
of the return value from dispatchEvent.
(WebCore::HTMLFormElement::reset): Ditto.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::didDispatchClickEvent): Updated to pass references instead
of pointer.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::dispatchEvent): Got rid of boolean return value.

  • html/HTMLMediaElement.h: Ditto.
  • html/HTMLPlugInElement.h: Use "delete" instead of just a private function for something

that should never be called.

  • html/InputType.cpp:

(WebCore::InputType::didDispatchClick): Take a reference instead of a pointer.

  • html/InputType.h: Ditto.
  • html/RadioInputType.cpp:

(WebCore::RadioInputType::didDispatchClick): Ditto.

  • html/RadioInputType.h: Updated for above and to use final instead of override.
  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::dispatchEvent): Got rid of boolean return value.

  • html/track/TextTrackCue.h: Ditto.
  • inspector/InspectorInstrumentation.cpp: Removed unneeded include of EventDispatcher.h.
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchLoadEvent): Streamlined code a bit so we only have a single
call to dispatchEvent. Improved comments.
(WebCore::DOMWindow::dispatchEvent): Removed return value. Added comments. Replaced
calls to setCurrentTarget(null), setEventPhase(NONE), and resetPropagationFlags with
a call to resetAfterDispatch.

  • page/DOMWindow.h: Updated to get rid of the boolean return value.
  • page/DragController.cpp:

(WebCore::DragController::dispatchTextInputEventFor): Use defaultPrevented directly instead
of the return value from dispatchEvent.

  • page/EventHandler.cpp:

(WebCore::dispatchSelectStart): Use defaultPrevented directly instead
of the return value from dispatchEvent.
(WebCore::EventHandler::accessibilityPreventsEventPropagation): Fixed spelling error in the
name of this function.
(WebCore::EventHandler::dispatchDragSrcEvent): Got rid of boolean return value.
(WebCore::EventHandler::handleTouchEvent): Call dispatchEvent instead of dispatchTouchEvent;
there was no difference between the two except that dispatchTouchEvent required downcasting
and might some day lead to us missing some behavior implemented in an override to dispatchEvent.

  • page/EventHandler.h: Updated for above changes.
  • platform/graphics/filters/FilterOperation.h:

(WebCore::FilterOperation::clone): Removed dead code that was causing a compiler warning.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Use defaultPrevented
directly instead of the return value from dispatchEvent.

Source/WebKit:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp:

(webkit_dom_event_get_src_element): Call target instead of srcElement.

Source/WebKitLegacy/mac:

  • DOM/DOMEvent.mm:

(-[DOMEvent srcElement]): Call target instead of srcElement.

9:47 AM Changeset in webkit [224458] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Fix gtk-doc generation with gtk-doc master
https://bugs.webkit.org/show_bug.cgi?id=179252

Reviewed by Carlos Garcia Campos.

gtkdoc-scangobj has changed to no longer use a shell when executing its subcommands. In
particular, this means we can no longer rely on shell stuff in our run command that we use
to run the scanner. We currently use the RUN envvar to set LD_LIBRARY_PATH, and the end
result is gtkdoc-scangobj now attempts to execute our environment variable instead of the
scanner itself. We can just set LD_LIBRARY_PATH directly, instead of using RUN, in order to
make documentation generation work again.

  • gtk/gtkdoc.py:

(GTKDoc._run_gtkdoc_scangobj):

1:20 AM Changeset in webkit [224457] by commit-queue@webkit.org
  • 26 edits
    3 copies
    2 adds in trunk

[Touch Bar Web API] Add support for menuitem tag
https://bugs.webkit.org/show_bug.cgi?id=179020

Patch by Aishwarya Nirmal <anirmal@apple.com> on 2017-11-04
Reviewed by Ryosuke Niwa.

Source/WebCore:

The Touch Bar Web API will make use of the menu and menuitem tags
to represent the NSTouchBar and NSTouchBarItem respectively.
Since WebKit currently does not offer support for the menuitem tag,
this change adds it in. There is a runtime flag for this tag, which
is set to false by default.

A specification for the menuitem element can be found at
https://www.w3.org/TR/2013/WD-html51-20130528/interactive-elements.html#the-menuitem-element.
More attributes of this element will be implemented in future patches.

Test: fast/html/menuitem-element.html

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • html/HTMLElementsAllInOne.cpp:
  • html/HTMLMenuItemElement.cpp: Added.

(WebCore::HTMLMenuItemElement::HTMLMenuItemElement):
(WebCore::HTMLMenuItemElement::create):

  • html/HTMLMenuItemElement.h: Added.
  • html/HTMLMenuItemElement.idl: Added.
  • html/HTMLTagNames.in:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setMenuItemElementEnabled):
(WebCore::RuntimeEnabledFeatures::menuItemElementEnabled const):

Source/WebKit:

Adds in the MenuItemElementEnabled flag so that the menu item element is a runtime-
enabled feature. It has a default value of false.

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

(WKPreferencesSetMenuItemElementEnabled):
(WKPreferencesGetMenuItemElementEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Adds in properties and methods that allow the menuitem runtime feature
to be enabled or disabled.

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

(-[WebPreferences menuItemElementEnabled]):
(-[WebPreferences setMenuItemElementEnabled:]):

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

(-[WebView _preferencesChanged:]):

Tools:

Defines flags for the menu item test so that the element is recognized
only while its test is being run.

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

(TestOptions::TestOptions):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

  • WebKitTestRunner/TestController.cpp:

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

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

This test ensures that the menuitem element is recognized when
its runtime feature is turned on.

  • fast/html/menuitem-element-expected.txt: Added.
  • fast/html/menuitem-element.html: Added.
1:03 AM Changeset in webkit [224456] by webkit@devinrousso.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: add contextmenu item to arbitrarily add HTML/Child to DOMTree
https://bugs.webkit.org/show_bug.cgi?id=179042

Reviewed by Joseph Pecoraro.

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

(WI.DOMNode.prototype.insertAdjacentHTML.inspectedPage_node_insertAdjacentHTML):
(WI.DOMNode.prototype.insertAdjacentHTML):
Call-through to insertAdjacentHTML on the corresponding node in the inspected page.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement):
(WI.DOMTreeElement.prototype._populateNodeContextMenu):
(WI.DOMTreeElement.prototype._startEditingAsHTML.dispose):
(WI.DOMTreeElement.prototype._startEditingAsHTML):
(WI.DOMTreeElement.prototype._insertAdjacentHTML.commitCallback):
(WI.DOMTreeElement.prototype._insertAdjacentHTML):
(WI.DOMTreeElement.prototype.updateTitle):
(WI.DOMTreeElement.prototype._singleTextChild):
(WI.DOMTreeElement.prototype._nodeTitleInfo):
(WI.DOMTreeElement.prototype._addHTML):
(WI.DOMTreeElement.prototype._addPreviousSibling):
(WI.DOMTreeElement.prototype._addNextSibling):
(WI.DOMTreeElement.prototype._editAsHTML):
Adjust where the editing element is placed depending on the options passed to _editAsHTML.
If the placement is as a child, put it inside the child list. If the placement is as a
sibling, place it before/after the selected TreeElement. Otherwise, add it as a child.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom):
(.tree-outline.dom li):
(.tree-outline.dom li:not(.editing)):
(.tree-outline.dom li.editing):
(body[dir=ltr] .tree-outline.dom li): Deleted.
(body[dir=rtl] .tree-outline.dom li): Deleted.
Don't add padding when the list item is being edited.

Nov 3, 2017:

10:40 PM Changeset in webkit [224455] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

LayoutState should take RenderBox reference.
https://bugs.webkit.org/show_bug.cgi?id=179272
<rdar://problem/35345247>

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::propagateLineGridInfo):
(WebCore::LayoutState::establishLineGrid):

  • rendering/LayoutState.h: type tightening.
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage const):

  • rendering/RenderView.cpp:

(WebCore::RenderView::pushLayoutState):

  • rendering/RenderView.h:
10:19 PM Changeset in webkit [224454] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Unreviewed, rolling out r224438.

Has caused assertions on the bots

Reverted changeset:

"REGRESSION(r223718): Leaking WebProcessPool after
reconfiguration"
https://bugs.webkit.org/show_bug.cgi?id=179123
https://trac.webkit.org/changeset/224438

7:12 PM Changeset in webkit [224453] by Chris Dumez
  • 20 edits
    4 adds in trunk

Implement ServiceWorkerContainer.getRegistration
https://bugs.webkit.org/show_bug.cgi?id=179253

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-03
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/activation.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-with-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/getregistration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigate-window.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-iframe.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/synced-state.https-expected.txt:

Source/WebCore:

Test: http/tests/workers/service/service-worker-getRegistration.html

Added a map of ServiceWorkerRegistration in ServiceWorkerContainer.
Removing a similar map from SWClientConnection as it is more convenient to have this map per ScriptExecutionContext.

This map allows returning the same JS object for different getRegistration.
Delegating the actual matching to SWServer::Connection which is implemented on the StorageProcess through IPC.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobDidFinish):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerContainer.idl:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::~ServiceWorkerRegistration):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::updateRegistrationState):
(WebCore::SWClientConnection::addServiceWorkerRegistration): Deleted.
(WebCore::SWClientConnection::removeServiceWorkerRegistration): Deleted.

  • workers/service/server/SWClientConnection.h:

LayoutTests:

  • TestExpectations:
  • http/tests/workers/service/resources/service-worker-getRegistration-worker.js: Added.
  • http/tests/workers/service/resources/service-worker-getRegistration.js: Added.
  • http/tests/workers/service/service-worker-getRegistration-expected.txt: Added.
  • http/tests/workers/service/service-worker-getRegistration.html: Added.
6:57 PM Changeset in webkit [224452] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[iOS-WK1] Fix thread safety issue in WebSQLiteDatabaseTrackerClient
https://bugs.webkit.org/show_bug.cgi?id=179190

Reviewed by David Kilzer.

WebSQLiteDatabaseTrackerClient and its HystererisActivity member are constructed on the UIThread. The
HystererisActivity activity also fires on the UIThread, which means that WebSQLiteDatabaseTrackerClient::hysteresisUpdated()
gets called on the UIThread.

However, the code in WebSQLiteDatabaseTrackerClient::willBeginFirstTransaction() / WebSQLiteDatabaseTrackerClient::didFinishLastTransaction()
uses callOnMainThread() before calling methods on the HysteresisActivity. callOnMainThread() dispatches to the WebThread on WK1 iOS, which
would lead to crashes when calling methods of the HystererisActivity object:
* -[CFRunLoopTimer respondsToSelector:]: message sent to deallocated instance 0x1c0b6a500

To address the issue, we now dispatch_async() to the main queue in willBeginFirstTransaction() / didFinishLastTransaction()
instead of using callOnMainThread(). I also added assertions to catch issues like these.

  • platform/ios/WebSQLiteDatabaseTrackerClient.mm:

(WebCore::WebSQLiteDatabaseTrackerClient::willBeginFirstTransaction):
(WebCore::WebSQLiteDatabaseTrackerClient::didFinishLastTransaction):
(WebCore::WebSQLiteDatabaseTrackerClient::hysteresisUpdated):

6:14 PM Changeset in webkit [224451] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.0.1

Tag Safari-604.4.7.0.1.

5:52 PM Changeset in webkit [224450] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.0.2

Tag Safari-604.4.7.0.2.

5:51 PM Changeset in webkit [224449] by jmarcell@apple.com
  • 1 delete in tags/Safari-604.4.7.0.2

Deleting tag.

5:50 PM Changeset in webkit [224448] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.0-branch/Source

Versioning.

5:40 PM Changeset in webkit [224447] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.1.2

Tag Safari-604.4.7.1.2.

5:39 PM Changeset in webkit [224446] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.0.2

Tag Safari-604.4.7.0.2.

5:36 PM Changeset in webkit [224445] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.10.2

Tag Safari-604.4.7.10.2.

5:36 PM Changeset in webkit [224444] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore
ASSERTION FAILED: NoEventDispatchAssertion::InMainThread::isEventAllowed()
(frameView && frameView->isInChildFrameWithFrameFlattening())

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

Reviewed by Youenn Fablet.

Avoid updating the layout inside HTMLMediaElement::stop() and MediaElementSession::~MediaElementSession

No new tests since existing tests cover this.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::userCancelledLoad): Don't update VTT cues when the active DOM objects are being stopped.

  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::removeSession): Update the updateNowPlayingInfo asynchronously
since this function can be called inside HTMLMediaElement::~HTMLMediaElement.

5:35 PM Changeset in webkit [224443] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Add WEBCORE_EXPORT to CachedResourceHandleBase
https://bugs.webkit.org/show_bug.cgi?id=179251

  • loader/cache/CachedResourceHandle.h:

(WebCore::CachedResourceHandleBase::get const): Deleted.
(WebCore::CachedResourceHandleBase::operator! const): Deleted.
(WebCore::CachedResourceHandleBase::operator UnspecifiedBoolType const): Deleted.
(WebCore::CachedResourceHandleBase::operator=): Deleted.
I'll need this soon for bug 179251, and having to touch CachedResourceHandle.h causes me to rebuild everything.
Committing it separately greatly increases my debugging and comparison speed.

4:32 PM Changeset in webkit [224442] by Ryan Haddad
  • 12 edits
    1 delete in trunk/Source

Unreviewed, rolling out r224428, r224435, and r224440.
https://bugs.webkit.org/show_bug.cgi?id=179274

Broke iOS and internal builds (Requested by ryanhaddad on
#webkit).

Reverted changesets:

"Use VCP H264 encoder for platforms supporting it"
https://bugs.webkit.org/show_bug.cgi?id=179076
https://trac.webkit.org/changeset/224428

"Use VCP H264 encoder for platforms supporting it"
https://bugs.webkit.org/show_bug.cgi?id=179076
https://trac.webkit.org/changeset/224435

"Use VCP H264 encoder for platforms supporting it"
https://bugs.webkit.org/show_bug.cgi?id=179076
https://trac.webkit.org/changeset/224440

Patch by Commit Queue <commit-queue@webkit.org> on 2017-11-03

4:31 PM Changeset in webkit [224441] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: null is not an object (evaluating 'selector.specificity.map') (at SpreadsheetCSSStyleDeclarationSection.js:199:51)
https://bugs.webkit.org/show_bug.cgi?id=179225
<rdar://problem/35329019>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector):
selector.specificity may not exist when the selector is dynamic and doesn't match the selected element.

4:21 PM Changeset in webkit [224440] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Use VCP H264 encoder for platforms supporting it
https://bugs.webkit.org/show_bug.cgi?id=179076
rdar://problem/35180773

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-03

  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: build fix for iOS.
4:09 PM Changeset in webkit [224439] by commit-queue@webkit.org
  • 11 edits
    4 adds in trunk

Requests handled by Service Worker should not go through preflighting
https://bugs.webkit.org/show_bug.cgi?id=179250

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

Source/WebCore:

Test: http/tests/workers/service/service-worker-crossorigin-fetch.html
In case of cross origin requests needed preflighting that may be served through SW, the following is done:

  • Bypass preflight
  • Put service workers mode as Only so that if SW is not handling the request, the load will fail
  • If load fails, restart DocumentThreadableLoader load with preflight.

Additional testing should be added when we properly handle the case where no fetch event handler is registered in the service worker.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::didFail):

  • loader/DocumentThreadableLoader.h:
  • loader/ResourceLoaderOptions.h:
  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setSelectedServiceWorkerIdentifierIfNeeded):

  • platform/network/ResourceErrorBase.h:

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::startFetch):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::shouldHandleFetch):

LayoutTests:

  • http/tests/workers/service/resources/service-worker-crossorigin-fetch-worker.js: Added.

(event.event.request.url.indexOf):
(event.event.request.url.endsWith):

  • http/tests/workers/service/resources/service-worker-crossorigin-fetch.js: Added.

(done):
(async.logStatus):
(async.test):

  • http/tests/workers/service/service-worker-crossorigin-fetch-expected.txt: Added.
  • http/tests/workers/service/service-worker-crossorigin-fetch.html: Added.
4:02 PM Changeset in webkit [224438] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

REGRESSION(r223718): Leaking WebProcessPool after reconfiguration
https://bugs.webkit.org/show_bug.cgi?id=179123
<rdar://problem/35294685>

Reviewed by Geoffrey Garen.

Make sure we destroy the ServiceWorker WebProcess once all other WebProcesses
go away at there is no use keeping it running at this point. Also, this prevents
leaking the WebProcessPool since the WebProcessProxy holds a strong reference
to the WebProcessPool.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::disconnectProcess):

3:49 PM Changeset in webkit [224437] by aestes@apple.com
  • 2 edits in trunk/Tools

[iOS] Append the platform name to the product directory on all embedded platforms
https://bugs.webkit.org/show_bug.cgi?id=179271

Reviewed by Joseph Pecoraro.

  • Scripts/webkitdirs.pm:

(determineConfigurationProductDir):

3:42 PM Changeset in webkit [224436] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

Remove redundant LayoutStateMaintainer argument (RenderView&)
https://bugs.webkit.org/show_bug.cgi?id=179269
<rdar://problem/35344397>

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::simplifiedLayout):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layout):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::layout):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutBlock):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::layoutShadowControls):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::layout):

  • rendering/RenderView.h:

(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):

3:03 PM Changeset in webkit [224435] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Use VCP H264 encoder for platforms supporting it
https://bugs.webkit.org/show_bug.cgi?id=179076
rdar://problem/35180773

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-03

  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: build fix.
2:53 PM Changeset in webkit [224434] by Ross Kirsling
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Move Show Compositing Borders/Paint Flashing buttons from Elements tab to Layers tab
https://bugs.webkit.org/show_bug.cgi?id=179211

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype.get navigationItems):
(WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
Guard old buttons with experimental flag.

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView):
(WI.Layers3DContentView.prototype.get navigationItems):
(WI.Layers3DContentView.prototype.shown):
(WI.Layers3DContentView.prototype.closed):
(WI.Layers3DContentView.prototype._showPaintRectsSettingChanged):
(WI.Layers3DContentView.prototype._togglePaintFlashing):
(WI.Layers3DContentView.prototype._updateCompositingBordersButtonState):
(WI.Layers3DContentView.prototype._toggleCompositingBorders):
Add buttons to new home.
No need to guard for get/setCompositingBordersVisible anymore, as these were introduced in iOS 7.

2:43 PM Changeset in webkit [224433] by webkit@devinrousso.com
  • 20 edits in trunk/Source/WebInspectorUI

Web Inspector: move top-level namespace functions in ImageUtilities to static class
https://bugs.webkit.org/show_bug.cgi?id=179207

Reviewed by Brian Burg.

  • .eslintrc:
  • UserInterface/Base/ImageUtilities.js:

(WI.ImageUtilities.useSVGSymbol):
(WI.ImageUtilities.scratchCanvasContext2D):
(WI.ImageUtilities.imageFromImageData):
(WI.ImageUtilities.imageFromCanvasGradient):
(WI.ImageUtilities):
(useSVGSymbol): Deleted.
(WI.scratchCanvasContext2D): Deleted.
(WI.imageFromImageData): Deleted.
(WI.imageFromCanvasGradient): Deleted.

  • UserInterface/Models/Recording.js:

(WI.Recording.prototype.async swizzle):

  • UserInterface/Views/ButtonNavigationItem.js:

(WI.ButtonNavigationItem.prototype.set image):

  • UserInterface/Views/CallFrameTreeElement.js:

(WI.CallFrameTreeElement.prototype._updateStatus):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._updateBreakpointStatus):

  • UserInterface/Views/MultipleScopeBarItem.js:

(WI.MultipleScopeBarItem):

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._generateDOM):
(WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged):

  • UserInterface/Views/RecordingStateDetailsSidebarPanel.js:

(WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):

  • UserInterface/Views/ResourceMetricsContentView.js:

(WI.ResourceMetricsContentView.prototype._refreshResourceSizeSection):

  • UserInterface/Views/ScopeRadioButtonNavigationItem.js:

(WI.ScopeRadioButtonNavigationItem):

  • UserInterface/Views/ThreadTreeElement.js:

(WI.ThreadTreeElement.prototype._updateStatus):

  • UserInterface/Views/TimelineTreeElement.js:

(WI.TimelineTreeElement.prototype._showCloseButton):

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:

(WI.VisualStyleCommaSeparatedKeywordEditor):

  • UserInterface/Views/VisualStyleKeywordIconList.js:

(WI.VisualStyleKeywordIconList):

  • UserInterface/Views/VisualStylePropertyEditorLink.js:

(WI.VisualStylePropertyEditorLink):

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WI.VisualStyleSelectorSection):

  • UserInterface/Views/WebSocketDataGridNode.js:

(WI.WebSocketDataGridNode.prototype.createCellContent):

2:30 PM Changeset in webkit [224432] by achristensen@apple.com
  • 4 edits in trunk/LayoutTests

LayoutTest http/tests/loading/basic-auth-resend-wrong-credentials.html is flaky on WK2
https://bugs.webkit.org/show_bug.cgi?id=159884

Reviewed by Darin Adler.

  • http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
  • http/tests/loading/basic-auth-resend-wrong-credentials.html:
  • platform/wk2/http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
2:26 PM Changeset in webkit [224431] by Ross Kirsling
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Hide legacy Layers sidebar on Search tab
https://bugs.webkit.org/show_bug.cgi?id=179257

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView):

2:26 PM Changeset in webkit [224430] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/security/mixedContent/insecure-css-with-secure-cookies.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=175998

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:26 PM Changeset in webkit [224429] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=179248

Unreviewed test gardening.

2:13 PM Changeset in webkit [224428] by commit-queue@webkit.org
  • 12 edits
    1 copy
    2 adds in trunk/Source

Use VCP H264 encoder for platforms supporting it
https://bugs.webkit.org/show_bug.cgi?id=179076
rdar://problem/35180773

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-03
Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: Added.

(webrtc::H264VideoToolboxEncoderVCP::SetActive):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm.
  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:

(internal::CFStringToString):
(internal::SetVTSessionProperty):
(internal::CopyVideoFrameToPixelBuffer):
(internal::CreatePixelBuffer):
(internal::VTCompressionOutputCallback):
(internal::ExtractProfile):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h:
  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm:

(webrtc::VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory):
(webrtc::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Covered by existing test coverage.

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp:

(WebCore::VideoToolboxVideoEncoderFactory::setActive):
(WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
(WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder):

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h:
2:04 PM Changeset in webkit [224427] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Curl] Fix build after r224373
https://bugs.webkit.org/show_bug.cgi?id=179265

Unreviewed build fix.

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-11-03

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::continueWillSendRequest): Deleted.

1:45 PM Changeset in webkit [224426] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

The Abstract Interpreter needs to change similar to clobberize() in r224366
https://bugs.webkit.org/show_bug.cgi?id=179267

Reviewed by Saam Barati.

Add clobberWorld() to HasGenericProperty, HasStructureProperty & GetPropertyEnumerator
cases in the abstract interpreter to match what was done for r224366.

  • dfg/DFGAbstractInterpreterInlines.h:

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

1:31 PM Changeset in webkit [224425] by keith_miller@apple.com
  • 1 edit
    1 add in trunk/JSTests

Add test for ic with side effects
https://bugs.webkit.org/show_bug.cgi?id=179268

Reviewed by Saam Barati.

  • stress/put-inline-cache-side-effects.js: Added.

(let.i.of.objs.keys):
(f):

1:19 PM Changeset in webkit [224424] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-604.4.7.10-branch

Cherry-pick r224405. rdar://problem/35339755

1:19 PM Changeset in webkit [224423] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-604.4.7.10-branch

Cherry-pick r224398. rdar://problem/35329712

1:13 PM Changeset in webkit [224422] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-604.4.7.0-branch

Cherry-pick r224405. rdar://problem/35296405

1:13 PM Changeset in webkit [224421] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-604.4.7.0-branch

Cherry-pick r224398. rdar://problem/35329714

1:12 PM Changeset in webkit [224420] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-604.4.7.1-branch

Cherry-pick r224405. rdar://problem/35296404

1:12 PM Changeset in webkit [224419] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-604.4.7.1-branch

Cherry-pick r224398. rdar://problem/35329684

1:12 PM Changeset in webkit [224418] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Remove an invalid ASSERT that is seen intermittently.
https://bugs.webkit.org/show_bug.cgi?id=179186

Unreviewed.

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::removeClientServiceWorkerRegistration): This is an invalid ASSERT,

it's definitely racey over IPC.

1:02 PM Changeset in webkit [224417] by achristensen@apple.com
  • 4 edits in trunk/LayoutTests

Remove Yosemite test expectations
https://bugs.webkit.org/show_bug.cgi?id=179143

Reviewed by Ryosuke Niwa.

We only test back to El Capitan. Everything is Yosemite+. Marking tests as failing only on Yosemite isn't useful any more.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:57 PM Changeset in webkit [224416] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

PutProperytSlot should inform the IC about the property before effects.
https://bugs.webkit.org/show_bug.cgi?id=179262

Reviewed by Mark Lam.

This patch fixes an issue where we choose to cache setters based on
incorrect information. If we did so we might end up OSR exiting
more than we would otherwise need to. The new model is that the
PutPropertySlot should inform the IC of what the property looked
like before any potential side effects might have occurred.

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

  • runtime/Lookup.h:

(JSC::putEntry):

12:40 PM Changeset in webkit [224415] by zandobersek@gmail.com
  • 2 edits
    1 add in trunk/LayoutTests

Unreviewed GTK+ gardening. Mark a few failures, posting along the relevant
bug entries. Add a platform-specific baseline for one HTTP test.

  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/security/module-no-mime-type-expected.txt: Added.
12:26 PM Changeset in webkit [224414] by pvollan@apple.com
  • 6 edits in trunk/LayoutTests

[Win] Update test expectations after r224324.

Unreviewed test gardening.

  • platform/win/css3/selectors3/html/css3-modsel-166-expected.txt:
  • platform/win/css3/selectors3/html/css3-modsel-166a-expected.txt:
  • platform/win/css3/selectors3/html/css3-modsel-39-expected.txt:
  • platform/win/css3/selectors3/html/css3-modsel-39b-expected.txt:
  • platform/win/fast/css/first-letter-float-after-float-expected.txt:
12:09 PM Changeset in webkit [224413] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WinCairo] Add --wincairo option to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=179217

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-11-03
Reviewed by Alex Christensen.

  • Scripts/webkitpy/port/factory.py:

(platform_options):

11:57 AM Changeset in webkit [224412] by Michael Catanzaro
  • 3 edits in trunk/Source/WebCore

[WPE] Remove unneeded USE(LIBEPOXY) guards
https://bugs.webkit.org/show_bug.cgi?id=179228

Reviewed by Carlos Garcia Campos.

USE(LIBEPOXY) is already mandatory for WPE.

  • platform/graphics/egl/GLContextEGLWPE.cpp:
  • platform/graphics/wpe/PlatformDisplayWPE.cpp:
11:47 AM Changeset in webkit [224411] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked js/intl-datetimeformat.html as failing on High Sierra.
https://bugs.webkit.org/show_bug.cgi?id=179208

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:42 AM Changeset in webkit [224410] by Michael Catanzaro
  • 4 edits
    1 move
    1 add in trunk

[WPE][GTK] Avoid duplicating code for dist and distcheck targets
https://bugs.webkit.org/show_bug.cgi?id=179154

Reviewed by Carlos Garcia Campos.

.:

This commit just reduces some CMake code duplication between GTK and WPE.

  • Source/PlatformGTK.cmake:
  • Source/PlatformWPE.cmake:
  • Source/cmake/WebKitDist.cmake: Added.

Tools:

Move the script out of Tools/gtk because it is already used by WPE. Also, drop the .py
prefix because it is executable.

  • Scripts/make-dist: Renamed from Tools/gtk/make-dist.py.
11:32 AM Changeset in webkit [224409] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Layout viewport rect is too wide after window resize
https://bugs.webkit.org/show_bug.cgi?id=175235

Fix a formatting mistake that was introduced by r224241.

Patch by Ali Juma <ajuma@chromium.org> on 2017-11-03
Reviewed by Simon Fraser.

No change in behavior.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::updateScrollbars):

11:21 AM Changeset in webkit [224408] by commit-queue@webkit.org
  • 32 edits
    2 adds in trunk

Implement Service Worker Matching Registration algorithm
https://bugs.webkit.org/show_bug.cgi?id=178882

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-03
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multiple-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-basic.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-scope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister.https-expected.txt:

Source/WebCore:

Test: http/tests/workers/service/service-worker-clear.html

Adding support for scope as part of the ServiceWorkerRegistrationKey to disambiguate several service workers registered with different scopes.
Adding the Service Worker Registration algorithm in SWServer and adding internals API to test it.
Making ServiceWorkerRegistrationKey a class to protect its internal field to be reused in wrong places.

Added preliminary support for clearing service workers for a given session ID as this is needed by WTR for stable testing.

  • testing/Internals.cpp:

(WebCore::Internals::hasServiceWorkerRegistration):

  • testing/Internals.h:
  • testing/Internals.idl:
  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::ServiceWorkerJobData::registrationKey const):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::hash const):
(WebCore::ServiceWorkerRegistrationKey::operator== const):
(WebCore::ServiceWorkerRegistrationKey::isolatedCopy const):

  • workers/service/ServiceWorkerRegistrationKey.h:

(WebCore::ServiceWorkerRegistrationKey::encode const):
(WebCore::ServiceWorkerRegistrationKey::decode):

  • workers/service/server/SWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::clear):
(WebCore::SWServer::doRegistrationMatching const):

  • workers/service/server/SWServer.h:

(WebCore::SWServer::Connection::doRegistrationMatching const):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::~SWServerJobQueue):

  • workers/service/server/SWServerRegistration.h:

Source/WebKit:

Added IPC plumbery for matchRegistration request and response.
Added some limited clearing of workers and registrations.

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::matchRegistration):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::deleteWebsiteData):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::didMatchRegistration):
(WebKit::WebSWClientConnection::matchRegistration):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebServiceWorkerProvider.h:

LayoutTests:

  • TestExpectations:
  • http/tests/workers/service/basic-register-exceptions-expected.txt:
  • http/tests/workers/service/resources/basic-register.js: Fixing flakiness.
  • http/tests/workers/service/service-worker-clear-expected.txt: Added.
  • http/tests/workers/service/service-worker-clear.html: Added.
11:05 AM Changeset in webkit [224407] by dino@apple.com
  • 9 edits
    6 adds in trunk

Add basic OffscreenCanvas interface
https://bugs.webkit.org/show_bug.cgi?id=179213
<rdar://problem/35326778>

Reviewed by Sam Weinig.

Source/WebCore:

Add the basic infrastructure for the OffscreenCanvas
object, so it can be created from script.

Test: http/wpt/offscreen-canvas/offscreencanvas.constructor.html

  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSEventTargetCustom.cpp:
  • dom/EventTargetFactory.in:
  • html/OffscreenCanvas.cpp: Added.

(WebCore::OffscreenCanvas::create):
(WebCore::OffscreenCanvas::OffscreenCanvas):
(WebCore::OffscreenCanvas::width const):
(WebCore::OffscreenCanvas::setWidth):
(WebCore::OffscreenCanvas::height const):
(WebCore::OffscreenCanvas::setHeight):

  • html/OffscreenCanvas.h: Added.
  • html/OffscreenCanvas.idl: Added.

LayoutTests:

Very basic test that exercises object construction.

  • http/wpt/offscreen-canvas/offscreencanvas.constructor-expected.txt: Added.
  • http/wpt/offscreen-canvas/offscreencanvas.constructor.html: Added.
11:03 AM Changeset in webkit [224406] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Element fullscreen should use FloatRects instead of IntRects in beganEnterFullScreenWithInitialFrame
https://bugs.webkit.org/show_bug.cgi?id=179033
rdar://problem/35309279

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-03
Reviewed by Darin Adler.

Screen coordinates are floats, so use NSRect instead of IntRect on Mac.

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):

10:10 AM Changeset in webkit [224405] by rniwa@webkit.org
  • 12 edits
    2 adds in trunk

Crash inside ChildListMutationAccumulator::enqueueMutationRecord()
https://bugs.webkit.org/show_bug.cgi?id=179234
<rdar://problem/35287748>

Reviewed by Darin Adler.

Source/WebCore:

Fixed the crash by keeping MutationObserver referenced by MutationObserverInterestGroup alive.

Also added hasCallback() virtual function on MutationObserver to check whether the callback is alive
to work around the bug that JS function referenced by MutationObserver isn't kept alive.
We'll address this bug separately in https://webkit.org/b/179224.

Test: fast/dom/MutationObserver/disconnect-observer-while-mutation-records-are-enqueued-crash.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackHeaderContent): Added an override for the newly added virtual hasCallback().

  • dom/MutationCallback.h:
  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::deliver): Added the aforementioned workaround.

  • dom/MutationObserverInterestGroup.cpp:

(WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup): Fixed the crash by using Ref.
(WebCore::MutationObserverInterestGroup::enqueueMutationRecord): Ditto.

  • dom/MutationObserverInterestGroup.h:
  • dom/NativeNodeFilter.cpp:

(WebCore::NativeNodeFilter::hasCallback const): Always return true here. This function is never called
but we still need to implement it since NodeFilter has a pure virtual hasCallback() now.

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

(WebCore::collectMatchingObserversForMutation): Use Ref to fix the crash.
(WebCore::Node::registeredMutationObservers): Ditto.

  • dom/Node.h:
  • dom/NodeFilter.h:

LayoutTests:

Added a regression test.

  • fast/dom/MutationObserver/disconnect-observer-while-mutation-records-are-enqueued-crash-expected.txt: Added.
  • fast/dom/MutationObserver/disconnect-observer-while-mutation-records-are-enqueued-crash.html: Added.
9:59 AM Changeset in webkit [224404] by Alan Bujtas
  • 19 edits in trunk/Source/WebCore

RenderObject::*positioned() naming cleanup
https://bugs.webkit.org/show_bug.cgi?id=179206
<rdar://problem/35325254>

Reviewed by Darin Adler.

+isFixedPositioned()
+isAbsolutelyPositioned()
isRelPositioned() -> isRelativelyPositioned()

Covered by existing tests.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue):

  • dom/Element.cpp:

(WebCore::layoutOverflowRectContainsAllDescendants):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/LayoutState.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::renderName const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::fixedElementLaysOutRelativeToFrame const):
(WebCore::RenderBox::foregroundIsKnownToBeOpaqueInRect const):
(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::pushMappingToContainer const):
(WebCore::RenderBox::mapAbsoluteToLocalPoint const):
(WebCore::RenderBox::offsetFromContainer const):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned const):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned const):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent const):
(WebCore::RenderBoxModelObject::offsetForInFlowPosition const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::renderName const):

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::adjustedPositionRelativeToOffsetParent const):

  • rendering/RenderGeometryMap.cpp:

(WebCore::canMapBetweenRenderersViaLayers):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::renderName const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::renderName const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::computeExtent const):
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlock const):
(WebCore::RenderObject::outputRenderObject const):
(WebCore::RenderObject::offsetParent const):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isPositioned const):
(WebCore::RenderObject::isInFlowPositioned const):
(WebCore::RenderObject::isFixedPositioned const):
(WebCore::RenderObject::isAbsolutePositioned const):
(WebCore::RenderObject::isRelativePositioned const):
(WebCore::RenderObject::isStickyPositioned const):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::RenderObjectBitfields::isRelativePositioned const):
(WebCore::RenderObject::RenderObjectBitfields::isPositioned const):
(WebCore::RenderObject::isRelPositioned const): Deleted.
(WebCore::RenderObject::RenderObjectBitfields::isRelPositioned const): Deleted.

9:37 AM Changeset in webkit [224403] by Chris Dumez
  • 45 edits
    1 copy
    1 add in trunk/Source

Use a single identifier type to identify Service Workers
https://bugs.webkit.org/show_bug.cgi?id=179192

Reviewed by Brady Eidson.

Source/WebCore:

Use a single identifier type to identify Service Workers. We had both a String
identifier and a uint64_t identifier for each service worker. We now consistently
use a ServiceWorkerIdentifier which is a strongly typed identifier backed by a
uint64_t.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/ResourceLoaderOptions.h:
  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setSelectedServiceWorkerIdentifierIfNeeded):

  • loader/cache/CachedResourceRequest.h:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::ServiceWorker):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/ServiceWorkerContextData.cpp:

(WebCore::ServiceWorkerContextData::isolatedCopy const):

  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

  • workers/service/ServiceWorkerIdentifier.h: Copied from Source/WebCore/workers/service/ServiceWorkerContextData.cpp.
  • workers/service/ServiceWorkerRegistrationData.h:

(WebCore::ServiceWorkerRegistrationData::decode):

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::serviceWorkerThreadProxy const):
(WebCore::SWContextManager::postMessageToServiceWorkerGlobalScope):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):

  • workers/service/context/ServiceWorkerThread.h:

(WebCore::ServiceWorkerThread::identifier const):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::postMessageToServiceWorkerClient):

  • workers/service/server/SWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::generateServiceWorkerIdentifier):
(WebCore::SWServer::Connection::scriptContextFailedToStart):
(WebCore::SWServer::Connection::scriptContextStarted):
(WebCore::SWServer::scriptContextFailedToStart):
(WebCore::SWServer::scriptContextStarted):
(WebCore::SWServer::updateWorker):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptContextFailedToStart):
(WebCore::SWServerJobQueue::scriptContextStarted):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::setActiveServiceWorkerIdentifier):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::SWServerWorker):

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::create):
(WebCore::SWServerWorker::identifier const):

Source/WebKit:

Use a single identifier type to identify Service Workers. We had both a String
identifier and a uint64_t identifier for each service worker. We now consistently
use a ServiceWorkerIdentifier which is a strongly typed identifier backed by a
uint64_t.

  • Scripts/webkit/messages.py:

(forward_declarations_and_headers):
(forward_declarations_and_headers.templates):

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerGlobalScope):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::serviceWorkerContextFailedToStart):
(WebKit::StorageProcess::serviceWorkerContextStarted):
(WebKit::StorageProcess::postMessageToServiceWorkerClient):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::postMessageToServiceWorkerGlobalScope):
(WebKit::WebSWClientConnection::postMessageToServiceWorkerClient):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updateServiceWorker):
(WebKit::WebSWContextManagerConnection::serviceWorkerStartedWithMessage):
(WebKit::WebSWContextManagerConnection::startFetch):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerGlobalScope):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Source/WTF:

Introduce class for strongly typed identifiers. This avoids mixing up
different types of identifiers.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/ObjectIdentifier.h: Added.

(WTF::ObjectIdentifier::encode const):
(WTF::ObjectIdentifier::decode):
(WTF::ObjectIdentifier::operator== const):
(WTF::ObjectIdentifier::operator!= const):
(WTF::ObjectIdentifier::ObjectIdentifier):
(WTF::makeObjectIdentifier):
(WTF::ObjectIdentifierHash::hash):
(WTF::ObjectIdentifierHash::equal):
(WTF::HashTraits<ObjectIdentifier<T>>::emptyValue):
(WTF::HashTraits<ObjectIdentifier<T>>::constructDeletedValue):
(WTF::HashTraits<ObjectIdentifier<T>>::isDeletedValue):

9:35 AM Changeset in webkit [224402] by aestes@apple.com
  • 19 edits
    1 add in trunk

[Payment Request] show() should only be called with user activation
https://bugs.webkit.org/show_bug.cgi?id=179056

Reviewed by Sam Weinig.

Source/WebCore:

Updated existing tests to call PaymentRequest.show() with user activation.

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::show):

LayoutTests:

  • http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:
  • http/tests/paymentrequest/payment-request-canmakepayment-method.https.html:
  • http/tests/paymentrequest/payment-request-change-shipping-address.https.html:
  • http/tests/paymentrequest/payment-request-change-shipping-option.https.html:
  • http/tests/paymentrequest/payment-request-show-method.https.html:
  • http/tests/paymentrequest/payment-response-complete-method.https.html:
  • http/tests/paymentrequest/payment-response-methodName-attribute.https.html:
  • http/tests/paymentrequest/payment-response-payerEmail-attribute.https.html:
  • http/tests/paymentrequest/payment-response-payerName-attribute.https.html:
  • http/tests/paymentrequest/payment-response-payerPhone-attribute.https.html:
  • http/tests/paymentrequest/resources/helpers.js:

(async.getPaymentRequestResponse):

  • http/tests/paymentrequest/updateWith-method-pmi-handling.https.html:
  • http/tests/resources/payment-request.js: Added.

(activateThen):

  • http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https.html:
  • http/tests/ssl/applepay/ApplePayPaymentMethodUpdateEvent.https.html:
  • http/tests/ssl/applepay/PaymentRequest.https.html:
  • resources/ui-helper.js:

(window.UIHelper.activateElement):

9:33 AM Changeset in webkit [224401] by Jonathan Bedard
  • 2 edits in trunk/Tools

TestController platformAdjustContext should use provided WKContext for Mac
https://bugs.webkit.org/show_bug.cgi?id=179124
<rdar://problem/35295176>

Reviewed by Darin Adler.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration): Use the provided WKContext, since that is
a WebProcessPool, instead of creating a second one.

9:27 AM Changeset in webkit [224400] by Ms2ger@igalia.com
  • 4 edits in trunk/LayoutTests

LayoutTests/imported/w3c:
Update Event-timestamp-high-resolution.html.
https://bugs.webkit.org/show_bug.cgi?id=179242

Reviewed by Darin Adler.

Synchronise with upstream to make the test more robust.

  • web-platform-tests/dom/events/Event-timestamp-high-resolution.html:

LayoutTests:
[WPE] Update Event-timestamp-high-resolution.html expectations.
https://bugs.webkit.org/show_bug.cgi?id=179242

Reviewed by Darin Adler.

The test now deals more gracefully with the fact that GamepadEvent is
not defined.

  • platform/wpe/imported/w3c/web-platform-tests/dom/events/Event-timestamp-high-resolution-expected.txt:
9:03 AM Changeset in webkit [224399] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

CachedCall (and its clients) needs overflow checks.
https://bugs.webkit.org/show_bug.cgi?id=179185

Reviewed by JF Bastien.

JSTests:

  • stress/regress-179185.js: Added.

Source/JavaScriptCore:

  • interpreter/CachedCall.h:

(JSC::CachedCall::CachedCall):
(JSC::CachedCall::hasOverflowedArguments):

  • runtime/ArgList.h:

(JSC::MarkedArgumentBuffer::clear):

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingRegExpSearch):

8:41 AM Changeset in webkit [224398] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

Invalidate node list when associated form control element is removed
https://bugs.webkit.org/show_bug.cgi?id=179232
<rdar://problem/35308269>

Reviewed by Ryosuke Niwa.

Source/WebCore:

A node list represents a live view of the DOM. Invalidate the node list
associated with a form element whenever one of its associated form control
elements is removed.

Test: fast/forms/node-list-remove-button-from-form.html

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::removeFormElement):

LayoutTests:

Add a test to ensure the node list returned by HTMLFormElement.elements stays synchronized
with the document.

  • fast/forms/node-list-remove-button-from-form-expected.txt: Added.
  • fast/forms/node-list-remove-button-from-form.html: Added.
8:24 AM Changeset in webkit [224397] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit

Enable display:contents by default as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=179239
<rdar://problem/35334612>

Reviewed by Darin Adler.

We pass most of the WPT tests. What remains is mostly flexbox related edge cases.

  • Shared/WebPreferences.yaml:
8:11 AM Changeset in webkit [224396] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebKit

Use WK_IOS_TBA instead of WK_MAC_TBA to indicate availability of private functions on iOS
https://bugs.webkit.org/show_bug.cgi?id=179238

Patch by Frederic Wang <fwang@igalia.com> on 2017-11-03
Reviewed by Darin Adler.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
8:01 AM Changeset in webkit [224395] by fred.wang@free.fr
  • 5 edits in trunk/Source/WebCore

Add USE(APPLE_INTERNAL_SDK)-guards around SPI in ResourceHandle code
https://bugs.webkit.org/show_bug.cgi?id=136107

Based on patch by Daniel Bates <dabates@apple.com>
Patch by Frederic Wang <fwang@igalia.com> on 2017-11-03
Reviewed by Darin Adler.

No new tests, behavior unchanged.

  • platform/network/ResourceHandleClient.h: Replace includes of private headers with CFNetworkSPI.h.
  • platform/network/ResourceHandleInternal.h: Ditto.
  • platform/network/ios/ResourceHandleIOS.mm: Add USE(APPLE_INTERNAL_SDK)-guard around SPI

headers and forward declare NSURLRequest SPI and constant _kCFStreamSSLTrustedLeafCertificates
for clients that build without the internal SDK. Add BSD license block to file.
(WebCore::ResourceHandle::createSSLPropertiesFromNSURLRequest): Fix code style issues; use
nullptr instead of 0, use reinterpret_cast instead of C-style cast, remove unnecessary
"using namespace WebCore"
and rename variables to improve readability.

  • platform/network/mac/ResourceErrorMac.mm: Add USE(APPLE_INTERNAL_SDK)-guard around private

headers and add typedef for CFCachedURLResponseRef for clients that build without the
internal SDK.

7:46 AM Changeset in webkit [224394] by Antti Koivisto
  • 5 edits
    4 adds in trunk

Crash in WebCore::RenderStyle::overflowX with display:contents
https://bugs.webkit.org/show_bug.cgi?id=178857
<rdar://problem/35201120>

Reviewed by Zalan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-display-3/display-contents-computed-style-expected.txt:

Source/WebCore:

Crash test by Renata Hodovan.

Tests: fast/css/display-contents-all.html

fast/css/display-contents-document-element.html

  • css/StyleResolver.cpp:

(WebCore::adjustDisplayContentsStyle):

For document element 'display:contents' should adjust to 'display:block' like it does for other display types.

LayoutTests:

  • fast/css/display-contents-all-expected.html: Added.
  • fast/css/display-contents-all.html: Added.
  • fast/css/display-contents-document-element-expected.txt: Added.
  • fast/css/display-contents-document-element.html: Added.
4:44 AM Changeset in webkit [224393] by Ms2ger@igalia.com
  • 2 edits
    6 adds in trunk/LayoutTests

[WPE] Enable the dom/ directory of web-platform-tests.
https://bugs.webkit.org/show_bug.cgi?id=179180

Reviewed by Carlos Alberto Lopez Perez.

  • platform/wpe/TestExpectations: Enable tests; copy expected timeout from generic expectation file.
  • platform/wpe/imported/w3c/web-platform-tests/dom/events/Event-timestamp-high-resolution-expected.txt: Added; GamepadEvent is not enabled. (The fragility of the test is fixed upstream.)
  • platform/wpe/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt: Added; more subtests pass than in the generic expectation file.
  • platform/wpe/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent-expected.txt: Added; more subtests pass than in the generic expectation file.
4:21 AM WebKitGTK/Gardening/Howto edited by clopez@igalia.com
(diff)
3:23 AM Changeset in webkit [224392] by zandobersek@gmail.com
  • 25 edits in trunk/LayoutTests

Unreviewed WPE gardening. Rebaselining tests affected by r224324.

  • platform/wpe/css1/pseudo/firstletter-expected.txt:
  • platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/wpe/css2.1/t051202-c24-first-lttr-00-b-expected.txt:
  • platform/wpe/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
  • platform/wpe/css3/selectors3/html/css3-modsel-166-expected.txt:
  • platform/wpe/css3/selectors3/html/css3-modsel-166a-expected.txt:
  • platform/wpe/css3/selectors3/html/css3-modsel-39-expected.txt:
  • platform/wpe/css3/selectors3/html/css3-modsel-39b-expected.txt:
  • platform/wpe/css3/selectors3/xhtml/css3-modsel-166-expected.txt:
  • platform/wpe/css3/selectors3/xhtml/css3-modsel-166a-expected.txt:
  • platform/wpe/css3/selectors3/xhtml/css3-modsel-39-expected.txt:
  • platform/wpe/css3/selectors3/xhtml/css3-modsel-39b-expected.txt:
  • platform/wpe/css3/selectors3/xml/css3-modsel-166-expected.txt:
  • platform/wpe/css3/selectors3/xml/css3-modsel-166a-expected.txt:
  • platform/wpe/css3/selectors3/xml/css3-modsel-39-expected.txt:
  • platform/wpe/css3/selectors3/xml/css3-modsel-39b-expected.txt:
  • platform/wpe/fast/dynamic/first-letter-display-change-expected.txt:
  • platform/wpe/ietestcenter/css3/text/textshadow-004-expected.txt:
  • platform/wpe/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.txt:
  • platform/wpe/svg/custom/glyph-selection-arabic-forms-expected.txt:
  • platform/wpe/svg/text/select-textLength-spacingAndGlyphs-squeeze-2-expected.txt:
  • platform/wpe/svg/text/select-textLength-spacingAndGlyphs-squeeze-3-expected.txt:
  • platform/wpe/svg/text/select-textLength-spacingAndGlyphs-stretch-2-expected.txt:
  • platform/wpe/svg/text/select-textLength-spacingAndGlyphs-stretch-3-expected.txt:
3:02 AM WebKitGTK/Gardening/Calendar edited by Ms2ger@igalia.com
(diff)
3:00 AM Changeset in webkit [224391] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Network Table - Include a secure lock indicator in the domain column
https://bugs.webkit.org/show_bug.cgi?id=179233
<rdar://problem/34070883>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-03
Reviewed by Devin Rousso.

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table .cell.domain > .lock):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._populateDomainCell):
Add a small lock icon by the domain if the request was https/wss.

2:32 AM Changeset in webkit [224390] by jiewen_tan@apple.com
  • 68 edits in trunk/Source/WebCore

Replace some auto* with RefPtr within WebCore/html
https://bugs.webkit.org/show_bug.cgi?id=179218
<rdar://problem/35102567>

Reviewed by Ryosuke Niwa.

No changes in behaviors.

In this patch, it replace some auto* pointers with RefPtrs. The way it achieves this goal is to wrap
the RHS with makeRefPtr(). Also, some methods have been modified to return RefPtrs directly. Those
include:

HTMLInputElement::list,
HTMLInputElement::dataList,
HTMLLabelElement::control,
HTMLLegendElement::associatedControl,
HTMLSummaryElement::detailsElement,
HTMLTableElement::tHead,
HTMLTableElement::tFoot,
HTMLTablePartElement::findParentTable,
HTMLTableRowElement.cpp::findTable, local function
RadioNodeList.cpp::toRadioButtonInputElement, local function
CanvasStyle::canvasGradient,
CanvasStyle::canvasPattern,
WebGLRenderingContextBase::validateTextureBinding,
GraphicsContext::strokeGradient,
GraphicsContext::fillGradient.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::labelChanged):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement const):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::title const):

  • accessibility/atk/WebKitAccessibleInterfaceTable.cpp:

(webkitAccessibleTableGetCaption):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::suggestions const):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):

  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):
(WebCore::FileInputType::disabledAttributeChanged):
(WebCore::FileInputType::multipleAttributeChanged):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::formOwnerRemovedFromTree):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedIntoAncestor):
(WebCore::HTMLBodyElement::didFinishInsertingNode):
(WebCore::HTMLBodyElement::scrollTo):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::isActiveSummary const):
(WebCore::HTMLDetailsElement::parseAttribute):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::namedItem):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::editabilityFromContentEditableAttr):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):

  • html/HTMLFrameOwnerElement.cpp:

(WebCore:: const):

  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::namedItem):

  • html/HTMLHtmlElement.cpp:

(WebCore::HTMLHtmlElement::insertedByParser):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::defaultEventHandler):
(WebCore::HTMLInputElement::list const):
(WebCore::HTMLInputElement::dataList const):
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):

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

(WebCore::firstElementWithIdIfLabelable):
(WebCore::HTMLLabelElement::control const):
(WebCore::HTMLLabelElement::form const):
(WebCore::HTMLLabelElement::setActive):
(WebCore::HTMLLabelElement::setHovered):
(WebCore::HTMLLabelElement::willRespondToMouseClickEvents):
(WebCore::HTMLLabelElement::focus):
(WebCore::HTMLLabelElement::accessKeyAction):

  • html/HTMLLabelElement.h:
  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::associatedControl):
(WebCore::HTMLLegendElement::focus):
(WebCore::HTMLLegendElement::accessKeyAction):
(WebCore::HTMLLegendElement::form const):

  • html/HTMLLegendElement.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):
(WebCore::HTMLLinkElement::addSubresourceAttributeURLs const):

  • html/HTMLMediaElement.cpp:

(WebCore::needsAutoplayPlayPauseEventsQuirk):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::removeTextTrack):
(WebCore::HTMLMediaElement::layoutSizeChanged):

  • html/HTMLObjectElement.cpp:

(WebCore::shouldBeExposed):
(WebCore::HTMLObjectElement::appendFormData):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::recalcSelectOptions):

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::viewportChangeAffectedPicture const):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::bindingsInstance):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::isImageType):
(WebCore::HTMLPlugInImageElement::willDetachRenderers):
(WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay const):
(WebCore::HTMLPlugInImageElement::checkSizeChangeForSnapshotting):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::attributeChanged):
(WebCore:: const):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::addSubresourceAttributeURLs const):

  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::detailsElement const):

  • html/HTMLSummaryElement.h:
  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::caption const):
(WebCore::HTMLTableElement::tHead const):
(WebCore::HTMLTableElement::tFoot const):
(WebCore::HTMLTableElement::createTHead):
(WebCore::HTMLTableElement::deleteTHead):
(WebCore::HTMLTableElement::createTFoot):
(WebCore::HTMLTableElement::deleteTFoot):
(WebCore::HTMLTableElement::createCaption):
(WebCore::HTMLTableElement::deleteCaption):

  • html/HTMLTableElement.h:
  • html/HTMLTablePartElement.cpp:

(WebCore::HTMLTablePartElement::findParentTable const):

  • html/HTMLTablePartElement.h:
  • html/HTMLTableRowElement.cpp:

(WebCore::findTable):
(WebCore::HTMLTableRowElement::rowIndex const):
(WebCore::findRows):

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle const):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::mediaElement const):

  • html/LinkIconCollector.cpp:

(WebCore::LinkIconCollector::iconsOfTypes):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::replaceMediaElementTimerFired):

  • html/MediaElementSession.cpp:

(WebCore::needsArbitraryUserGestureAutoplayQuirk):
(WebCore::isElementRectMostlyInMainFrame):
(WebCore::isElementLargeRelativeToMainFrame):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):
(WebCore::PluginDocumentParser::appendBytes):

  • html/RadioNodeList.cpp:

(WebCore::toRadioButtonInputElement):
(WebCore::RadioNodeList::value const):
(WebCore::RadioNodeList::setValue):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::updateTickMarkValues):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::wouldTaintOrigin):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
(WebCore::CanvasRenderingContext2D::fillInternal):
(WebCore::CanvasRenderingContext2D::strokeInternal):
(WebCore::CanvasRenderingContext2D::fillRect):
(WebCore::CanvasRenderingContext2D::strokeRect):
(WebCore::toStyle):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasStyle.h:

(WebCore::CanvasStyle::canvasGradient const):
(WebCore::CanvasStyle::canvasPattern const):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGL2RenderingContext::validateIndexArrayConservative):

  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::validateIndexArrayConservative):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::generateMipmap):
(WebCore::WebGLRenderingContextBase::getTexParameter):
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::validateTexFunc):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::texSubImage2DBase):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::validateTextureBinding):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::executeReparentTask):
(WebCore::executeTakeAllChildrenAndReparentTask):
(WebCore::HTMLConstructionSite::dispatchDocumentElementAvailableIfNeeded):
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):
(WebCore::HTMLConstructionSite::findFosterSite):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::XSSAuditorDelegate::generateViolationReport):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::updateGenericCue):
(WebCore::InbandGenericTextTrack::removeGenericCue):

  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::willRemove):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::addCue):
(WebCore::TextTrack::addRegion):

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::willRemove):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildInitialState):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::strokeGradient const):
(WebCore::GraphicsContext::fillGradient const):

  • rendering/svg/RenderSVGPath.cpp:

(WebCore::useStrokeStyleToFill):

12:04 AM Changeset in webkit [224389] by webkit@devinrousso.com
  • 17 edits in trunk

Web Inspector: Canvas2D Profiling: highlight expensive context commands in the captured command log
https://bugs.webkit.org/show_bug.cgi?id=178302
<rdar://problem/33158849>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Recording.json:

Add duration to each Frame that represents the total time of all the recorded actions.

Source/WebCore:

No new tests, updated existing tests.

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::finalizeFrame):
(WebCore::InspectorCanvas::markNewFrame): Deleted.

  • inspector/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):

Source/WebInspectorUI:

  • UserInterface/Models/RecordingFrame.js:

(WI.RecordingFrame):
(WI.RecordingFrame.fromPayload):
(WI.RecordingFrame.prototype.get duration):
(WI.RecordingFrame.prototype.toJSON):

  • UserInterface/Views/RecordingNavigationSidebarPanel.js:

(WI.RecordingNavigationSidebarPanel.prototype.set recording):

  • UserInterface/Views/RecordingNavigationSidebarPanel.css:

(.sidebar > .panel.navigation.recording > .content > .tree-outline .item.folder-icon > .status):

LayoutTests:

  • inspector/canvas/recording-2d-expected.txt:
  • inspector/canvas/recording-webgl-expected.txt:
  • inspector/canvas/recording-webgl-snapshots-expected.txt:
  • inspector/canvas/resources/recording-utilities.js:

(TestPage.registerInitializer):

  • inspector/model/recording-expected.txt:
  • inspector/model/recording.html:
Note: See TracTimeline for information about the timeline view.